svelteplot 0.10.3 → 0.11.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.
Files changed (222) hide show
  1. package/dist/Mark.svelte +42 -25
  2. package/dist/Mark.svelte.d.ts +111 -32
  3. package/dist/Plot.svelte +21 -15
  4. package/dist/core/Facet.svelte +1 -1
  5. package/dist/core/FacetAxes.svelte +13 -8
  6. package/dist/core/FacetGrid.svelte +4 -4
  7. package/dist/core/Plot.svelte +41 -35
  8. package/dist/helpers/autoScales.d.ts +3 -3
  9. package/dist/helpers/autoScales.js +28 -18
  10. package/dist/helpers/autoTicks.js +2 -0
  11. package/dist/helpers/callWithProps.d.ts +1 -2
  12. package/dist/helpers/facets.js +0 -1
  13. package/dist/helpers/index.js +1 -1
  14. package/dist/helpers/mergeDeep.d.ts +1 -3
  15. package/dist/helpers/mergeDeep.js +15 -16
  16. package/dist/helpers/projection.d.ts +4 -3
  17. package/dist/helpers/projection.js +17 -5
  18. package/dist/helpers/reduce.d.ts +4 -4
  19. package/dist/helpers/reduce.js +6 -4
  20. package/dist/helpers/regressionLoess.js +2 -1
  21. package/dist/helpers/resolve.d.ts +6 -3
  22. package/dist/helpers/resolve.js +25 -16
  23. package/dist/helpers/scales.d.ts +10 -10
  24. package/dist/helpers/scales.js +43 -13
  25. package/dist/helpers/time.d.ts +10 -3
  26. package/dist/helpers/time.js +2 -1
  27. package/dist/hooks/index.d.ts +2 -0
  28. package/dist/hooks/index.js +2 -0
  29. package/dist/hooks/plotDefaults.d.ts +3 -1
  30. package/dist/hooks/plotDefaults.js +33 -1
  31. package/dist/hooks/usePlot.svelte.d.ts +10 -25
  32. package/dist/hooks/usePlot.svelte.js +8 -7
  33. package/dist/index.d.ts +1 -2
  34. package/dist/index.js +1 -3
  35. package/dist/marks/Area.svelte +24 -13
  36. package/dist/marks/Area.svelte.d.ts +118 -34
  37. package/dist/marks/AreaX.svelte +42 -8
  38. package/dist/marks/AreaX.svelte.d.ts +154 -71
  39. package/dist/marks/AreaY.svelte +42 -8
  40. package/dist/marks/AreaY.svelte.d.ts +154 -71
  41. package/dist/marks/Arrow.svelte +42 -23
  42. package/dist/marks/Arrow.svelte.d.ts +114 -35
  43. package/dist/marks/AxisX.svelte +43 -28
  44. package/dist/marks/AxisX.svelte.d.ts +125 -40
  45. package/dist/marks/AxisY.svelte +43 -26
  46. package/dist/marks/AxisY.svelte.d.ts +127 -40
  47. package/dist/marks/BarX.svelte +12 -10
  48. package/dist/marks/BarX.svelte.d.ts +104 -32
  49. package/dist/marks/BarY.svelte +11 -10
  50. package/dist/marks/BarY.svelte.d.ts +106 -34
  51. package/dist/marks/BollingerX.svelte +4 -7
  52. package/dist/marks/BollingerX.svelte.d.ts +105 -30
  53. package/dist/marks/BollingerY.svelte +3 -0
  54. package/dist/marks/BollingerY.svelte.d.ts +105 -30
  55. package/dist/marks/BoxX.svelte +3 -3
  56. package/dist/marks/BoxY.svelte +12 -9
  57. package/dist/marks/BoxY.svelte.d.ts +128 -53
  58. package/dist/marks/Brush.svelte +26 -21
  59. package/dist/marks/Brush.svelte.d.ts +119 -60
  60. package/dist/marks/Cell.svelte +13 -9
  61. package/dist/marks/Cell.svelte.d.ts +105 -30
  62. package/dist/marks/CellX.svelte +2 -1
  63. package/dist/marks/CellX.svelte.d.ts +105 -32
  64. package/dist/marks/CellY.svelte +2 -1
  65. package/dist/marks/CellY.svelte.d.ts +105 -32
  66. package/dist/marks/ColorLegend.svelte +24 -13
  67. package/dist/marks/ColorLegend.svelte.d.ts +1 -0
  68. package/dist/marks/CustomMark.svelte +16 -10
  69. package/dist/marks/CustomMark.svelte.d.ts +112 -31
  70. package/dist/marks/CustomMarkHTML.svelte +8 -2
  71. package/dist/marks/CustomMarkHTML.svelte.d.ts +8 -2
  72. package/dist/marks/DifferenceY.svelte +31 -20
  73. package/dist/marks/DifferenceY.svelte.d.ts +134 -55
  74. package/dist/marks/Dot.svelte +21 -11
  75. package/dist/marks/Dot.svelte.d.ts +117 -38
  76. package/dist/marks/DotX.svelte +2 -0
  77. package/dist/marks/DotX.svelte.d.ts +136 -62
  78. package/dist/marks/DotY.svelte +1 -0
  79. package/dist/marks/DotY.svelte.d.ts +135 -62
  80. package/dist/marks/Frame.svelte +47 -9
  81. package/dist/marks/Frame.svelte.d.ts +124 -41
  82. package/dist/marks/Geo.svelte +21 -12
  83. package/dist/marks/Geo.svelte.d.ts +105 -30
  84. package/dist/marks/Graticule.svelte +3 -0
  85. package/dist/marks/Graticule.svelte.d.ts +3 -0
  86. package/dist/marks/GridX.svelte +31 -16
  87. package/dist/marks/GridX.svelte.d.ts +108 -32
  88. package/dist/marks/GridY.svelte +30 -15
  89. package/dist/marks/GridY.svelte.d.ts +108 -32
  90. package/dist/marks/HTMLTooltip.svelte +14 -7
  91. package/dist/marks/HTMLTooltip.svelte.d.ts +7 -0
  92. package/dist/marks/Image.svelte +50 -25
  93. package/dist/marks/Image.svelte.d.ts +117 -35
  94. package/dist/marks/Line.svelte +67 -44
  95. package/dist/marks/Line.svelte.d.ts +119 -30
  96. package/dist/marks/LineX.svelte +2 -1
  97. package/dist/marks/LineX.svelte.d.ts +142 -69
  98. package/dist/marks/LineY.svelte +2 -1
  99. package/dist/marks/LineY.svelte.d.ts +142 -69
  100. package/dist/marks/Link.svelte +70 -46
  101. package/dist/marks/Link.svelte.d.ts +126 -41
  102. package/dist/marks/Pointer.svelte +24 -15
  103. package/dist/marks/Pointer.svelte.d.ts +7 -0
  104. package/dist/marks/Rect.svelte +13 -5
  105. package/dist/marks/Rect.svelte.d.ts +116 -35
  106. package/dist/marks/RectX.svelte +6 -3
  107. package/dist/marks/RectX.svelte.d.ts +158 -12
  108. package/dist/marks/RectY.svelte +6 -3
  109. package/dist/marks/RectY.svelte.d.ts +158 -12
  110. package/dist/marks/RegressionX.svelte +13 -6
  111. package/dist/marks/RegressionX.svelte.d.ts +8 -3
  112. package/dist/marks/RegressionY.svelte +13 -6
  113. package/dist/marks/RegressionY.svelte.d.ts +8 -3
  114. package/dist/marks/RuleX.svelte +18 -11
  115. package/dist/marks/RuleX.svelte.d.ts +112 -32
  116. package/dist/marks/RuleY.svelte +19 -12
  117. package/dist/marks/RuleY.svelte.d.ts +114 -34
  118. package/dist/marks/Spike.svelte +11 -5
  119. package/dist/marks/Spike.svelte.d.ts +146 -68
  120. package/dist/marks/Text.svelte +24 -7
  121. package/dist/marks/Text.svelte.d.ts +253 -75
  122. package/dist/marks/TickX.svelte +56 -48
  123. package/dist/marks/TickX.svelte.d.ts +114 -40
  124. package/dist/marks/TickY.svelte +59 -51
  125. package/dist/marks/TickY.svelte.d.ts +117 -43
  126. package/dist/marks/Trail.svelte +25 -13
  127. package/dist/marks/Trail.svelte.d.ts +116 -33
  128. package/dist/marks/Vector.svelte +20 -11
  129. package/dist/marks/Vector.svelte.d.ts +116 -35
  130. package/dist/marks/WaffleX.svelte +18 -16
  131. package/dist/marks/WaffleX.svelte.d.ts +131 -57
  132. package/dist/marks/WaffleY.svelte +16 -15
  133. package/dist/marks/WaffleY.svelte.d.ts +129 -56
  134. package/dist/marks/helpers/Anchor.svelte +17 -2
  135. package/dist/marks/helpers/Anchor.svelte.d.ts +16 -1
  136. package/dist/marks/helpers/AreaCanvas.svelte +8 -8
  137. package/dist/marks/helpers/BaseAxisX.svelte +38 -41
  138. package/dist/marks/helpers/BaseAxisX.svelte.d.ts +11 -17
  139. package/dist/marks/helpers/BaseAxisY.svelte +35 -35
  140. package/dist/marks/helpers/BaseAxisY.svelte.d.ts +12 -15
  141. package/dist/marks/helpers/Box.svelte +35 -28
  142. package/dist/marks/helpers/Box.svelte.d.ts +122 -50
  143. package/dist/marks/helpers/DotCanvas.svelte +11 -9
  144. package/dist/marks/helpers/GeoCanvas.svelte +7 -6
  145. package/dist/marks/helpers/LineCanvas.svelte +7 -7
  146. package/dist/marks/helpers/LinearGradientX.svelte +2 -2
  147. package/dist/marks/helpers/LinearGradientX.svelte.d.ts +1 -1
  148. package/dist/marks/helpers/LinearGradientY.svelte +2 -2
  149. package/dist/marks/helpers/LinearGradientY.svelte.d.ts +1 -1
  150. package/dist/marks/helpers/Marker.svelte +2 -2
  151. package/dist/marks/helpers/MarkerPath.svelte +15 -12
  152. package/dist/marks/helpers/MarkerPath.svelte.d.ts +105 -32
  153. package/dist/marks/helpers/MultilineText.svelte +24 -17
  154. package/dist/marks/helpers/MultilineText.svelte.d.ts +1 -1
  155. package/dist/marks/helpers/RectCanvas.svelte +31 -26
  156. package/dist/marks/helpers/RectPath.svelte +2 -2
  157. package/dist/marks/helpers/Regression.svelte +176 -86
  158. package/dist/marks/helpers/Regression.svelte.d.ts +20 -8
  159. package/dist/marks/helpers/RuleCanvas.svelte +9 -6
  160. package/dist/marks/helpers/TextCanvas.svelte +13 -9
  161. package/dist/marks/helpers/TextCanvas.svelte.d.ts +6 -6
  162. package/dist/marks/helpers/TickCanvas.svelte +6 -5
  163. package/dist/marks/helpers/TrailCanvas.svelte +16 -18
  164. package/dist/marks/helpers/TrailCanvas.svelte.d.ts +3 -5
  165. package/dist/marks/helpers/canvas.js +16 -9
  166. package/dist/marks/helpers/events.d.ts +2 -2
  167. package/dist/marks/helpers/events.js +14 -7
  168. package/dist/marks/helpers/waffle.d.ts +3 -3
  169. package/dist/marks/helpers/waffle.js +6 -4
  170. package/dist/regression/polynomial.d.ts +1 -1
  171. package/dist/regression/polynomial.js +5 -5
  172. package/dist/regression/utils/determination.d.ts +1 -1
  173. package/dist/regression/utils/determination.js +1 -1
  174. package/dist/regression/utils/geometry.d.ts +1 -1
  175. package/dist/regression/utils/interpose.d.ts +1 -1
  176. package/dist/regression/utils/interpose.js +1 -1
  177. package/dist/regression/utils/points.d.ts +1 -1
  178. package/dist/transforms/bin.d.ts +3 -3
  179. package/dist/transforms/bin.js +29 -20
  180. package/dist/transforms/bollinger.d.ts +8 -0
  181. package/dist/transforms/bollinger.js +9 -1
  182. package/dist/transforms/centroid.d.ts +4 -0
  183. package/dist/transforms/centroid.js +4 -0
  184. package/dist/transforms/density.d.ts +4 -4
  185. package/dist/transforms/density.js +20 -13
  186. package/dist/transforms/dodge.d.ts +12 -1
  187. package/dist/transforms/dodge.js +15 -6
  188. package/dist/transforms/group.d.ts +141 -4
  189. package/dist/transforms/group.js +4 -1
  190. package/dist/transforms/interval.d.ts +204 -60
  191. package/dist/transforms/jitter.d.ts +421 -4
  192. package/dist/transforms/jitter.js +10 -1
  193. package/dist/transforms/map.d.ts +412 -4
  194. package/dist/transforms/map.js +3 -3
  195. package/dist/transforms/normalize.d.ts +276 -5
  196. package/dist/transforms/normalize.js +5 -3
  197. package/dist/transforms/recordize.d.ts +17 -5
  198. package/dist/transforms/recordize.js +13 -9
  199. package/dist/transforms/rename.d.ts +11 -4
  200. package/dist/transforms/rename.js +7 -2
  201. package/dist/transforms/select.d.ts +722 -210
  202. package/dist/transforms/select.js +13 -1
  203. package/dist/transforms/shift.d.ts +8 -0
  204. package/dist/transforms/shift.js +20 -6
  205. package/dist/transforms/sort.d.ts +13 -258
  206. package/dist/transforms/sort.js +13 -10
  207. package/dist/transforms/stack.d.ts +58 -9
  208. package/dist/transforms/stack.js +27 -11
  209. package/dist/transforms/window.d.ts +221 -66
  210. package/dist/transforms/window.js +8 -2
  211. package/dist/types/axes.d.ts +43 -0
  212. package/dist/types/axes.js +1 -0
  213. package/dist/types/channel.d.ts +30 -2
  214. package/dist/types/data.d.ts +14 -1
  215. package/dist/types/facet.d.ts +5 -0
  216. package/dist/types/index.d.ts +33 -8
  217. package/dist/types/index.js +11 -7
  218. package/dist/types/mark.d.ts +124 -35
  219. package/dist/types/plot.d.ts +118 -16
  220. package/dist/types/scale.d.ts +125 -8
  221. package/package.json +178 -175
  222. package/dist/helpers/autoTicks.d.ts +0 -12
@@ -1,7 +1,7 @@
1
- import type { ScaleBand, ScaleLinear, ScaleOrdinal } from 'd3-scale';
2
- import type { ChannelAccessor, RawValue, ScaledChannelName } from './index.js';
1
+ import type { ChannelAccessor, ColorScheme, RawValue, ScaledChannelName } from './index.js';
3
2
  export type AxisXAnchor = 'bottom' | 'top' | 'both';
4
3
  export type AxisYAnchor = 'left' | 'right' | 'both';
4
+ export type TickFormatFunction = (d: RawValue, index: number, ticks: RawValue[]) => string | string[];
5
5
  export type ScaleName = 'x' | 'y' | 'r' | 'color' | 'opacity' | 'length' | 'symbol' | 'fx' | 'fy' | 'projection';
6
6
  export type ScaleOptions = {
7
7
  /**
@@ -21,8 +21,18 @@ export type ScaleOptions = {
21
21
  * Reverse the scale.
22
22
  */
23
23
  reverse: boolean;
24
+ /**
25
+ * the axis label for this scale, or false to disable the automatic label
26
+ */
24
27
  label: string | false;
28
+ /**
29
+ * the interval for ordinal/temporal scales, e.g. 'day', 'month', or a numeric step
30
+ */
25
31
  interval: string | number;
32
+ /**
33
+ * clamp values outside the domain to the nearest domain boundary
34
+ * (applicable to quantitative scales only)
35
+ */
26
36
  clamp: boolean;
27
37
  /**
28
38
  * Extend the domain to nice round numbers (applicable to quantitative scales only)
@@ -32,8 +42,18 @@ export type ScaleOptions = {
32
42
  * Include zero in the scale domain (applicable to quantitative scales only)
33
43
  */
34
44
  zero: boolean;
45
+ /**
46
+ * round interpolated values to integers (applicable to quantitative scales only)
47
+ */
35
48
  round: boolean;
49
+ /**
50
+ * format values as percentages and append (%) to the axis label
51
+ * (applicable to quantitative scales only)
52
+ */
36
53
  percent: boolean;
54
+ /**
55
+ * custom transformation function applied to values before scaling
56
+ */
37
57
  transform?: (d: RawValue) => RawValue;
38
58
  /**
39
59
  * set the padding for band scales
@@ -51,23 +71,62 @@ export type ScaleOptions = {
51
71
  * set the outer padding for band scales
52
72
  */
53
73
  paddingOuter: number;
74
+ /**
75
+ * reduce the scale range by this many pixels on the left side
76
+ */
54
77
  insetLeft: number;
78
+ /**
79
+ * reduce the scale range by this many pixels on the right side
80
+ */
55
81
  insetRight: number;
82
+ /**
83
+ * reduce the scale range by this many pixels on the top side
84
+ */
56
85
  insetTop: number;
86
+ /**
87
+ * reduce the scale range by this many pixels on the bottom side
88
+ */
57
89
  insetBottom: number;
58
- ticks: (number | Date)[];
90
+ /**
91
+ * explicit tick values to use instead of automatic tick generation
92
+ */
93
+ ticks: RawValue[];
94
+ /**
95
+ * desired pixel distance between ticks for automatic tick generation
96
+ */
59
97
  tickSpacing: number;
98
+ /**
99
+ * the logarithm base for log scales (default 10)
100
+ */
60
101
  base: number;
102
+ /**
103
+ * controls domain ordering for band and point scales; can be a channel
104
+ * accessor, a comparator function, or an object with channel and order
105
+ */
61
106
  sort: ChannelAccessor | ((a: RawValue, b: RawValue) => number) | {
62
107
  channel: string;
63
108
  order: 'ascending' | 'descending';
64
109
  };
110
+ /**
111
+ * the constant parameter for symlog scales, controlling the transition
112
+ * between linear and logarithmic behavior near zero (default 1)
113
+ */
65
114
  constant: number;
66
115
  };
67
116
  export type ColorScaleOptions = ScaleOptions & {
117
+ /**
118
+ * if true, show a color legend for this scale
119
+ */
68
120
  legend: boolean;
121
+ /**
122
+ * the color scale type; extends the base scale types with color-specific
123
+ * types like categorical, sequential, diverging, etc.
124
+ */
69
125
  type: ScaleType | 'categorical' | 'sequential' | 'cyclical' | 'threshold' | 'quantile' | 'quantize' | 'diverging' | 'diverging-log' | 'diverging-pow' | 'diverging-sqrt' | 'diverging-symlog';
70
- scheme: string;
126
+ /**
127
+ * the name of the color scheme to use, e.g. 'blues', 'turbo', 'rdylbu'
128
+ */
129
+ scheme: ColorScheme | string[];
71
130
  /**
72
131
  * fallback color used for null/undefined
73
132
  */
@@ -80,11 +139,14 @@ export type ColorScaleOptions = ScaleOptions & {
80
139
  * number of colors for quantize and quantile-threshold scales
81
140
  */
82
141
  n: number;
142
+ /**
143
+ * custom interpolation function for the color scale output
144
+ */
83
145
  interpolate: (d: any) => typeof d;
84
146
  /**
85
147
  * The tick format for the color scale legend.
86
148
  */
87
- tickFormat: false | Intl.NumberFormatOptions | ((d: RawValue) => string);
149
+ tickFormat: false | Intl.NumberFormatOptions | TickFormatFunction;
88
150
  };
89
151
  export type ScaleType = 'linear' | 'pow' | 'sqrt' | 'log' | 'symlog' | 'time' | 'point' | 'ordinal' | 'sequential' | 'band' | 'categorical' | 'cyclical' | 'threshold' | 'quantile-cont' | 'quantile' | 'quantize' | 'diverging' | 'diverging-log' | 'diverging-pow' | 'diverging-sqrt' | 'diverging-symlog';
90
152
  export type XScaleOptions = ScaleOptions & {
@@ -104,8 +166,15 @@ export type XScaleOptions = ScaleOptions & {
104
166
  * rotate the axis ticks
105
167
  */
106
168
  tickRotate: number;
169
+ /**
170
+ * horizontal position of the axis label
171
+ */
107
172
  labelAnchor: 'auto' | 'left' | 'center' | 'right';
108
- tickFormat: false | Intl.NumberFormatOptions | ((d: RawValue) => string);
173
+ /**
174
+ * custom tick format; false to hide tick labels, an Intl.NumberFormatOptions
175
+ * object, or a function mapping values to strings
176
+ */
177
+ tickFormat: 'auto' | false | Intl.NumberFormatOptions | Intl.DateTimeFormatOptions | TickFormatFunction;
109
178
  /**
110
179
  * Enable word wrapping for axis tick labels, default true
111
180
  */
@@ -128,20 +197,55 @@ export type YScaleOptions = ScaleOptions & {
128
197
  * add an explicit AxisY mark to your plot instead of using the implicit axes.
129
198
  */
130
199
  axis: AxisYAnchor | false;
131
- tickFormat: false | Intl.NumberFormatOptions | ((d: RawValue) => string);
200
+ /**
201
+ * custom tick format; false to hide tick labels, an Intl.NumberFormatOptions
202
+ * object, or a function mapping values to strings
203
+ */
204
+ tickFormat: 'auto' | false | Intl.NumberFormatOptions | Intl.DateTimeFormatOptions | TickFormatFunction;
132
205
  /**
133
206
  * rotate the axis ticks
134
207
  */
135
208
  tickRotate: number;
209
+ /**
210
+ * vertical position of the axis label
211
+ */
136
212
  labelAnchor: 'auto' | 'bottom' | 'middle' | 'top';
137
213
  };
138
214
  export type LegendScaleOptions = ScaleOptions & {
215
+ /**
216
+ * if true, show a legend for this scale
217
+ */
139
218
  legend: boolean;
140
219
  };
220
+ /**
221
+ * Broad callable shape for resolved d3 scale functions used internally by marks.
222
+ * Specific methods only exist for certain scale types and may be undefined.
223
+ */
224
+ export type PlotScaleFunction = ((value: any) => any) & {
225
+ range: () => RawValue[];
226
+ invert: (value: number) => RawValue;
227
+ bandwidth: () => number;
228
+ ticks: (count: number) => RawValue[];
229
+ quantiles: () => number[];
230
+ thresholds: () => number[];
231
+ domain: () => RawValue[];
232
+ };
141
233
  export type PlotScale = {
234
+ /**
235
+ * the resolved scale type
236
+ */
142
237
  type: ScaleType;
238
+ /**
239
+ * the resolved domain of the scale
240
+ */
143
241
  domain: RawValue[];
242
+ /**
243
+ * the resolved range of the scale
244
+ */
144
245
  range: RawValue[];
246
+ /**
247
+ * automatically computed axis label based on data channel names
248
+ */
145
249
  autoTitle?: string;
146
250
  /**
147
251
  * The number of marks that are using this scale.
@@ -151,7 +255,20 @@ export type PlotScale = {
151
255
  * Set of accessors used in channels that are bound to this scale.
152
256
  */
153
257
  uniqueScaleProps: Set<ChannelAccessor>;
258
+ /**
259
+ * tracks which marks should skip this scale for specific channels,
260
+ * e.g. when channel values are already in output space
261
+ */
154
262
  skip: Map<ScaledChannelName, Set<symbol>>;
155
- fn: ScaleLinear<RawValue, number> & ScaleBand<RawValue[]> & ScaleOrdinal<string | Date, number> & ScaleOrdinal<string | Date, string>;
263
+ /**
264
+ * the underlying d3 scale function that maps domain values to range values.
265
+ * Typed as a broad callable since the actual type depends on the scale type
266
+ * (linear, band, ordinal, etc.) and may be augmented with custom methods.
267
+ */
268
+ fn: PlotScaleFunction;
269
+ /**
270
+ * whether this is a dummy scale (created when no scale was defined)
271
+ */
272
+ isDummy?: boolean;
156
273
  };
157
274
  export type PlotScales = Record<ScaleName, PlotScale>;
package/package.json CHANGED
@@ -1,182 +1,185 @@
1
1
  {
2
- "name": "svelteplot",
3
- "version": "0.10.3",
4
- "description": "A Svelte-native data visualization framework based on the layered grammar of graphics principles.",
5
- "keywords": [
6
- "svelte",
7
- "data visualization",
8
- "plotting",
9
- "data analysis",
10
- "datavis",
11
- "dataviz",
12
- "grammar of graphics",
13
- "interactive visualization"
14
- ],
15
- "homepage": "https://svelteplot.dev",
16
- "bugs": {
17
- "url": "https://github.com/svelteplot/svelteplot/issues"
2
+ "name": "svelteplot",
3
+ "version": "0.11.0",
4
+ "description": "A Svelte-native data visualization framework based on the layered grammar of graphics principles.",
5
+ "keywords": [
6
+ "svelte",
7
+ "data visualization",
8
+ "plotting",
9
+ "data analysis",
10
+ "datavis",
11
+ "dataviz",
12
+ "grammar of graphics",
13
+ "interactive visualization"
14
+ ],
15
+ "homepage": "https://svelteplot.dev",
16
+ "bugs": {
17
+ "url": "https://github.com/svelteplot/svelteplot/issues"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/svelteplot/svelteplot.git"
22
+ },
23
+ "license": "ISC",
24
+ "author": {
25
+ "name": "Gregor Aisch",
26
+ "email": "gka@users.noreply.github.com"
27
+ },
28
+ "type": "module",
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "svelte": "./dist/index.js"
18
33
  },
19
- "repository": {
20
- "type": "git",
21
- "url": "git+https://github.com/svelteplot/svelteplot.git"
34
+ "./*.js": {
35
+ "import": "./dist/*.js"
22
36
  },
23
- "license": "ISC",
24
- "author": {
25
- "name": "Gregor Aisch",
26
- "email": "gka@users.noreply.github.com"
37
+ "./*.svelte": {
38
+ "import": "./dist/*.svelte"
27
39
  },
28
- "packageManager": "pnpm@10.0.0",
29
- "type": "module",
30
- "exports": {
31
- ".": {
32
- "types": "./dist/index.d.ts",
33
- "svelte": "./dist/index.js"
34
- },
35
- "./*.js": {
36
- "import": "./dist/*.js"
37
- },
38
- "./*.svelte": {
39
- "import": "./dist/*.svelte"
40
- },
41
- "./core/*.svelte": {
42
- "import": "./dist/core/*.svelte"
43
- },
44
- "./marks/*.svelte": {
45
- "import": "./dist/marks/*.svelte"
46
- },
47
- "./transforms": {
48
- "import": "./dist/transforms/index.js"
49
- }
40
+ "./core/*.svelte": {
41
+ "import": "./dist/core/*.svelte"
50
42
  },
51
- "main": "./dist/index.js",
52
- "types": "./dist/index.d.ts",
53
- "files": [
54
- "dist",
55
- "!dist/**/*.test.*",
56
- "!dist/**/*.spec.*"
57
- ],
58
- "scripts": {
59
- "build": "vite build",
60
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
61
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
62
- "check-js-extensions": "node scripts/check-js-extensions.js src",
63
- "dev": "vite dev",
64
- "docs": "npm run build && cd build && rsync --recursive . vis4.net:svelteplot/alpha0/",
65
- "docs:api": "node scripts/generate-api.js --marks --plot --transforms && prettier --write .",
66
- "docs:api:marks": "node scripts/generate-api.js --marks && prettier --write .",
67
- "docs:api:plot": "node scripts/generate-api.js --plot && prettier --write .",
68
- "docs:api:transforms": "node scripts/generate-api.js --transforms && prettier --write .",
69
- "format": "prettier --write . && eslint --fix package.json",
70
- "lint": "prettier --check src && eslint src package.json",
71
- "lint:types": "tsc --noEmit",
72
- "prepack": "npx svelte-package",
73
- "preview": "vite preview",
74
- "release-next": "npm version prerelease --preid next && npm publish && git push && git push --tags && sleep 1 && npm dist-tag add svelteplot@$(npm view . version) next",
75
- "screenshots": "node screenshot-examples.js",
76
- "test": "npm run test:unit",
77
- "test:unit": "vitest",
78
- "test:visual": "node scripts/visual-regression.js",
79
- "vr:report": "node scripts/vr-report.js"
43
+ "./marks/*.svelte": {
44
+ "import": "./dist/marks/*.svelte"
80
45
  },
81
- "dependencies": {
82
- "d3-array": "^3.2.4",
83
- "d3-color": "^3.1.0",
84
- "d3-format": "^3.1.2",
85
- "d3-geo": "^3.1.1",
86
- "d3-interpolate": "^3.0.1",
87
- "d3-path": "^3.1.0",
88
- "d3-quadtree": "^3.0.1",
89
- "d3-random": "^3.0.1",
90
- "d3-scale": "^4.0.2",
91
- "d3-scale-chromatic": "^3.1.0",
92
- "d3-shape": "^3.2.0",
93
- "d3-time": "^3.1.0",
94
- "es-toolkit": "^1.44.0",
95
- "fast-equals": "^6.0.0",
96
- "interval-tree-1d": "^1.0.4",
97
- "merge-deep": "^3.0.3"
98
- },
99
- "peerDependencies": {
100
- "svelte": "^5.43.0"
101
- },
102
- "devDependencies": {
103
- "@aitodotai/json-stringify-pretty-compact": "^1.3.0",
104
- "@emotion/css": "^11.13.5",
105
- "@shikijs/twoslash": "^3.21.0",
106
- "@sveltejs/adapter-auto": "^7.0.0",
107
- "@sveltejs/adapter-static": "^3.0.10",
108
- "@sveltejs/enhanced-img": "^0.9.3",
109
- "@sveltejs/eslint-config": "^8.3.4",
110
- "@sveltejs/kit": "^2.50.1",
111
- "@sveltejs/package": "^2.5.7",
112
- "@sveltejs/vite-plugin-svelte": "6.2.4",
113
- "@sveltepress/twoslash": "^1.3.6",
114
- "@sveltepress/vite": "^1.3.6",
115
- "@testing-library/svelte": "^5.3.1",
116
- "@testing-library/user-event": "^14.6.1",
117
- "@types/d3-array": "^3.2.2",
118
- "@types/d3-color": "^3.1.3",
119
- "@types/d3-dsv": "^3.0.7",
120
- "@types/d3-geo": "^3.1.0",
121
- "@types/d3-interpolate": "^3.0.4",
122
- "@types/d3-path": "^3.1.1",
123
- "@types/d3-quadtree": "^3.0.6",
124
- "@types/d3-random": "^3.0.3",
125
- "@types/d3-scale": "^4.0.9",
126
- "@types/d3-scale-chromatic": "^3.1.0",
127
- "@types/d3-shape": "^3.1.8",
128
- "@types/geojson": "^7946.0.16",
129
- "@types/topojson": "^3.2.6",
130
- "@types/topojson-client": "^3.1.5",
131
- "@typescript-eslint/eslint-plugin": "^8.54.0",
132
- "@typescript-eslint/parser": "^8.54.0",
133
- "@unocss/extractor-svelte": "^66.6.0",
134
- "@vite-pwa/sveltekit": "^1.1.0",
135
- "csstype": "^3.2.3",
136
- "d3-dsv": "^3.0.1",
137
- "d3-fetch": "^3.0.1",
138
- "d3-force": "^3.0.0",
139
- "eslint": "^9.39.2",
140
- "eslint-config-prettier": "^10.1.8",
141
- "eslint-plugin-package-json": "^0.88.2",
142
- "eslint-plugin-regexp": "^2.10.0",
143
- "eslint-plugin-svelte": "3.14.0",
144
- "jqmath": "^0.4.9",
145
- "jsdom": "^27.4.0",
146
- "log-update": "^7.0.2",
147
- "lru-cache": "^11.2.5",
148
- "mdast-util-from-markdown": "^2.0.2",
149
- "mdast-util-gfm": "^3.1.0",
150
- "pixelmatch": "^7.1.0",
151
- "pngjs": "^7.0.0",
152
- "prettier": "^3.8.1",
153
- "prettier-plugin-svelte": "^3.4.1",
154
- "puppeteer": "^24.36.1",
155
- "remark-code-extra": "^1.0.1",
156
- "remark-code-frontmatter": "^1.0.0",
157
- "remark-math": "^6.0.0",
158
- "resize-observer-polyfill": "^1.5.1",
159
- "sass": "^1.97.3",
160
- "shiki": "^3.21.0",
161
- "svelte-check": "^4.3.5",
162
- "svelte-eslint-parser": "1.4.1",
163
- "svelte-highlight": "^7.9.0",
164
- "svelte": "5",
165
- "svg-path-parser": "^1.1.0",
166
- "temml": "^0.13.1",
167
- "topojson-client": "^3.1.0",
168
- "ts-essentials": "^10.1.1",
169
- "tslib": "^2.8.1",
170
- "typedoc": "^0.28.16",
171
- "typedoc-plugin-markdown": "^4.9.0",
172
- "typescript": "^5.9.3",
173
- "uid": "^2.0.2",
174
- "unist-util-visit": "^5.1.0",
175
- "unocss": "^66.6.0",
176
- "vite": "^7.3.1",
177
- "vitest": "^4.0.18",
178
- "vitest-matchmedia-mock": "^2.0.3",
179
- "wx-svelte-grid": "^2.5.0",
180
- "yoctocolors": "^2.1.2"
46
+ "./transforms": {
47
+ "import": "./dist/transforms/index.js"
181
48
  }
182
- }
49
+ },
50
+ "main": "./dist/index.js",
51
+ "types": "./dist/index.d.ts",
52
+ "files": [
53
+ "dist",
54
+ "!dist/**/*.test.*",
55
+ "!dist/**/*.spec.*"
56
+ ],
57
+ "dependencies": {
58
+ "d3-array": "^3.2.4",
59
+ "d3-color": "^3.1.0",
60
+ "d3-format": "^3.1.2",
61
+ "d3-geo": "^3.1.1",
62
+ "d3-interpolate": "^3.0.1",
63
+ "d3-path": "^3.1.0",
64
+ "d3-quadtree": "^3.0.1",
65
+ "d3-random": "^3.0.1",
66
+ "d3-scale": "^4.0.2",
67
+ "d3-scale-chromatic": "^3.1.0",
68
+ "d3-shape": "^3.2.0",
69
+ "d3-time": "^3.1.0",
70
+ "es-toolkit": "^1.44.0",
71
+ "fast-equals": "^6.0.0",
72
+ "interval-tree-1d": "^1.0.4",
73
+ "merge-deep": "^3.0.3"
74
+ },
75
+ "devDependencies": {
76
+ "@aitodotai/json-stringify-pretty-compact": "^1.3.0",
77
+ "@emotion/css": "^11.13.5",
78
+ "@shikijs/twoslash": "^3.22.0",
79
+ "@sveltejs/adapter-auto": "^7.0.1",
80
+ "@sveltejs/adapter-static": "^3.0.10",
81
+ "@sveltejs/enhanced-img": "^0.10.2",
82
+ "@sveltejs/eslint-config": "^8.3.5",
83
+ "@sveltejs/kit": "^2.52.2",
84
+ "@sveltejs/package": "^2.5.7",
85
+ "@sveltejs/vite-plugin-svelte": "6.2.4",
86
+ "@sveltepress/twoslash": "^1.3.6",
87
+ "@sveltepress/vite": "^1.3.6",
88
+ "@testing-library/svelte": "^5.3.1",
89
+ "@testing-library/user-event": "^14.6.1",
90
+ "@types/d3-array": "^3.2.2",
91
+ "@types/d3-color": "^3.1.3",
92
+ "@types/d3-dsv": "^3.0.7",
93
+ "@types/d3-geo": "^3.1.0",
94
+ "@types/d3-interpolate": "^3.0.4",
95
+ "@types/d3-path": "^3.1.1",
96
+ "@types/d3-quadtree": "^3.0.6",
97
+ "@types/d3-random": "^3.0.3",
98
+ "@types/d3-scale": "^4.0.9",
99
+ "@types/d3-scale-chromatic": "^3.1.0",
100
+ "@types/d3-shape": "^3.1.8",
101
+ "@types/geojson": "^7946.0.16",
102
+ "@types/topojson": "^3.2.6",
103
+ "@types/topojson-client": "^3.1.5",
104
+ "@typescript-eslint/eslint-plugin": "^8.56.0",
105
+ "@typescript-eslint/parser": "^8.56.0",
106
+ "@unocss/extractor-svelte": "^66.6.0",
107
+ "@vite-pwa/sveltekit": "^1.1.0",
108
+ "csstype": "^3.2.3",
109
+ "d3-dsv": "^3.0.1",
110
+ "d3-fetch": "^3.0.1",
111
+ "d3-force": "^3.0.0",
112
+ "eslint": "^9.39.2",
113
+ "eslint-config-prettier": "^10.1.8",
114
+ "eslint-plugin-package-json": "^0.88.3",
115
+ "eslint-plugin-regexp": "^2.10.0",
116
+ "eslint-plugin-svelte": "3.15.0",
117
+ "jqmath": "^0.4.9",
118
+ "jsdom": "^27.4.0",
119
+ "log-update": "^7.1.0",
120
+ "lru-cache": "^11.2.6",
121
+ "magic-string": "^0.30.21",
122
+ "mdast-util-from-markdown": "^2.0.2",
123
+ "mdast-util-gfm": "^3.1.0",
124
+ "oxlint": "^1.48.0",
125
+ "oxlint-tsgolint": "^0.14.0",
126
+ "pixelmatch": "^7.1.0",
127
+ "pngjs": "^7.0.0",
128
+ "prettier": "^3.8.1",
129
+ "prettier-plugin-svelte": "^3.5.0",
130
+ "puppeteer": "^24.37.4",
131
+ "remark-code-extra": "^1.0.1",
132
+ "remark-code-frontmatter": "^1.0.0",
133
+ "remark-math": "^6.0.0",
134
+ "resize-observer-polyfill": "^1.5.1",
135
+ "sass": "^1.97.3",
136
+ "shiki": "^3.22.0",
137
+ "svelte": "5",
138
+ "svelte-check": "^4.4.1",
139
+ "svelte-eslint-parser": "1.4.1",
140
+ "svelte-highlight": "^7.9.0",
141
+ "svg-path-parser": "^1.1.0",
142
+ "temml": "^0.13.1",
143
+ "topojson-client": "^3.1.0",
144
+ "ts-essentials": "^10.1.1",
145
+ "tslib": "^2.8.1",
146
+ "typedoc": "^0.28.17",
147
+ "typedoc-plugin-markdown": "^4.10.0",
148
+ "typescript": "^5.9.3",
149
+ "uid": "^2.0.2",
150
+ "unist-util-visit": "^5.1.0",
151
+ "unocss": "^66.6.0",
152
+ "vite": "^7.3.1",
153
+ "vitest": "^4.0.18",
154
+ "vitest-matchmedia-mock": "^2.0.3",
155
+ "wx-svelte-grid": "^2.5.0",
156
+ "yoctocolors": "^2.1.2"
157
+ },
158
+ "peerDependencies": {
159
+ "svelte": "^5.43.0"
160
+ },
161
+ "scripts": {
162
+ "build": "vite build",
163
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
164
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
165
+ "check-js-extensions": "node scripts/check-js-extensions.js src",
166
+ "dev": "vite dev",
167
+ "docs": "npm run build && cd build && rsync --recursive . vis4.net:svelteplot/alpha0/",
168
+ "docs:api": "node scripts/generate-api.js --marks --plot --transforms && prettier --write .",
169
+ "docs:api:marks": "node scripts/generate-api.js --marks && prettier --write .",
170
+ "docs:api:plot": "node scripts/generate-api.js --plot && prettier --write .",
171
+ "docs:api:transforms": "node scripts/generate-api.js --transforms && prettier --write .",
172
+ "format": "eslint --fix package.json && prettier --write .",
173
+ "lint": "pnpm run lint:oxlint && pnpm run lint:eslint && pnpm run lint:types",
174
+ "lint:eslint": "prettier --check src && eslint src package.json",
175
+ "lint:oxlint": "oxlint --type-aware",
176
+ "lint:types": "svelte-kit sync && tsc --noEmit -p tsconfig.lint-types.json",
177
+ "preview": "vite preview",
178
+ "release-next": "npm version prerelease --preid next && npm publish && git push && git push --tags && sleep 1 && npm dist-tag add svelteplot@$(npm view . version) next",
179
+ "screenshots": "node screenshot-examples.js",
180
+ "test": "npm run test:unit",
181
+ "test:unit": "vitest",
182
+ "test:visual": "node scripts/visual-regression.js",
183
+ "vr:report": "node scripts/vr-report.js"
184
+ }
185
+ }
@@ -1,12 +0,0 @@
1
- import type { RawValue, ScaleType } from '../types/index.js';
2
- type IntervalLike = {
3
- floor: (d: number) => number;
4
- round?: (d: number) => number;
5
- offset: (d: number, step?: number) => number;
6
- range: (lo: number, hi: number) => number[];
7
- };
8
- export declare function maybeInterval(interval: null | number | string | IntervalLike): any;
9
- export declare function autoTicks(type: ScaleType, ticks: RawValue[], interval: string | number | null, domain: RawValue[], scaleFn: {
10
- ticks?: (count: number) => RawValue[];
11
- }, count: number): any;
12
- export {};