├── .codesandbox
└── ci.json
├── .editorconfig
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── stale.yml
└── workflows
│ └── ci.yml
├── .gitignore
├── .npmrc
├── .nvmrc
├── .prettierrc
├── CONTRIBUTING.md
├── LICENSE.md
├── Makefile
├── Procfile
├── README.md
├── api
├── LICENSE.md
├── README.md
├── app.ts
├── nodemon.json
├── package.json
└── tsconfig.json
├── babel.config.js
├── branding
└── nivo-logo.ai
├── conf
├── base.yaml
└── rollup.config.mjs
├── cypress
├── cypress.config.ts
├── cypress.d.ts
├── cypress
│ └── support
│ │ ├── commands.js
│ │ ├── component-index.html
│ │ └── component.js
├── package.json
├── src
│ ├── components
│ │ ├── bar
│ │ │ ├── Bar.cy.tsx
│ │ │ └── BarCanvas.cy.tsx
│ │ ├── boxplot
│ │ │ └── BoxPlot.cy.tsx
│ │ ├── bullet
│ │ │ └── Bullet.cy.tsx
│ │ ├── bump
│ │ │ ├── AreaBump.cy.tsx
│ │ │ └── Bump.cy.tsx
│ │ ├── chord
│ │ │ ├── Chord.cy.tsx
│ │ │ └── ChordCanvas.cy.tsx
│ │ ├── circle-packing
│ │ │ ├── CirclePacking.cy.tsx
│ │ │ ├── CirclePackingCanvas.cy.tsx
│ │ │ ├── CirclePackingHtml.cy.tsx
│ │ │ └── shared.ts
│ │ ├── heatmap
│ │ │ ├── HeatMap.cy.tsx
│ │ │ ├── HeatMapCanvas.cy.tsx
│ │ │ └── shared.ts
│ │ ├── icicle
│ │ │ ├── Icicle.cy.tsx
│ │ │ └── IcicleHtml.cy.tsx
│ │ ├── line
│ │ │ ├── Line.cy.tsx
│ │ │ ├── LineCanvas.cy.tsx
│ │ │ └── shared.ts
│ │ ├── marimekko
│ │ │ └── Marimekko.cy.tsx
│ │ ├── network
│ │ │ ├── Network.cy.tsx
│ │ │ ├── NetworkCanvas.cy.tsx
│ │ │ └── shared.ts
│ │ ├── pie
│ │ │ ├── Pie.cy.tsx
│ │ │ ├── PieCanvas.cy.tsx
│ │ │ └── shared.ts
│ │ ├── polar-bar
│ │ │ └── PolarBar.cy.tsx
│ │ ├── radar
│ │ │ └── Radar.cy.tsx
│ │ ├── radial-bar
│ │ │ └── RadialBar.cy.tsx
│ │ ├── sankey
│ │ │ └── Sankey.cy.tsx
│ │ ├── stream
│ │ │ └── Stream.cy.tsx
│ │ ├── tree
│ │ │ ├── Tree.cy.tsx
│ │ │ ├── TreeCanvas.cy.tsx
│ │ │ └── shared.ts
│ │ ├── treemap
│ │ │ ├── TreeMap.cy.tsx
│ │ │ ├── TreeMapCanvas.cy.tsx
│ │ │ ├── TreeMapHtml.cy.tsx
│ │ │ └── shared.ts
│ │ └── waffle
│ │ │ ├── Waffle.cy.tsx
│ │ │ ├── WaffleCanvas.cy.tsx
│ │ │ └── WaffleHtml.cy.tsx
│ └── helpers
│ │ └── responsive.tsx
├── tsconfig.json
└── vite.config.ts
├── eslint.config.mjs
├── examples
└── codesandbox
│ ├── package.json
│ ├── public
│ └── index.html
│ ├── src
│ ├── App.tsx
│ ├── ChartContainer.tsx
│ ├── Navigation.tsx
│ ├── charts
│ │ ├── Bar.tsx
│ │ ├── Bullet.tsx
│ │ ├── Bump.tsx
│ │ ├── Calendar.tsx
│ │ ├── Chord.tsx
│ │ ├── Choropleth.tsx
│ │ ├── CirclePacking.tsx
│ │ ├── Funnel.tsx
│ │ ├── GeoMap.tsx
│ │ ├── HeatMap.tsx
│ │ ├── Line.tsx
│ │ ├── Marimekko.tsx
│ │ ├── Network.tsx
│ │ ├── ParallelCoordinates.tsx
│ │ ├── Pie.tsx
│ │ ├── Radar.tsx
│ │ ├── Sankey.tsx
│ │ ├── ScatterPlot.tsx
│ │ ├── Stream.tsx
│ │ ├── Sunburst.tsx
│ │ ├── SwarmPlot.tsx
│ │ ├── TreeMap.tsx
│ │ ├── Voronoi.tsx
│ │ ├── Waffle.tsx
│ │ └── index.ts
│ ├── contexts.ts
│ ├── data
│ │ ├── index.ts
│ │ └── world_countries.json
│ ├── global.css
│ ├── hooks.ts
│ ├── index.tsx
│ └── utils.ts
│ └── tsconfig.json
├── lerna.json
├── nivo.png
├── package.json
├── packages
├── annotations
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Annotation.tsx
│ │ ├── AnnotationLink.tsx
│ │ ├── AnnotationNote.tsx
│ │ ├── CircleAnnotationOutline.tsx
│ │ ├── DotAnnotationOutline.tsx
│ │ ├── RectAnnotationOutline.tsx
│ │ ├── canvas.ts
│ │ ├── compute.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ ├── types.ts
│ │ └── utils.ts
│ └── tsconfig.json
├── arcs
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── ArcLine.tsx
│ │ ├── ArcShape.tsx
│ │ ├── ArcsLayer.tsx
│ │ ├── arcTransitionMode.ts
│ │ ├── arc_labels
│ │ │ ├── ArcLabel.tsx
│ │ │ ├── ArcLabelsLayer.tsx
│ │ │ ├── canvas.ts
│ │ │ ├── index.ts
│ │ │ ├── props.ts
│ │ │ └── useArcLabels.ts
│ │ ├── arc_link_labels
│ │ │ ├── ArcLinkLabel.tsx
│ │ │ ├── ArcLinkLabelsLayer.tsx
│ │ │ ├── canvas.ts
│ │ │ ├── compute.ts
│ │ │ ├── index.ts
│ │ │ ├── props.ts
│ │ │ ├── types.ts
│ │ │ ├── useArcLinkLabels.ts
│ │ │ ├── useArcLinkLabelsTransition.ts
│ │ │ └── useArcLinks.ts
│ │ ├── boundingBox.ts
│ │ ├── centers.ts
│ │ ├── index.ts
│ │ ├── interactivity.ts
│ │ ├── interpolateArc.ts
│ │ ├── types.ts
│ │ ├── useAnimatedArc.ts
│ │ ├── useArcGenerator.ts
│ │ ├── useArcsTransition.ts
│ │ └── utils.ts
│ ├── tests
│ │ └── boundingBox.test.ts
│ └── tsconfig.json
├── axes
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── canvas.ts
│ │ ├── components
│ │ │ ├── Axes.tsx
│ │ │ ├── Axis.tsx
│ │ │ ├── AxisTick.tsx
│ │ │ ├── Grid.tsx
│ │ │ ├── GridLine.tsx
│ │ │ ├── GridLines.tsx
│ │ │ └── index.ts
│ │ ├── compute.ts
│ │ ├── defaults.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ └── types.ts
│ ├── tests
│ │ ├── __snapshots__
│ │ │ └── compute.test.tsx.snap
│ │ └── compute.test.tsx
│ └── tsconfig.json
├── bar
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Bar.tsx
│ │ ├── BarAnnotations.tsx
│ │ ├── BarCanvas.tsx
│ │ ├── BarItem.tsx
│ │ ├── BarLegends.tsx
│ │ ├── BarTooltip.tsx
│ │ ├── BarTotals.tsx
│ │ ├── ResponsiveBar.tsx
│ │ ├── ResponsiveBarCanvas.tsx
│ │ ├── compute
│ │ │ ├── common.ts
│ │ │ ├── grouped.ts
│ │ │ ├── index.ts
│ │ │ ├── legends.ts
│ │ │ ├── stacked.ts
│ │ │ └── totals.ts
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── renderBar.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Bar.test.tsx
│ └── tsconfig.json
├── boxplot
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── BoxPlot.tsx
│ │ ├── BoxPlotAnnotations.tsx
│ │ ├── BoxPlotItem.tsx
│ │ ├── BoxPlotLegends.tsx
│ │ ├── BoxPlotTooltip.tsx
│ │ ├── ResponsiveBoxPlot.tsx
│ │ ├── compute
│ │ │ ├── common.ts
│ │ │ ├── generation.ts
│ │ │ ├── index.ts
│ │ │ ├── legends.ts
│ │ │ └── stratification.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ └── types.ts
│ ├── tests
│ │ └── BoxPlot.test.tsx
│ └── tsconfig.json
├── bullet
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Bullet.tsx
│ │ ├── BulletItem.tsx
│ │ ├── BulletMarkers.tsx
│ │ ├── BulletMarkersItem.tsx
│ │ ├── BulletRects.tsx
│ │ ├── BulletRectsItem.tsx
│ │ ├── BulletTooltip.tsx
│ │ ├── ResponsiveBullet.tsx
│ │ ├── compute.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Bullet.test.tsx
│ └── tsconfig.json
├── bump
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── area-bump
│ │ │ ├── Area.tsx
│ │ │ ├── AreaBump.tsx
│ │ │ ├── AreaTooltip.tsx
│ │ │ ├── AreasLabels.tsx
│ │ │ ├── ResponsiveAreaBump.tsx
│ │ │ ├── compute.ts
│ │ │ ├── defaults.ts
│ │ │ ├── hooks.ts
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ ├── bump
│ │ │ ├── Bump.tsx
│ │ │ ├── Line.tsx
│ │ │ ├── LineTooltip.tsx
│ │ │ ├── LinesLabels.tsx
│ │ │ ├── Mesh.tsx
│ │ │ ├── Point.tsx
│ │ │ ├── PointTooltip.tsx
│ │ │ ├── ResponsiveBump.tsx
│ │ │ ├── compute.ts
│ │ │ ├── defaults.ts
│ │ │ ├── hooks.ts
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ └── index.ts
│ ├── tests
│ │ ├── AreaBump.test.tsx
│ │ └── Bump.test.tsx
│ └── tsconfig.json
├── calendar
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Calendar.tsx
│ │ ├── CalendarCanvas.tsx
│ │ ├── CalendarDay.tsx
│ │ ├── CalendarMonthLegends.tsx
│ │ ├── CalendarMonthPath.tsx
│ │ ├── CalendarTooltip.tsx
│ │ ├── CalendarYearLegends.tsx
│ │ ├── ResponsiveCalendar.tsx
│ │ ├── ResponsiveCalendarCanvas.tsx
│ │ ├── ResponsiveTimeRange.tsx
│ │ ├── TimeRange.tsx
│ │ ├── TimeRangeDay.tsx
│ │ ├── compute
│ │ │ ├── calendar.ts
│ │ │ └── timeRange.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ └── types.ts
│ └── tsconfig.json
├── canvas
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── roundedRect.ts
│ └── tsconfig.json
├── chord
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Chord.tsx
│ │ ├── ChordArc.tsx
│ │ ├── ChordArcTooltip.tsx
│ │ ├── ChordArcs.tsx
│ │ ├── ChordCanvas.tsx
│ │ ├── ChordLabels.tsx
│ │ ├── ChordRibbon.tsx
│ │ ├── ChordRibbonTooltip.tsx
│ │ ├── ChordRibbons.tsx
│ │ ├── ResponsiveChord.tsx
│ │ ├── ResponsiveChordCanvas.tsx
│ │ ├── compute.ts
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Chord.test.tsx
│ └── tsconfig.json
├── circle-packing
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── CircleHtml.tsx
│ │ ├── CirclePacking.tsx
│ │ ├── CirclePackingCanvas.tsx
│ │ ├── CirclePackingHtml.tsx
│ │ ├── CirclePackingTooltip.tsx
│ │ ├── CircleSvg.tsx
│ │ ├── Circles.tsx
│ │ ├── LabelHtml.tsx
│ │ ├── LabelSvg.tsx
│ │ ├── Labels.tsx
│ │ ├── ResponsiveCirclePacking.tsx
│ │ ├── ResponsiveCirclePackingCanvas.tsx
│ │ ├── ResponsiveCirclePackingHtml.tsx
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ ├── tests
│ │ ├── CirclePacking.test.tsx
│ │ └── fixtures.ts
│ └── tsconfig.json
├── colors
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ ├── inheritedColor.ts
│ │ ├── scales
│ │ │ ├── continuousColorScale.ts
│ │ │ ├── divergingColorScale.ts
│ │ │ ├── index.ts
│ │ │ ├── ordinalColorScale.ts
│ │ │ ├── quantizeColorScale.ts
│ │ │ └── sequentialColorScale.ts
│ │ └── schemes
│ │ │ ├── all.ts
│ │ │ ├── categorical.ts
│ │ │ ├── cyclical.ts
│ │ │ ├── diverging.ts
│ │ │ ├── index.ts
│ │ │ ├── interpolators.ts
│ │ │ └── sequential.ts
│ ├── tests
│ │ ├── continuousColorScale.test.ts
│ │ ├── inheritedColor.test.js
│ │ └── ordinalColorScale.test.js
│ └── tsconfig.json
├── core
│ ├── LICENSE.md
│ ├── README.md
│ ├── index.d.ts
│ ├── package.json
│ ├── src
│ │ ├── components
│ │ │ ├── ConditionalWrapper.js
│ │ │ ├── Container.js
│ │ │ ├── LegacyContainer.js
│ │ │ ├── ResponsiveWrapper.js
│ │ │ ├── SvgWrapper.js
│ │ │ ├── cartesian
│ │ │ │ ├── index.js
│ │ │ │ └── markers
│ │ │ │ │ ├── CartesianMarkers.js
│ │ │ │ │ ├── CartesianMarkersItem.js
│ │ │ │ │ └── index.js
│ │ │ ├── defs
│ │ │ │ ├── Defs.js
│ │ │ │ ├── gradients
│ │ │ │ │ ├── LinearGradient.js
│ │ │ │ │ └── index.js
│ │ │ │ ├── index.js
│ │ │ │ └── patterns
│ │ │ │ │ ├── PatternDots.js
│ │ │ │ │ ├── PatternLines.js
│ │ │ │ │ ├── PatternSquares.js
│ │ │ │ │ └── index.js
│ │ │ └── dots
│ │ │ │ ├── DotsItem.js
│ │ │ │ ├── DotsItemSymbol.js
│ │ │ │ └── index.js
│ │ ├── constants.js
│ │ ├── defaults
│ │ │ └── index.js
│ │ ├── hocs
│ │ │ ├── index.js
│ │ │ └── withContainer.js
│ │ ├── hooks
│ │ │ ├── index.js
│ │ │ ├── useAnimatedPath.js
│ │ │ ├── useChartContext.js
│ │ │ ├── useCurveInterpolation.js
│ │ │ ├── useDimensions.js
│ │ │ ├── useMeasure.js
│ │ │ └── useValueFormatter.js
│ │ ├── index.js
│ │ ├── lib
│ │ │ ├── bridge.js
│ │ │ ├── cartesian
│ │ │ │ ├── index.js
│ │ │ │ └── utils.js
│ │ │ ├── colors
│ │ │ │ ├── index.js
│ │ │ │ └── quantize.js
│ │ │ ├── defs.js
│ │ │ ├── interactivity
│ │ │ │ ├── detect.js
│ │ │ │ └── index.js
│ │ │ ├── mergeRefs.js
│ │ │ ├── noop.js
│ │ │ ├── polar
│ │ │ │ ├── index.js
│ │ │ │ ├── labels.js
│ │ │ │ └── utils.js
│ │ │ └── propertiesConverters.js
│ │ ├── motion
│ │ │ ├── context.js
│ │ │ ├── hooks.js
│ │ │ └── index.js
│ │ └── props
│ │ │ ├── curve.js
│ │ │ ├── index.js
│ │ │ └── stack.js
│ └── tests
│ │ └── lib
│ │ ├── colors
│ │ └── quantize.test.js
│ │ ├── defs.test.js
│ │ ├── getLabelGenerator.test.js
│ │ ├── interactivity
│ │ └── detect.test.js
│ │ └── polar
│ │ └── utils.test.js
├── express
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ ├── memory-storage.ts
│ │ └── validation.ts
│ └── tsconfig.json
├── funnel
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Funnel.tsx
│ │ ├── FunnelAnnotations.tsx
│ │ ├── Part.tsx
│ │ ├── PartLabel.tsx
│ │ ├── PartLabels.tsx
│ │ ├── PartTooltip.tsx
│ │ ├── Parts.tsx
│ │ ├── ResponsiveFunnel.tsx
│ │ ├── Separator.tsx
│ │ ├── Separators.tsx
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.tsx
│ │ └── types.ts
│ ├── tests
│ │ └── Funnel.test.tsx
│ └── tsconfig.json
├── generators
│ ├── .gitignore
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── boxplot.ts
│ │ ├── bullet.ts
│ │ ├── chord.ts
│ │ ├── color.ts
│ │ ├── helpers.ts
│ │ ├── index.ts
│ │ ├── network.ts
│ │ ├── parallelCoordinates.ts
│ │ ├── range.ts
│ │ ├── sankey.ts
│ │ ├── sets
│ │ │ ├── averageHeightByAge.ts
│ │ │ ├── countryCodes.ts
│ │ │ ├── index.ts
│ │ │ ├── names.ts
│ │ │ ├── programmingLanguages.ts
│ │ │ └── time.ts
│ │ ├── swarmplot.ts
│ │ ├── waffle.ts
│ │ └── xySeries.ts
│ └── tsconfig.json
├── geo
│ ├── LICENSE.md
│ ├── README.md
│ ├── index.d.ts
│ ├── package.json
│ └── src
│ │ ├── Choropleth.js
│ │ ├── ChoroplethCanvas.js
│ │ ├── ChoroplethTooltip.js
│ │ ├── GeoGraticule.js
│ │ ├── GeoMap.js
│ │ ├── GeoMapCanvas.js
│ │ ├── GeoMapFeature.js
│ │ ├── ResponsiveChoropleth.js
│ │ ├── ResponsiveChoroplethCanvas.js
│ │ ├── ResponsiveGeoMap.js
│ │ ├── ResponsiveGeoMapCanvas.js
│ │ ├── hooks.js
│ │ ├── index.js
│ │ └── props.js
├── grid
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── boundingBoxes.ts
│ │ ├── grid.ts
│ │ ├── index.ts
│ │ ├── polygon.ts
│ │ └── types.ts
│ ├── tests
│ │ ├── boundingBoxes.test.ts
│ │ ├── grid.test.ts
│ │ └── polygon.test.ts
│ └── tsconfig.json
├── heatmap
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── HeatMap.tsx
│ │ ├── HeatMapCanvas.tsx
│ │ ├── HeatMapCellAnnotations.tsx
│ │ ├── HeatMapCellCircle.tsx
│ │ ├── HeatMapCellRect.tsx
│ │ ├── HeatMapCells.tsx
│ │ ├── HeatMapTooltip.tsx
│ │ ├── ResponsiveHeatMap.tsx
│ │ ├── ResponsiveHeatMapCanvas.tsx
│ │ ├── canvas.tsx
│ │ ├── compute.ts
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ ├── tests
│ │ └── HeatMap.test.tsx
│ └── tsconfig.json
├── icicle
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Icicle.tsx
│ │ ├── IcicleHtml.tsx
│ │ ├── IcicleNodes.tsx
│ │ ├── IcicleTooltip.tsx
│ │ ├── ResponsiveIcicle.tsx
│ │ ├── ResponsiveIcicleHtml.tsx
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ └── tsconfig.json
├── jest.config.js
├── jest.setup.js
├── legends
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── canvas.ts
│ │ ├── compute.ts
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── svg
│ │ │ ├── AnchoredContinuousColorsLegendSvg.tsx
│ │ │ ├── BoxLegendSvg.tsx
│ │ │ ├── ContinuousColorsLegendSvg.tsx
│ │ │ ├── LegendSvg.tsx
│ │ │ ├── LegendSvgItem.tsx
│ │ │ ├── index.ts
│ │ │ └── symbols
│ │ │ │ ├── SymbolCircle.tsx
│ │ │ │ ├── SymbolDiamond.tsx
│ │ │ │ ├── SymbolSquare.tsx
│ │ │ │ ├── SymbolTriangle.tsx
│ │ │ │ ├── index.ts
│ │ │ │ └── types.ts
│ │ └── types.ts
│ ├── tests
│ │ └── svg
│ │ │ ├── LegendSvgItem.test.tsx
│ │ │ └── __snapshots__
│ │ │ └── LegendSvgItem.test.tsx.snap
│ └── tsconfig.json
├── line
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Areas.tsx
│ │ ├── Line.tsx
│ │ ├── LineCanvas.tsx
│ │ ├── Lines.tsx
│ │ ├── LinesItem.tsx
│ │ ├── Mesh.tsx
│ │ ├── PointTooltip.tsx
│ │ ├── Points.tsx
│ │ ├── ResponsiveLine.tsx
│ │ ├── ResponsiveLineCanvas.tsx
│ │ ├── SliceTooltip.tsx
│ │ ├── Slices.tsx
│ │ ├── SlicesItem.tsx
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Line.test.tsx
│ └── tsconfig.json
├── marimekko
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Bar.tsx
│ │ ├── BarTooltip.tsx
│ │ ├── Bars.tsx
│ │ ├── Marimekko.tsx
│ │ ├── ResponsiveMarimekko.tsx
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Marimekko.test.tsx
│ └── tsconfig.json
├── network
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Network.tsx
│ │ ├── NetworkCanvas.tsx
│ │ ├── NetworkLink.tsx
│ │ ├── NetworkLinks.tsx
│ │ ├── NetworkNode.tsx
│ │ ├── NetworkNodeAnnotations.tsx
│ │ ├── NetworkNodeTooltip.tsx
│ │ ├── NetworkNodes.tsx
│ │ ├── ResponsiveNetwork.tsx
│ │ ├── ResponsiveNetworkCanvas.tsx
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── renderCanvasLink.ts
│ │ ├── renderCanvasNode.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Network.test.tsx
│ └── tsconfig.json
├── parallel-coordinates
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── ParallelCoordinatesLineTooltip.tsx
│ │ ├── canvas
│ │ │ ├── ParallelCoordinatesCanvas.tsx
│ │ │ ├── ResponsiveParallelCoordinatesCanvas.tsx
│ │ │ └── index.ts
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── svg
│ │ │ ├── ParallelCoordinates.tsx
│ │ │ ├── ParallelCoordinatesLine.tsx
│ │ │ ├── ResponsiveParallelCoordinates.tsx
│ │ │ └── index.ts
│ │ └── types.ts
│ ├── tests
│ │ └── ParallelCoordinates.test.tsx
│ └── tsconfig.json
├── pie
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Arcs.tsx
│ │ ├── Pie.tsx
│ │ ├── PieCanvas.tsx
│ │ ├── PieLegends.tsx
│ │ ├── PieTooltip.tsx
│ │ ├── ResponsivePie.tsx
│ │ ├── ResponsivePieCanvas.tsx
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Pie.test.tsx
│ └── tsconfig.json
├── polar-axes
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── CircularAxis.tsx
│ │ ├── CircularAxisTick.tsx
│ │ ├── CircularGrid.tsx
│ │ ├── PolarGrid.tsx
│ │ ├── RadialAxis.tsx
│ │ ├── RadialAxisTick.tsx
│ │ ├── RadialGrid.tsx
│ │ ├── index.ts
│ │ └── types.ts
│ └── tsconfig.json
├── polar-bar
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── PolarBar.tsx
│ │ ├── PolarBarArcs.tsx
│ │ ├── PolarBarTooltip.tsx
│ │ ├── ResponsivePolarBar.tsx
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ ├── tests
│ │ └── PolarBar.test.tsx
│ └── tsconfig.json
├── radar
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Radar.tsx
│ │ ├── RadarDots.tsx
│ │ ├── RadarGrid.tsx
│ │ ├── RadarGridLabel.tsx
│ │ ├── RadarGridLabels.tsx
│ │ ├── RadarGridLevels.tsx
│ │ ├── RadarLayer.tsx
│ │ ├── RadarSlice.tsx
│ │ ├── RadarSliceTooltip.tsx
│ │ ├── RadarSlices.tsx
│ │ ├── ResponsiveRadar.tsx
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Radar.test.tsx
│ └── tsconfig.json
├── radial-bar
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── RadialBar.tsx
│ │ ├── RadialBarArcs.tsx
│ │ ├── RadialBarTooltip.tsx
│ │ ├── RadialBarTracks.tsx
│ │ ├── ResponsiveRadialBar.tsx
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ └── types.ts
│ ├── tests
│ │ └── RadialBar.test.tsx
│ └── tsconfig.json
├── rects
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── RectNodeHtml.tsx
│ │ ├── RectNodeSvg.tsx
│ │ ├── RectNodeWrapper.tsx
│ │ ├── RectNodes.tsx
│ │ ├── RoundedRect.tsx
│ │ ├── constants.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── labels
│ │ │ ├── RectLabelHtml.tsx
│ │ │ ├── RectLabelSvg.tsx
│ │ │ ├── RectLabels.tsx
│ │ │ ├── compute.ts
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ ├── types.ts
│ │ ├── useRectAnchorsTransition.ts
│ │ └── useRectsTransition.ts
│ └── tsconfig.json
├── sankey
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── ResponsiveSankey.tsx
│ │ ├── Sankey.tsx
│ │ ├── SankeyLabels.tsx
│ │ ├── SankeyLinkGradient.tsx
│ │ ├── SankeyLinkTooltip.tsx
│ │ ├── SankeyLinks.tsx
│ │ ├── SankeyLinksItem.tsx
│ │ ├── SankeyNodeTooltip.tsx
│ │ ├── SankeyNodes.tsx
│ │ ├── SankeyNodesItem.tsx
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── links.ts
│ │ ├── props.ts
│ │ └── types.ts
│ └── tsconfig.json
├── scales
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── bandScale.ts
│ │ ├── compute.ts
│ │ ├── index.ts
│ │ ├── linearScale.ts
│ │ ├── logScale.ts
│ │ ├── pointScale.ts
│ │ ├── symlogScale.ts
│ │ ├── ticks.ts
│ │ ├── timeHelpers.ts
│ │ ├── timeScale.ts
│ │ └── types.ts
│ ├── tests
│ │ ├── compute.test.ts
│ │ ├── linearScale.test.ts
│ │ ├── symlogScale.test.ts
│ │ ├── ticks.test.ts
│ │ └── timeHelpers.test.ts
│ └── tsconfig.json
├── scatterplot
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Mesh.tsx
│ │ ├── Node.tsx
│ │ ├── Nodes.tsx
│ │ ├── ResponsiveScatterPlot.tsx
│ │ ├── ResponsiveScatterPlotCanvas.tsx
│ │ ├── ScatterPlot.tsx
│ │ ├── ScatterPlotAnnotations.tsx
│ │ ├── ScatterPlotCanvas.tsx
│ │ ├── Tooltip.tsx
│ │ ├── compute.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.tsx
│ │ └── types.ts
│ ├── tests
│ │ └── ScatterPlot.test.tsx
│ └── tsconfig.json
├── static
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ ├── mappings
│ │ │ ├── bar.ts
│ │ │ ├── calendar.ts
│ │ │ ├── chord.ts
│ │ │ ├── circle_packing.ts
│ │ │ ├── common.ts
│ │ │ ├── commons
│ │ │ │ ├── colors.ts
│ │ │ │ ├── curves.ts
│ │ │ │ ├── dimensions.ts
│ │ │ │ └── scales.ts
│ │ │ ├── heatmap.ts
│ │ │ ├── icicle.ts
│ │ │ ├── index.ts
│ │ │ ├── line.ts
│ │ │ ├── pie.ts
│ │ │ ├── radar.ts
│ │ │ ├── sankey.ts
│ │ │ ├── sunburst.ts
│ │ │ └── treemap.ts
│ │ ├── renderer.ts
│ │ ├── samples
│ │ │ └── index.ts
│ │ └── types.ts
│ └── tsconfig.json
├── stream
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── LayerTooltip.tsx
│ │ ├── ResponsiveStream.tsx
│ │ ├── StackTooltip.tsx
│ │ ├── Stream.tsx
│ │ ├── StreamDots.tsx
│ │ ├── StreamDotsItem.tsx
│ │ ├── StreamLayer.tsx
│ │ ├── StreamLayers.tsx
│ │ ├── StreamSlices.tsx
│ │ ├── StreamSlicesItem.tsx
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Stream.test.tsx
│ └── tsconfig.json
├── sunburst
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Arcs.tsx
│ │ ├── ResponsiveSunburst.tsx
│ │ ├── Sunburst.tsx
│ │ ├── SunburstTooltip.tsx
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Sunburst.test.tsx
│ └── tsconfig.json
├── swarmplot
│ ├── LICENSE.md
│ ├── README.md
│ ├── doc
│ │ ├── swarmplot-canvas.png
│ │ └── swarmplot.png
│ ├── package.json
│ ├── src
│ │ ├── CircleSvg.tsx
│ │ ├── Circles.tsx
│ │ ├── ResponsiveSwarmPlot.tsx
│ │ ├── ResponsiveSwarmPlotCanvas.tsx
│ │ ├── SwarmPlot.tsx
│ │ ├── SwarmPlotAnnotations.tsx
│ │ ├── SwarmPlotCanvas.tsx
│ │ ├── SwarmPlotTooltip.tsx
│ │ ├── compute.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── props.ts
│ │ └── types.ts
│ ├── tests
│ │ ├── Swarmplot.test.tsx
│ │ └── compute.test.tsx
│ └── tsconfig.json
├── text
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Text.tsx
│ │ ├── boxAnchor.ts
│ │ ├── canvas.ts
│ │ └── index.ts
│ └── tsconfig.json
├── theming
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── borderRadius.ts
│ │ ├── bridge.ts
│ │ ├── context.tsx
│ │ ├── defaults.ts
│ │ ├── extend.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ └── tsconfig.json
├── tooltip
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── BasicTooltip.tsx
│ │ ├── Chip.tsx
│ │ ├── Crosshair.tsx
│ │ ├── CrosshairLine.tsx
│ │ ├── TableTooltip.tsx
│ │ ├── Tooltip.tsx
│ │ ├── TooltipProvider.tsx
│ │ ├── TooltipWrapper.tsx
│ │ ├── context.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ └── types.ts
│ └── tsconfig.json
├── tree
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Label.tsx
│ │ ├── Labels.tsx
│ │ ├── Link.tsx
│ │ ├── Links.tsx
│ │ ├── Mesh.tsx
│ │ ├── Node.tsx
│ │ ├── Nodes.tsx
│ │ ├── ResponsiveTree.tsx
│ │ ├── ResponsiveTreeCanvas.tsx
│ │ ├── Tree.tsx
│ │ ├── TreeCanvas.tsx
│ │ ├── canvas.ts
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── labelsHooks.ts
│ │ └── types.ts
│ ├── tests
│ │ └── Tree.test.tsx
│ └── tsconfig.json
├── treemap
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── ResponsiveTreeMap.tsx
│ │ ├── ResponsiveTreeMapCanvas.tsx
│ │ ├── ResponsiveTreeMapHtml.tsx
│ │ ├── TreeMap.tsx
│ │ ├── TreeMapCanvas.tsx
│ │ ├── TreeMapHtml.tsx
│ │ ├── TreeMapHtmlNode.tsx
│ │ ├── TreeMapNode.tsx
│ │ ├── TreeMapNodeTooltip.tsx
│ │ ├── TreeMapNodes.tsx
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── tiling.ts
│ │ ├── transitions.ts
│ │ └── types.ts
│ ├── tests
│ │ └── TreeMap.test.tsx
│ └── tsconfig.json
├── voronoi
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── Mesh.tsx
│ │ ├── ResponsiveVoronoi.tsx
│ │ ├── Voronoi.tsx
│ │ ├── computeMesh.ts
│ │ ├── defaults.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── meshCanvas.ts
│ │ ├── props.ts
│ │ └── types.ts
│ ├── tests
│ │ └── computeMesh.test.ts
│ └── tsconfig.json
└── waffle
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ ├── ResponsiveWaffle.tsx
│ ├── ResponsiveWaffleCanvas.tsx
│ ├── ResponsiveWaffleHtml.tsx
│ ├── Waffle.tsx
│ ├── WaffleArea.tsx
│ ├── WaffleAreaHtml.tsx
│ ├── WaffleAreas.tsx
│ ├── WaffleAreasHtml.tsx
│ ├── WaffleCanvas.tsx
│ ├── WaffleCell.tsx
│ ├── WaffleCellHtml.tsx
│ ├── WaffleCells.tsx
│ ├── WaffleCellsHtml.tsx
│ ├── WaffleHtml.tsx
│ ├── WaffleTooltip.tsx
│ ├── defaults.ts
│ ├── hooks.ts
│ ├── index.ts
│ └── types.ts
│ ├── tests
│ ├── Waffle.test.tsx
│ ├── WaffleHtml.test.tsx
│ └── __snapshots__
│ │ ├── Waffle.test.tsx.snap
│ │ └── WaffleHtml.test.tsx.snap
│ └── tsconfig.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── scripts
└── capture.mjs
├── storybook
├── .storybook
│ ├── global.css
│ ├── main.js
│ └── preview.js
├── package.json
└── stories
│ ├── assets
│ └── imgs
│ │ ├── betulaceae.png
│ │ ├── conifers.png
│ │ ├── cupressaceae.png
│ │ ├── deciduous_broadleaf.png
│ │ ├── ericaceae.png
│ │ ├── fagaceae.png
│ │ ├── flowering_fruiting_trees.png
│ │ ├── leguminosae.png
│ │ ├── moraceae.png
│ │ ├── myrtaceae.png
│ │ ├── pinaceae.png
│ │ ├── rosaceae.png
│ │ ├── sapindaceae.png
│ │ ├── shimpaku.png
│ │ ├── theaceae.png
│ │ ├── tropicals_subtropicals.png
│ │ └── ulmaceae.png
│ ├── bar
│ ├── Bar.stories.tsx
│ ├── BarCanvas.stories._tsx
│ └── ResponsivBarCanvas.stories._tsx
│ ├── boxplot
│ ├── BoxPlot.stories.tsx
│ └── BoxPlotCustomGroupsAndLayers.tsx
│ ├── bullet
│ └── Bullet.stories.tsx
│ ├── bump
│ ├── AreaBump.stories.tsx
│ └── Bump.stories.tsx
│ ├── calendar
│ ├── Calendar.stories.tsx
│ ├── CalendarCanvas.stories.tsx
│ └── TimeRange.stories.tsx
│ ├── chord
│ └── Chord.stories.tsx
│ ├── circle-packing
│ ├── CirclePacking.stories.tsx
│ └── CirclePackingHtml.stories.tsx
│ ├── funnel
│ ├── Clustering.tsx
│ └── Funnel.stories.tsx
│ ├── heatmap
│ ├── CustomTooltip.tsx
│ ├── HeatMap.stories.tsx
│ ├── HeatMapCanvas.stories.tsx
│ ├── customInterpolator.tsx
│ └── data.ts
│ ├── icicle
│ ├── BonsaisIcicle.tsx
│ ├── Icicle.stories.tsx
│ ├── IcicleHtml.stories.tsx
│ ├── bonsais.ts
│ └── shared.tsx
│ ├── internal
│ ├── KeyLogger.tsx
│ └── helpers.ts
│ ├── line
│ ├── Line.stories.tsx
│ ├── LineCanvas.stories.tsx
│ └── shared.ts
│ ├── marimekko
│ └── Marimekko.stories.tsx
│ ├── network
│ ├── Network.stories.tsx
│ └── NetworkCanvas.stories.tsx
│ ├── nivo-theme.ts
│ ├── parallel-coordinates
│ ├── CustomTooltip.tsx
│ └── ParallelCoordinates.stories.tsx
│ ├── pie
│ ├── Pie.stories.tsx
│ └── PieCanvas.stories.tsx
│ ├── radar
│ └── Radar.stories.tsx
│ ├── radial-bar
│ └── RadialBar.stories.tsx
│ ├── rects
│ └── RectsNodes.stories.tsx
│ ├── sankey
│ └── Sankey.stories.tsx
│ ├── scatterplot
│ ├── ScatterPlot.stories.tsx
│ └── ScatterPlotCanvas.stories.tsx
│ ├── stream
│ └── Stream.stories.tsx
│ ├── sunburst
│ └── Sunburst.stories.tsx
│ ├── swarmplot
│ ├── SwarmPlot.stories.tsx
│ ├── SwarmPlotCanvas.stories.tsx
│ ├── SwarmPlotCustomCircle.tsx
│ └── SwarmPlotExtraLayers.tsx
│ ├── tree
│ ├── Tree.stories.tsx
│ └── TreeCanvas.stories.tsx
│ ├── treemap
│ ├── TreeMap.stories.tsx
│ └── TreeMapHtml.stories.tsx
│ ├── voronoi
│ └── Voronoi.stories.tsx
│ └── waffle
│ ├── CustomTooltip.tsx
│ ├── Waffle.stories.tsx
│ ├── WaffleCanvas.stories.tsx
│ └── WaffleHtml.stories.tsx
├── tsconfig.json
├── tsconfig.monorepo.json
├── tsconfig.types.json
└── website
├── .gitignore
├── gatsby-browser.tsx
├── gatsby-config.ts
├── gatsby-node.js
├── gatsby-ssr.tsx
├── package.json
├── sandbox.config.json
├── src
├── @types
│ ├── file_types.d.ts
│ └── styled.d.ts
├── assets
│ ├── captures
│ │ ├── area-bump.png
│ │ ├── bar-canvas.png
│ │ ├── bar.png
│ │ ├── bullet.png
│ │ ├── bump.png
│ │ ├── calendar.png
│ │ ├── chord-canvas.png
│ │ ├── chord.png
│ │ ├── choropleth-canvas.png
│ │ ├── choropleth.png
│ │ ├── circle-packing-canvas.png
│ │ ├── circle-packing.png
│ │ ├── funnel.png
│ │ ├── geomap-canvas.png
│ │ ├── geomap.png
│ │ ├── heatmap-canvas.png
│ │ ├── heatmap.png
│ │ ├── home
│ │ │ ├── area-bump.png
│ │ │ ├── bar-horizontal.png
│ │ │ ├── bar-vertical.png
│ │ │ ├── bump.png
│ │ │ ├── calendar.png
│ │ │ ├── chord.png
│ │ │ ├── choropleth.png
│ │ │ ├── circle-packing.png
│ │ │ ├── icicle.png
│ │ │ ├── line.png
│ │ │ ├── marimekko.png
│ │ │ ├── pie.png
│ │ │ ├── radar.png
│ │ │ ├── radial-bar.png
│ │ │ ├── sankey.png
│ │ │ ├── stream.png
│ │ │ ├── sunburst.png
│ │ │ ├── swarmplot.png
│ │ │ ├── treemap.png
│ │ │ └── voronoi.png
│ │ ├── icicle.png
│ │ ├── line-canvas.png
│ │ ├── line.png
│ │ ├── marimekko.png
│ │ ├── network-canvas.png
│ │ ├── network.png
│ │ ├── pages
│ │ │ └── home.png
│ │ ├── parallel-coordinates-canvas.png
│ │ ├── parallel-coordinates.png
│ │ ├── pie-canvas.png
│ │ ├── pie.png
│ │ ├── polar-bar.png
│ │ ├── radar.png
│ │ ├── radial-bar.png
│ │ ├── sankey.png
│ │ ├── scatterplot-canvas.png
│ │ ├── scatterplot.png
│ │ ├── stream.png
│ │ ├── sunburst.png
│ │ ├── swarmplot-canvas.png
│ │ ├── swarmplot.png
│ │ ├── tree.png
│ │ ├── treemap-canvas.png
│ │ ├── treemap-html.png
│ │ ├── treemap.png
│ │ ├── voronoi.png
│ │ ├── waffle-canvas.png
│ │ ├── waffle-html.png
│ │ └── waffle.png
│ ├── icons.png
│ ├── icons
│ │ ├── area-bump-dark-colored.png
│ │ ├── area-bump-dark-neutral.png
│ │ ├── area-bump-light-colored.png
│ │ ├── area-bump-light-neutral.png
│ │ ├── bar-dark-colored.png
│ │ ├── bar-dark-neutral.png
│ │ ├── bar-light-colored.png
│ │ ├── bar-light-neutral.png
│ │ ├── boxplot-dark-colored.png
│ │ ├── boxplot-dark-neutral.png
│ │ ├── boxplot-light-colored.png
│ │ ├── boxplot-light-neutral.png
│ │ ├── bullet-dark-colored.png
│ │ ├── bullet-dark-neutral.png
│ │ ├── bullet-light-colored.png
│ │ ├── bullet-light-neutral.png
│ │ ├── bump-dark-colored.png
│ │ ├── bump-dark-neutral.png
│ │ ├── bump-light-colored.png
│ │ ├── bump-light-neutral.png
│ │ ├── calendar-dark-colored.png
│ │ ├── calendar-dark-neutral.png
│ │ ├── calendar-light-colored.png
│ │ ├── calendar-light-neutral.png
│ │ ├── chord-dark-colored.png
│ │ ├── chord-dark-neutral.png
│ │ ├── chord-light-colored.png
│ │ ├── chord-light-neutral.png
│ │ ├── choropleth-dark-colored.png
│ │ ├── choropleth-dark-neutral.png
│ │ ├── choropleth-light-colored.png
│ │ ├── choropleth-light-neutral.png
│ │ ├── circle-packing-dark-colored.png
│ │ ├── circle-packing-dark-neutral.png
│ │ ├── circle-packing-light-colored.png
│ │ ├── circle-packing-light-neutral.png
│ │ ├── code-dark-colored.png
│ │ ├── code-dark-neutral.png
│ │ ├── code-light-colored.png
│ │ ├── code-light-neutral.png
│ │ ├── data-dark-colored.png
│ │ ├── data-dark-neutral.png
│ │ ├── data-light-colored.png
│ │ ├── data-light-neutral.png
│ │ ├── funnel-dark-colored.png
│ │ ├── funnel-dark-neutral.png
│ │ ├── funnel-light-colored.png
│ │ ├── funnel-light-neutral.png
│ │ ├── geomap-dark-colored.png
│ │ ├── geomap-dark-neutral.png
│ │ ├── geomap-light-colored.png
│ │ ├── geomap-light-neutral.png
│ │ ├── heatmap-dark-colored.png
│ │ ├── heatmap-dark-neutral.png
│ │ ├── heatmap-light-colored.png
│ │ ├── heatmap-light-neutral.png
│ │ ├── icicle-dark-colored.png
│ │ ├── icicle-dark-neutral.png
│ │ ├── icicle-light-colored.png
│ │ ├── icicle-light-neutral.png
│ │ ├── line-dark-colored.png
│ │ ├── line-dark-neutral.png
│ │ ├── line-light-colored.png
│ │ ├── line-light-neutral.png
│ │ ├── marimekko-dark-colored.png
│ │ ├── marimekko-dark-neutral.png
│ │ ├── marimekko-light-colored.png
│ │ ├── marimekko-light-neutral.png
│ │ ├── network-dark-colored.png
│ │ ├── network-dark-neutral.png
│ │ ├── network-light-colored.png
│ │ ├── network-light-neutral.png
│ │ ├── nivo-icon.png
│ │ ├── parallel-coordinates-dark-colored.png
│ │ ├── parallel-coordinates-dark-neutral.png
│ │ ├── parallel-coordinates-light-colored.png
│ │ ├── parallel-coordinates-light-neutral.png
│ │ ├── pie-dark-colored.png
│ │ ├── pie-dark-neutral.png
│ │ ├── pie-light-colored.png
│ │ ├── pie-light-neutral.png
│ │ ├── polar-bar-dark-colored.png
│ │ ├── polar-bar-dark-neutral.png
│ │ ├── polar-bar-light-colored.png
│ │ ├── polar-bar-light-neutral.png
│ │ ├── radar-dark-colored.png
│ │ ├── radar-dark-neutral.png
│ │ ├── radar-light-colored.png
│ │ ├── radar-light-neutral.png
│ │ ├── radial-bar-dark-colored.png
│ │ ├── radial-bar-dark-neutral.png
│ │ ├── radial-bar-light-colored.png
│ │ ├── radial-bar-light-neutral.png
│ │ ├── sankey-dark-colored.png
│ │ ├── sankey-dark-neutral.png
│ │ ├── sankey-grey.png
│ │ ├── sankey-light-colored.png
│ │ ├── sankey-light-neutral.png
│ │ ├── sankey-red.png
│ │ ├── scatterplot-dark-colored.png
│ │ ├── scatterplot-dark-neutral.png
│ │ ├── scatterplot-light-colored.png
│ │ ├── scatterplot-light-neutral.png
│ │ ├── sprite.conf
│ │ ├── stream-dark-colored.png
│ │ ├── stream-dark-neutral.png
│ │ ├── stream-light-colored.png
│ │ ├── stream-light-neutral.png
│ │ ├── sunburst-dark-colored.png
│ │ ├── sunburst-dark-neutral.png
│ │ ├── sunburst-grey.png
│ │ ├── sunburst-light-colored.png
│ │ ├── sunburst-light-neutral.png
│ │ ├── sunburst-red.png
│ │ ├── swarmplot-dark-colored.png
│ │ ├── swarmplot-dark-neutral.png
│ │ ├── swarmplot-light-colored.png
│ │ ├── swarmplot-light-neutral.png
│ │ ├── time-range-dark-colored.png
│ │ ├── time-range-dark-neutral.png
│ │ ├── time-range-light-colored.png
│ │ ├── time-range-light-neutral.png
│ │ ├── tree-dark-colored.png
│ │ ├── tree-dark-neutral.png
│ │ ├── tree-light-colored.png
│ │ ├── tree-light-neutral.png
│ │ ├── treemap-dark-colored.png
│ │ ├── treemap-dark-neutral.png
│ │ ├── treemap-grey.png
│ │ ├── treemap-light-colored.png
│ │ ├── treemap-light-neutral.png
│ │ ├── treemap-red.png
│ │ ├── voronoi-dark-colored.png
│ │ ├── voronoi-dark-neutral.png
│ │ ├── voronoi-grey.png
│ │ ├── voronoi-light-colored.png
│ │ ├── voronoi-light-neutral.png
│ │ ├── voronoi-red.png
│ │ ├── waffle-dark-colored.png
│ │ ├── waffle-dark-neutral.png
│ │ ├── waffle-light-colored.png
│ │ └── waffle-light-neutral.png
│ ├── icons@2x.png
│ ├── nivo-logo.png
│ └── stories
│ │ ├── SwarmPlotLayers.png
│ │ └── SwarmPlotRenderNode.png
├── components
│ ├── CodeBlock.tsx
│ ├── CollapsibleCard.tsx
│ ├── Header.tsx
│ ├── Highlight.tsx
│ ├── Layout.tsx
│ ├── Markdown.tsx
│ ├── PageContent.ts
│ ├── PageWrapper.tsx
│ ├── RootWrapper.tsx
│ ├── Seo.tsx
│ ├── ThemeSelector.tsx
│ ├── components
│ │ ├── ActionsLogger.tsx
│ │ ├── ActionsLoggerLog.tsx
│ │ ├── ChartCaptureEffect.tsx
│ │ ├── ComponentDescription.tsx
│ │ ├── ComponentFlavorSelector.tsx
│ │ ├── ComponentHeader.tsx
│ │ ├── ComponentPage.tsx
│ │ ├── ComponentSettings.tsx
│ │ ├── ComponentSettingsGroup.tsx
│ │ ├── ComponentTabs.tsx
│ │ ├── ComponentTemplate.tsx
│ │ ├── Stories.tsx
│ │ ├── api-client
│ │ │ ├── ApiClient.tsx
│ │ │ ├── ApiPreview.tsx
│ │ │ ├── ApiResponse.tsx
│ │ │ ├── ApiSubmit.tsx
│ │ │ └── ApiTabs.tsx
│ │ └── explorer
│ │ │ ├── ComponentsExplorer.tsx
│ │ │ ├── ComponentsFilters.tsx
│ │ │ ├── ComponentsGrid.tsx
│ │ │ ├── ComponentsGridItem.tsx
│ │ │ ├── ComponentsSearch.tsx
│ │ │ └── index.ts
│ ├── controls
│ │ ├── ControlsGroup.tsx
│ │ ├── ControlsGroups.tsx
│ │ ├── colors
│ │ │ ├── BlendModeControl.tsx
│ │ │ ├── BulletColorsControl.tsx
│ │ │ ├── ColorInterpolatorsControl.tsx
│ │ │ ├── ColorPickerControl.tsx
│ │ │ ├── ColorsControlItem.tsx
│ │ │ ├── ContinuousColorsControl.tsx
│ │ │ ├── InheritedColorControl.tsx
│ │ │ ├── InheritedColorModifierControl.tsx
│ │ │ ├── OpacityControl.tsx
│ │ │ ├── OrdinalColorsControl.tsx
│ │ │ ├── QuantizeColorsControl.tsx
│ │ │ ├── colorSchemeSelect.tsx
│ │ │ └── index.ts
│ │ ├── generics
│ │ │ ├── ArrayControl.tsx
│ │ │ ├── ChoicesControl.tsx
│ │ │ ├── NumberArrayControl.tsx
│ │ │ ├── ObjectControl.tsx
│ │ │ ├── PropertyDocumentation.tsx
│ │ │ ├── RadioControl.tsx
│ │ │ ├── RangeControl.tsx
│ │ │ ├── SwitchControl.tsx
│ │ │ ├── SwitchableRangeControl.tsx
│ │ │ ├── TextControl.tsx
│ │ │ └── index.ts
│ │ ├── specialized
│ │ │ ├── AngleControl.tsx
│ │ │ ├── AnnotationsControl.tsx
│ │ │ ├── BorderRadiusControl.tsx
│ │ │ ├── BoxAnchorControl.tsx
│ │ │ ├── CartesianOrientationControl.tsx
│ │ │ ├── LineWidthControl.tsx
│ │ │ ├── MarginControl.tsx
│ │ │ ├── MotionConfigControl.tsx
│ │ │ ├── ScaleControl.tsx
│ │ │ ├── ValueFormatControl.tsx
│ │ │ └── index.ts
│ │ ├── types.ts
│ │ └── ui
│ │ │ ├── Control.tsx
│ │ │ ├── Help.tsx
│ │ │ ├── Label.ts
│ │ │ ├── PropertyDescription.tsx
│ │ │ ├── PropertyFlavors.tsx
│ │ │ ├── PropertyHeader.tsx
│ │ │ ├── Radio.tsx
│ │ │ ├── Select.tsx
│ │ │ ├── Switch.tsx
│ │ │ ├── TextInput.tsx
│ │ │ ├── index.ts
│ │ │ └── styled.tsx
│ ├── guides
│ │ ├── CollapsibleTextExplanation.tsx
│ │ ├── GuideDemoBlock.tsx
│ │ ├── axes
│ │ │ ├── AxesLegend.tsx
│ │ │ ├── AxesPosition.tsx
│ │ │ ├── AxesTicks.tsx
│ │ │ ├── index.ts
│ │ │ ├── scales.tsx
│ │ │ └── theme.tsx
│ │ ├── colors
│ │ │ ├── ColorsColor.js
│ │ │ ├── ColorsIllustrations.js
│ │ │ └── ColorsRanges.js
│ │ ├── gradients
│ │ │ ├── GradientsExample.js
│ │ │ └── GradientsIllustrations.js
│ │ ├── legends
│ │ │ ├── LegendDirection.tsx
│ │ │ ├── LegendItemDirection.tsx
│ │ │ ├── LegendPosition.tsx
│ │ │ ├── SymbolShape.tsx
│ │ │ └── index.ts
│ │ ├── patterns
│ │ │ ├── PatternsDotsDemo.tsx
│ │ │ ├── PatternsExample.tsx
│ │ │ ├── PatternsIllustrations.tsx
│ │ │ ├── PatternsLinesDemo.tsx
│ │ │ ├── PatternsSquaresDemo.tsx
│ │ │ └── index.ts
│ │ ├── scales
│ │ │ ├── ScaleBand.tsx
│ │ │ ├── ScaleBandDemo.tsx
│ │ │ ├── ScaleConfig.tsx
│ │ │ ├── ScaleGuide.tsx
│ │ │ ├── ScaleLinear.tsx
│ │ │ ├── ScaleLinearDemo.tsx
│ │ │ ├── ScaleLog.tsx
│ │ │ ├── ScaleLogDemo.tsx
│ │ │ ├── ScaleSymlog.tsx
│ │ │ ├── ScaleSymlogDemo.tsx
│ │ │ ├── ScaleUseCase.tsx
│ │ │ ├── demo.tsx
│ │ │ ├── index.ts
│ │ │ ├── scalesConfig.ts
│ │ │ └── types.ts
│ │ └── theming
│ │ │ ├── ThemedBar.tsx
│ │ │ ├── ThemedHeatMap.tsx
│ │ │ ├── ThemedLine.tsx
│ │ │ ├── ThemedRadialBar.tsx
│ │ │ ├── defaults.ts
│ │ │ ├── index.ts
│ │ │ └── props.ts
│ ├── home
│ │ ├── Home.tsx
│ │ ├── HomeAreaBumpDemo.tsx
│ │ ├── HomeBarDemo.tsx
│ │ ├── HomeBumpDemo.tsx
│ │ ├── HomeCalendarDemo.tsx
│ │ ├── HomeChordDemo.tsx
│ │ ├── HomeChoroplethDemo.tsx
│ │ ├── HomeCirclePackingDemo.tsx
│ │ ├── HomeIcicleDemo.tsx
│ │ ├── HomeLineDemo.tsx
│ │ ├── HomeMarimekkoDemo.tsx
│ │ ├── HomePieDemo.tsx
│ │ ├── HomeRadarDemo.tsx
│ │ ├── HomeRadialBarDemo.tsx
│ │ ├── HomeSankeyDemo.tsx
│ │ ├── HomeStreamDemo.tsx
│ │ ├── HomeSunburstDemo.tsx
│ │ ├── HomeSwarmPlotDemo.tsx
│ │ ├── HomeTreeMapDemo.tsx
│ │ ├── HomeVoronoiDemo.tsx
│ │ ├── dimensions.ts
│ │ ├── index.ts
│ │ └── theme.ts
│ ├── icons
│ │ ├── AreaBumpIcon.tsx
│ │ ├── BarIcon.tsx
│ │ ├── BoxPlotIcon.tsx
│ │ ├── BulletIcon.tsx
│ │ ├── BumpIcon.tsx
│ │ ├── CalendarIcon.tsx
│ │ ├── ChordIcon.tsx
│ │ ├── ChoroplethIcon.tsx
│ │ ├── CirclePackingIcon.tsx
│ │ ├── CodeIcon.tsx
│ │ ├── DataIcon.tsx
│ │ ├── FunnelIcon.tsx
│ │ ├── GeoMapIcon.tsx
│ │ ├── HeatMapIcon.tsx
│ │ ├── IcicleIcon.tsx
│ │ ├── Icons.tsx
│ │ ├── LineIcon.tsx
│ │ ├── MapIcon.tsx
│ │ ├── MarimekkoIcon.tsx
│ │ ├── NetworkIcon.tsx
│ │ ├── ParallelCoordinatesIcon.tsx
│ │ ├── PieIcon.tsx
│ │ ├── PolarBarIcon.tsx
│ │ ├── RadarIcon.tsx
│ │ ├── RadialBarIcon.tsx
│ │ ├── SankeyIcon.tsx
│ │ ├── ScatterPlotIcon.tsx
│ │ ├── StreamIcon.tsx
│ │ ├── SunburstIcon.tsx
│ │ ├── SwarmPlotIcon.tsx
│ │ ├── TimeRangeIcon.tsx
│ │ ├── TreeIcon.tsx
│ │ ├── TreeMapIcon.tsx
│ │ ├── VoronoiIcon.tsx
│ │ ├── WaffleIcon.tsx
│ │ ├── styled.tsx
│ │ └── types.ts
│ ├── nav
│ │ ├── FloatingMiniToc.tsx
│ │ ├── FullNav.tsx
│ │ ├── FullNavComponentLink.tsx
│ │ ├── HeaderNav.tsx
│ │ ├── MiniNav.tsx
│ │ ├── MiniNavLink.tsx
│ │ ├── NavToggleButton.tsx
│ │ └── index.ts
│ └── styled.ts
├── data
│ ├── components
│ │ ├── area-bump
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── bar
│ │ │ ├── generator.ts
│ │ │ ├── mapper.tsx
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── boxplot
│ │ │ ├── generator.ts
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── bullet
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── bump
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── calendar
│ │ │ ├── mapper.tsx
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── chord
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── choropleth
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── circle-packing
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── funnel
│ │ │ ├── generator.ts
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── geo
│ │ │ ├── generator.ts
│ │ │ ├── mapper.tsx
│ │ │ ├── props.ts
│ │ │ └── world_countries.json
│ │ ├── geomap
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── heatmap
│ │ │ ├── generator.ts
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ ├── props.ts
│ │ │ └── types.ts
│ │ ├── icicle
│ │ │ ├── mapper.tsx
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── line
│ │ │ ├── defaults.ts
│ │ │ ├── generator.ts
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── marimekko
│ │ │ ├── mapper.tsx
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── network
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── parallel-coordinates
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ ├── props.ts
│ │ │ └── variables.ts
│ │ ├── pie
│ │ │ ├── mapper.tsx
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── polar-bar
│ │ │ ├── generator.ts
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── radar
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── radial-bar
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── sankey
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── scatterplot
│ │ │ ├── generator.ts
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── stream
│ │ │ ├── defaults.ts
│ │ │ ├── generator.ts
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── sunburst
│ │ │ ├── mapper.tsx
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── swarmplot
│ │ │ ├── generator.ts
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── time-range
│ │ │ ├── mapper.tsx
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── tree
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── treemap
│ │ │ ├── generator.ts
│ │ │ ├── mapper.ts
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ ├── voronoi
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ │ └── waffle
│ │ │ ├── mapper.tsx
│ │ │ ├── meta.yml
│ │ │ └── props.ts
│ ├── config.ts
│ └── nav.ts
├── lib
│ ├── chart-properties
│ │ ├── accessibility.ts
│ │ ├── annotations.ts
│ │ ├── axes.ts
│ │ ├── chart-dimensions.ts
│ │ ├── colors.ts
│ │ ├── grid.ts
│ │ ├── index.ts
│ │ ├── interactivity.ts
│ │ └── ref.ts
│ ├── componentProperties.ts
│ ├── generateChartCode.ts
│ ├── objectDiff.ts
│ ├── property-mappers
│ │ ├── index.ts
│ │ ├── mapAxis.ts
│ │ ├── mapFormat.ts
│ │ └── mapLegends.ts
│ ├── settings.ts
│ ├── useCopyToClipboard.ts
│ └── useLocalStorage.js
├── pages
│ ├── 404.tsx
│ ├── about.tsx
│ ├── area-bump
│ │ └── index.tsx
│ ├── bar
│ │ ├── api.tsx
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── boxplot
│ │ └── index.tsx
│ ├── bullet
│ │ └── index.tsx
│ ├── bump
│ │ └── index.tsx
│ ├── calendar
│ │ ├── api.tsx
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── chord
│ │ ├── api.tsx
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── choropleth
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── circle-packing
│ │ ├── api.tsx
│ │ ├── canvas.tsx
│ │ ├── html.tsx
│ │ └── index.tsx
│ ├── components.tsx
│ ├── faq.tsx
│ ├── funnel
│ │ └── index.tsx
│ ├── geomap
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── guides
│ │ ├── axes.tsx
│ │ ├── colors.tsx
│ │ ├── gradients.tsx
│ │ ├── legends.tsx
│ │ ├── patterns.tsx
│ │ ├── scales.tsx
│ │ └── theming.tsx
│ ├── heatmap
│ │ ├── api.tsx
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── icicle
│ │ ├── api.tsx
│ │ ├── html.tsx
│ │ └── index.tsx
│ ├── index.tsx
│ ├── internal
│ │ ├── home-demos.tsx
│ │ └── icons.tsx
│ ├── line
│ │ ├── api.tsx
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── marimekko
│ │ └── index.tsx
│ ├── network
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── parallel-coordinates
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── pie
│ │ ├── api.tsx
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── polar-bar
│ │ └── index.tsx
│ ├── radar
│ │ ├── api.tsx
│ │ └── index.tsx
│ ├── radial-bar
│ │ └── index.tsx
│ ├── references.tsx
│ ├── sankey
│ │ ├── api.tsx
│ │ └── index.tsx
│ ├── scatterplot
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── stream
│ │ └── index.tsx
│ ├── sunburst
│ │ ├── api.tsx
│ │ └── index.tsx
│ ├── swarmplot
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── time-range
│ │ └── index.tsx
│ ├── tree
│ │ ├── canvas.tsx
│ │ └── index.tsx
│ ├── treemap
│ │ ├── api.tsx
│ │ ├── canvas.tsx
│ │ ├── html.tsx
│ │ └── index.tsx
│ ├── voronoi
│ │ └── index.tsx
│ └── waffle
│ │ ├── canvas.tsx
│ │ ├── html.tsx
│ │ └── index.tsx
├── styles
│ ├── guides.css
│ ├── icons.css
│ ├── index.css
│ ├── mobile-nav.css
│ ├── mq.css
│ ├── nav.css
│ └── settings
│ │ ├── colors.css
│ │ └── dimensions.css
├── theming
│ ├── GlobalStyle.ts
│ ├── SwitchableThemeProvider.tsx
│ ├── highlight.ts
│ ├── mediaQueries.tsx
│ └── theme.ts
└── types.ts
├── static
├── CNAME
└── favicon.ico
└── tsconfig.json
/.codesandbox/ci.json:
--------------------------------------------------------------------------------
1 | {
2 | "installCommand": "codesandbox:init",
3 | "buildCommand": false,
4 | "packages": ["packages/*"],
5 | "sandboxes": ["/examples/codesandbox", "/website"],
6 | "node": "18"
7 | }
8 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.js]
2 | indent_style = space
3 | indent_size = 4
4 | max_line_length = 100
5 |
6 | [*.ts]
7 | indent_style = space
8 | indent_size = 4
9 | max_line_length = 100
10 |
11 | [*.tsx]
12 | indent_style = space
13 | indent_size = 4
14 | max_line_length = 100
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | open_collective: nivo
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .idea
3 | *.log*
4 | node_modules
5 | coverage
6 | storybook/storybook-static
7 |
8 | package-lock.json
9 |
10 | build
11 | *.tsbuildinfo
12 |
13 | /packages/*/dist
14 |
15 | /tmp
16 |
17 | *.lerna_backup
18 |
19 | /stats
20 | /api/app.js
21 | # Local Netlify folder
22 | .netlify
23 |
24 | # yarn 2 - not using zero-installs
25 | .pnp.*
26 | .yarn/*
27 | !.yarn/patches
28 | !.yarn/plugins
29 | !.yarn/releases
30 | !.yarn/sdks
31 | !.yarn/versions
32 |
33 | cypress/cypress/screenshots
34 | cypress/cypress/videos
35 |
36 | examples/local*
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | strict-peer-dependencies=false
3 | dedupe-peer-dependents=true
4 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | v22
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | printWidth: 100
2 | tabWidth: 4
3 | bracketSpacing: true
4 | semi: false
5 | trailingComma: es5
6 | singleQuote: true
7 | arrowParens: avoid
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: node api/app.js
--------------------------------------------------------------------------------
/api/nodemon.json:
--------------------------------------------------------------------------------
1 | {
2 | "restartable": "rs",
3 | "ignore": ["node_modules/"],
4 | "watch": ["app.ts"],
5 | "execMap": {
6 | "ts": "node -r ts-node/register"
7 | },
8 | "env": {
9 | "NODE_ENV": "development"
10 | },
11 | "ext": "ts"
12 | }
--------------------------------------------------------------------------------
/api/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "rootDir": ".",
5 | "module": "commonjs",
6 | "moduleResolution": "node",
7 | "esModuleInterop": true,
8 | "skipLibCheck": true,
9 | "forceConsistentCasingInFileNames": true
10 | },
11 | "include": ["*.ts"]
12 | }
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | ['@babel/preset-env', { loose: true }],
4 | ['@babel/preset-react', {
5 | development: process.env.BABEL_ENV === "development",
6 | runtime: 'automatic'
7 | }],
8 | '@babel/preset-typescript',
9 | ],
10 | }
11 |
--------------------------------------------------------------------------------
/branding/nivo-logo.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/branding/nivo-logo.ai
--------------------------------------------------------------------------------
/cypress/cypress.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "cypress";
2 |
3 | export default defineConfig({
4 | viewportWidth: 600,
5 | viewportHeight: 600,
6 | component: {
7 | devServer: {
8 | framework: "react",
9 | bundler: "vite",
10 | },
11 | video: false,
12 | },
13 | });
14 |
--------------------------------------------------------------------------------
/cypress/cypress.d.ts:
--------------------------------------------------------------------------------
1 | import { mount } from 'cypress/react'
2 |
3 | // Augment the Cypress namespace to include type definitions for
4 | // your custom command.
5 | // Alternatively, can be defined in cypress/support/component.d.ts
6 | // with a at the top of your spec.
7 | declare global {
8 | namespace Cypress {
9 | interface Chainable {
10 | mount: typeof mount
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/cypress/cypress/support/commands.js:
--------------------------------------------------------------------------------
1 | import '@testing-library/cypress/add-commands'
2 | // https://on.cypress.io/custom-commands
3 |
--------------------------------------------------------------------------------
/cypress/cypress/support/component-index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Components App
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/cypress/src/components/heatmap/shared.ts:
--------------------------------------------------------------------------------
1 | export const defaultData = [
2 | {
3 | id: 'A',
4 | data: [
5 | { x: 'X', y: 1 },
6 | { x: 'Y', y: 2 },
7 | { x: 'Z', y: 3 },
8 | ],
9 | },
10 | {
11 | id: 'B',
12 | data: [
13 | { x: 'X', y: 3 },
14 | { x: 'Y', y: 2 },
15 | { x: 'Z', y: 1 },
16 | ],
17 | },
18 | {
19 | id: 'C',
20 | data: [
21 | { x: 'X', y: 2 },
22 | { x: 'Y', y: 2 },
23 | { x: 'Z', y: 2 },
24 | ],
25 | },
26 | ]
27 |
--------------------------------------------------------------------------------
/cypress/src/components/line/LineCanvas.cy.tsx:
--------------------------------------------------------------------------------
1 | import { ResponsiveLineCanvas } from '@nivo/line'
2 | import { testChartResponsiveness } from '../../helpers/responsive'
3 | import { defaultData } from './shared'
4 |
5 | describe('LineCanvas', () => {
6 | testChartResponsiveness(defaults => (
7 |
14 | ))
15 | })
16 |
--------------------------------------------------------------------------------
/cypress/src/components/line/shared.ts:
--------------------------------------------------------------------------------
1 | export const defaultData = [
2 | {
3 | id: 'A',
4 | data: [
5 | { x: 'V', y: 30 },
6 | { x: 'W', y: 0 },
7 | { x: 'X', y: 30 },
8 | { x: 'Y', y: 10 },
9 | { x: 'Z', y: 20 },
10 | ],
11 | },
12 | {
13 | id: 'B',
14 | data: [
15 | { x: 'V', y: 0 },
16 | { x: 'W', y: 30 },
17 | { x: 'X', y: 10 },
18 | { x: 'Y', y: 30 },
19 | { x: 'Z', y: 20 },
20 | ],
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/cypress/src/components/network/shared.ts:
--------------------------------------------------------------------------------
1 | import { InputLink, InputNode } from '@nivo/network'
2 |
3 | export const defaultData: {
4 | nodes: InputNode[]
5 | links: InputLink[]
6 | } = {
7 | nodes: [{ id: 'A' }, { id: 'B' }, { id: 'C' }, { id: 'D' }, { id: 'E' }],
8 | links: [
9 | { source: 'A', target: 'B' },
10 | { source: 'B', target: 'C' },
11 | { source: 'C', target: 'D' },
12 | { source: 'D', target: 'E' },
13 | { source: 'E', target: 'A' },
14 | ],
15 | }
16 |
--------------------------------------------------------------------------------
/cypress/src/components/pie/shared.ts:
--------------------------------------------------------------------------------
1 | export interface Datum {
2 | id: string
3 | value: number
4 | color: string
5 | }
6 |
7 | export const defaultData: Datum[] = [
8 | {
9 | id: 'A',
10 | value: 30,
11 | color: '#ff5500',
12 | },
13 | {
14 | id: 'B',
15 | value: 20,
16 | color: '#ffdd00',
17 | },
18 | {
19 | id: 'C',
20 | value: 50,
21 | color: '#99cc44',
22 | },
23 | ]
24 |
--------------------------------------------------------------------------------
/cypress/src/components/tree/shared.ts:
--------------------------------------------------------------------------------
1 | export interface Datum {
2 | id: string
3 | children?: Datum[]
4 | }
5 |
6 | export const defaultData: Datum = {
7 | id: 'A',
8 | children: [
9 | { id: '0' },
10 | {
11 | id: '1',
12 | children: [{ id: 'A' }, { id: 'B' }],
13 | },
14 | { id: '2' },
15 | ],
16 | }
17 |
--------------------------------------------------------------------------------
/cypress/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [react()]
7 | })
8 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/charts/Chord.tsx:
--------------------------------------------------------------------------------
1 | import { ResponsiveChord, ResponsiveChordCanvas } from '@nivo/chord'
2 | import { generateChordData } from '@nivo/generators'
3 | import { useChart } from '../hooks'
4 |
5 | const props = {
6 | margin: { top: 60, right: 80, bottom: 60, left: 80 },
7 | xPadding: 0.2,
8 | } as const
9 |
10 | export function Chord() {
11 | const [data, flavor] = useChart(() => generateChordData({ size: 7 }))
12 |
13 | if (flavor === 'canvas') {
14 | return
15 | }
16 |
17 | return
18 | }
19 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/charts/GeoMap.tsx:
--------------------------------------------------------------------------------
1 | import { ResponsiveGeoMap, ResponsiveGeoMapCanvas } from '@nivo/geo'
2 | import { countries } from '../data'
3 | import { useChart } from '../hooks'
4 |
5 | const props = {
6 | borderWidth: 0.5,
7 | features: countries.features,
8 | }
9 |
10 | export function GeoMap() {
11 | const [, flavor] = useChart()
12 |
13 | if (flavor === 'canvas') {
14 | return
15 | }
16 |
17 | return
18 | }
19 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/charts/Line.tsx:
--------------------------------------------------------------------------------
1 | import { ResponsiveLine, ResponsiveLineCanvas } from '@nivo/line'
2 | import { generateDrinkStats } from '@nivo/generators'
3 | import { useChart } from '../hooks'
4 |
5 | const props = {
6 | enableSlices: 'x',
7 | margin: { top: 20, right: 20, bottom: 60, left: 80 },
8 | } as const
9 |
10 | export function Line() {
11 | const [data, flavor] = useChart(() => generateDrinkStats(9))
12 |
13 | if (flavor === 'canvas') {
14 | return
15 | }
16 |
17 | return
18 | }
19 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/charts/Radar.tsx:
--------------------------------------------------------------------------------
1 | import { ResponsiveRadar } from '@nivo/radar'
2 | import { generateWinesTastes } from '@nivo/generators'
3 | import { useChart } from '../hooks'
4 |
5 | const props = {
6 | indexBy: 'taste',
7 | margin: { top: 60, right: 80, bottom: 20, left: 80 },
8 | }
9 |
10 | export function Radar() {
11 | const [data] = useChart(generateWinesTastes)
12 |
13 | return
14 | }
15 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/charts/Sankey.tsx:
--------------------------------------------------------------------------------
1 | import { ResponsiveSankey } from '@nivo/sankey'
2 | import { generateSankeyData } from '@nivo/generators'
3 | import { useChart } from '../hooks'
4 |
5 | const props = {
6 | colors: { scheme: 'category10' },
7 | margin: { top: 40, right: 40, bottom: 40, left: 40 },
8 | } as const
9 |
10 | export function Sankey() {
11 | const [data] = useChart(() =>
12 | generateSankeyData({ nodeCount: 11, maxIterations: 2 })
13 | )
14 |
15 | return
16 | }
17 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/charts/Sunburst.tsx:
--------------------------------------------------------------------------------
1 | import { ResponsiveSunburst } from '@nivo/sunburst'
2 | import { generateLibTree } from '@nivo/generators'
3 | import { useChart } from '../hooks'
4 |
5 | const props = {
6 | id: 'name',
7 | value: 'loc',
8 | }
9 |
10 | export function Sunburst() {
11 | const [data] = useChart(generateLibTree)
12 |
13 | return
14 | }
15 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/contexts.ts:
--------------------------------------------------------------------------------
1 | import { createContext } from 'react'
2 |
3 | export type Flavor = 'svg'| 'canvas' | 'html'
4 | type Context = [key: number, flavor: Flavor]
5 |
6 | export const ChartContext = createContext(undefined)
7 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/data/index.ts:
--------------------------------------------------------------------------------
1 | export { default as countries } from './world_countries.json'
2 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/hooks.ts:
--------------------------------------------------------------------------------
1 | import { ChartContext } from './contexts'
2 | import { useContext, useMemo } from 'react'
3 |
4 | export function useChart(generator?: () => T) {
5 | const context = useContext(ChartContext)
6 |
7 | if (context === undefined) {
8 | throw new Error('useChart must be used within a ChartContextProvider')
9 | }
10 |
11 | const [key, flavor] = context
12 | const [data] = useMemo(() => [generator?.(), key], [generator, key])
13 |
14 | return [data, flavor] as [T, typeof flavor]
15 | }
16 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/index.tsx:
--------------------------------------------------------------------------------
1 | import './global.css'
2 | import { css } from 'otion'
3 | import App from './App'
4 | import React from 'react'
5 | import ReactDOM from 'react-dom'
6 |
7 | const rootElement = document.getElementById('root')
8 |
9 | rootElement!.className = css({ height: '100vh' })
10 |
11 | ReactDOM.render(
12 |
13 |
14 | ,
15 | rootElement
16 | )
17 |
--------------------------------------------------------------------------------
/examples/codesandbox/src/utils.ts:
--------------------------------------------------------------------------------
1 | export const flatten = (array: T[]) => ([] as T[]).concat(...array)
2 |
3 | export const random = (min: number, max: number) =>
4 | Math.floor(Math.random() * (max - min) + min)
5 |
6 | export const range = (start: number, end: number) =>
7 | Array.from(' '.repeat(end - start), (_, index) => start + index)
8 |
9 | export const shuffle = (values: T[]) =>
10 | values
11 | .map((value) => [Math.random(), value] as const)
12 | .sort(([left], [right]) => left - right)
13 | .map(([, value]) => value)
14 |
--------------------------------------------------------------------------------
/lerna.json:
--------------------------------------------------------------------------------
1 | {
2 | "packages": ["packages/*", "api"],
3 | "version": "0.99.0",
4 | "npmClient": "pnpm"
5 | }
6 |
--------------------------------------------------------------------------------
/nivo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/nivo.png
--------------------------------------------------------------------------------
/packages/annotations/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/annotations`
4 |
5 | [](https://www.npmjs.com/package/@nivo/annotations)
6 | [](https://www.npmjs.com/package/@nivo/annotations)
7 |
--------------------------------------------------------------------------------
/packages/annotations/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Annotation'
2 | export * from './canvas'
3 | export * from './compute'
4 | export * from './hooks'
5 | export * from './props'
6 | export * from './types'
7 | export * from './utils'
8 |
--------------------------------------------------------------------------------
/packages/annotations/src/props.ts:
--------------------------------------------------------------------------------
1 | export const defaultProps = {
2 | dotSize: 4,
3 | noteWidth: 120,
4 | noteTextOffset: 8,
5 | animate: true,
6 | }
7 |
--------------------------------------------------------------------------------
/packages/annotations/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/arcs/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/arcs`
4 |
5 | [](https://www.npmjs.com/package/@nivo/arcs)
6 | [](https://www.npmjs.com/package/@nivo/arcs)
7 |
8 | This package is used internally by nivo packages dealing with arcs
9 | such as `@nivo/pie`, `@nivo/chord` and `@nivo/sunburst`.
10 |
--------------------------------------------------------------------------------
/packages/arcs/src/arc_labels/index.ts:
--------------------------------------------------------------------------------
1 | import { ArcLabel } from './ArcLabel'
2 |
3 | export const ArcLabelComponent = ArcLabel
4 | export * from './ArcLabelsLayer'
5 | export * from './canvas'
6 | export * from './props'
7 | export * from './useArcLabels'
8 |
--------------------------------------------------------------------------------
/packages/arcs/src/arc_labels/props.ts:
--------------------------------------------------------------------------------
1 | import { PropertyAccessor } from '@nivo/core'
2 | import { InheritedColorConfig } from '@nivo/colors'
3 | import { ArcLabelComponent } from './ArcLabelsLayer'
4 | import { DatumWithArcAndColor } from '../types'
5 |
6 | export interface ArcLabelsProps {
7 | arcLabel: PropertyAccessor
8 | arcLabelsRadiusOffset: number
9 | arcLabelsSkipAngle: number
10 | arcLabelsSkipRadius: number
11 | arcLabelsTextColor: InheritedColorConfig
12 | arcLabelsComponent: ArcLabelComponent
13 | }
14 |
--------------------------------------------------------------------------------
/packages/arcs/src/arc_link_labels/index.ts:
--------------------------------------------------------------------------------
1 | import { ArcLinkLabel } from './ArcLinkLabel'
2 |
3 | export const ArcLinkLabelComponent = ArcLinkLabel
4 | export * from './ArcLinkLabelsLayer'
5 | export * from './canvas'
6 | export * from './compute'
7 | export * from './props'
8 | export * from './types'
9 | export * from './useArcLinkLabels'
10 | export * from './useArcLinkLabelsTransition'
11 | export * from './useArcLinks'
12 |
--------------------------------------------------------------------------------
/packages/arcs/src/arc_link_labels/types.ts:
--------------------------------------------------------------------------------
1 | import { DatumWithArc, DatumWithArcAndColor, Point } from '../types'
2 |
3 | export interface ArcLink {
4 | side: 'before' | 'after'
5 | points: [Point, Point, Point]
6 | }
7 |
8 | export interface ArcLinkWithDatum extends ArcLink {
9 | data: Datum
10 | }
11 |
12 | export interface ArcLinkLabel extends ArcLinkWithDatum {
13 | x: number
14 | y: number
15 | label: string
16 | linkColor: string
17 | textAnchor: 'start' | 'end'
18 | textColor: string
19 | }
20 |
--------------------------------------------------------------------------------
/packages/arcs/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './arc_labels'
2 | export * from './arc_link_labels'
3 | export * from './ArcLine'
4 | export * from './ArcShape'
5 | export * from './ArcsLayer'
6 | export * from './arcTransitionMode'
7 | export * from './boundingBox'
8 | export * from './centers'
9 | export * from './interactivity'
10 | export * from './interpolateArc'
11 | export * from './types'
12 | export * from './useAnimatedArc'
13 | export * from './useArcGenerator'
14 | export * from './useArcsTransition'
15 |
--------------------------------------------------------------------------------
/packages/arcs/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/axes/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/axes`
4 |
5 | [](https://www.npmjs.com/package/@nivo/axes)
6 | [](https://www.npmjs.com/package/@nivo/axes)
7 |
--------------------------------------------------------------------------------
/packages/axes/src/components/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Axes'
2 | export * from './Axis'
3 | export * from './AxisTick'
4 | export * from './Grid'
5 | export * from './GridLine'
6 | export * from './GridLines'
7 |
--------------------------------------------------------------------------------
/packages/axes/src/defaults.ts:
--------------------------------------------------------------------------------
1 | import { AxisProps } from './types'
2 |
3 | export const defaultAxisProps: Pick<
4 | Required,
5 | 'tickSize' | 'tickPadding' | 'tickRotation' | 'legendPosition' | 'legendOffset'
6 | > = {
7 | tickSize: 5,
8 | tickPadding: 5,
9 | tickRotation: 0,
10 | legendPosition: 'middle',
11 | legendOffset: 0,
12 | }
13 |
--------------------------------------------------------------------------------
/packages/axes/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components'
2 | export * from './canvas'
3 | export * from './defaults'
4 | export * from './props'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/axes/src/props.ts:
--------------------------------------------------------------------------------
1 | export const positions = ['top', 'right', 'bottom', 'left'] as const
2 |
--------------------------------------------------------------------------------
/packages/axes/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/bar/src/BarTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { BarDatum, BarTooltipProps } from './types'
3 |
4 | export const BarTooltip = ({ color, label, ...data }: BarTooltipProps) => {
5 | return
6 | }
7 |
--------------------------------------------------------------------------------
/packages/bar/src/compute/index.ts:
--------------------------------------------------------------------------------
1 | export * from './grouped'
2 | export * from './stacked'
3 | export * from './legends'
4 |
--------------------------------------------------------------------------------
/packages/bar/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Bar'
2 | export * from './BarCanvas'
3 | export * from './BarItem'
4 | export * from './BarTooltip'
5 | export * from './BarTotals'
6 | export * from './ResponsiveBar'
7 | export * from './ResponsiveBarCanvas'
8 | export * from './defaults'
9 | export * from './types'
10 |
--------------------------------------------------------------------------------
/packages/bar/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/boxplot/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/boxplot`
4 |
5 | [](https://www.npmjs.com/package/@nivo/boxplot)
6 | [](https://www.npmjs.com/package/@nivo/boxplot)
7 |
8 | ## Boxplot
9 |
10 | [documentation](http://nivo.rocks/boxplot/)
11 |
--------------------------------------------------------------------------------
/packages/boxplot/src/compute/common.ts:
--------------------------------------------------------------------------------
1 | import { ScaleBandSpec, ScaleBand, computeScale } from '@nivo/scales'
2 |
3 | /**
4 | * Generates indexed scale.
5 | */
6 | export const getIndexScale = (
7 | groups: string[],
8 | padding: number,
9 | indexScale: ScaleBandSpec,
10 | size: number,
11 | axis: 'x' | 'y'
12 | ) => {
13 | return (
14 | computeScale(indexScale, { all: groups, min: 0, max: 0 }, size, axis) as ScaleBand
15 | ).padding(padding)
16 | }
17 |
--------------------------------------------------------------------------------
/packages/boxplot/src/compute/index.ts:
--------------------------------------------------------------------------------
1 | export * from './generation'
2 | export * from './legends'
3 | export * from './stratification'
4 |
--------------------------------------------------------------------------------
/packages/boxplot/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './BoxPlot'
2 | export * from './ResponsiveBoxPlot'
3 | export * from './BoxPlotItem'
4 | export * from './props'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/boxplot/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/bullet/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/bullet`
4 |
5 | [](https://www.npmjs.com/package/@nivo/bullet)
6 | [](https://www.npmjs.com/package/@nivo/bullet)
7 |
8 | ## Bullet
9 |
10 | [documentation](http://nivo.rocks/bullet/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/bullet/src/BulletTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BulletTooltipProps } from './types'
2 | import { BasicTooltip } from '@nivo/tooltip'
3 |
4 | export const BulletTooltip = ({ color, v0, v1 }: BulletTooltipProps) => {
5 | return (
6 |
10 | {v0} to {v1}
11 |
12 | ) : (
13 | {v0}
14 | )
15 | }
16 | enableChip={true}
17 | color={color}
18 | />
19 | )
20 | }
21 |
--------------------------------------------------------------------------------
/packages/bullet/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Bullet'
2 | export * from './BulletItem'
3 | export * from './ResponsiveBullet'
4 | export * from './props'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/bullet/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/bump/src/area-bump/AreaTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { AreaBumpDatum, AreaBumpComputedSerie, AreaBumpSerieExtraProps } from './types'
3 |
4 | interface AreaTooltipProps<
5 | Datum extends AreaBumpDatum,
6 | ExtraProps extends AreaBumpSerieExtraProps,
7 | > {
8 | serie: AreaBumpComputedSerie
9 | }
10 |
11 | export const AreaTooltip = <
12 | Datum extends AreaBumpDatum,
13 | ExtraProps extends AreaBumpSerieExtraProps,
14 | >({
15 | serie,
16 | }: AreaTooltipProps) => (
17 |
18 | )
19 |
--------------------------------------------------------------------------------
/packages/bump/src/area-bump/index.ts:
--------------------------------------------------------------------------------
1 | export * from './AreaBump'
2 | export * from './defaults'
3 | export * from './hooks'
4 | export * from './ResponsiveAreaBump'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/bump/src/bump/LineTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { BumpComputedSerie, BumpDatum, BumpSerieExtraProps } from './types'
3 |
4 | interface LineTooltipProps {
5 | serie: BumpComputedSerie
6 | }
7 |
8 | export const LineTooltip = ({
9 | serie,
10 | }: LineTooltipProps) => (
11 |
17 | )
18 |
--------------------------------------------------------------------------------
/packages/bump/src/bump/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Bump'
2 | export * from './defaults'
3 | export * from './hooks'
4 | export * from './ResponsiveBump'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/bump/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './bump'
2 | export * from './area-bump'
3 |
--------------------------------------------------------------------------------
/packages/bump/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/calendar/src/CalendarMonthPath.tsx:
--------------------------------------------------------------------------------
1 | import { CalendarMonthPathProps } from './types'
2 | import { memo } from 'react'
3 |
4 | export const CalendarMonthPath = memo(
5 | ({ path, borderWidth, borderColor }: CalendarMonthPathProps) => {
6 | return (
7 |
16 | )
17 | }
18 | )
19 |
--------------------------------------------------------------------------------
/packages/calendar/src/CalendarTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { CalendarTooltipProps } from './types'
3 | import { memo } from 'react'
4 |
5 | export const CalendarTooltip = memo(({ value, day, color }: CalendarTooltipProps) => {
6 | if (value === undefined || isNaN(Number(value))) return null
7 | return
8 | })
9 |
--------------------------------------------------------------------------------
/packages/calendar/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Calendar'
2 | export * from './TimeRange'
3 | export * from './ResponsiveTimeRange'
4 | export * from './ResponsiveCalendar'
5 | export * from './CalendarCanvas'
6 | export * from './ResponsiveCalendarCanvas'
7 | export * from './props'
8 | export * from './compute/calendar'
9 | export * from './compute/timeRange'
10 | export * from './hooks'
11 | export * from './types'
12 |
--------------------------------------------------------------------------------
/packages/calendar/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/canvas/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/canvas`
4 |
5 | [](https://www.npmjs.com/package/@nivo/canvas)
6 | [](https://www.npmjs.com/package/@nivo/canvas)
7 |
--------------------------------------------------------------------------------
/packages/canvas/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './roundedRect'
2 |
--------------------------------------------------------------------------------
/packages/canvas/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/chord/src/ChordArcTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { memo } from 'react'
2 | import { BasicTooltip } from '@nivo/tooltip'
3 | import { ArcTooltipComponentProps } from './types'
4 |
5 | export const ChordArcTooltip = memo(({ arc }: ArcTooltipComponentProps) => (
6 |
7 | ))
8 |
--------------------------------------------------------------------------------
/packages/chord/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Chord'
2 | export * from './ChordCanvas'
3 | export * from './ResponsiveChord'
4 | export * from './ResponsiveChordCanvas'
5 | export * from './compute'
6 | export * from './hooks'
7 | export * from './types'
8 | export * from './defaults'
9 |
--------------------------------------------------------------------------------
/packages/chord/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/circle-packing/src/CirclePackingTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { ComputedDatum } from './types'
3 |
4 | export const CirclePackingTooltip = ({
5 | id,
6 | formattedValue,
7 | color,
8 | }: ComputedDatum) => (
9 |
10 | )
11 |
--------------------------------------------------------------------------------
/packages/circle-packing/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './CirclePacking'
2 | export * from './ResponsiveCirclePacking'
3 | export * from './CirclePackingHtml'
4 | export * from './ResponsiveCirclePackingHtml'
5 | export * from './CirclePackingCanvas'
6 | export * from './ResponsiveCirclePackingCanvas'
7 | export * from './types'
8 | export * from './defaults'
9 | export * from './hooks'
10 |
--------------------------------------------------------------------------------
/packages/circle-packing/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/colors/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/colors`
4 |
5 | [](https://www.npmjs.com/package/@nivo/colors)
6 | [](https://www.npmjs.com/package/@nivo/colors)
7 |
--------------------------------------------------------------------------------
/packages/colors/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './schemes'
2 | export * from './inheritedColor'
3 | export * from './scales'
4 |
--------------------------------------------------------------------------------
/packages/colors/src/scales/index.ts:
--------------------------------------------------------------------------------
1 | export * from './continuousColorScale'
2 | export * from './divergingColorScale'
3 | export * from './ordinalColorScale'
4 | export * from './quantizeColorScale'
5 | export * from './sequentialColorScale'
6 |
--------------------------------------------------------------------------------
/packages/colors/src/schemes/cyclical.ts:
--------------------------------------------------------------------------------
1 | import { interpolateRainbow, interpolateSinebow } from 'd3-scale-chromatic'
2 |
3 | export const cyclicalColorInterpolators = {
4 | rainbow: interpolateRainbow,
5 | sinebow: interpolateSinebow,
6 | }
7 |
8 | export type CyclicalColorInterpolatorId = keyof typeof cyclicalColorInterpolators
9 |
--------------------------------------------------------------------------------
/packages/colors/src/schemes/index.ts:
--------------------------------------------------------------------------------
1 | export * from './all'
2 | export * from './categorical'
3 | export * from './cyclical'
4 | export * from './diverging'
5 | export * from './interpolators'
6 | export * from './sequential'
7 |
--------------------------------------------------------------------------------
/packages/colors/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/core/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/core`
4 |
5 | [](https://www.npmjs.com/package/@nivo/core)
6 | [](https://www.npmjs.com/package/@nivo/core)
7 |
--------------------------------------------------------------------------------
/packages/core/src/components/ConditionalWrapper.js:
--------------------------------------------------------------------------------
1 | import { cloneElement } from 'react'
2 |
3 | // type ConditionalWrapperProps = {
4 | // children: ReactNode
5 | // condition: boolean
6 | // wrapper: ReactElement
7 | // }
8 |
9 | export const ConditionalWrapper = ({ children, condition, wrapper }) => {
10 | if (!condition) return children
11 |
12 | return cloneElement(wrapper, {}, children)
13 | }
14 |
--------------------------------------------------------------------------------
/packages/core/src/components/cartesian/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | export * from './markers'
10 |
--------------------------------------------------------------------------------
/packages/core/src/components/cartesian/markers/CartesianMarkers.js:
--------------------------------------------------------------------------------
1 | import { memo } from 'react'
2 | import CartesianMarkersItem from './CartesianMarkersItem'
3 |
4 | const CartesianMarkers = ({ markers, width, height, xScale, yScale }) => {
5 | if (!markers || markers.length === 0) return null
6 |
7 | return markers.map((marker, i) => (
8 |
15 | ))
16 | }
17 |
18 | export default memo(CartesianMarkers)
19 |
--------------------------------------------------------------------------------
/packages/core/src/components/cartesian/markers/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | export { default as CartesianMarkers } from './CartesianMarkers'
10 | export { default as CartesianMarkersItem } from './CartesianMarkersItem'
11 |
--------------------------------------------------------------------------------
/packages/core/src/components/defs/gradients/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | import { LinearGradient } from './LinearGradient'
10 |
11 | export const gradientTypes = {
12 | linearGradient: LinearGradient,
13 | }
14 |
15 | export * from './LinearGradient'
16 |
--------------------------------------------------------------------------------
/packages/core/src/components/defs/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | export * from './gradients'
10 | export * from './patterns'
11 | export { default as Defs } from './Defs'
12 |
--------------------------------------------------------------------------------
/packages/core/src/components/dots/DotsItemSymbol.js:
--------------------------------------------------------------------------------
1 | import { memo } from 'react'
2 |
3 | const DotsItemSymbol = ({ size, color, borderWidth, borderColor }) => (
4 |
11 | )
12 |
13 | export default memo(DotsItemSymbol)
14 |
--------------------------------------------------------------------------------
/packages/core/src/components/dots/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | export { default as DotsItem } from './DotsItem'
10 | export * from './DotsItem'
11 |
--------------------------------------------------------------------------------
/packages/core/src/constants.js:
--------------------------------------------------------------------------------
1 | export const BOX_ANCHORS = [
2 | 'center',
3 | 'top-left',
4 | 'top',
5 | 'top-right',
6 | 'right',
7 | 'bottom-right',
8 | 'bottom',
9 | 'bottom-left',
10 | 'left',
11 | ]
12 |
--------------------------------------------------------------------------------
/packages/core/src/defaults/index.js:
--------------------------------------------------------------------------------
1 | import { scaleOrdinal } from 'd3-scale'
2 | import { schemeSet3 } from 'd3-scale-chromatic'
3 | import { nivoCategoricalColors } from '../lib/colors'
4 |
5 | // motion
6 | export const defaultAnimate = true
7 |
8 | // colors
9 | export const defaultCategoricalColors = nivoCategoricalColors
10 | export const defaultColorRange = scaleOrdinal(schemeSet3)
11 |
12 | // margin
13 | export const defaultMargin = {
14 | top: 0,
15 | right: 0,
16 | bottom: 0,
17 | left: 0,
18 | }
19 |
--------------------------------------------------------------------------------
/packages/core/src/hocs/index.js:
--------------------------------------------------------------------------------
1 | export * from './withContainer'
2 |
--------------------------------------------------------------------------------
/packages/core/src/hooks/index.js:
--------------------------------------------------------------------------------
1 | export * from './useAnimatedPath'
2 | export * from './useChartContext'
3 | export * from './useCurveInterpolation'
4 | export * from './useDimensions'
5 | export * from './useMeasure'
6 | export * from './useValueFormatter'
7 |
--------------------------------------------------------------------------------
/packages/core/src/hooks/useChartContext.js:
--------------------------------------------------------------------------------
1 | import { createContext } from 'react'
2 |
3 | export const ChartContext = createContext(undefined)
4 |
--------------------------------------------------------------------------------
/packages/core/src/hooks/useCurveInterpolation.js:
--------------------------------------------------------------------------------
1 | import { useMemo } from 'react'
2 | import { curveFromProp } from '../props'
3 |
4 | /**
5 | * Transform d3 curve interpolation identifier
6 | * to its corresponding interpolator.
7 | */
8 | export const useCurveInterpolation = interpolation =>
9 | useMemo(() => curveFromProp(interpolation), [interpolation])
10 |
--------------------------------------------------------------------------------
/packages/core/src/hooks/useDimensions.js:
--------------------------------------------------------------------------------
1 | import { useMemo } from 'react'
2 | import { defaultMargin } from '../defaults'
3 |
4 | export const useDimensions = (width, height, partialMargin = {}) =>
5 | useMemo(() => {
6 | const margin = {
7 | ...defaultMargin,
8 | ...partialMargin,
9 | }
10 |
11 | return {
12 | margin,
13 | innerWidth: width - margin.left - margin.right,
14 | innerHeight: height - margin.top - margin.bottom,
15 | outerWidth: width,
16 | outerHeight: height,
17 | }
18 | }, [width, height, partialMargin])
19 |
--------------------------------------------------------------------------------
/packages/core/src/lib/cartesian/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | export * from './utils'
10 |
--------------------------------------------------------------------------------
/packages/core/src/lib/mergeRefs.js:
--------------------------------------------------------------------------------
1 | export function mergeRefs(...refs) {
2 | return value => {
3 | for (const ref of refs) {
4 | if (typeof ref === 'function') {
5 | ref(value)
6 | } else if (ref != null) {
7 | ref.current = value
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/packages/core/src/lib/noop.js:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line @typescript-eslint/no-empty-function
2 | export default () => {}
3 |
--------------------------------------------------------------------------------
/packages/core/src/lib/polar/index.js:
--------------------------------------------------------------------------------
1 | export * from './utils'
2 | export * from './labels'
3 |
--------------------------------------------------------------------------------
/packages/core/src/motion/hooks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | import { useContext } from 'react'
10 | import { motionConfigContext } from './context'
11 |
12 | export const useMotionConfig = () => useContext(motionConfigContext)
13 |
--------------------------------------------------------------------------------
/packages/core/src/motion/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | export * from './context'
10 | export * from './hooks'
11 |
--------------------------------------------------------------------------------
/packages/core/src/props/index.js:
--------------------------------------------------------------------------------
1 | export const blendModes = [
2 | 'normal',
3 | 'multiply',
4 | 'screen',
5 | 'overlay',
6 | 'darken',
7 | 'lighten',
8 | 'color-dodge',
9 | 'color-burn',
10 | 'hard-light',
11 | 'soft-light',
12 | 'difference',
13 | 'exclusion',
14 | 'hue',
15 | 'saturation',
16 | 'color',
17 | 'luminosity',
18 | ]
19 |
20 | export * from './curve'
21 | export * from './stack'
22 |
--------------------------------------------------------------------------------
/packages/express/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/express`
4 |
5 | [](https://www.npmjs.com/package/@nivo/express)
6 | [](https://www.npmjs.com/package/@nivo/express)
7 |
--------------------------------------------------------------------------------
/packages/express/src/memory-storage.ts:
--------------------------------------------------------------------------------
1 | import { ChartProps, ChartType } from '@nivo/static'
2 |
3 | export interface StorageEntry {
4 | type: T
5 | props: ChartProps
6 | url: string
7 | }
8 |
9 | const store: Record> = {}
10 |
11 | export const set = (key: string, value: StorageEntry) => {
12 | store[key] = value
13 | }
14 |
15 | export const get = (key: string): StorageEntry | undefined => {
16 | return store[key]
17 | }
18 |
19 | export const dump = () => store
20 |
--------------------------------------------------------------------------------
/packages/express/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/funnel/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/funnel`
4 |
5 | [](https://www.npmjs.com/package/@nivo/funnel)
6 | [](https://www.npmjs.com/package/@nivo/funnel)
7 |
8 | ## Funnel
9 |
10 | [documentation](http://nivo.rocks/funnel/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/funnel/src/PartLabels.tsx:
--------------------------------------------------------------------------------
1 | import { PartLabel } from './PartLabel'
2 | import { FunnelDatum, FunnelPart } from './types'
3 |
4 | interface PartLabelsProps {
5 | parts: FunnelPart[]
6 | }
7 |
8 | export const PartLabels = ({ parts }: PartLabelsProps) => (
9 | <>
10 | {parts.map(part => (
11 |
12 | ))}
13 | >
14 | )
15 |
--------------------------------------------------------------------------------
/packages/funnel/src/PartTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { FunnelDatum, FunnelPartWithHandlers } from './types'
3 |
4 | export interface PartTooltipProps {
5 | part: FunnelPartWithHandlers
6 | }
7 |
8 | export const PartTooltip = ({ part }: PartTooltipProps) => (
9 |
15 | )
16 |
--------------------------------------------------------------------------------
/packages/funnel/src/Separators.tsx:
--------------------------------------------------------------------------------
1 | import { Separator } from './Separator'
2 | import { SeparatorProps as SeparatorType } from './types'
3 |
4 | interface SeparatorsProps {
5 | beforeSeparators: SeparatorType[]
6 | afterSeparators: SeparatorType[]
7 | }
8 |
9 | export const Separators = ({ beforeSeparators, afterSeparators }: SeparatorsProps) => (
10 | <>
11 | {beforeSeparators.map(separator => (
12 |
13 | ))}
14 | {afterSeparators.map(separator => (
15 |
16 | ))}
17 | >
18 | )
19 |
--------------------------------------------------------------------------------
/packages/funnel/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Funnel'
2 | export * from './ResponsiveFunnel'
3 | export * from './hooks'
4 | export * from './props'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/funnel/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/generators/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .idea
3 | *.log*
4 | node_modules
5 | /lib
6 | /es
7 | /coverage
--------------------------------------------------------------------------------
/packages/generators/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/generators`
4 |
5 | [](https://www.npmjs.com/package/@nivo/generators)
6 | [](https://www.npmjs.com/package/@nivo/generators)
7 |
--------------------------------------------------------------------------------
/packages/generators/src/color.ts:
--------------------------------------------------------------------------------
1 | export const randColor = () => `hsl(${Math.round(Math.random() * 360)}, 70%, 50%)`
2 |
--------------------------------------------------------------------------------
/packages/generators/src/sets/index.ts:
--------------------------------------------------------------------------------
1 | export * from './averageHeightByAge'
2 | export * from './countryCodes'
3 | export * from './names'
4 | export * from './programmingLanguages'
5 | export * from './time'
6 |
--------------------------------------------------------------------------------
/packages/generators/src/sets/programmingLanguages.ts:
--------------------------------------------------------------------------------
1 | export const programmingLanguages = [
2 | 'php',
3 | 'make',
4 | 'javascript',
5 | 'go',
6 | 'erlang',
7 | 'elixir',
8 | 'lisp',
9 | 'haskell',
10 | 'python',
11 | 'ruby',
12 | 'hack',
13 | 'scala',
14 | 'java',
15 | 'rust',
16 | 'c',
17 | 'css',
18 | 'sass',
19 | 'stylus',
20 | ]
21 |
--------------------------------------------------------------------------------
/packages/generators/src/waffle.ts:
--------------------------------------------------------------------------------
1 | export interface WaffleDatumSpec {
2 | id: string
3 | label?: string
4 | }
5 |
6 | export const generateWaffleData = ({
7 | groups,
8 | total,
9 | }: {
10 | groups: D[]
11 | total: number
12 | }): (D & {
13 | label: string
14 | value: number
15 | })[] => {
16 | const slice = total / groups.length
17 |
18 | return groups.map(group => {
19 | return {
20 | ...group,
21 | label: group.label !== undefined ? group.label : group.id,
22 | value: Math.random() * slice,
23 | }
24 | })
25 | }
26 |
--------------------------------------------------------------------------------
/packages/generators/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/geo/src/ChoroplethTooltip.js:
--------------------------------------------------------------------------------
1 | import { memo } from 'react'
2 | import { BasicTooltip } from '@nivo/tooltip'
3 |
4 | const ChoroplethTooltip = memo(({ feature }) => {
5 | if (feature.data === undefined) return null
6 |
7 | return (
8 |
14 | )
15 | })
16 |
17 | export default ChoroplethTooltip
18 |
--------------------------------------------------------------------------------
/packages/geo/src/GeoGraticule.js:
--------------------------------------------------------------------------------
1 | import { memo } from 'react'
2 |
3 | /**
4 | * GeoGraticule.propTypes = {
5 | * path: PropTypes.func.isRequired,
6 | * graticule: PropTypes.func.isRequired,
7 | * lineWidth: PropTypes.number.isRequired,
8 | * lineColor: PropTypes.string.isRequired,
9 | * }
10 | */
11 | const GeoGraticule = memo(({ path, graticule, lineWidth, lineColor }) => {
12 | return
13 | })
14 |
15 | export default GeoGraticule
16 |
--------------------------------------------------------------------------------
/packages/geo/src/ResponsiveChoropleth.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | import { ResponsiveWrapper } from '@nivo/core'
10 | import Choropleth from './Choropleth'
11 |
12 | const ResponsiveChoropleth = props => (
13 |
14 | {({ width, height }) => }
15 |
16 | )
17 |
18 | export default ResponsiveChoropleth
19 |
--------------------------------------------------------------------------------
/packages/geo/src/ResponsiveChoroplethCanvas.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | import { ResponsiveWrapper } from '@nivo/core'
10 | import ChoroplethCanvas from './ChoroplethCanvas'
11 |
12 | const ResponsiveChoroplethCanvas = props => (
13 |
14 | {({ width, height }) => }
15 |
16 | )
17 |
18 | export default ResponsiveChoroplethCanvas
19 |
--------------------------------------------------------------------------------
/packages/geo/src/ResponsiveGeoMap.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | import { ResponsiveWrapper } from '@nivo/core'
10 | import GeoMap from './GeoMap'
11 |
12 | const ResponsiveGeoMap = props => (
13 |
14 | {({ width, height }) => }
15 |
16 | )
17 |
18 | export default ResponsiveGeoMap
19 |
--------------------------------------------------------------------------------
/packages/geo/src/ResponsiveGeoMapCanvas.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the nivo project.
3 | *
4 | * Copyright 2016-present, Raphaël Benitte.
5 | *
6 | * For the full copyright and license information, please view the LICENSE
7 | * file that was distributed with this source code.
8 | */
9 | import { ResponsiveWrapper } from '@nivo/core'
10 | import GeoMapCanvas from './GeoMapCanvas'
11 |
12 | const ResponsiveGeoMapCanvas = props => (
13 |
14 | {({ width, height }) => }
15 |
16 | )
17 |
18 | export default ResponsiveGeoMapCanvas
19 |
--------------------------------------------------------------------------------
/packages/grid/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/grid`
4 |
5 | [](https://www.npmjs.com/package/@nivo/grid)
6 | [](https://www.npmjs.com/package/@nivo/grid)
7 |
--------------------------------------------------------------------------------
/packages/grid/src/boundingBoxes.ts:
--------------------------------------------------------------------------------
1 | import { BoundingBox } from './types'
2 |
3 | /**
4 | * Check if the provided bounding boxes touch/overlap.
5 | * We assume that the boxes are rectangular and axis-aligned.
6 | */
7 | export const areBoundingBoxTouching = (boxA: BoundingBox, boxB: BoundingBox) => {
8 | const touchX = boxA.left <= boxB.right && boxB.left <= boxA.right
9 | const touchY = boxA.top <= boxB.bottom && boxB.top <= boxA.bottom
10 |
11 | return touchX && touchY
12 | }
13 |
--------------------------------------------------------------------------------
/packages/grid/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './boundingBoxes'
2 | export * from './grid'
3 | export * from './polygon'
4 | export * from './types'
5 |
--------------------------------------------------------------------------------
/packages/grid/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/heatmap/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './HeatMap'
2 | export * from './ResponsiveHeatMap'
3 | export * from './HeatMapCanvas'
4 | export * from './ResponsiveHeatMapCanvas'
5 | export * from './hooks'
6 | export * from './defaults'
7 | export * from './types'
8 | export * from './compute'
9 |
--------------------------------------------------------------------------------
/packages/heatmap/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/icicle/src/IcicleTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { IcicleNode } from './types'
3 |
4 | export const IcicleTooltip = ({ id, formattedValue, color }: IcicleNode) => (
5 |
6 | )
7 |
--------------------------------------------------------------------------------
/packages/icicle/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './defaults'
2 | export * from './hooks'
3 | export * from './Icicle'
4 | export * from './IcicleHtml'
5 | export * from './IcicleNodes'
6 | export * from './IcicleTooltip'
7 | export * from './ResponsiveIcicle'
8 | export * from './ResponsiveIcicleHtml'
9 | export * from './types'
10 |
--------------------------------------------------------------------------------
/packages/icicle/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "outDir": "./dist/types",
5 | "rootDir": "./src"
6 | },
7 | "include": ["src/**/*"]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/jest.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 |
3 | const config = {
4 | verbose: true,
5 | testEnvironment: 'jest-environment-jsdom',
6 | reporters: [['default', { summaryThreshold: 3 }]],
7 | setupFiles: [path.resolve(path.join(__dirname, 'jest.setup.js'))],
8 | transformIgnorePatterns: [
9 | "/node_modules/(?!d3)/"
10 | ],
11 | }
12 |
13 | module.exports = config
14 |
--------------------------------------------------------------------------------
/packages/jest.setup.js:
--------------------------------------------------------------------------------
1 | const { TextEncoder, TextDecoder } = require('util')
2 |
3 | Object.assign(global, { TextDecoder, TextEncoder })
4 |
5 | global.ResizeObserver = require('resize-observer-polyfill')
6 |
7 | const { configure } = require('enzyme')
8 | const Adapter = require('@wojtekmaj/enzyme-adapter-react-17')
9 |
10 | configure({ adapter: new Adapter() })
11 |
--------------------------------------------------------------------------------
/packages/legends/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/legends`
4 |
5 | [](https://www.npmjs.com/package/@nivo/legends)
6 | [](https://www.npmjs.com/package/@nivo/legends)
7 |
--------------------------------------------------------------------------------
/packages/legends/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './svg'
2 | export * from './canvas'
3 | export * from './defaults'
4 | export * from './hooks'
5 | export * from './types'
6 | export * from './compute'
7 | export * from './defaults'
8 |
--------------------------------------------------------------------------------
/packages/legends/src/svg/index.ts:
--------------------------------------------------------------------------------
1 | export * from './symbols'
2 | export * from './AnchoredContinuousColorsLegendSvg'
3 | export * from './BoxLegendSvg'
4 | export * from './ContinuousColorsLegendSvg'
5 | export * from './LegendSvg'
6 | export * from './LegendSvgItem'
7 |
--------------------------------------------------------------------------------
/packages/legends/src/svg/symbols/index.ts:
--------------------------------------------------------------------------------
1 | export * from './SymbolCircle'
2 | export * from './SymbolDiamond'
3 | export * from './SymbolSquare'
4 | export * from './SymbolTriangle'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/legends/src/svg/symbols/types.ts:
--------------------------------------------------------------------------------
1 | export type SymbolProps = {
2 | id: string | number
3 | x: number
4 | y: number
5 | size: number
6 | fill: string
7 | opacity?: number
8 | borderWidth?: number
9 | borderColor?: string
10 | }
11 |
--------------------------------------------------------------------------------
/packages/legends/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/line/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Line'
2 | export * from './ResponsiveLine'
3 | export * from './LineCanvas'
4 | export * from './ResponsiveLineCanvas'
5 | export * from './types'
6 | export * from './defaults'
7 | export * from './hooks'
8 |
--------------------------------------------------------------------------------
/packages/line/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/marimekko/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/marimekko`
4 |
5 | [](https://www.npmjs.com/package/@nivo/marimekko)
6 | [](https://www.npmjs.com/package/@nivo/marimekko)
7 |
8 | ## Marimekko
9 |
10 | [documentation](http://nivo.rocks/marimekko/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/marimekko/src/BarTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { BarDatum } from './types'
3 |
4 | export const BarTooltip = ({ bar }: { bar: BarDatum }) => (
5 |
11 | )
12 |
--------------------------------------------------------------------------------
/packages/marimekko/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Marimekko'
2 | export * from './ResponsiveMarimekko'
3 | export * from './types'
4 | export * from './defaults'
5 |
--------------------------------------------------------------------------------
/packages/marimekko/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/network/src/NetworkNodeTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { InputNode, NodeTooltipProps } from './types'
3 |
4 | export const NetworkNodeTooltip = ({ node }: NodeTooltipProps) => (
5 |
6 | )
7 |
--------------------------------------------------------------------------------
/packages/network/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Network'
2 | export * from './ResponsiveNetwork'
3 | export * from './NetworkCanvas'
4 | export * from './ResponsiveNetworkCanvas'
5 | export * from './defaults'
6 | export * from './hooks'
7 | export * from './types'
8 |
--------------------------------------------------------------------------------
/packages/network/src/renderCanvasLink.ts:
--------------------------------------------------------------------------------
1 | import { InputNode, ComputedLink, InputLink } from './types'
2 |
3 | export const renderCanvasLink = (
4 | ctx: CanvasRenderingContext2D,
5 | link: ComputedLink
6 | ) => {
7 | ctx.strokeStyle = link.color
8 | ctx.lineWidth = link.thickness
9 |
10 | ctx.beginPath()
11 | ctx.moveTo(link.source.x, link.source.y)
12 | ctx.lineTo(link.target.x, link.target.y)
13 | ctx.stroke()
14 | }
15 |
--------------------------------------------------------------------------------
/packages/network/src/renderCanvasNode.ts:
--------------------------------------------------------------------------------
1 | import { ComputedNode, InputNode } from './types'
2 |
3 | export const renderCanvasNode = (
4 | ctx: CanvasRenderingContext2D,
5 | node: ComputedNode
6 | ) => {
7 | ctx.fillStyle = node.color
8 | ctx.beginPath()
9 | ctx.arc(node.x, node.y, node.size / 2, 0, 2 * Math.PI)
10 | ctx.fill()
11 |
12 | if (node.borderWidth > 0) {
13 | ctx.strokeStyle = node.borderColor
14 | ctx.lineWidth = node.borderWidth
15 | ctx.stroke()
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/packages/network/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/parallel-coordinates/src/canvas/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ParallelCoordinatesCanvas'
2 | export * from './ResponsiveParallelCoordinatesCanvas'
3 |
--------------------------------------------------------------------------------
/packages/parallel-coordinates/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './defaults'
2 | export * from './svg'
3 | export * from './canvas'
4 | export * from './types'
5 |
--------------------------------------------------------------------------------
/packages/parallel-coordinates/src/svg/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ParallelCoordinates'
2 | export * from './ResponsiveParallelCoordinates'
3 |
--------------------------------------------------------------------------------
/packages/parallel-coordinates/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/pie/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/pie`
4 |
5 | [](https://www.npmjs.com/package/@nivo/pie)
6 | [](https://www.npmjs.com/package/@nivo/pie)
7 |
8 | ## Pie
9 |
10 | [documentation](http://nivo.rocks/pie/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/pie/src/PieTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { ComputedDatum } from './types'
3 |
4 | export const PieTooltip = ({ datum }: { datum: ComputedDatum }) => (
5 |
11 | )
12 |
13 | export default PieTooltip
14 |
--------------------------------------------------------------------------------
/packages/pie/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Pie'
2 | export * from './ResponsivePie'
3 | export * from './PieCanvas'
4 | export * from './ResponsivePieCanvas'
5 | export * from './props'
6 | export * from './hooks'
7 | export * from './types'
8 |
--------------------------------------------------------------------------------
/packages/pie/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/polar-axes/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/polar-axes`
4 |
5 | [](https://www.npmjs.com/package/@nivo/polar-axes)
6 | [](https://www.npmjs.com/package/@nivo/polar-axes)
7 |
--------------------------------------------------------------------------------
/packages/polar-axes/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './CircularAxis'
2 | export * from './PolarGrid'
3 | export * from './RadialAxis'
4 | export * from './types'
5 |
--------------------------------------------------------------------------------
/packages/polar-axes/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/polar-bar/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/polar-bar`
4 |
5 | [](https://www.npmjs.com/package/@nivo/polar-bar)
6 | [](https://www.npmjs.com/package/@nivo/polar-bar)
7 |
8 | ## PolarBar
9 |
10 | [documentation](http://nivo.rocks/polar-bar/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/polar-bar/src/PolarBarTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { PolarBarTooltipProps } from './types'
3 |
4 | export const PolarBarTooltip = ({ arc }: PolarBarTooltipProps) => {
5 | return (
6 |
10 | {arc.index} - {arc.key}
11 |
12 | }
13 | value={arc.formattedValue}
14 | color={arc.color}
15 | />
16 | )
17 | }
18 |
--------------------------------------------------------------------------------
/packages/polar-bar/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './PolarBar'
2 | export * from './ResponsivePolarBar'
3 | export * from './defaults'
4 | export * from './types'
5 |
--------------------------------------------------------------------------------
/packages/polar-bar/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/radar/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/radar`
4 |
5 | [](https://www.npmjs.com/package/@nivo/radar)
6 | [](https://www.npmjs.com/package/@nivo/radar)
7 |
8 | ## Radar
9 |
10 | [documentation](http://nivo.rocks/radar/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/radar/src/RadarGridLabel.tsx:
--------------------------------------------------------------------------------
1 | import { animated } from '@react-spring/web'
2 | import { useTheme } from '@nivo/theming'
3 | import { Text } from '@nivo/text'
4 | import { GridLabelProps } from './types'
5 |
6 | export const RadarGridLabel = ({ id, anchor, animated: animatedProps }: GridLabelProps) => {
7 | const theme = useTheme()
8 |
9 | return (
10 |
11 |
12 | {id}
13 |
14 |
15 | )
16 | }
17 |
--------------------------------------------------------------------------------
/packages/radar/src/RadarSliceTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { useMemo } from 'react'
2 | import { TableTooltip, Chip } from '@nivo/tooltip'
3 | import { RadarSliceTooltipProps } from './types'
4 |
5 | export const RadarSliceTooltip = ({ index, data }: RadarSliceTooltipProps) => {
6 | const rows = useMemo(
7 | () =>
8 | data.map(datum => [
9 | ,
10 | datum.id,
11 | datum.formattedValue,
12 | ]),
13 | [data]
14 | )
15 |
16 | return {index}} rows={rows} />
17 | }
18 |
--------------------------------------------------------------------------------
/packages/radar/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Radar'
2 | export * from './ResponsiveRadar'
3 | export * from './RadarDots'
4 | export * from './defaults'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/radar/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/radial-bar/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/radial-bar`
4 |
5 | [](https://www.npmjs.com/package/@nivo/radial-bar)
6 | [](https://www.npmjs.com/package/@nivo/radial-bar)
7 |
8 | ## RadialBar
9 |
10 | [documentation](http://nivo.rocks/radial-bar/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/radial-bar/src/RadialBarTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { RadialBarDatum, RadialBarTooltipProps } from './types'
3 |
4 | export const RadialBarTooltip = ({ bar }: RadialBarTooltipProps) => {
5 | return (
6 |
10 | {bar.category} - {bar.groupId}
11 |
12 | }
13 | value={bar.formattedValue}
14 | color={bar.color}
15 | />
16 | )
17 | }
18 |
--------------------------------------------------------------------------------
/packages/radial-bar/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './props'
2 | export * from './RadialBar'
3 | export * from './ResponsiveRadialBar'
4 | export * from './types'
5 |
--------------------------------------------------------------------------------
/packages/radial-bar/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/rects/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/rects`
4 |
5 | [](https://www.npmjs.com/package/@nivo/rects)
6 | [](https://www.npmjs.com/package/@nivo/rects)
7 |
8 | This package is used internally by nivo packages dealing with rects
9 | such as `@nivo/icicle`.
10 |
--------------------------------------------------------------------------------
/packages/rects/src/constants.ts:
--------------------------------------------------------------------------------
1 | import { RectTransitionMode } from './types'
2 |
3 | export const RECT_TRANSITION_MODES: readonly RectTransitionMode[] = [
4 | 'reveal-up',
5 | 'reveal-right',
6 | 'reveal-down',
7 | 'reveal-left',
8 | 'center',
9 | 'flow-up',
10 | 'flow-right',
11 | 'flow-down',
12 | 'flow-left',
13 | ]
14 |
--------------------------------------------------------------------------------
/packages/rects/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './constants'
2 | export * from './hooks'
3 | export * from './RectNodeHtml'
4 | export * from './RectNodeSvg'
5 | export * from './RectNodes'
6 | export * from './RoundedRect'
7 | export * from './types'
8 | export * from './useRectsTransition'
9 | export * from './useRectAnchorsTransition'
10 | export * from './labels'
11 |
--------------------------------------------------------------------------------
/packages/rects/src/labels/index.ts:
--------------------------------------------------------------------------------
1 | export * from './compute'
2 | export * from './RectLabelHtml'
3 | export * from './RectLabels'
4 | export * from './RectLabelSvg'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/rects/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "outDir": "./dist/types",
5 | "rootDir": "./src"
6 | },
7 | "include": ["src/**/*"]
8 | }
--------------------------------------------------------------------------------
/packages/sankey/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/sankey`
4 |
5 | [](https://www.npmjs.com/package/@nivo/sankey)
6 | [](https://www.npmjs.com/package/@nivo/sankey)
7 |
8 | ## Sankey
9 |
10 | [documentation](http://nivo.rocks/sankey/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/sankey/src/SankeyNodeTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { DefaultLink, DefaultNode, SankeyNodeDatum } from './types'
3 |
4 | export interface SankeyNodeTooltipProps {
5 | node: SankeyNodeDatum
6 | }
7 |
8 | export const SankeyNodeTooltip = ({
9 | node,
10 | }: SankeyNodeTooltipProps) => (
11 |
12 | )
13 |
--------------------------------------------------------------------------------
/packages/sankey/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Sankey'
2 | export * from './ResponsiveSankey'
3 | export * from './props'
4 | export * from './types'
5 |
--------------------------------------------------------------------------------
/packages/sankey/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/scales/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/scales`
4 |
5 | [](https://www.npmjs.com/package/@nivo/scales)
6 | [](https://www.npmjs.com/package/@nivo/scales)
7 |
--------------------------------------------------------------------------------
/packages/scales/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './compute'
2 | export * from './linearScale'
3 | export * from './logScale'
4 | export * from './symlogScale'
5 | export * from './pointScale'
6 | export * from './timeScale'
7 | export * from './timeHelpers'
8 | export * from './bandScale'
9 | export * from './ticks'
10 | export * from './types'
11 |
--------------------------------------------------------------------------------
/packages/scales/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/scatterplot/src/Tooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { ScatterPlotTooltipProps, ScatterPlotDatum } from './types'
3 |
4 | export const Tooltip = ({
5 | node,
6 | }: ScatterPlotTooltipProps) => (
7 |
13 | )
14 |
--------------------------------------------------------------------------------
/packages/scatterplot/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ScatterPlot'
2 | export * from './ResponsiveScatterPlot'
3 | export * from './ScatterPlotCanvas'
4 | export * from './ResponsiveScatterPlotCanvas'
5 | export * from './props'
6 | export * from './hooks'
7 | export * from './types'
8 |
--------------------------------------------------------------------------------
/packages/scatterplot/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/static/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/static`
4 |
5 | [](https://www.npmjs.com/package/@nivo/static)
6 | [](https://www.npmjs.com/package/@nivo/static)
7 |
--------------------------------------------------------------------------------
/packages/static/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './mappings'
2 | export { renderChart } from './renderer'
3 | export { samples } from './samples'
4 |
--------------------------------------------------------------------------------
/packages/static/src/mappings/commons/curves.ts:
--------------------------------------------------------------------------------
1 | import Joi from 'joi'
2 |
3 | export const closedCurve = Joi.valid(
4 | 'basisClosed',
5 | 'cardinalClosed',
6 | 'catmullRomClosed',
7 | 'linearClosed'
8 | )
9 |
--------------------------------------------------------------------------------
/packages/static/src/mappings/commons/dimensions.ts:
--------------------------------------------------------------------------------
1 | import Joi from 'joi'
2 |
3 | export const dimensions = {
4 | width: Joi.number().integer().required(),
5 | height: Joi.number().integer().required(),
6 | margin: Joi.object().keys({
7 | top: Joi.number().integer(),
8 | right: Joi.number().integer(),
9 | bottom: Joi.number().integer(),
10 | left: Joi.number().integer(),
11 | }),
12 | }
13 |
--------------------------------------------------------------------------------
/packages/static/src/types.ts:
--------------------------------------------------------------------------------
1 | export type OmitStrict = T extends any ? Pick> : never
2 |
--------------------------------------------------------------------------------
/packages/static/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/stream/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/stream`
4 |
5 | [](https://www.npmjs.com/package/@nivo/stream)
6 | [](https://www.npmjs.com/package/@nivo/stream)
7 |
8 | ## Stream
9 |
10 | [documentation](http://nivo.rocks/stream/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/stream/src/LayerTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { TooltipProps } from './types'
3 |
4 | export const LayerTooltip = ({ layer }: TooltipProps) => (
5 |
6 | )
7 |
--------------------------------------------------------------------------------
/packages/stream/src/StackTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { useMemo } from 'react'
2 | import { TableTooltip, Chip } from '@nivo/tooltip'
3 | import { StackTooltipProps } from './types'
4 |
5 | export const StackTooltip = ({ slice }: StackTooltipProps) => {
6 | const rows = useMemo(
7 | () =>
8 | slice.stack.map(p => [
9 | ,
10 | p.layerLabel,
11 | p.formattedValue,
12 | ]),
13 | [slice]
14 | )
15 |
16 | return
17 | }
18 |
--------------------------------------------------------------------------------
/packages/stream/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Stream'
2 | export * from './ResponsiveStream'
3 | export * from './props'
4 | export * from './types'
5 |
--------------------------------------------------------------------------------
/packages/stream/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/sunburst/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/sunburst`
4 |
5 | [](https://www.npmjs.com/package/@nivo/sunburst)
6 | [](https://www.npmjs.com/package/@nivo/sunburst)
7 |
8 | ## Sunburst
9 |
10 | [documentation](http://nivo.rocks/sunburst/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/sunburst/src/SunburstTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { ComputedDatum } from './types'
3 |
4 | export const SunburstTooltip = ({
5 | id,
6 | formattedValue,
7 | color,
8 | }: ComputedDatum) => (
9 |
10 | )
11 |
--------------------------------------------------------------------------------
/packages/sunburst/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Sunburst'
2 | export * from './ResponsiveSunburst'
3 | export * from './hooks'
4 | export * from './props'
5 | export * from './types'
6 |
--------------------------------------------------------------------------------
/packages/sunburst/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/swarmplot/doc/swarmplot-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/packages/swarmplot/doc/swarmplot-canvas.png
--------------------------------------------------------------------------------
/packages/swarmplot/doc/swarmplot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/packages/swarmplot/doc/swarmplot.png
--------------------------------------------------------------------------------
/packages/swarmplot/src/SwarmPlotTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { ComputedDatum } from './types'
3 |
4 | export const SwarmPlotTooltip = ({
5 | id,
6 | formattedValue,
7 | color,
8 | }: ComputedDatum) => (
9 |
10 | )
11 |
--------------------------------------------------------------------------------
/packages/swarmplot/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './SwarmPlot'
2 | export * from './ResponsiveSwarmPlot'
3 | export * from './SwarmPlotCanvas'
4 | export * from './ResponsiveSwarmPlotCanvas'
5 | export * from './SwarmPlotTooltip'
6 | export * from './compute'
7 | export * from './hooks'
8 | export * from './props'
9 | export * from './types'
10 |
--------------------------------------------------------------------------------
/packages/swarmplot/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/text/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/text`
4 |
5 | [](https://www.npmjs.com/package/@nivo/text)
6 | [](https://www.npmjs.com/package/@nivo/text)
7 |
--------------------------------------------------------------------------------
/packages/text/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './boxAnchor'
2 | export * from './canvas'
3 | export * from './Text'
4 |
--------------------------------------------------------------------------------
/packages/text/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/theming/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/theming`
4 |
5 | [](https://www.npmjs.com/package/@nivo/theming)
6 | [](https://www.npmjs.com/package/@nivo/theming)
7 |
--------------------------------------------------------------------------------
/packages/theming/src/hooks.ts:
--------------------------------------------------------------------------------
1 | import { useMemo } from 'react'
2 | import { extendDefaultTheme, extendAxisTheme } from './extend'
3 | import { defaultTheme } from './defaults'
4 | import { PartialTheme, Theme } from './types'
5 |
6 | export const usePartialTheme = (partialTheme: PartialTheme) => {
7 | return useMemo(() => extendDefaultTheme(defaultTheme, partialTheme), [partialTheme])
8 | }
9 |
10 | export const useExtendedAxisTheme = (axisTheme: Theme['axis'], overrides: PartialTheme['axis']) => {
11 | return useMemo(() => extendAxisTheme(axisTheme, overrides), [axisTheme, overrides])
12 | }
13 |
--------------------------------------------------------------------------------
/packages/theming/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './borderRadius'
2 | export * from './bridge'
3 | export * from './context'
4 | export * from './defaults'
5 | export * from './extend'
6 | export * from './hooks'
7 | export * from './types'
8 |
--------------------------------------------------------------------------------
/packages/theming/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/tooltip/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/tooltip`
4 |
5 | [](https://www.npmjs.com/package/@nivo/tooltip)
6 | [](https://www.npmjs.com/package/@nivo/tooltip)
7 |
--------------------------------------------------------------------------------
/packages/tooltip/src/Chip.tsx:
--------------------------------------------------------------------------------
1 | import { CSSProperties, memo } from 'react'
2 |
3 | interface ChipProps {
4 | size?: number
5 | color: string
6 | style?: CSSProperties
7 | }
8 |
9 | export const Chip = memo(({ size = 12, color, style = {} }) => (
10 |
11 | ))
12 |
--------------------------------------------------------------------------------
/packages/tooltip/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './TooltipWrapper'
2 | export * from './BasicTooltip'
3 | export * from './Chip'
4 | export * from './TableTooltip'
5 | export * from './Crosshair'
6 | export * from './Tooltip'
7 | export * from './TooltipProvider'
8 | export * from './context'
9 | export * from './hooks'
10 | export * from './types'
11 |
--------------------------------------------------------------------------------
/packages/tooltip/src/types.ts:
--------------------------------------------------------------------------------
1 | export type TooltipPosition = 'cursor' | 'fixed'
2 | export type TooltipAnchor = 'top' | 'right' | 'bottom' | 'left' | 'center'
3 |
4 | export type CrosshairType =
5 | | 'x'
6 | | 'y'
7 | | 'top-left'
8 | | 'top'
9 | | 'top-right'
10 | | 'right'
11 | | 'bottom-right'
12 | | 'bottom'
13 | | 'bottom-left'
14 | | 'left'
15 | | 'cross'
16 |
--------------------------------------------------------------------------------
/packages/tooltip/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/tree/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/tree`
4 |
5 | [](https://www.npmjs.com/package/@nivo/tree)
6 | [](https://www.npmjs.com/package/@nivo/tree)
7 |
8 | ## Tree
9 |
10 | [documentation](http://nivo.rocks/tree/)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/tree/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Tree'
2 | export * from './ResponsiveTree'
3 | export * from './TreeCanvas'
4 | export * from './ResponsiveTreeCanvas'
5 | export * from './hooks'
6 | export * from './labelsHooks'
7 | export * from './types'
8 | export * from './defaults'
9 |
--------------------------------------------------------------------------------
/packages/tree/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
--------------------------------------------------------------------------------
/packages/treemap/src/TreeMapNodeTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { memo } from 'react'
2 | import { BasicTooltip } from '@nivo/tooltip'
3 | import { TooltipProps } from './types'
4 |
5 | const NonMemoizedTreeMapNodeTooltip = ({ node }: TooltipProps) => (
6 |
7 | )
8 |
9 | export const TreeMapNodeTooltip = memo(
10 | NonMemoizedTreeMapNodeTooltip
11 | ) as typeof NonMemoizedTreeMapNodeTooltip
12 |
--------------------------------------------------------------------------------
/packages/treemap/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './TreeMap'
2 | export * from './ResponsiveTreeMap'
3 | export * from './TreeMapHtml'
4 | export * from './ResponsiveTreeMapHtml'
5 | export * from './TreeMapCanvas'
6 | export * from './ResponsiveTreeMapCanvas'
7 | export * from './types'
8 | export * from './defaults'
9 | export * from './transitions'
10 | export * from './tiling'
11 |
--------------------------------------------------------------------------------
/packages/treemap/src/tiling.ts:
--------------------------------------------------------------------------------
1 | import {
2 | treemapBinary,
3 | treemapDice,
4 | treemapSlice,
5 | treemapSliceDice,
6 | treemapSquarify,
7 | } from 'd3-hierarchy'
8 |
9 | export const tileByType = {
10 | binary: treemapBinary,
11 | dice: treemapDice,
12 | slice: treemapSlice,
13 | sliceDice: treemapSliceDice,
14 | squarify: treemapSquarify,
15 | } as const
16 |
17 | export type TileType = keyof typeof tileByType
18 |
--------------------------------------------------------------------------------
/packages/treemap/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/voronoi/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # `@nivo/voronoi`
4 |
5 | [](https://www.npmjs.com/package/@nivo/voronoi)
6 | [](https://www.npmjs.com/package/@nivo/voronoi)
7 |
8 | ## Voronoi
9 |
10 | [documentation](http://nivo.rocks/voronoi)
11 |
12 | 
13 |
--------------------------------------------------------------------------------
/packages/voronoi/src/defaults.ts:
--------------------------------------------------------------------------------
1 | import { Margin, defaultMargin as coreDefaultMargin } from '@nivo/core'
2 | import { TooltipAnchor, TooltipPosition } from '@nivo/tooltip'
3 |
4 | export const defaultNodePositionAccessor = (node: {
5 | x: number
6 | y: number
7 | }): [x: number, y: number] => [node.x, node.y]
8 |
9 | export const defaultMargin: Margin = coreDefaultMargin
10 |
11 | export const defaultTooltipPosition: TooltipPosition = 'cursor'
12 | export const defaultTooltipAnchor: TooltipAnchor = 'top'
13 |
--------------------------------------------------------------------------------
/packages/voronoi/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Voronoi'
2 | export * from './ResponsiveVoronoi'
3 | export * from './Mesh'
4 | export * from './computeMesh'
5 | export * from './meshCanvas'
6 | export * from './props'
7 | export * from './hooks'
8 | export * from './types'
9 |
--------------------------------------------------------------------------------
/packages/voronoi/src/props.ts:
--------------------------------------------------------------------------------
1 | import { VoronoiDomain, VoronoiLayer } from './types'
2 |
3 | export const defaultVoronoiProps = {
4 | xDomain: [0, 1] as VoronoiDomain,
5 | yDomain: [0, 1] as VoronoiDomain,
6 | layers: ['links', 'cells', 'points', 'bounds'] as VoronoiLayer[],
7 | enableLinks: false,
8 | linkLineWidth: 1,
9 | linkLineColor: '#bbbbbb',
10 | enableCells: true,
11 | cellLineWidth: 2,
12 | cellLineColor: '#000000',
13 | enablePoints: true,
14 | pointSize: 4,
15 | pointColor: '#666666',
16 | role: 'img',
17 | }
18 |
--------------------------------------------------------------------------------
/packages/voronoi/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/waffle/src/WaffleTooltip.tsx:
--------------------------------------------------------------------------------
1 | import { BasicTooltip } from '@nivo/tooltip'
2 | import { Datum, TooltipProps } from './types'
3 |
4 | export const WaffleTooltip = ({ data }: TooltipProps) => (
5 |
11 | )
12 |
--------------------------------------------------------------------------------
/packages/waffle/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Waffle'
2 | export * from './ResponsiveWaffle'
3 | export * from './WaffleHtml'
4 | export * from './ResponsiveWaffleHtml'
5 | export * from './WaffleCanvas'
6 | export * from './ResponsiveWaffleCanvas'
7 | export * from './types'
8 | export * from './defaults'
9 |
--------------------------------------------------------------------------------
/packages/waffle/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.types.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "outDir": "./dist/types",
6 | "rootDir": "./src"
7 | },
8 | "include": ["src/**/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - 'packages/*'
3 | - 'api/'
4 | - 'website/'
5 | - 'storybook/'
6 | - 'cypress/'
--------------------------------------------------------------------------------
/storybook/.storybook/main.js:
--------------------------------------------------------------------------------
1 | /** @type { import('@storybook/react-webpack5').StorybookConfig } */
2 | const config = {
3 | stories: ['../stories/**/*.mdx', '../stories/**/*.stories.@(js|jsx|ts|tsx)'],
4 | addons: [
5 | '@storybook/addon-links',
6 | '@storybook/addon-essentials',
7 | '@storybook/addon-interactions',
8 | '@storybook/addon-webpack5-compiler-swc',
9 | ],
10 | framework: {
11 | name: '@storybook/react-webpack5',
12 | options: {},
13 | },
14 | docs: {},
15 | typescript: {
16 | reactDocgen: 'react-docgen-typescript',
17 | },
18 | }
19 | export default config
20 |
--------------------------------------------------------------------------------
/storybook/.storybook/preview.js:
--------------------------------------------------------------------------------
1 | import './global.css'
2 |
3 | /** @type { import('@storybook/react').Preview } */
4 | const preview = {
5 | parameters: {
6 | controls: {
7 | matchers: {
8 | color: /(background|color)$/i,
9 | date: /Date$/,
10 | },
11 | },
12 | },
13 | }
14 |
15 | export default preview
16 |
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/betulaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/betulaceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/conifers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/conifers.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/cupressaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/cupressaceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/deciduous_broadleaf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/deciduous_broadleaf.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/ericaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/ericaceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/fagaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/fagaceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/flowering_fruiting_trees.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/flowering_fruiting_trees.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/leguminosae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/leguminosae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/moraceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/moraceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/myrtaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/myrtaceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/pinaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/pinaceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/rosaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/rosaceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/sapindaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/sapindaceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/shimpaku.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/shimpaku.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/theaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/theaceae.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/tropicals_subtropicals.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/tropicals_subtropicals.png
--------------------------------------------------------------------------------
/storybook/stories/assets/imgs/ulmaceae.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/storybook/stories/assets/imgs/ulmaceae.png
--------------------------------------------------------------------------------
/storybook/stories/heatmap/data.ts:
--------------------------------------------------------------------------------
1 | import { generateXYSeries } from '@nivo/generators'
2 |
3 | export const sampleData = generateXYSeries({
4 | serieIds: ['Japan', 'France', 'US', 'Germany', 'Norway', 'Iceland', 'UK', 'Vietnam'],
5 | x: {
6 | values: ['Train', 'Subway', 'Bus', 'Car', 'Boat', 'Moto', 'Moped', 'Bicycle', 'Others'],
7 | },
8 | y: {
9 | length: NaN,
10 | min: -100_000,
11 | max: 100_000,
12 | round: true,
13 | },
14 | })
15 |
--------------------------------------------------------------------------------
/storybook/stories/internal/helpers.ts:
--------------------------------------------------------------------------------
1 | export const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))
2 |
--------------------------------------------------------------------------------
/storybook/stories/nivo-theme.ts:
--------------------------------------------------------------------------------
1 | import { PartialTheme } from '@nivo/theming'
2 |
3 | export const nivoTheme: PartialTheme = {
4 | text: {
5 | fontFamily: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,
6 | },
7 | }
8 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "esModuleInterop": true,
4 | "isolatedModules": true,
5 | "jsx": "react-jsx",
6 | "lib": ["ES2022", "DOM", "DOM.Iterable"],
7 | "target": "ES2022",
8 | "module": "esnext",
9 | "moduleResolution": "node",
10 | "noEmit": true,
11 | "noImplicitAny": true,
12 | "noImplicitReturns": false,
13 | "noImplicitThis": true,
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "skipLibCheck": false,
17 | "strict": true,
18 | "allowJs": true,
19 | "composite": true,
20 | "declarationMap": true
21 | },
22 | "include": ["./packages/*/index.d.ts"]
23 | }
24 |
--------------------------------------------------------------------------------
/tsconfig.types.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "declaration": true,
5 | "emitDeclarationOnly": true,
6 | "noEmit": false
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/website/.gitignore:
--------------------------------------------------------------------------------
1 | .cache/
2 | public
3 | src/gatsby-types.d.ts
4 |
--------------------------------------------------------------------------------
/website/gatsby-browser.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { WrapPageElementBrowserArgs, WrapRootElementBrowserArgs } from 'gatsby'
3 | import { RootWrapper } from './src/components/RootWrapper'
4 | import { PageWrapper } from './src/components/PageWrapper'
5 |
6 | export const wrapRootElement = ({ element }: WrapRootElementBrowserArgs) => (
7 |
8 | {element}
9 |
10 | )
11 |
12 | export const wrapPageElement = ({ element }: WrapPageElementBrowserArgs) => (
13 |
14 | {element}
15 |
16 | )
17 |
--------------------------------------------------------------------------------
/website/gatsby-node.js:
--------------------------------------------------------------------------------
1 | const replacePath = (_path) =>
2 | _path === `/` ? _path : _path.replace(/\/$|$/, `/`)
3 |
4 | const excludedPaths = [`/404.html`]
5 |
6 | exports.onCreatePage = async ({ page, actions }) => {
7 | const { createPage, deletePage } = actions
8 |
9 | return new Promise(resolve => {
10 | if(!excludedPaths.includes(page.path)) {
11 | const oldPage = Object.assign({}, page)
12 | page.path = replacePath(page.path)
13 | if (page.path !== oldPage.path) {
14 | deletePage(oldPage)
15 | createPage(page)
16 | }
17 | }
18 |
19 | resolve()
20 | })
21 | }
22 |
--------------------------------------------------------------------------------
/website/gatsby-ssr.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { GatsbySSR } from 'gatsby'
3 | import { RootWrapper } from './src/components/RootWrapper'
4 | import { PageWrapper } from './src/components/PageWrapper'
5 |
6 | export const wrapRootElement: GatsbySSR['wrapRootElement'] = ({ element }) => (
7 |
8 | {element}
9 |
10 | )
11 |
12 | export const wrapPageElement: GatsbySSR['wrapPageElement'] = ({ element }) => (
13 |
14 | {element}
15 |
16 | )
17 |
--------------------------------------------------------------------------------
/website/sandbox.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "container": {
3 | "port": 8000,
4 | "startScript": "start"
5 | },
6 | "template": "node"
7 | }
8 |
--------------------------------------------------------------------------------
/website/src/assets/captures/area-bump.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/area-bump.png
--------------------------------------------------------------------------------
/website/src/assets/captures/bar-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/bar-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/bar.png
--------------------------------------------------------------------------------
/website/src/assets/captures/bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/bullet.png
--------------------------------------------------------------------------------
/website/src/assets/captures/bump.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/bump.png
--------------------------------------------------------------------------------
/website/src/assets/captures/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/calendar.png
--------------------------------------------------------------------------------
/website/src/assets/captures/chord-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/chord-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/chord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/chord.png
--------------------------------------------------------------------------------
/website/src/assets/captures/choropleth-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/choropleth-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/choropleth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/choropleth.png
--------------------------------------------------------------------------------
/website/src/assets/captures/circle-packing-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/circle-packing-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/circle-packing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/circle-packing.png
--------------------------------------------------------------------------------
/website/src/assets/captures/funnel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/funnel.png
--------------------------------------------------------------------------------
/website/src/assets/captures/geomap-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/geomap-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/geomap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/geomap.png
--------------------------------------------------------------------------------
/website/src/assets/captures/heatmap-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/heatmap-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/heatmap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/heatmap.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/area-bump.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/area-bump.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/bar-horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/bar-horizontal.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/bar-vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/bar-vertical.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/bump.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/bump.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/calendar.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/chord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/chord.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/choropleth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/choropleth.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/circle-packing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/circle-packing.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/icicle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/icicle.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/line.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/marimekko.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/marimekko.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/pie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/pie.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/radar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/radar.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/radial-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/radial-bar.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/sankey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/sankey.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/stream.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/stream.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/sunburst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/sunburst.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/swarmplot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/swarmplot.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/treemap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/treemap.png
--------------------------------------------------------------------------------
/website/src/assets/captures/home/voronoi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/home/voronoi.png
--------------------------------------------------------------------------------
/website/src/assets/captures/icicle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/icicle.png
--------------------------------------------------------------------------------
/website/src/assets/captures/line-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/line-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/line.png
--------------------------------------------------------------------------------
/website/src/assets/captures/marimekko.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/marimekko.png
--------------------------------------------------------------------------------
/website/src/assets/captures/network-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/network-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/network.png
--------------------------------------------------------------------------------
/website/src/assets/captures/pages/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/pages/home.png
--------------------------------------------------------------------------------
/website/src/assets/captures/parallel-coordinates-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/parallel-coordinates-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/parallel-coordinates.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/parallel-coordinates.png
--------------------------------------------------------------------------------
/website/src/assets/captures/pie-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/pie-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/pie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/pie.png
--------------------------------------------------------------------------------
/website/src/assets/captures/polar-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/polar-bar.png
--------------------------------------------------------------------------------
/website/src/assets/captures/radar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/radar.png
--------------------------------------------------------------------------------
/website/src/assets/captures/radial-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/radial-bar.png
--------------------------------------------------------------------------------
/website/src/assets/captures/sankey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/sankey.png
--------------------------------------------------------------------------------
/website/src/assets/captures/scatterplot-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/scatterplot-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/scatterplot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/scatterplot.png
--------------------------------------------------------------------------------
/website/src/assets/captures/stream.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/stream.png
--------------------------------------------------------------------------------
/website/src/assets/captures/sunburst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/sunburst.png
--------------------------------------------------------------------------------
/website/src/assets/captures/swarmplot-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/swarmplot-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/swarmplot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/swarmplot.png
--------------------------------------------------------------------------------
/website/src/assets/captures/tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/tree.png
--------------------------------------------------------------------------------
/website/src/assets/captures/treemap-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/treemap-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/treemap-html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/treemap-html.png
--------------------------------------------------------------------------------
/website/src/assets/captures/treemap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/treemap.png
--------------------------------------------------------------------------------
/website/src/assets/captures/voronoi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/voronoi.png
--------------------------------------------------------------------------------
/website/src/assets/captures/waffle-canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/waffle-canvas.png
--------------------------------------------------------------------------------
/website/src/assets/captures/waffle-html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/waffle-html.png
--------------------------------------------------------------------------------
/website/src/assets/captures/waffle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/captures/waffle.png
--------------------------------------------------------------------------------
/website/src/assets/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons.png
--------------------------------------------------------------------------------
/website/src/assets/icons/area-bump-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/area-bump-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/area-bump-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/area-bump-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/area-bump-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/area-bump-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/area-bump-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/area-bump-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bar-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bar-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bar-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bar-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bar-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bar-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bar-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bar-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/boxplot-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/boxplot-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/boxplot-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/boxplot-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/boxplot-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/boxplot-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/boxplot-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/boxplot-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bullet-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bullet-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bullet-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bullet-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bullet-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bullet-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bullet-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bullet-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bump-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bump-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bump-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bump-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bump-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bump-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/bump-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/bump-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/calendar-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/calendar-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/calendar-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/calendar-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/calendar-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/calendar-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/calendar-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/calendar-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/chord-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/chord-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/chord-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/chord-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/chord-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/chord-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/chord-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/chord-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/choropleth-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/choropleth-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/choropleth-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/choropleth-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/choropleth-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/choropleth-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/choropleth-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/choropleth-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/circle-packing-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/circle-packing-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/circle-packing-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/circle-packing-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/circle-packing-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/circle-packing-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/circle-packing-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/circle-packing-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/code-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/code-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/code-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/code-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/code-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/code-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/code-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/code-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/data-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/data-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/data-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/data-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/data-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/data-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/data-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/data-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/funnel-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/funnel-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/funnel-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/funnel-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/funnel-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/funnel-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/funnel-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/funnel-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/geomap-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/geomap-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/geomap-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/geomap-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/geomap-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/geomap-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/geomap-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/geomap-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/heatmap-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/heatmap-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/heatmap-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/heatmap-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/heatmap-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/heatmap-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/heatmap-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/heatmap-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/icicle-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/icicle-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/icicle-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/icicle-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/icicle-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/icicle-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/icicle-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/icicle-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/line-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/line-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/line-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/line-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/line-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/line-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/line-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/line-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/marimekko-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/marimekko-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/marimekko-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/marimekko-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/marimekko-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/marimekko-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/marimekko-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/marimekko-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/network-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/network-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/network-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/network-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/network-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/network-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/network-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/network-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/nivo-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/nivo-icon.png
--------------------------------------------------------------------------------
/website/src/assets/icons/parallel-coordinates-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/parallel-coordinates-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/parallel-coordinates-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/parallel-coordinates-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/parallel-coordinates-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/parallel-coordinates-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/parallel-coordinates-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/parallel-coordinates-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/pie-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/pie-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/pie-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/pie-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/pie-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/pie-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/pie-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/pie-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/polar-bar-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/polar-bar-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/polar-bar-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/polar-bar-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/polar-bar-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/polar-bar-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/polar-bar-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/polar-bar-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/radar-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/radar-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/radar-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/radar-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/radar-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/radar-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/radar-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/radar-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/radial-bar-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/radial-bar-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/radial-bar-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/radial-bar-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/radial-bar-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/radial-bar-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/radial-bar-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/radial-bar-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sankey-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sankey-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sankey-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sankey-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sankey-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sankey-grey.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sankey-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sankey-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sankey-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sankey-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sankey-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sankey-red.png
--------------------------------------------------------------------------------
/website/src/assets/icons/scatterplot-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/scatterplot-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/scatterplot-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/scatterplot-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/scatterplot-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/scatterplot-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/scatterplot-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/scatterplot-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sprite.conf:
--------------------------------------------------------------------------------
1 | [sprite]
2 | crop=false
3 | margin=4
4 | padding=0
5 | ratios=2,1
6 | url=../assets/
7 |
--------------------------------------------------------------------------------
/website/src/assets/icons/stream-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/stream-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/stream-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/stream-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/stream-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/stream-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/stream-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/stream-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sunburst-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sunburst-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sunburst-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sunburst-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sunburst-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sunburst-grey.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sunburst-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sunburst-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sunburst-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sunburst-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/sunburst-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/sunburst-red.png
--------------------------------------------------------------------------------
/website/src/assets/icons/swarmplot-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/swarmplot-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/swarmplot-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/swarmplot-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/swarmplot-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/swarmplot-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/swarmplot-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/swarmplot-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/time-range-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/time-range-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/time-range-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/time-range-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/time-range-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/time-range-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/time-range-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/time-range-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/tree-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/tree-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/tree-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/tree-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/tree-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/tree-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/tree-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/tree-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/treemap-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/treemap-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/treemap-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/treemap-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/treemap-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/treemap-grey.png
--------------------------------------------------------------------------------
/website/src/assets/icons/treemap-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/treemap-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/treemap-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/treemap-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/treemap-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/treemap-red.png
--------------------------------------------------------------------------------
/website/src/assets/icons/voronoi-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/voronoi-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/voronoi-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/voronoi-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/voronoi-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/voronoi-grey.png
--------------------------------------------------------------------------------
/website/src/assets/icons/voronoi-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/voronoi-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/voronoi-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/voronoi-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/voronoi-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/voronoi-red.png
--------------------------------------------------------------------------------
/website/src/assets/icons/waffle-dark-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/waffle-dark-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/waffle-dark-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/waffle-dark-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons/waffle-light-colored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/waffle-light-colored.png
--------------------------------------------------------------------------------
/website/src/assets/icons/waffle-light-neutral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons/waffle-light-neutral.png
--------------------------------------------------------------------------------
/website/src/assets/icons@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/icons@2x.png
--------------------------------------------------------------------------------
/website/src/assets/nivo-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/nivo-logo.png
--------------------------------------------------------------------------------
/website/src/assets/stories/SwarmPlotLayers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/stories/SwarmPlotLayers.png
--------------------------------------------------------------------------------
/website/src/assets/stories/SwarmPlotRenderNode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/src/assets/stories/SwarmPlotRenderNode.png
--------------------------------------------------------------------------------
/website/src/components/CodeBlock.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | export const CodeBlock = styled.pre`
4 | margin: 0;
5 | background-color: ${({ theme }) => theme.highlight.plain.backgroundColor};
6 | color: ${({ theme }) => theme.highlight.plain.color};
7 | font-size: 0.8rem;
8 | line-height: 1.7;
9 | padding: 12px 20px;
10 | `
11 |
--------------------------------------------------------------------------------
/website/src/components/PageContent.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import media from '../theming/mediaQueries'
3 |
4 | export default styled.div`
5 | margin: 0 50px;
6 | position: relative;
7 |
8 | ${media.tablet`
9 | & {
10 | margin: 0 30px;
11 | }
12 | `}
13 |
14 | ${media.mobile`
15 | & {
16 | margin: 0 15px;
17 | }
18 | `}
19 | `
20 |
--------------------------------------------------------------------------------
/website/src/components/PageWrapper.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { GlobalStyle } from '../theming/GlobalStyle'
3 |
4 | export const PageWrapper = ({ children }: { children: any }) => {
5 | const isCapturing =
6 | children.props &&
7 | children.props.location &&
8 | children.props.location.search.indexOf('capture=1') !== -1
9 |
10 | return (
11 | <>
12 |
13 | {children}
14 | >
15 | )
16 | }
17 |
--------------------------------------------------------------------------------
/website/src/components/RootWrapper.tsx:
--------------------------------------------------------------------------------
1 | import React, { ReactNode } from 'react'
2 | import { SwitchableThemeProvider } from '../theming/SwitchableThemeProvider'
3 | import '../styles/index.css'
4 |
5 | export const RootWrapper = ({ children }: { children: ReactNode }) => (
6 | {children}
7 | )
8 |
--------------------------------------------------------------------------------
/website/src/components/components/explorer/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ComponentsExplorer'
2 |
--------------------------------------------------------------------------------
/website/src/components/controls/colors/index.ts:
--------------------------------------------------------------------------------
1 | export * from './BlendModeControl'
2 | export * from './BulletColorsControl'
3 | export * from './ColorInterpolatorsControl'
4 | export * from './ColorPickerControl'
5 | export * from './ContinuousColorsControl'
6 | export * from './InheritedColorControl'
7 | export * from './OpacityControl'
8 | export * from './OrdinalColorsControl'
9 | export * from './QuantizeColorsControl'
10 |
--------------------------------------------------------------------------------
/website/src/components/controls/generics/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ArrayControl'
2 | export * from './ChoicesControl'
3 | export * from './NumberArrayControl'
4 | export * from './ObjectControl'
5 | export * from './PropertyDocumentation'
6 | export * from './RadioControl'
7 | export * from './RangeControl'
8 | export * from './SwitchableRangeControl'
9 | export * from './SwitchControl'
10 | export * from './TextControl'
11 |
--------------------------------------------------------------------------------
/website/src/components/controls/specialized/index.ts:
--------------------------------------------------------------------------------
1 | export * from './AngleControl'
2 | export * from './AnnotationsControl'
3 | export * from './BorderRadiusControl'
4 | export * from './BoxAnchorControl'
5 | export * from './CartesianOrientationControl'
6 | export * from './LineWidthControl'
7 | export * from './MarginControl'
8 | export * from './MotionConfigControl'
9 | export * from './ScaleControl'
10 | export * from './ValueFormatControl'
11 |
--------------------------------------------------------------------------------
/website/src/components/controls/ui/Label.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | export const Label = styled.label`
4 | display: block;
5 | white-space: nowrap;
6 | padding-top: 3px;
7 | margin: 0;
8 | font-weight: 500;
9 | text-align: right;
10 | overflow: hidden;
11 | text-overflow: ellipsis;
12 | color: ${({ theme }) => theme.colors.text};
13 | `
14 |
--------------------------------------------------------------------------------
/website/src/components/controls/ui/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Control'
2 | export * from './Help'
3 | export * from './Label'
4 | export * from './PropertyHeader'
5 | export * from './Radio'
6 | export * from './Select'
7 | export * from './styled'
8 | export * from './Switch'
9 | export * from './TextInput'
10 |
--------------------------------------------------------------------------------
/website/src/components/guides/axes/index.ts:
--------------------------------------------------------------------------------
1 | export * from './AxesLegend'
2 | export * from './AxesPosition'
3 | export * from './AxesTicks'
4 |
--------------------------------------------------------------------------------
/website/src/components/guides/legends/index.ts:
--------------------------------------------------------------------------------
1 | export * from './LegendDirection'
2 | export * from './LegendItemDirection'
3 | export * from './LegendPosition'
4 | export * from './SymbolShape'
5 |
--------------------------------------------------------------------------------
/website/src/components/guides/patterns/index.ts:
--------------------------------------------------------------------------------
1 | export * from './PatternsDotsDemo'
2 | export * from './PatternsExample'
3 | export * from './PatternsIllustrations'
4 | export * from './PatternsLinesDemo'
5 | export * from './PatternsSquaresDemo'
6 |
--------------------------------------------------------------------------------
/website/src/components/guides/scales/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ScaleBand'
2 | export * from './ScaleLinear'
3 | export * from './ScaleLog'
4 | export * from './ScaleSymlog'
5 |
--------------------------------------------------------------------------------
/website/src/components/guides/scales/types.ts:
--------------------------------------------------------------------------------
1 | export interface ScaleConfigAttr {
2 | key: string
3 | type: string
4 | defaultValue: any
5 | description: string
6 | }
7 |
--------------------------------------------------------------------------------
/website/src/components/guides/theming/index.ts:
--------------------------------------------------------------------------------
1 | export * from './defaults'
2 | export * from './props'
3 | export * from './ThemedBar'
4 | export * from './ThemedHeatMap'
5 | export * from './ThemedLine'
6 | export * from './ThemedRadialBar'
7 |
--------------------------------------------------------------------------------
/website/src/components/home/dimensions.ts:
--------------------------------------------------------------------------------
1 | export const dimensions = {
2 | width: 600,
3 | height: 400,
4 | margin: {
5 | top: 20,
6 | right: 20,
7 | bottom: 20,
8 | left: 20,
9 | },
10 | lineWidth: 6,
11 | pointSize: 18,
12 | }
13 |
--------------------------------------------------------------------------------
/website/src/components/icons/types.ts:
--------------------------------------------------------------------------------
1 | export type IconType = 'lightNeutral' | 'lightColored' | 'darkNeutral' | 'darkColored'
2 |
--------------------------------------------------------------------------------
/website/src/components/nav/index.ts:
--------------------------------------------------------------------------------
1 | export * from './FullNav'
2 | export * from './HeaderNav'
3 | export * from './MiniNav'
4 |
--------------------------------------------------------------------------------
/website/src/data/components/area-bump/meta.yml:
--------------------------------------------------------------------------------
1 | flavors:
2 | - flavor: svg
3 | path: /area-bump/
4 |
5 | AreaBump:
6 | package: '@nivo/bump'
7 | tags: []
8 | stories: []
9 | description: |
10 | The AreaBump chart is similar to the [Bump](self:/bump/) chart,
11 | but instead of only showing the ranking over time, it also shows
12 | the values on the y-axis.
13 |
14 | If you're only interested in ranking, you can also you use
15 | the [Bump](self:/bump/) component.
16 |
--------------------------------------------------------------------------------
/website/src/data/components/boxplot/mapper.ts:
--------------------------------------------------------------------------------
1 | import { settingsMapper } from '../../../lib/settings'
2 | import { mapAxis, mapFormat, mapLegends } from '../../../lib/property-mappers'
3 |
4 | export default settingsMapper(
5 | {
6 | valueFormat: mapFormat,
7 | axisTop: mapAxis,
8 | axisRight: mapAxis,
9 | axisBottom: mapAxis,
10 | axisLeft: mapAxis,
11 | legends: mapLegends,
12 | },
13 | {
14 | exclude: ['enable axisTop', 'enable axisRight', 'enable axisBottom', 'enable axisLeft'],
15 | }
16 | )
17 |
--------------------------------------------------------------------------------
/website/src/data/components/boxplot/meta.yml:
--------------------------------------------------------------------------------
1 | flavors:
2 | - flavor: svg
3 | path: /boxplot/
4 |
5 | BoxPlot:
6 | package: '@nivo/boxplot'
7 | tags: []
8 | stories: []
9 | description: |
10 | BoxPlot.
11 |
--------------------------------------------------------------------------------
/website/src/data/components/circle-packing/mapper.ts:
--------------------------------------------------------------------------------
1 | import { settingsMapper } from '../../../lib/settings'
2 | import { mapFormat } from '../../../lib/property-mappers'
3 |
4 | export default settingsMapper({
5 | valueFormat: mapFormat,
6 | label: value => {
7 | if (value === `d => \`\${d.id}: \${d.value}\``) return d => `${d.id}: ${d.value}`
8 | return value
9 | },
10 | })
11 |
--------------------------------------------------------------------------------
/website/src/data/components/funnel/generator.ts:
--------------------------------------------------------------------------------
1 | import { random, startCase } from 'lodash'
2 |
3 | export const generateLightDataSet = () => {
4 | const ids = ['sent', 'viewed', 'clicked', 'add_to_card', 'purchased']
5 |
6 | let lastValue = 100000
7 |
8 | return ids.map(id => {
9 | lastValue = Math.round(lastValue * random(0.6, 0.95))
10 |
11 | return {
12 | id: `step_${id}`,
13 | value: lastValue,
14 | label: startCase(id),
15 | }
16 | })
17 | }
18 |
--------------------------------------------------------------------------------
/website/src/data/components/funnel/mapper.ts:
--------------------------------------------------------------------------------
1 | import { settingsMapper } from '../../../lib/settings'
2 | import { mapFormat } from '../../../lib/property-mappers'
3 |
4 | export default settingsMapper({
5 | valueFormat: mapFormat,
6 | })
7 |
--------------------------------------------------------------------------------
/website/src/data/components/funnel/meta.yml:
--------------------------------------------------------------------------------
1 | flavors:
2 | - flavor: svg
3 | path: /funnel/
4 |
5 | Funnel:
6 | package: '@nivo/funnel'
7 | tags:
8 | - experimental
9 | stories: []
10 | description: |
11 | A funnel chart.
12 |
13 | This component also provides a React hook which can be used in *headless mode*:
14 | `useFunnel()`, meaning that you can compute the chart but handle the rendering
15 | by yourself, this hook supports almost the same properties as the chart.
16 |
--------------------------------------------------------------------------------
/website/src/data/components/geo/generator.ts:
--------------------------------------------------------------------------------
1 | import countries from './world_countries'
2 |
3 | const exclude = ['BRA', 'AUS', 'SWE', 'GRL', 'COD']
4 |
5 | export const generateChoroplethData = () =>
6 | countries.features
7 | .filter(feature => !exclude.includes(feature.id))
8 | .map(feature => ({
9 | id: feature.id,
10 | value: Math.round(Math.random() * 1000000),
11 | }))
12 |
--------------------------------------------------------------------------------
/website/src/data/components/geomap/props.ts:
--------------------------------------------------------------------------------
1 | import { groupProperties } from '../../../lib/componentProperties'
2 | import { props as geoProps } from '../geo/props'
3 |
4 | const props = [...geoProps]
5 |
6 | export const groups = groupProperties(props)
7 |
--------------------------------------------------------------------------------
/website/src/data/components/parallel-coordinates/mapper.ts:
--------------------------------------------------------------------------------
1 | import { settingsMapper } from '../../../lib/settings'
2 | import { mapLegends } from '../../../lib/property-mappers'
3 |
4 | export default settingsMapper({
5 | legends: mapLegends,
6 | })
7 |
--------------------------------------------------------------------------------
/website/src/data/components/polar-bar/generator.ts:
--------------------------------------------------------------------------------
1 | import { generateMonthlyData } from '@nivo/generators'
2 |
3 | const keys = ['Rent', 'Groceries', 'Transport', 'Savings', 'Misc']
4 |
5 | export const generateLightDataSet = () => ({
6 | data: generateMonthlyData(keys, { withColors: false, short: true }),
7 | keys,
8 | })
9 |
--------------------------------------------------------------------------------
/website/src/data/components/radial-bar/meta.yml:
--------------------------------------------------------------------------------
1 | flavors:
2 | - flavor: svg
3 | path: /radial-bar/
4 |
5 | RadialBar:
6 | package: '@nivo/radial-bar'
7 | tags:
8 | - radial
9 | - bar
10 | stories: []
11 | description: |
12 | A radial bar chart.
13 |
14 | Note that margin object does not take grid labels into account,
15 | so you should adjust it to leave enough room for it.
16 |
17 | See the [dedicated guide](self:/guides/legends) on how to setup
18 | legends for this component.
19 |
--------------------------------------------------------------------------------
/website/src/data/components/scatterplot/generator.ts:
--------------------------------------------------------------------------------
1 | import range from 'lodash/range.js'
2 | import random from 'lodash/random.js'
3 |
4 | const keys = ['group A', 'group B', 'group C', 'group D', 'group E']
5 | const ageRange = [0, 100]
6 | const weightRange = [0, 120]
7 |
8 | const generateData = size =>
9 | keys.map(key => ({
10 | id: key,
11 | data: range(size).map(i => ({
12 | x: random(ageRange[0], ageRange[1]),
13 | y: random(weightRange[0], weightRange[1]),
14 | })),
15 | }))
16 |
17 | export const generateLightDataSet = () => generateData(50)
18 |
19 | export const generateHeavyDataSet = () => generateData(800)
20 |
--------------------------------------------------------------------------------
/website/src/data/components/scatterplot/mapper.ts:
--------------------------------------------------------------------------------
1 | import { settingsMapper } from '../../../lib/settings'
2 | import { mapAxis, mapFormat, mapLegends } from '../../../lib/property-mappers'
3 |
4 | export default settingsMapper(
5 | {
6 | xFormat: mapFormat,
7 | yFormat: mapFormat,
8 | axisTop: mapAxis,
9 | axisRight: mapAxis,
10 | axisBottom: mapAxis,
11 | axisLeft: mapAxis,
12 | legends: mapLegends,
13 | },
14 | {
15 | exclude: ['enable axisTop', 'enable axisRight', 'enable axisBottom', 'enable axisLeft'],
16 | }
17 | )
18 |
--------------------------------------------------------------------------------
/website/src/data/components/stream/mapper.ts:
--------------------------------------------------------------------------------
1 | import { settingsMapper } from '../../../lib/settings'
2 | import { mapAxis, mapFormat, mapLegends } from '../../../lib/property-mappers'
3 |
4 | export default settingsMapper(
5 | {
6 | valueFormat: mapFormat,
7 | axisTop: mapAxis,
8 | axisRight: mapAxis,
9 | axisBottom: mapAxis,
10 | axisLeft: mapAxis,
11 | legends: mapLegends,
12 | },
13 | {
14 | exclude: ['enable axisTop', 'enable axisRight', 'enable axisBottom', 'enable axisLeft'],
15 | }
16 | )
17 |
--------------------------------------------------------------------------------
/website/src/data/components/stream/meta.yml:
--------------------------------------------------------------------------------
1 | flavors:
2 | - flavor: svg
3 | path: /stream/
4 |
5 | Stream:
6 | package: '@nivo/stream'
7 | tags:
8 | - stacked
9 | stories:
10 | - label: Use custom legend label
11 | link: stream--custom-legend-label
12 | description: |
13 | Stream chart.
14 |
15 | See the [dedicated guide](self:/guides/legends) on
16 | how to setup legends for this component.
17 |
--------------------------------------------------------------------------------
/website/src/data/components/swarmplot/mapper.ts:
--------------------------------------------------------------------------------
1 | import { settingsMapper } from '../../../lib/settings'
2 | import { mapAxis, mapFormat } from '../../../lib/property-mappers'
3 |
4 | export default settingsMapper({
5 | valueFormat: mapFormat,
6 | axisTop: mapAxis,
7 | axisRight: mapAxis,
8 | axisBottom: mapAxis,
9 | axisLeft: mapAxis,
10 | })
11 |
--------------------------------------------------------------------------------
/website/src/data/components/time-range/meta.yml:
--------------------------------------------------------------------------------
1 | flavors:
2 | - flavor: svg
3 | path: /time-range/
4 |
5 | TimeRange:
6 | package: '@nivo/calendar'
7 | tags: []
8 | stories: []
9 | description: |
10 | The TimeRange chart is similar to the [Calendar](self:/calendar) chart, but
11 | it allows you to specify dates less than a year.
12 |
--------------------------------------------------------------------------------
/website/src/data/components/treemap/mapper.ts:
--------------------------------------------------------------------------------
1 | import { settingsMapper } from '../../../lib/settings'
2 | import { mapFormat } from '../../../lib/property-mappers'
3 |
4 | export default settingsMapper({
5 | label: value => {
6 | if (value === `node => \`\${node.id} (\${node.formattedValue})\``)
7 | return node => `${node.id} (${node.formattedValue})`
8 | return value
9 | },
10 | parentLabel: value => {
11 | if (value === `node => node.pathComponents.join(' / ')`)
12 | return node => node.pathComponents.join(' / ')
13 | return value
14 | },
15 | valueFormat: mapFormat,
16 | })
17 |
--------------------------------------------------------------------------------
/website/src/data/components/voronoi/meta.yml:
--------------------------------------------------------------------------------
1 | flavors:
2 | - flavor: svg
3 | path: /voronoi/
4 |
5 | Voronoi:
6 | package: '@nivo/voronoi'
7 | tags:
8 | - experimental
9 | stories: []
10 | description: |
11 | Delaunay/Voronoi Tessellation, uses
12 | [d3-delaunay](https://github.com/d3/d3-delaunay).
13 |
--------------------------------------------------------------------------------
/website/src/data/config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | // local
3 | // nivoApiUrl: 'http://localhost:3030/nivo',
4 | // storybookUrl: 'http://localhost:6006/',
5 |
6 | // production
7 | nivoApiUrl: 'https://nivo-api.herokuapp.com/nivo',
8 | storybookUrl: 'https://nivo.rocks/storybook/',
9 | }
10 |
--------------------------------------------------------------------------------
/website/src/lib/chart-properties/index.ts:
--------------------------------------------------------------------------------
1 | export * from './accessibility'
2 | export * from './annotations'
3 | export * from './axes'
4 | export * from './chart-dimensions'
5 | export * from './colors'
6 | export * from './grid'
7 | export * from './interactivity'
8 | export * from './ref'
9 |
--------------------------------------------------------------------------------
/website/src/lib/objectDiff.ts:
--------------------------------------------------------------------------------
1 | import fromPairs from 'lodash/fromPairs.js'
2 | import differenceWith from 'lodash/differenceWith.js'
3 | import toPairs from 'lodash/toPairs.js'
4 | import isEqual from 'lodash/isEqual.js'
5 |
6 | export const objectDiff = (a: Record, b: Record) =>
7 | fromPairs(differenceWith(toPairs(a), toPairs(b), isEqual))
8 |
--------------------------------------------------------------------------------
/website/src/lib/property-mappers/index.ts:
--------------------------------------------------------------------------------
1 | export * from './mapAxis'
2 | export * from './mapFormat'
3 | export * from './mapLegends'
4 |
--------------------------------------------------------------------------------
/website/src/lib/property-mappers/mapFormat.ts:
--------------------------------------------------------------------------------
1 | export interface UnmappedValueFormat {
2 | enabled: boolean
3 | format: string
4 | }
5 |
6 | export const mapFormat = ({ format, enabled }: UnmappedValueFormat) =>
7 | enabled ? format : undefined
8 |
--------------------------------------------------------------------------------
/website/src/lib/property-mappers/mapLegends.ts:
--------------------------------------------------------------------------------
1 | import { LegendProps, legendDefaults } from '@nivo/legends'
2 | import { objectDiff } from '../objectDiff'
3 |
4 | /**
5 | * Exclude default values from legend objects for simpler code snippets.
6 | * Some charts extend the legend object with additional properties, hence the generic type.
7 | */
8 | export const mapLegends = (
9 | value: readonly L[] | undefined
10 | ): readonly L[] | undefined => {
11 | if (value === undefined) return value
12 |
13 | return value.map(legend => {
14 | return objectDiff(legend, legendDefaults) as L
15 | })
16 | }
17 |
--------------------------------------------------------------------------------
/website/src/pages/404.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Layout from '../components/Layout'
3 | import { Seo } from '../components/Seo'
4 | import { DescriptionBlock } from '../components/styled'
5 |
6 | const NotFoundPage = () => (
7 |
8 |
9 |
10 |
Not Found
11 |
12 |
13 | You just hit a route that doesn't exist... the sadness.
14 |
15 |
16 | )
17 |
18 | export default NotFoundPage
19 |
--------------------------------------------------------------------------------
/website/src/pages/components.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { PageProps } from 'gatsby'
3 | import Layout from '../components/Layout'
4 | import { Seo } from '../components/Seo'
5 | import { ComponentsExplorer } from '../components/components/explorer'
6 |
7 | const Components = ({ location }: PageProps) => {
8 | return (
9 |
10 |
11 |
12 |
13 | )
14 | }
15 |
16 | export default Components
17 |
--------------------------------------------------------------------------------
/website/src/pages/internal/icons.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Icons } from '../../components/icons/Icons'
3 |
4 | const IconsPage = () =>
5 |
6 | export default IconsPage
7 |
--------------------------------------------------------------------------------
/website/src/styles/index.css:
--------------------------------------------------------------------------------
1 | @import 'settings/colors.css';
2 | @import 'settings/dimensions.css';
3 |
4 | @import 'icons.css';
5 | @import 'nav.css';
6 | @import 'mobile-nav.css';
7 | @import 'guides.css';
8 | @import 'mq.css';
9 |
10 | .code-number {
11 | font-weight: 700;
12 | color: var(--code-number-color);
13 | }
14 |
15 | .code-string {
16 | color: var(--code-string-color);
17 | }
18 |
19 | .code-boolean {
20 | color: var(--code-boolean-color);
21 | }
22 |
23 | .no-select {
24 | -webkit-user-select: none;
25 | -moz-user-select: none;
26 | -ms-user-select: none;
27 | user-select: none;
28 | }
29 |
--------------------------------------------------------------------------------
/website/src/styles/settings/colors.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --accent-color: #e25d47;
3 | --main-background-color: #f7fafb;
4 | --table-odd-background-color: #f5f5f5;
5 | --code-number-color: #eb8404;
6 | --code-string-color: #199384;
7 | --code-boolean-color: #257493;
8 | }
9 |
--------------------------------------------------------------------------------
/website/src/styles/settings/dimensions.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --sidebar-width: 260px;
3 | }
4 |
--------------------------------------------------------------------------------
/website/static/CNAME:
--------------------------------------------------------------------------------
1 | nivo.rocks
--------------------------------------------------------------------------------
/website/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/plouc/nivo/a2d9dab855365926cb41267eb20af154ca8fd558/website/static/favicon.ico
--------------------------------------------------------------------------------