Repository: airbnb/visx Branch: master Commit: 00d41afc6c39 Files: 1334 Total size: 3.5 MB Directory structure: gitextract_s3xwcrx5/ ├── .eslintignore ├── .eslintrc.js ├── .github/ │ └── workflows/ │ ├── pull_request.yml │ └── push.yml ├── .gitignore ├── .npmignore ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .yarnrc.yml ├── ATTRIBUTION.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── PULL_REQUEST_TEMPLATE.md ├── README.md ├── babel.config.js ├── config-eslint/ │ ├── base.js │ ├── next.js │ ├── prettier.js │ └── typescript.js ├── lerna.json ├── package.json ├── packages/ │ ├── sizes.json │ ├── visx-annotation/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── Annotation.tsx │ │ │ │ ├── CircleSubject.tsx │ │ │ │ ├── Connector.tsx │ │ │ │ ├── EditableAnnotation.tsx │ │ │ │ ├── HtmlLabel.tsx │ │ │ │ ├── Label.tsx │ │ │ │ ├── LabelAnchorLine.tsx │ │ │ │ └── LineSubject.tsx │ │ │ ├── context/ │ │ │ │ └── AnnotationContext.tsx │ │ │ ├── index.ts │ │ │ └── types/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── Annotation.test.tsx │ │ │ ├── CircleSubject.test.tsx │ │ │ ├── Connector.test.tsx │ │ │ ├── EditableAnnotation.test.tsx │ │ │ ├── HtmlLabel.test.tsx │ │ │ ├── Label.test.tsx │ │ │ ├── LineSubject.test.tsx │ │ │ ├── svgMock.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-axis/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── axis/ │ │ │ │ ├── Axis.tsx │ │ │ │ ├── AxisBottom.tsx │ │ │ │ ├── AxisLeft.tsx │ │ │ │ ├── AxisRenderer.tsx │ │ │ │ ├── AxisRight.tsx │ │ │ │ ├── AxisTop.tsx │ │ │ │ └── Ticks.tsx │ │ │ ├── constants/ │ │ │ │ └── orientation.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── createPoint.ts │ │ │ ├── getAxisRangePaddingConfig.ts │ │ │ ├── getLabelTransform.ts │ │ │ ├── getTickFormatter.ts │ │ │ └── getTickPosition.ts │ │ ├── test/ │ │ │ ├── Axis.test.tsx │ │ │ ├── AxisBottom.test.tsx │ │ │ ├── AxisLeft.test.tsx │ │ │ ├── AxisRight.test.tsx │ │ │ ├── AxisTop.test.tsx │ │ │ ├── Orientation.test.ts │ │ │ ├── scales.test.tsx │ │ │ ├── svgMock.ts │ │ │ ├── tsconfig.json │ │ │ └── utils/ │ │ │ ├── getAxisRangePaddingConfig.test.ts │ │ │ └── getTickPosition.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-bounds/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── enhancers/ │ │ │ │ └── withBoundingRects.tsx │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── tsconfig.json │ │ │ └── withBoundingRects.test.tsx │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-brush/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── BaseBrush.tsx │ │ │ ├── Brush.tsx │ │ │ ├── BrushCorner.tsx │ │ │ ├── BrushHandle.tsx │ │ │ ├── BrushOverlay.tsx │ │ │ ├── BrushSelection.tsx │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── test/ │ │ │ ├── Brush.test.tsx │ │ │ ├── tsconfig.json │ │ │ └── utils.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-chord/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Chord.tsx │ │ │ ├── Ribbon.tsx │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── Chord.test.tsx │ │ │ ├── Ribbon.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-clip-path/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── clip-paths/ │ │ │ │ ├── CircleClipPath.tsx │ │ │ │ ├── ClipPath.tsx │ │ │ │ └── RectClipPath.tsx │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── ClipPaths.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-curve/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── curve.test.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-delaunay/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ └── Polygon.tsx │ │ │ ├── delaunay.ts │ │ │ ├── index.ts │ │ │ └── voronoi.ts │ │ ├── test/ │ │ │ ├── Polygon.test.tsx │ │ │ ├── delaunay.test.ts │ │ │ ├── tsconfig.json │ │ │ └── voronoi.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-demo/ │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── public/ │ │ │ └── static/ │ │ │ ├── doc_styles.css │ │ │ ├── prism/ │ │ │ │ ├── prism-funky.css │ │ │ │ └── prism-line-numbers.css │ │ │ ├── style.css │ │ │ └── visx-geo/ │ │ │ └── world-topo.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── ApiTable.tsx │ │ │ │ ├── CodeSandboxLink.tsx │ │ │ │ ├── Codeblock.tsx │ │ │ │ ├── DocPage.tsx │ │ │ │ ├── Footer.tsx │ │ │ │ ├── Gallery/ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ ├── AnnotationTile.tsx │ │ │ │ │ ├── AreaTile.tsx │ │ │ │ │ ├── AxisTile.tsx │ │ │ │ │ ├── BarGroupHorizontalTile.tsx │ │ │ │ │ ├── BarGroupTile.tsx │ │ │ │ │ ├── BarStackHorizontalTile.tsx │ │ │ │ │ ├── BarStackTile.tsx │ │ │ │ │ ├── BarsTile.tsx │ │ │ │ │ ├── BrushTile.tsx │ │ │ │ │ ├── ChordTile.tsx │ │ │ │ │ ├── CurvesTile.tsx │ │ │ │ │ ├── DelaunayTriangulationTile.tsx │ │ │ │ │ ├── DelaunayVoronoiTile.tsx │ │ │ │ │ ├── DendrogramsTile.tsx │ │ │ │ │ ├── DotsTile.tsx │ │ │ │ │ ├── DragIITile.tsx │ │ │ │ │ ├── DragITile.tsx │ │ │ │ │ ├── GeoAlbersUsaTile.tsx │ │ │ │ │ ├── GeoCustomTile.tsx │ │ │ │ │ ├── GeoMercatorTile.tsx │ │ │ │ │ ├── GlyphsTile.tsx │ │ │ │ │ ├── GradientsTile.tsx │ │ │ │ │ ├── HeatmapsTile.tsx │ │ │ │ │ ├── LegendsTile.tsx │ │ │ │ │ ├── LineRadialTile.tsx │ │ │ │ │ ├── LinkTypesTile.tsx │ │ │ │ │ ├── NetworkTile.tsx │ │ │ │ │ ├── PackTile.tsx │ │ │ │ │ ├── PatternsTile.tsx │ │ │ │ │ ├── PiesTile.tsx │ │ │ │ │ ├── PolygonsTile.tsx │ │ │ │ │ ├── RadarTile.tsx │ │ │ │ │ ├── RadialBarsTile.tsx │ │ │ │ │ ├── ResponsiveTile.tsx │ │ │ │ │ ├── SankeyTile.tsx │ │ │ │ │ ├── SplitLinePathTile.tsx │ │ │ │ │ ├── StackedAreasTile.tsx │ │ │ │ │ ├── StatsPlotTile.tsx │ │ │ │ │ ├── StreamGraphTile.tsx │ │ │ │ │ ├── TextTile.tsx │ │ │ │ │ ├── ThresholdTile.tsx │ │ │ │ │ ├── TooltipTile.tsx │ │ │ │ │ ├── TreemapTile.tsx │ │ │ │ │ ├── TreesTile.tsx │ │ │ │ │ ├── VoronoiTile.tsx │ │ │ │ │ ├── WordcloudTile.tsx │ │ │ │ │ ├── XYChartTile.tsx │ │ │ │ │ ├── ZoomITile.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── GalleryTile.tsx │ │ │ │ ├── Logo.tsx │ │ │ │ ├── Meta.tsx │ │ │ │ ├── Nav.tsx │ │ │ │ ├── NavItem.tsx │ │ │ │ ├── NoSsr.tsx │ │ │ │ ├── PackageList.tsx │ │ │ │ ├── Page.tsx │ │ │ │ ├── Show.tsx │ │ │ │ ├── VisxDocLink.tsx │ │ │ │ ├── icons/ │ │ │ │ │ ├── Belo.tsx │ │ │ │ │ ├── GitHub.tsx │ │ │ │ │ ├── Instagram.tsx │ │ │ │ │ ├── Medium.tsx │ │ │ │ │ └── Twitter.tsx │ │ │ │ └── util/ │ │ │ │ ├── drawData.ts │ │ │ │ ├── extractVisxDepsFromPackageJson.ts │ │ │ │ └── format.ts │ │ │ ├── next-env.d.ts │ │ │ ├── pages/ │ │ │ │ ├── .eslintrc │ │ │ │ ├── _app.tsx │ │ │ │ ├── _document.tsx │ │ │ │ ├── annotation.tsx │ │ │ │ ├── areas.tsx │ │ │ │ ├── axis.tsx │ │ │ │ ├── bargroup.tsx │ │ │ │ ├── bargrouphorizontal.tsx │ │ │ │ ├── bars.tsx │ │ │ │ ├── barstack.tsx │ │ │ │ ├── barstackhorizontal.tsx │ │ │ │ ├── brush.tsx │ │ │ │ ├── chord.tsx │ │ │ │ ├── curves.tsx │ │ │ │ ├── delaunay-triangulation.tsx │ │ │ │ ├── delaunay-voronoi.tsx │ │ │ │ ├── dendrograms.tsx │ │ │ │ ├── docs/ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ ├── annotation.tsx │ │ │ │ │ ├── axis.tsx │ │ │ │ │ ├── bounds.tsx │ │ │ │ │ ├── brush.tsx │ │ │ │ │ ├── chord.tsx │ │ │ │ │ ├── clip-path.tsx │ │ │ │ │ ├── curve.tsx │ │ │ │ │ ├── delaunay.tsx │ │ │ │ │ ├── drag.tsx │ │ │ │ │ ├── event.tsx │ │ │ │ │ ├── geo.tsx │ │ │ │ │ ├── glyph.tsx │ │ │ │ │ ├── gradient.tsx │ │ │ │ │ ├── grid.tsx │ │ │ │ │ ├── group.tsx │ │ │ │ │ ├── heatmap.tsx │ │ │ │ │ ├── hierarchy.tsx │ │ │ │ │ ├── legend.tsx │ │ │ │ │ ├── marker.tsx │ │ │ │ │ ├── mock-data.tsx │ │ │ │ │ ├── network.tsx │ │ │ │ │ ├── pattern.tsx │ │ │ │ │ ├── point.tsx │ │ │ │ │ ├── react-spring.tsx │ │ │ │ │ ├── responsive.tsx │ │ │ │ │ ├── sankey.tsx │ │ │ │ │ ├── scale.tsx │ │ │ │ │ ├── shape.tsx │ │ │ │ │ ├── stats.tsx │ │ │ │ │ ├── text.tsx │ │ │ │ │ ├── threshold.tsx │ │ │ │ │ ├── tooltip.tsx │ │ │ │ │ ├── visx.tsx │ │ │ │ │ ├── voronoi.tsx │ │ │ │ │ ├── wordcloud.tsx │ │ │ │ │ ├── xychart.tsx │ │ │ │ │ └── zoom.tsx │ │ │ │ ├── docs.tsx │ │ │ │ ├── dots.tsx │ │ │ │ ├── drag-i.tsx │ │ │ │ ├── drag-ii.tsx │ │ │ │ ├── gallery.tsx │ │ │ │ ├── geo-albers-usa.tsx │ │ │ │ ├── geo-custom.tsx │ │ │ │ ├── geo-mercator.tsx │ │ │ │ ├── glyphs.tsx │ │ │ │ ├── gradients.tsx │ │ │ │ ├── heatmaps.tsx │ │ │ │ ├── home.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── legends.tsx │ │ │ │ ├── lineradial.tsx │ │ │ │ ├── linktypes.tsx │ │ │ │ ├── network.tsx │ │ │ │ ├── pack.tsx │ │ │ │ ├── patterns.tsx │ │ │ │ ├── pies.tsx │ │ │ │ ├── polygons.tsx │ │ │ │ ├── radar.tsx │ │ │ │ ├── radial-bars.tsx │ │ │ │ ├── responsive.tsx │ │ │ │ ├── sankey.tsx │ │ │ │ ├── splitlinepath.tsx │ │ │ │ ├── stacked-areas.tsx │ │ │ │ ├── statsplot.tsx │ │ │ │ ├── streamgraph.tsx │ │ │ │ ├── text.tsx │ │ │ │ ├── threshold.tsx │ │ │ │ ├── tooltip.tsx │ │ │ │ ├── treemap.tsx │ │ │ │ ├── trees.tsx │ │ │ │ ├── voronoi.tsx │ │ │ │ ├── wordcloud.tsx │ │ │ │ ├── xychart.tsx │ │ │ │ └── zoom-i.tsx │ │ │ ├── sandboxes/ │ │ │ │ ├── .eslintrc │ │ │ │ ├── README.md │ │ │ │ ├── exampleToVisxDependencyLookup.ts │ │ │ │ ├── template/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-annotation/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── ExampleControls.tsx │ │ │ │ │ ├── findNearestDatum.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-area/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-axis/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-bargroup/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-bargroup-horizontal/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-bars/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-barstack/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-barstack-horizontal/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-brush/ │ │ │ │ │ ├── AreaChart.tsx │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-chord/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-curve/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-delaunay-triangulation/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-delaunay-voronoi/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-dendrogram/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-dots/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-drag-i/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── generateCircles.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-drag-ii/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-geo-albers-usa/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ ├── sandbox-styles.css │ │ │ │ │ ├── us-abbr.json │ │ │ │ │ ├── usa-topo.d.ts │ │ │ │ │ └── usa-topo.json │ │ │ │ ├── visx-geo-custom/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ ├── sandbox-styles.css │ │ │ │ │ ├── world-topo.d.ts │ │ │ │ │ └── world-topo.json │ │ │ │ ├── visx-geo-mercator/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ ├── sandbox-styles.css │ │ │ │ │ ├── world-topo.d.ts │ │ │ │ │ └── world-topo.json │ │ │ │ ├── visx-glyph/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-gradient/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-heatmap/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-legend/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-linktypes/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── LinkControls.tsx │ │ │ │ │ ├── getLinkComponent.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ ├── sandbox-styles.css │ │ │ │ │ └── useForceUpdate.ts │ │ │ │ ├── visx-network/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-pack/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-pattern/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-polygons/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-radar/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-radial-bars/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-responsive/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── Lines.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-sankey/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── energy.json │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-shape-line-radial/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-shape-pie/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-shape-splitlinepath/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── generateSinPoints.ts │ │ │ │ │ ├── generateSinSegments.ts │ │ │ │ │ ├── generateSnakePath.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-stacked-areas/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-stats/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-streamgraph/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── generateData.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ ├── sandbox-styles.css │ │ │ │ │ └── useForceUpdate.ts │ │ │ │ ├── visx-threshold/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-tooltip/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-tree/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-treemap/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-voronoi/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ └── sandbox-styles.css │ │ │ │ ├── visx-wordcloud/ │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ ├── sandbox-styles.css │ │ │ │ │ └── text.fixture.ts │ │ │ │ ├── visx-xychart/ │ │ │ │ │ ├── CustomChartBackground.tsx │ │ │ │ │ ├── Example.tsx │ │ │ │ │ ├── ExampleControls.tsx │ │ │ │ │ ├── customTheme.ts │ │ │ │ │ ├── getAnimatedOrUnanimatedComponents.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── package.json │ │ │ │ │ ├── sandbox-styles.css │ │ │ │ │ └── userPrefersReducedMotion.ts │ │ │ │ └── visx-zoom-i/ │ │ │ │ ├── Example.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── package.json │ │ │ │ └── sandbox-styles.css │ │ │ ├── types/ │ │ │ │ ├── index.ts │ │ │ │ └── raw-loader.d.ts │ │ │ └── utils/ │ │ │ ├── getDocGenInfo.ts │ │ │ └── getGitHubUrl.ts │ │ ├── tsconfig.json │ │ └── vercel.json │ ├── visx-drag/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Drag.tsx │ │ │ ├── index.ts │ │ │ ├── useDrag.ts │ │ │ └── util/ │ │ │ ├── clampNumber.ts │ │ │ ├── getClosestPoint.ts │ │ │ ├── raise.ts │ │ │ ├── restrictPoint.ts │ │ │ ├── useSamplesAlongPath.ts │ │ │ └── useStateWithCallback.ts │ │ ├── test/ │ │ │ ├── Drag.test.ts │ │ │ ├── raise.test.ts │ │ │ ├── tsconfig.json │ │ │ ├── useDrag.test.tsx │ │ │ └── useStateWithCallback.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-event/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── getXAndYFromEvent.ts │ │ │ ├── index.ts │ │ │ ├── localPoint.ts │ │ │ ├── localPointGeneric.ts │ │ │ ├── touchPoint.ts │ │ │ ├── typeGuards.ts │ │ │ └── types.ts │ │ ├── test/ │ │ │ ├── getXandYFromEvent.test.ts │ │ │ ├── localPoint.test.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-geo/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── graticule/ │ │ │ │ └── Graticule.tsx │ │ │ ├── index.ts │ │ │ ├── projections/ │ │ │ │ ├── Albers.tsx │ │ │ │ ├── AlbersUsa.tsx │ │ │ │ ├── CustomProjection.tsx │ │ │ │ ├── EqualEarth.tsx │ │ │ │ ├── Mercator.tsx │ │ │ │ ├── NaturalEarth.tsx │ │ │ │ ├── Orthographic.tsx │ │ │ │ └── Projection.tsx │ │ │ └── types.ts │ │ ├── test/ │ │ │ ├── Albers.test.tsx │ │ │ ├── AlbersUsa.test.tsx │ │ │ ├── CustomProjection.test.tsx │ │ │ ├── EqualEarth.test.tsx │ │ │ ├── Mercator.test.tsx │ │ │ ├── Orthographic.test.tsx │ │ │ ├── Projection.test.tsx │ │ │ ├── topo.json │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-glyph/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── glyphs/ │ │ │ │ ├── Glyph.tsx │ │ │ │ ├── GlyphCircle.tsx │ │ │ │ ├── GlyphCross.tsx │ │ │ │ ├── GlyphDiamond.tsx │ │ │ │ ├── GlyphDot.tsx │ │ │ │ ├── GlyphSquare.tsx │ │ │ │ ├── GlyphStar.tsx │ │ │ │ ├── GlyphTriangle.tsx │ │ │ │ └── GlyphWye.tsx │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── Circle.test.tsx │ │ │ ├── Cross.test.tsx │ │ │ ├── Diamond.test.tsx │ │ │ ├── Dot.test.tsx │ │ │ ├── Glyph.test.tsx │ │ │ ├── Square.test.tsx │ │ │ ├── Star.test.tsx │ │ │ ├── Triangle.test.tsx │ │ │ ├── Wye.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-gradient/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── gradients/ │ │ │ │ ├── GradientDarkgreenGreen.tsx │ │ │ │ ├── GradientLightgreenGreen.tsx │ │ │ │ ├── GradientOrangeRed.tsx │ │ │ │ ├── GradientPinkBlue.tsx │ │ │ │ ├── GradientPinkRed.tsx │ │ │ │ ├── GradientPurpleOrange.tsx │ │ │ │ ├── GradientPurpleRed.tsx │ │ │ │ ├── GradientPurpleTeal.tsx │ │ │ │ ├── GradientSteelPurple.tsx │ │ │ │ ├── GradientTealBlue.tsx │ │ │ │ ├── LinearGradient.tsx │ │ │ │ └── RadialGradient.tsx │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── Gradients.test.tsx │ │ │ ├── LinearGradient.test.tsx │ │ │ ├── RadialGradient.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-grid/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── grids/ │ │ │ │ ├── Grid.tsx │ │ │ │ ├── GridAngle.tsx │ │ │ │ ├── GridColumns.tsx │ │ │ │ ├── GridPolar.tsx │ │ │ │ ├── GridRadial.tsx │ │ │ │ └── GridRows.tsx │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── getScaleBandwidth.ts │ │ │ └── polarToCartesian.ts │ │ ├── test/ │ │ │ ├── Grid.test.tsx │ │ │ ├── GridAngle.test.tsx │ │ │ ├── GridColumns.test.tsx │ │ │ ├── GridPolar.test.tsx │ │ │ ├── GridRadial.test.tsx │ │ │ ├── GridRows.test.tsx │ │ │ ├── tsconfig.json │ │ │ └── utils.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-group/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Group.tsx │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── Group.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-heatmap/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── heatmaps/ │ │ │ │ ├── HeatmapCircle.tsx │ │ │ │ └── HeatmapRect.tsx │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── test/ │ │ │ ├── HeatmapCircle.test.tsx │ │ │ ├── HeatmapRect.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-hierarchy/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── HierarchyDefaultLink.tsx │ │ │ ├── HierarchyDefaultNode.tsx │ │ │ ├── HierarchyDefaultRectNode.tsx │ │ │ ├── hierarchies/ │ │ │ │ ├── Cluster.tsx │ │ │ │ ├── Pack.tsx │ │ │ │ ├── Partition.tsx │ │ │ │ ├── Tree.tsx │ │ │ │ └── Treemap.tsx │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ └── setNumOrNumAccessor.ts │ │ ├── test/ │ │ │ ├── Cluster.test.tsx │ │ │ ├── Defaults.test.tsx │ │ │ ├── Tree.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-legend/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── legends/ │ │ │ │ ├── Legend/ │ │ │ │ │ ├── LegendItem.tsx │ │ │ │ │ ├── LegendLabel.tsx │ │ │ │ │ ├── LegendShape.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Linear.tsx │ │ │ │ ├── Ordinal.tsx │ │ │ │ ├── Quantile.tsx │ │ │ │ ├── Size.tsx │ │ │ │ └── Threshold.tsx │ │ │ ├── shapes/ │ │ │ │ ├── Circle.tsx │ │ │ │ ├── Line.tsx │ │ │ │ └── Rect.tsx │ │ │ ├── types/ │ │ │ │ └── index.ts │ │ │ └── util/ │ │ │ ├── defaultDomain.ts │ │ │ ├── identity.ts │ │ │ ├── labelTransformFactory.ts │ │ │ ├── renderShape.ts │ │ │ └── valueOrIdentity.ts │ │ ├── test/ │ │ │ ├── Legend.test.tsx │ │ │ ├── LegendLinear.test.tsx │ │ │ ├── LegendOrdinal.test.tsx │ │ │ ├── LegendQuantile.test.tsx │ │ │ ├── LegendSize.test.tsx │ │ │ ├── LegendThreshold.test.tsx │ │ │ ├── scales.test.tsx │ │ │ ├── svgMock.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-marker/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── markers/ │ │ │ ├── Arrow.tsx │ │ │ ├── Circle.tsx │ │ │ ├── Cross.tsx │ │ │ ├── Line.tsx │ │ │ ├── Marker.tsx │ │ │ └── X.tsx │ │ ├── test/ │ │ │ ├── Arrow.test.tsx │ │ │ ├── Circle.test.tsx │ │ │ ├── Cross.test.tsx │ │ │ ├── Line.test.tsx │ │ │ ├── Marker.test.tsx │ │ │ ├── X.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-mock-data/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── generators/ │ │ │ │ ├── genBin.ts │ │ │ │ ├── genBins.ts │ │ │ │ ├── genDateValue.ts │ │ │ │ ├── genPhyllotaxis.ts │ │ │ │ ├── genRandomNormalPoints.ts │ │ │ │ ├── genStats.ts │ │ │ │ └── getSeededRandom.ts │ │ │ ├── index.ts │ │ │ └── mocks/ │ │ │ ├── appleStock.ts │ │ │ ├── bitcoinPrice.ts │ │ │ ├── browserUsage.ts │ │ │ ├── cityTemperature.ts │ │ │ ├── exoplanets.ts │ │ │ ├── groupDateValue.ts │ │ │ ├── lesMiserables.ts │ │ │ ├── letterFrequency.ts │ │ │ ├── planets.ts │ │ │ └── shakespeare.ts │ │ ├── test/ │ │ │ ├── appleStock.test.ts │ │ │ ├── browserUsage.test.ts │ │ │ ├── cityTemperature.test.ts │ │ │ ├── genBin.test.ts │ │ │ ├── genBins.test.ts │ │ │ ├── genDateValue.test.ts │ │ │ ├── genPhyllotaxis.test.ts │ │ │ ├── genRandomNormalPoints.test.ts │ │ │ ├── genStats.test.ts │ │ │ ├── getSeededRandom.test.ts │ │ │ ├── groupDateValue.test.ts │ │ │ ├── letterFrequency.test.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-network/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── DefaultLink.tsx │ │ │ ├── DefaultNode.tsx │ │ │ ├── Graph.tsx │ │ │ ├── Links.tsx │ │ │ ├── Nodes.tsx │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── test/ │ │ │ ├── Graph.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-pattern/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── constants/ │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── patterns/ │ │ │ ├── Circles.tsx │ │ │ ├── Hexagons.tsx │ │ │ ├── Lines.tsx │ │ │ ├── Path.tsx │ │ │ ├── Pattern.tsx │ │ │ └── Waves.tsx │ │ ├── test/ │ │ │ ├── Pattern.test.tsx │ │ │ ├── PatternCircles.test.tsx │ │ │ ├── PatternHexagons.test.tsx │ │ │ ├── PatternLines.test.tsx │ │ │ ├── PatternPath.test.tsx │ │ │ ├── PatternWaves.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-point/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Point.ts │ │ │ ├── index.ts │ │ │ ├── subtractPoints.ts │ │ │ └── sumPoints.ts │ │ ├── test/ │ │ │ ├── point.test.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-react-spring/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── axis/ │ │ │ │ ├── AnimatedAxis.tsx │ │ │ │ └── AnimatedTicks.tsx │ │ │ ├── grid/ │ │ │ │ ├── AnimatedGridColumns.tsx │ │ │ │ ├── AnimatedGridLines.tsx │ │ │ │ └── AnimatedGridRows.tsx │ │ │ ├── index.ts │ │ │ ├── spring-configs/ │ │ │ │ └── useLineTransitionConfig.ts │ │ │ └── types/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── AnimatedAxis.test.tsx │ │ │ ├── AnimatedGridColumns.test.tsx │ │ │ ├── AnimatedGridRows.test.tsx │ │ │ ├── AnimatedTicks.test.tsx │ │ │ ├── svgMock.ts │ │ │ ├── tsconfig.json │ │ │ └── useLineTransitionConfig.test.tsx │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-responsive/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── ParentSize.tsx │ │ │ │ └── ScaleSVG.tsx │ │ │ ├── enhancers/ │ │ │ │ ├── withParentSize.tsx │ │ │ │ └── withScreenSize.tsx │ │ │ ├── hooks/ │ │ │ │ ├── useParentSize.ts │ │ │ │ └── useScreenSize.ts │ │ │ ├── index.ts │ │ │ └── types/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── ParentSize.test.tsx │ │ │ ├── ScaleSVG.test.tsx │ │ │ ├── tsconfig.json │ │ │ ├── useScreenSize.test.ts │ │ │ ├── withParentSize.test.tsx │ │ │ └── withScreenSize.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-sankey/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Sankey.tsx │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── test/ │ │ │ └── Sankey.test.tsx │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-scale/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── createScale.ts │ │ │ ├── index.ts │ │ │ ├── operators/ │ │ │ │ ├── align.ts │ │ │ │ ├── base.ts │ │ │ │ ├── clamp.ts │ │ │ │ ├── constant.ts │ │ │ │ ├── domain.ts │ │ │ │ ├── exponent.ts │ │ │ │ ├── interpolate.ts │ │ │ │ ├── nice.ts │ │ │ │ ├── padding.ts │ │ │ │ ├── range.ts │ │ │ │ ├── reverse.ts │ │ │ │ ├── round.ts │ │ │ │ ├── scaleOperator.ts │ │ │ │ ├── unknown.ts │ │ │ │ └── zero.ts │ │ │ ├── scales/ │ │ │ │ ├── band.ts │ │ │ │ ├── linear.ts │ │ │ │ ├── log.ts │ │ │ │ ├── ordinal.ts │ │ │ │ ├── point.ts │ │ │ │ ├── power.ts │ │ │ │ ├── quantile.ts │ │ │ │ ├── quantize.ts │ │ │ │ ├── radial.ts │ │ │ │ ├── squareRoot.ts │ │ │ │ ├── symlog.ts │ │ │ │ ├── threshold.ts │ │ │ │ ├── time.ts │ │ │ │ └── utc.ts │ │ │ ├── types/ │ │ │ │ ├── Base.ts │ │ │ │ ├── BaseScaleConfig.ts │ │ │ │ ├── Nice.ts │ │ │ │ ├── Scale.ts │ │ │ │ ├── ScaleConfig.ts │ │ │ │ └── ScaleInterpolate.ts │ │ │ ├── updateScale.ts │ │ │ └── utils/ │ │ │ ├── coerceNumber.ts │ │ │ ├── createColorInterpolator.ts │ │ │ ├── getTicks.ts │ │ │ ├── inferScaleType.ts │ │ │ ├── isUtcScale.ts │ │ │ ├── scaleCanBeZeroed.ts │ │ │ └── toString.ts │ │ ├── test/ │ │ │ ├── createScale.test.ts │ │ │ ├── scaleBand.test.ts │ │ │ ├── scaleLinear.test.ts │ │ │ ├── scaleLog.test.ts │ │ │ ├── scaleOrdinal.test.ts │ │ │ ├── scalePoint.test.ts │ │ │ ├── scalePower.test.ts │ │ │ ├── scaleQuantile.test.ts │ │ │ ├── scaleQuantize.test.ts │ │ │ ├── scaleRadial.test.ts │ │ │ ├── scaleSqrt.test.ts │ │ │ ├── scaleSymlog.test.ts │ │ │ ├── scaleThreshold.test.ts │ │ │ ├── scaleTime.test.ts │ │ │ ├── scaleUtc.test.ts │ │ │ ├── tsconfig.json │ │ │ ├── updateScale.test.ts │ │ │ └── utils/ │ │ │ ├── coerceNumber.test.ts │ │ │ ├── getTicks.test.ts │ │ │ ├── inferScaleType.test.ts │ │ │ ├── isUtcScale.test.ts │ │ │ ├── scaleCanBeZeroed.test.ts │ │ │ └── toString.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-shape/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── shapes/ │ │ │ │ ├── Arc.tsx │ │ │ │ ├── Area.tsx │ │ │ │ ├── AreaClosed.tsx │ │ │ │ ├── AreaStack.tsx │ │ │ │ ├── Bar.tsx │ │ │ │ ├── BarGroup.tsx │ │ │ │ ├── BarGroupHorizontal.tsx │ │ │ │ ├── BarRounded.tsx │ │ │ │ ├── BarStack.tsx │ │ │ │ ├── BarStackHorizontal.tsx │ │ │ │ ├── Circle.tsx │ │ │ │ ├── Line.tsx │ │ │ │ ├── LinePath.tsx │ │ │ │ ├── LineRadial.tsx │ │ │ │ ├── Pie.tsx │ │ │ │ ├── Polygon.tsx │ │ │ │ ├── SplitLinePath.tsx │ │ │ │ ├── Stack.tsx │ │ │ │ └── link/ │ │ │ │ ├── curve/ │ │ │ │ │ ├── LinkHorizontalCurve.tsx │ │ │ │ │ ├── LinkRadialCurve.tsx │ │ │ │ │ └── LinkVerticalCurve.tsx │ │ │ │ ├── diagonal/ │ │ │ │ │ ├── LinkHorizontal.tsx │ │ │ │ │ ├── LinkRadial.tsx │ │ │ │ │ └── LinkVertical.tsx │ │ │ │ ├── line/ │ │ │ │ │ ├── LinkHorizontalLine.tsx │ │ │ │ │ ├── LinkRadialLine.tsx │ │ │ │ │ └── LinkVerticalLine.tsx │ │ │ │ └── step/ │ │ │ │ ├── LinkHorizontalStep.tsx │ │ │ │ ├── LinkRadialStep.tsx │ │ │ │ └── LinkVerticalStep.tsx │ │ │ ├── types/ │ │ │ │ ├── D3ShapeConfig.ts │ │ │ │ ├── accessor.ts │ │ │ │ ├── area.ts │ │ │ │ ├── barGroup.ts │ │ │ │ ├── barStack.ts │ │ │ │ ├── base.ts │ │ │ │ ├── index.ts │ │ │ │ ├── link.ts │ │ │ │ └── stack.ts │ │ │ └── util/ │ │ │ ├── D3ShapeFactories.ts │ │ │ ├── accessors.ts │ │ │ ├── getBandwidth.ts │ │ │ ├── getOrCreateMeasurementElement.ts │ │ │ ├── getSplitLineSegments.ts │ │ │ ├── setNumberOrNumberAccessor.ts │ │ │ ├── stackOffset.ts │ │ │ ├── stackOrder.ts │ │ │ └── trigonometry.ts │ │ ├── test/ │ │ │ ├── Arc.test.tsx │ │ │ ├── Area.test.tsx │ │ │ ├── AreaClosed.test.tsx │ │ │ ├── AreaStack.test.tsx │ │ │ ├── Bar.test.tsx │ │ │ ├── BarGroup.test.tsx │ │ │ ├── BarGroupHorizontal.test.tsx │ │ │ ├── BarRounded.test.tsx │ │ │ ├── BarStack.test.tsx │ │ │ ├── BarStackHorizontal.test.tsx │ │ │ ├── Circle.test.tsx │ │ │ ├── Line.test.tsx │ │ │ ├── LinePath.test.tsx │ │ │ ├── LineRadial.test.tsx │ │ │ ├── LinkHorizontal.test.tsx │ │ │ ├── LinkRadial.test.tsx │ │ │ ├── LinkVertical.test.tsx │ │ │ ├── Pie.test.tsx │ │ │ ├── Polygon.test.tsx │ │ │ ├── Stack.test.tsx │ │ │ ├── stackOffset.test.ts │ │ │ ├── stackOrder.test.ts │ │ │ ├── svgMock.ts │ │ │ ├── tsconfig.json │ │ │ └── utils/ │ │ │ ├── D3ShapeFactories.test.ts │ │ │ └── getBandwidth.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-stats/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── BoxPlot.tsx │ │ │ ├── ViolinPlot.tsx │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── util/ │ │ │ └── computeStats.ts │ │ ├── test/ │ │ │ ├── BoxPlot.test.tsx │ │ │ ├── ViolinPlot.test.tsx │ │ │ ├── computeStats.test.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-text/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Text.tsx │ │ │ ├── hooks/ │ │ │ │ └── useText.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── util/ │ │ │ └── getStringWidth.ts │ │ ├── test/ │ │ │ ├── Text.test.tsx │ │ │ ├── svgMock.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ ├── types/ │ │ │ └── reduce-css-calc/ │ │ │ └── index.d.ts │ │ └── vitest.config.ts │ ├── visx-threshold/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Threshold.tsx │ │ │ └── index.ts │ │ ├── test/ │ │ │ ├── Threshold.test.tsx │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-tooltip/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Portal.tsx │ │ │ ├── context/ │ │ │ │ └── TooltipPositionContext.tsx │ │ │ ├── enhancers/ │ │ │ │ └── withTooltip.tsx │ │ │ ├── hooks/ │ │ │ │ ├── useTooltip.ts │ │ │ │ └── useTooltipInPortal.tsx │ │ │ ├── index.ts │ │ │ └── tooltips/ │ │ │ ├── Tooltip.tsx │ │ │ └── TooltipWithBounds.tsx │ │ ├── test/ │ │ │ ├── Portal.test.tsx │ │ │ ├── Tooltip.test.tsx │ │ │ ├── TooltipWithBounds.test.tsx │ │ │ ├── tsconfig.json │ │ │ ├── useTooltip.test.tsx │ │ │ ├── useTooltipInPortal.test.tsx │ │ │ └── withTooltip.test.tsx │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-vendor/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── Readme.md │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── buildVendor/ │ │ │ │ ├── babel.config.js │ │ │ │ ├── index.ts │ │ │ │ └── utils.ts │ │ │ └── flagVendorRequirements.ts │ │ ├── test/ │ │ │ ├── .eslintrc │ │ │ ├── d3-array.test.ts │ │ │ ├── d3-color.test.ts │ │ │ ├── d3-format.test.ts │ │ │ ├── d3-geo.test.ts │ │ │ ├── d3-interpolate.test.ts │ │ │ ├── d3-scale.test.ts │ │ │ ├── d3-time-format.test.ts │ │ │ ├── d3-time.test.ts │ │ │ └── internmap.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-visx/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── test/ │ │ │ └── index.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-voronoi/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ └── VoronoiPolygon.tsx │ │ │ ├── index.ts │ │ │ └── voronoi.ts │ │ ├── test/ │ │ │ ├── VoronoiPolygon.test.tsx │ │ │ ├── tsconfig.json │ │ │ └── voronoi.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-wordcloud/ │ │ ├── .npmrc │ │ ├── Readme.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Wordcloud.tsx │ │ │ ├── d3-cloud.d.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── useWordcloud.ts │ │ ├── test/ │ │ │ ├── Wordcloud.test.tsx │ │ │ ├── tsconfig.json │ │ │ └── useWordcloud.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── visx-xychart/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── classes/ │ │ │ │ └── DataRegistry.ts │ │ │ ├── components/ │ │ │ │ ├── Tooltip.tsx │ │ │ │ ├── XYChart.tsx │ │ │ │ ├── annotation/ │ │ │ │ │ ├── AnimatedAnnotation.tsx │ │ │ │ │ ├── Annotation.tsx │ │ │ │ │ ├── AnnotationCircleSubject.tsx │ │ │ │ │ ├── AnnotationConnector.tsx │ │ │ │ │ ├── AnnotationLabel.tsx │ │ │ │ │ ├── AnnotationLineSubject.tsx │ │ │ │ │ └── private/ │ │ │ │ │ └── BaseAnnotation.tsx │ │ │ │ ├── axis/ │ │ │ │ │ ├── AnimatedAxis.tsx │ │ │ │ │ ├── Axis.tsx │ │ │ │ │ └── BaseAxis.tsx │ │ │ │ ├── grid/ │ │ │ │ │ ├── AnimatedGrid.tsx │ │ │ │ │ ├── BaseGrid.tsx │ │ │ │ │ └── Grid.tsx │ │ │ │ └── series/ │ │ │ │ ├── AnimatedAreaSeries.tsx │ │ │ │ ├── AnimatedAreaStack.tsx │ │ │ │ ├── AnimatedBarGroup.tsx │ │ │ │ ├── AnimatedBarSeries.tsx │ │ │ │ ├── AnimatedBarStack.tsx │ │ │ │ ├── AnimatedGlyphSeries.tsx │ │ │ │ ├── AnimatedLineSeries.tsx │ │ │ │ ├── AreaSeries.tsx │ │ │ │ ├── AreaStack.tsx │ │ │ │ ├── BarGroup.tsx │ │ │ │ ├── BarSeries.tsx │ │ │ │ ├── BarStack.tsx │ │ │ │ ├── GlyphSeries.tsx │ │ │ │ ├── LineSeries.tsx │ │ │ │ └── private/ │ │ │ │ ├── AnimatedBars.tsx │ │ │ │ ├── AnimatedGlyphs.tsx │ │ │ │ ├── AnimatedPath.tsx │ │ │ │ ├── Bars.tsx │ │ │ │ ├── BaseAreaSeries.tsx │ │ │ │ ├── BaseAreaStack.tsx │ │ │ │ ├── BaseBarGroup.tsx │ │ │ │ ├── BaseBarSeries.tsx │ │ │ │ ├── BaseBarStack.tsx │ │ │ │ ├── BaseGlyphSeries.tsx │ │ │ │ ├── BaseLineSeries.tsx │ │ │ │ └── defaultRenderGlyph.tsx │ │ │ ├── constants.ts │ │ │ ├── context/ │ │ │ │ ├── DataContext.tsx │ │ │ │ ├── EventEmitterContext.tsx │ │ │ │ ├── ThemeContext.tsx │ │ │ │ └── TooltipContext.tsx │ │ │ ├── hooks/ │ │ │ │ ├── useDataRegistry.ts │ │ │ │ ├── useDimensions.ts │ │ │ │ ├── useEventEmitter.ts │ │ │ │ ├── useEventEmitters.ts │ │ │ │ ├── useEventHandlers.ts │ │ │ │ ├── useScales.ts │ │ │ │ ├── useSeriesEvents.ts │ │ │ │ └── useStackedData.ts │ │ │ ├── index.ts │ │ │ ├── providers/ │ │ │ │ ├── DataProvider.tsx │ │ │ │ ├── EventEmitterProvider.tsx │ │ │ │ ├── ThemeProvider.tsx │ │ │ │ └── TooltipProvider.tsx │ │ │ ├── theme/ │ │ │ │ ├── buildChartTheme.ts │ │ │ │ ├── colors.ts │ │ │ │ └── themes/ │ │ │ │ ├── dark.ts │ │ │ │ └── light.ts │ │ │ ├── typeguards/ │ │ │ │ ├── events.ts │ │ │ │ └── isValidNumber.ts │ │ │ ├── types/ │ │ │ │ ├── axis.ts │ │ │ │ ├── data.ts │ │ │ │ ├── event.ts │ │ │ │ ├── index.ts │ │ │ │ ├── series.ts │ │ │ │ ├── theme.ts │ │ │ │ └── tooltip.ts │ │ │ └── utils/ │ │ │ ├── cleanColorString.ts │ │ │ ├── combineBarStackData.ts │ │ │ ├── findNearestDatumSingleDimension.ts │ │ │ ├── findNearestDatumX.ts │ │ │ ├── findNearestDatumXY.ts │ │ │ ├── findNearestDatumY.ts │ │ │ ├── findNearestGroupDatum.ts │ │ │ ├── findNearestStackDatum.ts │ │ │ ├── getBarStackRegistryData.ts │ │ │ ├── getChildrenAndGrandchildrenWithProps.ts │ │ │ ├── getScaleBandwidth.ts │ │ │ ├── getScaleBaseline.ts │ │ │ ├── getScaledValueFactory.ts │ │ │ └── isDiscreteScale.ts │ │ ├── test/ │ │ │ ├── __mocks__/ │ │ │ │ └── @visx/ │ │ │ │ └── event.ts │ │ │ ├── classes/ │ │ │ │ └── DataRegistry.test.ts │ │ │ ├── components/ │ │ │ │ ├── Annotation.test.tsx │ │ │ │ ├── AnnotationCircleSubject.test.tsx │ │ │ │ ├── AnnotationConnector.test.tsx │ │ │ │ ├── AnnotationLabel.test.tsx │ │ │ │ ├── AnnotationLineSubject.test.tsx │ │ │ │ ├── AreaSeries.test.tsx │ │ │ │ ├── AreaStack.test.tsx │ │ │ │ ├── Axis.test.tsx │ │ │ │ ├── BarGroup.test.tsx │ │ │ │ ├── BarSeries.test.tsx │ │ │ │ ├── BarStack.test.tsx │ │ │ │ ├── GlyphSeries.test.tsx │ │ │ │ ├── Grid.test.tsx │ │ │ │ ├── LineSeries.test.tsx │ │ │ │ ├── Tooltip.test.tsx │ │ │ │ └── XYChart.test.tsx │ │ │ ├── hooks/ │ │ │ │ ├── useDataRegistry.test.tsx │ │ │ │ ├── useEventEmitter.test.tsx │ │ │ │ ├── useEventEmitters.test.tsx │ │ │ │ ├── useEventHandlers.test.tsx │ │ │ │ ├── useScales.test.tsx │ │ │ │ └── useStackedData.test.tsx │ │ │ ├── mocks/ │ │ │ │ ├── getDataContext.ts │ │ │ │ ├── setupTooltipTest.tsx │ │ │ │ └── svgMock.ts │ │ │ ├── providers/ │ │ │ │ ├── DataProvider.test.tsx │ │ │ │ ├── EventEmitterProvider.test.tsx │ │ │ │ ├── ThemeProvider.test.tsx │ │ │ │ └── TooltipProvider.test.tsx │ │ │ ├── theme.test.tsx │ │ │ ├── tsconfig.json │ │ │ └── utils/ │ │ │ ├── cleanColorString.test.ts │ │ │ ├── combineBarStackData.test.tsx │ │ │ ├── findNearestDatum.test.ts │ │ │ ├── getScaleBaseline.test.ts │ │ │ └── isDiscreteScale.test.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ └── visx-zoom/ │ ├── .npmrc │ ├── Readme.md │ ├── package.json │ ├── src/ │ │ ├── Zoom.tsx │ │ ├── index.ts │ │ ├── types.ts │ │ └── util/ │ │ └── matrix.ts │ ├── test/ │ │ ├── Zoom.test.tsx │ │ └── tsconfig.json │ ├── tsconfig.json │ └── vitest.config.ts ├── prettier.config.js ├── scripts/ │ ├── compareBuildSizes.ts │ ├── computeBuildSizes.ts │ ├── generateDocs.ts │ ├── performRelease/ │ │ ├── constants.ts │ │ ├── createGithubRelease.ts │ │ ├── fetchCommitsSinceTag.ts │ │ ├── fetchPRsForCommits.ts │ │ ├── fetchTags.ts │ │ ├── index.ts │ │ ├── performLernaRelease.ts │ │ ├── postReleaseOnPrs.ts │ │ ├── types.ts │ │ └── updateChangelog/ │ │ ├── getChangelogAddition.ts │ │ ├── index.ts │ │ └── mergeUpdateIntoChangelog.ts │ ├── postInstall.ts │ ├── updateTsReferences.ts │ └── utils/ │ ├── getGitHubClient.ts │ ├── getPullRequestNumber.ts │ ├── getRepoContext.ts │ └── upsertPullRequestComment.ts ├── tsconfig.eslint.json ├── tsconfig.json ├── tsconfig.node.json ├── tsconfig.options.json └── vitest.config.ts ================================================ FILE CONTENTS ================================================ ================================================ FILE: .eslintignore ================================================ .next/ coverage/ node_modules/ public/ esm/ lib/ tmp/ dist/ out/ *.d.ts lerna.json npm-shrinkwrap.json package.json package-lock.json tsconfig.json ================================================ FILE: .eslintrc.js ================================================ module.exports = { root: true, extends: [ // these are relics of nimbus, we could definitely simplify + consolidate './config-eslint/base.js', './config-eslint/next.js', './config-eslint/typescript.js', './config-eslint/prettier.js', ], overrides: [ { files: '*.test.{js,jsx,ts,tsx}', plugins: ['@vitest'], extends: ['plugin:@vitest/legacy-recommended'], rules: { 'import/no-extraneous-dependencies': 'off', }, }, { files: ['**/vitest.config.ts', 'vitest.workspace.ts'], env: { node: true, }, rules: { 'import/no-unresolved': ['error', { ignore: ['^vitest'] }], 'import/no-extraneous-dependencies': 'off', }, }, { files: '*.{js,jsx,ts,tsx}', rules: { 'arrow-parens': 'off', 'consistent-return': 'off', 'import/prefer-default-export': 'off', 'linebreak-style': 'off', 'lines-between-class-members': 'off', 'no-console': 'off', 'no-nested-ternary': 'off', 'no-param-reassign': 'warn', 'no-restricted-syntax': 'off', 'no-use-before-define': 'off', 'no-useless-rename': 'off', 'object-curly-newline': 'off', 'operator-linebreak': 'off', 'promise/param-names': 'off', 'react/destructuring-assignment': 'off', 'react/forbid-prop-types': 'off', 'react/jsx-curly-brace-presence': 'off', 'react/jsx-filename-extension': 'off', 'react/jsx-no-literals': 'off', 'react/jsx-props-no-spreading': 'off', 'react/jsx-sort-default-props': 'off', 'react/jsx-sort-props': 'off', 'react/no-array-index-key': 'off', 'react/no-children-prop': 'off', 'react/react-in-jsx-scope': 'off', // Not needed with automatic JSX transform (React 16.14+) 'react/require-default-props': 'off', 'react/sort-comp': 'off', 'react/sort-prop-types': 'off', 'unicorn/catch-error-name': 'off', 'unicorn/no-fn-reference-in-iterator': 'off', 'unicorn/prefer-node-append': 'off', }, }, { files: './packages/visx-demo/**', rules: { 'import/no-unresolved': [ 'error', { ignore: ['^!!raw-loader!.*'], }, ], 'import/no-webpack-loader-syntax': 'off', 'jsx-a11y/anchor-is-valid': 'off', 'jsx-a11y/label-has-associated-control': 'off', 'jsx-a11y/no-onchange': 'off', 'no-alert': 'off', 'no-param-reassign': 'off', 'react/button-has-type': 'off', 'react/no-danger': 'off', 'react/no-unescaped-entities': 'off', 'react/prop-types': 'off', 'react/state-in-constructor': 'off', }, }, ], }; ================================================ FILE: .github/workflows/pull_request.yml ================================================ name: Pull request on: pull_request: branches: [master] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 # checkout visx + this commit - uses: actions/setup-node@v2 with: node-version: '22.21.1' - name: Enable Corepack run: corepack enable - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT - uses: actions/cache@v4.3.0 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Install dependencies run: yarn install --immutable - name: Ensure TS references are up to date run: yarn type:update-refs && git diff --exit-code - name: Ensure we have no ESM-only dependencies run: yarn vendor-check - name: Build packages run: yarn build - name: Run tests run: yarn test env: CI: true - name: Generate docs run: yarn docs:generate - name: Run lint run: yarn lint - name: Build visx site without failure run: yarn build working-directory: './packages/visx-demo/' # @TODO # this fails on forks, we need to update workflow event type to `pull_request_target` # but this needs security review # https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request_target - name: Report package sizes run: yarn build:sizes && yarn check:sizes env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} PR_NUMBER: ${{ github.event.pull_request.number }} GITHUB_REPOSITORY: $GITHUB_REPOSITORY GITHUB_ACTOR: $GITHUB_ACTOR ================================================ FILE: .github/workflows/push.yml ================================================ name: Push on: push: branches: [master] jobs: build: runs-on: ubuntu-latest permissions: contents: write # Needed for git push operations id-token: write # Required for OIDC trusted publishing pull-requests: write # Needed to post release comments on PRs steps: - uses: actions/checkout@v2 # checkout visx + this commit with: # pulls all commits (needed for lerna to correctly release only changed packages) fetch-depth: '0' - uses: actions/setup-node@v2 with: node-version: '22.21.1' registry-url: 'https://registry.npmjs.org' - name: Enable Corepack run: corepack enable - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT - uses: actions/cache@v4.3.0 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Install dependencies run: yarn install --immutable - name: Build packages run: yarn build - name: Generate docs run: yarn docs:generate - name: Commit package sizes if: github.repository_owner == 'airbnb' # note: `git diff-index --quiet HEAD` # has exit code 0 if there are changes vs HEAD, else nothing to commit run: | yarn build:sizes git config user.name github-actions git config user.email github-actions@github.com git add . git diff-index --quiet HEAD || git commit -m "build(${GITHUB_SHA}): auto-commit package sizes" git push - name: Release if: github.repository_owner == 'airbnb' # the following configurations are needed for lerna to # - have git credentials for committing tags # - use OIDC trusted publishing for npm (no token required) run: | git config user.name github-actions git config user.email github-actions@github.com yarn build:release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Build and deploy gallery # below we # - setup git credentials provided via actions/checkout@v2 # - initialize gh-pages-branch as an orphan branch so we don't build history # - checkout the current commit and create gh-pages-root-dir/ as a new worktree # - outside that directory HEAD is detached at $GITHUB_SHA # - within that directory we are on the gh-pages-branch we just initialized # *worktree initialization should be in a root dir, otherwise the worktree inherits nested directories # - build the static next.js site and copy the output into gh-pages-root-dir/ # - we can't output directly into gh-pages-root-dir/ because next wipes the folder including .git # - commit the demo site within gh-pages-root-dir/ onto the gh-pages-branch # - push gh-pages-branch to visx as gh-pages. we overwrite history every time so it must be forced run: | git config user.name github-actions git config user.email github-actions@github.com git checkout --orphan gh-pages-branch git reset --hard touch .nojekyll git add .nojekyll git commit -m "bot(${GITHUB_SHA}): initialize gh-pages branch" git checkout "$GITHUB_SHA" git worktree add gh-pages-root-dir gh-pages-branch cd ./packages/visx-demo/ yarn build mv -v out/* ../../gh-pages-root-dir/ cd ../../gh-pages-root-dir/ touch CNAME echo "visx.airbnb.tech" > CNAME git add . git commit -m "bot(${GITHUB_SHA}): build gh-pages" git push -f "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$GITHUB_REPOSITORY.git" HEAD:gh-pages ================================================ FILE: .gitignore ================================================ .DS_Store *.DS_Store # Logs logs/ *.log # Cache .bundle/ .eslintcache/ .idea/ .next/ .npm/ .nx/ .vscode/ # Directories build/ coverage/ dist/ esm/ lib/ node_modules/ tmp/ # Custom *.min.js *.map # Configs (provided by Nimbus) .babelrc *.tsbuildinfo webpack.config.js # Lock files npm-shrinkwrap.json package-lock.json # Yarn 4 .yarn/* !.yarn/patches !.yarn/plugins !.yarn/releases !.yarn/sdks !.yarn/versions .pnp.* # Generated files packages/visx-demo/src/generated/ ================================================ FILE: .npmignore ================================================ .DS_Store # Logs logs/ *.log # Cache .eslintcache/ .idea/ .npm/ .next/ .vscode/ .yarnclean # Directories build/ coverage/ dist/ public/ node_modules/ tmp/ # Custom *.min.js *.map # Configs .babelrc .dockerignore .eslintignore .eslintrc.js .flowconfig .gitattributes .gitignore .npmrc .prettierignore .yarnc babel.config.js dangerfile.ts jest.config.js prettier.config.js tsconfig.eslint.json tsconfig.json tsconfig.options.json *.tsbuildinfo webpack.config.js ================================================ FILE: .npmrc ================================================ package-lock=false @visx:registry=https://registry.npmjs.org ================================================ FILE: .nvmrc ================================================ 20 ================================================ FILE: .prettierignore ================================================ .next/ coverage/ node_modules/ public/ esm/ lib/ tmp/ dist/ out/ *.d.ts lerna.json npm-shrinkwrap.json package.json package-lock.json tsconfig.json tsconfig.eslint.json tsconfig.options.json CHANGELOG.md /.nx/workspace-data ================================================ FILE: .yarnrc.yml ================================================ enableGlobalCache: false nodeLinker: node-modules logFilters: - pattern: "* doesn't provide react (*)*" level: "discard" - pattern: "* doesn't provide react-dom (*)*" level: "discard" - pattern: "* doesn't provide @react-spring/web (*)*" level: "discard" - pattern: "* doesn't provide webpack (*)*" level: "discard" - pattern: "Some peer dependencies are incorrectly met*" level: "discard" ================================================ FILE: ATTRIBUTION.md ================================================ [Fossa Attribution File](https://app.fossa.io/reports/dd5850c1-1d4e-4759-9e3e-563f83945bbd) ================================================ FILE: CHANGELOG.md ================================================ # Changelog - [v3.12.0](#v3120) - [v3.11.0](#v3110) - [v3.10.4](#v3104) - [v3.10.3](#v3103) - [v3.10.2](#v3102) - [v3.10.1](#v3101) - [v3.10.0](#v3100) - [v3.9.0](#v390)
Older Releases...
------ # v3.12.0 (2024-11-07) #### :rocket: Enhancements - feat(sankey): add @visx/sankey [#1880](https://github.com/airbnb/visx/pull/1880) ### :memo: Documentation - Fix small error in the code example in the "Theming" section [#1863](https://github.com/airbnb/visx/pull/1863) #### :trophy: Contributors - [jacksonhardaker](https://github.com/jacksonhardaker) - [maurer2](https://github.com/maurer2) # v3.11.0 (2024-05-29) #### :rocket: Enhancements - feat(xychart): improve performance when hovering with tooltip [#1842](https://github.com/airbnb/visx/pull/1842) ### :memo: Documentation - feat(xychart): improve performance when hovering with tooltip [#1842](https://github.com/airbnb/visx/pull/1842) #### :trophy: Contributors - [nikaspran](https://github.com/nikaspran) # v3.10.4 (2024-05-24) #### :bug: Bug Fix - brush: fix brush jumping around after mouseup [#1836](https://github.com/airbnb/visx/pull/1836) #### :trophy: Contributors - [tfineberg4](https://github.com/tfineberg4) # v3.10.3 (2024-05-20) #### :bug: Bug Fix - Fix LegendThreshold [#1831](https://github.com/airbnb/visx/pull/1831) #### :trophy: Contributors - [ZachBarbre](https://github.com/ZachBarbre) # v3.10.2 (2024-03-09) #### :bug: Bug Fix - fix: explicit type exports in @visx/responsive [#1809](https://github.com/airbnb/visx/pull/1809) #### :trophy: Contributors - [paolostyle](https://github.com/paolostyle) # v3.10.1 (2024-03-08) #### Uncategorized - Revert "new(axis): add shapeRendering prop to Axis" [#1808](https://github.com/airbnb/visx/pull/1808) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v3.10.0 (2024-03-08) #### :rocket: Enhancements - fix: Improve typing in @visx/responsive enhancers [#1783](https://github.com/airbnb/visx/pull/1783) #### :bug: Bug Fix - fix: Improve typing in @visx/responsive enhancers [#1783](https://github.com/airbnb/visx/pull/1783) #### :trophy: Contributors - [paolostyle](https://github.com/paolostyle) # v3.9.0 (2024-03-04) #### :rocket: Enhancements - new(axis): add shapeRendering prop to Axis [#1739](https://github.com/airbnb/visx/pull/1739) #### :bug: Bug Fix - internal: specify node js version [#1796](https://github.com/airbnb/visx/pull/1796) - docs: remove broken links from 'In the wild' [#1800](https://github.com/airbnb/visx/pull/1800) ### :memo: Documentation - docs: remove broken links from 'In the wild' [#1800](https://github.com/airbnb/visx/pull/1800) - Adds to "in the wild", new site using visx/drag [#1799](https://github.com/airbnb/visx/pull/1799) ### :house: Internal - internal: specify node js version [#1796](https://github.com/airbnb/visx/pull/1796) #### :trophy: Contributors - [BrianCurrie](https://github.com/BrianCurrie) - [Lonami](https://github.com/Lonami) - [mcioffi](https://github.com/mcioffi) - [sleonia](https://github.com/sleonia) # v3.8.0 (2024-01-25) #### :rocket: Enhancements - fix(axis): include defaultTextProps in Axis labelProps [#1791](https://github.com/airbnb/visx/pull/1791) #### :trophy: Contributors - [RyKilleen](https://github.com/RyKilleen) # v3.7.0 (2024-01-23) #### :rocket: Enhancements - fix: radial bars demo import in CodeSandbox [#1786](https://github.com/airbnb/visx/pull/1786) - feat(xychart): print console.info only in dev mode [#1792](https://github.com/airbnb/visx/pull/1792) - feat(demo): add radial bars demo using Arc [#1785](https://github.com/airbnb/visx/pull/1785) #### :bug: Bug Fix - fix: radial bars demo import in CodeSandbox [#1786](https://github.com/airbnb/visx/pull/1786) - fix: typo in DragITile description [#1779](https://github.com/airbnb/visx/pull/1779) ### :memo: Documentation - fix: typo in DragITile description [#1779](https://github.com/airbnb/visx/pull/1779) - docs: add ridge line chart with KDE to 'in the wild' [#1781](https://github.com/airbnb/visx/pull/1781) #### :trophy: Contributors - [adamzuch](https://github.com/adamzuch) - [jmssnr](https://github.com/jmssnr) - [sleonia](https://github.com/sleonia) # v3.6.1 (2023-12-15) #### :bug: Bug Fix - fix(brush): fix issue 'update was scheduled' warning on resetOnEnd #1465 [#1778](https://github.com/airbnb/visx/pull/1778) #### :trophy: Contributors - [dsdevgit](https://github.com/dsdevgit) # v3.6.0 (2023-12-07) #### :rocket: Enhancements - feat(brush): disable drag overlay [#1744](https://github.com/airbnb/visx/pull/1744) #### :trophy: Contributors - [Onxi95](https://github.com/Onxi95) # v3.5.1 (2023-11-17) #### :bug: Bug Fix - fix: correctly pass through offset from AnimatedGridRows/Columns [#1769](https://github.com/airbnb/visx/pull/1769) ### :memo: Documentation - docs: add Superstardle in the wild [#1768](https://github.com/airbnb/visx/pull/1768) #### :trophy: Contributors - [henrinormak](https://github.com/henrinormak) - [mcioffi](https://github.com/mcioffi) # v3.5.0 (2023-11-13) #### :rocket: Enhancements - new(geo, vendor): add `d3-geo@3` to `visx-vendor`, support `geoPath.digits(n)` [#1767](https://github.com/airbnb/visx/pull/1767) ### :memo: Documentation - Add to "In the wild" [#1765](https://github.com/airbnb/visx/pull/1765) #### :trophy: Contributors - [kachkaev](https://github.com/kachkaev) - [physicianfyi](https://github.com/physicianfyi) # v3.4.1 (2023-10-26) #### :bug: Bug Fix - visx-axis AxisRenderer.tsx: resolve circular dependency [#1762](https://github.com/airbnb/visx/pull/1762) #### :trophy: Contributors - [ithrforu](https://github.com/ithrforu) # v3.4.0 (2023-10-10) #### :rocket: Enhancements - feat(axis): Expose innerRef prop on the various Axis components [#1749](https://github.com/airbnb/visx/pull/1749) #### :trophy: Contributors - [SheaJanke](https://github.com/SheaJanke) # v3.3.0 (2023-07-11) #### :rocket: Enhancements - Create new @visx/delaunay package [#1678](https://github.com/airbnb/visx/pull/1678) #### :bug: Bug Fix - Fix glyph positioning in the xychart demo. [#1730](https://github.com/airbnb/visx/pull/1730) #### :trophy: Contributors - [SheaJanke](https://github.com/SheaJanke) # v3.2.1 (2023-07-06) #### :bug: Bug Fix - fix(xychart): Cleanup async function in TooltipProvider [#1728](https://github.com/airbnb/visx/pull/1728) #### :trophy: Contributors - [SheaJanke](https://github.com/SheaJanke) # v3.2.0 (2023-06-29) #### :bug: Bug Fix - fix: vendor esm-only packages [#1716](https://github.com/airbnb/visx/pull/1716) - vendor: add files entry to package.json [#1724](https://github.com/airbnb/visx/pull/1724) - docs(xychart): fix typo [#1714](https://github.com/airbnb/visx/pull/1714) ### :memo: Documentation - docs(xychart): fix typo [#1714](https://github.com/airbnb/visx/pull/1714) ### :house: Internal - fix: vendor esm-only packages [#1716](https://github.com/airbnb/visx/pull/1716) - github: update @octokit/openapi-types to fix release script [#1722](https://github.com/airbnb/visx/pull/1722) - github: fix release types and logic [#1723](https://github.com/airbnb/visx/pull/1723) #### :trophy: Contributors - [sshsphere](https://github.com/sshsphere) - [williaster](https://github.com/williaster) # v3.1.3 (2023-06-28) #### :bug: Bug Fix - docs(in the wild): remove broken app link [#1688](https://github.com/airbnb/visx/pull/1688) - fix(xychart): extra space in version definition, that prevents 18.2.0 version t… [#1686](https://github.com/airbnb/visx/pull/1686) ### :memo: Documentation - docs(zoom): update handlePinch type description [#1685](https://github.com/airbnb/visx/pull/1685) - docs(in the wild): remove broken app link [#1688](https://github.com/airbnb/visx/pull/1688) #### :trophy: Contributors - [codejunkienick](https://github.com/codejunkienick) - [deni](https://github.com/deni) - [jrozbicki](https://github.com/jrozbicki) # v3.1.2 (2023-03-22) #### :bug: Bug Fix - fix(tooltip): handle SSR in useTooltipInPortal [#1672](https://github.com/airbnb/visx/pull/1672) #### :trophy: Contributors - [korompaiistvan](https://github.com/korompaiistvan) # v3.1.1 (2023-03-22) #### :bug: Bug Fix - fix(zoom): prevent wheel interfering with pinch [#1639](https://github.com/airbnb/visx/pull/1639) #### :trophy: Contributors - [kiliancs](https://github.com/kiliancs) # v3.1.0 (2023-03-08) #### :rocket: Enhancements - feat(axis): support object type tickLabelProp [#1662](https://github.com/airbnb/visx/pull/1662) #### :trophy: Contributors - [Robin-Hoodie](https://github.com/Robin-Hoodie) # v3.0.2 (2023-03-07) #### :bug: Bug Fix - fix(demo/sandboxes, xychart): Convert '@visx/.../src/...' to '@visx/.../lib/...' [#1660](https://github.com/airbnb/visx/pull/1660) ### :memo: Documentation - docs: Add Fig Stats to In the wild [#1652](https://github.com/airbnb/visx/pull/1652) #### :trophy: Contributors - [SheaJanke](https://github.com/SheaJanke) - [VojtechVidra](https://github.com/VojtechVidra) # v3.0.1 (2023-02-13) #### :bug: Bug Fix - fix(demo): fix missing API documentation [#1648](https://github.com/airbnb/visx/pull/1648) ### :memo: Documentation - fix(demo): fix missing API documentation [#1648](https://github.com/airbnb/visx/pull/1648) ### :house: Internal - Delete ROADMAP.md [#1628](https://github.com/airbnb/visx/pull/1628) #### :trophy: Contributors - [jonambas](https://github.com/jonambas) - [williaster](https://github.com/williaster) # v3.0.0 (2023-01-06) #### :boom: Breaking Changes - security: Revert "Revert breaking "deps(scale): bump `d3-interpolate` and `d3-scale`"" [#1621](https://github.com/airbnb/visx/pull/1621) - breaking(annotation): remove `deprecated/LinePathAnnotation` [#1620](https://github.com/airbnb/visx/pull/1620) - breaking(responsive, xychart): require ResizeObserver or polyfill [#1622](https://github.com/airbnb/visx/pull/1622) ### :house: Internal - internal(github/workflows): add tsconfig + demo site build checks [#1626](https://github.com/airbnb/visx/pull/1626) - deps(demo): upgrade to next@11 [#1627](https://github.com/airbnb/visx/pull/1627) #### :trophy: Contributors - [jreyes33](https://github.com/jreyes33) - [williaster](https://github.com/williaster) # v2.18.0 (2023-01-03) #### :bug: Bug Fix - fix(demo/pages/docs): use relative imports to fix API docs [#1612](https://github.com/airbnb/visx/pull/1612) - Revert breaking "deps(scale): bump `d3-interpolate` and `d3-scale`" [#1619](https://github.com/airbnb/visx/pull/1619) ### :memo: Documentation - fix(demo/pages/docs): use relative imports to fix API docs [#1612](https://github.com/airbnb/visx/pull/1612) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v2.17.0 (2022-12-22) #### :bug: Bug Fix - deps(scale): bump `d3-interpolate` and `d3-scale` [#1578](https://github.com/airbnb/visx/pull/1578) ### :house: Internal - internal: migrate off nimbus [#1609](https://github.com/airbnb/visx/pull/1609) #### :trophy: Contributors - [jreyes33](https://github.com/jreyes33) - [williaster](https://github.com/williaster) # v2.16.1 (2022-12-20) #### :bug: Bug Fix - fix(demo/radar): uneven data elements renders spokes and web out of sync [#1599](https://github.com/airbnb/visx/pull/1599) - fix(brush): update brush start/end on window resize [#1606](https://github.com/airbnb/visx/pull/1606) ### :memo: Documentation - docs(xychart): fix typo [#1594](https://github.com/airbnb/visx/pull/1594) ### :house: Internal - internal(github-actions): add github release script [#1585](https://github.com/airbnb/visx/pull/1585) #### :trophy: Contributors - [datananda](https://github.com/datananda) - [gammaflauge](https://github.com/gammaflauge) - [valMn](https://github.com/valMn) - [williaster](https://github.com/williaster) # v2.16.0 (2022-10-19) #### :bug: Bug Fix - fix(tooltip, bounds): replace findDOMNode with refs for TooltipWithBounds [#1583](https://github.com/airbnb/visx/pull/1583) #### :trophy: Contributors - [0xmax](https://github.com/0xmax) # v2.15.1 (2022-10-13) #### :bug: Bug Fix - fix(mock-data): add missing bitcoinPrice to index.ts [#1582](https://github.com/airbnb/visx/pull/1582) #### :trophy: Contributors - [filiprejmus](https://github.com/filiprejmus) # v2.15.0 (2022-10-04) #### :rocket: Enhancements - new(tooltip): provide isFlippedVertically and isFlippedHorizontally context [#1355](https://github.com/airbnb/visx/pull/1355) #### :trophy: Contributors - [taksuparth](https://github.com/taksuparth) # v2.14.0 (2022-10-03) #### :rocket: Enhancements - feat(axis): add an ability to specify different paddings for the start and the end of the axis [#1574](https://github.com/airbnb/visx/pull/1574) #### :trophy: Contributors - [andreykrupskii](https://github.com/andreykrupskii) # v2.13.0 (2022-09-06) #### :rocket: Enhancements - Include visx/threshold in visx/visx [#1563](https://github.com/airbnb/visx/pull/1563) #### :trophy: Contributors - [DantrazTrev](https://github.com/DantrazTrev) # v2.12.2 (2022-08-03) #### :bug: Bug Fix - fix(text, shape): Hide generated text element from assistive technologies [#1551](https://github.com/airbnb/visx/pull/1551) #### :trophy: Contributors - [thomashoggard](https://github.com/thomashoggard) # v2.12.1 (2022-07-07) #### :bug: Bug Fix - fix(brush): resize brush selection when chart resizes [#1536](https://github.com/airbnb/visx/pull/1536) #### :trophy: Contributors - [lucassarcanjo](https://github.com/lucassarcanjo) # v2.12.0 (2022-07-06) #### :rocket: Enhancements - feat(brush): add renderBrushHandle [#1495](https://github.com/airbnb/visx/pull/1495) #### :trophy: Contributors - [arnthor-agustsson](https://github.com/arnthor-agustsson) # v2.11.1 (2022-06-29) #### :bug: Bug Fix - fix(demo,shape): fix SplitLinePath key [#1531](https://github.com/airbnb/visx/pull/1531) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v2.11.0 (2022-06-28) #### :rocket: Enhancements - feat(xychart): support onPointerDown event [#1440](https://github.com/airbnb/visx/pull/1440) #### :trophy: Contributors - [abusada](https://github.com/abusada) # v2.10.2 (2022-06-28) ### :house: Internal - chore: Update deps for react-spring to specific target [#1530](https://github.com/airbnb/visx/pull/1530) #### :trophy: Contributors - [ed-g-c](https://github.com/ed-g-c) # v2.10.1 (2022-06-08) #### :bug: Bug Fix - fix(brush): vertical brush with useWindowMoveEvents [#1522](https://github.com/airbnb/visx/pull/1522) #### :trophy: Contributors - [kangaechigai](https://github.com/kangaechigai) # v2.10.0 (2022-05-03) #### :rocket: Enhancements - deps: Update to support React 18 [#1483](https://github.com/airbnb/visx/pull/1483) - new(react-spring): add tickLineProps to AnimatedTicks [#1490](https://github.com/airbnb/visx/pull/1490) - feat(xychart): add colorAccessor to LineSeries [#1489](https://github.com/airbnb/visx/pull/1489) ### :memo: Documentation - docs: add WHO in the wild [#1486](https://github.com/airbnb/visx/pull/1486) #### :trophy: Contributors - [artidata](https://github.com/artidata) - [Gaya](https://github.com/Gaya) - [Zenith00](https://github.com/Zenith00) # v2.9.2 (2022-04-28) #### :bug: Bug Fix - fix(xychart, react-spring): fix duplicate key warning in Axis/Grid [#1485](https://github.com/airbnb/visx/pull/1485) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v2.9.1 (2022-04-27) #### :bug: Bug Fix - fix(xychart): fix typo [#1460](https://github.com/airbnb/visx/pull/1460) ### :memo: Documentation - docs: Add https://augora.fr to "In the wild" section [#1443](https://github.com/airbnb/visx/pull/1443) #### :trophy: Contributors - [goldenivan](https://github.com/goldenivan) - [tetsugi](https://github.com/tetsugi) # v2.9.0 (2022-01-27) #### :rocket: Enhancements - new(annotation): add HtmlLabel demo, add containterStyle prop [#1424](https://github.com/airbnb/visx/pull/1424) ### :memo: Documentation - new(annotation): add HtmlLabel demo, add containterStyle prop [#1424](https://github.com/airbnb/visx/pull/1424) ### :house: Internal - new(annotation): add HtmlLabel demo, add containterStyle prop [#1424](https://github.com/airbnb/visx/pull/1424) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v2.8.0 (2022-01-26) ### :house: Internal - deps: replace resize-observer-polyfill with @juggle/resize-observer [#1422](https://github.com/airbnb/visx/pull/1422) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v2.7.1 (2022-01-24) #### Uncategorized - fix(responsive): remove global ResizeObserver type declaration [#1423](https://github.com/airbnb/visx/pull/1423) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v2.7.0 (2022-01-21) #### :rocket: Enhancements - Annotation label render [#1383](https://github.com/airbnb/visx/pull/1383) #### :trophy: Contributors - [valtism](https://github.com/valtism) # v2.6.1 (2022-01-20) #### :bug: Bug Fix - fix(zoom): avoid 2x scale invocations on wheel end [#1420](https://github.com/airbnb/visx/pull/1420) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v2.6.0 (2022-01-20) #### :rocket: Enhancements - new(drag): Add restrictToPath as a Drag parameter [#1379](https://github.com/airbnb/visx/pull/1379) ### :memo: Documentation - Removed $ sign from Usage in Readme [#1397](https://github.com/airbnb/visx/pull/1397) #### :trophy: Contributors - [DantrazTrev](https://github.com/DantrazTrev) - [valtism](https://github.com/valtism) # v2.5.0 (2021-11-11) #### :rocket: Enhancements - new(drag): add options to restrict area and control snapToPointer behaviour [#1368](https://github.com/airbnb/visx/pull/1368) #### :trophy: Contributors - [valtism](https://github.com/valtism) # v2.4.1 (2021-11-11) #### :bug: Bug Fix - fix(responsive): fix shallow equality check on default array value for ParentSize [#1370](https://github.com/airbnb/visx/pull/1370) #### :trophy: Contributors - [dylanmoz](https://github.com/dylanmoz) # v2.4.0 (2021-11-10) #### :rocket: Enhancements - new(xychart): distinguish nearestDatum in renderGlyph [#1294](https://github.com/airbnb/visx/pull/1294) - new(shape/BarRounded): export useBarRounded, support render functions [#1097](https://github.com/airbnb/visx/pull/1097) - new(xychart/BarSeries,BarGroup,BarStack): add support for bar radius [#1098](https://github.com/airbnb/visx/pull/1098) #### :bug: Bug Fix - Update Readme.md [#1372](https://github.com/airbnb/visx/pull/1372) ### :memo: Documentation - Update Readme.md [#1372](https://github.com/airbnb/visx/pull/1372) #### :trophy: Contributors - [AryanBeezadhur](https://github.com/AryanBeezadhur) - [Janpot](https://github.com/Janpot) - [williaster](https://github.com/williaster) # v2.3.0 (2021-11-02) #### :rocket: Enhancements - new(text): Add 'shrink-only' option to 'scaleToFit' [#1362](https://github.com/airbnb/visx/pull/1362) #### :trophy: Contributors - [kyythane](https://github.com/kyythane) # v2.2.2 (2021-10-27) #### :bug: Bug Fix - fix(tooltip): mount TooltipWithBounds before adding transform [#1367](https://github.com/airbnb/visx/pull/1367) - fix(zoom): better handling of simultaneous drag and scale [#1361](https://github.com/airbnb/visx/pull/1361) ### :memo: Documentation - docs: add note about dangers of rendering divs within svg [#1354](https://github.com/airbnb/visx/pull/1354) - docs(scale): Add note on scaleLog domain not containing 0 [#1363](https://github.com/airbnb/visx/pull/1363) - docs(tooltip): remove incorrect handler from readme example [#1366](https://github.com/airbnb/visx/pull/1366) #### :trophy: Contributors - [amhunt](https://github.com/amhunt) - [kangaechigai](https://github.com/kangaechigai) - [valtism](https://github.com/valtism) - [whalderman](https://github.com/whalderman) # v2.2.1 (2021-10-13) #### :bug: Bug Fix - Round up instead of down on text width within Label to avoid unnecessary wrapping [#1353](https://github.com/airbnb/visx/pull/1353) #### :trophy: Contributors - [dylanmoz](https://github.com/dylanmoz) # v2.2.0 (2021-10-13) #### :rocket: Enhancements - Allow specifying zIndex for tooltip portals [#1346](https://github.com/airbnb/visx/pull/1346) #### :trophy: Contributors - [kangaechigai](https://github.com/kangaechigai) # v2.1.2 (2021-10-11) ### :house: Internal - deps: bump all dev config [#1301](https://github.com/airbnb/visx/pull/1301) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v2.1.1 (2021-09-10) ### :house: Internal - deps: bump lodash throughout [#1341](https://github.com/airbnb/visx/pull/1341) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v2.1.0 (2021-08-17) #### :rocket: Enhancements - deps: update to react-spring@9 [#1277](https://github.com/airbnb/visx/pull/1277) - new(zoom): add pinch and zoom support [#1305](https://github.com/airbnb/visx/pull/1305) - new(demo/geo-albers/usa): use all 4 colors in the map [#1314](https://github.com/airbnb/visx/pull/1314) - new(wordcloud): add @visx/wordcloud [#1311](https://github.com/airbnb/visx/pull/1311) #### :bug: Bug Fix - fix(scripts/performRelease): fix alpha release logic [#1310](https://github.com/airbnb/visx/pull/1310) ### :boom: Breaking Changes - deps: update to react-spring@9 [#1277](https://github.com/airbnb/visx/pull/1277) - [deps] Upgrade to react v17 and react-testing-library [#1268](https://github.com/airbnb/visx/pull/1268) - breaking(visx/visx): export by package namespace [#1121](https://github.com/airbnb/visx/pull/1121) ### :house: Internal - fix(scripts/performRelease): fix alpha release logic [#1310](https://github.com/airbnb/visx/pull/1310) #### :trophy: Contributors - [craciuncezar](https://github.com/craciuncezar) - [gazcn007](https://github.com/gazcn007) - [kenfehling](https://github.com/kenfehling) - [robsutcliffe](https://github.com/robsutcliffe) - [tonyneel923](https://github.com/tonyneel923) - [williaster](https://github.com/williaster) # v1.18.1 (2021-07-21) #### :bug: Bug Fix - fix(brush, drag): call start callbacks consistently, support mobile [#1286](https://github.com/airbnb/visx/pull/1286) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v1.18.0 (2021-07-21) #### :rocket: Enhancements - new(xychart/tooltip): add renderGlyph property [#1255](https://github.com/airbnb/visx/pull/1255) #### :trophy: Contributors - [Janpot](https://github.com/Janpot) # v1.17.1 (2021-07-20) #### :bug: Bug Fix - fix: remove @types/classnames [#1281](https://github.com/airbnb/visx/pull/1281) #### :trophy: Contributors - [Janpot](https://github.com/Janpot) # v1.17.0 (2021-07-08) #### :rocket: Enhancements - new(axis): enable customization of tickLineProps [#1211](https://github.com/airbnb/visx/pull/1211) #### :trophy: Contributors - [LoiKos](https://github.com/LoiKos) # v1.16.1 (2021-07-07) #### :bug: Bug Fix - fix(xychart): support fragment and array type children of stacks/groups [#1259](https://github.com/airbnb/visx/pull/1259) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v1.16.0 (2021-07-02) #### :rocket: Enhancements - feat(shape): add more segmentation for SplitLinePath [#1261](https://github.com/airbnb/visx/pull/1261) #### :bug: Bug Fix - feat(shape): add more segmentation for SplitLinePath [#1261](https://github.com/airbnb/visx/pull/1261) #### :trophy: Contributors - [kristw](https://github.com/kristw) # v1.15.0 (2021-07-01) #### :rocket: Enhancements - feat(brush): add using widows move events with brush [#1164](https://github.com/airbnb/visx/pull/1164) #### :trophy: Contributors - [d3x42](https://github.com/d3x42) # v1.14.1 (2021-07-01) #### :bug: Bug Fix - fix(zoom): fix provided zoom interface [#1257](https://github.com/airbnb/visx/pull/1257) ### :memo: Documentation - Add Data 2 the People to In the Wild list [#1256](https://github.com/airbnb/visx/pull/1256) #### :trophy: Contributors - [boy51](https://github.com/boy51) - [schillerk](https://github.com/schillerk) # v1.14.0 (2021-06-25) #### :rocket: Enhancements - feat(scale): support rounding for symlog [#1252](https://github.com/airbnb/visx/pull/1252) - feat(animatedaxis): add tickComponent support (#977) [#1228](https://github.com/airbnb/visx/pull/1228) #### :bug: Bug Fix - build: skip release workflow when in forked repo [#1251](https://github.com/airbnb/visx/pull/1251) ### :house: Internal - build: skip release workflow when in forked repo [#1251](https://github.com/airbnb/visx/pull/1251) - build: run happo on push [#1254](https://github.com/airbnb/visx/pull/1254) #### :trophy: Contributors - [johnathanludwig](https://github.com/johnathanludwig) - [kristw](https://github.com/kristw) - [williaster](https://github.com/williaster) # v1.13.0 (2021-06-16) #### :rocket: Enhancements - new(geo): pass projection to child override, add U.S.A. demo [#1236](https://github.com/airbnb/visx/pull/1236) #### :bug: Bug Fix - new(geo): pass projection to child override, add U.S.A. demo [#1236](https://github.com/airbnb/visx/pull/1236) ### :memo: Documentation - docs(xychart): fix typos [#1232](https://github.com/airbnb/visx/pull/1232) #### :trophy: Contributors - [danielimmke](https://github.com/danielimmke) - [johnathanludwig](https://github.com/johnathanludwig) # v1.12.0 (2021-06-03) #### :rocket: Enhancements - new(shape): support dynamic fill directly in Pie [#1225](https://github.com/airbnb/visx/pull/1225) #### :trophy: Contributors - [iampueroo](https://github.com/iampueroo) # v1.11.2 (2021-05-21) #### :bug: Bug Fix - fix(xychart/Tooltip): bail early when tooltip is closed [#1213](https://github.com/airbnb/visx/pull/1213) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v1.11.1 (2021-05-19) #### :bug: Bug Fix - fix(scale): upgrade d3-time to v2.4 for d3-scale compatibility [#1219](https://github.com/airbnb/visx/pull/1219) ### :memo: Documentation - docs(shape): fix docs fror BarGroup, BarGroupHorizontal, and BarStack [#1212](https://github.com/airbnb/visx/pull/1212) #### :trophy: Contributors - [Pringels](https://github.com/Pringels) - [williaster](https://github.com/williaster) # v1.11.0 (2021-05-13) #### :rocket: Enhancements - new(@visx/zoom): adjust drag move to take optional offset [#1180](https://github.com/airbnb/visx/pull/1180) #### :bug: Bug Fix - new(@visx/zoom): adjust drag move to take optional offset [#1180](https://github.com/airbnb/visx/pull/1180) #### :trophy: Contributors - [boy51](https://github.com/boy51) # v1.10.1 (2021-05-12) #### :bug: Bug Fix - fix(responsive): don't call resize.cancel if we never initialised [#1208](https://github.com/airbnb/visx/pull/1208) #### Uncategorized - Update pull_request.yml [#1209](https://github.com/airbnb/visx/pull/1209) #### :trophy: Contributors - [ahixon](https://github.com/ahixon) - [williaster](https://github.com/williaster) # v1.10.0 (2021-05-03) #### :rocket: Enhancements - fix(@visx/text) Bad size measurements in Firefox [#1175](https://github.com/airbnb/visx/pull/1175) #### :bug: Bug Fix - fix(@visx/text) Bad size measurements in Firefox [#1175](https://github.com/airbnb/visx/pull/1175) #### Uncategorized - Update push.yml [#1195](https://github.com/airbnb/visx/pull/1195) #### :trophy: Contributors - [vovakulikov](https://github.com/vovakulikov) - [williaster](https://github.com/williaster) # v1.9.1 (2021-04-22) #### :bug: Bug Fix - fix(grid,xychart): account for scale bandwidth in offsets [#1181](https://github.com/airbnb/visx/pull/1181) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v1.9.0 (2021-04-16) #### :rocket: Enhancements - fix(visx/annotation) Improve label positioning, add maxWidth [#1127](https://github.com/airbnb/visx/pull/1127) #### :bug: Bug Fix - fix(visx/annotation) Improve label positioning, add maxWidth [#1127](https://github.com/airbnb/visx/pull/1127) ### :memo: Documentation - development(contributing): update docs to rebuild single packages [#1170](https://github.com/airbnb/visx/pull/1170) #### :trophy: Contributors - [vovakulikov](https://github.com/vovakulikov) - [williaster](https://github.com/williaster) # v1.8.0 (2021-04-15) #### :rocket: Enhancements - new(shape/Polygon): add optional 'points' override [#1156](https://github.com/airbnb/visx/pull/1156) #### :trophy: Contributors - [jakeisnt](https://github.com/jakeisnt) # v1.7.4 (2021-04-13) #### :bug: Bug Fix - fix(brush): use PointerEvents instead of MouseEvents [#1155](https://github.com/airbnb/visx/pull/1155) #### :trophy: Contributors - [RemaaBdair](https://github.com/RemaaBdair) # v1.7.3 (2021-04-06) #### :bug: Bug Fix - fix(xychart): onPointerUp fires twice [#1135](https://github.com/airbnb/visx/pull/1135) ### :memo: Documentation - docs: Add Pry to In the Wild list [#1115](https://github.com/airbnb/visx/pull/1115) #### :trophy: Contributors - [valtism](https://github.com/valtism) - [vovakulikov](https://github.com/vovakulikov) # v1.7.2 (2021-03-18) #### :bug: Bug Fix - fix(tooltip, annotation): bump react-use-measure to ^2.0.4. fixes #1091 [#1116](https://github.com/airbnb/visx/pull/1116) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) # v1.7.1 (2021-03-17) #### :bug: Bug Fix - fix(xychart/TooltipProvider): handles NaNs in nearestDatum logic [#1112](https://github.com/airbnb/visx/pull/1112) ### :house: Internal - internal(workflows/release): add next dist-tag, fix lerna releases [#1107](https://github.com/airbnb/visx/pull/1107) - fix(workflows/push): fix yaml syntax [#1108](https://github.com/airbnb/visx/pull/1108) - fix(scripts/performRelease): add comment, fix typo [#1113](https://github.com/airbnb/visx/pull/1113) #### :trophy: Contributors - [williaster](https://github.com/williaster) # v1.7.0 (2021-03-12) #### :rocket: Enhancements - Export types in @visx/text [#1106](https://github.com/airbnb/visx/pull/1106) #### :bug: Bug Fix - fix(xychart/Tooltip): don't render glyph for null data [#1102](https://github.com/airbnb/visx/pull/1102) - fix(shape, xychart): default LinePath strokeLinecap to round [#1105](https://github.com/airbnb/visx/pull/1105) ### :house: Internal - deps(lerna): bump to 3.22.0 [#1103](https://github.com/airbnb/visx/pull/1103) #### :trophy: Contributors - [ConneXNL](https://github.com/ConneXNL) - [williaster](https://github.com/williaster) # v1.6.1 (2021-03-08) #### :bug: Bug Fix - fix(network): string type in node/linkComponent [#1078](https://github.com/airbnb/visx/pull/1078) - fix(xychart/Axis): export AxisScale type, set default Scale generic [#1094](https://github.com/airbnb/visx/pull/1094) ### :memo: Documentation - fix(network): string type in node/linkComponent [#1078](https://github.com/airbnb/visx/pull/1078) ### :house: Internal - build(happo): decrease compare threshold [#1088](https://github.com/airbnb/visx/pull/1088) - new(workflows/push): automate releases [#1073](https://github.com/airbnb/visx/pull/1073) #### :trophy: Contributors - [jraymakers](https://github.com/jraymakers) - [williaster](https://github.com/williaster) # v1.6.0 #### :rocket: Enhancements - [xychart] add x/y0Accessor functions to support AreaSeries bands [#1071](https://github.com/airbnb/visx/pull/1071) #### :bug: Bug Fix - [xychart] make AnnotationLabel's make dataKey optional [#1072](https://github.com/airbnb/visx/pull/1072) - [annotation] account for fontFamily in Label styles so Text uses it in its size calculations [#1072](https://github.com/airbnb/visx/pull/1072) #### :trophy: Contributors - [williaster](https://github.com/williaster) ``` Changes - @visx/annotation: 1.5.0 => 1.6.0 - @visx/demo: 1.5.0 => 1.6.0 - @visx/visx: 1.5.0 => 1.6.0 - @visx/xychart: 1.5.0 => 1.6.0 ``` # v1.5.0 #### :rocket: Enhancements - [grid] add GridPolar, GridAngle, and GridRadial [#1007](https://github.com/airbnb/visx/pull/1007) - [mock-data] add stable randomness [#1033](https://github.com/airbnb/visx/pull/1033) - [xychart] add AreaStack [#1019](https://github.com/airbnb/visx/pull/1019) closes [#994](https://github.com/airbnb/visx/pull/994) - [visx/visx] export @visx/xychart package [#1043](https://github.com/airbnb/visx/pull/1043) closes [#974](https://github.com/airbnb/visx/pull/974) - [axis] pass all tick values in tickLabelProps signature [#1044](https://github.com/airbnb/visx/pull/1044) #### :bug: Bug Fix - [xychart] improve Tooltip positioning with missing data [#1068](https://github.com/airbnb/visx/pull/1068) closes [#1054](https://github.com/airbnb/visx/pull/1054) - [xychart] make Tooltip postion robust to container changes [#1045](https://github.com/airbnb/visx/pull/1045) closes [#983](https://github.com/airbnb/visx/pull/983) - [xychart] fix scales for BarStack offset [#1019](https://github.com/airbnb/visx/pull/1019) - [xychart] add SVGPathElement props to BaseAreaSeries lineProps [#1046](https://github.com/airbnb/visx/pull/1046) ### :memo: Documentation - sync code of conduct with Airbnb [#1013](https://github.com/airbnb/visx/pull/1013) - [demo/*] respect prefersReducedMotion [#1037](https://github.com/airbnb/visx/pull/1037) - [demo/barstack] improve Tooltip positining logic [#1018](https://github.com/airbnb/visx/pull/1018) closes [#1018](https://github.com/airbnb/visx/pull/1018) - [demo/xychart] add AreaStack, stackOffset control [#1020](https://github.com/airbnb/visx/pull/1020) - [in the wild] add eft.monster [#1010](https://github.com/airbnb/visx/pull/1010) ### :house: Internal - [testing] add happo for screenshot testing [#1030](https://github.com/airbnb/visx/pull/1030) - [xychart/areastack] add tests [#1036](https://github.com/airbnb/visx/pull/1036) - [CI] add package size checks + auto gallery deploy [#1048](https://github.com/airbnb/visx/pull/1048) #### :trophy: Contributors - [sarathps93](https://github.com/sarathps93) - [codenomial](https://github.com/codenomial) - [williaster](https://github.com/williaster) ``` Changes: - @visx/annotation: 1.4.0 => 1.5.0 - @visx/axis: 1.4.0 => 1.5.0 - @visx/demo: 1.4.0 => 1.5.0 - @visx/grid: 1.4.0 => 1.5.0 - @visx/mock-data: 1.0.0 => 1.5.0 - @visx/react-spring: 1.4.0 => 1.5.0 - @visx/tooltip: 1.3.0 => 1.5.0 - @visx/visx: 1.4.0 => 1.5.0 - @visx/xychart: 1.4.0 => 1.5.0 ``` # v1.4.0 #### :rocket: Enhancements - [xychart] make `event` in `EventHandlerParams` optional [#972](https://github.com/airbnb/visx/pull/972) - [xychart] add `colorAccessor` to relevant series [#1005](https://github.com/airbnb/visx/pull/1005), closes [#996](https://github.com/airbnb/visx/pull/996) - [xychart] include zero in scale domains by default [#1008](https://github.com/airbnb/visx/pull/1008) #### :bug: Bug Fix - [xychart] fix scale options not applied in XYChart [#987](https://github.com/airbnb/visx/pull/987), closes [#986](https://github.com/airbnb/visx/pull/986) - [xychart] expose more AnnotationLineSubject types, fix `strokeWidth` application [#991](https://github.com/airbnb/visx/pull/991) - [annotation] fix application of object type `Label` `props.backgroundPadding`, add default `anchorLineStroke` [#989](https://github.com/airbnb/visx/pull/989) - [stats] fix handling of `0` in `BoxPlot` `valueScale` [#993](https://github.com/airbnb/visx/pull/993) - [xychart] enable style overflow in crosshairs [#997](https://github.com/airbnb/visx/pull/997) ### :memo: Documentation - [xychart] add advanced usage sandbox examples [#972](https://github.com/airbnb/visx/pull/972) - [xychart] fix missing [#972](https://github.com/airbnb/visx/pull/972) - [annotation] add docs for Label [#989](https://github.com/airbnb/visx/pull/989) #### :trophy: Contributors - [Janpot](https://github.com/Janpot) - [rsbh](https://github.com/rsbh) - [williaster](https://github.com/williaster) ``` Changes: - @visx/annotation: 1.3.0 => 1.4.0 - @visx/axis: 1.3.0 => 1.4.0 - @visx/brush: 1.3.0 => 1.4.0 - @visx/demo: 1.3.0 => 1.4.0 - @visx/grid: 1.3.0 => 1.4.0 - @visx/legend: 1.3.0 => 1.4.0 - @visx/marker: 1.3.0 => 1.4.0 - @visx/react-spring: 1.3.0 => 1.4.0 - @visx/scale: 1.3.0 => 1.4.0 - @visx/shape: 1.3.0 => 1.4.0 - @visx/stats: 1.3.0 => 1.4.0 - @visx/threshold: 1.3.0 => 1.4.0 - @visx/visx: 1.3.0 => 1.4.0 - @visx/xychart: 1.3.0 => 1.4.0 ``` # v1.3.0 #### :rocket: Enhancements - [responsive] Add ParentSizeModern, withParentSizeModern that don't add ResizeObserver polyfill [#925](https://github.com/airbnb/visx/pull/925) - [scale] add scaleRadial [#958](https://github.com/airbnb/visx/pull/958) - [text] add useText hook, refactor Text to use it [#946](https://github.com/airbnb/visx/pull/946) - [event] support FocusEvents in localPoint [#956](https://github.com/airbnb/visx/pull/956) - [xychart] release package [#965](https://github.com/airbnb/visx/pull/965) - [xychart] add PointerEvent handlers to XYChart, all Series [#947](https://github.com/airbnb/visx/pull/947) - [xychart] add support for FocusEvents [#959](https://github.com/airbnb/visx/pull/959) - [xychart] integrate Annotations [#938](https://github.com/airbnb/visx/pull/938) #### :bug: Bug Fix - [shape] set y0 when it equals zero [#955](https://github.com/airbnb/visx/pull/955) ### :memo: Documentation - [xychart] add README and /docs/xychart to demo site [#963](https://github.com/airbnb/visx/pull/963) - [demo] fix view demo hover pointer style [#929](https://github.com/airbnb/visx/pull/929) - [tooltip] fix offsetTop documentation [#970](https://github.com/airbnb/visx/pull/970) ### :house: Internal - [xychart] add FocusEvent tests [#962](https://github.com/airbnb/visx/pull/962) - [xychart] add PointerEvent tests [#952](https://github.com/airbnb/visx/pull/952) - [xychart] add Annotations tests [#948](https://github.com/airbnb/visx/pull/948) #### :trophy: Contributors - [koddsson](https://github.com/koddsson) - [susiwen8](https://github.com/susiwen8) - [sarathps93](https://github.com/sarathps93) - [cristianmartinez](https://github.com/cristianmartinez) - [jfuchs](https://github.com/jfuchs) - [williaster](https://github.com/williaster) ``` Changes: - @visx/annotation: 1.2.0 => 1.3.0 - @visx/axis: 1.2.0 => 1.3.0 - @visx/brush: 1.2.0 => 1.3.0 - @visx/demo: 1.2.0 => 1.3.0 - @visx/drag: 1.2.0 => 1.3.0 - @visx/event: 1.0.0 => 1.3.0 - @visx/grid: 1.2.0 => 1.3.0 - @visx/legend: 1.1.0 => 1.3.0 - @visx/marker: 1.2.0 => 1.3.0 - @visx/react-spring: 1.2.0 => 1.3.0 - @visx/responsive: 1.1.0 => 1.3.0 - @visx/scale: 1.1.0 => 1.3.0 - @visx/shape: 1.2.0 => 1.3.0 - @visx/stats: 1.1.0 => 1.3.0 - @visx/text: 1.1.0 => 1.3.0 - @visx/threshold: 1.2.0 => 1.3.0 - @visx/tooltip: 1.1.0 => 1.3.0 - @visx/visx: 1.2.0 => 1.3.0 - @visx/xychart: 1.2.0 => 1.3.0 - @visx/zoom: 1.0.0 => 1.3.0 ``` # v1.2.0 #### :rocket: Enhancements - [brush] expose updateBrush method via innerRef [#934](https://github.com/airbnb/visx/pull/934), closes [#577](https://github.com/airbnb/visx/pull/577) - [annotation] add new Annotation components (Annotation, EditableAnnotation, Label, CircleSubject, LineSubject) [#907](https://github.com/airbnb/visx/pull/907) - [drag] add useDrag hook [#902](https://github.com/airbnb/visx/pull/902) - [drag] allow x,y,dx,dy overrides in useDrag + Drag [#906](https://github.com/airbnb/visx/pull/906), closes [#905](https://github.com/airbnb/visx/pull/905) - [annotation] add canEditSubject, canEditLabel to EditableAnnotation [#919](https://github.com/airbnb/visx/pull/919) - [xychart (unpublished)] make DataProvider optional [#913](https://github.com/airbnb/visx/pull/913) - [xychart (unpublished)] expose curve types in BaseAreaSeries, BaseLineSeries [#899](https://github.com/airbnb/visx/pull/899) - [xychart (unpublished)] handle rendering + tweening missing values [#898](https://github.com/airbnb/visx/pull/898) - [xychart (unpublished)] add (Animated)GlyphSeries [#885](https://github.com/airbnb/visx/pull/885) - [xychart (unpublished)] add AreaSeries + AnimatedAreaSeries [#878](https://github.com/airbnb/visx/pull/878) - [xychart (unpublished)] add AnimatedLineSeries [#874](https://github.com/airbnb/visx/pull/874) - [xychart (unpublished)] add Animated(BarSeries, BarStack, BarGroup) [#873](https://github.com/airbnb/visx/pull/873) #### :bug: Bug Fix - [shape] conditionally render Arc without data [#937](https://github.com/airbnb/visx/pull/937) ### :memo: Documentation - [demo/annotation] add annotation demo [#909](https://github.com/airbnb/visx/pull/909) - [demo] visx rebrand, move to github pages [#890](https://github.com/airbnb/visx/pull/890), fixes [#850](https://github.com/airbnb/visx/pull/850) [#861](https://github.com/airbnb/visx/pull/861) - [in the wild] add tokenizedbtc [#931](https://github.com/airbnb/visx/pull/931) ### :house: Internal - [deps] next@9.5.4 [#915](https://github.com/airbnb/visx/pull/915), [#916](https://github.com/airbnb/visx/pull/916) - [ci] remove .travis.yml [#891](https://github.com/airbnb/visx/pull/891) - [xychart (unpublished)] add Annotation tests [#912](https://github.com/airbnb/visx/pull/912) - [xychart (unpublished)] add missing data tests [#900](https://github.com/airbnb/visx/pull/900) #### :trophy: Contributors - [peterwiebe](https://github.com/peterwiebe) - [sakulstra](https://github.com/sakulstra) - [hshoff](https://github.com/hshoff) - [williaster](https://github.com/williaster) ``` Changes: - @visx/annotation: 1.1.0 => 1.2.0 - @visx/axis: 1.1.0 => 1.2.0 - @visx/brush: 1.1.0 => 1.2.0 - @visx/demo: 1.1.0 => 1.2.0 - @visx/drag: 1.0.0 => 1.2.0 - @visx/grid: 1.1.0 => 1.2.0 - @visx/marker: 1.1.0 => 1.2.0 - @visx/react-spring: 1.1.0 => 1.2.0 - @visx/shape: 1.1.0 => 1.2.0 - @visx/threshold: 1.1.0 => 1.2.0 - @visx/visx: 1.1.0 => 1.2.0 - @visx/xychart: 1.1.0 => 1.2.0 (private) ``` # v1.1.0 #### :rocket: Enhancements - [scale] bump `@types/d3-scale` to `^3.1.0` [#856](https://github.com/airbnb/visx/pull/856) closes [#855](https://github.com/airbnb/visx/pull/855) - [shape] set `Line` shapeRendering to `crispEdges` if rectilinear [#840](https://github.com/airbnb/visx/pull/840) - [network] apply fill & radius to DefaultNode [#859](https://github.com/airbnb/visx/pull/859) - [tooltip] add `applyPositionStyle` prop so users don't have to set absolute positioning when `unstyled=true` [#857](https://github.com/airbnb/visx/pull/857) - [responsive] add `initialWidth` and `initialHeight` to `withParentSize` [#836](https://github.com/airbnb/visx/pull/836) closes [#554](https://github.com/airbnb/visx/pull/554) - [responsive] add `ignoreDimensions` prop to optimize re-renders [#834](https://github.com/airbnb/visx/pull/834) closes [#247](https://github.com/airbnb/visx/pull/247) - [xychart (unpublished)] add BarSeries [#808](https://github.com/airbnb/visx/pull/808) - [xychart (unpublished)] add BarGroup [#870](https://github.com/airbnb/visx/pull/870) [#871](https://github.com/airbnb/visx/pull/871) - [xychart (unpublished)] add BarStack [#865](https://github.com/airbnb/visx/pull/865) [#866](https://github.com/airbnb/visx/pull/866) - [xychart (unpublished)] add EventEmitterContext, TooltipContext [#825](https://github.com/airbnb/visx/pull/825) - [xychart (unpublished)] add Tooltip [#852](https://github.com/airbnb/visx/pull/852) #### :bug: Bug Fix - [tooltip] fix `TooltipWithBounds` overlowing its parent on small screens [#837](https://github.com/airbnb/visx/pull/837) closes [#466](https://github.com/airbnb/visx/pull/466) - [tooltip] fix `TooltipWithBounds` positioning when `unstyled=true` [#828](https://github.com/airbnb/visx/pull/828) - [stats] don't throw when first and third quartile are equal [#841](https://github.com/airbnb/visx/pull/841) closes [#427](https://github.com/airbnb/visx/pull/427) - [stats] update min/max to handle no outliers case [#853](https://github.com/airbnb/visx/pull/853) closes [#851](https://github.com/airbnb/visx/pull/851) - [text] render 0 as number [#814](https://github.com/airbnb/visx/pull/814) fixes [#813](https://github.com/airbnb/visx/pull/813) - [shape] render LinkHorizontalStep horizontally not vertically [#847](https://github.com/airbnb/visx/pull/847) closes [#820](https://github.com/airbnb/visx/pull/820) - [axis] fix `tickLabelProps` when `hideZero=true` [#818](https://github.com/airbnb/visx/pull/818) fixes [#815](https://github.com/airbnb/visx/pull/815) - [demo/areas] handle non-zero margins [#877](https://github.com/airbnb/visx/pull/877) #### :house: Internal - [responsive] refactor `ParentSize` to function component [#834](https://github.com/airbnb/visx/pull/834) - [text] improve test coverage [#833](https://github.com/airbnb/visx/pull/833) - [pattern] remove code duplication [#838](https://github.com/airbnb/visx/pull/838) #### :memo: Documentation - [in the wild] add Wall Street Journal: Americans Familiarize Themselves with the Word ‘Forbearance’ [#843](https://github.com/airbnb/visx/pull/843) - [in the wild] add dollar-to-food-emoji [#860](https://github.com/airbnb/visx/pull/860) - [in the wild] remove deadlinks, add Taiwan Real-time Air Quality Index [#867](https://github.com/airbnb/visx/pull/867) - [project readme] fix typos [#826](https://github.com/airbnb/visx/pull/826) #### :trophy: Contributors - [birjolaxew](https://github.com/birjolaxew) - [wyze](https://github.com/wyze) - [shannonrothe](https://github.com/shannonrothe) - [anastasiia-gontarieva](https://github.com/anastasiia-gontarieva) - [kmiyashiro](https://github.com/kmiyashiro) - [LethalPants](https://github.com/LethalPants) - [rayshan](https://github.com/rayshan) - [kanhegaonkarsaurabh](https://github.com/kanhegaonkarsaurabh) - [tombarton](https://github.com/tombarton) - [gmlwo530](https://github.com/gmlwo530) - [ArvinH](https://github.com/ArvinH) - [singhanurag05](https://github.com/singhanurag05) - [androiddevnotes](https://github.com/androiddevnotes) - [ilariaventurini](https://github.com/ilariaventurini) - [kristw](https://github.com/kristw) - [hshoff](https://github.com/hshoff) - [williaster](https://github.com/williaster) ```Changes: Changes: - @visx/annotation: 1.0.0 => 1.1.0 - @visx/axis: 1.0.0 => 1.1.0 - @visx/brush: 1.0.0 => 1.1.0 - @visx/demo: 1.0.0 => 1.1.0 - @visx/grid: 1.0.0 => 1.1.0 - @visx/legend: 1.0.0 => 1.1.0 - @visx/marker: 1.0.0 => 1.1.0 - @visx/network: 1.0.0 => 1.1.0 - @visx/pattern: 1.0.0 => 1.1.0 - @visx/react-spring: 1.0.0 => 1.1.0 - @visx/responsive: 1.0.0 => 1.1.0 - @visx/scale: 1.0.0 => 1.1.0 - @visx/shape: 1.0.0 => 1.1.0 - @visx/stats: 1.0.0 => 1.1.0 - @visx/text: 1.0.0 => 1.1.0 - @visx/threshold: 1.0.0 => 1.1.0 - @visx/tooltip: 1.0.0 => 1.1.0 - @visx/visx: 1.0.0 => 1.1.0 - @visx/xychart: 1.0.0 => 1.1.0 (private) ``` # v1.0.0 ### :house: Internal - project renamed from `vx` => `visx`, migrated from `hshoff/vx` => `airbnb/visx` [#802](https://github.com/airbnb/visx/issues/802), [#803](https://github.com/airbnb/visx/issues/803) ### :memo: Documentation - Demo site migrated from https://vx-demo.now.sh/ => https://airbnb.io/visx [#804](https://github.com/airbnb/visx/issues/804) - Demo site re-brand ### :boom: Breaking Changes - [all packages] `vx-...` `className`s are renamed to `visx-...` [#803](https://github.com/airbnb/visx/issues/803) - [demo] existing codesandbox links which reference `vx-demo` directory structure will break [#803](https://github.com/airbnb/visx/issues/803) - [tooltip] `className="vx-tooltip-portal"` => `visx-tooltip` (so as not to be confused with the new `TooltipInPortal`) [#803](https://github.com/airbnb/visx/issues/803) #### :bug: Bug Fix - [demo] fix `/axis` codesandbox dependency [#799](https://github.com/airbnb/visx/pull/799) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) - [williaster](https://github.com/williaster) ```Changes: @vx/*@0.0.199 => @visx/*@1.0.0 ``` # v0.0.199 ### :boom: Breaking Changes - [scale] Deprecate `rangeRound` field in the input of `scaleLinear()`, `scaleLog()`, `scalePoint()`, `scalePower()`, `scaleSqrt()`, `scaleTime()` and `scaleUtc()`. [#766](https://github.com/hshoff/vx/pull/766) Instead of ```ts scaleLinear({ rangeRound: xxx }) ``` Do this instead ```ts scaleLinear({ range: xxx, round: true }); ``` - [scale] Deprecate `ticks` and `tickFormat` in the input of `scaleQuantize()`. It was not really doing anything anyway as both `scale.ticks()` and `scale.tickFormat()` do not mutate the scale. [#766](https://github.com/hshoff/vx/pull/766) - [scale] Remove `scale.type` field that was attached to the d3 scales. [#766](https://github.com/hshoff/vx/pull/766) - [grid] `@vx/grid` components now accept D3 Scale as generic type instead of `ScaleInput`. Developers should not expect to specify this generic type as it can be inferred from the passed scale. [#775](https://github.com/hshoff/vx/pull/775) - [grid] Renames `GridColumnProps` => `GridColumnsProps` (+`s`) to match `GridRowsProps`. [#787](https://github.com/hshoff/vx/pull/787) - [legend] Update generic types for legend components. [#777](https://github.com/hshoff/vx/pull/777) - [marker] remove old [``](https://github.com/hshoff/vx/blob/v0.0.198/packages/vx-marker/src/markers/Marker.tsx#L72-L98) implementation of a Line and some Text. [#783](https://github.com/hshoff/vx/pull/783) ### :rocket: Enhancements - [scale] new functions & New fields for the scale configs. [#766](https://github.com/hshoff/vx/pull/766) - [scale] add meta scale types. [#770](https://github.com/hshoff/vx/pull/770) - [scale] Add fallback overload for createScale. [#791](https://github.com/hshoff/vx/pull/791) - [scale] add new types: `AnyD3Scale`, `InferD3ScaleOutput`, `InferD3ScaleDiscreteInput`, `InferD3ScaleThresholdInput` and `ScaleInput`. Add new utilities functions: `getTicks`, `coerceNumber` and `toString`. [#773](https://github.com/hshoff/vx/pull/773) - [scale] add reverse field to scale config. This will reverse the range. Useful when the ranges are programmatically supplied to the scale factories such as in XYChart and developers want easy way to reverse the dynamic range. [#780](https://github.com/hshoff/vx/pull/780) - [legend] exports `@vx/legend` shapes from the `index` for convenience / non-deep imports. [#772](https://github.com/hshoff/vx/pull/772) - [grid] adds `children` prop to `GridRows` + `GridColumns` to support animated rendering. [#787](https://github.com/hshoff/vx/pull/787) - [shape] add `` shape. [#774](https://github.com/hshoff/vx/pull/774) - [shape] Create new factory functions for `d3-shape` and export as part of `vx/shape` (`arc`, `area`, `line`, `pie`, `radialLine`), similar to `vx/scale` has factories for `d3-scale`. [#776](https://github.com/hshoff/vx/pull/776) - [shape] add `SplitLinePath` component to `@vx/shape` that allows you to create a line path split into multiple smaller line paths that can be styled independently. [#778](https://github.com/hshoff/vx/pull/778) - [axis] consistent and compatible typings across `vx/scale` and `vx/axis`. More fields passed to child render props of `Axis`. [#773](https://github.com/hshoff/vx/pull/773) - [axis] `Axis` is refactored to accept a `ticksComponent` which allows us to animate them. [#779](https://github.com/hshoff/vx/pull/779) - [axis] adds a third argument `values` to `tickFormat(value, index, values)` so that format logic can more easily leverage all ticks (because `numTicks` is approximate, lib consumers do not know how many tick values exist _a priori_). [#779](https://github.com/hshoff/vx/pull/779) - [marker] add new [``](https://github.com/hshoff/vx/compare/harry-svg-marker?expand=1#diff-7a829322360dc21940b608c760087e29R32-R42) that matches actual SVG [``](https://github.com/hshoff/vx/blob/v0.0.198/packages/vx-marker/src/markers/Marker.tsx#L72-L98). [#783](https://github.com/hshoff/vx/pull/783) - [marker] add ``, ``, ``, ``, ``. [#783](https://github.com/hshoff/vx/pull/783) - [react-spring] adds a new package `@vx/react-spring` that includes `react-spring` as a `peerDep` and can be a home for things that depend on `react-spring`. [#779](https://github.com/hshoff/vx/pull/779) - [react-spring] Adds an `` and `` in `@vx/react-spring`. [#779](https://github.com/hshoff/vx/pull/779) - [react-spring] updates the `vx-demo/axis` demo to use ``. [#779](https://github.com/hshoff/vx/pull/779) - [react-spring] adds `AnimatedGridRows` + `AnimatedGridColumns`. [#787](https://github.com/hshoff/vx/pull/787) - [react-spring] modularizes `AnimatedTicks/useAnimatedTicksConfig` to `spring-configs/useAnimatedLineTransitionConfig` so it can power both animated tick + grid lines. [#787](https://github.com/hshoff/vx/pull/787) - [react-spring] adds `animationTrajectory=outside | inside | min | max` to `AnimatedAxis` and `AnimatedGridRows/Columns`. [#787](https://github.com/hshoff/vx/pull/787) #### :bug: Bug Fix - [responsive] exclude `enableDebounceLeadingCall` prop being passed into `div`. [#763](https://github.com/hshoff/vx/pull/763) - [responsive] fix prettier format. [#764](https://github.com/hshoff/vx/pull/764) - [text] fix warning for NaN or invalid values are passed as x or y. [#790](https://github.com/hshoff/vx/pull/790) ### :memo: Documentation - [scale] Improve documentation of the fields in scale configs. [#766](https://github.com/hshoff/vx/pull/766) ### :house: Internal - [scale] rewrite individual scale factory with composition of shared operators. This ensure order of operators and simplified code. [#766](https://github.com/hshoff/vx/pull/766) - [scale] add 100+ unit tests to make this `vx/scale` package has 100% test coverage. [#766](https://github.com/hshoff/vx/pull/766) - [stats] use updated @vx/scale types. [#770](https://github.com/hshoff/vx/pull/770) - [legend] extract defaultDomain helper. [#777](https://github.com/hshoff/vx/pull/777) - [demo] updated curves demo to use new ``. [#783](https://github.com/hshoff/vx/pull/783) - [demo] updates the `/axis` demo to include `AnimatedGrid*` and a `animationTrajectory` config. [#787](https://github.com/hshoff/vx/pull/787) - [jest] ignore vx-demo, vx-vx code coverage. [#784](https://github.com/hshoff/vx/pull/784) - [annotation] 100% coverage. [#784](https://github.com/hshoff/vx/pull/784) - [bounds] 100% coverage. [#784](https://github.com/hshoff/vx/pull/784) - [brush] add utils test. [#786](https://github.com/hshoff/vx/pull/786) - [event] add tests. [#786](https://github.com/hshoff/vx/pull/786) - [test] add tests for vx/grid, vx/zoom, vx/threshold, vx/shape. [#793](https://github.com/hshoff/vx/pull/793) #### :trophy: Contributors - [robinsoncol](https://github.com/robinsoncol) - [kristw](https://github.com/kristw) - [williaster](https://github.com/williaster) - [hshoff](https://github.com/hshoff) ```Changes: - @vx/annotation: 0.0.198 => 0.0.199 - @vx/axis: 0.0.198 => 0.0.199 - @vx/bounds: 0.0.198 => 0.0.199 - @vx/brush: 0.0.198 => 0.0.199 - @vx/chord: 0.0.198 => 0.0.199 - @vx/clip-path: 0.0.198 => 0.0.199 - @vx/curve: 0.0.198 => 0.0.199 - @vx/demo: 0.0.198 => 0.0.199 - @vx/drag: 0.0.198 => 0.0.199 - @vx/event: 0.0.198 => 0.0.199 - @vx/geo: 0.0.198 => 0.0.199 - @vx/glyph: 0.0.198 => 0.0.199 - @vx/gradient: 0.0.198 => 0.0.199 - @vx/grid: 0.0.198 => 0.0.199 - @vx/group: 0.0.198 => 0.0.199 - @vx/heatmap: 0.0.198 => 0.0.199 - @vx/hierarchy: 0.0.198 => 0.0.199 - @vx/legend: 0.0.198 => 0.0.199 - @vx/marker: 0.0.198 => 0.0.199 - @vx/mock-data: 0.0.198 => 0.0.199 - @vx/network: 0.0.198 => 0.0.199 - @vx/pattern: 0.0.198 => 0.0.199 - @vx/point: 0.0.198 => 0.0.199 - @vx/react-spring: 0.0.198 => 0.0.199 - @vx/responsive: 0.0.198 => 0.0.199 - @vx/scale: 0.0.198 => 0.0.199 - @vx/shape: 0.0.198 => 0.0.199 - @vx/stats: 0.0.198 => 0.0.199 - @vx/text: 0.0.198 => 0.0.199 - @vx/threshold: 0.0.198 => 0.0.199 - @vx/tooltip: 0.0.198 => 0.0.199 - @vx/voronoi: 0.0.198 => 0.0.199 - @vx/vx: 0.0.198 => 0.0.199 - @vx/xychart: 0.0.0 => 0.0.199 (private) - @vx/zoom: 0.0.198 => 0.0.199 ``` # v0.0.198 #### :rocket: Enhancements - feat(tooltip): add Portal and useTooltipInPortal [#756](https://github.com/hshoff/vx/pull/756) - feat(responsive): add leading option to resize debounce [#754](https://github.com/hshoff/vx/pull/754) - feat(axis): use numTicks when falling back on scale.domain [#752](https://github.com/hshoff/vx/pull/752) - feat(pattern): add diagonal right to left pattern [#744](https://github.com/hshoff/vx/pull/744) - feat(legend): add Line shape, legendLabelProps, and more props in renderShape [#749](https://github.com/hshoff/vx/pull/749) #### 💥 Breaking Changes - feat(responsive): resize debounce now defaults to true which will result in an additional render [#754](https://github.com/hshoff/vx/pull/754) - feat(tooltip): add `offsetLeft/Top` to `TooltipProps`, making `TooltipProps === TooltipWithBoundsProps`, adds additional `10px` of padding to `Tooltip` `left/top` [#756](https://github.com/hshoff/vx/pull/756) #### :bug: Bug Fix - fix(responsive): remove debounced calls after unmounnt [#558](https://github.com/hshoff/vx/pull/558) #### :house: Internal - (demo): add static export deploys [#741](https://github.com/hshoff/vx/pull/741) #### :trophy: Contributors - [claisne](https://github.com/claisne) - [dennisja](https://github.com/dennisja) - [hshoff](https://github.com/hshoff) - [Pringels](https://github.com/Pringels) - [williaster](https://github.com/williaster) ``` Changes: - @vx/annotation: 0.0.197 => 0.0.198 - @vx/axis: 0.0.197 => 0.0.198 - @vx/bounds: 0.0.197 => 0.0.198 - @vx/brush: 0.0.197 => 0.0.198 - @vx/chord: 0.0.197 => 0.0.198 - @vx/clip-path: 0.0.197 => 0.0.198 - @vx/curve: 0.0.197 => 0.0.198 - @vx/demo: 0.0.197 => 0.0.198 - @vx/drag: 0.0.197 => 0.0.198 - @vx/event: 0.0.197 => 0.0.198 - @vx/geo: 0.0.197 => 0.0.198 - @vx/glyph: 0.0.197 => 0.0.198 - @vx/gradient: 0.0.197 => 0.0.198 - @vx/grid: 0.0.197 => 0.0.198 - @vx/group: 0.0.197 => 0.0.198 - @vx/heatmap: 0.0.197 => 0.0.198 - @vx/hierarchy: 0.0.197 => 0.0.198 - @vx/legend: 0.0.197 => 0.0.198 - @vx/marker: 0.0.197 => 0.0.198 - @vx/mock-data: 0.0.197 => 0.0.198 - @vx/network: 0.0.197 => 0.0.198 - @vx/pattern: 0.0.197 => 0.0.198 - @vx/point: 0.0.197 => 0.0.198 - @vx/responsive: 0.0.197 => 0.0.198 - @vx/scale: 0.0.197 => 0.0.198 - @vx/shape: 0.0.197 => 0.0.198 - @vx/stats: 0.0.197 => 0.0.198 - @vx/text: 0.0.197 => 0.0.198 - @vx/threshold: 0.0.197 => 0.0.198 - @vx/tooltip: 0.0.197 => 0.0.198 - @vx/voronoi: 0.0.197 => 0.0.198 - @vx/vx: 0.0.197 => 0.0.198 - @vx/zoom: 0.0.197 => 0.0.198 ``` # v0.0.197 #### :rocket: Enhancements - feat(tooltip): add unstyled prop to TooltipWithBounds [#721](https://github.com/hshoff/vx/pull/721) - perf(tooltip): use useCallback in useTooltip [#668](https://github.com/hshoff/vx/pull/668) #### :bug: Bug Fix - fix(zoom): fix zoom.dragMove on touchmove event y-coord [#725](https://github.com/hshoff/vx/pull/725) #### :memo: Documentation - feat(demo): new documentation, codesandbox examples [#732](https://github.com/hshoff/vx/pull/732) [#731](https://github.com/hshoff/vx/pull/731) [#730](https://github.com/hshoff/vx/pull/730) [#729](https://github.com/hshoff/vx/pull/729) [#727](https://github.com/hshoff/vx/pull/727) [#720](https://github.com/hshoff/vx/pull/720)[#720](https://github.com/hshoff/vx/pull/720) [#719](https://github.com/hshoff/vx/pull/719) [#718](https://github.com/hshoff/vx/pull/718) [#717](https://github.com/hshoff/vx/pull/717) [#716](https://github.com/hshoff/vx/pull/716) [#715](https://github.com/hshoff/vx/pull/715) [#714](https://github.com/hshoff/vx/pull/714) [#713](https://github.com/hshoff/vx/pull/713) [#712](https://github.com/hshoff/vx/pull/712) [#711](https://github.com/hshoff/vx/pull/711) [#710](https://github.com/hshoff/vx/pull/710) [#709](https://github.com/hshoff/vx/pull/709) [#708](https://github.com/hshoff/vx/pull/708) [#707](https://github.com/hshoff/vx/pull/707) [#706](https://github.com/hshoff/vx/pull/706) [#705](https://github.com/hshoff/vx/pull/705) [#704](https://github.com/hshoff/vx/pull/704) [#703](https://github.com/hshoff/vx/pull/703) [#702](https://github.com/hshoff/vx/pull/702) [#701](https://github.com/hshoff/vx/pull/701) [#700](https://github.com/hshoff/vx/pull/700) [#699](https://github.com/hshoff/vx/pull/699) [#698](https://github.com/hshoff/vx/pull/698) [#697](https://github.com/hshoff/vx/pull/697) [#696](https://github.com/hshoff/vx/pull/696) [#695](https://github.com/hshoff/vx/pull/695) [#694](https://github.com/hshoff/vx/pull/694) [#693](https://github.com/hshoff/vx/pull/693) [#692](https://github.com/hshoff/vx/pull/692) [#691](https://github.com/hshoff/vx/pull/691) [#690](https://github.com/hshoff/vx/pull/690) [#689](https://github.com/hshoff/vx/pull/689) [#688](https://github.com/hshoff/vx/pull/688) [#687](https://github.com/hshoff/vx/pull/687) [#686](https://github.com/hshoff/vx/pull/686) [#685](https://github.com/hshoff/vx/pull/685) [#684](https://github.com/hshoff/vx/pull/684) [#683](https://github.com/hshoff/vx/pull/683) [#682](https://github.com/hshoff/vx/pull/682) [#681](https://github.com/hshoff/vx/pull/681) [#680](https://github.com/hshoff/vx/pull/680) [#679](https://github.com/hshoff/vx/pull/679) [#678](https://github.com/hshoff/vx/pull/678) [#677](https://github.com/hshoff/vx/pull/677) [#676](https://github.com/hshoff/vx/pull/676) [#675](https://github.com/hshoff/vx/pull/675) [#674](https://github.com/hshoff/vx/pull/674) [#673](https://github.com/hshoff/vx/pull/673) [#672](https://github.com/hshoff/vx/pull/672) [#671](https://github.com/hshoff/vx/pull/671) [#670](https://github.com/hshoff/vx/pull/670) [#679](https://github.com/hshoff/vx/pull/669) #### :house: Internal - deps(root): bump yarn.lock, add @types/webpack [#740](https://github.com/hshoff/vx/pull/740) - fix(demo/package.json): lock next.js version [#740](https://github.com/hshoff/vx/pull/740) - fix(demo): prettier config updated so lots of minor style updates [#740](https://github.com/hshoff/vx/pull/740) - fix(demo/next.config.js): fix invalid webpack config error [#740](https://github.com/hshoff/vx/pull/740) - fix(demo/pages): routes are case sensitive (`/Docs` => `/docs`) [#740](https://github.com/hshoff/vx/pull/740) - feat(demo/gallery): gallery filter persists on query param `?pkg` instead of local state [#740](https://github.com/hshoff/vx/pull/740) #### :trophy: Contributors - [dennisja](https://github.com/dennisja) - [vodoleev-vladislav](https://github.com/vodoleev-vladislav) - [williaster](https://github.com/williaster) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.196 => 0.0.197 - @vx/axis: 0.0.196 => 0.0.197 - @vx/bounds: 0.0.196 => 0.0.197 - @vx/brush: 0.0.196 => 0.0.197 - @vx/chord: 0.0.196 => 0.0.197 - @vx/clip-path: 0.0.196 => 0.0.197 - @vx/curve: 0.0.196 => 0.0.197 - @vx/demo: 0.0.196 => 0.0.197 - @vx/drag: 0.0.196 => 0.0.197 - @vx/event: 0.0.196 => 0.0.197 - @vx/geo: 0.0.196 => 0.0.197 - @vx/glyph: 0.0.196 => 0.0.197 - @vx/gradient: 0.0.196 => 0.0.197 - @vx/grid: 0.0.196 => 0.0.197 - @vx/group: 0.0.196 => 0.0.197 - @vx/heatmap: 0.0.196 => 0.0.197 - @vx/hierarchy: 0.0.196 => 0.0.197 - @vx/legend: 0.0.196 => 0.0.197 - @vx/marker: 0.0.196 => 0.0.197 - @vx/mock-data: 0.0.196 => 0.0.197 - @vx/network: 0.0.196 => 0.0.197 - @vx/pattern: 0.0.196 => 0.0.197 - @vx/point: 0.0.196 => 0.0.197 - @vx/responsive: 0.0.196 => 0.0.197 - @vx/scale: 0.0.196 => 0.0.197 - @vx/shape: 0.0.196 => 0.0.197 - @vx/stats: 0.0.196 => 0.0.197 - @vx/text: 0.0.196 => 0.0.197 - @vx/threshold: 0.0.196 => 0.0.197 - @vx/tooltip: 0.0.196 => 0.0.197 - @vx/voronoi: 0.0.196 => 0.0.197 - @vx/vx: 0.0.196 => 0.0.197 - @vx/zoom: 0.0.16 => 0.0.19 ``` # v0.0.196 #### :trophy: Contributors - [dennisja](https://github.com/dennisja) - [maryschmidt](https://github.com/maryschmidt) - [williaster](https://github.com/williaster) #### :rocket: Enhancements - [brush] Add initialBrushPosition [#618](https://github.com/hshoff/vx/pull/618), fix in [#667](https://github.com/hshoff/vx/pull/667) #### 💥 Breaking Changes - [tooltip] Add ability to remove tooltip default styles [#666](https://github.com/hshoff/vx/pull/666). If styles were applied previously, you will also need to spread `defaultStyles`: ```jsx // before import { Tooltip } from '@vx/tooltip'; ... // after import { Tooltip, defaultStyles } from '@vx/tooltip'; ... ``` #### :memo: Documentation - [demo] Several demos refactored to link out to codesandbox ``` Changes: - @vx/annotation: 0.0.195 => 0.0.196 - @vx/axis: 0.0.195 => 0.0.196 - @vx/bounds: 0.0.195 => 0.0.196 - @vx/brush: 0.0.195 => 0.0.196 - @vx/chord: 0.0.195 => 0.0.196 - @vx/clip-path: 0.0.195 => 0.0.196 - @vx/curve: 0.0.195 => 0.0.196 - @vx/demo: 0.0.195 => 0.0.196 - @vx/drag: 0.0.195 => 0.0.196 - @vx/event: 0.0.195 => 0.0.196 - @vx/geo: 0.0.195 => 0.0.196 - @vx/glyph: 0.0.195 => 0.0.196 - @vx/gradient: 0.0.195 => 0.0.196 - @vx/grid: 0.0.195 => 0.0.196 - @vx/group: 0.0.195 => 0.0.196 - @vx/heatmap: 0.0.195 => 0.0.196 - @vx/hierarchy: 0.0.195 => 0.0.196 - @vx/legend: 0.0.195 => 0.0.196 - @vx/marker: 0.0.195 => 0.0.196 - @vx/mock-data: 0.0.195 => 0.0.196 - @vx/network: 0.0.195 => 0.0.196 - @vx/pattern: 0.0.195 => 0.0.196 - @vx/point: 0.0.195 => 0.0.196 - @vx/responsive: 0.0.195 => 0.0.196 - @vx/scale: 0.0.195 => 0.0.196 - @vx/shape: 0.0.195 => 0.0.196 - @vx/stats: 0.0.195 => 0.0.196 - @vx/text: 0.0.195 => 0.0.196 - @vx/threshold: 0.0.195 => 0.0.196 - @vx/tooltip: 0.0.195 => 0.0.196 - @vx/voronoi: 0.0.195 => 0.0.196 - @vx/vx: 0.0.195 => 0.0.196 - @vx/zoom: 0.0.195 => 0.0.196 ``` # v0.0.195 #### :trophy: Contributors - [ptmx](https://github.com/ptmx) PR [#631](https://github.com/hshoff/vx/pull/631) #### :rocket: Enhancements - [tooltip] `useTooltip` hook added #### :boom: Breaking Changes - [tooltip] internally introduces `useState`, requires bumping the `peerDep` for react to `^16.8.0-0` #### :memo: Documentation - [tooltip] add `useState` to readme, add advice on HOC vs hooks - [demo] Rewrite the `BarStack` demo to use `useTooltip` instead of `withTooltip` ``` Changes: - @vx/annotation: 0.0.194 => 0.0.195 - @vx/axis: 0.0.194 => 0.0.195 - @vx/bounds: 0.0.194 => 0.0.195 - @vx/brush: 0.0.194 => 0.0.195 - @vx/chord: 0.0.194 => 0.0.195 - @vx/clip-path: 0.0.194 => 0.0.195 - @vx/curve: 0.0.194 => 0.0.195 - @vx/demo: 0.0.194 => 0.0.195 - @vx/drag: 0.0.194 => 0.0.195 - @vx/event: 0.0.194 => 0.0.195 - @vx/geo: 0.0.194 => 0.0.195 - @vx/glyph: 0.0.194 => 0.0.195 - @vx/gradient: 0.0.194 => 0.0.195 - @vx/grid: 0.0.194 => 0.0.195 - @vx/group: 0.0.194 => 0.0.195 - @vx/heatmap: 0.0.194 => 0.0.195 - @vx/hierarchy: 0.0.194 => 0.0.195 - @vx/legend: 0.0.194 => 0.0.195 - @vx/marker: 0.0.194 => 0.0.195 - @vx/mock-data: 0.0.194 => 0.0.195 - @vx/network: 0.0.194 => 0.0.195 - @vx/pattern: 0.0.194 => 0.0.195 - @vx/point: 0.0.194 => 0.0.195 - @vx/responsive: 0.0.194 => 0.0.195 - @vx/scale: 0.0.194 => 0.0.195 - @vx/shape: 0.0.194 => 0.0.195 - @vx/stats: 0.0.194 => 0.0.195 - @vx/text: 0.0.194 => 0.0.195 - @vx/threshold: 0.0.194 => 0.0.195 - @vx/tooltip: 0.0.194 => 0.0.195 - @vx/voronoi: 0.0.194 => 0.0.195 - @vx/vx: 0.0.194 => 0.0.195 - @vx/zoom: 0.0.194 => 0.0.195 ``` # v0.0.194 #### :trophy: Contributors - [ptmx](https://github.com/ptmx) - [dennisja](https://github.com/dennisja) - [gillesdemey](https://github.com/gillesdemey) - [mitchellwarr](https://github.com/mitchellwarr) - [williaster](https://github.com/williaster) #### :rocket: Enhancements - [brush] Add resetOnEnd prop [#614](https://github.com/hshoff/vx/pull/614) - [tooltip] Add hook for custom Tooltip container to support SVG tooltips [#610](https://github.com/hshoff/vx/pull/610) - [scale] Add sqrtScale [#615](https://github.com/hshoff/vx/pull/615) #### :bug: Bug Fix - [zoom] Don't use stale zoom constraint prop [#578](https://github.com/hshoff/vx/pull/578) - [responsive] Don't render withParentSize base component until size is known [#621](https://github.com/hshoff/vx/pull/621) ``` Changes: - @vx/annotation: 0.0.193 => 0.0.194 - @vx/axis: 0.0.193 => 0.0.194 - @vx/bounds: 0.0.193 => 0.0.194 - @vx/brush: 0.0.193 => 0.0.194 - @vx/chord: 0.0.193 => 0.0.194 - @vx/clip-path: 0.0.193 => 0.0.194 - @vx/curve: 0.0.193 => 0.0.194 - @vx/demo: 0.0.193 => 0.0.194 - @vx/drag: 0.0.193 => 0.0.194 - @vx/event: 0.0.193 => 0.0.194 - @vx/geo: 0.0.193 => 0.0.194 - @vx/glyph: 0.0.193 => 0.0.194 - @vx/gradient: 0.0.193 => 0.0.194 - @vx/grid: 0.0.193 => 0.0.194 - @vx/group: 0.0.193 => 0.0.194 - @vx/heatmap: 0.0.193 => 0.0.194 - @vx/hierarchy: 0.0.193 => 0.0.194 - @vx/legend: 0.0.193 => 0.0.194 - @vx/marker: 0.0.193 => 0.0.194 - @vx/mock-data: 0.0.193 => 0.0.194 - @vx/network: 0.0.193 => 0.0.194 - @vx/pattern: 0.0.193 => 0.0.194 - @vx/point: 0.0.193 => 0.0.194 - @vx/responsive: 0.0.193 => 0.0.194 - @vx/scale: 0.0.193 => 0.0.194 - @vx/shape: 0.0.193 => 0.0.194 - @vx/stats: 0.0.193 => 0.0.194 - @vx/text: 0.0.193 => 0.0.194 - @vx/threshold: 0.0.193 => 0.0.194 - @vx/tooltip: 0.0.193 => 0.0.194 - @vx/voronoi: 0.0.193 => 0.0.194 - @vx/vx: 0.0.193 => 0.0.194 - @vx/zoom: 0.0.193 => 0.0.194 ``` # v0.0.193 See the [TypeScript project](https://github.com/hshoff/vx/projects/2) for a full list of issues + PRs. #### :trophy: Contributors - [williaster](https://github.com/williaster) - [hshoff](https://github.com/hshoff) - [Rudeg](https://github.com/Rudeg) - [diagramatics](https://github.com/diagramatics) - [geekplux](https://github.com/geekplux) - [dennisja](https://github.com/dennisja) #### :rocket: Enhancements - [@vx/*] - **all** packages re-written in TypeScript and export types under `lib/index.d.ts` - Many misc bug fixes with improved type safety, most `propTypes` are likely stricter now - [brush] `@vx/brush` now exports a working `Brush` component :tada: - [demo] - all gallery demos re-written with `react` `hooks` + types - new `@vx/brush` demo is added #### :memo: Documentation - [@vx/*] **all** components in all packages now have full doc strings. *note*: these is not yet reflected on the docs site. #### :boom: Breaking Changes - [boxplot] `@vx/boxplot` deprecated in favor of `@vx/stats` [#561](https://github.com/hshoff/vx/pull/561) - [mock-data] `radius` and `distance` values in the `@vx/mock-data` `exoplanet` dataset were updated from strings to numbers to remove the need for consumers to coerce to numbers themselves [#579](https://github.com/hshoff/vx/pull/579) - [drag] [#499](https://github.com/hshoff/vx/pull/499) - now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` - Empty parent `` wrapper around Drag `children` was replaced with a `React.Fragment` which removes a DOM element. - [pattern] `PatternOrientation` is no longer the default export of `@vx/patterns/lib/constants` and is instead a named export. PatternOrientation is still used as the export name if importing from the index: `import { PatternOrientation } from '@vx/pattern'` [#503](https://github.com/hshoff/vx/pull/503) - [shape] [#507](https://github.com/hshoff/vx/pull/507) - now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` - the `Arc` `centroid` prop was removed as it was not functional (it was called as if it was an `arc.centroid()` configuration parameter, but in reality the `.centroid` method is for returning the centroid of a datum. - the `Area` component is no longer wrapped in an empty `` element - `order` and `offset` props for `Stack`, `BarStack`, `BarStackHorizontal`, and `AreaStack` previously supported `string`, `array`, or `function`s. Only the `string` prop was functional, and only the enumerated string presets are now allowed. - [voronoi] now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` [#512](https://github.com/hshoff/vx/pull/512) - [network] [#535](https://github.com/hshoff/vx/pull/535) - now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` - `` inner node wrapper `` element className changed to singular (vx-network-nodes => vx-network-node) and outer wrapper `` was replaced with a React.Fragment - `` inner link wrapper `` element className changed to singular (vx-network-links => vx-network-link) and outer wrapper `` was replaced with a React.Fragment - [glyph] [#518](https://github.com/hshoff/vx/pull/518) - now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` - (non-functional) `children` prop removed from `GlyphDot` component - [heatmap] now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` [#520](https://github.com/hshoff/vx/pull/520) - [hierarchy] now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` [#524](https://github.com/hshoff/vx/pull/524) - [threshold] makes the `Threshold` `id` prop required [#533](https://github.com/hshoff/vx/pull/533) - [geo] now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` [#537](https://github.com/hshoff/vx/pull/537) - [legend] [#551](https://github.com/hshoff/vx/pull/551) - now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` - the following directory structures were changed which will break deep imports: `src/legends/* => src/*` - [stats] [#570](https://github.com/hshoff/vx/pull/570) - now has a peerDep `react@^16.3` for `React.Fragment`, dropping support for `react@^15` - the following directory structures were changed which will break deep imports - `src/violinplot/ViolinPlot.jsx => src/ViolinPlot.tsx` - `src/boxplot/BoxPlot.jsx => src/BoxPlot.tsx` #### :house: Internal - add `TypeScript` build support to monorepo [#488](https://github.com/hshoff/vx/pull/488) - [text] Remove deprecated lifecycles used in Text [#576](https://github.com/hshoff/vx/pull/576) ``` Changes: - @vx/annotation: 0.0.192 => 0.0.193 - @vx/axis: 0.0.192 => 0.0.193 - @vx/bounds: 0.0.192 => 0.0.193 - @vx/brush: 0.0.192 => 0.0.193 - @vx/chord: 0.0.192 => 0.0.193 - @vx/clip-path: 0.0.192 => 0.0.193 - @vx/curve: 0.0.192 => 0.0.193 - @vx/demo: 0.0.192 => 0.0.193 - @vx/drag: 0.0.192 => 0.0.193 - @vx/event: 0.0.192 => 0.0.193 - @vx/geo: 0.0.192 => 0.0.193 - @vx/glyph: 0.0.192 => 0.0.193 - @vx/gradient: 0.0.192 => 0.0.193 - @vx/grid: 0.0.192 => 0.0.193 - @vx/group: 0.0.192 => 0.0.193 - @vx/heatmap: 0.0.192 => 0.0.193 - @vx/hierarchy: 0.0.192 => 0.0.193 - @vx/legend: 0.0.192 => 0.0.193 - @vx/marker: 0.0.192 => 0.0.193 - @vx/mock-data: 0.0.192 => 0.0.193 - @vx/network: 0.0.192 => 0.0.193 - @vx/pattern: 0.0.192 => 0.0.193 - @vx/point: 0.0.192 => 0.0.193 - @vx/responsive: 0.0.192 => 0.0.193 - @vx/scale: 0.0.192 => 0.0.193 - @vx/shape: 0.0.192 => 0.0.193 - @vx/stats: 0.0.192 => 0.0.193 - @vx/text: 0.0.192 => 0.0.193 - @vx/threshold: 0.0.192 => 0.0.193 - @vx/tooltip: 0.0.192 => 0.0.193 - @vx/voronoi: 0.0.192 => 0.0.193 - @vx/vx: 0.0.192 => 0.0.193 - @vx/zoom: 0.0.192 => 0.0.193 ``` # v0.0.192 See [#484](https://github.com/hshoff/vx/pull/484) for details. #### :boom: Breaking Changes - [breaking] Deprecate `build/` and `dist/`, use `lib/` and `esm/` instead - [breaking] Deprecate umd builds #### :house: Internal - use `babel` not `rollup` - use `yarn` not `npm` - this will enable `workspaces` so that we can push all config to the root instead of duplicating across every package as is the case now - Stricter linting rules (e.g., `.jsx` required for `React` files) #### :trophy: Contributors - [williaster](https://github.com/williaster) ``` Changes: - @vx/annotation: 0.0.190 => 0.0.192 - @vx/axis: 0.0.191 => 0.0.192 - @vx/bounds: 0.0.189 => 0.0.192 - @vx/boxplot: 0.0.190 => 0.0.192 - @vx/brush: 0.0.189 => 0.0.192 - @vx/chord: 0.0.189 => 0.0.192 - @vx/clip-path: 0.0.189 => 0.0.192 - @vx/curve: 0.0.189 => 0.0.192 - @vx/demo: 0.0.191 => 0.0.192 - @vx/drag: 0.0.189 => 0.0.192 - @vx/event: 0.0.189 => 0.0.192 - @vx/geo: 0.0.190 => 0.0.192 - @vx/glyph: 0.0.190 => 0.0.192 - @vx/gradient: 0.0.189 => 0.0.192 - @vx/grid: 0.0.190 => 0.0.192 - @vx/group: 0.0.190 => 0.0.192 - @vx/heatmap: 0.0.190 => 0.0.192 - @vx/hierarchy: 0.0.190 => 0.0.192 - @vx/legend: 0.0.190 => 0.0.192 - @vx/marker: 0.0.190 => 0.0.192 - @vx/mock-data: 0.0.189 => 0.0.192 - @vx/network: 0.0.190 => 0.0.192 - @vx/pattern: 0.0.189 => 0.0.192 - @vx/point: 0.0.189 => 0.0.192 - @vx/responsive: 0.0.189 => 0.0.192 - @vx/scale: 0.0.190 => 0.0.192 - @vx/shape: 0.0.190 => 0.0.192 - @vx/stats: 0.0.190 => 0.0.192 - @vx/text: 0.0.191 => 0.0.192 - @vx/threshold: 0.0.190 => 0.0.192 - @vx/tooltip: 0.0.189 => 0.0.192 - @vx/voronoi: 0.0.190 => 0.0.192 - @vx/vx: 0.0.191 => 0.0.192 - @vx/zoom: 0.0.189 => 0.0.192 ``` # v0.0.191 See [#487](https://github.com/hshoff/vx/pull/487) for details. #### :boom: Breaking Changes - [text] peerDep `react@^16.3`, deprecate react 15 - [text] prefix lifecycle methods with `UNSAFE_` - [axis] peerDep `react@^16.3`, deprecate react 15 due to @vx/text dep - [demo] use react 16.9 - [demo] prefix lifecycle methods with `UNSAFE_` #### :house: Internal - [internal] update deps: coveralls, lint-staged, marked #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/axis: 0.0.190 => 0.0.191 - @vx/demo: 0.0.190 => 0.0.191 - @vx/text: 0.0.190 => 0.0.191 - @vx/vx: 0.0.190 => 0.0.191 ``` # v0.0.190 #### 💥 Breaking Changes - [scale] [d3-scale 2.2.2 changed](https://github.com/d3/d3-scale/issues/117) the behavior of a collapsed domain. See [this comment](https://github.com/hshoff/vx/issues/473#issuecomment-508203310) for how to handle the updated behavior. [#477](https://github.com/hshoff/vx/pull/477) - [text] Don't split strings rendered by `` when encountering a set of non-breaking space characters. [#460](https://github.com/hshoff/vx/pull/460) #### :rocket: Enhancements - [group] add innerRef prop. [#480](https://github.com/hshoff/vx/pull/480) - [scale] bump d3-scale dep to `^2.2.2` for scaleSymlog. [#477](https://github.com/hshoff/vx/pull/477) - [scale] add scaleSymlog. [#470](https://github.com/hshoff/vx/pull/470) #### :bug: Bug Fix - [stats] fix horizontal boxplot in @vx/stats. [#476](https://github.com/hshoff/vx/pull/476) - [boxplot] fix horizontal boxplot in @vx/boxplot. [#472](https://github.com/hshoff/vx/pull/472) - [heatmap] remove `bin.x0`. The x0 offset is accounted for in `bin.x`. [#475](https://github.com/hshoff/vx/pull/475) #### :memo: Documentation - [docs][group] add innerRef prop. [#480](https://github.com/hshoff/vx/pull/480) - [axis] fix `tickLabelProps()` prop default args for docs. [#478](https://github.com/hshoff/vx/pull/478) - [glyph] remove outdated readme description. [#478](https://github.com/hshoff/vx/pull/478) - [docs] run doc:gen script. [#478](https://github.com/hshoff/vx/pull/478) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) - [robsco-git](https://github.com/robsco-git) - [LambStack](https://github.com/LambStack) - [mmarkelov](https://github.com/mmarkelov) ``` Changes: - @vx/annotation: 0.0.189 => 0.0.190 - @vx/axis: 0.0.189 => 0.0.190 - @vx/boxplot: 0.0.189 => 0.0.190 - @vx/demo: 0.0.189 => 0.0.190 - @vx/geo: 0.0.189 => 0.0.190 - @vx/glyph: 0.0.189 => 0.0.190 - @vx/grid: 0.0.189 => 0.0.190 - @vx/group: 0.0.189 => 0.0.190 - @vx/heatmap: 0.0.189 => 0.0.190 - @vx/hierarchy: 0.0.189 => 0.0.190 - @vx/legend: 0.0.189 => 0.0.190 - @vx/marker: 0.0.189 => 0.0.190 - @vx/network: 0.0.189 => 0.0.190 - @vx/scale: 0.0.189 => 0.0.190 - @vx/shape: 0.0.189 => 0.0.190 - @vx/stats: 0.0.189 => 0.0.190 - @vx/text: 0.0.189 => 0.0.190 - @vx/threshold: 0.0.189 => 0.0.190 - @vx/voronoi: 0.0.189 => 0.0.190 - @vx/vx: 0.0.189 => 0.0.190 ``` # v0.0.189 #### :boom: Breaking Changes - [shape] `` and `` props now check for `!== undefined`. Before `0` wouldn't set the prop to `0` because `if (0)` is `false`. This is only a breaking change if you were passing `0` before and happy with `` treating that as `undefined` and using d3.arc() defaults. [#464](https://github.com/hshoff/vx/pull/464) - [zoom] make wheel event active by default. fixes Chrome 73 scroll intervention warning. [#456](https://github.com/hshoff/vx/pull/456) + To keep the default behavior before Chrome 73 and remove console warnings in Chrome 73, **remove**: ```diff ``` + To make the onWheel events passive, **add**: ```diff {zoom => { return ( ); }} ``` #### :rocket: Enhancements - [responsive][shape][text][geo] update `innerRef` propType to include PropType.object. [#446](https://github.com/hshoff/vx/pull/446) #### :bug: Bug Fix - [text] move Babel dependencies to dev only. [#461](https://github.com/hshoff/vx/pull/461) - [shape] `` now respects `0` as an allowed prop value. [#464](https://github.com/hshoff/vx/pull/464) - [shape] `` `pieValue` now respects `0` as an allowed prop value. [#464](https://github.com/hshoff/vx/pull/464) #### :memo: Documentation - [docs] update docs. [#446](https://github.com/hshoff/vx/pull/446) - [glyph] fixes outdated `@vx/glyph` examples in the readme docs. [#454](https://github.com/hshoff/vx/pull/454) #### :house: Internal - [internal] fix jest code coverage, update jest, move to `babel.config.js` + `jest.config.js`. [#439](https://github.com/hshoff/vx/pull/439) - [internal] babel preset env target `explorer` => `ie`. [#446](https://github.com/hshoff/vx/pull/446) - [internal] babel preset env target remove `ucandroid`. [#446](https://github.com/hshoff/vx/pull/446) - [shape] add more `` tests. [#464](https://github.com/hshoff/vx/pull/464) - [shape] convert `Arc.test` from `CRLF` => `LF`. [#464](https://github.com/hshoff/vx/pull/464) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) - [milesj](https://github.com/milesj) ``` Changes: - @vx/annotation: 0.0.184 => 0.0.189 - @vx/axis: 0.0.184 => 0.0.189 - @vx/bounds: 0.0.182 => 0.0.189 - @vx/boxplot: 0.0.183 => 0.0.189 - @vx/brush: 0.0.182 => 0.0.189 - @vx/chord: 0.0.183 => 0.0.189 - @vx/clip-path: 0.0.183 => 0.0.189 - @vx/curve: 0.0.182 => 0.0.189 - @vx/demo: 0.0.188 => 0.0.189 - @vx/drag: 0.0.183 => 0.0.189 - @vx/event: 0.0.182 => 0.0.189 - @vx/geo: 0.0.187 => 0.0.189 - @vx/glyph: 0.0.183 => 0.0.189 - @vx/gradient: 0.0.183 => 0.0.189 - @vx/grid: 0.0.184 => 0.0.189 - @vx/group: 0.0.183 => 0.0.189 - @vx/heatmap: 0.0.183 => 0.0.189 - @vx/hierarchy: 0.0.183 => 0.0.189 - @vx/legend: 0.0.183 => 0.0.189 - @vx/marker: 0.0.184 => 0.0.189 - @vx/mock-data: 0.0.185 => 0.0.189 - @vx/network: 0.0.183 => 0.0.189 - @vx/pattern: 0.0.183 => 0.0.189 - @vx/point: 0.0.182 => 0.0.189 - @vx/responsive: 0.0.188 => 0.0.189 - @vx/scale: 0.0.182 => 0.0.189 - @vx/shape: 0.0.184 => 0.0.189 - @vx/stats: 0.0.183 => 0.0.189 - @vx/text: 0.0.183 => 0.0.189 - @vx/threshold: 0.0.184 => 0.0.189 - @vx/tooltip: 0.0.184 => 0.0.189 - @vx/voronoi: 0.0.183 => 0.0.189 - @vx/vx: 0.0.188 => 0.0.189 - @vx/zoom: 0.0.185 => 0.0.189 ``` # v0.0.188 #### :bug: Bug Fix - [responsive] add debounceTime back to prevent it spreading on children through restProps. [#437](https://github.com/hshoff/vx/pull/437) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/demo: 0.0.187 => 0.0.188 - @vx/responsive: 0.0.186 => 0.0.188 - @vx/vx: 0.0.187 => 0.0.188 ``` # v0.0.187 #### :rocket: Enhancements - [geo] add ``. [#434](https://github.com/hshoff/vx/pull/434) #### :memo: Documentation - [demo] add `` tile. [#434](https://github.com/hshoff/vx/pull/434) #### :house: Internal - [geo] add `` test. [#435](https://github.com/hshoff/vx/pull/435) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/demo: 0.0.186 => 0.0.187 - @vx/geo: 0.0.184 => 0.0.187 - @vx/vx: 0.0.186 => 0.0.187 ``` # v0.0.186 #### :memo: Documentation - [demo] cleanup DragII demo. [#424](https://github.com/hshoff/vx/pull/424) - [demo] fixed broken BarStacks example. Bar Stack Horizontal example works correct, but BarStack for some reason uses `({ barStacks })` instead of `barStacks`. [#423](https://github.com/hshoff/vx/pull/423) #### :bug: Bug Fix - [responsive] `` replace `for..of` with `forEach()` to fix IE11 error without having to sham `Symbol`. More info: https://github.com/hshoff/vx/issues/258 [#428](https://github.com/hshoff/vx/pull/428) #### :trophy: Contributors - [EugeneDraitsev](https://github.com/EugeneDraitsev) - [dennisja](https://github.com/dennisja) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/demo: 0.0.185 => 0.0.186 - @vx/responsive: 0.0.184 => 0.0.186 - @vx/vx: 0.0.185 => 0.0.186 ``` # v0.0.185 #### :rocket: Enhancements - [zoom] add ``. [#418](https://github.com/hshoff/vx/pull/418) - [mock data] add `genPhyllotaxis()`. [#418](https://github.com/hshoff/vx/pull/418) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/demo: 0.0.184 => 0.0.185 - @vx/mock-data: 0.0.182 => 0.0.185 - @vx/vx: 0.0.184 => 0.0.185 - @vx/zoom: 0.0.182 => 0.0.185 ``` # v0.0.184 #### :rocket: Enhancements - [geo] add `albersUsa` projection in d3-geo to @vx/geo. [#415](https://github.com/hshoff/vx/pull/415) - [geo] add `equalEarth` projection in d3-geo to @vx/geo. [#407](https://github.com/hshoff/vx/pull/407) #### :bug: Bug Fix - [shape] fix proptype for LinePath `defined` prop. Should use `oneOfType` rather than `oneOf`. [#414](https://github.com/hshoff/vx/pull/414) - [demo] remove unnecessary destructuring of props in demo code. [#409](https://github.com/hshoff/vx/pull/409) - [responsive] fix proptype for ScaleSVG `children` prop. [#408](https://github.com/hshoff/vx/pull/408) #### :memo: Documentation - [tooltip] fix tooltip docs. [#403](https://github.com/hshoff/vx/pull/403) #### :trophy: Contributors - [lorenries](https://github.com/lorenries) - [spiderbites](https://github.com/spiderbites) - [pajkicdj](https://github.com/pajkicdj) - [mmarkelov](https://github.com/mmarkelov) - [dennisja](https://github.com/dennisja) ``` Changes: - @vx/annotation: 0.0.183 => 0.0.184 - @vx/axis: 0.0.183 => 0.0.184 - @vx/demo: 0.0.183 => 0.0.184 - @vx/geo: 0.0.183 => 0.0.184 - @vx/grid: 0.0.183 => 0.0.184 - @vx/marker: 0.0.183 => 0.0.184 - @vx/responsive: 0.0.183 => 0.0.184 - @vx/shape: 0.0.183 => 0.0.184 - @vx/threshold: 0.0.183 => 0.0.184 - @vx/tooltip: 0.0.182 => 0.0.184 - @vx/vx: 0.0.183 => 0.0.184 ``` # v0.0.183 #### :rocket: Enhancements - [responsive] add `innerRef` prop to ``. [#393](https://github.com/hshoff/vx/pull/393) #### :memo: Documentation - [docs] use [react-docgen](https://github.com/reactjs/react-docgen) to generate docs from prop-types and comments. [#399](https://github.com/hshoff/vx/pull/399) - [responsive][docs] add innerRef prop docs. [#400](https://github.com/hshoff/vx/pull/400) - [threshold][docs] update `clipAboveTo` and `clipBelowTo` prop types to `number|func`. [#401](https://github.com/hshoff/vx/pull/401) #### :house: Internal - [docs] add script to sync files -> docs -> readme -> [vx-demo.now.sh/docs](https://vx-demo.now.sh/docs). [#399](https://github.com/hshoff/vx/pull/399) #### :trophy: Contributors - [dagda1](https://github.com/dagda1) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.182 => 0.0.183 - @vx/axis: 0.0.182 => 0.0.183 - @vx/boxplot: 0.0.182 => 0.0.183 - @vx/chord: 0.0.182 => 0.0.183 - @vx/clip-path: 0.0.182 => 0.0.183 - @vx/demo: 0.0.182 => 0.0.183 - @vx/drag: 0.0.182 => 0.0.183 - @vx/geo: 0.0.182 => 0.0.183 - @vx/glyph: 0.0.182 => 0.0.183 - @vx/gradient: 0.0.182 => 0.0.183 - @vx/grid: 0.0.182 => 0.0.183 - @vx/group: 0.0.182 => 0.0.183 - @vx/heatmap: 0.0.182 => 0.0.183 - @vx/hierarchy: 0.0.182 => 0.0.183 - @vx/legend: 0.0.182 => 0.0.183 - @vx/marker: 0.0.182 => 0.0.183 - @vx/network: 0.0.182 => 0.0.183 - @vx/pattern: 0.0.182 => 0.0.183 - @vx/responsive: 0.0.182 => 0.0.183 - @vx/shape: 0.0.182 => 0.0.183 - @vx/stats: 0.0.182 => 0.0.183 - @vx/text: 0.0.182 => 0.0.183 - @vx/threshold: 0.0.182 => 0.0.183 - @vx/voronoi: 0.0.182 => 0.0.183 - @vx/vx: 0.0.182 => 0.0.183 ``` # v0.0.182 #### :bug: Bug Fix - [tooltip] fractional pixel values can sometimes lead to shaky rendering when using Firefox. [#389](https://github.com/hshoff/vx/pull/389) #### :memo: Documentation - [gallery] add `` example code back. [#387](https://github.com/hshoff/vx/pull/387) - [readme] add a new demo of a project using vx components. [#391](https://github.com/hshoff/vx/pull/391) #### :house: Internal - [internal] upgrade to [babel@7](https://babeljs.io/docs/en/v7-migration.html). [#387](https://github.com/hshoff/vx/pull/387) #### :trophy: Contributors - [abradley](https://github.com/abradley) - [JayWelsh](https://github.com/JayWelsh) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.181 => 0.0.182 - @vx/axis: 0.0.181 => 0.0.182 - @vx/bounds: 0.0.165 => 0.0.182 - @vx/boxplot: 0.0.181 => 0.0.182 - @vx/brush: 0.0.179 => 0.0.182 - @vx/chord: 0.0.166 => 0.0.182 - @vx/clip-path: 0.0.165 => 0.0.182 - @vx/curve: 0.0.165 => 0.0.182 - @vx/demo: 0.0.181 => 0.0.182 - @vx/drag: 0.0.179 => 0.0.182 - @vx/event: 0.0.179 => 0.0.182 - @vx/geo: 0.0.181 => 0.0.182 - @vx/glyph: 0.0.181 => 0.0.182 - @vx/gradient: 0.0.165 => 0.0.182 - @vx/grid: 0.0.181 => 0.0.182 - @vx/group: 0.0.170 => 0.0.182 - @vx/heatmap: 0.0.181 => 0.0.182 - @vx/hierarchy: 0.0.181 => 0.0.182 - @vx/legend: 0.0.181 => 0.0.182 - @vx/marker: 0.0.181 => 0.0.182 - @vx/mock-data: 0.0.179 => 0.0.182 - @vx/network: 0.0.179 => 0.0.182 - @vx/pattern: 0.0.179 => 0.0.182 - @vx/point: 0.0.165 => 0.0.182 - @vx/responsive: 0.0.179 => 0.0.182 - @vx/scale: 0.0.179 => 0.0.182 - @vx/shape: 0.0.181 => 0.0.182 - @vx/stats: 0.0.181 => 0.0.182 - @vx/text: 0.0.179 => 0.0.182 - @vx/threshold: 0.0.181 => 0.0.182 - @vx/tooltip: 0.0.179 => 0.0.182 - @vx/voronoi: 0.0.181 => 0.0.182 - @vx/vx: 0.0.181 => 0.0.182 - @vx/zoom: 0.0.165 => 0.0.182 ``` # v0.0.181 For a summary and before + after of changes please see: https://github.com/hshoff/vx/pull/383 #### :boom: Breaking Changes - [glyph][breaking] rm additionalProps, add children as fn - [shape][breaking] rm additionalProps, add children as fn - [geo][breaking] rm additionalProps, add children as fn - [heatmap][breaking] rm additionalProps, add children as fn - [stats][breaking] rm additionalProps, add children as fn - [boxplot][breaking] rm additionalProps, add children as fn - [voronoi][breaking] rm additionalProps, add children as fn - [legend][breaking] rm additionalProps, add children as fn #### :house: Internal - [demo] update gallery tile examples to new apis #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.179 => 0.0.181 - @vx/axis: 0.0.179 => 0.0.181 - @vx/boxplot: 0.0.170 => 0.0.181 - @vx/demo: 0.0.180 => 0.0.181 - @vx/geo: 0.0.179 => 0.0.181 - @vx/glyph: 0.0.179 => 0.0.181 - @vx/grid: 0.0.180 => 0.0.181 - @vx/heatmap: 0.0.179 => 0.0.181 - @vx/hierarchy: 0.0.179 => 0.0.181 - @vx/legend: 0.0.179 => 0.0.181 - @vx/marker: 0.0.179 => 0.0.181 - @vx/shape: 0.0.179 => 0.0.181 - @vx/stats: 0.0.179 => 0.0.181 - @vx/threshold: 0.0.179 => 0.0.181 - @vx/voronoi: 0.0.170 => 0.0.181 - @vx/vx: 0.0.180 => 0.0.181 ``` # v0.0.180 #### :rocket: Enhancements - [grid] allow passing in `tickValues` prop to both Columns and Rows, to render grid lines at specific values. [#376](https://github.com/hshoff/vx/pull/376) - [grid] allow passing in `rowTickValues` prop and `columnTickValues` prop to Grid. [#376](https://github.com/hshoff/vx/pull/376) - [grid] update vx-grid's Readme.md to reflect the changes above.[#376](https://github.com/hshoff/vx/pull/376) #### :bug: Bug Fix - [grid] updates `strokeWidth` `propTypes` in the `@vx/grid` components to allow numbers in addition to strings. [#380](https://github.com/hshoff/vx/pull/380) #### :trophy: Contributors - [robinsoncol](https://github.com/robinsoncol) - [williaster](https://github.com/williaster) ``` Changes: - @vx/demo: 0.0.179 => 0.0.180 - @vx/grid: 0.0.179 => 0.0.180 - @vx/vx: 0.0.179 => 0.0.180 ``` # v0.0.179 #### :boom: Breaking Changes - [vx] there's a possibility that new prop type checks might not be as care free as before. [#371](https://github.com/hshoff/vx/pull/371) #### :rocket: Enhancements - [vx] add missing `propTypes` to all components. [#371](https://github.com/hshoff/vx/pull/371) #### :house: Internal - [vx] add `.eslintrc`. [#371](https://github.com/hshoff/vx/pull/371) - [vx] fix all eslint errors + warnings. [#371](https://github.com/hshoff/vx/pull/371) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.178 => 0.0.179 - @vx/axis: 0.0.178 => 0.0.179 - @vx/brush: 0.0.165 => 0.0.179 - @vx/demo: 0.0.178 => 0.0.179 - @vx/drag: 0.0.165 => 0.0.179 - @vx/event: 0.0.165 => 0.0.179 - @vx/geo: 0.0.170 => 0.0.179 - @vx/glyph: 0.0.170 => 0.0.179 - @vx/grid: 0.0.178 => 0.0.179 - @vx/heatmap: 0.0.173 => 0.0.179 - @vx/hierarchy: 0.0.170 => 0.0.179 - @vx/legend: 0.0.178 => 0.0.179 - @vx/marker: 0.0.178 => 0.0.179 - @vx/mock-data: 0.0.165 => 0.0.179 - @vx/network: 0.0.172 => 0.0.179 - @vx/pattern: 0.0.165 => 0.0.179 - @vx/responsive: 0.0.177 => 0.0.179 - @vx/scale: 0.0.178 => 0.0.179 - @vx/shape: 0.0.178 => 0.0.179 - @vx/stats: 0.0.178 => 0.0.179 - @vx/text: 0.0.175 => 0.0.179 - @vx/threshold: 0.0.178 => 0.0.179 - @vx/tooltip: 0.0.165 => 0.0.179 - @vx/vx: 0.0.178 => 0.0.179 ``` # v0.0.178 #### :rocket: Enhancements - [scale] add `type` property. [#367](https://github.com/hshoff/vx/pull/367) - [legend] add optional `flex` prop for overriding `flex` css property to ``. [#370](https://github.com/hshoff/vx/pull/370) - [shape] add support for non-scaleBand scales to `` and ``. [#368](https://github.com/hshoff/vx/pull/368) #### :bug: Bug Fix - [legend] allow overriding flex property to fix [IE flexbox bug](https://stackoverflow.com/questions/39192995/flex-container-wont-expand-to-fit-content-in-ie). IE 11 does not seem to expand to minimum content width when flex-basis is 0px (this is the case when using the shorthand `flex: 1`). [#370](https://github.com/hshoff/vx/pull/370) #### :trophy: Contributors - [jdmoody](https://github.com/jdmoody) - [lucafalasco](https://github.com/lucafalasco) ``` Changes: - @vx/annotation: 0.0.176 => 0.0.178 - @vx/axis: 0.0.176 => 0.0.178 - @vx/demo: 0.0.177 => 0.0.178 - @vx/grid: 0.0.176 => 0.0.178 - @vx/legend: 0.0.170 => 0.0.178 - @vx/marker: 0.0.176 => 0.0.178 - @vx/scale: 0.0.165 => 0.0.178 - @vx/shape: 0.0.176 => 0.0.178 - @vx/stats: 0.0.170 => 0.0.178 - @vx/threshold: 0.0.176 => 0.0.178 - @vx/vx: 0.0.177 => 0.0.178 ``` # v0.0.177 #### :rocket: Enhancements - [responsive] add rest props to `` wrapper internal div. [#363](https://github.com/hshoff/vx/pull/363), [#365](https://github.com/hshoff/vx/pull/365) #### :trophy: Contributors - [giulioz](https://github.com/giulioz) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/demo: 0.0.176 => 0.0.177 - @vx/responsive: 0.0.175 => 0.0.177 - @vx/vx: 0.0.176 => 0.0.177 ``` # v0.0.176 #### :bug: Bug Fix - [shape] fix for `` rest props #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.175 => 0.0.176 - @vx/axis: 0.0.175 => 0.0.176 - @vx/demo: 0.0.175 => 0.0.176 - @vx/grid: 0.0.175 => 0.0.176 - @vx/marker: 0.0.175 => 0.0.176 - @vx/shape: 0.0.175 => 0.0.176 - @vx/threshold: 0.0.175 => 0.0.176 - @vx/vx: 0.0.175 => 0.0.176 ``` # v0.0.175 #### :boom: Breaking Changes - [responsive] Rewrite withParentSize using ResizeObserver. `withParentSize()` changed `windowResizeDebounceTime` prop to `debounceTime` to match ``. [#348](https://github.com/hshoff/vx/pull/348) #### :bug: Bug Fix - [axis] fix `labelTransform` function in *@vx/axis* to correctly align the axis label when different values for the scale's *range* are specified, in particular when it does not start (or end) with a 0. [#349](https://github.com/hshoff/vx/pull/349) - [text] change measurement svg `display: none` => `position: absolute` and position the svg offscreen. [#358](https://github.com/hshoff/vx/pull/358) #### :rocket: Enhancements - [shape] add `` component. [#355](https://github.com/hshoff/vx/pull/355) #### :memo: Documentation - [demo] update /boxplot example code. [#354](https://github.com/hshoff/vx/pull/354) - [demo] add /polygons example. [#355](https://github.com/hshoff/vx/pull/355) #### :house: Internal - [dev] add linting. [#346](https://github.com/hshoff/vx/pull/346) #### :trophy: Contributors - [lucafalasco](https://github.com/lucafalasco) - [marcofugaro](https://github.com/marcofugaro) - [geekplux](https://github.com/geekplux) - [ezy](https://github.com/ezy) - [dagda1](https://github.com/dagda1) - [mmartinsky](https://github.com/mmartinsky) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.171 => 0.0.175 - @vx/axis: 0.0.173 => 0.0.175 - @vx/demo: 0.0.174 => 0.0.175 - @vx/grid: 0.0.171 => 0.0.175 - @vx/marker: 0.0.171 => 0.0.175 - @vx/responsive: 0.0.172 => 0.0.175 - @vx/shape: 0.0.171 => 0.0.175 - @vx/text: 0.0.173 => 0.0.175 - @vx/threshold: 0.0.174 => 0.0.175 - @vx/vx: 0.0.173 => 0.0.175 ``` # v0.0.174 #### :rocket: Enhancements - [threshold] add id prop for unique clip-path ids. [#342](https://github.com/hshoff/vx/pull/342) #### :memo: Documentation - [demo] update heatmap example code to match new api. [#340](https://github.com/hshoff/vx/pull/340) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/demo: 0.0.173 => 0.0.174 - @vx/threshold: 0.0.171 => 0.0.174 ``` # v0.0.173 #### :boom: Breaking Changes - [heatmap] simplify `heatmap` API. [#332](https://github.com/hshoff/vx/pull/332) #### :rocket: Enhancements - [text] add innerRef prop. [#339](https://github.com/hshoff/vx/pull/339) #### :memo: Documentation - [docs] add code coverage demo to readme. [#337](https://github.com/hshoff/vx/pull/337) #### :trophy: Contributors - [jens-ox](https://github.com/jens-ox) - [ezy](https://github.com/ezy) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/axis: 0.0.171 => 0.0.173 - @vx/demo: 0.0.172 => 0.0.173 - @vx/heatmap: 0.0.170 => 0.0.173 - @vx/text: 0.0.165 => 0.0.173 - @vx/vx: 0.0.172 => 0.0.173 ``` # v0.0.172 #### :bug: Bug Fix - [responsive] Avoid `ResizeObserver` loop limit exceeded. The issues surfaces on Chrome version >=64. [#335](https://github.com/hshoff/vx/pull/335) #### :memo: Documentation - [network] remove unrelated docs from readme. [#330](https://github.com/hshoff/vx/pull/330) #### :trophy: Contributors - [kristw](https://github.com/kristw) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/demo: 0.0.171 => 0.0.172 - @vx/network: 0.0.170 => 0.0.172 - @vx/responsive: 0.0.165 => 0.0.172 - @vx/vx: 0.0.171 => 0.0.172 ``` # v0.0.171 #### :bug: Bug Fix - [shape] `` allow null sort callbacks. `` isn't ignored. [#327](https://github.com/hshoff/vx/pull/327) #### :trophy: Contributors - [Gosha](https://github.com/Gosha) ``` Changes: - @vx/annotation: 0.0.170 => 0.0.171 - @vx/axis: 0.0.170 => 0.0.171 - @vx/demo: 0.0.170 => 0.0.171 - @vx/grid: 0.0.170 => 0.0.171 - @vx/marker: 0.0.170 => 0.0.171 - @vx/shape: 0.0.170 => 0.0.171 - @vx/threshold: 0.0.170 => 0.0.171 - @vx/vx: 0.0.170 => 0.0.171 ``` # v0.0.170 #### :rocket: Enhancements - [shape] add `` component. [#320](https://github.com/hshoff/vx/pull/320) - [shape] add optional `y0` prop to `` for custom area fills. [#319](https://github.com/hshoff/vx/pull/319) #### :bug: Bug Fix - [group] fix `` classname. should be `vx-group`, not `cx-group`. [#316](https://github.com/hshoff/vx/pull/316) #### :memo: Documentation - [docs] run readme docs sync. [#325](https://github.com/hshoff/vx/pull/325) - [stats] update `@vx/stats` readme name to stats. [#324](https://github.com/hshoff/vx/pull/324) - [shape] add docs for `` and ``. [#320](https://github.com/hshoff/vx/pull/320) #### :trophy: Contributors - [sdd](https://github.com/sdd) - [rjatkinson2](https://github.com/rjatkinson2) - [spiderbites](https://github.com/spiderbites) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.168 => 0.0.170 - @vx/axis: 0.0.168 => 0.0.170 - @vx/boxplot: 0.0.165 => 0.0.170 - @vx/demo: 0.0.169 => 0.0.170 - @vx/geo: 0.0.166 => 0.0.170 - @vx/glyph: 0.0.165 => 0.0.170 - @vx/grid: 0.0.169 => 0.0.170 - @vx/group: 0.0.165 => 0.0.170 - @vx/heatmap: 0.0.166 => 0.0.170 - @vx/hierarchy: 0.0.165 => 0.0.170 - @vx/legend: 0.0.167 => 0.0.170 - @vx/marker: 0.0.168 => 0.0.170 - @vx/network: 0.0.165 => 0.0.170 - @vx/shape: 0.0.168 => 0.0.170 - @vx/stats: 0.0.165 => 0.0.170 - @vx/threshold: 0.0.168 => 0.0.170 - @vx/voronoi: 0.0.165 => 0.0.170 - @vx/vx: 0.0.169 => 0.0.170 ``` # v0.0.169 #### :bug: Bug Fix - [grid] include `build/` dir in package. [#315](https://github.com/hshoff/vx/pull/315) #### :trophy: Contributors - [williaster](https://github.com/williaster) ``` Changes: - @vx/demo: 0.0.168 => 0.0.169 - @vx/grid: 0.0.168 => 0.0.169 - @vx/vx: 0.0.168 => 0.0.169 ``` # v0.0.168 #### :rocket: Enhancements - [shape] add optional render function as child of `` to allow more fine grained control of rendering. [#311](https://github.com/hshoff/vx/pull/311) #### :trophy: Contributors - [psachs21](https://github.com/psachs21) ``` Changes: - @vx/annotation: 0.0.166 => 0.0.168 - @vx/axis: 0.0.166 => 0.0.168 - @vx/demo: 0.0.167 => 0.0.168 - @vx/grid: 0.0.166 => 0.0.168 - @vx/marker: 0.0.166 => 0.0.168 - @vx/shape: 0.0.166 => 0.0.168 - @vx/threshold: 0.0.166 => 0.0.168 - @vx/vx: 0.0.167 => 0.0.168 ``` # v0.0.167 #### :bug: Bug Fix - [legend] spread style prop on rect legend shape. [#313](https://github.com/hshoff/vx/pull/313) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/demo: 0.0.166 => 0.0.167 - @vx/legend: 0.0.165 => 0.0.167 - @vx/vx: 0.0.166 => 0.0.167 ``` # v0.0.166 #### :rocket: Enhancements - [chord] add `@vx/chord` - ``, ``. [#308](https://github.com/hshoff/vx/pull/308) - [demo][shape] add chord demo, fix prop types. [#308](https://github.com/hshoff/vx/pull/308) - [shape] updated accessors to pass all the arguments from D3 for LinePath, AreaClosed, and Area. [#309](https://github.com/hshoff/vx/pull/309) - [heatmap] add index + yBin to heatmap circle/rect. [#307](https://github.com/hshoff/vx/pull/307) - [geo] add Natural Earth (1) projection. [#304](https://github.com/hshoff/vx/pull/304) #### :memo: Documentation - [shape] Updated documentation for LinePath and AreaClosed. [#309](https://github.com/hshoff/vx/pull/309) #### :trophy: Contributors - [davidandrus](https://github.com/davidandrus) - [JacquiManzi](https://github.com/JacquiManzi) - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.165 => 0.0.166 - @vx/axis: 0.0.165 => 0.0.166 - @vx/chord: 0.0.1 => 0.0.166 - @vx/demo: 0.0.165 => 0.0.166 - @vx/geo: 0.0.165 => 0.0.166 - @vx/grid: 0.0.165 => 0.0.166 - @vx/heatmap: 0.0.165 => 0.0.166 - @vx/marker: 0.0.165 => 0.0.166 - @vx/shape: 0.0.165 => 0.0.166 - @vx/threshold: 0.0.165 => 0.0.166 - @vx/vx: 0.0.165 => 0.0.166 ``` # v0.0.165 #### :rocket: Enhancements - [text] export getStringWidth() util. [#301](https://github.com/hshoff/vx/pull/301) #### :house: Internal - [build] use [rollup](http://rollupjs.org/) for build [#298](https://github.com/hshoff/vx/pull/298) - adds `dist/vx-{name}.{umd,es}.js` files - adds `module` field to `package.json` that points to `dist/vx-{name}.es.js` for bundlers that support it (webpack, rollup, etc) - `main` field points to `dist/vx-{name}.umd.js` - removes [`react-fatigue-dev`](https://github.com/tj/react-fatigue-dev) + Makefile build (means you can build on windows now) - build targets `"android": 30, "chrome": 35, "edge": 14, "explorer": 9, "firefox": 52, "safari": 8, "ucandroid": 1` (matching [airbnb-babel-preset](https://github.com/airbnb/babel-preset-airbnb/blob/master/index.js#L9-L17)) - keeps `build/` with `cjs` babel build files for [deep paths](https://github.com/hshoff/vx/issues/143#issuecomment-367649444) (no breaking changes 🤞) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.165-beta.1 => 0.0.165 - @vx/axis: 0.0.165-beta.1 => 0.0.165 - @vx/bounds: 0.0.165-beta.1 => 0.0.165 - @vx/boxplot: 0.0.165-beta.1 => 0.0.165 - @vx/brush: 0.0.165-beta.1 => 0.0.165 - @vx/clip-path: 0.0.165-beta.1 => 0.0.165 - @vx/curve: 0.0.165-beta.1 => 0.0.165 - @vx/demo: 0.0.165-beta.1 => 0.0.165 - @vx/drag: 0.0.165-beta.1 => 0.0.165 - @vx/event: 0.0.165-beta.1 => 0.0.165 - @vx/geo: 0.0.165-beta.1 => 0.0.165 - @vx/glyph: 0.0.165-beta.1 => 0.0.165 - @vx/gradient: 0.0.165-beta.1 => 0.0.165 - @vx/grid: 0.0.165-beta.1 => 0.0.165 - @vx/group: 0.0.165-beta.1 => 0.0.165 - @vx/heatmap: 0.0.165-beta.1 => 0.0.165 - @vx/hierarchy: 0.0.165-beta.1 => 0.0.165 - @vx/legend: 0.0.165-beta.1 => 0.0.165 - @vx/marker: 0.0.165-beta.1 => 0.0.165 - @vx/mock-data: 0.0.165-beta.1 => 0.0.165 - @vx/network: 0.0.165-beta.1 => 0.0.165 - @vx/pattern: 0.0.165-beta.1 => 0.0.165 - @vx/point: 0.0.165-beta.1 => 0.0.165 - @vx/responsive: 0.0.165-beta.1 => 0.0.165 - @vx/scale: 0.0.165-beta.1 => 0.0.165 - @vx/shape: 0.0.165-beta.1 => 0.0.165 - @vx/stats: 0.0.165-beta.1 => 0.0.165 - @vx/text: 0.0.165-beta.1 => 0.0.165 - @vx/threshold: 0.0.165-beta.1 => 0.0.165 - @vx/tooltip: 0.0.165-beta.1 => 0.0.165 - @vx/voronoi: 0.0.165-beta.1 => 0.0.165 - @vx/vx: 0.0.165-beta.1 => 0.0.165 - @vx/zoom: 0.0.165-beta.1 => 0.0.165 ``` # v0.0.164 #### :rocket: Enhancements - [shape] Add support for `startAngle` and `endAngle` props in the `Pie` component. [#292](https://github.com/hshoff/vx/pull/292) - [shape] Add support for `pieSortValues` prop. This maps to d3’s `pie.sortValues()` which lets you sort by extracted values instead of data. [#292](https://github.com/hshoff/vx/pull/292) #### :bug: Bug Fix - [shape] Add _actual_ support for `startAngle` and `endAngle` props in the `Pie` component. [#292](https://github.com/hshoff/vx/pull/292) - [shape] Check for `!= null` for numeric props in `Pie` component. [#292](https://github.com/hshoff/vx/pull/292) #### :memo: Documentation - [shape] Fix `LineRadial` link. [#297](https://github.com/hshoff/vx/pull/297) - [shape] Make `` inside headings bigger than `` inside paragraphs so components headings are actually clearer as such… [#297](https://github.com/hshoff/vx/pull/297) - [shape] Add Pie documentation. [#297](https://github.com/hshoff/vx/pull/297) #### :white_check_mark: Tests - [shape] Add tests for sort callbacks in the `Pie` component. [#292](https://github.com/hshoff/vx/pull/292) #### :trophy: Contributors - [yuchi](https://github.com/yuchi) ``` Changes: - @vx/annotation: 0.0.162 => 0.0.164 - @vx/axis: 0.0.162 => 0.0.164 - @vx/demo: 0.0.163 => 0.0.164 - @vx/grid: 0.0.162 => 0.0.164 - @vx/marker: 0.0.162 => 0.0.164 - @vx/shape: 0.0.162 => 0.0.164 - @vx/threshold: 0.0.162 => 0.0.164 - @vx/vx: 0.0.163 => 0.0.164 ``` # v0.0.163 #### :bug: Bug Fix - [tooltip] don't pass `getRects` func prop from `withBoundingRects` to `Tooltip` [#290](https://github.com/hshoff/vx/pull/290) #### :trophy: Contributors - [williaster](https://github.com/williaster) ``` Changes: - @vx/demo: 0.0.162 => 0.0.163 - @vx/tooltip: 0.0.161 => 0.0.163 - @vx/vx: 0.0.162 => 0.0.163 ``` # v0.0.162 #### :rocket: Enhancements - [threshold] add `` [#285](https://github.com/hshoff/vx/pull/285) - [grid] add support for band scales [#282](https://github.com/hshoff/vx/pull/282) - [shape] now supports function as children [#285](https://github.com/hshoff/vx/pull/285) #### :memo: Documentation - [demo] add /threshold demo [#285](https://github.com/hshoff/vx/pull/285) - [demo] demo band scale grid on /barstack [#282](https://github.com/hshoff/vx/pull/282) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ``` Changes: - @vx/annotation: 0.0.161 => 0.0.162 - @vx/axis: 0.0.161 => 0.0.162 - @vx/demo: 0.0.161 => 0.0.162 - @vx/grid: 0.0.161 => 0.0.162 - @vx/marker: 0.0.161 => 0.0.162 - @vx/shape: 0.0.161 => 0.0.162 - @vx/threshold: 0.0.1 => 0.0.162 - @vx/vx: 0.0.161 => 0.0.162 ``` # v0.0.161 #### :boom: Breaking Changes - [scale] Removed color scales, recommend users to use [`d3-scale-chromatic`](https://github.com/d3/d3-scale-chromatic), following d3's lead in release [5.0.0](https://github.com/d3/d3/releases/tag/v5.0.0). [#270](https://github.com/hshoff/vx/pull/270) - [scale] The following files/tests/documentation are no longer part of `@vx/scale`: `schemeCategory10`, `schemeCategory20`, `schemeCategory20b`, `schemeCategory20c`. [#270](https://github.com/hshoff/vx/pull/270) #### :rocket: Enhancements - [tooltip] adds an optional `containerProps` as a second HOC "config" argument of `withTooltip(BaseComponent [, containerProps])`. This exposes a hook to enable users to customize any props on the container element. [#272](https://github.com/hshoff/vx/pull/272) - [tooltip] sets `width` and `height` to `inherit` by default on the container. I'm kind of on the edge with this and am open to removing it because it may be an edge case, but my reasoning is as follows: if a user is combining `withTooltip` and a responsive component like `ParentSize` like this example, they'll have to update the `withTooltip` container `div` to also have full width/height so this would be a "smart default". [#272](https://github.com/hshoff/vx/pull/272) #### :memo: Documentation - [scale] Added a section on color scales, which goes over how one would use `d3-scale-chromatic` with `vx/scale`. [#270](https://github.com/hshoff/vx/pull/270) - [tooltip] Adds a readme for `@vx/tooltip` components + enhancer. [#272](https://github.com/hshoff/vx/pull/272) - [demo] add `` to /axis demo tile. [#280](https://github.com/hshoff/vx/pull/280) - [demo] update vx-demo.now.sh doc pages. [#281](https://github.com/hshoff/vx/pull/281) #### :house: Internal - Add configuration for [Prettier](https://prettier.io) and format the existing codebase. [#275](https://github.com/hshoff/vx/pull/275) - Add pre-commit hook to format changed files before commits. [#275](https://github.com/hshoff/vx/pull/275) - [docs] fix `npm run docs` script. [#281](https://github.com/hshoff/vx/pull/281) #### :trophy: Contributors - [sto3psl](https://github.com/sto3psl) - [williaster](https://github.com/williaster) - [trainorpj](https://github.com/trainorpj) - [hshoff](https://github.com/hshoff) ```bash Changes: - @vx/annotation: 0.0.160 => 0.0.161 - @vx/axis: 0.0.160 => 0.0.161 - @vx/bounds: 0.0.153 => 0.0.161 - @vx/boxplot: 0.0.153 => 0.0.161 - @vx/brush: 0.0.153 => 0.0.161 - @vx/clip-path: 0.0.153 => 0.0.161 - @vx/curve: 0.0.153 => 0.0.161 - @vx/demo: 0.0.160 => 0.0.161 - @vx/drag: 0.0.157 => 0.0.161 - @vx/event: 0.0.153 => 0.0.161 - @vx/geo: 0.0.153 => 0.0.161 - @vx/glyph: 0.0.153 => 0.0.161 - @vx/gradient: 0.0.153 => 0.0.161 - @vx/grid: 0.0.160 => 0.0.161 - @vx/group: 0.0.153 => 0.0.161 - @vx/heatmap: 0.0.153 => 0.0.161 - @vx/hierarchy: 0.0.153 => 0.0.161 - @vx/legend: 0.0.154 => 0.0.161 - @vx/marker: 0.0.160 => 0.0.161 - @vx/mock-data: 0.0.153 => 0.0.161 - @vx/network: 0.0.153 => 0.0.161 - @vx/pattern: 0.0.153 => 0.0.161 - @vx/point: 0.0.153 => 0.0.161 - @vx/responsive: 0.0.158 => 0.0.161 - @vx/scale: 0.0.153 => 0.0.161 - @vx/shape: 0.0.160 => 0.0.161 - @vx/stats: 0.0.153 => 0.0.161 - @vx/text: 0.0.159 => 0.0.161 - @vx/tooltip: 0.0.160 => 0.0.161 - @vx/voronoi: 0.0.153 => 0.0.161 - @vx/vx: 0.0.160 => 0.0.161 - @vx/zoom: 0.0.153 => 0.0.161 ``` # v0.0.160 #### :boom: Breaking Changes - [shape] `` components now use `...additionalProps()` everywhere for consistency. So function props get passed data. example: `onClick={event => // stuff}` becomes `onClick={data => event => // stuff}` and now you can stroke/fill/attr based on data `stroke={({ target }) => target.data.children ? 'yellow' : 'blue' }. [#265](https://github.com/hshoff/vx/pull/265) #### :rocket: Enhancements - [shape] export link path generators. fixes: [#263](https://github.com/hshoff/vx/issues/263). [#265](https://github.com/hshoff/vx/pull/265) - [shape] add optional `path` prop so you can pass in path generator function instead of creating the generator every render. [#265](https://github.com/hshoff/vx/pull/265) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ```bash Changes: - @vx/annotation: 0.0.158 => 0.0.160 - @vx/axis: 0.0.159 => 0.0.160 - @vx/demo: 0.0.159 => 0.0.160 - @vx/grid: 0.0.158 => 0.0.160 - @vx/marker: 0.0.158 => 0.0.160 - @vx/shape: 0.0.158 => 0.0.160 - @vx/tooltip: 0.0.158 => 0.0.160 - @vx/vx: 0.0.159 => 0.0.160 ``` # v0.0.159 #### :rocket: Enhancements - [axis] By default `` components now use `@vx/text` to render tick labels. This enables multi line labels and scaling text to fit in a certain amount of space. [#260](https://github.com/hshoff/vx/pull/260) Example: ```jsx ({ textAnchor: 'middle', verticalAnchor: 'middle', width: 100, scaleToFit: true }) /> ``` - [axis] `` components got a new prop `tickComponent` to enable rendering of custom ticks. With this prop one can completely customize ticks without having to create a new custom `` component. [#260](https://github.com/hshoff/vx/pull/260) Example: ```jsx ( {formattedValue} )} /> ``` `tickComponent` accepts a function and gets called with the following attribute: ```js tickComponent({ x, y, formattedValue, ...tickLabelPropsObj }) ``` #### :memo: Documentation - [axis] update `@vx/axis` documentation. [#260](https://github.com/hshoff/vx/pull/260) - [demo] fix bargroup example code. [#250](https://github.com/hshoff/vx/pull/250) - [demo] fix barstack example code. [#249](https://github.com/hshoff/vx/pull/249) - [text] fix readme.md of `@vx/text` package. [#257](https://https://github.com/hshoff/vx/pull/257) #### :trophy: Contributors - [bulat-f](https://github.com/bulat-f) - [sto3psl](https://github.com/sto3psl) - [browniefed](https://github.com/browniefed) ```bash Changes: - @vx/axis: 0.0.158 => 0.0.159 - @vx/demo: 0.0.158 => 0.0.159 - @vx/text: 0.0.153 => 0.0.159 - @vx/vx: 0.0.158 => 0.0.159 ``` # v0.0.158 #### :rocket: Enhancements - [responsive] add debounceTime prop to `` with a default of 300ms. [#241](https://github.com/hshoff/vx/pull/241) - [tooltip] `` now also reconsiders window bounds [#240](https://github.com/hshoff/vx/pull/240) #### :house: Internal - [demo] fix streamgraph transparent fill [#242](https://github.com/hshoff/vx/pull/242) #### :trophy: Contributors - [AlexJuarez](https://github.com/AlexJuarez) - [manuelrocha88](https://github.com/manuelrocha88) - [hshoff](https://github.com/hshoff) ```bash Changes: - @vx/annotation: 0.0.153 => 0.0.158 - @vx/axis: 0.0.153 => 0.0.158 - @vx/demo: 0.0.157 => 0.0.158 - @vx/grid: 0.0.153 => 0.0.158 - @vx/marker: 0.0.153 => 0.0.158 - @vx/responsive: 0.0.153 => 0.0.158 - @vx/shape: 0.0.153 => 0.0.158 - @vx/tooltip: 0.0.153 => 0.0.158 - @vx/vx: 0.0.157 => 0.0.158 ``` # v0.0.157 #### :rocket: Enhancements - [drag] remove `svg` prop. This was causing hacky problems like calling `forceUpdate` in `cDM`. `localPoint()` now finds svg from the event argument [#233](https://github.com/hshoff/vx/pull/233) #### :memo: Documentation - [demo] update drag demos, add `touch-action: none` on drag demos so no scrolling when dragging [#233](https://github.com/hshoff/vx/pull/233) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ```bash Changes: - @vx/demo: 0.0.156 => 0.0.157 - @vx/drag: 0.0.156 => 0.0.157 - @vx/vx: 0.0.156 => 0.0.157 ``` # v0.0.156 #### :rocket: Enhancements - [drag] add `resetOnStart` prop (default to false). When true, it will reset drag `x,y` to the start point from the mousedown/touchstart event and `dx,dy` to 0 on drag start [#231](https://github.com/hshoff/vx/pull/231) #### :memo: Documentation - [demo] add /drag-ii demo of a drawboard made with drag [#231](https://github.com/hshoff/vx/pull/231) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ```bash Changes: - @vx/demo: 0.0.155 => 0.0.156 - @vx/drag: 0.0.155 => 0.0.156 - @vx/vx: 0.0.155 => 0.0.156 ``` # v0.0.155 #### :rocket: Enhancements - [drag] add `` component + demo [#229](https://github.com/hshoff/vx/pull/229) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ```bash Changes: - @vx/demo: 0.0.154 => 0.0.155 - @vx/drag: 0.0.153 => 0.0.155 - @vx/vx: 0.0.154 => 0.0.155 ``` # v0.0.154 #### :rocket: Enhancements - [legend] make legend items clickable, add `` propTypes, add click test [#227](https://github.com/hshoff/vx/pull/227) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ```bash Changes: - @vx/demo: 0.0.153 => 0.0.154 - @vx/legend: 0.0.153 => 0.0.154 - @vx/vx: 0.0.153 => 0.0.154 ``` # v0.0.153 #### :house: Internal - [internal] add sideEffects: false to pkg for webpack 4 [#225](https://github.com/hshoff/vx/pull/225) #### :trophy: Contributors - [hshoff](https://github.com/hshoff) ```bash Changes: - @vx/annotation: 0.0.147 => 0.0.153 - @vx/axis: 0.0.152 => 0.0.153 - @vx/bounds: 0.0.147 => 0.0.153 - @vx/boxplot: 0.0.143 => 0.0.153 - @vx/brush: 0.0.143 => 0.0.153 - @vx/clip-path: 0.0.143 => 0.0.153 - @vx/curve: 0.0.143 => 0.0.153 - @vx/demo: 0.0.152 => 0.0.153 - @vx/drag: 0.0.143 => 0.0.153 - @vx/event: 0.0.143 => 0.0.153 - @vx/geo: 0.0.150 => 0.0.153 - @vx/glyph: 0.0.143 => 0.0.153 - @vx/gradient: 0.0.143 => 0.0.153 - @vx/grid: 0.0.147 => 0.0.153 - @vx/group: 0.0.143 => 0.0.153 - @vx/heatmap: 0.0.143 => 0.0.153 - @vx/hierarchy: 0.0.144 => 0.0.153 - @vx/legend: 0.0.143 => 0.0.153 - @vx/marker: 0.0.147 => 0.0.153 - @vx/mock-data: 0.0.147 => 0.0.153 - @vx/network: 0.0.143 => 0.0.153 - @vx/pattern: 0.0.143 => 0.0.153 - @vx/point: 0.0.143 => 0.0.153 - @vx/responsive: 0.0.152 => 0.0.153 - @vx/scale: 0.0.152 => 0.0.153 - @vx/shape: 0.0.147 => 0.0.153 - @vx/stats: 0.0.152 => 0.0.153 - @vx/text: 0.0.152 => 0.0.153 - @vx/tooltip: 0.0.148 => 0.0.153 - @vx/voronoi: 0.0.143 => 0.0.153 - @vx/vx: 0.0.152 => 0.0.153 - @vx/zoom: 0.0.143 => 0.0.153 ``` # v0.0.152 #### :rocket: Enhancements - [text] add `fontWeight` option to vx-text demo [#215](https://github.com/hshoff/vx/pull/215) #### :memo: Documentation - [demo] add vx-text tile and update /text demo [#214](https://github.com/hshoff/vx/pull/214) - [responsive] add description and example of each component and enhancer [#217](https://github.com/hshoff/vx/pull/217) #### :bug: Bug Fix - [text] fix memoized `getStringWidth` ignoring styles [#215](https://github.com/hshoff/vx/pull/215) - [text] remove default width and height from measurement SVG [#219](https://github.com/hshoff/vx/pull/219) - [scale] fix scalePower api to take in exponent instead of base [#223](https://github.com/hshoff/vx/pull/223) #### :house: Internal - [travis] fix for travis failing for timing out when [not receiving output for 10min](https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received) [#224](https://github.com/hshoff/vx/pull/224) - [vx][test] fix `@vx/vx` text test. It was looking for `TextOutline` export which was removed with the [new `@vx/text`](https://github.com/hshoff/vx/pull/208) [#224](https://github.com/hshoff/vx/pull/224) - [axis] bump `prop-types` dep and use `^` [#224](https://github.com/hshoff/vx/pull/224) #### :trophy: Contributors - [techniq](https://github.com/techniq) - [hshoff](https://github.com/hshoff) - [katerineknox](https://github.com/katerineknox) - [crcarlo](https://github.com/crcarlo) ```bash Changes: - @vx/axis: 0.0.151 => 0.0.152 - @vx/demo: 0.0.151 => 0.0.152 - @vx/responsive: 0.0.151 => 0.0.152 - @vx/scale: 0.0.151 => 0.0.152 - @vx/stats: 0.0.151 => 0.0.152 - @vx/text: 0.0.151 => 0.0.152 - @vx/vx: 0.0.151 => 0.0.152 ``` # v0.0.151 - ignore this one, v0.0.152 includes what v0.0.151 was supposed be. i messed up the publish. ```bash Changes: - @vx/axis: 0.0.147 => 0.0.151 - @vx/demo: 0.0.150 => 0.0.151 - @vx/responsive: 0.0.150 => 0.0.151 - @vx/scale: 0.0.143 => 0.0.151 - @vx/stats: 0.0.148 => 0.0.151 - @vx/text: 0.0.150 => 0.0.151 - @vx/vx: 0.0.150 => 0.0.151 ``` # v0.0.150 #### :boom: Breaking Changes - [text] Removes ``, `` and `` components, which were incomplete [#208](https://github.com/hshoff/vx/pull/208) #### :rocket: Enhancements - [geo] Added pointRadius and fixed center [#213](https://github.com/hshoff/vx/pull/213) - [text] Add new ``, with the following features - Word-wrapping (when width prop is defined) - Vertical alignment (verticalAnchor prop) - Rotation (angle prop) - Scale-to-fit text (scaleToFit prop) #### :bug: Bug Fix - [geo] Fixed center typo [#213](https://github.com/hshoff/vx/pull/213) #### :memo: Documentation - [responsive] Backticks import not working so, copy paste broken [#212](https://github.com/hshoff/vx/pull/212) #### :house: Internal - [text] Update `vx-text` author to @techniq [#210](https://github.com/hshoff/vx/pull/210) ```bash Changes: - @vx/demo: 0.0.149 => 0.0.150 - @vx/geo: 0.0.143 => 0.0.150 - @vx/responsive: 0.0.149 => 0.0.150 - @vx/text: 0.0.143 => 0.0.150 - @vx/vx: 0.0.149 => 0.0.150 ``` # v0.0.149 #### :rocket: Enhancements - [responsive] bump `resize-observer-polyfill` [#206](https://github.com/hshoff/vx/pull/206) #### :bug: Bug Fix - [demo] add overflow hidden on flex: 1 `` parents [#206](https://github.com/hshoff/vx/pull/206) ```bash Changes: - @vx/demo: 0.0.148 => 0.0.149 - @vx/responsive: 0.0.147 => 0.0.149 - @vx/vx: 0.0.148 => 0.0.149 ``` # v0.0.148 #### :bug: Bug Fix - [stats] [boxplot] fix container props calculation [#203](https://github.com/hshoff/vx/pull/203) - [tooltip] fix tootlip with bounds offset [#204](https://github.com/hshoff/vx/pull/204) ```bash Changes: - @vx/demo: 0.0.147 => 0.0.148 - @vx/stats: 0.0.147 => 0.0.148 - @vx/tooltip: 0.0.147 => 0.0.148 - @vx/vx: 0.0.147 => 0.0.148 ``` # v0.0.147 #### :boom: Breaking Changes - [shape] deep links to `@vx/shape/shapes/Link{Horizontal, Vertical, Radial}.js` => `@vx/shape/shapes/link/diagonal/Link{Horizontal, Vertical, Radial}.js`. [#194](https://github.com/hshoff/vx/pull/194) #### :rocket: Enhancements - [tooltip] add offset props to ``. [#193](https://github.com/hshoff/vx/pull/193) - [shape] Add support for step, curve, and line links. [#194](https://github.com/hshoff/vx/pull/194) - [responsive] add `` component. [#198](https://github.com/hshoff/vx/pull/198) - [stats] added vx-stats for statistic related glyphs (boxplot and violinplot). [#197](https://github.com/hshoff/vx/pull/197) **note:** `@vx/boxplot` is deprecated in favor of `@vx/stats` in a future release `@vx/boxplot` will be removed #### :house: Internal - [demo] update gallery tiles to use ``. [#198](https://github.com/hshoff/vx/pull/198) - [demo] add /responsive gallery tile + page. [#198](https://github.com/hshoff/vx/pull/198) ```bash Changes: - @vx/annotation: 0.0.146 => 0.0.147 - @vx/axis: 0.0.146 => 0.0.147 - @vx/bounds: 0.0.143 => 0.0.147 - @vx/demo: 0.0.146 => 0.0.147 - @vx/grid: 0.0.146 => 0.0.147 - @vx/marker: 0.0.146 => 0.0.147 - @vx/mock-data: 0.0.144 => 0.0.147 - @vx/responsive: 0.0.143 => 0.0.147 - @vx/shape: 0.0.146 => 0.0.147 - @vx/stats: 0.0.143 => 0.0.147 - @vx/tooltip: 0.0.143 => 0.0.147 - @vx/vx: 0.0.146 => 0.0.147 ``` # v0.0.146 #### :rocket: Enhancements - [shape] add `` [#185](https://github.com/hshoff/vx/pull/185) #### :memo: Documentation - [demo] add `` [#185](https://github.com/hshoff/vx/pull/185) - [demo] tile updates [#186](https://github.com/hshoff/vx/pull/186) #### :house: Internal - [shape] remove build/index.js [#186](https://github.com/hshoff/vx/pull/186) ```bash Changes: - @vx/annotation: 0.0.145 => 0.0.146 - @vx/axis: 0.0.145 => 0.0.146 - @vx/demo: 0.0.145 => 0.0.146 - @vx/grid: 0.0.145 => 0.0.146 - @vx/marker: 0.0.145 => 0.0.146 - @vx/shape: 0.0.145 => 0.0.146 - @vx/vx: 0.0.145 => 0.0.146 ``` # v0.0.145 #### :rocket: Enhancements - [shape] add `` and tests [#183](https://github.com/hshoff/vx/pull/183) - [demo] add Radar chart [#180](https://github.com/hshoff/vx/pull/180) - [axis] add additional tests [#161](https://github.com/hshoff/vx/pull/161) #### :bug: Bug Fix - [axis] less restrictive tickValue propTypes [#184](https://github.com/hshoff/vx/pull/184) ```bash Changes: - @vx/annotation: 0.0.144 => 0.0.145 - @vx/axis: 0.0.144 => 0.0.145 - @vx/demo: 0.0.144 => 0.0.145 - @vx/grid: 0.0.144 => 0.0.145 - @vx/marker: 0.0.144 => 0.0.145 - @vx/shape: 0.0.144 => 0.0.145 - @vx/vx: 0.0.144 => 0.0.145 ``` # v0.0.144 #### 💥 Breaking Changes - [shape] `` renamed ``, new `` not dependent on d3-shape pie generator. [#179](https://github.com/hshoff/vx/pull/179) #### 🚀 Enhancements - [demo] add `` and `` demo tiles + pages. [#179](https://github.com/hshoff/vx/pull/179) - [mock] add exoplanets, planets, and shakespeare mocks. [#179](https://github.com/hshoff/vx/pull/179) #### 🐛 Bug Fix - [hierarchy] rename `` classnames from `vx-pack` => `vx-partition`. [#179](https://github.com/hshoff/vx/pull/179) - [hierarchy] export partition, treemap, and pack from index. [#179](https://github.com/hshoff/vx/pull/179) ```bash Changes: - @vx/annotation: 0.0.143 => 0.0.144 - @vx/axis: 0.0.143 => 0.0.144 - @vx/demo: 0.0.143 => 0.0.144 - @vx/grid: 0.0.143 => 0.0.144 - @vx/hierarchy: 0.0.143 => 0.0.144 - @vx/marker: 0.0.143 => 0.0.144 - @vx/mock-data: 0.0.143 => 0.0.144 - @vx/shape: 0.0.143 => 0.0.144 - @vx/vx: 0.0.143 => 0.0.144 ``` # v0.0.143 #### :boom: Breaking Changes - [hierarchy] `` & `` now only pass `data` as an argument to the child render function [#173](https://github.com/hshoff/vx/pull/173) #### :rocket: Enhancement - [hierarchy] add ``, ``, & `` [#173](https://github.com/hshoff/vx/pull/173) #### :house: Internal - [deps][tests] use react 16 dev dep, enzyme 3, jest 21. fix tests. [#178](https://github.com/hshoff/vx/pull/178) ```bash Changes: - @vx/annotation: 0.0.142 => 0.0.143 - @vx/axis: 0.0.142 => 0.0.143 - @vx/bounds: 0.0.141 => 0.0.143 - @vx/boxplot: 0.0.140 => 0.0.143 - @vx/brush: 0.0.140 => 0.0.143 - @vx/clip-path: 0.0.140 => 0.0.143 - @vx/curve: 0.0.140 => 0.0.143 - @vx/demo: 0.0.142 => 0.0.143 - @vx/drag: 0.0.140 => 0.0.143 - @vx/event: 0.0.141 => 0.0.143 - @vx/geo: 0.0.140 => 0.0.143 - @vx/glyph: 0.0.140 => 0.0.143 - @vx/gradient: 0.0.140 => 0.0.143 - @vx/grid: 0.0.142 => 0.0.143 - @vx/group: 0.0.140 => 0.0.143 - @vx/heatmap: 0.0.140 => 0.0.143 - @vx/hierarchy: 0.0.141 => 0.0.143 - @vx/legend: 0.0.141 => 0.0.143 - @vx/marker: 0.0.142 => 0.0.143 - @vx/mock-data: 0.0.136 => 0.0.143 - @vx/network: 0.0.140 => 0.0.143 - @vx/pattern: 0.0.140 => 0.0.143 - @vx/point: 0.0.136 => 0.0.143 - @vx/responsive: 0.0.140 => 0.0.143 - @vx/scale: 0.0.140 => 0.0.143 - @vx/shape: 0.0.142 => 0.0.143 - @vx/text: 0.0.140 => 0.0.143 - @vx/tooltip: 0.0.141 => 0.0.143 - @vx/voronoi: 0.0.140 => 0.0.143 - @vx/vx: 0.0.142 => 0.0.143 - @vx/zoom: 0.0.140 => 0.0.143 ``` # v0.0.142 #### :rocket: Enhancement - [shape] add innerRef prop to shapes [#168](https://github.com/hshoff/vx/pull/168) ### :memo: Documentation - [demo] fix typo on /, fix areas tile details [#169](https://github.com/hshoff/vx/pull/169) ```bash Changes: - @vx/annotation: 0.0.141 => 0.0.142 - @vx/axis: 0.0.141 => 0.0.142 - @vx/demo: 0.0.141 => 0.0.142 - @vx/grid: 0.0.141 => 0.0.142 - @vx/marker: 0.0.141 => 0.0.142 - @vx/shape: 0.0.141 => 0.0.142 - @vx/vx: 0.0.141 => 0.0.142 ``` # v0.0.141 #### :rocket: Enhancement - [hierarchy] add render prop to `` + `` [#163](https://github.com/hshoff/vx/pull/163) - [axis] render prop for axis, full control over rendering [#165](https://github.com/hshoff/vx/pull/165) - [event] add touch event support to localPoint(), find owner svg for single arity call [#167](https://github.com/hshoff/vx/pull/167) #### :bug: Bug Fix - [shape] fix typo in stack order enum [#164](https://github.com/hshoff/vx/pull/164) - [legend] fix legend threshold [#166](https://github.com/hshoff/vx/pull/166) ```bash Changes: - @vx/annotation: 0.0.140 => 0.0.141 - @vx/axis: 0.0.140 => 0.0.141 - @vx/bounds: 0.0.140 => 0.0.141 - @vx/demo: 0.0.140 => 0.0.141 - @vx/event: 0.0.140 => 0.0.141 - @vx/grid: 0.0.140 => 0.0.141 - @vx/hierarchy: 0.0.140 => 0.0.141 - @vx/legend: 0.0.140 => 0.0.141 - @vx/marker: 0.0.140 => 0.0.141 - @vx/shape: 0.0.140 => 0.0.141 - @vx/tooltip: 0.0.140 => 0.0.141 - @vx/vx: 0.0.140 => 0.0.141 ``` # v0.0.140 ### :house: Internal - [deps] add react 16 as peer dep, use react-test-renderer [#155](https://github.com/hshoff/vx/pull/155) ```bash Changes: - @vx/annotation: 0.0.139 => 0.0.140 - @vx/axis: 0.0.139 => 0.0.140 - @vx/bounds: 0.0.137 => 0.0.140 - @vx/boxplot: 0.0.136 => 0.0.140 - @vx/brush: 0.0.136 => 0.0.140 - @vx/clip-path: 0.0.136 => 0.0.140 - @vx/curve: 0.0.136 => 0.0.140 - @vx/demo: 0.0.139 => 0.0.140 - @vx/drag: 0.0.136 => 0.0.140 - @vx/event: 0.0.136 => 0.0.140 - @vx/geo: 0.0.136 => 0.0.140 - @vx/glyph: 0.0.136 => 0.0.140 - @vx/gradient: 0.0.136 => 0.0.140 - @vx/grid: 0.0.139 => 0.0.140 - @vx/group: 0.0.136 => 0.0.140 - @vx/heatmap: 0.0.136 => 0.0.140 - @vx/hierarchy: 0.0.139 => 0.0.140 - @vx/legend: 0.0.139 => 0.0.140 - @vx/marker: 0.0.139 => 0.0.140 - @vx/network: 0.0.136 => 0.0.140 - @vx/pattern: 0.0.136 => 0.0.140 - @vx/responsive: 0.0.136 => 0.0.140 - @vx/scale: 0.0.136 => 0.0.140 - @vx/shape: 0.0.139 => 0.0.140 - @vx/text: 0.0.136 => 0.0.140 - @vx/tooltip: 0.0.137 => 0.0.140 - @vx/voronoi: 0.0.136 => 0.0.140 - @vx/vx: 0.0.139 => 0.0.140 - @vx/zoom: 0.0.136 => 0.0.140 ``` # v0.0.139 #### :rocket: Enhancement - [shape] add `` for streamgraphs and other fun + exciting things [#153](https://github.com/hshoff/vx/pull/153) #### :bug: Bug Fix - [legend] fix legend style prop [#151](https://github.com/hshoff/vx/pull/151) - [hierarchy] fix name collisions [#147](https://github.com/hshoff/vx/pull/147) ### :memo: Documentation - [hierarchy] update links and descriptions in readme [#148](https://github.com/hshoff/vx/pull/148) ```bash Changes: - @vx/annotation: 0.0.136 => 0.0.139 - @vx/axis: 0.0.138 => 0.0.139 - @vx/demo: 0.0.138 => 0.0.139 - @vx/grid: 0.0.136 => 0.0.139 - @vx/hierarchy: 0.0.138 => 0.0.139 - @vx/legend: 0.0.136 => 0.0.139 - @vx/marker: 0.0.136 => 0.0.139 - @vx/shape: 0.0.136 => 0.0.139 - @vx/vx: 0.0.138 => 0.0.139 ``` # v0.0.138 ### :boom: Breaking Changes - [axis] improve `@vx/axis` api, update docs [#142](https://github.com/hshoff/vx/pull/142) ### :memo: Documentation - [hierarchy] add readme for vx/hierarchy [#136](https://github.com/hshoff/vx/pull/136) ### :house: Internal - [vx][pkg] bump lerna 2.0.0-beta.38 => 2.1.2 [#145](https://github.com/hshoff/vx/pull/145) ```bash Changes: - @vx/axis: 0.0.136 => 0.0.138 - @vx/demo: 0.0.137 => 0.0.138 - @vx/hierarchy: 0.0.136 => 0.0.138 - @vx/vx: 0.0.137 => 0.0.138 ``` # v0.0.137 - [vx] add one stop install pkg @vx/vx [#131](https://github.com/hshoff/vx/pull/131) - [bounds] move react-dom to peerDeps [#132](https://github.com/hshoff/vx/pull/132) ```bash Changes: - @vx/bounds: 0.0.136 => 0.0.137 - @vx/demo: 0.0.136 => 0.0.137 - @vx/tooltip: 0.0.136 => 0.0.137 - @vx/vx: 1.0.0 => 0.0.137 ``` # v0.0.136 - [all] add package-lock=false to .npmrc fixes [#93](https://github.com/hshoff/vx/issues/93) [#129](https://github.com/hshoff/vx/pull/129) - [demo][docs] sync vx-demo site documentation with packages [#125](https://github.com/hshoff/vx/pull/125) - [gradient][pattern] fix typos [#121](https://github.com/hshoff/vx/pull/121) - [demo] updated geo + network tiles [#120](https://github.com/hshoff/vx/pull/120) - [event] add touch point [#116](https://github.com/hshoff/vx/pull/116) - [gradient] Add minimal rendering tests [#114](https://github.com/hshoff/vx/pull/114) ```bash Changes: - @vx/annotation: 0.0.131 => 0.0.136 - @vx/axis: 0.0.134 => 0.0.136 - @vx/bounds: 0.0.129 => 0.0.136 - @vx/boxplot: 0.0.131 => 0.0.136 - @vx/brush: 0.0.127 => 0.0.136 - @vx/clip-path: 0.0.127 => 0.0.136 - @vx/curve: 0.0.127 => 0.0.136 - @vx/demo: 0.0.135 => 0.0.136 - @vx/drag: 0.0.127 => 0.0.136 - @vx/event: 0.0.127 => 0.0.136 - @vx/geo: 0.0.135 => 0.0.136 - @vx/glyph: 0.0.127 => 0.0.136 - @vx/gradient: 0.0.129 => 0.0.136 - @vx/grid: 0.0.131 => 0.0.136 - @vx/group: 0.0.127 => 0.0.136 - @vx/heatmap: 0.0.127 => 0.0.136 - @vx/hierarchy: 0.0.127 => 0.0.136 - @vx/legend: 0.0.127 => 0.0.136 - @vx/marker: 0.0.131 => 0.0.136 - @vx/mock-data: 0.0.135 => 0.0.136 - @vx/network: 0.0.135 => 0.0.136 - @vx/pattern: 0.0.127 => 0.0.136 - @vx/point: 0.0.127 => 0.0.136 - @vx/responsive: 0.0.127 => 0.0.136 - @vx/scale: 0.0.127 => 0.0.136 - @vx/shape: 0.0.131 => 0.0.136 - @vx/text: 0.0.127 => 0.0.136 - @vx/tooltip: 0.0.134 => 0.0.136 - @vx/voronoi: 0.0.127 => 0.0.136 - @vx/zoom: 0.0.127 => 0.0.136 ``` # v0.0.135 - [geo] add graticule [#111](https://github.com/hshoff/vx/pull/111) - [network] add @vx/network [#113](https://github.com/hshoff/vx/pull/113) - [demo] fix invalid JSX [#118](https://github.com/hshoff/vx/pull/118) - [network][geo][demo] polish for v0.0.135 [#119](https://github.com/hshoff/vx/pull/119) ```bash Changes: - @vx/demo: 0.0.134 => 0.0.135 - @vx/geo: 0.0.134 => 0.0.135 - @vx/mock-data: 0.0.127 => 0.0.135 - @vx/network: 0.0.127 => 0.0.135 ``` # v0.0.134 - [axis] make ticks more customizable [#109](https://github.com/hshoff/vx/pull/109) - [tooltip] add `` and PropTypes to `@vx/tooltip` exports [#108](https://github.com/hshoff/vx/pull/108) - [demo] use @vx/geo version in deps [#106](https://github.com/hshoff/vx/pull/106) ```bash Changes: - @vx/axis: 0.0.133 => 0.0.134 - @vx/demo: 0.0.133 => 0.0.134 - @vx/tooltip: 0.0.133 => 0.0.134 ``` # v0.0.133 - ignore this version, lerna got into a bad state. ```bash Changes: - @vx/axis: 0.0.131 => 0.0.133 - @vx/demo: 0.0.132 => 0.0.133 - @vx/tooltip: 0.0.127 => 0.0.133 ``` # v0.0.132 - [geo] add package geo [#105](https://github.com/hshoff/vx/pull/105) ```bash Changes: - @vx/demo: 0.0.131 => 0.0.132 - @vx/geo: 0.0.132 => 0.0.132 ``` # v0.0.131 - [shape] LinePath.defined should default to true [#101](https://github.com/hshoff/vx/pull/101) - [boxplot] add docs [#102](https://github.com/hshoff/vx/pull/102) - [shape] add x-value mouseover to area demo [#103](https://github.com/hshoff/vx/pull/103) - [grid] add styles and restProps support for grid lines [#103](https://github.com/hshoff/vx/pull/103) ```bash Changes: - @vx/annotation: 0.0.130 => 0.0.131 - @vx/axis: 0.0.130 => 0.0.131 - @vx/boxplot: 0.0.127 => 0.0.131 - @vx/demo: 0.0.130 => 0.0.131 - @vx/grid: 0.0.130 => 0.0.131 - @vx/marker: 0.0.130 => 0.0.131 - @vx/shape: 0.0.130 => 0.0.131 ``` # v0.0.130 - [shape] Add tests for Arc, AreaClosed, & Line, fix AreaClosed error [#95](https://github.com/hshoff/vx/pull/95) - [Axis] Add tests to Axis.test.js [#94](https://github.com/hshoff/vx/pull/94) ```bash Changes: - @vx/annotation: 0.0.127 => 0.0.130 - @vx/axis: 0.0.127 => 0.0.130 - @vx/demo: 0.0.129 => 0.0.130 - @vx/grid: 0.0.127 => 0.0.130 - @vx/marker: 0.0.127 => 0.0.130 - @vx/shape: 0.0.127 => 0.0.130 ``` # v0.0.129 - [gradient] add [#90](https://github.com/hshoff/vx/pull/90) - [bounds] add `@vx/bounds` package with `withBoundingRects()` HOC [#91](https://github.com/hshoff/vx/pull/91) ```bash Changes: - @vx/bounds: 0.0.128 => 0.0.129 - @vx/demo: 0.0.128 => 0.0.129 - @vx/gradient: 0.0.128 => 0.0.129 ``` # v0.0.128 - ignore this one, `lerna publish` failed midway through ```bash Changes: - @vx/bounds: 0.0.0 => 0.0.128 - @vx/demo: 0.0.127 => 0.0.128 - @vx/gradient: 0.0.127 => 0.0.128 ``` # v0.0.127 - [boxplot] add `@vx/boxplot` [#89](https://github.com/hshoff/vx/pull/89) - [mock data] add `genBoxPlot()` [#89](https://github.com/hshoff/vx/pull/89) - [tooltip] fix pass through style and restProps [#89](https://github.com/hshoff/vx/pull/89) - [shape] fix BarStack.test.js [#88](https://github.com/hshoff/vx/pull/88) ```bash Changes: - @vx/annotation: 0.0.126 => 0.0.127 - @vx/axis: 0.0.126 => 0.0.127 - @vx/boxplot: 1.0.0 => 0.0.127 - @vx/brush: 0.0.126 => 0.0.127 - @vx/clip-path: 0.0.126 => 0.0.127 - @vx/curve: 0.0.126 => 0.0.127 - @vx/demo: 0.0.126 => 0.0.127 - @vx/drag: 0.0.126 => 0.0.127 - @vx/event: 0.0.126 => 0.0.127 - @vx/glyph: 0.0.126 => 0.0.127 - @vx/gradient: 0.0.126 => 0.0.127 - @vx/grid: 0.0.126 => 0.0.127 - @vx/group: 0.0.126 => 0.0.127 - @vx/heatmap: 0.0.126 => 0.0.127 - @vx/hierarchy: 0.0.126 => 0.0.127 - @vx/legend: 0.0.126 => 0.0.127 - @vx/marker: 0.0.126 => 0.0.127 - @vx/mock-data: 0.0.126 => 0.0.127 - @vx/pattern: 0.0.126 => 0.0.127 - @vx/point: 0.0.126 => 0.0.127 - @vx/responsive: 0.0.126 => 0.0.127 - @vx/scale: 0.0.126 => 0.0.127 - @vx/shape: 0.0.126 => 0.0.127 - @vx/text: 0.0.126 => 0.0.127 - @vx/tooltip: 0.0.126 => 0.0.127 - @vx/voronoi: 0.0.126 => 0.0.127 - @vx/zoom: 0.0.126 => 0.0.127 ``` # v0.0.126 - [tooltip] add @vx/tooltip [#87](https://github.com/hshoff/vx/pull/87) - [glyph] put classname on the not on [#87](https://github.com/hshoff/vx/pull/87) - [mock data] add mock/bitcoinPrice [#87](https://github.com/hshoff/vx/pull/87) - [demo] add tooltip demo to dots and barstack, add legend to barstack [#87](https://github.com/hshoff/vx/pull/87) - [shape] update `data` passed to each bar in [#87](https://github.com/hshoff/vx/pull/87) # v0.0.125 - ignore this one, `lerna publish` failed midway through # v0.0.124 - [glyph] add remaining d3 symbols [#84](https://github.com/hshoff/vx/pull/84) + [#81](https://github.com/hshoff/vx/pull/81) - [gradient] add horizontal linear gradients, make more flexible [#82](https://github.com/hshoff/vx/pull/82) - [axis] export orientation constants [#80](https://github.com/hshoff/vx/pull/80) - [legend] fix proptypes check on shape prop [#82](https://github.com/hshoff/vx/pull/82) ```bash Changes: - @vx/axis: 0.0.120 => 0.0.124 - @vx/demo: 0.0.123 => 0.0.124 - @vx/glyph: 0.0.121 => 0.0.124 - @vx/gradient: 0.0.120 => 0.0.124 - @vx/legend: 0.0.121 => 0.0.124 ``` # v0.0.123 - add `@vx/voronoi` [#78](https://github.com/hshoff/vx/pull/78) ```bash Changes: - @vx/demo: 0.0.122 => 0.0.123 - @vx/voronoi: 1.0.0 => 0.0.123 ``` # v0.0.122 - ignore this one, I ran `lerna publish --exact` before `lerna bootstrap` and it failed to publish, but managed to increment versions and couldn't figure how to "undo" it so rolling foward to v0.0.123 ```bash Changes: - @vx/demo: 0.0.122 => 0.0.122 - @vx/voronoi: 0.0.0 => 0.0.122 ``` # v0.0.121 - add `@vx/legend` [#77](https://github.com/hshoff/vx/pull/77) - add `scaleQuantize`, `scaleQuantile`, `scaleThreshold` - added `GlyphCross` but it's not working yet ```bash Changes: - @vx/demo: 0.0.120 => 0.0.121 - @vx/glyph: 0.0.120 => 0.0.121 - @vx/legend: 1.0.0 => 0.0.121 - @vx/scale: 0.0.117 => 0.0.121 ``` # v0.0.120 - moved `react` to peerDep & devDep [#75](https://github.com/hshoff/vx/pull/75) - add missing `restProps` + `additionalProps` to shape & glyph [#76](https://github.com/hshoff/vx/pull/76) - set AreaClosed `y0` to the range's start not `0` [#45](https://github.com/hshoff/vx/pull/74) - add strokeDashoffset prop to LinePath [#70](https://github.com/hshoff/vx/pull/70) - replace lodash per-method packages with scoped imports [#66](https://github.com/hshoff/vx/pull/66) - add tests for pattern circles [#63](https://github.com/hshoff/vx/pull/63) - add @vx/clip-path [#61](https://github.com/hshoff/vx/pull/61) - fix axis label transform [#59](https://github.com/hshoff/vx/pull/59) ```bash Changes: - @vx/annotation: 0.0.119 => 0.0.120 - @vx/axis: 0.0.119 => 0.0.120 - @vx/brush: 0.0.114 => 0.0.120 - @vx/clip-path: 0.0.0 => 0.0.120 - @vx/demo: 0.0.119 => 0.0.120 - @vx/drag: 0.0.114 => 0.0.120 - @vx/glyph: 0.0.114 => 0.0.120 - @vx/gradient: 0.0.112 => 0.0.120 - @vx/grid: 0.0.119 => 0.0.120 - @vx/group: 0.0.114 => 0.0.120 - @vx/heatmap: 0.0.116 => 0.0.120 - @vx/hierarchy: 0.0.119 => 0.0.120 - @vx/marker: 0.0.119 => 0.0.120 - @vx/pattern: 0.0.112 => 0.0.120 - @vx/responsive: 0.0.115 => 0.0.120 - @vx/shape: 0.0.119 => 0.0.120 - @vx/text: 0.0.114 => 0.0.120 ``` # v0.0.114 ### @vx/shape - added `` & `` [#39](https://github.com/hshoff/vx/pull/39) ### general - added jest + enzyme tests & travis + coveralls ci # v0.0.113 ### @vx/axis - axis labels and tickLabels are now passed in as components [#31](https://github.com/hshoff/vx/pull/31) • [example diff](https://github.com/hshoff/vx/pull/31/files#diff-427e08aaa7d707f2374af36902ff0e15) ### @vx/group - added `transform` prop [#31](https://github.com/hshoff/vx/pull/31) # v0.0.112 ### @vx/curve, @vx/point, @vx/mock-data, @vx/annotation, @vx/group, @vx/pattern, @vx/gradient, @vx/glyph - added tests with jest + enzyme [#30](https://github.com/hshoff/vx/pull/30) ### @vx/annotation, @vx/pattern - added prop-types [#30](https://github.com/hshoff/vx/pull/30) ================================================ FILE: CODE_OF_CONDUCT.md ================================================ # Contributor Covenant Code of Conduct Airbnb has adopted a Code of Conduct that we expect project participants to adhere to. Please [read the full Code of Conduct text](https://airbnb.io/codeofconduct/) so that you can understand what actions will and will not be tolerated. Report violations to the maintainers of this project or to [opensource-conduct@airbnb.com](mailto:opensource-conduct@airbnb.com). Reports sent to [opensource-conduct@airbnb.com](mailto:opensource-conduct@airbnb.com) are received by Airbnb's open source code of conductmoderation team, which is composed of Airbnb employees. All communications are private and confidential. ================================================ FILE: CONTRIBUTING.md ================================================ # Contributing Contributions welcome! Please follow the [code of conduct](./CODE_OF_CONDUCT.md). ## Overview [Yarn workspaces](https://yarnpkg.com/lang/en/docs/workspaces/) are used to manage dependencies and build config across packages in the umbrella `visx` monorepo, and [lerna](https://github.com/lerna/lerna/) is used to manage versioning. ## Project structure ``` visx/ lerna.json package.json packages/ visx-package-1/ src/ test/ build/ package.json ... visx-package-2/ ... ... ``` ## Local development Run the following to setup your local dev environment: ```sh # Install `yarn`, alternatives at https://yarnpkg.com/en/docs/install curl -o- -L https://yarnpkg.com/install.sh | bash # Clone or fork `visx` git clone git@github.com:airbnb/visx.git # or your fork cd visx # install dependencies, and have `yarn` symlink within-`visx` dependencies yarn # build packages and generate types for local development yarn build ``` #### Rebuild specific package(s) Upon modification of a single `package` you can run the following to rebuild it. Note that you can specify multiple packages to build this way, and optionally append `--watch` to continuously watch for changes. ```sh # build the specified package(s) as cjs + esm versions # example `PKG=@visx/axis yarn babel:pkg` PKG=@visx/{package[,package]} yarn babel:pkg # generate d.ts(definition files) the specified package(s) # and rebuild any other packages the specified package(s) depend on # example `PKG=@visx/axis yarn type:pkg` PKG=@visx/{package[,package]} yarn type:pkg ``` from the `visx` monorepo root to re-build the package with your changes. #### Running demo pages You can use the local [`next.js`](https://nextjs.org) dev server within `packages/visx-demo` to view and iterate on your changes in the gallery. From the `packages/visx-demo` folder run `yarn dev` to start the next server which (if correctly sym-linked) will also watch for changes you make to other packages (upon re-building them, see above section). #### Config generation `visx` uses [`@airbnb/nimbus`](https://github.com/airbnb/nimbus) to generate build configuration for `eslint`, `prettier`, `jest`, `babel`, and `typescript`. ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2017-2018 Harrison Shoff Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: PULL_REQUEST_TEMPLATE.md ================================================ #### :boom: Breaking Changes - #### :rocket: Enhancements - #### :memo: Documentation - #### :bug: Bug Fix - #### :house: Internal - ================================================ FILE: README.md ================================================

### visx visx is a collection of reusable low-level visualization components. visx combines the power of d3 to generate your visualization with the benefits of react for updating the DOM.

Docs Gallery Blog Discussions Changelog Getting started tutorial

## Usage Let's make a simple bar graph. First we'll install the relevant packages: ```bash npm install --save @visx/mock-data @visx/group @visx/shape @visx/scale ``` ```javascript import React from 'react'; import { letterFrequency } from '@visx/mock-data'; import { Group } from '@visx/group'; import { Bar } from '@visx/shape'; import { scaleLinear, scaleBand } from '@visx/scale'; // We'll use some mock data from `@visx/mock-data` for this. const data = letterFrequency; // Define the graph dimensions and margins const width = 500; const height = 500; const margin = { top: 20, bottom: 20, left: 20, right: 20 }; // Then we'll create some bounds const xMax = width - margin.left - margin.right; const yMax = height - margin.top - margin.bottom; // We'll make some helpers to get at the data we want const x = (d) => d.letter; const y = (d) => +d.frequency * 100; // And then scale the graph by our data const xScale = scaleBand({ range: [0, xMax], round: true, domain: data.map(x), padding: 0.4, }); const yScale = scaleLinear({ range: [yMax, 0], round: true, domain: [0, Math.max(...data.map(y))], }); // Compose together the scale and accessor functions to get point functions const compose = (scale, accessor) => (data) => scale(accessor(data)); const xPoint = compose(xScale, x); const yPoint = compose(yScale, y); // Finally we'll embed it all in an SVG function BarGraph(props) { return ( {data.map((d, i) => { const barHeight = yMax - yPoint(d); return ( ); })} ); } // ... somewhere else, render it ... // ``` For more examples using `visx`, check out the [gallery](https://airbnb.io/visx/gallery). ## Motivation **Goal** The goal is to create a library of components you can use to make both your own reusable chart library or your slick custom one-off chart. visx is largely unopinionated and is meant to be built upon. Keep your bundle sizes down and use only the packages you need. **How?** Under the hood, visx is using d3 for the calculations and math. If you're creating your own awesome chart library on top of visx, it's easy to create a component api that hides d3 entirely. Meaning your team could create charts as easily as using reusable react components. **But why?** Mixing two mental models for updating the DOM is never a good time. Copy and pasting d3 code into `componentDidMount()` is just that. This collection of components lets you easily build your own reusable visualization charts or library without having to learn d3. No more selections or `enter()`/`exit()`/`update()`. ## In the wild - [williaster/data-ui](https://github.com/williaster/data-ui) ([Demo](https://williaster.github.io/data-ui/)) - [dylanmoz/trello](https://github.com/DylanMoz/dylanmoz.github.io/blob/source/src/pages/trello/TrelloGraph.js) ([Demo](http://dylanmoz.github.io/trello/)) ([How to Make Beautiful Graphs With vx and React-Motion](https://devblog.classy.org/how-to-make-beautiful-graphs-with-vx-and-react-motion-6ffe7aecf6f3)) - [gkunthara/Crypto-Chart](https://github.com/gkunthara/Crypto-Chart) ([Tutorial](https://medium.com/@georgekunthara/after-the-tutorial-the-first-react-app-4dce6645634e)) - Collapsible tree with [`react-move`](https://github.com/react-tools/react-move) by [@techniq](https://github.com/techniq) ([Demo](https://codesandbox.io/s/n3w687vmqj)) ([Radial demo](https://codesandbox.io/s/vmqwrkl395)) ([More info](https://github.com/airbnb/visx/issues/162#issuecomment-335029517)) - Bitcoin 30-day price by [@hshoff](https://github.com/hshoff) ([Github](https://github.com/hshoff/viewsource#1-bitcoin-price-chart)) ([YouTube](https://www.youtube.com/watch?v=oeE2tuspdHg)) - Ethereum candlestick chart by [@hshoff](https://github.com/hshoff) ([Github](https://github.com/hshoff/viewsource#2-ethereum-candlestick-chart)) - Song data visualization through spotify by [@bother7](https://github.com/bother7) ([Github](https://github.com/bother7/spotalyzer_frontend)) - Investment Calculator ([website](https://investmentcalculator.io/)) - Animation with [`react-spring`](https://github.com/drcmda/react-spring/) by [@drcmda](https://github.com/drcmda) ([Demo](https://codesandbox.io/embed/j3x61vjz5v)) - Code Coverage Dashboard by [@ezy](https://github.com/ezy) ([Github](https://github.com/ezy/code-coverage-dashboard)) - Ethereum Portfolio Toolkit by [@JayWelsh](https://github.com/JayWelsh) ([Demo](https://cryptocape.com/)) ([Github](https://github.com/JayWelsh/CryptoCape)) - Family tree by [@vkallore](https://github.com/vkallore) ([Github](https://github.com/vkallore/d3-vx-family-tree)) - South African Coronavirus Data Visuals by [@JayWelsh](https://github.com/JayWelsh) ([Demo](https://coronamap.co.za/)) ([Github](https://github.com/JayWelsh/coronamap)) - [CNN: Tracking America's Recovery](https://www.cnn.com/business/us-economic-recovery-coronavirus) - [Wall Street Journal: Americans Familiarize Themselves with the Word ‘Forbearance’](https://blogs.wsj.com/dailyshot/2020/04/13/the-daily-shot-americans-familiarize-themselves-with-the-word-forbearance/) by [@rayshan](https://github.com/rayshan) ([Demo](https://finance.shan.io/recessions-bear-markets-compared)) - Dollar to food emoji caculator by [@gmlwo530](https://github.com/gmlwo530) ([Demo](https://dollar-to-food-emoji.web.app/)) ([Github](https://github.com/gmlwo530/dollar-to-food-emoji)) - [zh-TW] Taiwan Real-time Air Quality Index by [@ArvinH](https://github.com/ArvinH)([Demo](https://codesandbox.io/s/simpleradar-aqi-with-tooltip-select-data-react-spring-item3?file=/Radar.tsx))([Tutorial](https://blog.arvinh.info/tech/datavis-visx)) - tokenized BTC on ethereum stacked chart with brush by [@sakulstra](https://github.com/sakulstra) - [Escape From Tarkov Ammo Chart](https://eft.monster/) by [@codenomial](https://github.com/codenomial) - [Pry](https://pry.co) Finance for Founders (dashboard by [@valtism](https://github.com/valtism)) - [Data 2 the People](https://www.data2thepeople.org/) Donation Efficacy Analysis for Downballot Races ([Demo](https://donate.data2thepeople.org/)) ([Github](https://github.com/Data-2-the-People/skyfall/blob/master/components/Scatterplot.jsx)) - [Augora](https://augora.fr) Display information of french deputies ([Demo](https://augora.fr/statistiques))([Github](https://github.com/Augora/Augora)) - WHO Coronavirus (COVID-19) Dashboard is built on top of `vx`, earlier version of `visx`. ([Demo](https://covid19.who.int/)) - [Fig Stats](https://fig-stats.com) - Figma community plugin & widget analytics - [Physician.FYI](https://physician.fyi) - Explore physicians' disciplinary history - [Index by Superstardle](https://index.superstardle.com), [Salaries by Superstardle](https://salaries.superstardle.com), & [Pack'Em by Superstardle](https://playoffs.superstardle.com) - Explore professional sports teams and superstars in the world of underdogs, salaries, and playoff performances. - Ridgeline chart visualizing shuffling probabilities by [@jmssnr](https://github.com/jmssnr) ([Demo](https://shuffling-probability.vercel.app/)) ([Github](https://github.com/jmssnr/shuffling-probability)) - [UCSF Data Library](https://datalibrary.ucsf.edu) - Landing page for disease research tools ([Github](https://github.com/mountetna/monoetna/tree/master/vesta/ui)) Have a project that's using `visx`? Open a pull request and we'll add it to the list. ## FAQ 1. What does `visx` stand for? > visx stands for visualization components. 1. Do you plan on supporting animation/transitions? > A common criticism of visx is it doesn't have animation baked in, but this was a conscious > choice. It's a powerful feature to not bake it in. > > Imagine your app already bundles `react-motion`, adding a hypothetical `@visx/animation` is > bloat. Since visx is react, it already supports all react animation libs. > > Charting libraries are like style guides. Each org or app will eventually want full control > over their own implementation. > > visx makes this easier for everyone. No need to reinvent the wheel each time. > > more info: https://github.com/airbnb/visx/issues/6 > > examples: > > - Collapsible tree with [`react-move`](https://github.com/react-tools/react-move) by > [@techniq](https://github.com/techniq) ([Demo](https://codesandbox.io/s/n3w687vmqj)) > ([Radial demo](https://codesandbox.io/s/vmqwrkl395)) > - Animation with `react-spring` by [@drcmda](https://github.com/drcmda) > ([Demo](https://codesandbox.io/embed/j3x61vjz5v)) 1. Do I have to use every package to make a chart? > nope! pick and choose the packages you need. 1. Can I use this to create my own library of charts for my team? > Please do. 1. Does visx work with [preact](https://preactjs.com/)? > yup! need to alias `react` + `react-dom` and use `preact-compat`. 1. I like using d3. > Me too. ## Development Please see [CONTRIBUTING.md](./CONTRIBUTING.md) :v: [MIT](./LICENSE) ================================================ FILE: babel.config.js ================================================ const esm = process.env.ESM; const envOptions = { loose: false, modules: esm ? false : 'commonjs', shippedProposals: true, targets: { browsers: [ 'chrome >= 108', 'edge >= 108', 'firefox >= 133', 'safari >= 15.6', 'ios_saf >= 15.6', 'samsung >= 27', ], }, bugfixes: false, }; const presets = [ ['@babel/preset-env', envOptions], ['@babel/preset-react', { runtime: 'automatic', useBuiltIns: true, useSpread: true }], '@babel/preset-typescript', ]; const plugins = []; const ignore = [ 'coverage/', 'public/', 'esm/', 'lib/', 'tmp/', 'dist/', '*.d.ts', '__tests__', '__mocks__', ]; switch (process.env.NODE_ENV) { case 'test': { envOptions.modules = 'commonjs'; envOptions.targets = { node: 'current' }; plugins.push('babel-plugin-dynamic-import-node'); break; } case 'development': case 'production': default: { break; } } module.exports = { ignore, plugins, presets, }; ================================================ FILE: config-eslint/base.js ================================================ const EXTS = ['.ts', '.tsx', '.js', '.jsx', '.json']; const EXTS_GROUP = '{ts,tsx,js,jsx}'; const ASSET_EXT_PATTERN = /\.(ttf|eot|otf|svg|woff|woff2|mp3|png|jpg|jpeg|gif|ico)$/; module.exports = { parser: '@babel/eslint-parser', parserOptions: { requireConfigFile: false, }, extends: ['airbnb', 'plugin:jsx-a11y/recommended'], plugins: ['import', 'react', 'react-hooks'], globals: { // Metrics and analytics providers ga: 'readonly', // Mostly for easier compatibility between browsers, workers, etc global: 'readonly', // Mostly references to `process.env.NODE_ENV` process: 'readonly', }, env: { browser: true, node: false, }, reportUnusedDisableDirectives: true, settings: { propWrapperFunctions: ['forbidExtraProps', 'exact', 'Object.freeze'], 'import/ignore': ['node_modules', '\\.json$', ASSET_EXT_PATTERN.source], 'import/extensions': EXTS, 'import/resolver': { node: { extensions: EXTS, }, }, }, rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', }, overrides: [ { files: [`*.test.${EXTS_GROUP}`], plugins: [], globals: { // vitest globals describe: 'readonly', it: 'readonly', test: 'readonly', expect: 'readonly', assert: 'readonly', vitest: 'readonly', vi: 'readonly', beforeAll: 'readonly', beforeEach: 'readonly', afterAll: 'readonly', afterEach: 'readonly', // other globals jsdom: 'readonly', }, env: { node: true, }, rules: { 'max-classes-per-file': 'off', 'no-magic-numbers': 'off', 'sort-keys': 'off', // REACT 'react/function-component-definition': 'off', }, }, ], }; ================================================ FILE: config-eslint/next.js ================================================ const EXTS_GROUP = '{ts,tsx,js,jsx}'; module.exports = { parser: '@babel/eslint-parser', plugins: ['promise', 'unicorn'], rules: { // Not enabled in Airbnb 'default-param-last': 'error', 'func-name-matching': [ 'error', 'always', { considerPropertyDescriptor: true, includeCommonJSModuleExports: false, }, ], 'jsx-quotes': ['error', 'prefer-double'], 'multiline-comment-style': 'off', 'multiline-ternary': ['error', 'never'], 'no-constant-condition': 'error', 'no-constructor-return': 'error', 'no-div-regex': 'error', 'no-dupe-else-if': 'error', 'no-implicit-coercion': 'error', 'no-import-assign': 'error', 'no-native-reassign': 'error', 'no-negated-condition': 'error', 'no-setter-return': 'error', 'no-useless-call': 'error', 'prefer-exponentiation-operator': 'error', 'prefer-regex-literals': 'error', 'require-atomic-updates': 'error', // Replaced with new proposals 'react/jsx-props-no-spreading': 'off', 'react/state-in-constructor': 'off', 'react/static-property-placement': 'off', // IMPORT 'import/default': 'error', 'import/namespace': 'error', 'import/no-unused-modules': 'off', // Super broken at the moment 'import/imports-first': 'error', // PROMISE 'promise/no-callback-in-promise': 'error', 'promise/no-new-statics': 'error', 'promise/no-promise-in-callback': 'error', 'promise/no-return-in-finally': 'error', 'promise/no-return-wrap': ['error', { allowReject: true }], 'promise/param-names': 'error', 'promise/valid-params': 'error', // REACT 'react/destructuring-assignment': 'off', // Broken with class properties 'react/forbid-prop-types': ['error', { forbid: ['any', 'array'] }], 'react/jsx-handler-names': [ 'error', { eventHandlerPrefix: 'handle', eventHandlerPropPrefix: 'on', }, ], 'react/jsx-key': 'error', 'react/jsx-no-literals': 'error', 'react/jsx-no-useless-fragment': 'error', 'react/jsx-no-script-url': 'error', 'react/jsx-sort-default-props': [ 'error', { ignoreCase: true, }, ], 'react/jsx-sort-props': [ 'error', { callbacksLast: true, shorthandFirst: true, noSortAlphabetically: true, reservedFirst: true, }, ], 'react/no-did-mount-set-state': 'error', 'react/no-direct-mutation-state': 'error', 'react/no-unknown-property': [ 2, { ignore: ['jsx', 'global'], // used by next }, ], 'react/sort-comp': 'off', 'react/sort-prop-types': [ 'error', { ignoreCase: true, callbacksLast: true, requiredFirst: false, sortShapeProp: true, }, ], // UNICORN 'unicorn/better-regex': 'error', 'unicorn/catch-error-name': 'error', 'unicorn/consistent-function-scoping': 'error', 'unicorn/custom-error-definition': 'error', 'unicorn/error-message': 'error', 'unicorn/escape-case': 'error', 'unicorn/explicit-length-check': 'error', 'unicorn/filename-case': 'off', 'unicorn/import-index': 'error', 'unicorn/new-for-builtins': 'error', 'unicorn/no-abusive-eslint-disable': 'off', 'unicorn/no-array-instanceof': 'error', 'unicorn/no-hex-escape': 'error', 'unicorn/no-fn-reference-in-iterator': 'error', 'unicorn/no-for-loop': 'error', 'unicorn/no-new-buffer': 'error', 'unicorn/no-process-exit': 'error', 'unicorn/no-zero-fractions': 'error', 'unicorn/number-literal-case': 'error', 'unicorn/prefer-add-event-listener': 'error', 'unicorn/prefer-dataset': 'error', 'unicorn/prefer-event-key': 'error', 'unicorn/prefer-flat-map': 'error', 'unicorn/prefer-includes': 'error', 'unicorn/prefer-modern-dom-apis': 'error', 'unicorn/prefer-negative-index': 'error', 'unicorn/prefer-node-append': 'error', 'unicorn/prefer-node-remove': 'error', 'unicorn/prefer-starts-ends-with': 'error', 'unicorn/prefer-string-slice': 'error', 'unicorn/prefer-spread': 'off', // Currently broken 'unicorn/prefer-text-content': 'error', 'unicorn/prefer-trim-start-end': 'error', 'unicorn/prefer-type-error': 'error', 'unicorn/throw-new-error': 'error', }, overrides: [ { files: [`*.test.${EXTS_GROUP}`], rules: { 'unicorn/no-fn-reference-in-iterator': 'off', 'unicorn/consistent-function-scoping': 'off', }, }, ], }; ================================================ FILE: config-eslint/prettier.js ================================================ module.exports = { extends: ['prettier'], plugins: ['prettier'], rules: { 'prettier/prettier': 'error', }, }; ================================================ FILE: config-eslint/typescript.js ================================================ const EXTS_GROUP = '{ts,tsx,js,jsx}'; // In TS, all arguments are required for type information, // so we need to override the base JS setting. const noUnused = { vars: 'all', args: 'none', ignoreRestSiblings: true }; const project = 'tsconfig.eslint.json'; module.exports = { settings: { 'import/parsers': { '@typescript-eslint/parser': ['.ts', '.tsx'], }, }, parserOptions: { project, }, overrides: [ { files: ['*.{ts,tsx}'], parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint'], rules: { 'func-call-spacing': 'off', 'no-restricted-globals': 'off', 'no-unused-vars': 'off', // IMPORT (Conflicts with TS patterns) 'no-duplicate-imports': 'off', // Disabled in favor of import/no-duplicates 'import/export': 'off', // TypeScript allows same name for type and value exports 'import/extensions': [ 'error', 'never', { json: 'always', }, ], 'import/named': 'off', 'import/no-cycle': 'off', 'import/no-duplicates': 'error', // Handles TS type/value namespace separation 'import/no-named-as-default': 'off', 'import/no-extraneous-dependencies': [ 'error', { devDependencies: [ `test/**/*.${EXTS_GROUP}`, `tests/**/*.${EXTS_GROUP}`, `**/*.test.${EXTS_GROUP}`, `**/jest.config.${EXTS_GROUP}`, `**/webpack.config.${EXTS_GROUP}`, `**/webpack.config.*.${EXTS_GROUP}`, ], optionalDependencies: false, }, ], // REACT (We dont use prop types) 'react/default-props-match-prop-types': 'off', 'react/jsx-filename-extension': [ 'error', { extensions: ['.tsx'], }, ], 'react/no-unused-prop-types': 'off', 'react/prop-types': 'off', 'react/require-default-props': 'off', // UNICORN 'unicorn/no-fn-reference-in-iterator': 'off', // TYPESCRIPT '@typescript-eslint/adjacent-overload-signatures': 'error', '@typescript-eslint/await-thenable': 'error', '@typescript-eslint/camelcase': 'off', // broken '@typescript-eslint/class-name-casing': 'off', // broken '@typescript-eslint/consistent-type-assertions': [ 'error', { assertionStyle: 'as', objectLiteralTypeAssertions: 'allow-as-parameter' }, ], '@typescript-eslint/consistent-type-exports': ['error', { fixMixedExportsWithInlineTypeSpecifier: true }], '@typescript-eslint/consistent-type-imports': ['error', { prefer: 'type-imports' }], '@typescript-eslint/explicit-function-return-type': 'off', // Allow inferrence '@typescript-eslint/func-call-spacing': ['error', 'never'], '@typescript-eslint/member-delimiter-style': 'error', '@typescript-eslint/member-ordering': 'off', // Prefer react/sort-comp '@typescript-eslint/no-array-constructor': 'error', '@typescript-eslint/no-empty-function': 'off', // Default props are usually empty '@typescript-eslint/no-empty-interface': 'error', '@typescript-eslint/no-explicit-any': [ 'warn', { fixToUnknown: false, ignoreRestArgs: true }, ], '@typescript-eslint/no-extra-parens': 'error', '@typescript-eslint/no-for-in-array': 'error', '@typescript-eslint/no-misused-new': 'error', '@typescript-eslint/no-misused-promises': 'error', '@typescript-eslint/no-require-imports': 'error', '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error', '@typescript-eslint/no-unsafe-call': 'warn', '@typescript-eslint/no-unsafe-member-access': 'warn', '@typescript-eslint/no-unsafe-return': 'warn', '@typescript-eslint/no-unused-vars': ['error', noUnused], '@typescript-eslint/no-use-before-define': 'error', '@typescript-eslint/prefer-as-const': 'error', '@typescript-eslint/prefer-for-of': 'error', '@typescript-eslint/prefer-namespace-keyword': 'error', '@typescript-eslint/prefer-nullish-coalescing': 'off', // Lots of false positives '@typescript-eslint/prefer-optional-chain': 'error', '@typescript-eslint/promise-function-async': 'off', // Conflicts with other async rules '@typescript-eslint/require-await': 'error', '@typescript-eslint/switch-exhaustiveness-check': 'error', '@typescript-eslint/triple-slash-reference': 'error', '@typescript-eslint/type-annotation-spacing': 'error', '@typescript-eslint/unified-signatures': 'error', }, }, ], }; ================================================ FILE: lerna.json ================================================ { "packages": [ "packages/*" ], "version": "4.0.1-alpha.0", "command": { "publish": { "allowBranch": "master" } }, "$schema": "node_modules/lerna/schemas/lerna-schema.json" } ================================================ FILE: package.json ================================================ { "name": "@visx/root", "license": "MIT", "version": "0.0.0", "description": "Low-level visualization components", "keywords": [ "react", "d3", "visualization", "visx", "charts" ], "engines": { "node": ">=22.0.0", "yarn": ">=4.0.0" }, "contributors": [ { "name": "Harrison Shoff", "url": "https://github.com/hshoff" }, { "name": "Chris Williams", "url": "https://github.com/williaster" }, { "name": "Krist Wongsuphasawat", "url": "https://github.com/kristw" } ], "private": true, "scripts": { "build:vendor": "yarn run ts ./packages/visx-vendor/scripts/buildVendor", "babel": "yarn run babel:cjs && yarn run babel:esm", "babel:cjs": "lerna exec --ignore '@visx/{demo,vendor}' --parallel -- babel --root-mode upward --delete-dir-on-start src/ --out-dir lib --extensions .ts,.tsx", "babel:esm": "ESM=true lerna exec --ignore '@visx/{demo,vendor}' --parallel -- babel --root-mode upward --delete-dir-on-start src/ --out-dir esm --extensions .ts,.tsx", "babel:pkg": "lerna exec --scope $PKG -- babel --root-mode upward --delete-dir-on-start src/ --out-dir lib --extensions .ts,.tsx && lerna exec --scope $PKG -- ESM=true babel --root-mode upward --delete-dir-on-start src/ --out-dir esm --extensions .ts,.tsx", "build": "yarn run build:vendor && yarn run babel && yarn run type", "build:sizes": "yarn run ts ./scripts/computeBuildSizes.ts", "build:release": "yarn run ts ./scripts/performRelease/index.ts", "dev:demo": "yarn run docs:generate && yarn workspace @visx/demo dev", "check:sizes": "yarn run ts ./scripts/compareBuildSizes.ts", "clean": "rm -rf ./packages/**/{lib,esm}", "docs:generate": "yarn run ts ./scripts/generateDocs.ts", "format": "lerna exec --parallel -- prettier --write --ignore-path ../../.prettierignore .", "lint": "eslint packages/ --quiet", "lint:fix": "yarn run lint --fix", "postinstall": "yarn run ts ./scripts/postInstall.ts", "prepare-release": "git checkout master && git pull --rebase origin master && lerna updated", "release": "yarn run prepare-release && lerna publish --exact", "setup": "yarn run build", "test": "yarn run vitest run", "test:watch": "yarn run vitest watch", "vitest": "vitest", "vitest:ui": "vitest --ui", "ts": "ts-node --project ./tsconfig.node.json", "type": "yarn type:clean && yarn type:build", "type:build": "lerna exec -- tsc --build", "type:clean": "find . -type f -name 'tsconfig.tsbuildinfo' -delete", "type:pkg": "lerna exec --scope $PKG -- tsc --build --verbose", "type:update-refs": "yarn run ts ./scripts/updateTsReferences.ts", "vendor-check": "yarn run ts ./packages/visx-vendor/scripts/flagVendorRequirements.ts" }, "devDependencies": { "@babel/cli": "^7.26.4", "@babel/core": "^7.26.0", "@babel/eslint-parser": "^7.25.9", "@babel/preset-env": "^7.26.0", "@babel/preset-react": "^7.26.3", "@babel/preset-typescript": "^7.26.0", "@octokit/openapi-types": "18.0.0", "@octokit/rest": "18.1.0", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.0", "@testing-library/react": "^16.1.0", "@testing-library/user-event": "^13.5.0", "@types/jsdom": "27.0.0", "@types/node": "^22.10.2", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@typescript-eslint/eslint-plugin": "^8.18.1", "@typescript-eslint/parser": "^8.18.1", "@vitest/coverage-v8": "4", "@vitest/eslint-plugin": "^1.4.0", "@vitest/ui": "4", "airbnb-js-shims": "^2.2.1", "chalk": "4.1.0", "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-unicorn": "^45.0.2", "fast-glob": "3.2.5", "filesize": "6.1.0", "jsdom": "27.0.0", "lerna": "^9.0.0", "prettier": "^2.8.1", "react": "^16.14.0 || ^17.0.0-0 || ^18.0.0-0 || ^19.0.0-0", "react-dom": "^16.14.0 || ^17.0.0-0 || ^18.0.0-0 || ^19.0.0-0", "timezone-mock": "^1.1.0", "ts-node": "^10.9.1", "typescript": "^5.7.0", "vitest": "4" }, "packageManager": "yarn@4.10.3", "workspaces": { "packages": [ "./packages/*" ] }, "resolutions": { "react": "^19.0.0", "react-dom": "^19.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0" } } ================================================ FILE: packages/sizes.json ================================================ {"visx-annotation":{"esm":19643,"lib":23755},"visx-axis":{"esm":13359,"lib":18132},"visx-bounds":{"esm":1493,"lib":1915},"visx-brush":{"esm":41994,"lib":44001},"visx-chord":{"esm":1901,"lib":2683},"visx-clip-path":{"esm":1507,"lib":2713},"visx-curve":{"esm":351,"lib":2594},"visx-delaunay":{"esm":1466,"lib":2489},"visx-demo":{"esm":0,"lib":0},"visx-drag":{"esm":9053,"lib":11025},"visx-event":{"esm":3548,"lib":5257},"visx-geo":{"esm":8057,"lib":11674},"visx-glyph":{"esm":7192,"lib":11421},"visx-gradient":{"esm":6872,"lib":11581},"visx-grid":{"esm":9592,"lib":12892},"visx-group":{"esm":499,"lib":1030},"visx-heatmap":{"esm":3490,"lib":4564},"visx-hierarchy":{"esm":8639,"lib":13458},"visx-legend":{"esm":14799,"lib":20754},"visx-marker":{"esm":3822,"lib":6120},"visx-mock-data":{"esm":325638,"lib":330728},"visx-network":{"esm":3058,"lib":5105},"visx-pattern":{"esm":7349,"lib":10317},"visx-point":{"esm":776,"lib":1901},"visx-react-spring":{"esm":8697,"lib":11009},"visx-responsive":{"esm":9041,"lib":11514},"visx-sankey":{"esm":2498,"lib":3894},"visx-scale":{"esm":18819,"lib":30918},"visx-shape":{"esm":51809,"lib":74614},"visx-stats":{"esm":9249,"lib":10690},"visx-text":{"esm":5953,"lib":7453},"visx-threshold":{"esm":2064,"lib":2758},"visx-tooltip":{"esm":9173,"lib":13672},"visx-vendor":{"esm":2974,"lib":3226},"visx-visx":{"esm":1538,"lib":3999},"visx-voronoi":{"esm":1298,"lib":2088},"visx-wordcloud":{"esm":1987,"lib":2995},"visx-xychart":{"esm":125113,"lib":155595},"visx-zoom":{"esm":12499,"lib":14835}} ================================================ FILE: packages/visx-annotation/.npmrc ================================================ package-lock=false ================================================ FILE: packages/visx-annotation/Readme.md ================================================ # @visx/annotation

SVG `Annotation`s enable you to label points, thresholds, or regions of a visualization to provide additional context to for your chart consumer. This package is heavily inspired by [Susie Lu](https://github.com/susielu/)'s [`react-annotation`](https://github.com/susielu/react-annotation) library. Each annotation consists of three (optional) parts: 1. `Subject` (`CircleSubject`, `LineSubject`, more 🔜) – what part of a chart is being annotated (point, line, region) 2. `Label` – the text component for the annotation. Handles SVG text wrapping using `@visx/text`, and supports `title` and `subtitle` customization as well as vertical & horizontal anchors / alignment 3. `Connector` – line connecting a subject and label The `Annotation` or `EditableAnnotation` component wrappers allow you to compose these components and simplify their individual positioning: ```tsx ...} > ``` Components can also be used in isolation, in which case you must specify exact positions for each item: ```tsx () => ( ) ``` ##### ⚠️ `ResizeObserver` dependency The `Label` component relies on `ResizeObserver`s for auto-sizing. If you need a polyfill, you can either polute the `window` object or inject it cleanly through props: ```tsx import { ResizeObserver } from 'your-favorite-polyfill'; function App() { return