@howells/hairline 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +148 -2
- package/lib/charts/axes.js +5 -0
- package/lib/charts/basics/candlestick.data.js +44 -0
- package/lib/charts/basics/candlestick.js +180 -0
- package/lib/charts/basics/daily-empty.js +24 -0
- package/lib/charts/basics/daily-readings.js +16 -0
- package/lib/charts/basics/dot-heat.data.js +225 -0
- package/lib/charts/basics/dot-heat.js +174 -0
- package/lib/charts/basics/dumbbell-queue.js +203 -0
- package/lib/charts/basics/hairline-area.js +208 -0
- package/lib/charts/basics/hairline-line.js +195 -0
- package/lib/charts/basics/nested-treemap.data.js +55 -0
- package/lib/charts/basics/nested-treemap.js +191 -0
- package/lib/charts/basics/paired-rungs.data.js +31 -0
- package/lib/charts/basics/paired-rungs.js +151 -0
- package/lib/charts/basics/plumb-scatter.js +229 -0
- package/lib/charts/basics/rung-bars.js +178 -0
- package/lib/charts/basics/rung-geometry.js +6 -0
- package/lib/charts/basics/rung-histogram.data.js +73 -0
- package/lib/charts/basics/rung-histogram.js +153 -0
- package/lib/charts/basics/rung-waterfall.data.js +30 -0
- package/lib/charts/basics/rung-waterfall.js +150 -0
- package/lib/charts/basics/rungs.js +22 -0
- package/lib/charts/basics/series-key.js +26 -0
- package/lib/charts/basics/stacked-rungs.data.js +42 -0
- package/lib/charts/basics/stacked-rungs.js +174 -0
- package/lib/charts/basics/stream-ribbon.data.js +124 -0
- package/lib/charts/basics/stream-ribbon.js +336 -0
- package/lib/charts/basics/tick-box.data.js +50 -0
- package/lib/charts/basics/tick-box.js +226 -0
- package/lib/charts/basics/tick-donut.data.js +30 -0
- package/lib/charts/basics/tick-donut.js +210 -0
- package/lib/charts/basics/tick-gauge.data.js +8 -0
- package/lib/charts/basics/tick-gauge.js +169 -0
- package/lib/charts/basics/tick-rows.data.js +30 -0
- package/lib/charts/basics/tick-rows.js +121 -0
- package/lib/charts/basics/util-a.js +15 -0
- package/lib/charts/basics/util-b.js +13 -0
- package/lib/charts/big/circular-graph.data.js +827 -0
- package/lib/charts/big/circular-graph.js +289 -0
- package/lib/charts/big/force-galaxy-model.js +167 -0
- package/lib/charts/big/force-galaxy.data.js +813 -0
- package/lib/charts/big/force-galaxy.js +276 -0
- package/lib/charts/big/thread-triptych.data.js +204 -0
- package/lib/charts/big/thread-triptych.js +334 -0
- package/lib/charts/board/room.js +6 -0
- package/lib/charts/board/slope.js +176 -0
- package/lib/charts/board/spread.js +28 -0
- package/lib/charts/control.js +18 -0
- package/lib/charts/core.js +84 -0
- package/lib/charts/data-table.js +34 -0
- package/lib/charts/fills.js +153 -0
- package/lib/charts/forms/area-difference.data.js +62 -0
- package/lib/charts/forms/area-difference.js +192 -0
- package/lib/charts/forms/brush-math.js +42 -0
- package/lib/charts/forms/brush-strip.js +199 -0
- package/lib/charts/forms/brushed-overview.data.js +374 -0
- package/lib/charts/forms/brushed-overview.js +162 -0
- package/lib/charts/forms/chord-ring.data.js +140 -0
- package/lib/charts/forms/chord-ring.js +167 -0
- package/lib/charts/forms/circle-pack.data.js +80 -0
- package/lib/charts/forms/circle-pack.js +99 -0
- package/lib/charts/forms/hatched-stack.data.js +71 -0
- package/lib/charts/forms/hatched-stack.js +228 -0
- package/lib/charts/forms/radial-year.data.js +13 -0
- package/lib/charts/forms/radial-year.js +156 -0
- package/lib/charts/frame.js +73 -0
- package/lib/charts/glance/aggregate-sankey.data.js +74 -0
- package/lib/charts/glance/aggregate-sankey.js +242 -0
- package/lib/charts/glance/bar-race.data.js +122 -0
- package/lib/charts/glance/bar-race.js +246 -0
- package/lib/charts/glance/big-slice.data.js +41 -0
- package/lib/charts/glance/big-slice.js +238 -0
- package/lib/charts/glance/chunky-bars.data.js +22 -0
- package/lib/charts/glance/chunky-bars.js +113 -0
- package/lib/charts/glance/circular-graph.data.js +146 -0
- package/lib/charts/glance/circular-graph.js +138 -0
- package/lib/charts/glance/control-slot.js +9 -0
- package/lib/charts/glance/diverging-bar.data.js +34 -0
- package/lib/charts/glance/diverging-bar.js +154 -0
- package/lib/charts/glance/dot-waffle.data.js +26 -0
- package/lib/charts/glance/dot-waffle.js +179 -0
- package/lib/charts/glance/draw-in.data.js +9 -0
- package/lib/charts/glance/draw-in.goals.json.js +289 -0
- package/lib/charts/glance/draw-in.js +214 -0
- package/lib/charts/glance/dynamic-stream.data.js +6 -0
- package/lib/charts/glance/dynamic-stream.js +189 -0
- package/lib/charts/glance/force-graph.data.js +77 -0
- package/lib/charts/glance/force-graph.js +211 -0
- package/lib/charts/glance/jitter-strip.data.js +10 -0
- package/lib/charts/glance/jitter-strip.easter.json.js +430 -0
- package/lib/charts/glance/jitter-strip.js +157 -0
- package/lib/charts/glance/link-bundle.js +51 -0
- package/lib/charts/glance/matrix-heat-glance.data.js +108 -0
- package/lib/charts/glance/matrix-heat-glance.js +170 -0
- package/lib/charts/glance/pictorial-bar.data.js +22 -0
- package/lib/charts/glance/pictorial-bar.js +180 -0
- package/lib/charts/glance/rainfall-dual-area.data.js +177 -0
- package/lib/charts/glance/rainfall-dual-area.js +192 -0
- package/lib/charts/glance/rank-strip.data.js +76 -0
- package/lib/charts/glance/rank-strip.js +172 -0
- package/lib/charts/glance/scatter-labels.js +60 -0
- package/lib/charts/glance/scatter-morph.data.js +78 -0
- package/lib/charts/glance/scatter-morph.js +338 -0
- package/lib/charts/glance/single-axis.data.js +6 -0
- package/lib/charts/glance/single-axis.js +150 -0
- package/lib/charts/glance/single-axis.tides.json.js +180 -0
- package/lib/charts/glance/stagger-wave.data.js +66 -0
- package/lib/charts/glance/stagger-wave.js +132 -0
- package/lib/charts/glance/tree-lr.data.js +41 -0
- package/lib/charts/glance/tree-lr.js +135 -0
- package/lib/charts/glance/util-a.js +49 -0
- package/lib/charts/glance/util-b.js +19 -0
- package/lib/charts/glance/violin.data.js +9 -0
- package/lib/charts/glance/violin.js +185 -0
- package/lib/charts/glance/violin.tenors.json.js +5 -0
- package/lib/charts/hooks.js +154 -0
- package/lib/charts/hover.js +19 -0
- package/lib/charts/lupi/arc-matrix.data.js +83 -0
- package/lib/charts/lupi/arc-matrix.js +146 -0
- package/lib/charts/lupi/ballot-tally.data.js +22 -0
- package/lib/charts/lupi/ballot-tally.js +125 -0
- package/lib/charts/lupi/barcode-lollipop.data.js +195 -0
- package/lib/charts/lupi/barcode-lollipop.js +161 -0
- package/lib/charts/lupi/brand-spectrum.data.js +70 -0
- package/lib/charts/lupi/brand-spectrum.js +233 -0
- package/lib/charts/lupi/bubble-almanac.data.js +689 -0
- package/lib/charts/lupi/bubble-almanac.js +164 -0
- package/lib/charts/lupi/calendar-heat.data.js +399 -0
- package/lib/charts/lupi/calendar-heat.js +175 -0
- package/lib/charts/lupi/cluster-field.data.js +83 -0
- package/lib/charts/lupi/cluster-field.js +173 -0
- package/lib/charts/lupi/dot-cascade.data.js +54 -0
- package/lib/charts/lupi/dot-cascade.js +124 -0
- package/lib/charts/lupi/dotty-matrix.data.js +170 -0
- package/lib/charts/lupi/dotty-matrix.js +126 -0
- package/lib/charts/lupi/hourglass-stream.data.js +30 -0
- package/lib/charts/lupi/hourglass-stream.js +158 -0
- package/lib/charts/lupi/hundred-field.data.js +38 -0
- package/lib/charts/lupi/hundred-field.js +237 -0
- package/lib/charts/lupi/launch-fan.data.js +315 -0
- package/lib/charts/lupi/launch-fan.js +198 -0
- package/lib/charts/lupi/matrix-heat.data.js +97 -0
- package/lib/charts/lupi/matrix-heat.js +246 -0
- package/lib/charts/lupi/parallel-coordinates.data.js +54 -0
- package/lib/charts/lupi/parallel-coordinates.js +218 -0
- package/lib/charts/lupi/radial-convergence.data.js +178 -0
- package/lib/charts/lupi/radial-convergence.js +208 -0
- package/lib/charts/lupi/radial-patchwork.data.js +454 -0
- package/lib/charts/lupi/radial-patchwork.js +181 -0
- package/lib/charts/lupi/ridgeline.data.js +1834 -0
- package/lib/charts/lupi/ridgeline.js +195 -0
- package/lib/charts/lupi/trend-lineage.data.js +51 -0
- package/lib/charts/lupi/trend-lineage.js +198 -0
- package/lib/charts/lupi/type-colonnade.data.js +18 -0
- package/lib/charts/lupi/type-colonnade.js +198 -0
- package/lib/charts/lupi/util-a.js +14 -0
- package/lib/charts/lupi/util-b.js +12 -0
- package/lib/charts/maps/choropleth.js +295 -0
- package/lib/charts/maps/geo.js +84 -0
- package/lib/charts/maps/legend.js +83 -0
- package/lib/charts/maps/step-fill.js +9 -0
- package/lib/charts/maps/us-choropleth.data.js +249 -0
- package/lib/charts/maps/us-choropleth.js +41 -0
- package/lib/charts/maps/world-choropleth.data.js +681 -0
- package/lib/charts/maps/world-choropleth.js +46 -0
- package/lib/charts/markers.js +35 -0
- package/lib/charts/marks.js +31 -0
- package/lib/charts/motion.js +11 -0
- package/lib/charts/originals/daily-users.data.js +101 -0
- package/lib/charts/originals/daily-users.js +203 -0
- package/lib/charts/originals/feature-rank.data.js +92 -0
- package/lib/charts/originals/feature-rank.js +167 -0
- package/lib/charts/originals/format.js +5 -0
- package/lib/charts/originals/key.js +26 -0
- package/lib/charts/originals/response-time.data.js +98 -0
- package/lib/charts/originals/response-time.js +187 -0
- package/lib/charts/originals/revenue-by-plan.data.js +26 -0
- package/lib/charts/originals/revenue-by-plan.js +248 -0
- package/lib/charts/playback.js +68 -0
- package/lib/charts/plot-note.js +27 -0
- package/lib/charts/roles.js +5 -0
- package/lib/charts/rules.js +66 -0
- package/lib/charts/scale-context.js +6 -0
- package/lib/charts/shapes.js +8 -0
- package/lib/charts/shared-options.js +25 -0
- package/lib/charts/svg.js +43 -0
- package/lib/charts/text.js +30 -0
- package/lib/charts/texture-ids.js +20 -0
- package/lib/charts/texture.js +286 -0
- package/lib/charts/util.js +43 -0
- package/lib/charts/value-grid.js +26 -0
- package/lib/draw.js +27 -0
- package/lib/entries/dumbbell-queue.js +2 -0
- package/lib/entries/hairline-area.js +2 -0
- package/lib/entries/hairline-line.js +2 -0
- package/lib/entries/plumb-scatter.js +2 -0
- package/lib/entries/rung-bars.js +2 -0
- package/lib/entries/slope.js +2 -0
- package/lib/frame.js +2 -0
- package/lib/hairline.css +1385 -0
- package/lib/index.js +72 -0
- package/lib/json-schema/dumbbell-queue.json +258 -0
- package/lib/json-schema/hairline-area.json +262 -0
- package/lib/json-schema/hairline-line.json +256 -0
- package/lib/json-schema/index.json +50 -0
- package/lib/json-schema/plumb-scatter.json +363 -0
- package/lib/json-schema/rung-bars.json +230 -0
- package/lib/json-schema/slope.json +333 -0
- package/lib/kit.js +16 -0
- package/lib/lib/format.js +29 -0
- package/lib/lib/random.js +8 -0
- package/lib/maps.js +4 -0
- package/lib/schema/daily.js +9 -0
- package/lib/schema/dumbbell-queue.js +28 -0
- package/lib/schema/format.js +72 -0
- package/lib/schema/hairline-area.js +24 -0
- package/lib/schema/hairline-line.js +23 -0
- package/lib/schema/key.js +4 -0
- package/lib/schema/metrics.js +26 -0
- package/lib/schema/motion.js +12 -0
- package/lib/schema/options.js +21 -0
- package/lib/schema/plumb-scatter.js +48 -0
- package/lib/schema/registry.js +132 -0
- package/lib/schema/rung-bars.js +25 -0
- package/lib/schema/scale.js +9 -0
- package/lib/schema/slope.js +28 -0
- package/lib/schema/validate.js +25 -0
- package/lib/schema.js +16 -0
- package/lib/theme/derive.js +98 -0
- package/lib/theme.css +443 -0
- package/lib/theme.js +1 -0
- package/lib/tokens.css +306 -0
- package/lib/types/charts/axes.d.ts +14 -0
- package/lib/types/charts/basics/candlestick.d.ts +22 -0
- package/lib/types/charts/basics/candlestick.data.d.ts +10 -0
- package/lib/types/charts/basics/daily-empty.d.ts +7 -0
- package/lib/types/charts/basics/daily-readings.d.ts +38 -0
- package/lib/types/charts/basics/dot-heat.d.ts +19 -0
- package/lib/types/charts/basics/dot-heat.data.d.ts +28 -0
- package/lib/types/charts/basics/dumbbell-queue.d.ts +15 -0
- package/lib/types/charts/basics/hairline-area.d.ts +18 -0
- package/lib/types/charts/basics/hairline-line.d.ts +18 -0
- package/lib/types/charts/basics/nested-treemap.d.ts +18 -0
- package/lib/types/charts/basics/nested-treemap.data.d.ts +30 -0
- package/lib/types/charts/basics/paired-rungs.d.ts +21 -0
- package/lib/types/charts/basics/paired-rungs.data.d.ts +43 -0
- package/lib/types/charts/basics/plumb-scatter.d.ts +14 -0
- package/lib/types/charts/basics/rung-bars.d.ts +16 -0
- package/lib/types/charts/basics/rung-geometry.d.ts +6 -0
- package/lib/types/charts/basics/rung-histogram.d.ts +22 -0
- package/lib/types/charts/basics/rung-histogram.data.d.ts +34 -0
- package/lib/types/charts/basics/rung-waterfall.d.ts +19 -0
- package/lib/types/charts/basics/rung-waterfall.data.d.ts +31 -0
- package/lib/types/charts/basics/rungs.d.ts +28 -0
- package/lib/types/charts/basics/series-key.d.ts +19 -0
- package/lib/types/charts/basics/stacked-rungs.d.ts +20 -0
- package/lib/types/charts/basics/stacked-rungs.data.d.ts +26 -0
- package/lib/types/charts/basics/stream-ribbon.d.ts +19 -0
- package/lib/types/charts/basics/stream-ribbon.data.d.ts +29 -0
- package/lib/types/charts/basics/tick-box.d.ts +19 -0
- package/lib/types/charts/basics/tick-box.data.d.ts +30 -0
- package/lib/types/charts/basics/tick-donut.d.ts +24 -0
- package/lib/types/charts/basics/tick-donut.data.d.ts +25 -0
- package/lib/types/charts/basics/tick-gauge.d.ts +22 -0
- package/lib/types/charts/basics/tick-gauge.data.d.ts +24 -0
- package/lib/types/charts/basics/tick-rows.d.ts +18 -0
- package/lib/types/charts/basics/tick-rows.data.d.ts +23 -0
- package/lib/types/charts/basics/util-a.d.ts +10 -0
- package/lib/types/charts/basics/util-b.d.ts +13 -0
- package/lib/types/charts/big/circular-graph.d.ts +20 -0
- package/lib/types/charts/big/circular-graph.data.d.ts +46 -0
- package/lib/types/charts/big/force-galaxy-model.d.ts +109 -0
- package/lib/types/charts/big/force-galaxy.d.ts +18 -0
- package/lib/types/charts/big/force-galaxy.data.d.ts +48 -0
- package/lib/types/charts/big/thread-triptych.d.ts +17 -0
- package/lib/types/charts/big/thread-triptych.data.d.ts +41 -0
- package/lib/types/charts/board/room.d.ts +18 -0
- package/lib/types/charts/board/slope.d.ts +14 -0
- package/lib/types/charts/board/spread.d.ts +5 -0
- package/lib/types/charts/control.d.ts +17 -0
- package/lib/types/charts/core.d.ts +77 -0
- package/lib/types/charts/data-table.d.ts +18 -0
- package/lib/types/charts/fills.d.ts +103 -0
- package/lib/types/charts/forms/area-difference.d.ts +9 -0
- package/lib/types/charts/forms/area-difference.data.d.ts +26 -0
- package/lib/types/charts/forms/brush-math.d.ts +19 -0
- package/lib/types/charts/forms/brush-strip.d.ts +19 -0
- package/lib/types/charts/forms/brushed-overview.d.ts +12 -0
- package/lib/types/charts/forms/brushed-overview.data.d.ts +16 -0
- package/lib/types/charts/forms/chord-ring.d.ts +12 -0
- package/lib/types/charts/forms/chord-ring.data.d.ts +29 -0
- package/lib/types/charts/forms/circle-pack.d.ts +9 -0
- package/lib/types/charts/forms/circle-pack.data.d.ts +23 -0
- package/lib/types/charts/forms/hatched-stack.d.ts +10 -0
- package/lib/types/charts/forms/hatched-stack.data.d.ts +36 -0
- package/lib/types/charts/forms/radial-year.d.ts +8 -0
- package/lib/types/charts/forms/radial-year.data.d.ts +17 -0
- package/lib/types/charts/frame.d.ts +21 -0
- package/lib/types/charts/glance/aggregate-sankey.d.ts +23 -0
- package/lib/types/charts/glance/aggregate-sankey.data.d.ts +32 -0
- package/lib/types/charts/glance/bar-race.d.ts +20 -0
- package/lib/types/charts/glance/bar-race.data.d.ts +32 -0
- package/lib/types/charts/glance/big-slice.d.ts +27 -0
- package/lib/types/charts/glance/big-slice.data.d.ts +30 -0
- package/lib/types/charts/glance/chunky-bars.d.ts +18 -0
- package/lib/types/charts/glance/chunky-bars.data.d.ts +24 -0
- package/lib/types/charts/glance/circular-graph.d.ts +19 -0
- package/lib/types/charts/glance/circular-graph.data.d.ts +43 -0
- package/lib/types/charts/glance/control-slot.d.ts +9 -0
- package/lib/types/charts/glance/diverging-bar.d.ts +19 -0
- package/lib/types/charts/glance/diverging-bar.data.d.ts +27 -0
- package/lib/types/charts/glance/dot-waffle.d.ts +19 -0
- package/lib/types/charts/glance/dot-waffle.data.d.ts +31 -0
- package/lib/types/charts/glance/draw-in.d.ts +20 -0
- package/lib/types/charts/glance/draw-in.data.d.ts +6 -0
- package/lib/types/charts/glance/dynamic-stream.d.ts +22 -0
- package/lib/types/charts/glance/dynamic-stream.data.d.ts +7 -0
- package/lib/types/charts/glance/force-graph.d.ts +16 -0
- package/lib/types/charts/glance/force-graph.data.d.ts +45 -0
- package/lib/types/charts/glance/jitter-strip.d.ts +24 -0
- package/lib/types/charts/glance/jitter-strip.data.d.ts +27 -0
- package/lib/types/charts/glance/link-bundle.d.ts +22 -0
- package/lib/types/charts/glance/matrix-heat-glance.d.ts +22 -0
- package/lib/types/charts/glance/matrix-heat-glance.data.d.ts +35 -0
- package/lib/types/charts/glance/pictorial-bar.d.ts +20 -0
- package/lib/types/charts/glance/pictorial-bar.data.d.ts +27 -0
- package/lib/types/charts/glance/rainfall-dual-area.d.ts +19 -0
- package/lib/types/charts/glance/rainfall-dual-area.data.d.ts +32 -0
- package/lib/types/charts/glance/rank-strip.d.ts +19 -0
- package/lib/types/charts/glance/rank-strip.data.d.ts +36 -0
- package/lib/types/charts/glance/scatter-labels.d.ts +23 -0
- package/lib/types/charts/glance/scatter-morph.d.ts +22 -0
- package/lib/types/charts/glance/scatter-morph.data.d.ts +30 -0
- package/lib/types/charts/glance/single-axis.d.ts +27 -0
- package/lib/types/charts/glance/single-axis.data.d.ts +6 -0
- package/lib/types/charts/glance/stagger-wave.d.ts +18 -0
- package/lib/types/charts/glance/stagger-wave.data.d.ts +26 -0
- package/lib/types/charts/glance/tree-lr.d.ts +16 -0
- package/lib/types/charts/glance/tree-lr.data.d.ts +27 -0
- package/lib/types/charts/glance/util-a.d.ts +31 -0
- package/lib/types/charts/glance/util-b.d.ts +12 -0
- package/lib/types/charts/glance/violin.d.ts +22 -0
- package/lib/types/charts/glance/violin.data.d.ts +24 -0
- package/lib/types/charts/hooks.d.ts +109 -0
- package/lib/types/charts/hover.d.ts +26 -0
- package/lib/types/charts/lupi/arc-matrix.d.ts +18 -0
- package/lib/types/charts/lupi/arc-matrix.data.d.ts +28 -0
- package/lib/types/charts/lupi/ballot-tally.d.ts +19 -0
- package/lib/types/charts/lupi/ballot-tally.data.d.ts +28 -0
- package/lib/types/charts/lupi/barcode-lollipop.d.ts +19 -0
- package/lib/types/charts/lupi/barcode-lollipop.data.d.ts +26 -0
- package/lib/types/charts/lupi/brand-spectrum.d.ts +28 -0
- package/lib/types/charts/lupi/brand-spectrum.data.d.ts +34 -0
- package/lib/types/charts/lupi/bubble-almanac.d.ts +22 -0
- package/lib/types/charts/lupi/bubble-almanac.data.d.ts +45 -0
- package/lib/types/charts/lupi/calendar-heat.d.ts +19 -0
- package/lib/types/charts/lupi/calendar-heat.data.d.ts +20 -0
- package/lib/types/charts/lupi/cluster-field.d.ts +21 -0
- package/lib/types/charts/lupi/cluster-field.data.d.ts +52 -0
- package/lib/types/charts/lupi/dot-cascade.d.ts +22 -0
- package/lib/types/charts/lupi/dot-cascade.data.d.ts +24 -0
- package/lib/types/charts/lupi/dotty-matrix.d.ts +17 -0
- package/lib/types/charts/lupi/dotty-matrix.data.d.ts +32 -0
- package/lib/types/charts/lupi/hourglass-stream.d.ts +18 -0
- package/lib/types/charts/lupi/hourglass-stream.data.d.ts +27 -0
- package/lib/types/charts/lupi/hundred-field.d.ts +18 -0
- package/lib/types/charts/lupi/hundred-field.data.d.ts +24 -0
- package/lib/types/charts/lupi/launch-fan.d.ts +37 -0
- package/lib/types/charts/lupi/launch-fan.data.d.ts +41 -0
- package/lib/types/charts/lupi/matrix-heat.d.ts +20 -0
- package/lib/types/charts/lupi/matrix-heat.data.d.ts +29 -0
- package/lib/types/charts/lupi/parallel-coordinates.d.ts +23 -0
- package/lib/types/charts/lupi/parallel-coordinates.data.d.ts +40 -0
- package/lib/types/charts/lupi/radial-convergence.d.ts +15 -0
- package/lib/types/charts/lupi/radial-convergence.data.d.ts +24 -0
- package/lib/types/charts/lupi/radial-patchwork.d.ts +16 -0
- package/lib/types/charts/lupi/radial-patchwork.data.d.ts +35 -0
- package/lib/types/charts/lupi/ridgeline.d.ts +23 -0
- package/lib/types/charts/lupi/ridgeline.data.d.ts +19 -0
- package/lib/types/charts/lupi/trend-lineage.d.ts +18 -0
- package/lib/types/charts/lupi/trend-lineage.data.d.ts +56 -0
- package/lib/types/charts/lupi/type-colonnade.d.ts +20 -0
- package/lib/types/charts/lupi/type-colonnade.data.d.ts +30 -0
- package/lib/types/charts/lupi/util-a.d.ts +9 -0
- package/lib/types/charts/lupi/util-b.d.ts +11 -0
- package/lib/types/charts/maps/choropleth.d.ts +33 -0
- package/lib/types/charts/maps/geo.d.ts +48 -0
- package/lib/types/charts/maps/legend.d.ts +14 -0
- package/lib/types/charts/maps/step-fill.d.ts +6 -0
- package/lib/types/charts/maps/us-choropleth.d.ts +25 -0
- package/lib/types/charts/maps/us-choropleth.data.d.ts +23 -0
- package/lib/types/charts/maps/world-choropleth.d.ts +22 -0
- package/lib/types/charts/maps/world-choropleth.data.d.ts +35 -0
- package/lib/types/charts/markers.d.ts +42 -0
- package/lib/types/charts/marks.d.ts +58 -0
- package/lib/types/charts/motion.d.ts +12 -0
- package/lib/types/charts/originals/daily-users.d.ts +13 -0
- package/lib/types/charts/originals/daily-users.data.d.ts +17 -0
- package/lib/types/charts/originals/feature-rank.d.ts +13 -0
- package/lib/types/charts/originals/feature-rank.data.d.ts +29 -0
- package/lib/types/charts/originals/format.d.ts +2 -0
- package/lib/types/charts/originals/key.d.ts +16 -0
- package/lib/types/charts/originals/response-time.d.ts +11 -0
- package/lib/types/charts/originals/response-time.data.d.ts +24 -0
- package/lib/types/charts/originals/revenue-by-plan.d.ts +12 -0
- package/lib/types/charts/originals/revenue-by-plan.data.d.ts +26 -0
- package/lib/types/charts/playback.d.ts +42 -0
- package/lib/types/charts/plot-note.d.ts +37 -0
- package/lib/types/charts/roles.d.ts +28 -0
- package/lib/types/charts/rules.d.ts +62 -0
- package/lib/types/charts/scale-context.d.ts +3 -0
- package/lib/types/charts/shapes.d.ts +9 -0
- package/lib/types/charts/shared-options.d.ts +25 -0
- package/lib/types/charts/svg.d.ts +24 -0
- package/lib/types/charts/text.d.ts +36 -0
- package/lib/types/charts/texture-ids.d.ts +24 -0
- package/lib/types/charts/texture.d.ts +185 -0
- package/lib/types/charts/util.d.ts +66 -0
- package/lib/types/charts/value-grid.d.ts +22 -0
- package/lib/types/draw.d.ts +279 -0
- package/lib/types/entries/dumbbell-queue.d.ts +2 -0
- package/lib/types/entries/hairline-area.d.ts +2 -0
- package/lib/types/entries/hairline-line.d.ts +2 -0
- package/lib/types/entries/plumb-scatter.d.ts +2 -0
- package/lib/types/entries/rung-bars.d.ts +2 -0
- package/lib/types/entries/slope.d.ts +2 -0
- package/lib/types/frame.d.ts +2 -0
- package/lib/types/index.d.ts +82 -0
- package/lib/types/kit.d.ts +22 -0
- package/lib/types/lib/format.d.ts +58 -0
- package/lib/types/lib/random.d.ts +5 -0
- package/lib/types/maps.d.ts +2 -0
- package/lib/types/schema/daily.d.ts +14 -0
- package/lib/types/schema/dumbbell-queue.d.ts +91 -0
- package/lib/types/schema/format.d.ts +101 -0
- package/lib/types/schema/hairline-area.d.ts +83 -0
- package/lib/types/schema/hairline-line.d.ts +85 -0
- package/lib/types/schema/key.d.ts +12 -0
- package/lib/types/schema/metrics.d.ts +26 -0
- package/lib/types/schema/motion.d.ts +22 -0
- package/lib/types/schema/options.d.ts +51 -0
- package/lib/types/schema/plumb-scatter.d.ts +124 -0
- package/lib/types/schema/registry.d.ts +309 -0
- package/lib/types/schema/rung-bars.d.ts +84 -0
- package/lib/types/schema/scale.d.ts +34 -0
- package/lib/types/schema/slope.d.ts +120 -0
- package/lib/types/schema/validate.d.ts +29 -0
- package/lib/types/schema.d.ts +30 -0
- package/lib/types/theme/derive.d.ts +23 -0
- package/lib/types/theme.d.ts +2 -0
- package/lib/vendor/us-atlas/states-10m.json.js +13855 -0
- package/lib/vendor/world-atlas/countries-110m.json.js +9357 -0
- package/package.json +162 -4
package/lib/tokens.css
ADDED
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Palettes. Charts never use hex values: only the semantic variables below.
|
|
3
|
+
*
|
|
4
|
+
* --hl-paper page and card surface
|
|
5
|
+
* --hl-ink strongest mark and headline colour
|
|
6
|
+
* --hl-text / --hl-muted / --hl-faint text hierarchy
|
|
7
|
+
* --hl-grid / --hl-rule hairlines: the faint grid and quiet rules
|
|
8
|
+
* --hl-l0 … --hl-l6 importance ladder, most important first ("lightness is data")
|
|
9
|
+
* --hl-hero the one highlighted element per chart
|
|
10
|
+
* --hl-alert thresholds, regressions, over-budget
|
|
11
|
+
* --hl-cat-1 … --hl-cat-4 categorical series
|
|
12
|
+
* --hl-heat-1 … --hl-heat-5 sequential ramp, low → high
|
|
13
|
+
*
|
|
14
|
+
* Every name is --hl- prefixed and scoped under a Hairline root (.hl-root);
|
|
15
|
+
* the library sets nothing on :root, so it never collides with a host's own
|
|
16
|
+
* variables. A host themes a root with deriveTheme (@howells/hairline/theme)
|
|
17
|
+
* or by overriding these on its own rule. Three house modes are set by
|
|
18
|
+
* data-palette on the root: paper, pink and dark. `.surface-dark` (the dark
|
|
19
|
+
* cell) remaps the same names, so a chart inverts without knowing it is on a
|
|
20
|
+
* dark card.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
.hl-root,
|
|
24
|
+
.hl-root[data-palette="paper"] {
|
|
25
|
+
/* Paper: patternmode's paper and ink; the ramp steps evenly between them in OKLCH. */
|
|
26
|
+
--hl-paper: #fbfbf9;
|
|
27
|
+
--hl-ink: #1d1d1b;
|
|
28
|
+
--hl-text: #1d1d1b;
|
|
29
|
+
--hl-muted: #727068;
|
|
30
|
+
--hl-faint: #9f9e9a;
|
|
31
|
+
--hl-grid: #eeece7;
|
|
32
|
+
--hl-rule: #e3e1dc;
|
|
33
|
+
|
|
34
|
+
--hl-l0: #1d1d1b;
|
|
35
|
+
--hl-l1: #41403c;
|
|
36
|
+
--hl-l2: #5f5e5a;
|
|
37
|
+
--hl-l3: #7e7d79;
|
|
38
|
+
--hl-l4: #9f9e9a;
|
|
39
|
+
--hl-l5: #bfbeb9;
|
|
40
|
+
--hl-l6: #dad9d5;
|
|
41
|
+
|
|
42
|
+
--hl-hero: #1d1d1b;
|
|
43
|
+
--hl-alert: #c05951;
|
|
44
|
+
|
|
45
|
+
--hl-cat-1: var(--hl-l0);
|
|
46
|
+
--hl-cat-2: var(--hl-l2);
|
|
47
|
+
--hl-cat-3: var(--hl-l4);
|
|
48
|
+
--hl-cat-4: var(--hl-l6);
|
|
49
|
+
|
|
50
|
+
--hl-heat-1: #dad9d5;
|
|
51
|
+
--hl-heat-2: #9f9e9a;
|
|
52
|
+
--hl-heat-3: #7e7d79;
|
|
53
|
+
--hl-heat-4: #41403c;
|
|
54
|
+
--hl-heat-5: #1d1d1b;
|
|
55
|
+
|
|
56
|
+
/* The paper's grain: noise in the ink's colour at a whisper of opacity. */
|
|
57
|
+
--hl-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.000 0 0 0 0 0.000 0 0 0 0 0.000 0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
|
|
58
|
+
|
|
59
|
+
--hl-dk-paper: #1d1d1b;
|
|
60
|
+
--hl-dk-ink: #fbfbf9;
|
|
61
|
+
--hl-dk-muted: #9f9e9a;
|
|
62
|
+
--hl-dk-faint: #5f5e5a;
|
|
63
|
+
--hl-dk-grid: #34332f;
|
|
64
|
+
--hl-dk-rule: #2b2a27;
|
|
65
|
+
--hl-dk-l0: #fbfbf9;
|
|
66
|
+
--hl-dk-l1: #dad9d5;
|
|
67
|
+
--hl-dk-l2: #bfbeb9;
|
|
68
|
+
--hl-dk-l3: #9f9e9a;
|
|
69
|
+
--hl-dk-l4: #7e7d79;
|
|
70
|
+
--hl-dk-l5: #5f5e5a;
|
|
71
|
+
--hl-dk-l6: #41403c;
|
|
72
|
+
--hl-dk-hero: #fbfbf9;
|
|
73
|
+
--hl-dk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1.000 0 0 0 0 0.980 0 0 0 0 0.941 0 0 0 0.036 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.hl-root[data-palette="pink"] {
|
|
77
|
+
/* Pink: a dusty, dusky broadsheet pink (a greyed rose, deeper than any trademark salmon), with a warm ink ramp drawn toward its hue. */
|
|
78
|
+
--hl-paper: #f1dfdc;
|
|
79
|
+
--hl-ink: #27201e;
|
|
80
|
+
--hl-text: #27201e;
|
|
81
|
+
--hl-muted: #6c605e;
|
|
82
|
+
--hl-faint: #a59895;
|
|
83
|
+
--hl-grid: #e4d3cf;
|
|
84
|
+
--hl-rule: #dccbc7;
|
|
85
|
+
|
|
86
|
+
--hl-l0: #27201e;
|
|
87
|
+
--hl-l1: #443b39;
|
|
88
|
+
--hl-l2: #635856;
|
|
89
|
+
--hl-l3: #837775;
|
|
90
|
+
--hl-l4: #a59895;
|
|
91
|
+
--hl-l5: #c4b5b2;
|
|
92
|
+
--hl-l6: #dccbc8;
|
|
93
|
+
|
|
94
|
+
--hl-hero: #27201e;
|
|
95
|
+
--hl-alert: #9c433e;
|
|
96
|
+
|
|
97
|
+
--hl-cat-1: var(--hl-l0);
|
|
98
|
+
--hl-cat-2: var(--hl-l2);
|
|
99
|
+
--hl-cat-3: var(--hl-l4);
|
|
100
|
+
--hl-cat-4: var(--hl-l6);
|
|
101
|
+
|
|
102
|
+
--hl-heat-1: #dccbc8;
|
|
103
|
+
--hl-heat-2: #a59895;
|
|
104
|
+
--hl-heat-3: #837775;
|
|
105
|
+
--hl-heat-4: #443b39;
|
|
106
|
+
--hl-heat-5: #27201e;
|
|
107
|
+
|
|
108
|
+
/* The paper's grain: noise in the ink's colour at a whisper of opacity. */
|
|
109
|
+
--hl-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.275 0 0 0 0 0.137 0 0 0 0 0.098 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
|
|
110
|
+
|
|
111
|
+
--hl-dk-paper: #1d1d1b;
|
|
112
|
+
--hl-dk-ink: #fbfbf9;
|
|
113
|
+
--hl-dk-muted: #9f9e9a;
|
|
114
|
+
--hl-dk-faint: #5f5e5a;
|
|
115
|
+
--hl-dk-grid: #34332f;
|
|
116
|
+
--hl-dk-rule: #2b2a27;
|
|
117
|
+
--hl-dk-l0: #fbfbf9;
|
|
118
|
+
--hl-dk-l1: #dad9d5;
|
|
119
|
+
--hl-dk-l2: #bfbeb9;
|
|
120
|
+
--hl-dk-l3: #9f9e9a;
|
|
121
|
+
--hl-dk-l4: #7e7d79;
|
|
122
|
+
--hl-dk-l5: #5f5e5a;
|
|
123
|
+
--hl-dk-l6: #41403c;
|
|
124
|
+
--hl-dk-hero: #fbfbf9;
|
|
125
|
+
--hl-dk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1.000 0 0 0 0 0.980 0 0 0 0 0.941 0 0 0 0.036 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.hl-root[data-palette="dark"] {
|
|
129
|
+
/* Dark: a warm near-black page; contrast rebuilt, not inverted. Light ink leads, the ramp descends toward the page. */
|
|
130
|
+
--hl-paper: #181715;
|
|
131
|
+
--hl-ink: #f0eeeb;
|
|
132
|
+
--hl-text: #f0eeeb;
|
|
133
|
+
--hl-muted: #888683;
|
|
134
|
+
--hl-faint: #686663;
|
|
135
|
+
--hl-grid: #242321;
|
|
136
|
+
--hl-rule: #2c2b29;
|
|
137
|
+
|
|
138
|
+
--hl-l0: #f0eeeb;
|
|
139
|
+
--hl-l1: #cccac7;
|
|
140
|
+
--hl-l2: #a9a7a4;
|
|
141
|
+
--hl-l3: #888683;
|
|
142
|
+
--hl-l4: #686663;
|
|
143
|
+
--hl-l5: #4c4a47;
|
|
144
|
+
--hl-l6: #373533;
|
|
145
|
+
|
|
146
|
+
/* A shade below the text ink, so large solid heroes glow rather than glare. */
|
|
147
|
+
--hl-hero: #d8d6d2;
|
|
148
|
+
--hl-alert: #d87a6e;
|
|
149
|
+
|
|
150
|
+
--hl-cat-1: var(--hl-l0);
|
|
151
|
+
--hl-cat-2: var(--hl-l2);
|
|
152
|
+
--hl-cat-3: var(--hl-l4);
|
|
153
|
+
--hl-cat-4: var(--hl-l6);
|
|
154
|
+
|
|
155
|
+
--hl-heat-1: #373533;
|
|
156
|
+
--hl-heat-2: #686663;
|
|
157
|
+
--hl-heat-3: #888683;
|
|
158
|
+
--hl-heat-4: #cccac7;
|
|
159
|
+
--hl-heat-5: #f0eeeb;
|
|
160
|
+
|
|
161
|
+
/* The paper's grain: noise in the ink's colour at a whisper of opacity. */
|
|
162
|
+
--hl-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1.000 0 0 0 0 0.980 0 0 0 0 0.941 0 0 0 0.036 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
|
|
163
|
+
--hl-dk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1.000 0 0 0 0 0.980 0 0 0 0 0.941 0 0 0 0.036 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url%28%23g%29'/%3E%3C/svg%3E");
|
|
164
|
+
|
|
165
|
+
/* The one dark cell sits a step deeper than the dark page. */
|
|
166
|
+
--hl-dk-paper: #0e0d0b;
|
|
167
|
+
--hl-dk-ink: #f0eeeb;
|
|
168
|
+
--hl-dk-muted: #888683;
|
|
169
|
+
--hl-dk-faint: #4c4a47;
|
|
170
|
+
--hl-dk-grid: #1f1e1c;
|
|
171
|
+
--hl-dk-rule: #262523;
|
|
172
|
+
--hl-dk-l0: #f0eeeb;
|
|
173
|
+
--hl-dk-l1: #cccac7;
|
|
174
|
+
--hl-dk-l2: #a9a7a4;
|
|
175
|
+
--hl-dk-l3: #888683;
|
|
176
|
+
--hl-dk-l4: #686663;
|
|
177
|
+
--hl-dk-l5: #4c4a47;
|
|
178
|
+
--hl-dk-l6: #373533;
|
|
179
|
+
--hl-dk-hero: #d8d6d2;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* Dark cards: same names, inverted values. */
|
|
183
|
+
.hl-root .surface-dark,
|
|
184
|
+
.hl-root.surface-dark {
|
|
185
|
+
--hl-paper: var(--hl-dk-paper);
|
|
186
|
+
--hl-ink: var(--hl-dk-ink);
|
|
187
|
+
--hl-text: var(--hl-dk-ink);
|
|
188
|
+
--hl-muted: var(--hl-dk-muted);
|
|
189
|
+
--hl-faint: var(--hl-dk-faint);
|
|
190
|
+
--hl-grid: var(--hl-dk-grid);
|
|
191
|
+
--hl-rule: var(--hl-dk-rule);
|
|
192
|
+
--hl-l0: var(--hl-dk-l0);
|
|
193
|
+
--hl-l1: var(--hl-dk-l1);
|
|
194
|
+
--hl-l2: var(--hl-dk-l2);
|
|
195
|
+
--hl-l3: var(--hl-dk-l3);
|
|
196
|
+
--hl-l4: var(--hl-dk-l4);
|
|
197
|
+
--hl-l5: var(--hl-dk-l5);
|
|
198
|
+
--hl-l6: var(--hl-dk-l6);
|
|
199
|
+
--hl-hero: var(--hl-dk-hero);
|
|
200
|
+
--hl-cat-1: var(--hl-dk-l0);
|
|
201
|
+
--hl-cat-2: var(--hl-dk-l2);
|
|
202
|
+
--hl-cat-3: var(--hl-dk-l4);
|
|
203
|
+
--hl-cat-4: var(--hl-dk-l6);
|
|
204
|
+
--hl-grain: var(--hl-dk-grain);
|
|
205
|
+
background: var(--hl-grain), var(--hl-paper);
|
|
206
|
+
color: var(--hl-text);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/* Derived tones, valid in every palette (and on dark cards). */
|
|
210
|
+
.hl-root,
|
|
211
|
+
.hl-root .surface-dark,
|
|
212
|
+
.hl-root.surface-dark {
|
|
213
|
+
--hl-alert-soft: color-mix(in oklab, var(--hl-alert) 22%, transparent);
|
|
214
|
+
--hl-alert-faded: color-mix(in oklab, var(--hl-alert) 45%, var(--hl-paper));
|
|
215
|
+
--hl-alert-rule: color-mix(in oklab, var(--hl-alert) 55%, var(--hl-paper));
|
|
216
|
+
--hl-hero-soft: color-mix(in oklab, var(--hl-hero) 25%, var(--hl-paper));
|
|
217
|
+
--hl-panel: color-mix(in oklab, var(--hl-paper) 96%, var(--hl-ink));
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/*
|
|
221
|
+
* Dashboard boards (the dense, scrubbable style). They sit on the same paper
|
|
222
|
+
* as every other chart and read the palette's own text, muted, faint, grid
|
|
223
|
+
* and rule. Series tones are steps on the ramp: past, the cursor's month
|
|
224
|
+
* (active) and future.
|
|
225
|
+
*/
|
|
226
|
+
.hl-root .surface-board,
|
|
227
|
+
.hl-root.surface-board {
|
|
228
|
+
--hl-bg: var(--hl-paper);
|
|
229
|
+
--hl-board-panel: var(--hl-paper);
|
|
230
|
+
|
|
231
|
+
/*
|
|
232
|
+
* Series tones: the fill taxonomy's tones only (src/charts/fills.ts): hero,
|
|
233
|
+
* l2, l3, l4, l5 and alert. No mixes, no alpha, no l0, l1 or l6.
|
|
234
|
+
*/
|
|
235
|
+
--hl-s1: var(--hl-l2);
|
|
236
|
+
--hl-s1-active: var(--hl-hero);
|
|
237
|
+
--hl-s1-future: var(--hl-l4);
|
|
238
|
+
--hl-s2: var(--hl-l4);
|
|
239
|
+
--hl-s2-active: var(--hl-l3);
|
|
240
|
+
--hl-s2-future: var(--hl-l5);
|
|
241
|
+
--hl-s3: var(--hl-l5);
|
|
242
|
+
--hl-s3-active: var(--hl-l4);
|
|
243
|
+
--hl-s3-future: var(--hl-l5);
|
|
244
|
+
|
|
245
|
+
--hl-line1: var(--hl-hero);
|
|
246
|
+
--hl-line1-future: var(--hl-l4);
|
|
247
|
+
--hl-line2: var(--hl-l3);
|
|
248
|
+
--hl-line2-future: var(--hl-l5);
|
|
249
|
+
|
|
250
|
+
--hl-area1: var(--hl-l5);
|
|
251
|
+
--hl-area2: var(--hl-l5);
|
|
252
|
+
--hl-area3: var(--hl-l5);
|
|
253
|
+
--hl-band-past: var(--hl-l5);
|
|
254
|
+
--hl-band-future: var(--hl-l5);
|
|
255
|
+
|
|
256
|
+
/* Red marks one exceptional thing per chart: one solid alert tone. */
|
|
257
|
+
--hl-red: var(--hl-alert);
|
|
258
|
+
--hl-red-past: var(--hl-alert);
|
|
259
|
+
--hl-red-future: var(--hl-alert);
|
|
260
|
+
--hl-red-soft: var(--hl-alert);
|
|
261
|
+
--hl-red-rule: var(--hl-alert);
|
|
262
|
+
|
|
263
|
+
--hl-board-bar: var(--hl-l3);
|
|
264
|
+
--hl-board-label-2: var(--hl-l3);
|
|
265
|
+
--hl-board-swatch-3: var(--hl-l4);
|
|
266
|
+
--hl-board-link: var(--hl-l5);
|
|
267
|
+
--hl-board-link-hot: var(--hl-l4);
|
|
268
|
+
--hl-board-hot: var(--hl-alert);
|
|
269
|
+
--hl-board-heat-1: var(--hl-l5);
|
|
270
|
+
--hl-board-heat-2: var(--hl-l4);
|
|
271
|
+
--hl-board-heat-3: var(--hl-l3);
|
|
272
|
+
--hl-board-heat-4: var(--hl-l2);
|
|
273
|
+
--hl-board-heat-5: var(--hl-hero);
|
|
274
|
+
|
|
275
|
+
--hl-panel: var(--hl-board-panel);
|
|
276
|
+
background: var(--hl-grain), var(--hl-bg);
|
|
277
|
+
color: var(--hl-text);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/*
|
|
281
|
+
* Motion. Every chart moves with these and nothing else; charts/motion.ts
|
|
282
|
+
* mirrors them for the few charts animated from script.
|
|
283
|
+
*/
|
|
284
|
+
.hl-root {
|
|
285
|
+
/* Arrivals: bars, dots and labels appearing in place (ease-out-quint). */
|
|
286
|
+
--hl-ease-enter: cubic-bezier(0.23, 1, 0.32, 1);
|
|
287
|
+
/* Crossing the chart: lines drawing on, wipes, marks moving (ease-in-out-quart). */
|
|
288
|
+
--hl-ease-travel: cubic-bezier(0.77, 0, 0.175, 1);
|
|
289
|
+
/* Tone changes: hover dims, highlights, palettes. */
|
|
290
|
+
--hl-ease-tone: ease;
|
|
291
|
+
|
|
292
|
+
--hl-duration-hover: 150ms; /* dims and highlights under the pointer */
|
|
293
|
+
--hl-duration-change: 400ms; /* data or palette changing in place */
|
|
294
|
+
--hl-duration-enter: 600ms; /* dots and text arriving */
|
|
295
|
+
--hl-duration-grow: 800ms; /* bars and areas rising from their baseline */
|
|
296
|
+
--hl-duration-long: 1200ms; /* lines drawing on, marks crossing a chart */
|
|
297
|
+
|
|
298
|
+
/* Labels and furniture trail the marks they describe. */
|
|
299
|
+
--hl-fade-lag: 150ms;
|
|
300
|
+
|
|
301
|
+
/* Steps between neighbours in a group, by how many there are. */
|
|
302
|
+
--hl-stagger-dense: 8ms; /* hundreds: cells, ticks, dots */
|
|
303
|
+
--hl-stagger-fine: 16ms; /* dozens */
|
|
304
|
+
--hl-stagger-mark: 40ms; /* a handful of bars or points */
|
|
305
|
+
--hl-stagger-series: 80ms; /* a few series, rows or phases */
|
|
306
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface Margin {
|
|
2
|
+
bottom: number;
|
|
3
|
+
left: number;
|
|
4
|
+
right: number;
|
|
5
|
+
top: number;
|
|
6
|
+
}
|
|
7
|
+
export interface TickMark {
|
|
8
|
+
label: string;
|
|
9
|
+
x: number;
|
|
10
|
+
}
|
|
11
|
+
/** Where a mark sits relative to the scrub cursor. */
|
|
12
|
+
export declare const phase: (i: number, cursor: number) => "active" | "future" | "past";
|
|
13
|
+
/** Snap a coordinate to the pixel grid for crisp 1px lines. */
|
|
14
|
+
export declare const crisp: (v: number) => number;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { NoteProps } from "../../schema/options.js";
|
|
2
|
+
import type { CandleDatum } from "./candlestick.data.js";
|
|
3
|
+
interface CandlestickProps extends NoteProps {
|
|
4
|
+
data?: CandleDatum[];
|
|
5
|
+
/** Formats prices on the value axis. Defaults to the house money format. */
|
|
6
|
+
format?: (v: number) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Formats an exact price: the labelled highest high and lowest low, the
|
|
9
|
+
* tooltip and the description. Defaults to dollars and cents, which an
|
|
10
|
+
* exact price needs and the whole-dollar money format would round away.
|
|
11
|
+
*/
|
|
12
|
+
formatPrice?: (v: number) => string;
|
|
13
|
+
height?: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* F17 Daily price. Open-high-low-close per period: the body runs open to
|
|
17
|
+
* close (hollow = closed up, hatched = closed down), the wick is the full
|
|
18
|
+
* reach. Every candle is one grey; the latest is in ink. The highest high and
|
|
19
|
+
* lowest low carry their price.
|
|
20
|
+
*/
|
|
21
|
+
export declare const Candlestick: (props: CandlestickProps) => import("react").JSX.Element;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** One trading day. */
|
|
2
|
+
export interface CandleDatum {
|
|
3
|
+
close: number;
|
|
4
|
+
date: Date;
|
|
5
|
+
high: number;
|
|
6
|
+
low: number;
|
|
7
|
+
open: number;
|
|
8
|
+
}
|
|
9
|
+
/** A made-up price, daily, 24 August to 2 October 2026 (see above). */
|
|
10
|
+
export declare const candlestickDemo: CandleDatum[];
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { DailyDatum } from "../../schema/daily.js";
|
|
2
|
+
/**
|
|
3
|
+
* One reading as the daily charts draw it: the date parsed, the key it is
|
|
4
|
+
* addressed by, and a value that is null for a gap (null, NaN or infinite).
|
|
5
|
+
*/
|
|
6
|
+
export interface Reading {
|
|
7
|
+
date: Date;
|
|
8
|
+
key: string;
|
|
9
|
+
value: number | null;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The payload as readings in date order (the sort is stable, so readings on
|
|
13
|
+
* one day keep their order). A date that does not parse is dropped; a value
|
|
14
|
+
* that is not a finite number becomes a gap.
|
|
15
|
+
*/
|
|
16
|
+
export declare const readingsOf: (data: DailyDatum[]) => Reading[];
|
|
17
|
+
/** Every reading as table rows: its date and value, a gap saying so. */
|
|
18
|
+
export declare const readingRows: (readings: Reading[], fmtDate: (d: Date) => string, format: (v: number) => string) => string[][];
|
|
19
|
+
/** The indexes of the readings that have a value. */
|
|
20
|
+
export declare const liveOf: (readings: Reading[]) => number[];
|
|
21
|
+
/** The readings, with the indexes of those that have a value: they travel together. */
|
|
22
|
+
export interface Series {
|
|
23
|
+
live: number[];
|
|
24
|
+
readings: Reading[];
|
|
25
|
+
}
|
|
26
|
+
/** The readings as a `Series`. */
|
|
27
|
+
export declare const seriesOf: (readings: Reading[]) => Series;
|
|
28
|
+
/** React keys: each reading's key, numbered by position so repeats stay unique. */
|
|
29
|
+
export declare const reactKeyOf: (reading: Reading, index: number) => string;
|
|
30
|
+
/** The value at `index`, which the caller knows is live. */
|
|
31
|
+
export declare const valueAt: (readings: Reading[], index: number) => number;
|
|
32
|
+
/**
|
|
33
|
+
* The reading to draw in ink: the live one whose key is `emphasis`, else
|
|
34
|
+
* `fallback`. A key that names a gap or no reading emphasises none (-1).
|
|
35
|
+
*/
|
|
36
|
+
export declare const heroOf: (readings: Reading[], live: number[], emphasis: string | undefined, fallback: number) => number;
|
|
37
|
+
/** A reading that has a value: the line and area break where it is false. */
|
|
38
|
+
export declare const isLive: (reading: Reading) => boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { NoteProps } from "../../schema/options.js";
|
|
2
|
+
import type { DotHeatData } from "./dot-heat.data.js";
|
|
3
|
+
interface DotHeatProps extends NoteProps {
|
|
4
|
+
data?: DotHeatData;
|
|
5
|
+
format?: (v: number) => string;
|
|
6
|
+
height?: number;
|
|
7
|
+
/** [row, column] of the cell to ring; defaults to the largest. */
|
|
8
|
+
highlight?: readonly [number, number];
|
|
9
|
+
/** Label every nth column on the axis. */
|
|
10
|
+
labelEvery?: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* F10 Hour of birth. One dot per cell, its area and tone stretched across
|
|
14
|
+
* the span from the smallest value to the largest (tone in thirds); the peak is the one dot in ink, inside an evenly dotted ring.
|
|
15
|
+
* Empty cells keep a pinpoint so silence stays visible. The tooltip sits
|
|
16
|
+
* above the grid, over the hovered column, clear of every dot.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DotHeat: (props: DotHeatProps) => import("react").JSX.Element;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** A rows × columns grid of values, e.g. weekday × hour. */
|
|
2
|
+
export interface DotHeatData {
|
|
3
|
+
columns: string[];
|
|
4
|
+
rows: string[];
|
|
5
|
+
values: number[][];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Share of US births by weekday and hour of delivery, 2013.
|
|
9
|
+
*
|
|
10
|
+
* Source: CDC/NCHS, Data Brief 200, "When Are Babies Born: Morning, Noon, or
|
|
11
|
+
* Night? Birth Certificate Data for 2013". The brief's data table (Figure 1)
|
|
12
|
+
* only splits Monday to Friday from the weekend, so the hour by weekday
|
|
13
|
+
* counts come from the file behind it, the 2013 natality public use file
|
|
14
|
+
* (Nat2013us.zip, record fields DOB_TT time of birth and DOB_WK weekday).
|
|
15
|
+
* Brief: https://www.cdc.gov/nchs/products/databriefs/db200.htm
|
|
16
|
+
* Table: https://www.cdc.gov/nchs/data/databriefs/db200_table.pdf
|
|
17
|
+
* File: https://ftp.cdc.gov/pub/Health_Statistics/NCHS/Datasets/DVS/natality/Nat2013us.zip
|
|
18
|
+
* Fetched 2026-10-15.
|
|
19
|
+
*
|
|
20
|
+
* Transform: the records with a stated time of birth (the 41 states and the
|
|
21
|
+
* District of Columbia on the 2003 certificate; DOB_TT 9999 or blank is
|
|
22
|
+
* dropped, leaving 3,563,505 of 3,940,764 records) are counted by DOB_WK and
|
|
23
|
+
* the hour of DOB_TT. Each weekday's 24 counts are divided by that weekday's
|
|
24
|
+
* total and given as a per cent to one decimal place.
|
|
25
|
+
* Check: pooling Monday to Friday, and Saturday with Sunday, reproduces the
|
|
26
|
+
* brief's table at 8 a.m. (6.7 and 4.6) and noon (6.3 and 5.0).
|
|
27
|
+
*/
|
|
28
|
+
export declare const dotHeatDemo: DotHeatData;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DumbbellQueueProps } from "../../schema/dumbbell-queue.js";
|
|
2
|
+
/**
|
|
3
|
+
* Props are the `dumbbellQueueSchema` payload (src/schema/dumbbell-queue.ts);
|
|
4
|
+
* `data` is required and never defaults to demo data. Give `width` and
|
|
5
|
+
* `height` for a fixed-size chart that is complete on the first (server)
|
|
6
|
+
* render. Bad input is tolerated: a row with a value that is not a finite
|
|
7
|
+
* number is skipped, negatives extend the axis below zero, equal ends draw
|
|
8
|
+
* no rungs, duplicate labels each get a row (give them `id`s to tell them
|
|
9
|
+
* apart), and no data draws a quiet empty axis.
|
|
10
|
+
*
|
|
11
|
+
* F12 Before and after. Hollow dot = before, solid dot = after, and the gap
|
|
12
|
+
* between them holds one 2px rung per unit of change, so it can be counted.
|
|
13
|
+
* The biggest change is in ink; a row that changed the alert way (a rise by default) rungs in the alert colour.
|
|
14
|
+
*/
|
|
15
|
+
export declare const DumbbellQueue: (props: DumbbellQueueProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { HairlineAreaProps } from "../../schema/hairline-area.js";
|
|
2
|
+
/**
|
|
3
|
+
* F3 Daily area. The area under the line is an engraved stipple, one 1px dot
|
|
4
|
+
* per 4px cell, with a 2px stem every seventh day (every month over a year). The peak stands in ink,
|
|
5
|
+
* labelled, with its label kept inside the frame when it is the first day;
|
|
6
|
+
* hovering a day raises its stem.
|
|
7
|
+
*
|
|
8
|
+
* Props are the `hairlineAreaSchema` payload (src/schema/hairline-area.ts);
|
|
9
|
+
* `data` is required and never defaults to demo data; dates are ISO strings.
|
|
10
|
+
* Give `width` and `height` for a fixed-size chart that is complete on the
|
|
11
|
+
* first (server) render. Bad input is tolerated: readings are drawn in date
|
|
12
|
+
* order, spaced evenly; a reading whose value is null, NaN or infinite is a
|
|
13
|
+
* gap, with the area and line broken there; one reading draws a lone dot;
|
|
14
|
+
* negatives are drawn below the zero line; no readings (or only gaps) draw a
|
|
15
|
+
* quiet empty axis; `emphasis` is a reading's `id` or date, and one that names
|
|
16
|
+
* no live reading emphasises none.
|
|
17
|
+
*/
|
|
18
|
+
export declare const HairlineArea: (props: HairlineAreaProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { HairlineLineProps } from "../../schema/hairline-line.js";
|
|
2
|
+
/**
|
|
3
|
+
* F2 Daily line. One dot per reading on a grey line, placed by its date so a
|
|
4
|
+
* missing day leaves a gap. Weekend days are hollow rings on an evenly dotted
|
|
5
|
+
* stem to the floor; the peak (or, with `extreme="trough"`, the lowest) is in
|
|
6
|
+
* ink on a solid ink stem, with its value. The latest day carries its value
|
|
7
|
+
* quietly.
|
|
8
|
+
*
|
|
9
|
+
* Props are the `hairlineLineSchema` payload (src/schema/hairline-line.ts);
|
|
10
|
+
* `data` is required and never defaults to demo data; dates are ISO strings.
|
|
11
|
+
* Give `width` and `height` for a fixed-size chart that is complete on the
|
|
12
|
+
* first (server) render. Bad input is tolerated: readings are drawn in date
|
|
13
|
+
* order; a reading whose value is null, NaN or infinite is a gap, with no dot
|
|
14
|
+
* and a break in the line; one reading draws a lone dot; no readings (or only
|
|
15
|
+
* gaps) draw a quiet empty axis; `emphasis` is a reading's `id` or date, and
|
|
16
|
+
* one that names no live reading emphasises none.
|
|
17
|
+
*/
|
|
18
|
+
export declare const HairlineLine: (props: HairlineLineProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TreemapGroup } from "./nested-treemap.data.js";
|
|
2
|
+
interface NestedTreemapProps {
|
|
3
|
+
data?: TreemapGroup[];
|
|
4
|
+
/** Formats a leaf's value, bare: the chart's name carries the unit. */
|
|
5
|
+
format?: (v: number) => string;
|
|
6
|
+
height?: number;
|
|
7
|
+
/** Leaf to draw in the hero colour, as "Group/Leaf" or a leaf name. Defaults to the largest leaf. */
|
|
8
|
+
highlight?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* F13 Treemap. Two levels: each parent is a title band with its share, its
|
|
12
|
+
* children tile the space under it with area = value. Each parent's tiles
|
|
13
|
+
* share one engraving (stipple, hatch or rules) on paper inside a 1px rule,
|
|
14
|
+
* so area carries the comparison and texture the family; the largest leaf is
|
|
15
|
+
* ink.
|
|
16
|
+
*/
|
|
17
|
+
export declare const NestedTreemap: (props: NestedTreemapProps) => import("react").JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface TreemapLeaf {
|
|
2
|
+
name: string;
|
|
3
|
+
value: number;
|
|
4
|
+
}
|
|
5
|
+
export interface TreemapGroup {
|
|
6
|
+
children: TreemapLeaf[];
|
|
7
|
+
name: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* F13 Milk by use. Where the United Kingdom's milk went in 2025: the milk
|
|
11
|
+
* dairies put into each product, in millions of litres, grouped by kind of
|
|
12
|
+
* product. Cheddar takes 3,372 of the 12,515 drawn, drinking milk 6,035.
|
|
13
|
+
*
|
|
14
|
+
* Source: Defra, "Milk utilisation by dairies in England and Wales", Milk
|
|
15
|
+
* availability, usage and production dataset (Milkutil_dataset_20261001.ods,
|
|
16
|
+
* sheet UK_Annual; Open Government Licence v3.0).
|
|
17
|
+
* https://www.gov.uk/government/statistics/milk-utilisation-by-dairies-in-england-and-wales
|
|
18
|
+
* https://assets.publishing.service.gov.uk/media/6abd090155bc01d752a7f14d/Milkutil_dataset_20261001.ods
|
|
19
|
+
* Fetched 2026-10-15.
|
|
20
|
+
*
|
|
21
|
+
* Transform: the last row of UK_Annual, which is 2025 (its year cell is stored
|
|
22
|
+
* as the date 2025-07-17); the twelve months of 2025 in UK_Monthly sum to the
|
|
23
|
+
* same liquid milk and cheddar figures, to 0.1. Columns "Disposals of milk
|
|
24
|
+
* for ..." in million litres, rounded to whole numbers. Territorials are "other
|
|
25
|
+
* long life" plus "short life" territorial cheese. Butter is in million cream
|
|
26
|
+
* litres, as the file gives it. Left out: milk powders (suppressed in the file
|
|
27
|
+
* as [x]) and the file's catch-all "other products" (1,987 million litres).
|
|
28
|
+
* Scripts: reference/scripts/F13/gen.py.
|
|
29
|
+
*/
|
|
30
|
+
export declare const nestedTreemapDemo: TreemapGroup[];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { NoteProps } from "../../schema/options.js";
|
|
2
|
+
import type { PairDatum } from "./paired-rungs.data.js";
|
|
3
|
+
interface PairedRungsProps extends NoteProps {
|
|
4
|
+
data?: PairDatum[];
|
|
5
|
+
/** Units per rung. */
|
|
6
|
+
unit?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
format?: (v: number) => string;
|
|
9
|
+
/** Period names for the tooltip, earlier first. */
|
|
10
|
+
periods?: [string, string];
|
|
11
|
+
/** Index of the category whose current ladder is drawn in the hero colour. */
|
|
12
|
+
highlight?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* F6 Getting to work. Per category, the earlier period is a quiet column of
|
|
16
|
+
* hatch on paper inside a 1px rule, and the current period a stack of grey
|
|
17
|
+
* 2px rungs (one per unit, every fifth darker). Only the leader's current
|
|
18
|
+
* stack is in ink; a two-swatch key names the periods.
|
|
19
|
+
*/
|
|
20
|
+
export declare const PairedRungs: (props: PairedRungsProps) => import("react").JSX.Element;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** One category measured in two periods. */
|
|
2
|
+
export interface PairDatum {
|
|
3
|
+
current: number;
|
|
4
|
+
label: string;
|
|
5
|
+
previous: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* How people in England and Wales usually travel to work, as a percentage of
|
|
9
|
+
* residents in employment: Census Day 2011 (previous) against Census Day 2021
|
|
10
|
+
* (current).
|
|
11
|
+
*
|
|
12
|
+
* Source: Office for National Statistics, Census 2021 TS061 "Method used to
|
|
13
|
+
* travel to work" (2001 specification) and Census 2011 QS703EW "Method of
|
|
14
|
+
* Travel to Work (2001 specification)", both via Nomis (Open Government Licence).
|
|
15
|
+
* 2021: https://www.nomisweb.co.uk/api/v01/dataset/NM_2078_1.data.csv?geography=2092957703&c2021_ttwmeth_12=0...11&measures=20100
|
|
16
|
+
* 2011: https://www.nomisweb.co.uk/api/v01/dataset/NM_576_1.data.csv?geography=2092957703&cell=0...12&measures=20100
|
|
17
|
+
* Quality note: https://www.ons.gov.uk/employmentandlabourmarket/peopleinwork/employmentandemployeetypes/methodologies/traveltoworkqualityinformationforcensus2021
|
|
18
|
+
* Fetched 2026-10-15. Geography: England and Wales (K04000001).
|
|
19
|
+
*
|
|
20
|
+
* Why QS703EW and not QS701EW: both TS061 and QS703EW use the 2001
|
|
21
|
+
* specification, in which someone whose workplace is their home counts as
|
|
22
|
+
* "Work mainly at or from home" even if they also drive (for example to visit
|
|
23
|
+
* clients). QS701EW (2011 specification) ranks the travel method first and
|
|
24
|
+
* gives about 1.42 million home workers in 2011 against 2.72 million in
|
|
25
|
+
* QS703EW, so it is not comparable with TS061. ONS publishes the same headline
|
|
26
|
+
* for the compatible pair: 10.3% in 2011 and 31.2% in 2021.
|
|
27
|
+
*
|
|
28
|
+
* Base population: 2021 is residents aged 16 and over in employment the week
|
|
29
|
+
* before the census (27,773,666). 2011 is residents aged 16 to 74 (41,126,540)
|
|
30
|
+
* less the "Not in employment" cell (14,600,204), which leaves 26,526,336 in
|
|
31
|
+
* employment. The age ceiling differs slightly, so shares are shown, not counts.
|
|
32
|
+
*
|
|
33
|
+
* Transform: per category, 100 * cell / employed base for each census, rounded
|
|
34
|
+
* to one decimal place. Categories kept: "Driving a car or van" (Driving),
|
|
35
|
+
* "Work mainly at or from home" (At home), "On foot", "Bus, minibus or coach"
|
|
36
|
+
* (Bus) and "Train"; the rest are dropped, so the five do not sum to 100.
|
|
37
|
+
*
|
|
38
|
+
* Caveat: Census Day 2021 (21 March 2021) fell in a national lockdown with
|
|
39
|
+
* about 5.6 million people on furlough, so the home-working jump is partly a
|
|
40
|
+
* snapshot of the pandemic. ONS: "census travel to work data are a mixture of
|
|
41
|
+
* pandemic and pre-pandemic travel behaviours".
|
|
42
|
+
*/
|
|
43
|
+
export declare const pairedRungsDemo: PairDatum[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PlumbScatterProps } from "../../schema/plumb-scatter.js";
|
|
2
|
+
/**
|
|
3
|
+
* F8 Stem scatter. Up to twenty points, each on a stem to the floor so x can
|
|
4
|
+
* be read where the stem lands: dotted at pitch 3, solid ink for the hero.
|
|
5
|
+
* The highest point is the hero; the highest and lowest are named.
|
|
6
|
+
*
|
|
7
|
+
* Props are the `plumbScatterSchema` payload (src/schema/plumb-scatter.ts);
|
|
8
|
+
* `data` is required and never defaults to demo data. Give `width` and
|
|
9
|
+
* `height` for a fixed-size chart that is complete on the first (server)
|
|
10
|
+
* render. Bad input is tolerated: a point with a coordinate that is not a
|
|
11
|
+
* finite number is skipped, coincident points each get a dot, negatives are
|
|
12
|
+
* drawn on the axes, and no data draws a quiet empty axis.
|
|
13
|
+
*/
|
|
14
|
+
export declare const PlumbScatter: (props: PlumbScatterProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RungBarsProps } from "../../schema/rung-bars.js";
|
|
2
|
+
/**
|
|
3
|
+
* F1 Counted bars. Each bar is a carved column of solid 2px rungs at one
|
|
4
|
+
* pitch, one per unit, every tenth long and dark like the marks on a rule,
|
|
5
|
+
* casting an engraved hatch shadow behind and to its right. The largest bar
|
|
6
|
+
* is in ink and its shadow is crosshatched.
|
|
7
|
+
*
|
|
8
|
+
* Props are the `rungBarsSchema` payload (src/schema/rung-bars.ts); `data` is
|
|
9
|
+
* required and never defaults to demo data. Give `width` and `height` for a
|
|
10
|
+
* fixed-size chart that is complete on the first (server) render. Bad input
|
|
11
|
+
* is tolerated: a datum whose value is not a finite number is skipped,
|
|
12
|
+
* a negative value stands as an empty column with its figure, duplicate
|
|
13
|
+
* labels each get a bar (give them `id`s to tell them apart), and no data
|
|
14
|
+
* draws a quiet empty axis.
|
|
15
|
+
*/
|
|
16
|
+
export declare const RungBars: (props: RungBarsProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|