Releases: tkonopka/chsk
Releases · tkonopka/chsk
v0.8.0
Highlights
- Internal code improvements and updates
Added
Changed
- audit fix dependencies
- fix lodash imports leading to webpack "can't resolve" errors
- code improvements in response to typescript validations (
noPropertyAccessFromIndexSignature
) - removed exported types related to themes (
SideRecords
,ColorsRecords
) - simplified type definitions for themes
- updated test suite to support framer-motion >10.16.1
- code modifications in response to typescript validations (
noUncheckedIndexedAccess
) - turned on additional typescript validations ('noImplicitAny', 'strictNullChecks', 'strictFunctionTypes', 'strictBindCallApply', 'strictPropertyInitialization', 'noImplicitThis', 'useUnknownInCatchVariables', 'alwaysStrict', 'noFallthroughCasesInSwitch', 'noImplicitOverride')
- code improvements in response to typescript validations (
noImplicitReturns
) - code improvements in response to typescript validations (
noUnusedLocals
) - code improvements in response to typescript validations (
noUnusedParameters
)
v0.7.0
Highlights
- Control for enter and exit transitions in
MilestoneMotion
- Support for more customization in high-order components through prop
componentProps
- New component
Viewfinder
- Double-click interactions with legends
Added
- [core] generic type
PreparedDataContextProps
to hold datasets with view-specific coordinates/formating - [annotation] prop
variant
inBlockArrow
to support caret shapes - [core] support for exit states in shape and typography components (settings passed to
componentProps
in higher-order components affect animations in response to legend toggles, but do not take effect during milestone updates) - [all] transitioned package components to the
ComponentProps
interface where relevant, enabling customization of base components, including with custom animation states and custom transitions - [core] interface
ComponentProps
to support customization of base components in higher-order components - [core] separate motion settings for tooltip transitions
- [core] prop
transition
in typography and shape components - [core] support for distinct enter and exit transitions in
MilestoneMotion
- [annotation] component
Viewfinder
- [core] prop
allowDisableAll
in legend components to toggle ability to mark all keys in a view as disabled; defaults to false in order to always preserve some visible view content, compute non-trivial scales, and avoid flashes during legend double-clicks - [core] support for double-clicks on legend items to toggle multiple keys at once
Changed
- [all] removed exported types for contexts with prepared data, e.g.
StripPreparedDataContextProps
; - [core] rendering of
Rectangle
objects to avoid unnecessary fields with 'undefined' values in svg code - [matrix] replaced prop
cell
inHeatMapCells
bycomponent
for consistency with other components - [core] renamed key
Colors
inThemeSpec
andCompleteThemeSpec
toColor
(for consistency withTarget
andTransition
) - [core] renamed key
Animation
inThemeSpec
andCompleteThemeSpec
toTarget
- [core] renamed key
Motion
inThemeSpec
andCompleteThemeSpec
toTransition
- [core] replaced prop
transition
inMilestoneMotion
by pair of propsenterTransition
andexitTransition
to enable different timings - [core] types for interactivity components to include
onDoubleClick
v0.6.0
Highlights
- New components for creating dendrogram charts
- Adjustments in package configuration files to better support esm / umd
- Adjustment to component transforms to better support server-side rendering
Added
- [core] custom style transformations for server-side rendering to counter-act a bug in framer-motion
- [examples] chart with hierarchical clustering
- [band] components
Dendrogram
,DendrogramTree
,DendrogramLeafLabels
, andDendrogramSurface
to summarize hierarchical clustering - [core] linear scale specs with and without the
nice
parameter - [all] more keywords in
package.json
files
Changed
- [all] removed unused type definitions; affected items mostly reflect types for contexts holding processed data for views
- [polar] changed types for labels to allow React components
- [set] changed types for labels to allow React components
- [core] fixed a bug in
useCreateScales
that delayed updates to scales after a refresh, causing charts to redraw momentarily with new data but out-of-date scales - [core] fixed missing motion in
Polygon
- [band] restricted types for
BarsLabels
propformat
; the value axis requires numeric values - [core] removed redundant interface
TextContentProps
(similar toTypographyProps
) - [core] simplified implementation of
Typography
,Label
, andCounter
components to remove unnecessaryg
elements - [core] expanded types for
title
,label
,titleFormat
, andlabelFormat
in legends and tooltips to support more complex content, for example includingtspan
elements - [core] default stroke width for tick marks to 1
- [core] replaced
getIdKeySets
with hookuseIdsKeys
; reduces the need foruseMemo
in add-on packages - [band] props for
BarsLabels
to matchDendrogramLeafLabels
- [all] added conditional exports to
package.json
files, specifying entry points for 'import' and 'require' - [all] updated dependencies in
package.json
files to enable recent version of framer-motion - [all] simplified build process to generate es modules (primary objects) and umd files (used by jest)
- [all] adjusted
package.json
files to addtype
field and removemain
field
v0.5.0
Highlights
- replaced several lodash utility functions by implementations customized for use-cases relevant to the library
- New components
Density
andDensityCells
for summarizing large datasets using density maps - New props and new components in existing packages, including for animated heatmaps
Added
- [matrix] support for event handlers and modifiers in heatmap
HeatMapCells
andHeatMapHighlight
- [examples] charts with density maps
- [xy] components
Density
,DensityCells
,DensityCrosshair
,DensityCell
, andDensitySimpleCell
for creating density maps - [matrix] components
HeatMapCircle
andHeatMapRectangle
to support heatmaps that animate color transitions; the default settings still create maps without animations to prioritize performance - [xy] support for row-based and column-based datasets for
Scatter
views - [core] function
cloneProps
to create shallow/deep copies of prop objects - [core] wrapper
PersistentTooltipDataComponent
to create tooltips that remain visible until clicked - [annotation] support for prop
shiftUnit
inStrip
andGridStripes
to facilitate using those components on band scales - [core] support for prop
shiftUnit
inGridLines
to facilitate using grid lines with band scales - [annotation] symbol components
Pentagon
andStar
Changed
- [matrix] renamed heatmap cell components
HeatMapRectangle
andHeatMapCircle
toHeatMapSimpleRectangle
andHeatMapSimpleCircle
to convey they have minimal features (no animations); renamed cell componentsHeatMapColorRectangle
andHeatMapColorCircle
toHeatMapRectangle
andHeatMapCircle
for brevity - [all] replaced
merge
from lodash with spread operator (when possible) and with custommergeProps
andfillProps
implementations - [all] replaced
cloneDeep
from lodash with customcloneProps
implementation - [all] changed rollup config to reduce bundle sizes
- [all] updated
package.json
in all packages to mark them as free of side effects - [core] replaced a few functions from lodash by own implementations (
isNull
,isUndefined
,sortedIndex
) - [core] changed default behavior of shift arrays in
GridLines
; this change removes the need to recompute shift values when using grid lines between ticks on band scales with padding
v0.4.0
Highlights
- New components
Violin
andViolins
for summarizing numeric distributions - New components
ScatterSelectedLabels
for placing non-overlapping labels on scatter charts - Miscellaneous new components, including
Grid
andGridItem
for view layouts andConnector
for supporting labels. - Expanded support for milestone animations, in particular for animations that change props
- Expanded feature set for continuous scales to support a custom bandwidth, enabling band-like charts with two continuous axes
- Upgraded documentation site to storybook v7
Added
- [annotation] support for custom components in
Stripe
andGridStripes
- [core] support for axis labels and axis tick labels with ReactNode type
- [band] support for nonlinear scales for strip, quantile, schedule, and violin charts
- [examples] stacked bar chart with a time scale
- [core] support for specifying bandwidth for continuous scales, e.g. linear scales and time scales
- [examples] chart with rectangles on a time scale
- [examples] chart with violins
- [band] components
Violin
andViolins
to create violin plots - [core] prop
closed
inPath
to ensure a path is closed - [examples] heat map with sparse data and a grid
- [xy] props
k
inScatter
to provide explicit keys for data points - [examples] chart with histogram with draggable controls
- [core] prop
disabledStyle
in legend components to control appearance of disabled legend items - [examples] bar chart with labels using connectors
- [xy] prop
visible
inScatterCrosshair
to toggle visibility of horizontal and vertical crosshair lines - [xy] capabilities in
ScatterCrosshair
to find data points based on x- and y-coordinate distance - [core] component
Draggable
to enable dragging chart elements - [annotation] component
Stripe
to create rectangles suitable for view backgrounds - [core] functions
numberPair
andunitPair
to simplify conversion of ambiguous data types to array-based types - [annotation] component
Connector
to draw various types of lines, especially for connecting data points to labels - [xy] component
ScatterSelectedLabels
to display labels linked to data points - [xy] prop
variant
forScatterLabel
to place labels next to data points identified according to euclidean distance in xy dimensions, or euclidean distance along only one of the axes - [core] mathematical utility functions:
norm
,angleTheta
,clip
- [repository] set up lerna caching
- [examples] scatter chart with several point labels
- [xy] support for style modifiers in
ScatterCrosshair
to change cursor when hovering near a data point - [annotation] filter
BlurFilter
- [core] support for
MilestoneMotion
animation without children, i.e. using onlyonEnter
andonExit
functions - [core] support for custom functions
onEnter
andonExit
inMilestoneMotion
- [documentation] tables with prop names and typings for commonly used core props
- [core] components
Grid
andGridItem
to arrange complex content in a grid layout - [all] keywords to all
package.json
files
Changed
- [band] changed components with prefix
Distribution
(back) to using prefixQuantile
. This is more accurate/specific as to what the components represent and avoids confusion withViolin
components that also describe distributions but use slightly different data types - [band] fixed bug in calculation of domains in strip and distribution charts, which forced inclusion of '1' in domain in cases with missing data
- [core] renamed some math functions for brevity, e.g.
getMax
intomax
andgetMinMax
intointerval
- [core] consolidated math functions into a single location
- [core] fixed propagation of style props in
LegendColorScale
- [core] changed handling of ticks with zero size in
AxisTicks
; such tick lines are now omitted altogether from the output - [xy] fixed bug leading to NaN in regressions with short data series
- [core] extended type for
format
inCounter
to simplify counters usingtspan
elements - [annotation] changed variant names in
BluntMarker
andArrowMarker
to lowercase for consistency with other components - [xy] changed meaning of prop
variant
inScatterCrosshair
so that it now changes calculations, not visual output - [core] removed type
XY
in favor of existingNumericPositionSpec
- [annotation] changed role and class strings in
GridStripes
to improve consistency with other components - [core] fixed expanding chart size when
stretch=true
- [xy] removed
signals.tsx
from exports because functions are only used internally in xy package - [core] fixed internal keys in
GridLines
to avoid lines switching position during panning - [xy] discontinued support for single-value position in
ScatterLabel
in favor of using a new propvariant
- [annotation] changed
cleanSvg
intotransformSvg
to give a more neutral note to the function; changed typings and prop names to similarly replace 'clean' into 'transform' - [annotation] renamed prop
offset
withdistance
inBoxedTitle
for consistency with convention used by axes whereby offset is always an array and distance is orthogonal distance - [xy] expanded API for
ScatterLabel
to useLabelProps
and a custom component to draw;ScatterLabel
can now use, e.g.BoxedLabel
- [xy] replaced prop
ids
withid
inScatterLabel
because the component is meant to create a single label for a single data series - [core] enabled transfer of prop
variant
fromAxis
to its children; this removes requirement forAxisLabel
,AxisLine
, andAxisTicks
to specify the variant prop - [core] added missing key fields in
Axis
- [core] renamed prop
initialOn
inMilestoneMotion
withenterOn
for readability and for compatibility with newonEnter
prop - [core] renamed prop
initial
inMilestoneMotion
withenter
for readability and for compatibility with new onEnter prop - [core] stopped including variant in role string in components related to axes
- [documentation] upgraded storybook to v7
- [core] fixed bug with handlers in
DataComponent
andTooltipDataComponent
leading to some missed and some redundant function calls - [documentation] miscellaneous edits, including fixes to styling
v0.3.0
Highlights
- Zoom and pan capabilities for all chart types
- New package
@chsk/polar
for pie and doughnut charts - New components in existing packages, including for animated text, bars with whiskers, and curved arrows
- Reduced bundle sizes by omitting external modules
- Optimized svg exports by omitting redundant css
- Streamlined typings for increased prop consistency across components, especially for container placement
Contributors
Added
- [band] prop
variant
forBandSurface
to fine-tune the size of background rectangles - [examples] venn diagrams with custom text at intersections
- [set] support for data subsets when drawing set intersection labels
- [core] component
Style
to create themed css for arbitrary ancestors - [annotation] conversion of rgba colors to hex in svg exports
- [themes] theme piece
buttonTheme
with styles for buttons - [core] component
Toolbar
to create generic toolbars with buttons - [core] component
ViewClip
to restrict content to the bounding box of a view - [core] component
ViewController
to manage axes in arbitrary views - [core] component
Button
implementing a generic click-able button - [core] support for element-specific transitions, notably for
Rectangle
- [band] support for fade-in and edge animations in
BandHighlight
- [core] default animation states and theming support for
MilestoneMotion
- [annotation] component
FlowTypography
to reveal text character-by-character - [annotation] filter
BackgroundColorFilter
- [core] prop
component
inCounter
to support bespoke displays, for example, as a combination of svgtext
andtspan
elements - [polar] examples with pie and doughnut chart
- [polar] package for charts with polar coordinate systems
- [band] components
BarAndWhisker
andLineAndWhiskers
to summarize distributions - [xy] calculations of mean and standard deviation for histograms
- [examples] flowchart in the shape of a tree
- [annotation] css style shaking; svg code produced by
cleanSvg
now contains only style definitions that are relevant to a specific chart (previously, the output contained all css styles defined in a theme) - [examples] histograms with several distributions
- [examples] quantile chart with bar-and-error-bar components instead of box-and-whisker components
- [examples] schedule chart with arrows
- [themes] object
darkTheme
for charts on a dark background - [core] component
BluntMarker
- [annotation] component
ArcArrow
- [matrix] support for fade-in and edge animations in
HeatMapHighlight
- [annotation] component
GridStripes
Changed
- [polar] removed unnecessary prop
variant
from componentsSlice
andSlices
- [core] renamed prop in
AxisLabel
fromanchor
toalign
for more consistency with props in typography components - [core] changed props in
Axis
andAxisLabel
: propoffset
is always an array, and propdistance
is orthogonal distance from view boundary - [set] changed default color interpolation in venn diagrams to lab space
- [core] fixed support for props
align
,anchor
, andoffset
in labels - [set] fixed bug in Venn diagram which flipped long/short arcs in some cases
- [core] changed types and parsing for color schemes to reduce bundle size. The new color scale specs do not accept strings with d3 color scale names (e.g. 'Blues'), but rather accept color arrays, color nested arrays, or interpolator functions. Charts still use d3-scale-chromatic to manage colors, but it is no longer necessary to include the entire d3-scale-chromatic in the dist bundle.
- [examples] merged example with line chart with area gradient into example with time series
- [core] replaced prop
labelOffset
in tick components withlabelDistance
, andlabelTranslate
with `labelOffset; now all 'offset' props should be arrays with [x, y] coordinates - [core] replaced prop
translate
withoffset
to improve naming consistency (using nouns more than verbs); moved theoffset
prop intoContainerProps
- [themes] removed theme piece download in favor of piece for buttons
- [examples] added some icons for view controllers
- [core] changed implementation of some scales, notably to support
invert
- [core] removed type
LinearScaleProps
- [core] changed API for the
useScales
hook to prepare support for user-driven adjustments to chart scales, e.g. brush - [core] changed motion configuration format in themes to support multiple transition variants. The default motion configuration now should be specified under a 'default' key.
- [core] removed exports of some milestone utilities
- [core] moved milestone presets into themes
- [annotation] fixed bug in
FlowPath
causing end markers to appear too soon - [annotation] changed filter component names so that
Filter
is the suffix rather than prefix, for consistency with other naming convensions e.g. for boxed labels - [core] changed
Counter
animations to spring for consistency with other components - [core] renamed
useView
hook touseContainer
- [all] changed view props so that
position
,positionUnits
,size
,sizeUnits
,padding
, andanchor
are now nested in a singlecontainer
prop. This simplifies internal code and docs for add-on views. - [core] renamed prop
rotate
toangle
in typography components - [core] fixed ResizeObserver management (#3)
- [core] upgrade d3-shape to v3.2.0
- [annotation] removed redundant 'px' suffixes in svg exports to reduce size of output
- [annotation] replaced 'rgb(...)' colors by hex strings in svg exports to reduce size of output
- [core] removed redundant role attributes (in grid lines and ticks) to reduce size of svg export
- [core] avoided setting role as 'default' in shapes and text elements
- [band] renamed prop
medianStyle
tomiddleStyle
to allow distributions to display means rather than medians - [band] renamed components with prefix
Quantile
toDistribution
- [core] augmented interface
CompleteThemeSpec
to support stylingtspan
components - [annotation] fixed bug with svg cleaning that caused some attributes with undefined values being retained in output
- [themes] simplified theme piece
downloadTheme
- [band] changed numeric interpretation of prop
paddingInternal
to simplify overlaying multiple views on top of each other - [band] added prop
variant' to
Quantileand
Strip` to enable grouped / layered charts - [band] changed interpretation of prop
variant
inStrip
; point arrangements now set via new propjitter
- [all] changed rollup config to reduce bundle sizes by excluding framer-motion
- [core] changed a typing on cart context props to simplify tests
- [core] changed prop
role
inMilestoneMotion
tosetRole
for consistency with other components, and to enable setting a role by default - [core] changed fill opacity for path components in
defaultTheme
- [annotation] fixed bug with
BlockArrow
rotation - [core] simplified typescript type for tick label format in
AxisTicks
- [core] adjusted the default theme to disable pointer events on decorative items, e.g. grid lines
- [band] updated
BandSurface
to respond to mouse events and use a customizable 'dataComponent' - [themes] refactored organization of the objects in src, stories, and tests
- [core] moved
ArrowMarker
andBluntMarker
to the annotation package - [matrix] changed default animation in
HeatMapHighlight
to simple fade-in - [documentation] edited miscellaneous documentation pages
v0.2.0
Highlights
- Tooltips for all chart types
- New package
@chsk/set
for set membership diagrams - New components in existing packages, including animated flowchart arrows, cross-hairs for scatter charts, and error bars for scatter charts
- Style modifiers activated upon mouse interactions
Added
- [examples] bar chart with a grouped tooltip
- [examples] scatter chart with points with error bars
- [band] custom tooltip component
QuantileTooltip
to display quantile
details in a table - [xy] support for error bars with
ScatterErrors
- [examples] random walks with moving averages
- [xy] basic signal-processing props (convolution, downsampling) for curves,
areas, and intervals - [band] allow
BandSurface
to appear using tooltip context - [core] component
AxisTooltip
- [examples] bar chart with gradients within bars
- [annotation] filters
FilterInsetShadow
,FilterInsetColor
,
FilterInsetBoundary
- [core] support for style modifiers in
DataComponent
andTooltipDataComponent
- [examples] bar chart with shadows
- [matrix] support for tooltip in
HeatMapHighlight
- [annotation] factory
createConcentricSymbol
to create custom symbols - [annotation] interactivity props to
BlockArrow
- [core] component
TooltipDataComponent
to set tooltip data - [core] prop
anchor
forLabel
- [core] prop
baseTheme
forChart
to enable resetting the entire
theme - [themes] theme pieces for text, lines, and ticks
- [annotation] symbols for horizontal and vertical golden rectangles
- [core] object
containerRef
in dimensions context - [examples] dot chart using band package
- [band] support for variant 'layered' in 'Bar'
- [core] hook
useTooltip
and context providerTooltipProvider
- [core] components
Tooltip
,TooltipTitle
,TooltipItemList
,
TooltipItem
- [core] component
SimpleDataComponent
- [xy] component
ScatterCrosshair
- [examples] bar chart with ACGT sequence logo
- [core] support for prop
interactive
inLegend
- [core] support for threshold color scales
- [core] support for fill and stroke animation in
Rectangle
- [examples] bar chart with rectangles appearing as colored by positive / negative values
- [annotation] component
Paragraph
displaying wrapped text - [examples] dashboard-like toolbar with widgets displaying percentages
- [examples] bar chart displaying fractions with counters and custom labels
- [core] documentation page for
Counter
- [examples] scatter chart with a genome manhattan layout
- [examples] example of line chart with data and forecast
- [core] prop
labelTranslate
inAxisTicks
to provide full control of label positions next to axis ticks - [examples] horizontal stacked bar chart with counters
- [examples] horizontal bar chart with custom ticks positioned above bars
- [examples] heatmap with lower-triangular structure
- [matrix] prop
cells
inHeatMapCells
and capability to draw specific selected cells - [annotation] component
FlowPath
- [examples] line chart with many lines and two-column legend
- [examples] heatmap/table with custom symbol and counter
- [core] prop
format
forCounter
component - [core] prop
stretch
to theChart
component - [examples] examples of venn charts
- [set] venn charts with two and three sets
- [examples] horizontal and vertical upset charts
- [matrix] upset charts
- [examples] horizontal and vertical schedule charts
- [core] tests for scales and motion
- [band] components
Schedule
andSchedules
for schedule / Gantt charts - [examples] line charts with time scales
- [core] support for time scales
Changed
- [core] changed props for interactive components, now using
handlers
and
modifiers
- [band] changed the default
dataComponent
toTooltipDataComponent
for
Bars
,Schedules
- [core] removed constants
WIDTH
andHEIGHT
- [core] replaced
composeClassName
bygetClassName
- [core] reorganized tests into subdirectories
- [core] merged some src directories
- [core] moved several symbol shapes to the annotation package
- [core] updated props on
View
andBaseView
to better match
conventions on other components - [core] modified default styles for some components appearing
in legends - [themes] changes styles in some themes to be more compatible with inkscape svg
- [core] changed implementation of
Typography
andLabel
to allow animations of rotated text - [annotation] improved
cleanSvg
to simplify scaleX, scaleY, and rotate transformations - [annotation] changed encoding of svg into text files to include newline characters
- [annotation] changed encoding of svg into text files to round values for attributes
cx
,cy
,r
to 3 decimal places - [core] modified default styles for text with class name
counter
- [core] exported functions
getTransitionValue
andgetMotionValue
- [core] replaced prop
units
in container components (e.g.View
) withpositionUnits
andsizeUnits
- [documentation] edited miscellaneous documentation pages