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
PreparedDataContextPropsto hold datasets with view-specific coordinates/formating - [annotation] prop
variantinBlockArrowto support caret shapes - [core] support for exit states in shape and typography components (settings passed to
componentPropsin higher-order components affect animations in response to legend toggles, but do not take effect during milestone updates) - [all] transitioned package components to the
ComponentPropsinterface where relevant, enabling customization of base components, including with custom animation states and custom transitions - [core] interface
ComponentPropsto support customization of base components in higher-order components - [core] separate motion settings for tooltip transitions
- [core] prop
transitionin typography and shape components - [core] support for distinct enter and exit transitions in
MilestoneMotion - [annotation] component
Viewfinder - [core] prop
allowDisableAllin 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
Rectangleobjects to avoid unnecessary fields with 'undefined' values in svg code - [matrix] replaced prop
cellinHeatMapCellsbycomponentfor consistency with other components - [core] renamed key
ColorsinThemeSpecandCompleteThemeSpectoColor(for consistency withTargetandTransition) - [core] renamed key
AnimationinThemeSpecandCompleteThemeSpectoTarget - [core] renamed key
MotioninThemeSpecandCompleteThemeSpectoTransition - [core] replaced prop
transitioninMilestoneMotionby pair of propsenterTransitionandexitTransitionto 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, andDendrogramSurfaceto summarize hierarchical clustering - [core] linear scale specs with and without the
niceparameter - [all] more keywords in
package.jsonfiles
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
useCreateScalesthat 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
BarsLabelspropformat; the value axis requires numeric values - [core] removed redundant interface
TextContentProps(similar toTypographyProps) - [core] simplified implementation of
Typography,Label, andCountercomponents to remove unnecessarygelements - [core] expanded types for
title,label,titleFormat, andlabelFormatin legends and tooltips to support more complex content, for example includingtspanelements - [core] default stroke width for tick marks to 1
- [core] replaced
getIdKeySetswith hookuseIdsKeys; reduces the need foruseMemoin add-on packages - [band] props for
BarsLabelsto matchDendrogramLeafLabels - [all] added conditional exports to
package.jsonfiles, specifying entry points for 'import' and 'require' - [all] updated dependencies in
package.jsonfiles 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.jsonfiles to addtypefield and removemainfield
v0.5.0
Highlights
- replaced several lodash utility functions by implementations customized for use-cases relevant to the library
- New components
DensityandDensityCellsfor 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
HeatMapCellsandHeatMapHighlight - [examples] charts with density maps
- [xy] components
Density,DensityCells,DensityCrosshair,DensityCell, andDensitySimpleCellfor creating density maps - [matrix] components
HeatMapCircleandHeatMapRectangleto 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
Scatterviews - [core] function
clonePropsto create shallow/deep copies of prop objects - [core] wrapper
PersistentTooltipDataComponentto create tooltips that remain visible until clicked - [annotation] support for prop
shiftUnitinStripandGridStripesto facilitate using those components on band scales - [core] support for prop
shiftUnitinGridLinesto facilitate using grid lines with band scales - [annotation] symbol components
PentagonandStar
Changed
- [matrix] renamed heatmap cell components
HeatMapRectangleandHeatMapCircletoHeatMapSimpleRectangleandHeatMapSimpleCircleto convey they have minimal features (no animations); renamed cell componentsHeatMapColorRectangleandHeatMapColorCircletoHeatMapRectangleandHeatMapCirclefor brevity - [all] replaced
mergefrom lodash with spread operator (when possible) and with custommergePropsandfillPropsimplementations - [all] replaced
cloneDeepfrom lodash with customclonePropsimplementation - [all] changed rollup config to reduce bundle sizes
- [all] updated
package.jsonin 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
ViolinandViolinsfor summarizing numeric distributions - New components
ScatterSelectedLabelsfor placing non-overlapping labels on scatter charts - Miscellaneous new components, including
GridandGridItemfor view layouts andConnectorfor 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
StripeandGridStripes - [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
ViolinandViolinsto create violin plots - [core] prop
closedinPathto ensure a path is closed - [examples] heat map with sparse data and a grid
- [xy] props
kinScatterto provide explicit keys for data points - [examples] chart with histogram with draggable controls
- [core] prop
disabledStylein legend components to control appearance of disabled legend items - [examples] bar chart with labels using connectors
- [xy] prop
visibleinScatterCrosshairto toggle visibility of horizontal and vertical crosshair lines - [xy] capabilities in
ScatterCrosshairto find data points based on x- and y-coordinate distance - [core] component
Draggableto enable dragging chart elements - [annotation] component
Stripeto create rectangles suitable for view backgrounds - [core] functions
numberPairandunitPairto simplify conversion of ambiguous data types to array-based types - [annotation] component
Connectorto draw various types of lines, especially for connecting data points to labels - [xy] component
ScatterSelectedLabelsto display labels linked to data points - [xy] prop
variantforScatterLabelto 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
ScatterCrosshairto change cursor when hovering near a data point - [annotation] filter
BlurFilter - [core] support for
MilestoneMotionanimation without children, i.e. using onlyonEnterandonExitfunctions - [core] support for custom functions
onEnterandonExitinMilestoneMotion - [documentation] tables with prop names and typings for commonly used core props
- [core] components
GridandGridItemto arrange complex content in a grid layout - [all] keywords to all
package.jsonfiles
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 withViolincomponents 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.
getMaxintomaxandgetMinMaxintointerval - [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
formatinCounterto simplify counters usingtspanelements - [annotation] changed variant names in
BluntMarkerandArrowMarkerto lowercase for consistency with other components - [xy] changed meaning of prop
variantinScatterCrosshairso that it now changes calculations, not visual output - [core] removed type
XYin favor of existingNumericPositionSpec - [annotation] changed role and class strings in
GridStripesto improve consistency with other components - [core] fixed expanding chart size when
stretch=true - [xy] removed
signals.tsxfrom exports because functions are only used internally in xy package - [core] fixed internal keys in
GridLinesto avoid lines switching position during panning - [xy] discontinued support for single-value position in
ScatterLabelin favor of using a new propvariant - [annotation] changed
cleanSvgintotransformSvgto give a more neutral note to the function; changed typings and prop names to similarly replace 'clean' into 'transform' - [annotation] renamed prop
offsetwithdistanceinBoxedTitlefor consistency with convention used by axes whereby offset is always an array and distance is orthogonal distance - [xy] expanded API for
ScatterLabelto useLabelPropsand a custom component to draw;ScatterLabelcan now use, e.g.BoxedLabel - [xy] replaced prop
idswithidinScatterLabelbecause the component is meant to create a single label for a single data series - [core] enabled transfer of prop
variantfromAxisto its children; this removes requirement forAxisLabel,AxisLine, andAxisTicksto specify the variant prop - [core] added missing key fields in
Axis - [core] renamed prop
initialOninMilestoneMotionwithenterOnfor readability and for compatibility with newonEnterprop - [core] renamed prop
initialinMilestoneMotionwithenterfor 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
DataComponentandTooltipDataComponentleading 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/polarfor 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
variantforBandSurfaceto 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
Styleto create themed css for arbitrary ancestors - [annotation] conversion of rgba colors to hex in svg exports
- [themes] theme piece
buttonThemewith styles for buttons - [core] component
Toolbarto create generic toolbars with buttons - [core] component
ViewClipto restrict content to the bounding box of a view - [core] component
ViewControllerto manage axes in arbitrary views - [core] component
Buttonimplementing 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
FlowTypographyto reveal text character-by-character - [annotation] filter
BackgroundColorFilter - [core] prop
componentinCounterto support bespoke displays, for example, as a combination of svgtextandtspanelements - [polar] examples with pie and doughnut chart
- [polar] package for charts with polar coordinate systems
- [band] components
BarAndWhiskerandLineAndWhiskersto 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
cleanSvgnow 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
darkThemefor 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
variantfrom componentsSliceandSlices - [core] renamed prop in
AxisLabelfromanchortoalignfor more consistency with props in typography components - [core] changed props in
AxisandAxisLabel: propoffsetis always an array, and propdistanceis orthogonal distance from view boundary - [set] changed default color interpolation in venn diagrams to lab space
- [core] fixed support for props
align,anchor, andoffsetin 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
labelOffsetin tick components withlabelDistance, andlabelTranslatewith `labelOffset; now all 'offset' props should be arrays with [x, y] coordinates - [core] replaced prop
translatewithoffsetto improve naming consistency (using nouns more than verbs); moved theoffsetprop 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
useScaleshook 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
FlowPathcausing end markers to appear too soon - [annotation] changed filter component names so that
Filteris the suffix rather than prefix, for consistency with other naming convensions e.g. for boxed labels - [core] changed
Counteranimations to spring for consistency with other components - [core] renamed
useViewhook touseContainer - [all] changed view props so that
position,positionUnits,size,sizeUnits,padding, andanchorare now nested in a singlecontainerprop. This simplifies internal code and docs for add-on views. - [core] renamed prop
rotatetoanglein 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
medianStyletomiddleStyleto allow distributions to display means rather than medians - [band] renamed components with prefix
QuantiletoDistribution - [core] augmented interface
CompleteThemeSpecto support stylingtspancomponents - [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
paddingInternalto simplify overlaying multiple views on top of each other - [band] added prop
variant' toQuantileandStrip` to enable grouped / layered charts - [band] changed interpretation of prop
variantinStrip; 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
roleinMilestoneMotiontosetRolefor 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
BlockArrowrotation - [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
BandSurfaceto respond to mouse events and use a customizable 'dataComponent' - [themes] refactored organization of the objects in src, stories, and tests
- [core] moved
ArrowMarkerandBluntMarkerto the annotation package - [matrix] changed default animation in
HeatMapHighlightto simple fade-in - [documentation] edited miscellaneous documentation pages
v0.2.0
Highlights
- Tooltips for all chart types
- New package
@chsk/setfor 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
QuantileTooltipto 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
BandSurfaceto 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
DataComponentandTooltipDataComponent - [examples] bar chart with shadows
- [matrix] support for tooltip in
HeatMapHighlight - [annotation] factory
createConcentricSymbolto create custom symbols - [annotation] interactivity props to
BlockArrow - [core] component
TooltipDataComponentto set tooltip data - [core] prop
anchorforLabel - [core] prop
baseThemeforChartto enable resetting the entire
theme - [themes] theme pieces for text, lines, and ticks
- [annotation] symbols for horizontal and vertical golden rectangles
- [core] object
containerRefin dimensions context - [examples] dot chart using band package
- [band] support for variant 'layered' in 'Bar'
- [core] hook
useTooltipand 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
interactiveinLegend - [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
Paragraphdisplaying 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
labelTranslateinAxisTicksto 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
cellsinHeatMapCellsand 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
formatforCountercomponent - [core] prop
stretchto theChartcomponent - [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
ScheduleandSchedulesfor schedule / Gantt charts - [examples] line charts with time scales
- [core] support for time scales
Changed
- [core] changed props for interactive components, now using
handlersand
modifiers - [band] changed the default
dataComponenttoTooltipDataComponentfor
Bars,Schedules - [core] removed constants
WIDTHandHEIGHT - [core] replaced
composeClassNamebygetClassName - [core] reorganized tests into subdirectories
- [core] merged some src directories
- [core] moved several symbol shapes to the annotation package
- [core] updated props on
ViewandBaseViewto 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
TypographyandLabelto allow animations of rotated text - [annotation] improved
cleanSvgto 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,rto 3 decimal places - [core] modified default styles for text with class name
counter - [core] exported functions
getTransitionValueandgetMotionValue - [core] replaced prop
unitsin container components (e.g.View) withpositionUnitsandsizeUnits - [documentation] edited miscellaneous documentation pages