@pibbl/core 0.0.3-alpha.85.1 → 0.0.3-alpha.90.1

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.
Files changed (59) hide show
  1. package/dist/features/viz/index.d.ts +13 -0
  2. package/dist/features/viz/index.js +57 -0
  3. package/dist/features/viz/index.js.map +2 -2
  4. package/dist/features/viz/lib/graph/bipartite.d.ts +14 -0
  5. package/dist/features/viz/lib/graph/bipartite.js +250 -0
  6. package/dist/features/viz/lib/graph/bipartite.js.map +7 -0
  7. package/dist/features/viz/lib/graph/chord.d.ts +44 -0
  8. package/dist/features/viz/lib/graph/chord.js +348 -0
  9. package/dist/features/viz/lib/graph/chord.js.map +7 -0
  10. package/dist/features/viz/lib/graph/dependency.d.ts +26 -0
  11. package/dist/features/viz/lib/graph/dependency.js +141 -0
  12. package/dist/features/viz/lib/graph/dependency.js.map +7 -0
  13. package/dist/features/viz/lib/graph/force.d.ts +28 -0
  14. package/dist/features/viz/lib/graph/force.js +580 -0
  15. package/dist/features/viz/lib/graph/force.js.map +7 -0
  16. package/dist/features/viz/lib/graph/hierarchy.d.ts +21 -0
  17. package/dist/features/viz/lib/graph/hierarchy.js +112 -0
  18. package/dist/features/viz/lib/graph/hierarchy.js.map +7 -0
  19. package/dist/features/viz/lib/graph/icicle.d.ts +16 -0
  20. package/dist/features/viz/lib/graph/icicle.js +153 -0
  21. package/dist/features/viz/lib/graph/icicle.js.map +7 -0
  22. package/dist/features/viz/lib/graph/matrix.d.ts +30 -0
  23. package/dist/features/viz/lib/graph/matrix.js +243 -0
  24. package/dist/features/viz/lib/graph/matrix.js.map +7 -0
  25. package/dist/features/viz/lib/graph/neighborhood.d.ts +11 -0
  26. package/dist/features/viz/lib/graph/neighborhood.js +281 -0
  27. package/dist/features/viz/lib/graph/neighborhood.js.map +7 -0
  28. package/dist/features/viz/lib/graph/routes.d.ts +35 -0
  29. package/dist/features/viz/lib/graph/routes.js +102 -0
  30. package/dist/features/viz/lib/graph/routes.js.map +7 -0
  31. package/dist/features/viz/lib/graph/sankey.d.ts +44 -0
  32. package/dist/features/viz/lib/graph/sankey.js +341 -0
  33. package/dist/features/viz/lib/graph/sankey.js.map +7 -0
  34. package/dist/features/viz/lib/graph/shared.d.ts +59 -0
  35. package/dist/features/viz/lib/graph/shared.js +296 -0
  36. package/dist/features/viz/lib/graph/shared.js.map +7 -0
  37. package/dist/features/viz/lib/graph/tree.d.ts +11 -0
  38. package/dist/features/viz/lib/graph/tree.js +232 -0
  39. package/dist/features/viz/lib/graph/tree.js.map +7 -0
  40. package/dist/features/viz/lib/graph/treemap.d.ts +20 -0
  41. package/dist/features/viz/lib/graph/treemap.js +227 -0
  42. package/dist/features/viz/lib/graph/treemap.js.map +7 -0
  43. package/dist/features/viz/lib/graph/types.d.ts +1097 -0
  44. package/dist/filters/backdrop-contrast-gpu.d.ts +5 -0
  45. package/dist/filters/backdrop-contrast-gpu.js +33 -0
  46. package/dist/filters/backdrop-contrast-gpu.js.map +7 -0
  47. package/dist/filters/backdrop-contrast.d.ts +21 -0
  48. package/dist/filters/backdrop-contrast.js +61 -0
  49. package/dist/filters/backdrop-contrast.js.map +7 -0
  50. package/dist/filters/filter-executor.d.ts +11 -4
  51. package/dist/filters/filter-executor.js +104 -49
  52. package/dist/filters/filter-executor.js.map +2 -2
  53. package/dist/filters/render-backdrop-contrast-boundary.d.ts +31 -0
  54. package/dist/filters/render-backdrop-contrast-boundary.js +116 -0
  55. package/dist/filters/render-backdrop-contrast-boundary.js.map +7 -0
  56. package/dist/filters.d.ts +9 -7
  57. package/dist/filters.js +2 -0
  58. package/dist/filters.js.map +2 -2
  59. package/package.json +2 -2
@@ -100,3 +100,16 @@ export { TrajectorySeries } from "./lib/trajectory-series.js";
100
100
  export type { TrajectorySeriesProps, TrajectorySeriesStyle, TrajectoryGroupAccessor, } from "./lib/trajectory-series.js";
101
101
  export { PairedSeries } from "./lib/paired-series.js";
102
102
  export type { PairedSeriesProps, PairedSeriesStyle, } from "./lib/paired-series.js";
103
+ export type { VizKey, Accessor, Bounds, Point, Style, MarkStyle, NodeStyle, EdgeStyle, LabelStyle, FrameStyle, LabelGeometry, GraphData, GraphAccessors, GraphNodeGeometry, GraphRoute, GraphEdgeGeometry, GraphLayout, GraphPresentation, MarkInteraction, GraphNodeProps, GraphEdgeProps, GraphLabelProps, GraphViewProps, DependencyStyle, DependencyOptions, DependencyGraphProps, ForceSettings, ForceOptions, ForceLayout, ForceNetworkController, ForceStyle, ForceNetworkProps, ForceHookOptions, HierarchyAccessors, TreeEdge, TreeNodeGeometry, TreeLayout, TreeStyle, TreeOptions, TidyTreeProps, MatrixData, MatrixAccessors, MatrixCellGeometry, MatrixLayout, MatrixStyle, MatrixOptions, AdjacencyMatrixProps, MatrixCellProps, SankeyNodeGeometry, SankeyFlowGeometry, SankeyLayout, SankeyAccessors, SankeyStyle, SankeyOptions, SankeyProps, BipartiteData, BipartiteAccessors, BipartiteEdgeGeometry, BipartiteLayout, BipartiteStyle, BipartiteOptions, BipartiteGraphProps, PartitionAccessors, PartitionCellGeometry, PartitionLayout, PartitionPresentation, TreemapStyle, TreemapOptions, TreemapProps, PartitionCellProps, NeighborhoodStyle, NeighborhoodOptions, NeighborhoodNodeGeometry, NeighborhoodLayout, RadialNeighborhoodProps, IcicleStyle, IcicleOptions, IcicleProps, ChordData, ChordAccessors, ChordArc, ChordBandGeometry, ChordRibbonGeometry, ChordLayout, ChordStyle, ChordOptions, ChordDiagramProps, ForceSimulation, ForceSimulationFactory, Size, } from './lib/graph/types.js';
104
+ export { GraphNode, GraphEdge, GraphLabel, GraphView, defaultGraphNodeStyle, defaultGraphEdgeStyle, defaultGraphLabelStyle } from './lib/graph/shared.js';
105
+ export { straightGraphRoute, orthogonalGraphRoute, curvedGraphRoute } from './lib/graph/routes.js';
106
+ export { layoutDependencies, DependencyGraph } from './lib/graph/dependency.js';
107
+ export { layoutMatrix, AdjacencyMatrix, MatrixCell, defaultMatrixCellStyle } from './lib/graph/matrix.js';
108
+ export { layoutSankey, Sankey, SankeyNode, SankeyFlow, defaultSankeyNodeStyle, defaultSankeyFlowStyle } from './lib/graph/sankey.js';
109
+ export { layoutBipartite, BipartiteGraph } from './lib/graph/bipartite.js';
110
+ export { layoutChords, ChordDiagram, ChordBand, ChordRibbon, defaultChordBandStyle, defaultChordRibbonStyle } from './lib/graph/chord.js';
111
+ export { layoutTree, TidyTree } from './lib/graph/tree.js';
112
+ export { layoutTreemap, Treemap, TreemapCell, defaultPartitionCellStyle } from './lib/graph/treemap.js';
113
+ export { layoutIcicle, Icicle, IcicleCell } from './lib/graph/icicle.js';
114
+ export { layoutNeighborhood, RadialNeighborhood } from './lib/graph/neighborhood.js';
115
+ export { createForceSimulation, layoutForceNetwork, useForceNetwork, ForceNetwork } from './lib/graph/force.js';
@@ -95,7 +95,20 @@ import { CensoredPointSeries } from "./lib/censored-point-series.js";
95
95
  import { WeightedPointSeries } from "./lib/weighted-point-series.js";
96
96
  import { TrajectorySeries } from "./lib/trajectory-series.js";
97
97
  import { PairedSeries } from "./lib/paired-series.js";
98
+ import { GraphNode, GraphEdge, GraphLabel, GraphView, defaultGraphNodeStyle, defaultGraphEdgeStyle, defaultGraphLabelStyle } from "./lib/graph/shared.js";
99
+ import { straightGraphRoute, orthogonalGraphRoute, curvedGraphRoute } from "./lib/graph/routes.js";
100
+ import { layoutDependencies, DependencyGraph } from "./lib/graph/dependency.js";
101
+ import { layoutMatrix, AdjacencyMatrix, MatrixCell, defaultMatrixCellStyle } from "./lib/graph/matrix.js";
102
+ import { layoutSankey, Sankey, SankeyNode, SankeyFlow, defaultSankeyNodeStyle, defaultSankeyFlowStyle } from "./lib/graph/sankey.js";
103
+ import { layoutBipartite, BipartiteGraph } from "./lib/graph/bipartite.js";
104
+ import { layoutChords, ChordDiagram, ChordBand, ChordRibbon, defaultChordBandStyle, defaultChordRibbonStyle } from "./lib/graph/chord.js";
105
+ import { layoutTree, TidyTree } from "./lib/graph/tree.js";
106
+ import { layoutTreemap, Treemap, TreemapCell, defaultPartitionCellStyle } from "./lib/graph/treemap.js";
107
+ import { layoutIcicle, Icicle, IcicleCell } from "./lib/graph/icicle.js";
108
+ import { layoutNeighborhood, RadialNeighborhood } from "./lib/graph/neighborhood.js";
109
+ import { createForceSimulation, layoutForceNetwork, useForceNetwork, ForceNetwork } from "./lib/graph/force.js";
98
110
  export {
111
+ AdjacencyMatrix,
99
112
  AnchoredLayout,
100
113
  AreaSeries,
101
114
  Axis,
@@ -103,21 +116,34 @@ export {
103
116
  BarScale,
104
117
  BarSeries,
105
118
  BaselineSeries,
119
+ BipartiteGraph,
106
120
  CandlestickSeries,
107
121
  CensoredPointSeries,
122
+ ChordBand,
123
+ ChordDiagram,
124
+ ChordRibbon,
125
+ DependencyGraph,
108
126
  DivergingColorScale,
109
127
  EditableReferenceBand,
110
128
  EditableReferenceLine,
111
129
  EditableTrendLine,
130
+ ForceNetwork,
131
+ GraphEdge,
132
+ GraphLabel,
133
+ GraphNode,
134
+ GraphView,
112
135
  GridLines,
113
136
  HorizontalIntervalSeries,
114
137
  HoverCard,
115
138
  HoverData,
139
+ Icicle,
140
+ IcicleCell,
116
141
  IntervalBandSeries,
117
142
  IntervalDiamondSeries,
118
143
  LineSeries,
119
144
  LinearScale,
120
145
  LogScale,
146
+ MatrixCell,
121
147
  OhlcBarSeries,
122
148
  PairedSeries,
123
149
  PieLabel,
@@ -126,15 +152,22 @@ export {
126
152
  PlotSeries,
127
153
  PointScale,
128
154
  PointSeries,
155
+ RadialNeighborhood,
129
156
  RangeNavigator,
130
157
  ReferenceBand,
131
158
  ReferenceLine,
159
+ Sankey,
160
+ SankeyFlow,
161
+ SankeyNode,
132
162
  ScaleAdjust,
133
163
  SequentialColorScale,
134
164
  SymlogScale,
135
165
  ThresholdColorScale,
166
+ TidyTree,
136
167
  TradingTimeScale,
137
168
  TrajectorySeries,
169
+ Treemap,
170
+ TreemapCell,
138
171
  UTCScale,
139
172
  VerticalIntervalSeries,
140
173
  VolumeSeries,
@@ -143,6 +176,17 @@ export {
143
176
  bollingerBands,
144
177
  closestPoint,
145
178
  closestX,
179
+ createForceSimulation,
180
+ curvedGraphRoute,
181
+ defaultChordBandStyle,
182
+ defaultChordRibbonStyle,
183
+ defaultGraphEdgeStyle,
184
+ defaultGraphLabelStyle,
185
+ defaultGraphNodeStyle,
186
+ defaultMatrixCellStyle,
187
+ defaultPartitionCellStyle,
188
+ defaultSankeyFlowStyle,
189
+ defaultSankeyNodeStyle,
146
190
  defineSeries,
147
191
  exponentialMovingAverage,
148
192
  extent,
@@ -150,6 +194,16 @@ export {
150
194
  indexTo100,
151
195
  interpolateNumericRange,
152
196
  interpolateX,
197
+ layoutBipartite,
198
+ layoutChords,
199
+ layoutDependencies,
200
+ layoutForceNetwork,
201
+ layoutIcicle,
202
+ layoutMatrix,
203
+ layoutNeighborhood,
204
+ layoutSankey,
205
+ layoutTree,
206
+ layoutTreemap,
153
207
  linearInterpolation,
154
208
  linearTicks,
155
209
  monotoneX,
@@ -158,6 +212,7 @@ export {
158
212
  nearestPoint,
159
213
  niceLinearDomain,
160
214
  niceUTCDomain,
215
+ orthogonalGraphRoute,
161
216
  padLinearDomain,
162
217
  panDomain,
163
218
  percentageReturns,
@@ -169,8 +224,10 @@ export {
169
224
  stepBefore,
170
225
  stepMidpoint,
171
226
  stochasticOscillator,
227
+ straightGraphRoute,
172
228
  useBarScale,
173
229
  useDivergingColorScale,
230
+ useForceNetwork,
174
231
  useLinearScale,
175
232
  useLogScale,
176
233
  usePointScale,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/features/viz/index.ts"],
4
- "sourcesContent": ["export { LinearScale } from \"./lib/linear-scale-component.js\";\nexport { BarScale } from \"./lib/bar-scale.js\";\nexport { UTCScale } from \"./lib/utc-scale-component.js\";\nexport { useLinearScale } from \"./lib/use-linear-scale.js\";\nexport { useBarScale } from \"./lib/use-bar-scale.js\";\nexport { useUTCScale } from \"./lib/use-utc-scale.js\";\nexport type {\n ScaleId,\n LinearDomain,\n BandCategory,\n BandDomain,\n BarScaleProps,\n BandScaleRange,\n ResolvedBandScale,\n ScaleRange,\n ScaleLayoutStyle,\n LinearScaleProps,\n ResolvedLinearScale,\n ResolvedScale,\n} from \"./lib/types.js\";\nexport { Axis } from \"./lib/axis.js\";\nexport { LineSeries } from \"./lib/line-series.js\";\nexport { AreaSeries } from \"./lib/area-series.js\";\nexport type { AreaSeriesProps, AreaSeriesStyle } from \"./lib/area-series.js\";\nexport { IntervalBandSeries } from \"./lib/interval-band-series.js\";\nexport type { IntervalBandSeriesProps } from \"./lib/interval-band-series.js\";\nexport {\n HorizontalIntervalSeries,\n VerticalIntervalSeries,\n} from \"./lib/interval-series.js\";\nexport type {\n IntervalSeriesStyle,\n IntervalSeriesProps,\n HorizontalIntervalSeriesProps,\n VerticalIntervalSeriesProps,\n} from \"./lib/interval-series.js\";\nexport type { SeriesCurve } from \"./lib/curve-definition.js\";\nexport { stepBefore, stepAfter, stepMidpoint } from \"./lib/step-curves.js\";\nexport { monotoneX } from \"./lib/monotone-curve.js\";\nexport { ScaleAdjust } from \"./lib/scale-adjust.js\";\nexport type {\n AxisStyle,\n AxisProps,\n LineCoordinate,\n LineAccessor,\n SeriesAccessor,\n SeriesCoordinate,\n LineCurve,\n LineSeriesStyle,\n LineSeriesProps,\n ScaleAdjustProps,\n} from \"./lib/types.js\";\nexport { PointSeries } from \"./lib/point-series.js\";\nexport type {\n PointAccessor,\n PointMarkStyle,\n PointSeriesStyle,\n PointStyleResolver,\n PointSeriesProps,\n} from \"./lib/point-types.js\";\nexport { PlotSeries } from \"./lib/plot-series.js\";\nexport type { PlotSeriesProps, PlotKeyAccessor } from \"./lib/plot-types.js\";\nexport { nearestDomainValue, nearestPoint } from \"./lib/nearest.js\";\nexport type { NearestPointOptions, NearestPoint } from \"./lib/nearest.js\";\n\nexport { HoverData } from \"./lib/hover-data.js\";\nexport { defineSeries, closestPoint } from \"./lib/hover-queries.js\";\nexport type {\n HoverQueryContext,\n HoverQuery,\n HoverDataProps,\n HoverSeries,\n HoverPoint,\n HoverHit,\n HoverSeriesMap,\n ClosestPointHit,\n ClosestPointOptions,\n} from \"./lib/hover-types.js\";\n\nexport { HoverCard } from \"./lib/hover-card.js\";\nexport type {\n HoverCardProps,\n HoverCardStyle,\n HoverBounds,\n HoverPlacement,\n} from \"./lib/hover-card.js\";\n\nexport {\n closestX,\n interpolateX,\n linearInterpolation,\n} from \"./lib/hover-queries.js\";\nexport type {\n ClosestXOptions,\n ClosestXHit,\n HoverInterpolation,\n InterpolateXOptions,\n HoverSample,\n} from \"./lib/hover-types.js\";\n\nexport { AnchoredLayout } from \"./lib/anchored-layout.js\";\nexport type {\n AnchoredItem,\n AnchoredPlacement,\n AnchoredLayoutProps,\n} from \"./lib/anchored-layout.js\";\n\nexport { BarSeries } from \"./lib/bar-series.js\";\nexport type {\n BarThresholdFill,\n BarCategoryAccessor,\n BarSeriesStyle,\n BarStyleResolver,\n BarSeriesProps,\n} from \"./lib/bar-series.js\";\n\nexport { pieSlices } from \"./lib/pie-slices.js\";\nexport type { PieOptions, PieSliceGeometry } from \"./lib/pie-slices.js\";\n\nexport { PieLayout, PieSlice, PieLabel } from \"./lib/pie-layout.js\";\nexport type {\n PieLayoutProps,\n PieLayoutStyle,\n PieLayoutSlice,\n PieLabelPlacement,\n PieLabelLayout,\n PieSliceProps,\n PieSliceStyle,\n PieLabelProps,\n PieLabelStyle,\n} from \"./lib/pie-types.js\";\n\nexport { extent, niceUTCDomain } from \"./lib/utc-scale.js\";\nexport type {\n NumericDomain,\n UtcDomain,\n UTCScaleProps,\n ResolvedUtcScale,\n ResolvedContinuousScale,\n} from \"./lib/types.js\";\n\nexport {\n linearTicks,\n niceLinearDomain,\n formatNumber,\n} from \"./lib/numeric-ticks.js\";\nexport type {\n LinearTickOptions,\n NumberFormatOptions,\n} from \"./lib/numeric-ticks.js\";\nexport { interpolateNumericRange } from \"./lib/numeric-range-interpolation.js\";\nexport {\n visibleOhlcPriceExtent,\n padLinearDomain,\n} from \"./lib/financial-autoscale.js\";\nexport type {\n VisibleOhlcPriceExtentOptions,\n PadLinearDomainOptions,\n} from \"./lib/financial-autoscale.js\";\nexport { percentageReturns, indexTo100 } from \"./lib/financial-comparison.js\";\nexport type {\n ComparisonBaseOptions,\n PercentageReturnPoint,\n IndexedValuePoint,\n} from \"./lib/financial-comparison.js\";\nexport { aggregateOhlcv, sessionVwap } from \"./lib/financial-aggregation.js\";\nexport type {\n OhlcvBucket,\n OhlcvSource,\n AggregatedOhlcvPoint,\n AggregateOhlcvOptions,\n SessionIdentifier,\n SessionAccessor,\n SessionVwapOptions,\n SessionVwapPoint,\n} from \"./lib/financial-aggregation.js\";\nexport {\n RangeNavigator,\n EditableReferenceLine,\n EditableReferenceBand,\n EditableTrendLine,\n} from \"./lib/editable-chart-elements.js\";\nexport type {\n ChartAnchor,\n RangeNavigatorProps,\n RangeNavigatorStyle,\n EditableReferenceLineProps,\n EditableReferenceLineStyle,\n EditableReferenceBandProps,\n EditableReferenceBandStyle,\n EditableTrendLineProps,\n EditableTrendLineStyle,\n} from \"./lib/editable-chart-elements.js\";\nexport {\n simpleMovingAverage,\n exponentialMovingAverage,\n bollingerBands,\n} from \"./lib/financial-indicators.js\";\nexport type {\n MovingAverageOptions,\n BollingerBandsOptions,\n MovingAveragePoint,\n BollingerBandPoint,\n} from \"./lib/financial-indicators.js\";\nexport {\n relativeStrengthIndex,\n movingAverageConvergenceDivergence,\n stochasticOscillator,\n} from \"./lib/financial-oscillators.js\";\nexport type {\n OscillatorOptions,\n RelativeStrengthIndexOptions,\n MovingAverageConvergenceDivergenceOptions,\n StochasticOscillatorOptions,\n RelativeStrengthIndexPoint,\n MovingAverageConvergenceDivergencePoint,\n StochasticOscillatorPoint,\n} from \"./lib/financial-oscillators.js\";\n\nexport { utcTickLabels } from \"./lib/utc-labels.js\";\nexport type { UTCTickLabelOptions } from \"./lib/utc-labels.js\";\n\nexport { LogScale } from \"./lib/log-scale-component.js\";\nexport { useLogScale } from \"./lib/use-log-scale.js\";\nexport type { LogScaleProps, ResolvedLogScale } from \"./lib/types.js\";\n\nexport { SymlogScale } from \"./lib/symlog-scale-component.js\";\nexport { useSymlogScale } from \"./lib/use-symlog-scale.js\";\nexport type { SymlogScaleProps, ResolvedSymlogScale } from \"./lib/types.js\";\n\nexport { PointScale } from \"./lib/point-scale-component.js\";\nexport { usePointScale } from \"./lib/use-point-scale.js\";\nexport type { PointScaleProps, ResolvedPointScale } from \"./lib/types.js\";\nexport { GridLines, ReferenceLine } from \"./lib/chart-lines.js\";\nexport type {\n ChartLineProps,\n GridLinesProps,\n ReferenceLineProps,\n} from \"./lib/chart-lines.js\";\nexport { ReferenceBand } from \"./lib/reference-band.js\";\nexport type { ReferenceBandProps } from \"./lib/reference-band.js\";\nexport { AxisTitle } from \"./lib/axis-title.js\";\nexport type { AxisTitleProps } from \"./lib/axis-title.js\";\n\nexport { panDomain, zoomDomain } from \"./lib/domain-navigation.js\";\nexport type {\n DomainNavigationConstraints,\n PanDomainOptions,\n ZoomDomainOptions,\n} from \"./lib/domain-navigation.js\";\n\nexport {\n SequentialColorScale,\n useSequentialColorScale,\n} from \"./lib/sequential-color-scale.js\";\nexport {\n DivergingColorScale,\n useDivergingColorScale,\n} from \"./lib/diverging-color-scale.js\";\nexport type {\n ColorScaleStop,\n SequentialColorScaleProps,\n DivergingColorScaleProps,\n ResolvedSequentialColorScale,\n ResolvedDivergingColorScale,\n} from \"./lib/color-types.js\";\n\nexport {\n ThresholdColorScale,\n useThresholdColorScale,\n} from \"./lib/threshold-color-scale.js\";\nexport type {\n ThresholdColorBand,\n ThresholdColorScaleProps,\n ResolvedThresholdColorScale,\n} from \"./lib/threshold-color-scale.js\";\n\nexport { VolumeSeries } from \"./lib/volume-series.js\";\nexport type {\n VolumeSeriesProps,\n VolumeSeriesStyle,\n} from \"./lib/volume-series.js\";\n\nexport {\n TradingTimeScale,\n useTradingTimeScale,\n} from \"./lib/trading-time-scale.js\";\nexport type {\n TradingTimeScaleProps,\n ResolvedTradingTimeScale,\n} from \"./lib/trading-time-scale.js\";\nexport { CandlestickSeries } from \"./lib/candlestick-series.js\";\nexport type {\n CandlestickSeriesProps,\n CandlestickSeriesStyle,\n CandleBodyStyle,\n CandleWickStyle,\n} from \"./lib/candlestick-series.js\";\nexport { OhlcBarSeries } from \"./lib/ohlc-bar-series.js\";\nexport type {\n OhlcBarSeriesProps,\n OhlcBarSeriesStyle,\n} from \"./lib/ohlc-bar-series.js\";\n\nexport { BaselineSeries } from \"./lib/baseline-series.js\";\nexport type {\n BaselineSeriesProps,\n BaselineSeriesStyle,\n BaselineSideStyle,\n} from \"./lib/baseline-series.js\";\nexport { IntervalDiamondSeries } from \"./lib/interval-diamond-series.js\";\nexport type {\n IntervalDiamondSeriesProps,\n IntervalDiamondSeriesStyle,\n} from \"./lib/interval-diamond-series.js\";\nexport { CensoredPointSeries } from \"./lib/censored-point-series.js\";\nexport type {\n CensoringStatus,\n CensoringAccessor,\n CensoredPointSeriesProps,\n CensoredPointSeriesStyle,\n} from \"./lib/censored-point-series.js\";\nexport { WeightedPointSeries } from \"./lib/weighted-point-series.js\";\nexport type {\n WeightedPointSeriesProps,\n WeightedPointSeriesStyle,\n WeightAccessor,\n} from \"./lib/weighted-point-series.js\";\nexport { TrajectorySeries } from \"./lib/trajectory-series.js\";\nexport type {\n TrajectorySeriesProps,\n TrajectorySeriesStyle,\n TrajectoryGroupAccessor,\n} from \"./lib/trajectory-series.js\";\nexport { PairedSeries } from \"./lib/paired-series.js\";\nexport type {\n PairedSeriesProps,\n PairedSeriesStyle,\n} from \"./lib/paired-series.js\";\n"],
5
- "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAe5B,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAE3B,SAAS,0BAA0B;AAEnC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAQP,SAAS,YAAY,WAAW,oBAAoB;AACpD,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAa5B,SAAS,mBAAmB;AAQ5B,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB,oBAAoB;AAGjD,SAAS,iBAAiB;AAC1B,SAAS,cAAc,oBAAoB;AAa3C,SAAS,iBAAiB;AAQ1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP,SAAS,sBAAsB;AAO/B,SAAS,iBAAiB;AAS1B,SAAS,iBAAiB;AAG1B,SAAS,WAAW,UAAU,gBAAgB;AAa9C,SAAS,QAAQ,qBAAqB;AAStC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,SAAS,+BAA+B;AACxC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,SAAS,mBAAmB,kBAAkB;AAM9C,SAAS,gBAAgB,mBAAmB;AAW5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAYP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWP,SAAS,qBAAqB;AAG9B,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAG5B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAG/B,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAE9B,SAAS,WAAW,qBAAqB;AAMzC,SAAS,qBAAqB;AAE9B,SAAS,iBAAiB;AAG1B,SAAS,WAAW,kBAAkB;AAOtC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAOP,SAAS,oBAAoB;AAM7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,SAAS,yBAAyB;AAOlC,SAAS,qBAAqB;AAM9B,SAAS,sBAAsB;AAM/B,SAAS,6BAA6B;AAKtC,SAAS,2BAA2B;AAOpC,SAAS,2BAA2B;AAMpC,SAAS,wBAAwB;AAMjC,SAAS,oBAAoB;",
4
+ "sourcesContent": ["export { LinearScale } from \"./lib/linear-scale-component.js\";\nexport { BarScale } from \"./lib/bar-scale.js\";\nexport { UTCScale } from \"./lib/utc-scale-component.js\";\nexport { useLinearScale } from \"./lib/use-linear-scale.js\";\nexport { useBarScale } from \"./lib/use-bar-scale.js\";\nexport { useUTCScale } from \"./lib/use-utc-scale.js\";\nexport type {\n ScaleId,\n LinearDomain,\n BandCategory,\n BandDomain,\n BarScaleProps,\n BandScaleRange,\n ResolvedBandScale,\n ScaleRange,\n ScaleLayoutStyle,\n LinearScaleProps,\n ResolvedLinearScale,\n ResolvedScale,\n} from \"./lib/types.js\";\nexport { Axis } from \"./lib/axis.js\";\nexport { LineSeries } from \"./lib/line-series.js\";\nexport { AreaSeries } from \"./lib/area-series.js\";\nexport type { AreaSeriesProps, AreaSeriesStyle } from \"./lib/area-series.js\";\nexport { IntervalBandSeries } from \"./lib/interval-band-series.js\";\nexport type { IntervalBandSeriesProps } from \"./lib/interval-band-series.js\";\nexport {\n HorizontalIntervalSeries,\n VerticalIntervalSeries,\n} from \"./lib/interval-series.js\";\nexport type {\n IntervalSeriesStyle,\n IntervalSeriesProps,\n HorizontalIntervalSeriesProps,\n VerticalIntervalSeriesProps,\n} from \"./lib/interval-series.js\";\nexport type { SeriesCurve } from \"./lib/curve-definition.js\";\nexport { stepBefore, stepAfter, stepMidpoint } from \"./lib/step-curves.js\";\nexport { monotoneX } from \"./lib/monotone-curve.js\";\nexport { ScaleAdjust } from \"./lib/scale-adjust.js\";\nexport type {\n AxisStyle,\n AxisProps,\n LineCoordinate,\n LineAccessor,\n SeriesAccessor,\n SeriesCoordinate,\n LineCurve,\n LineSeriesStyle,\n LineSeriesProps,\n ScaleAdjustProps,\n} from \"./lib/types.js\";\nexport { PointSeries } from \"./lib/point-series.js\";\nexport type {\n PointAccessor,\n PointMarkStyle,\n PointSeriesStyle,\n PointStyleResolver,\n PointSeriesProps,\n} from \"./lib/point-types.js\";\nexport { PlotSeries } from \"./lib/plot-series.js\";\nexport type { PlotSeriesProps, PlotKeyAccessor } from \"./lib/plot-types.js\";\nexport { nearestDomainValue, nearestPoint } from \"./lib/nearest.js\";\nexport type { NearestPointOptions, NearestPoint } from \"./lib/nearest.js\";\n\nexport { HoverData } from \"./lib/hover-data.js\";\nexport { defineSeries, closestPoint } from \"./lib/hover-queries.js\";\nexport type {\n HoverQueryContext,\n HoverQuery,\n HoverDataProps,\n HoverSeries,\n HoverPoint,\n HoverHit,\n HoverSeriesMap,\n ClosestPointHit,\n ClosestPointOptions,\n} from \"./lib/hover-types.js\";\n\nexport { HoverCard } from \"./lib/hover-card.js\";\nexport type {\n HoverCardProps,\n HoverCardStyle,\n HoverBounds,\n HoverPlacement,\n} from \"./lib/hover-card.js\";\n\nexport {\n closestX,\n interpolateX,\n linearInterpolation,\n} from \"./lib/hover-queries.js\";\nexport type {\n ClosestXOptions,\n ClosestXHit,\n HoverInterpolation,\n InterpolateXOptions,\n HoverSample,\n} from \"./lib/hover-types.js\";\n\nexport { AnchoredLayout } from \"./lib/anchored-layout.js\";\nexport type {\n AnchoredItem,\n AnchoredPlacement,\n AnchoredLayoutProps,\n} from \"./lib/anchored-layout.js\";\n\nexport { BarSeries } from \"./lib/bar-series.js\";\nexport type {\n BarThresholdFill,\n BarCategoryAccessor,\n BarSeriesStyle,\n BarStyleResolver,\n BarSeriesProps,\n} from \"./lib/bar-series.js\";\n\nexport { pieSlices } from \"./lib/pie-slices.js\";\nexport type { PieOptions, PieSliceGeometry } from \"./lib/pie-slices.js\";\n\nexport { PieLayout, PieSlice, PieLabel } from \"./lib/pie-layout.js\";\nexport type {\n PieLayoutProps,\n PieLayoutStyle,\n PieLayoutSlice,\n PieLabelPlacement,\n PieLabelLayout,\n PieSliceProps,\n PieSliceStyle,\n PieLabelProps,\n PieLabelStyle,\n} from \"./lib/pie-types.js\";\n\nexport { extent, niceUTCDomain } from \"./lib/utc-scale.js\";\nexport type {\n NumericDomain,\n UtcDomain,\n UTCScaleProps,\n ResolvedUtcScale,\n ResolvedContinuousScale,\n} from \"./lib/types.js\";\n\nexport {\n linearTicks,\n niceLinearDomain,\n formatNumber,\n} from \"./lib/numeric-ticks.js\";\nexport type {\n LinearTickOptions,\n NumberFormatOptions,\n} from \"./lib/numeric-ticks.js\";\nexport { interpolateNumericRange } from \"./lib/numeric-range-interpolation.js\";\nexport {\n visibleOhlcPriceExtent,\n padLinearDomain,\n} from \"./lib/financial-autoscale.js\";\nexport type {\n VisibleOhlcPriceExtentOptions,\n PadLinearDomainOptions,\n} from \"./lib/financial-autoscale.js\";\nexport { percentageReturns, indexTo100 } from \"./lib/financial-comparison.js\";\nexport type {\n ComparisonBaseOptions,\n PercentageReturnPoint,\n IndexedValuePoint,\n} from \"./lib/financial-comparison.js\";\nexport { aggregateOhlcv, sessionVwap } from \"./lib/financial-aggregation.js\";\nexport type {\n OhlcvBucket,\n OhlcvSource,\n AggregatedOhlcvPoint,\n AggregateOhlcvOptions,\n SessionIdentifier,\n SessionAccessor,\n SessionVwapOptions,\n SessionVwapPoint,\n} from \"./lib/financial-aggregation.js\";\nexport {\n RangeNavigator,\n EditableReferenceLine,\n EditableReferenceBand,\n EditableTrendLine,\n} from \"./lib/editable-chart-elements.js\";\nexport type {\n ChartAnchor,\n RangeNavigatorProps,\n RangeNavigatorStyle,\n EditableReferenceLineProps,\n EditableReferenceLineStyle,\n EditableReferenceBandProps,\n EditableReferenceBandStyle,\n EditableTrendLineProps,\n EditableTrendLineStyle,\n} from \"./lib/editable-chart-elements.js\";\nexport {\n simpleMovingAverage,\n exponentialMovingAverage,\n bollingerBands,\n} from \"./lib/financial-indicators.js\";\nexport type {\n MovingAverageOptions,\n BollingerBandsOptions,\n MovingAveragePoint,\n BollingerBandPoint,\n} from \"./lib/financial-indicators.js\";\nexport {\n relativeStrengthIndex,\n movingAverageConvergenceDivergence,\n stochasticOscillator,\n} from \"./lib/financial-oscillators.js\";\nexport type {\n OscillatorOptions,\n RelativeStrengthIndexOptions,\n MovingAverageConvergenceDivergenceOptions,\n StochasticOscillatorOptions,\n RelativeStrengthIndexPoint,\n MovingAverageConvergenceDivergencePoint,\n StochasticOscillatorPoint,\n} from \"./lib/financial-oscillators.js\";\n\nexport { utcTickLabels } from \"./lib/utc-labels.js\";\nexport type { UTCTickLabelOptions } from \"./lib/utc-labels.js\";\n\nexport { LogScale } from \"./lib/log-scale-component.js\";\nexport { useLogScale } from \"./lib/use-log-scale.js\";\nexport type { LogScaleProps, ResolvedLogScale } from \"./lib/types.js\";\n\nexport { SymlogScale } from \"./lib/symlog-scale-component.js\";\nexport { useSymlogScale } from \"./lib/use-symlog-scale.js\";\nexport type { SymlogScaleProps, ResolvedSymlogScale } from \"./lib/types.js\";\n\nexport { PointScale } from \"./lib/point-scale-component.js\";\nexport { usePointScale } from \"./lib/use-point-scale.js\";\nexport type { PointScaleProps, ResolvedPointScale } from \"./lib/types.js\";\nexport { GridLines, ReferenceLine } from \"./lib/chart-lines.js\";\nexport type {\n ChartLineProps,\n GridLinesProps,\n ReferenceLineProps,\n} from \"./lib/chart-lines.js\";\nexport { ReferenceBand } from \"./lib/reference-band.js\";\nexport type { ReferenceBandProps } from \"./lib/reference-band.js\";\nexport { AxisTitle } from \"./lib/axis-title.js\";\nexport type { AxisTitleProps } from \"./lib/axis-title.js\";\n\nexport { panDomain, zoomDomain } from \"./lib/domain-navigation.js\";\nexport type {\n DomainNavigationConstraints,\n PanDomainOptions,\n ZoomDomainOptions,\n} from \"./lib/domain-navigation.js\";\n\nexport {\n SequentialColorScale,\n useSequentialColorScale,\n} from \"./lib/sequential-color-scale.js\";\nexport {\n DivergingColorScale,\n useDivergingColorScale,\n} from \"./lib/diverging-color-scale.js\";\nexport type {\n ColorScaleStop,\n SequentialColorScaleProps,\n DivergingColorScaleProps,\n ResolvedSequentialColorScale,\n ResolvedDivergingColorScale,\n} from \"./lib/color-types.js\";\n\nexport {\n ThresholdColorScale,\n useThresholdColorScale,\n} from \"./lib/threshold-color-scale.js\";\nexport type {\n ThresholdColorBand,\n ThresholdColorScaleProps,\n ResolvedThresholdColorScale,\n} from \"./lib/threshold-color-scale.js\";\n\nexport { VolumeSeries } from \"./lib/volume-series.js\";\nexport type {\n VolumeSeriesProps,\n VolumeSeriesStyle,\n} from \"./lib/volume-series.js\";\n\nexport {\n TradingTimeScale,\n useTradingTimeScale,\n} from \"./lib/trading-time-scale.js\";\nexport type {\n TradingTimeScaleProps,\n ResolvedTradingTimeScale,\n} from \"./lib/trading-time-scale.js\";\nexport { CandlestickSeries } from \"./lib/candlestick-series.js\";\nexport type {\n CandlestickSeriesProps,\n CandlestickSeriesStyle,\n CandleBodyStyle,\n CandleWickStyle,\n} from \"./lib/candlestick-series.js\";\nexport { OhlcBarSeries } from \"./lib/ohlc-bar-series.js\";\nexport type {\n OhlcBarSeriesProps,\n OhlcBarSeriesStyle,\n} from \"./lib/ohlc-bar-series.js\";\n\nexport { BaselineSeries } from \"./lib/baseline-series.js\";\nexport type {\n BaselineSeriesProps,\n BaselineSeriesStyle,\n BaselineSideStyle,\n} from \"./lib/baseline-series.js\";\nexport { IntervalDiamondSeries } from \"./lib/interval-diamond-series.js\";\nexport type {\n IntervalDiamondSeriesProps,\n IntervalDiamondSeriesStyle,\n} from \"./lib/interval-diamond-series.js\";\nexport { CensoredPointSeries } from \"./lib/censored-point-series.js\";\nexport type {\n CensoringStatus,\n CensoringAccessor,\n CensoredPointSeriesProps,\n CensoredPointSeriesStyle,\n} from \"./lib/censored-point-series.js\";\nexport { WeightedPointSeries } from \"./lib/weighted-point-series.js\";\nexport type {\n WeightedPointSeriesProps,\n WeightedPointSeriesStyle,\n WeightAccessor,\n} from \"./lib/weighted-point-series.js\";\nexport { TrajectorySeries } from \"./lib/trajectory-series.js\";\nexport type {\n TrajectorySeriesProps,\n TrajectorySeriesStyle,\n TrajectoryGroupAccessor,\n} from \"./lib/trajectory-series.js\";\nexport { PairedSeries } from \"./lib/paired-series.js\";\nexport type {\n PairedSeriesProps,\n PairedSeriesStyle,\n} from \"./lib/paired-series.js\";\n\n// Graph visualization: public geometry, marks, layouts, and reference compositions.\nexport type {\n VizKey,\n Accessor,\n Bounds,\n Point,\n Style,\n MarkStyle,\n NodeStyle,\n EdgeStyle,\n LabelStyle,\n FrameStyle,\n LabelGeometry,\n GraphData,\n GraphAccessors,\n GraphNodeGeometry,\n GraphRoute,\n GraphEdgeGeometry,\n GraphLayout,\n GraphPresentation,\n MarkInteraction,\n GraphNodeProps,\n GraphEdgeProps,\n GraphLabelProps,\n GraphViewProps,\n DependencyStyle,\n DependencyOptions,\n DependencyGraphProps,\n ForceSettings,\n ForceOptions,\n ForceLayout,\n ForceNetworkController,\n ForceStyle,\n ForceNetworkProps,\n ForceHookOptions,\n HierarchyAccessors,\n TreeEdge,\n TreeNodeGeometry,\n TreeLayout,\n TreeStyle,\n TreeOptions,\n TidyTreeProps,\n MatrixData,\n MatrixAccessors,\n MatrixCellGeometry,\n MatrixLayout,\n MatrixStyle,\n MatrixOptions,\n AdjacencyMatrixProps,\n MatrixCellProps,\n SankeyNodeGeometry,\n SankeyFlowGeometry,\n SankeyLayout,\n SankeyAccessors,\n SankeyStyle,\n SankeyOptions,\n SankeyProps,\n BipartiteData,\n BipartiteAccessors,\n BipartiteEdgeGeometry,\n BipartiteLayout,\n BipartiteStyle,\n BipartiteOptions,\n BipartiteGraphProps,\n PartitionAccessors,\n PartitionCellGeometry,\n PartitionLayout,\n PartitionPresentation,\n TreemapStyle,\n TreemapOptions,\n TreemapProps,\n PartitionCellProps,\n NeighborhoodStyle,\n NeighborhoodOptions,\n NeighborhoodNodeGeometry,\n NeighborhoodLayout,\n RadialNeighborhoodProps,\n IcicleStyle,\n IcicleOptions,\n IcicleProps,\n ChordData,\n ChordAccessors,\n ChordArc,\n ChordBandGeometry,\n ChordRibbonGeometry,\n ChordLayout,\n ChordStyle,\n ChordOptions,\n ChordDiagramProps,\n ForceSimulation,\n ForceSimulationFactory,\n Size,\n} from './lib/graph/types.js';\nexport { GraphNode, GraphEdge, GraphLabel, GraphView, defaultGraphNodeStyle, defaultGraphEdgeStyle, defaultGraphLabelStyle } from './lib/graph/shared.js';\nexport { straightGraphRoute, orthogonalGraphRoute, curvedGraphRoute } from './lib/graph/routes.js';\nexport { layoutDependencies, DependencyGraph } from './lib/graph/dependency.js';\nexport { layoutMatrix, AdjacencyMatrix, MatrixCell, defaultMatrixCellStyle } from './lib/graph/matrix.js';\nexport { layoutSankey, Sankey, SankeyNode, SankeyFlow, defaultSankeyNodeStyle, defaultSankeyFlowStyle } from './lib/graph/sankey.js';\nexport { layoutBipartite, BipartiteGraph } from './lib/graph/bipartite.js';\nexport { layoutChords, ChordDiagram, ChordBand, ChordRibbon, defaultChordBandStyle, defaultChordRibbonStyle } from './lib/graph/chord.js';\nexport { layoutTree, TidyTree } from './lib/graph/tree.js';\nexport { layoutTreemap, Treemap, TreemapCell, defaultPartitionCellStyle } from './lib/graph/treemap.js';\nexport { layoutIcicle, Icicle, IcicleCell } from './lib/graph/icicle.js';\nexport { layoutNeighborhood, RadialNeighborhood } from './lib/graph/neighborhood.js';\nexport { createForceSimulation, layoutForceNetwork, useForceNetwork, ForceNetwork } from './lib/graph/force.js';\n"],
5
+ "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAe5B,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAE3B,SAAS,0BAA0B;AAEnC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAQP,SAAS,YAAY,WAAW,oBAAoB;AACpD,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAa5B,SAAS,mBAAmB;AAQ5B,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB,oBAAoB;AAGjD,SAAS,iBAAiB;AAC1B,SAAS,cAAc,oBAAoB;AAa3C,SAAS,iBAAiB;AAQ1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP,SAAS,sBAAsB;AAO/B,SAAS,iBAAiB;AAS1B,SAAS,iBAAiB;AAG1B,SAAS,WAAW,UAAU,gBAAgB;AAa9C,SAAS,QAAQ,qBAAqB;AAStC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,SAAS,+BAA+B;AACxC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,SAAS,mBAAmB,kBAAkB;AAM9C,SAAS,gBAAgB,mBAAmB;AAW5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAYP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWP,SAAS,qBAAqB;AAG9B,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAG5B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAG/B,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAE9B,SAAS,WAAW,qBAAqB;AAMzC,SAAS,qBAAqB;AAE9B,SAAS,iBAAiB;AAG1B,SAAS,WAAW,kBAAkB;AAOtC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAOP,SAAS,oBAAoB;AAM7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,SAAS,yBAAyB;AAOlC,SAAS,qBAAqB;AAM9B,SAAS,sBAAsB;AAM/B,SAAS,6BAA6B;AAKtC,SAAS,2BAA2B;AAOpC,SAAS,2BAA2B;AAMpC,SAAS,wBAAwB;AAMjC,SAAS,oBAAoB;AAmG7B,SAAS,WAAW,WAAW,YAAY,WAAW,uBAAuB,uBAAuB,8BAA8B;AAClI,SAAS,oBAAoB,sBAAsB,wBAAwB;AAC3E,SAAS,oBAAoB,uBAAuB;AACpD,SAAS,cAAc,iBAAiB,YAAY,8BAA8B;AAClF,SAAS,cAAc,QAAQ,YAAY,YAAY,wBAAwB,8BAA8B;AAC7G,SAAS,iBAAiB,sBAAsB;AAChD,SAAS,cAAc,cAAc,WAAW,aAAa,uBAAuB,+BAA+B;AACnH,SAAS,YAAY,gBAAgB;AACrC,SAAS,eAAe,SAAS,aAAa,iCAAiC;AAC/E,SAAS,cAAc,QAAQ,kBAAkB;AACjD,SAAS,oBAAoB,0BAA0B;AACvD,SAAS,uBAAuB,oBAAoB,iBAAiB,oBAAoB;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,14 @@
1
+ import type { PibblNode } from "@pibbl/core";
2
+ import type { BipartiteData, BipartiteGraphProps, BipartiteLayout, BipartiteOptions } from "./types.js";
3
+ /** Arranges two explicit entity sets in columns, retaining side-qualified identity.
4
+ * @param graph - Explicit left and right entities with cross-set edges. See {@link BipartiteData}.
5
+ * @param options - Accessors, dimensions, and column spacing. See {@link BipartiteOptions}.
6
+ * @returns Immutable side-aware nodes and routed edges. See {@link BipartiteLayout}.
7
+ */
8
+ export declare function layoutBipartite<L, R, E>(graph: BipartiteData<L, R, E>, options: BipartiteOptions<L, R, E>): BipartiteLayout<L, R, E>;
9
+ /** Render left/right entity sets and their cross-set relationships.
10
+ * @param props - Entity data and presentation.
11
+ * @returns Canvas node.
12
+ * @see {@link layoutBipartite}
13
+ */
14
+ export declare function BipartiteGraph<L, R, E>(props: BipartiteGraphProps<L, R, E>): PibblNode;
@@ -0,0 +1,250 @@
1
+ import { jsx, jsxs } from "@pibbl/core/jsx-runtime";
2
+ import { Group, SvgPath, resolveSignalValue } from "@pibbl/core";
3
+ import {
4
+ defaultGraphEdgeStyle,
5
+ defaultGraphLabelStyle,
6
+ defaultGraphNodeStyle,
7
+ GraphLabel,
8
+ GraphNode,
9
+ resolveMarkStyle,
10
+ useGraphFrame
11
+ } from "./shared.js";
12
+ function access(input, datum) {
13
+ return typeof input === "function" ? input(datum) : datum[input];
14
+ }
15
+ function finite(value, name, zero = false) {
16
+ if (!Number.isFinite(value) || zero && value < 0)
17
+ throw new RangeError(
18
+ `layoutBipartite: ${name} must be finite${zero ? " and nonnegative" : ""}.`
19
+ );
20
+ return value;
21
+ }
22
+ function label(text, bounds) {
23
+ return Object.freeze({
24
+ text,
25
+ bounds: Object.freeze(bounds),
26
+ rotationDegrees: 0
27
+ });
28
+ }
29
+ function route(a, b) {
30
+ const middle = (a.x + b.x) / 2;
31
+ const segments = Object.freeze([
32
+ { type: "move", x: a.x, y: a.y },
33
+ {
34
+ type: "cubic",
35
+ cp1x: middle,
36
+ cp1y: a.y,
37
+ cp2x: middle,
38
+ cp2y: b.y,
39
+ x: b.x,
40
+ y: b.y
41
+ }
42
+ ]);
43
+ return Object.freeze({
44
+ sourceAnchor: Object.freeze(a),
45
+ targetAnchor: Object.freeze(b),
46
+ segments,
47
+ arrowSegments: null
48
+ });
49
+ }
50
+ function path(route2) {
51
+ return route2.segments.map(
52
+ (segment) => segment.type === "move" ? `M ${segment.x} ${segment.y}` : segment.type === "cubic" ? `C ${segment.cp1x} ${segment.cp1y} ${segment.cp2x} ${segment.cp2y} ${segment.x} ${segment.y}` : ""
53
+ ).join(" ");
54
+ }
55
+ function placed(data, keyBy, labelBy, atX, bounds, size, gap) {
56
+ const total = data.reduce((sum, datum) => sum + (size?.(datum).height ?? 34), 0) + Math.max(0, data.length - 1) * gap;
57
+ let y = bounds.y + Math.max(0, (bounds.height - total) / 2);
58
+ const seen = /* @__PURE__ */ new Set();
59
+ return Object.freeze(
60
+ data.map((datum) => {
61
+ const key = access(keyBy, datum);
62
+ if (seen.has(key))
63
+ throw new Error(
64
+ `layoutBipartite: duplicate node key ${String(key)} on one side.`
65
+ );
66
+ seen.add(key);
67
+ const dimensions = size?.(datum) ?? { width: 150, height: 34 };
68
+ const box = {
69
+ x: atX,
70
+ y,
71
+ width: dimensions.width,
72
+ height: dimensions.height
73
+ };
74
+ y += dimensions.height + gap;
75
+ return Object.freeze({
76
+ key,
77
+ datum,
78
+ bounds: Object.freeze(box),
79
+ label: label(labelBy ? access(labelBy, datum) : String(key), box),
80
+ detail: null
81
+ });
82
+ })
83
+ );
84
+ }
85
+ function layoutBipartite(graph, options) {
86
+ const b = options.bounds;
87
+ finite(b.x, "bounds.x");
88
+ finite(b.y, "bounds.y");
89
+ finite(b.width, "bounds.width", true);
90
+ finite(b.height, "bounds.height", true);
91
+ const gap = finite(options.nodeGap ?? 12, "nodeGap", true), columnGap = finite(options.columnGap ?? 120, "columnGap", true);
92
+ const leftSize = options.leftSize, leftResolver = typeof leftSize === "function" ? leftSize : leftSize === void 0 ? void 0 : () => leftSize;
93
+ const rightSize = options.rightSize, rightResolver = typeof rightSize === "function" ? rightSize : rightSize === void 0 ? void 0 : () => rightSize;
94
+ const left = placed(
95
+ graph.left,
96
+ options.leftKey,
97
+ options.leftLabel,
98
+ b.x,
99
+ b,
100
+ leftResolver,
101
+ gap
102
+ );
103
+ const rightWidth = typeof rightSize === "function" ? 150 : rightSize?.width ?? 150;
104
+ const right = placed(
105
+ graph.right,
106
+ options.rightKey,
107
+ options.rightLabel,
108
+ Math.max(b.x, b.x + b.width - rightWidth),
109
+ b,
110
+ rightResolver,
111
+ gap
112
+ );
113
+ const leftByKey = new Map(left.map((node) => [node.key, node])), rightByKey = new Map(right.map((node) => [node.key, node]));
114
+ const edgeKeys = /* @__PURE__ */ new Set();
115
+ const edges = graph.edges.map((edge) => {
116
+ const key = access(options.edgeKey, edge);
117
+ if (edgeKeys.has(key))
118
+ throw new Error(`layoutBipartite: duplicate edge key ${String(key)}.`);
119
+ edgeKeys.add(key);
120
+ const source = access(options.source, edge), target = access(options.target, edge), leftNode = leftByKey.get(source), rightNode = rightByKey.get(target);
121
+ if (!leftNode || !rightNode)
122
+ throw new RangeError(
123
+ "layoutBipartite: every edge must point from a known left key to a known right key."
124
+ );
125
+ const r = route(
126
+ {
127
+ x: leftNode.bounds.x + leftNode.bounds.width,
128
+ y: leftNode.bounds.y + leftNode.bounds.height / 2
129
+ },
130
+ {
131
+ x: rightNode.bounds.x,
132
+ y: rightNode.bounds.y + rightNode.bounds.height / 2
133
+ }
134
+ );
135
+ return Object.freeze({
136
+ key,
137
+ datum: edge,
138
+ sourceKey: source,
139
+ targetKey: target,
140
+ left: leftNode,
141
+ right: rightNode,
142
+ route: r,
143
+ path: path(r),
144
+ arrowPath: null
145
+ });
146
+ });
147
+ if (left.length && right.length && right[0].bounds.x - (left[0].bounds.x + left[0].bounds.width) < columnGap)
148
+ throw new RangeError(
149
+ "layoutBipartite: bounds are too narrow for node sizes and columnGap."
150
+ );
151
+ return Object.freeze({
152
+ bounds: Object.freeze({ ...b }),
153
+ left,
154
+ right,
155
+ edges: Object.freeze(edges)
156
+ });
157
+ }
158
+ function BipartiteGraph(props) {
159
+ const frame = useGraphFrame(props.style), style = frame.style;
160
+ if (!frame.bounds.width || !frame.bounds.height)
161
+ return /* @__PURE__ */ jsx(Group, { style: frame.groupStyle, children: null });
162
+ const layout = layoutBipartite(resolveSignalValue(props.graph), {
163
+ ...props,
164
+ bounds: frame.bounds,
165
+ columnGap: style.columnGap,
166
+ nodeGap: style.nodeGap
167
+ });
168
+ return /* @__PURE__ */ jsxs(Group, { style: frame.groupStyle, children: [
169
+ layout.edges.map((edge) => /* @__PURE__ */ jsx(
170
+ Group,
171
+ {
172
+ onClick: (event) => props.onEdgeClick?.(edge, event),
173
+ children: props.renderEdge ? props.renderEdge(edge) : /* @__PURE__ */ jsx(
174
+ SvgPath,
175
+ {
176
+ style: {
177
+ ...defaultGraphEdgeStyle(edge),
178
+ ...resolveMarkStyle(edge, props.edgeStyle),
179
+ d: edge.path
180
+ }
181
+ }
182
+ )
183
+ },
184
+ String(edge.key)
185
+ )),
186
+ layout.left.map((node) => /* @__PURE__ */ jsx(
187
+ Group,
188
+ {
189
+ onClick: (event) => props.onLeftNodeClick?.(node, event),
190
+ children: props.renderLeftNode ? props.renderLeftNode(node) : /* @__PURE__ */ jsxs(Group, { children: [
191
+ /* @__PURE__ */ jsx(
192
+ GraphNode,
193
+ {
194
+ node,
195
+ style: {
196
+ ...defaultGraphNodeStyle(node),
197
+ ...resolveMarkStyle(node, props.leftNodeStyle)
198
+ }
199
+ }
200
+ ),
201
+ /* @__PURE__ */ jsx(
202
+ GraphLabel,
203
+ {
204
+ label: node.label,
205
+ style: {
206
+ ...defaultGraphLabelStyle(node.label),
207
+ ...resolveSignalValue(props.labelStyle)
208
+ }
209
+ }
210
+ )
211
+ ] })
212
+ },
213
+ `left-${String(node.key)}`
214
+ )),
215
+ layout.right.map((node) => /* @__PURE__ */ jsx(
216
+ Group,
217
+ {
218
+ onClick: (event) => props.onRightNodeClick?.(node, event),
219
+ children: props.renderRightNode ? props.renderRightNode(node) : /* @__PURE__ */ jsxs(Group, { children: [
220
+ /* @__PURE__ */ jsx(
221
+ GraphNode,
222
+ {
223
+ node,
224
+ style: {
225
+ ...defaultGraphNodeStyle(node),
226
+ ...resolveMarkStyle(node, props.rightNodeStyle)
227
+ }
228
+ }
229
+ ),
230
+ /* @__PURE__ */ jsx(
231
+ GraphLabel,
232
+ {
233
+ label: node.label,
234
+ style: {
235
+ ...defaultGraphLabelStyle(node.label),
236
+ ...resolveSignalValue(props.labelStyle)
237
+ }
238
+ }
239
+ )
240
+ ] })
241
+ },
242
+ `right-${String(node.key)}`
243
+ ))
244
+ ] });
245
+ }
246
+ export {
247
+ BipartiteGraph,
248
+ layoutBipartite
249
+ };
250
+ //# sourceMappingURL=bipartite.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/features/viz/lib/graph/bipartite.tsx"],
4
+ "sourcesContent": ["import { Group, SvgPath, resolveSignalValue } from \"@pibbl/core\";\nimport type { PathSegment, PibblNode } from \"@pibbl/core\";\nimport type {\n Accessor,\n BipartiteData,\n BipartiteGraphProps,\n BipartiteLayout,\n BipartiteOptions,\n GraphNodeGeometry,\n Size,\n VizKey,\n} from \"./types.js\";\nimport {\n defaultGraphEdgeStyle,\n defaultGraphLabelStyle,\n defaultGraphNodeStyle,\n GraphLabel,\n GraphNode,\n resolveMarkStyle,\n useGraphFrame,\n} from \"./shared.js\";\n\nfunction access<D, V>(input: Accessor<D, V>, datum: D): V {\n return typeof input === \"function\"\n ? input(datum)\n : (datum as Record<PropertyKey, V>)[input];\n}\nfunction finite(value: number, name: string, zero = false) {\n if (!Number.isFinite(value) || (zero && value < 0))\n throw new RangeError(\n `layoutBipartite: ${name} must be finite${zero ? \" and nonnegative\" : \"\"}.`,\n );\n return value;\n}\nfunction label(\n text: string,\n bounds: { x: number; y: number; width: number; height: number },\n) {\n return Object.freeze({\n text,\n bounds: Object.freeze(bounds),\n rotationDegrees: 0,\n });\n}\nfunction route(a: { x: number; y: number }, b: { x: number; y: number }) {\n const middle = (a.x + b.x) / 2;\n const segments = Object.freeze([\n { type: \"move\" as const, x: a.x, y: a.y },\n {\n type: \"cubic\" as const,\n cp1x: middle,\n cp1y: a.y,\n cp2x: middle,\n cp2y: b.y,\n x: b.x,\n y: b.y,\n },\n ]);\n return Object.freeze({\n sourceAnchor: Object.freeze(a),\n targetAnchor: Object.freeze(b),\n segments,\n arrowSegments: null,\n });\n}\nfunction path(route: { segments: readonly PathSegment[] }) {\n return route.segments\n .map((segment) =>\n segment.type === \"move\"\n ? `M ${segment.x} ${segment.y}`\n : segment.type === \"cubic\"\n ? `C ${segment.cp1x} ${segment.cp1y} ${segment.cp2x} ${segment.cp2y} ${segment.x} ${segment.y}`\n : \"\",\n )\n .join(\" \");\n}\nfunction placed<D>(\n data: readonly D[],\n keyBy: Accessor<D, VizKey>,\n labelBy: Accessor<D, string> | undefined,\n atX: number,\n bounds: { y: number; height: number },\n size: ((datum: D) => Size) | undefined,\n gap: number,\n): readonly GraphNodeGeometry<D>[] {\n const total =\n data.reduce((sum, datum) => sum + (size?.(datum).height ?? 34), 0) +\n Math.max(0, data.length - 1) * gap;\n let y = bounds.y + Math.max(0, (bounds.height - total) / 2);\n const seen = new Set<VizKey>();\n return Object.freeze(\n data.map((datum) => {\n const key = access(keyBy, datum);\n if (seen.has(key))\n throw new Error(\n `layoutBipartite: duplicate node key ${String(key)} on one side.`,\n );\n seen.add(key);\n const dimensions = size?.(datum) ?? { width: 150, height: 34 };\n const box = {\n x: atX,\n y,\n width: dimensions.width,\n height: dimensions.height,\n };\n y += dimensions.height + gap;\n return Object.freeze({\n key,\n datum,\n bounds: Object.freeze(box),\n label: label(labelBy ? access(labelBy, datum) : String(key), box),\n detail: null,\n });\n }),\n );\n}\n\n/** Arranges two explicit entity sets in columns, retaining side-qualified identity.\n * @param graph - Explicit left and right entities with cross-set edges. See {@link BipartiteData}.\n * @param options - Accessors, dimensions, and column spacing. See {@link BipartiteOptions}.\n * @returns Immutable side-aware nodes and routed edges. See {@link BipartiteLayout}.\n */\nexport function layoutBipartite<L, R, E>(\n graph: BipartiteData<L, R, E>,\n options: BipartiteOptions<L, R, E>,\n): BipartiteLayout<L, R, E> {\n const b = options.bounds;\n finite(b.x, \"bounds.x\");\n finite(b.y, \"bounds.y\");\n finite(b.width, \"bounds.width\", true);\n finite(b.height, \"bounds.height\", true);\n const gap = finite(options.nodeGap ?? 12, \"nodeGap\", true),\n columnGap = finite(options.columnGap ?? 120, \"columnGap\", true);\n const leftSize = options.leftSize,\n leftResolver: ((datum: L) => Size) | undefined =\n typeof leftSize === \"function\"\n ? leftSize\n : leftSize === undefined\n ? undefined\n : () => leftSize;\n const rightSize = options.rightSize,\n rightResolver: ((datum: R) => Size) | undefined =\n typeof rightSize === \"function\"\n ? rightSize\n : rightSize === undefined\n ? undefined\n : () => rightSize;\n const left = placed(\n graph.left,\n options.leftKey,\n options.leftLabel,\n b.x,\n b,\n leftResolver,\n gap,\n );\n const rightWidth =\n typeof rightSize === \"function\" ? 150 : (rightSize?.width ?? 150);\n const right = placed(\n graph.right,\n options.rightKey,\n options.rightLabel,\n Math.max(b.x, b.x + b.width - rightWidth),\n b,\n rightResolver,\n gap,\n );\n const leftByKey = new Map(left.map((node) => [node.key, node])),\n rightByKey = new Map(right.map((node) => [node.key, node]));\n const edgeKeys = new Set<VizKey>();\n const edges = graph.edges.map((edge) => {\n const key = access(options.edgeKey, edge);\n if (edgeKeys.has(key))\n throw new Error(`layoutBipartite: duplicate edge key ${String(key)}.`);\n edgeKeys.add(key);\n const source = access(options.source, edge),\n target = access(options.target, edge),\n leftNode = leftByKey.get(source),\n rightNode = rightByKey.get(target);\n if (!leftNode || !rightNode)\n throw new RangeError(\n \"layoutBipartite: every edge must point from a known left key to a known right key.\",\n );\n const r = route(\n {\n x: leftNode.bounds.x + leftNode.bounds.width,\n y: leftNode.bounds.y + leftNode.bounds.height / 2,\n },\n {\n x: rightNode.bounds.x,\n y: rightNode.bounds.y + rightNode.bounds.height / 2,\n },\n );\n return Object.freeze({\n key,\n datum: edge,\n sourceKey: source,\n targetKey: target,\n left: leftNode,\n right: rightNode,\n route: r,\n path: path(r),\n arrowPath: null,\n });\n });\n if (\n left.length &&\n right.length &&\n right[0].bounds.x - (left[0].bounds.x + left[0].bounds.width) < columnGap\n )\n throw new RangeError(\n \"layoutBipartite: bounds are too narrow for node sizes and columnGap.\",\n );\n return Object.freeze({\n bounds: Object.freeze({ ...b }),\n left,\n right,\n edges: Object.freeze(edges),\n });\n}\n\n/** Render left/right entity sets and their cross-set relationships.\n * @param props - Entity data and presentation.\n * @returns Canvas node.\n * @see {@link layoutBipartite}\n */\nexport function BipartiteGraph<L, R, E>(\n props: BipartiteGraphProps<L, R, E>,\n): PibblNode {\n const frame = useGraphFrame(props.style),\n style = frame.style;\n if (!frame.bounds.width || !frame.bounds.height)\n return <Group style={frame.groupStyle}>{null}</Group>;\n const layout = layoutBipartite(resolveSignalValue(props.graph), {\n ...props,\n bounds: frame.bounds,\n columnGap: style.columnGap,\n nodeGap: style.nodeGap,\n });\n return (\n <Group style={frame.groupStyle}>\n {layout.edges.map((edge) => (\n <Group\n key={String(edge.key)}\n onClick={(event) => props.onEdgeClick?.(edge, event)}\n >\n {props.renderEdge ? (\n props.renderEdge(edge)\n ) : (\n <SvgPath\n style={{\n ...defaultGraphEdgeStyle(edge),\n ...resolveMarkStyle(edge, props.edgeStyle),\n d: edge.path,\n }}\n />\n )}\n </Group>\n ))}\n {layout.left.map((node) => (\n <Group\n key={`left-${String(node.key)}`}\n onClick={(event) => props.onLeftNodeClick?.(node, event)}\n >\n {props.renderLeftNode ? (\n props.renderLeftNode(node)\n ) : (\n <Group>\n <GraphNode\n node={node}\n style={{\n ...defaultGraphNodeStyle(node),\n ...resolveMarkStyle(node, props.leftNodeStyle),\n }}\n />\n <GraphLabel\n label={node.label}\n style={{\n ...defaultGraphLabelStyle(node.label),\n ...resolveSignalValue(props.labelStyle),\n }}\n />\n </Group>\n )}\n </Group>\n ))}\n {layout.right.map((node) => (\n <Group\n key={`right-${String(node.key)}`}\n onClick={(event) => props.onRightNodeClick?.(node, event)}\n >\n {props.renderRightNode ? (\n props.renderRightNode(node)\n ) : (\n <Group>\n <GraphNode\n node={node}\n style={{\n ...defaultGraphNodeStyle(node),\n ...resolveMarkStyle(node, props.rightNodeStyle),\n }}\n />\n <GraphLabel\n label={node.label}\n style={{\n ...defaultGraphLabelStyle(node.label),\n ...resolveSignalValue(props.labelStyle),\n }}\n />\n </Group>\n )}\n </Group>\n ))}\n </Group>\n );\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["route"]
7
+ }
@@ -0,0 +1,44 @@
1
+ import type { PibblNode } from "@pibbl/core";
2
+ import type { ChordBandGeometry, ChordData, ChordDiagramProps, ChordLayout, ChordOptions, ChordRibbonGeometry, EdgeStyle, MarkInteraction, Style } from "./types.js";
3
+ /** Computes a directed chord layout, aggregating repeated ordered transfer pairs.
4
+ * @param data - Ordered category transfers. See {@link ChordData}.
5
+ * @param options - Accessors, bounds, angular spacing, and unit. See {@link ChordOptions}.
6
+ * @returns Immutable bands and directed ribbon geometry. See {@link ChordLayout}.
7
+ */
8
+ export declare function layoutChords<C, T>(data: ChordData<C, T>, options: ChordOptions<C, T>): ChordLayout<C, T>;
9
+ /** Default outer-band paint for custom chord compositions.
10
+ * @param _band - Band geometry.
11
+ * @returns Resolved band paint.
12
+ * @see {@link ChordBand}
13
+ */
14
+ export declare function defaultChordBandStyle<C>(_band: ChordBandGeometry<C>): EdgeStyle;
15
+ /** Default directed-ribbon paint for custom chord compositions.
16
+ * @param _ribbon - Ribbon geometry.
17
+ * @returns Resolved ribbon paint.
18
+ * @see {@link ChordRibbon}
19
+ */
20
+ export declare function defaultChordRibbonStyle<T>(_ribbon: ChordRibbonGeometry<T>): EdgeStyle;
21
+ /** Draw one supplied category band.
22
+ * @param argument - Band props.
23
+ * @returns Canvas node.
24
+ * @see {@link ChordBandGeometry}
25
+ */
26
+ export declare function ChordBand<C>({ band, style: input, ...events }: MarkInteraction & {
27
+ readonly band: ChordBandGeometry<C>;
28
+ readonly style?: Style<EdgeStyle>;
29
+ }): PibblNode;
30
+ /** Draw one supplied directed ribbon.
31
+ * @param argument - Ribbon props.
32
+ * @returns Canvas node.
33
+ * @see {@link ChordRibbonGeometry}
34
+ */
35
+ export declare function ChordRibbon<T>({ ribbon, style: input, ...events }: MarkInteraction & {
36
+ readonly ribbon: ChordRibbonGeometry<T>;
37
+ readonly style?: Style<EdgeStyle>;
38
+ }): PibblNode;
39
+ /** Render a directed transfer chord diagram.
40
+ * @param props - Transfer data and presentation.
41
+ * @returns Canvas node.
42
+ * @see {@link layoutChords}
43
+ */
44
+ export declare function ChordDiagram<C, T>(props: ChordDiagramProps<C, T>): PibblNode;