@motionscript/charts 0.1.1-alpha.2 → 0.1.1-alpha.3

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 (63) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +7 -9
  3. package/dist/bar-chart/bar-chart.d.ts +48 -48
  4. package/dist/bar-chart/bar-chart.js +2 -2
  5. package/dist/bar-chart/bar-chart.js.map +1 -1
  6. package/dist/bar-chart/shared.d.ts +2 -1
  7. package/dist/bar-chart/shared.d.ts.map +1 -1
  8. package/dist/bar-chart/shared.js +2 -0
  9. package/dist/bar-chart/shared.js.map +1 -1
  10. package/dist/browser/chunks/chunk-FJHNBNPQ.js +2 -0
  11. package/dist/browser/chunks/chunk-FJHNBNPQ.js.map +7 -0
  12. package/dist/browser/index.js +1 -1
  13. package/dist/browser/index.js.map +3 -3
  14. package/dist/browser/kit.js +1 -1
  15. package/dist/browser/manifest.json +1 -1
  16. package/dist/kit/style.d.ts +25 -20
  17. package/dist/kit/style.d.ts.map +1 -1
  18. package/dist/kit/style.js +20 -18
  19. package/dist/kit/style.js.map +1 -1
  20. package/dist/line-chart/line-chart.d.ts +48 -48
  21. package/dist/line-chart/line-chart.js +2 -2
  22. package/dist/line-chart/line-chart.js.map +1 -1
  23. package/dist/line-chart/shared.d.ts +2 -1
  24. package/dist/line-chart/shared.d.ts.map +1 -1
  25. package/dist/line-chart/shared.js +2 -0
  26. package/dist/line-chart/shared.js.map +1 -1
  27. package/dist/pie-chart/pie-chart.d.ts +18 -24
  28. package/dist/pie-chart/pie-chart.d.ts.map +1 -1
  29. package/dist/pie-chart/shared.d.ts +7 -9
  30. package/dist/pie-chart/shared.d.ts.map +1 -1
  31. package/dist/pie-chart/shared.js +7 -10
  32. package/dist/pie-chart/shared.js.map +1 -1
  33. package/dist/radar-chart/index.d.ts +1 -1
  34. package/dist/radar-chart/index.d.ts.map +1 -1
  35. package/dist/radar-chart/index.js +1 -1
  36. package/dist/radar-chart/index.js.map +1 -1
  37. package/dist/radar-chart/radar-chart.d.ts +6 -12
  38. package/dist/radar-chart/radar-chart.d.ts.map +1 -1
  39. package/dist/radar-chart/radar-chart.js +1 -2
  40. package/dist/radar-chart/radar-chart.js.map +1 -1
  41. package/dist/radar-chart/shared.d.ts +2 -5
  42. package/dist/radar-chart/shared.d.ts.map +1 -1
  43. package/dist/radar-chart/shared.js +3 -6
  44. package/dist/radar-chart/shared.js.map +1 -1
  45. package/dist/radial-chart/radial-chart.d.ts +12 -18
  46. package/dist/radial-chart/radial-chart.d.ts.map +1 -1
  47. package/dist/radial-chart/shared.d.ts +5 -7
  48. package/dist/radial-chart/shared.d.ts.map +1 -1
  49. package/dist/radial-chart/shared.js +5 -8
  50. package/dist/radial-chart/shared.js.map +1 -1
  51. package/package.json +4 -4
  52. package/src/bar-chart/bar-chart.ts +2 -2
  53. package/src/bar-chart/shared.ts +3 -0
  54. package/src/kit/style.ts +21 -19
  55. package/src/line-chart/line-chart.ts +2 -2
  56. package/src/line-chart/shared.ts +3 -1
  57. package/src/pie-chart/shared.ts +6 -10
  58. package/src/radar-chart/index.ts +1 -1
  59. package/src/radar-chart/radar-chart.ts +0 -2
  60. package/src/radar-chart/shared.ts +3 -7
  61. package/src/radial-chart/shared.ts +4 -8
  62. package/dist/browser/chunks/chunk-7XCRX6GE.js +0 -2
  63. package/dist/browser/chunks/chunk-7XCRX6GE.js.map +0 -7
@@ -7,21 +7,20 @@ declare const LINE_STYLE: import("@motionscript/sdk").Type<_StyleInput<{
7
7
  } & {
8
8
  legend: import("@motionscript/sdk").Type<"right" | "top" | "bottom" | "none", "right" | "top" | "bottom" | "none", false>;
9
9
  swatch: import("@motionscript/sdk").Type<"square" | "circle" | "line", "square" | "circle" | "line", false>;
10
+ legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
10
11
  } & {
11
12
  horizontalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
12
13
  verticalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
14
+ } & {
15
+ seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
16
+ } & {
13
17
  axisStroke: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
14
18
  showXAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
15
- showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
16
- } & {
17
- legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
18
19
  xLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
19
20
  xTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
21
+ showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
20
22
  yLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
21
23
  yTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
22
- valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
23
- } & {
24
- seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
25
24
  } & {
26
25
  strokeWidth: import("@motionscript/sdk").Type<number, number, false>;
27
26
  curve: import("@motionscript/sdk").Type<"step" | "linear" | "smooth", "step" | "linear" | "smooth", false>;
@@ -30,6 +29,7 @@ declare const LINE_STYLE: import("@motionscript/sdk").Type<_StyleInput<{
30
29
  area: import("@motionscript/sdk").Type<"none" | "solid" | "gradient", "none" | "solid" | "gradient", false>;
31
30
  areaOpacity: import("@motionscript/sdk").Type<number, number, false>;
32
31
  } & {
32
+ valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
33
33
  values: import("@motionscript/sdk").Type<"none" | "above" | "below", "none" | "above" | "below", false>;
34
34
  }>, _StyleValues<{
35
35
  gridBackground: import("@motionscript/sdk").Type<_Fill, _FillResolved[], false>;
@@ -37,21 +37,20 @@ declare const LINE_STYLE: import("@motionscript/sdk").Type<_StyleInput<{
37
37
  } & {
38
38
  legend: import("@motionscript/sdk").Type<"right" | "top" | "bottom" | "none", "right" | "top" | "bottom" | "none", false>;
39
39
  swatch: import("@motionscript/sdk").Type<"square" | "circle" | "line", "square" | "circle" | "line", false>;
40
+ legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
40
41
  } & {
41
42
  horizontalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
42
43
  verticalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
44
+ } & {
45
+ seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
46
+ } & {
43
47
  axisStroke: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
44
48
  showXAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
45
- showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
46
- } & {
47
- legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
48
49
  xLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
49
50
  xTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
51
+ showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
50
52
  yLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
51
53
  yTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
52
- valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
53
- } & {
54
- seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
55
54
  } & {
56
55
  strokeWidth: import("@motionscript/sdk").Type<number, number, false>;
57
56
  curve: import("@motionscript/sdk").Type<"step" | "linear" | "smooth", "step" | "linear" | "smooth", false>;
@@ -60,6 +59,7 @@ declare const LINE_STYLE: import("@motionscript/sdk").Type<_StyleInput<{
60
59
  area: import("@motionscript/sdk").Type<"none" | "solid" | "gradient", "none" | "solid" | "gradient", false>;
61
60
  areaOpacity: import("@motionscript/sdk").Type<number, number, false>;
62
61
  } & {
62
+ valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
63
63
  values: import("@motionscript/sdk").Type<"none" | "above" | "below", "none" | "above" | "below", false>;
64
64
  }>, false>;
65
65
  /** A line chart's resolved style. */
@@ -110,21 +110,20 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
110
110
  } & {
111
111
  legend: import("@motionscript/sdk").Type<"right" | "top" | "bottom" | "none", "right" | "top" | "bottom" | "none", false>;
112
112
  swatch: import("@motionscript/sdk").Type<"square" | "circle" | "line", "square" | "circle" | "line", false>;
113
+ legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
113
114
  } & {
114
115
  horizontalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
115
116
  verticalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
117
+ } & {
118
+ seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
119
+ } & {
116
120
  axisStroke: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
117
121
  showXAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
118
- showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
119
- } & {
120
- legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
121
122
  xLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
122
123
  xTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
124
+ showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
123
125
  yLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
124
126
  yTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
125
- valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
126
- } & {
127
- seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
128
127
  } & {
129
128
  strokeWidth: import("@motionscript/sdk").Type<number, number, false>;
130
129
  curve: import("@motionscript/sdk").Type<"step" | "linear" | "smooth", "step" | "linear" | "smooth", false>;
@@ -133,6 +132,7 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
133
132
  area: import("@motionscript/sdk").Type<"none" | "solid" | "gradient", "none" | "solid" | "gradient", false>;
134
133
  areaOpacity: import("@motionscript/sdk").Type<number, number, false>;
135
134
  } & {
135
+ valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
136
136
  values: import("@motionscript/sdk").Type<"none" | "above" | "below", "none" | "above" | "below", false>;
137
137
  }>, _StyleValues<{
138
138
  gridBackground: import("@motionscript/sdk").Type<_Fill, _FillResolved[], false>;
@@ -140,21 +140,20 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
140
140
  } & {
141
141
  legend: import("@motionscript/sdk").Type<"right" | "top" | "bottom" | "none", "right" | "top" | "bottom" | "none", false>;
142
142
  swatch: import("@motionscript/sdk").Type<"square" | "circle" | "line", "square" | "circle" | "line", false>;
143
+ legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
143
144
  } & {
144
145
  horizontalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
145
146
  verticalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
147
+ } & {
148
+ seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
149
+ } & {
146
150
  axisStroke: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
147
151
  showXAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
148
- showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
149
- } & {
150
- legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
151
152
  xLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
152
153
  xTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
154
+ showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
153
155
  yLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
154
156
  yTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
155
- valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
156
- } & {
157
- seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
158
157
  } & {
159
158
  strokeWidth: import("@motionscript/sdk").Type<number, number, false>;
160
159
  curve: import("@motionscript/sdk").Type<"step" | "linear" | "smooth", "step" | "linear" | "smooth", false>;
@@ -163,6 +162,7 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
163
162
  area: import("@motionscript/sdk").Type<"none" | "solid" | "gradient", "none" | "solid" | "gradient", false>;
164
163
  areaOpacity: import("@motionscript/sdk").Type<number, number, false>;
165
164
  } & {
165
+ valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
166
166
  values: import("@motionscript/sdk").Type<"none" | "above" | "below", "none" | "above" | "below", false>;
167
167
  }>, false>;
168
168
  /** The spotlit slice in data units, or `null`. The box snaps; {@link regionReveal} animates it. */
@@ -208,21 +208,20 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
208
208
  } & {
209
209
  legend: import("@motionscript/sdk").Type<"right" | "top" | "bottom" | "none", "right" | "top" | "bottom" | "none", false>;
210
210
  swatch: import("@motionscript/sdk").Type<"square" | "circle" | "line", "square" | "circle" | "line", false>;
211
+ legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
211
212
  } & {
212
213
  horizontalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
213
214
  verticalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
215
+ } & {
216
+ seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
217
+ } & {
214
218
  axisStroke: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
215
219
  showXAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
216
- showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
217
- } & {
218
- legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
219
220
  xLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
220
221
  xTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
222
+ showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
221
223
  yLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
222
224
  yTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
223
- valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
224
- } & {
225
- seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
226
225
  } & {
227
226
  strokeWidth: import("@motionscript/sdk").Type<number, number, false>;
228
227
  curve: import("@motionscript/sdk").Type<"step" | "linear" | "smooth", "step" | "linear" | "smooth", false>;
@@ -231,6 +230,7 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
231
230
  area: import("@motionscript/sdk").Type<"none" | "solid" | "gradient", "none" | "solid" | "gradient", false>;
232
231
  areaOpacity: import("@motionscript/sdk").Type<number, number, false>;
233
232
  } & {
233
+ valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
234
234
  values: import("@motionscript/sdk").Type<"none" | "above" | "below", "none" | "above" | "below", false>;
235
235
  }>, _StyleValues<{
236
236
  gridBackground: import("@motionscript/sdk").Type<_Fill, _FillResolved[], false>;
@@ -238,21 +238,20 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
238
238
  } & {
239
239
  legend: import("@motionscript/sdk").Type<"right" | "top" | "bottom" | "none", "right" | "top" | "bottom" | "none", false>;
240
240
  swatch: import("@motionscript/sdk").Type<"square" | "circle" | "line", "square" | "circle" | "line", false>;
241
+ legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
241
242
  } & {
242
243
  horizontalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
243
244
  verticalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
245
+ } & {
246
+ seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
247
+ } & {
244
248
  axisStroke: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
245
249
  showXAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
246
- showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
247
- } & {
248
- legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
249
250
  xLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
250
251
  xTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
252
+ showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
251
253
  yLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
252
254
  yTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
253
- valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
254
- } & {
255
- seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
256
255
  } & {
257
256
  strokeWidth: import("@motionscript/sdk").Type<number, number, false>;
258
257
  curve: import("@motionscript/sdk").Type<"step" | "linear" | "smooth", "step" | "linear" | "smooth", false>;
@@ -261,6 +260,7 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
261
260
  area: import("@motionscript/sdk").Type<"none" | "solid" | "gradient", "none" | "solid" | "gradient", false>;
262
261
  areaOpacity: import("@motionscript/sdk").Type<number, number, false>;
263
262
  } & {
263
+ valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
264
264
  values: import("@motionscript/sdk").Type<"none" | "above" | "below", "none" | "above" | "below", false>;
265
265
  }>, false>;
266
266
  /** The spotlit slice in data units, or `null`. The box snaps; {@link regionReveal} animates it. */
@@ -287,21 +287,20 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
287
287
  } & {
288
288
  legend: import("@motionscript/sdk").Type<"right" | "top" | "bottom" | "none", "right" | "top" | "bottom" | "none", false>;
289
289
  swatch: import("@motionscript/sdk").Type<"square" | "circle" | "line", "square" | "circle" | "line", false>;
290
+ legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
290
291
  } & {
291
292
  horizontalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
292
293
  verticalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
294
+ } & {
295
+ seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
296
+ } & {
293
297
  axisStroke: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
294
298
  showXAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
295
- showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
296
- } & {
297
- legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
298
299
  xLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
299
300
  xTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
301
+ showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
300
302
  yLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
301
303
  yTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
302
- valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
303
- } & {
304
- seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
305
304
  } & {
306
305
  strokeWidth: import("@motionscript/sdk").Type<number, number, false>;
307
306
  curve: import("@motionscript/sdk").Type<"step" | "linear" | "smooth", "step" | "linear" | "smooth", false>;
@@ -310,6 +309,7 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
310
309
  area: import("@motionscript/sdk").Type<"none" | "solid" | "gradient", "none" | "solid" | "gradient", false>;
311
310
  areaOpacity: import("@motionscript/sdk").Type<number, number, false>;
312
311
  } & {
312
+ valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
313
313
  values: import("@motionscript/sdk").Type<"none" | "above" | "below", "none" | "above" | "below", false>;
314
314
  }>, _StyleValues<{
315
315
  gridBackground: import("@motionscript/sdk").Type<_Fill, _FillResolved[], false>;
@@ -317,21 +317,20 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
317
317
  } & {
318
318
  legend: import("@motionscript/sdk").Type<"right" | "top" | "bottom" | "none", "right" | "top" | "bottom" | "none", false>;
319
319
  swatch: import("@motionscript/sdk").Type<"square" | "circle" | "line", "square" | "circle" | "line", false>;
320
+ legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
320
321
  } & {
321
322
  horizontalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
322
323
  verticalGrid: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
324
+ } & {
325
+ seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
326
+ } & {
323
327
  axisStroke: import("@motionscript/sdk").Type<_Stroke, _StrokeResolved[], false>;
324
328
  showXAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
325
- showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
326
- } & {
327
- legendText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
328
329
  xLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
329
330
  xTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
331
+ showYAxis: import("@motionscript/sdk").Type<boolean, boolean, false>;
330
332
  yLabelText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
331
333
  yTitleText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
332
- valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
333
- } & {
334
- seriesFills: import("@motionscript/sdk").Type<_Fill[], _FillResolved[][], false>;
335
334
  } & {
336
335
  strokeWidth: import("@motionscript/sdk").Type<number, number, false>;
337
336
  curve: import("@motionscript/sdk").Type<"step" | "linear" | "smooth", "step" | "linear" | "smooth", false>;
@@ -340,6 +339,7 @@ export declare const LineChart: import("@motionscript/sdk").Component<"lineChart
340
339
  area: import("@motionscript/sdk").Type<"none" | "solid" | "gradient", "none" | "solid" | "gradient", false>;
341
340
  areaOpacity: import("@motionscript/sdk").Type<number, number, false>;
342
341
  } & {
342
+ valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
343
343
  values: import("@motionscript/sdk").Type<"none" | "above" | "below", "none" | "above" | "below", false>;
344
344
  }>, false>;
345
345
  /** The spotlit slice in data units, or `null`. The box snaps; {@link regionReveal} animates it. */
@@ -7,13 +7,13 @@ import { SERIES_ARG, asParts, fresh } from "../kit/entries.js";
7
7
  import { HorizontalAxis } from "../kit/horizontal-axis.js";
8
8
  import { DEFAULT_MARKERS, ENTER_SHARE, beats, legendAway } from "../kit/motion.js";
9
9
  import { SPOTLIGHT_DIM, formatMarker, lerpAxisDomain, lerpAxisEntry, markerStep, markerValues, niceRange, niceTicks, resolveAxisDomain, settleAxisDomain, } from "../kit/shared.js";
10
- import { CARTESIAN_GRID, CARTESIAN_TEXT, CHART_LEGEND, CHART_SERIES, CHART_STYLE_FAMILY, CHART_STYLE_PRESETS, GRID_BACKGROUND, axisConfigOf, legendConfigOf, migrateChartStyle, seriesFill, sizeOf, valueText, } from "../kit/style.js";
10
+ import { CARTESIAN_GRID, CARTESIAN_AXES, CHART_LEGEND, CHART_SERIES, CHART_STYLE_FAMILY, CHART_STYLE_PRESETS, GRID_BACKGROUND, axisConfigOf, legendConfigOf, migrateChartStyle, seriesFill, sizeOf, valueText, } from "../kit/style.js";
11
11
  import { VerticalAxis, axisPads } from "../kit/vertical-axis.js";
12
12
  import { ChartArea, ChartLine, traceX } from "./chart-line.js";
13
13
  import { ChartRegion } from "./chart-region.js";
14
14
  import { LINE_LABELS, LINE_MARKS, resolveRegionBox, stackExtent, stackSeries, } from "./shared.js";
15
15
  import { resolveXScale } from "./x-scale.js";
16
- const LINE_STYLE = Types.style(CHART_STYLE_FAMILY, { series: CHART_SERIES, background: GRID_BACKGROUND, text: CARTESIAN_TEXT, grid: CARTESIAN_GRID, marks: LINE_MARKS, labels: LINE_LABELS, legend: CHART_LEGEND }, { presets: CHART_STYLE_PRESETS });
16
+ const LINE_STYLE = Types.style(CHART_STYLE_FAMILY, { series: CHART_SERIES, background: GRID_BACKGROUND, grid: CARTESIAN_GRID, axes: CARTESIAN_AXES, marks: LINE_MARKS, labels: LINE_LABELS, legend: CHART_LEGEND }, { presets: CHART_STYLE_PRESETS });
17
17
  /** One argument, two controls: the commands take a `PlotRegion`, so the x and y spans a host draws are declared inside it. */
18
18
  const REGION_ARG = Types.custom(undefined, {
19
19
  kind: "region",
@@ -1 +1 @@
1
- {"version":3,"file":"line-chart.js","sourceRoot":"","sources":["../../src/line-chart/line-chart.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Rect,\n Text,\n Types,\n clamp,\n component2d,\n easeOut,\n type ChildView,\n type DataRecord,\n type NodeOf,\n type OutOf,\n // Named so this component's emitted type reaches `Node2D` and its props through the sdk, not core.\n type Node2D,\n type Node2DProps as _Node2DProps,\n type TextStyle as _TextStyle,\n type Fill as _Fill,\n type FillResolved as _FillResolved,\n type Stroke as _Stroke,\n type StrokeResolved as _StrokeResolved,\n type Size2D,\n type StyleInput as _StyleInput,\n type StyleValues as _StyleValues,\n type Vector2,\n} from \"@motionscript/sdk\"\nimport { formatNumber } from \"@motionscript/sdk/component\"\n\nimport { boundText, cartesianFrame, chartViews, columnGhost, fade, frameGap, headroom, laidOutSize, overhang } from \"../kit/cartesian\"\nimport { ChartCanvas } from \"../kit/chart-canvas\"\nimport { ChartLegend } from \"../kit/chart-legend\"\nimport { SERIES_ARG, asParts, fresh } from \"../kit/entries\"\nimport { HorizontalAxis } from \"../kit/horizontal-axis\"\nimport { DEFAULT_MARKERS, ENTER_SHARE, beats, legendAway, type AnyTimeline, type Beat } from \"../kit/motion\"\nimport {\n SPOTLIGHT_DIM,\n formatMarker,\n lerpAxisDomain,\n lerpAxisEntry,\n markerStep,\n markerValues,\n niceRange,\n niceTicks,\n resolveAxisDomain,\n settleAxisDomain,\n type AxisDomainConfig,\n type Range,\n type ResolvedAxisDomain,\n} from \"../kit/shared\"\nimport {\n CARTESIAN_GRID,\n CARTESIAN_TEXT,\n CHART_LEGEND,\n CHART_SERIES,\n CHART_STYLE_FAMILY,\n CHART_STYLE_PRESETS,\n GRID_BACKGROUND,\n axisConfigOf,\n legendConfigOf,\n migrateChartStyle,\n seriesFill,\n sizeOf,\n valueText,\n} from \"../kit/style\"\nimport { VerticalAxis, axisPads } from \"../kit/vertical-axis\"\nimport { ChartArea, ChartLine, traceX } from \"./chart-line\"\nimport { ChartRegion } from \"./chart-region\"\nimport {\n LINE_LABELS,\n LINE_MARKS,\n resolveRegionBox,\n stackExtent,\n stackSeries,\n type LineSeries,\n type LineStack,\n type PlotRegion,\n type RegionBox,\n type StackedSeries,\n} from \"./shared\"\nimport { resolveXScale, type XScale } from \"./x-scale\"\n\nconst LINE_STYLE = Types.style(\n CHART_STYLE_FAMILY,\n { series: CHART_SERIES, background: GRID_BACKGROUND, text: CARTESIAN_TEXT, grid: CARTESIAN_GRID, marks: LINE_MARKS, labels: LINE_LABELS, legend: CHART_LEGEND },\n { presets: CHART_STYLE_PRESETS }\n)\n\n/** A line chart's resolved style. */\nexport type LineChartStyle = OutOf<typeof LINE_STYLE>\n\n/** Both axes' domains with their ranges and ticks resolved. */\nexport interface LineChartDomains {\n readonly x: ResolvedAxisDomain\n readonly y: ResolvedAxisDomain\n}\n\n/** What a line chart plots, as its entries hold it. */\nexport interface LineChartValues {\n readonly data: DataRecord[]\n readonly xField: string\n readonly series: LineSeries[]\n readonly stack: LineStack\n readonly xAxis: AxisDomainConfig\n readonly yAxis: AxisDomainConfig\n /** Each series' share of a stack, `1` when missing. */\n readonly weights?: readonly number[]\n /** An area must reach its baseline, so a chart with areas keeps zero on the scale. */\n readonly style?: { readonly area: string }\n}\n\n/** One argument, two controls: the commands take a `PlotRegion`, so the x and y spans a host draws are declared inside it. */\nconst REGION_ARG = Types.custom<PlotRegion | undefined>(undefined, {\n kind: \"region\",\n properties: {\n x: { kind: \"range\", default: true, defaultMin: 0, defaultMax: 100 },\n y: { kind: \"range\", default: false, defaultMin: 0, defaultMax: 100 },\n },\n})\n\n/** What the chart's own commands read: its entries, and the private state they write. */\ninterface LineState extends LineChartValues {\n readonly style: LineChartStyle\n readonly region: PlotRegion | null\n readonly regionReveal: number\n readonly home: LineChartDomains | null\n readonly weights: number[]\n}\n\n/** The share of the y axis a percent stack reads to. */\nconst PERCENT: Range = [0, 100]\n\n/** What the x column is (a number, an instant, or a place in the file), and so how rows are positioned, ticked and captioned. */\nfunction columnOf(s: LineChartValues, format = s.xAxis.format): XScale {\n return resolveXScale(s.data, s.xField, format)\n}\n\n/** Every series as drawn; `weighted` false reads each at full share, as the scale does so the ticks hold still while a series sinks out. */\nfunction stacksOf(s: LineChartValues, weighted = true): StackedSeries[] {\n return stackSeries(s.data, columnOf(s), s.series, s.stack, weighted ? s.weights : undefined)\n}\n\n/** The explicit range and ticks, else the column's extent and ticks: only a numeric column has round numbers between its samples. */\nfunction drawnX(s: LineChartValues, domain: AxisDomainConfig): AxisDomainConfig {\n const column = columnOf(s, domain.format)\n const range = domain.range ?? column.extent\n return { ...domain, range, ticks: domain.ticks ?? column.ticks(range, DEFAULT_MARKERS - 1) }\n}\n\n/** The y range the data asks for: a percent stack reads to 100; areas and stacks keep zero on the scale. */\nfunction autoY(s: LineChartValues, divisions: number): Range {\n const [lo, hi] = stackExtent(stacksOf(s, false))\n if (s.stack === \"percent\" && lo >= 0) return PERCENT\n const zero = s.stack !== \"none\" || (s.style?.area ?? \"none\") !== \"none\"\n return niceRange(zero ? [Math.min(0, lo), Math.max(0, hi)] : [lo, hi], divisions)\n}\n\n/** Auto-ranging steps into one fewer segment than the marker count, so the tidy bounds frame the ticks drawn. */\nfunction drawnY(s: LineChartValues, domain: AxisDomainConfig): AxisDomainConfig {\n const divisions = (domain.ticks?.length ?? DEFAULT_MARKERS) - 1\n const range = domain.range ?? autoY(s, divisions)\n const even = domain.range !== undefined || (s.stack === \"percent\" && range === PERCENT)\n return { ...domain, range, ticks: domain.ticks ?? (even ? markerValues(range, DEFAULT_MARKERS - 1) : niceTicks(range, DEFAULT_MARKERS - 1)) }\n}\n\n/** The last domains worked out from each data array, and what else they were read from. */\nconst domainsDrawn = new WeakMap<DataRecord[], { readonly key: readonly unknown[]; readonly domains: LineChartDomains }>()\n\n/** Both axes as drawn now. */\nexport function lineChartDomains(s: LineChartValues): LineChartDomains {\n const key = [s.xField, s.xAxis, s.yAxis, s.series, s.stack, s.style?.area]\n const kept = domainsDrawn.get(s.data)\n if (kept && kept.key.every((value, i) => value === key[i])) return kept.domains\n const domains = {\n x: settleAxisDomain(s.xAxis, (d) => drawnX(s, d)) as LineChartDomains[\"x\"],\n y: settleAxisDomain(s.yAxis, (d) => drawnY(s, d)) as LineChartDomains[\"y\"],\n }\n domainsDrawn.set(s.data, { key, domains })\n return domains\n}\n\n/** Data to the plot's centred pixel space (origin at its centre, y-up). */\nfunction mapper(domains: LineChartDomains, plot: Size2D) {\n const [xMin, xMax] = domains.x.range\n const [yMin, yMax] = domains.y.range\n return {\n x: (x: number) => (xMax <= xMin ? 0 : ((x - xMin) / (xMax - xMin) - 0.5) * plot.width),\n y: (y: number) => (yMax === yMin ? 0 : ((y - yMin) / (yMax - yMin) - 0.5) * plot.height),\n }\n}\n\ninterface SeriesPixels {\n readonly points: Vector2[]\n /** The line under the series in a stack; empty when it fills to the baseline. */\n readonly base: Vector2[]\n /** What each point reads: its own value, or its share in a percent stack. */\n readonly values: number[]\n}\n\nconst NO_PIXELS: SeriesPixels = { points: [], base: [], values: [] }\n\n/** Series `index` in the plot's centred pixel space. */\nfunction seriesPixels(s: LineChartValues, domains: LineChartDomains, index: number, plot: Size2D): SeriesPixels {\n const stack = stacksOf(s)[index]\n if (!stack) return NO_PIXELS\n const map = mapper(domains, plot)\n const toPx = ([x, y]: [number, number]): Vector2 => ({ x: map.x(x), y: map.y(y) })\n return {\n points: stack.points.map(toPx),\n base: stack.base ? stack.base.map(toPx) : [],\n values: stack.points.map(([, y], k) => y - (stack.base?.[k]?.[1] ?? 0)),\n }\n}\n\n/** Where the areas fill down to: zero, held inside the scale. */\nfunction baselineValue(domains: LineChartDomains): number {\n const [lo, hi] = domains.y.range\n return clamp(0, Math.min(lo, hi), Math.max(lo, hi))\n}\n\n/** Whether anything plotted runs past the scale, so the plot clips it: a zoom, or an author's range narrower than the data. */\nfunction overflows(s: LineChartValues, domains: LineChartDomains): boolean {\n const [ylo, yhi] = stackExtent(stacksOf(s, false))\n const [xlo, xhi] = columnOf(s).extent\n const within = (v: number, [a, b]: Range) => v >= Math.min(a, b) - 1e-9 && v <= Math.max(a, b) + 1e-9\n return !(within(ylo, domains.y.range) && within(yhi, domains.y.range) && within(xlo, domains.x.range) && within(xhi, domains.x.range))\n}\n\n/** `region` in centred pixel space against the live scales, so it travels with a zoom. */\nfunction regionBox(s: LineChartValues & { readonly region: PlotRegion | null }, domains: LineChartDomains, plot: Size2D): RegionBox {\n const { width: w, height: h } = plot\n return resolveRegionBox(s.region, { left: -w / 2, right: w / 2, bottom: -h / 2, top: h / 2 }, domains.x.range, domains.y.range)\n}\n\n/** Whether a call-out is authored, not whether it resolves to pixels: a command is built before the first layout. A region bounding neither axis is none. */\nfunction hasCallout(s: { readonly region: PlotRegion | null }): boolean {\n const region = s.region\n return region != null && (region.x !== undefined || region.y !== undefined)\n}\n\n/** The `region` argument, or `{}`: a command is added before its arguments are filled in. */\nfunction regionArg(region: PlotRegion | null | undefined): PlotRegion {\n return region != null && typeof region === \"object\" ? region : {}\n}\n\n/** A range ordered low to high. */\nfunction span([a, b]: Range): Range {\n return a <= b ? [a, b] : [b, a]\n}\n\n/** Rescale to `range` keeping the tick count, so each marker slides rather than the row popping. */\nfunction rescale(range: Range, ticks: readonly number[]): AxisDomainConfig {\n const to = span(range)\n return { range: to, ticks: markerValues(to, Math.max(2, ticks.length) - 1) }\n}\n\nfunction axesAt(from: LineChartDomains, to: Partial<Record<\"x\" | \"y\", AxisDomainConfig>>, t: number) {\n return {\n ...(to.x && { xAxis: lerpAxisDomain(from.x, to.x, t) }),\n ...(to.y && { yAxis: lerpAxisDomain(from.y, to.y, t) }),\n }\n}\n\n/** A value as the y axis writes it: the author's pattern, a share in a percent stack, else the bare reading at the ticks' precision. */\nfunction yLabel(s: LineChartValues, value: number, ticks: readonly number[]): string {\n const format = s.yAxis.format\n if (format !== undefined) return formatNumber(value, format)\n const text = formatMarker(value, markerStep(ticks))\n return s.stack === \"percent\" ? `${text}%` : text\n}\n\nfunction weightOf(s: { readonly weights: readonly number[] }, index: number): number {\n return Math.max(0, s.weights[index] ?? 1)\n}\n\n/** The parts a line chart's commands drive, found through its children. */\nfunction partsOf(children: readonly ChildView[]) {\n const views = chartViews(children)\n return {\n vAxis: views.find(VerticalAxis.is) ?? null,\n hAxis: views.find(HorizontalAxis.is) ?? null,\n lines: views.filter(ChartLine.is),\n legend: views.find(ChartLegend.is) ?? null,\n }\n}\n\nfunction clearing(timeline: AnyTimeline, state: LineState) {\n const from = state.regionReveal\n const region = state.region\n // Nothing to retract, but the call still takes its slot.\n if (from === 0) return timeline.animate(() => ({ region: null, regionReveal: 0 }), { eased: false })\n // `region` is held until the retraction lands, or there would be nothing left to retract.\n return timeline.animate((t) => (t >= 1 ? { region: null, regionReveal: 0 } : { region, regionReveal: from * (1 - t) }))\n}\n\n/**\n * Show or hide series `index` with its legend entry. Apart, the line retraces;\n * in a stack it sinks into the series below as its share falls to nothing, so\n * the ones above settle rather than leaving a gap.\n */\nfunction toggling(timeline: AnyTimeline, state: LineState, children: readonly ChildView[], index: number, show: boolean) {\n const parts = partsOf(children)\n const line = parts.lines[index]\n if (!line) return timeline.wait(timeline.duration)\n const legend = parts.legend ? [parts.legend.run(show ? \"showSeries\" : \"hideSeries\", { index })] : []\n if (state.stack === \"none\") {\n return timeline.together([line.run(\"enter\", show ? { from: 0, to: 1 } : { from: 1, to: 0 }), ...legend])\n }\n const from = state.series.map((_, i) => weightOf(state, i))\n const start = from[index] ?? 1\n const target = show ? 1 : 0\n return timeline.together([\n timeline.animate((t) => {\n const weights = [...from]\n weights[index] = start + (target - start) * timeline.ease(t)\n return { weights }\n }, { eased: false }),\n line.run(\"hold\", { shown: show }),\n ...legend,\n ])\n}\n\n/**\n * A multi-series line or area chart composed of {@link ChartCanvas}, the value\n * and x axes, {@link ChartRegion}, a {@link ChartArea} and a {@link ChartLine}\n * per series, and {@link ChartLegend}. Every part reads the chart's entries\n * through bindings and maps against the plot panel's own laid-out box.\n *\n * Resting state is the finished chart; `enter` arms every part on its first\n * frame. A `to` of an axis `range` or `ticks` tweens from the domain as drawn\n * (see {@link lerpAxisEntry}), so an auto axis rescales continuously.\n */\nexport const LineChart = component2d({\n key: \"lineChart\",\n state: {\n data: fresh<DataRecord[]>(() => [], { kind: \"dataset\" }),\n // Not `x`: every node already has an `x`, its position.\n xField: \"\",\n series: fresh<LineSeries[]>(() => [], { kind: \"series\" }),\n /** `stacked`: each series sits on the sum of those before it; `percent`: every row reads as shares of 100. */\n stack: Types.oneOf([\"none\", \"stacked\", \"percent\"] as const),\n xAxis: Types.custom<AxisDomainConfig>({}, { resolve: resolveAxisDomain, lerp: lerpAxisEntry }),\n yAxis: Types.custom<AxisDomainConfig>({}, { resolve: resolveAxisDomain, lerp: lerpAxisEntry }),\n style: LINE_STYLE,\n /** The spotlit slice in data units, or `null`. The box snaps; {@link regionReveal} animates it. */\n region: Types.custom<PlotRegion | null>(null),\n /** How far the `region` call-out is drawn in, `[0, 1]`: rules grow, wash fades up, out-of-region stretches fade. */\n regionReveal: 0,\n /** The domain `zoomTo` first left, so `resetZoom` restores it, auto-derived ticks included. */\n home: Types.custom<LineChartDomains | null>(null, { private: true }),\n /** Each series' share of a stack, seeded from `enabled`: a weight rather than a switch, so a hidden series sinks out. */\n weights: Types.custom<number[]>([], { private: true }),\n /** Whether the plot clips its marks, from a zoom's first frame until a reset lands. */\n clipped: Types.boolean(false, { private: true }),\n },\n // A node made of parts that fill would otherwise hug them.\n defaults: {\n width: \"fill\",\n height: \"fill\",\n weights: (state) => state.series.map((s) => ((s.enabled ?? true) ? 1 : 0)),\n },\n migrate: { style: migrateChartStyle(\"cartesian\") },\n allowedChildren: [],\n children: (state) => {\n const style = () => state.style\n const domains = () => lineChartDomains(state)\n let plot: Node2D | undefined\n const plotSize = () => laidOutSize(plot)\n const pixels = (i: number) => seriesPixels(state, domains(), i, plotSize())\n const enabled = state.series.map((s) => s.enabled ?? true)\n const built = state.style\n const yConfig = () => axisConfigOf(style(), \"y\")\n const xConfig = () => axisConfigOf(style(), \"x\")\n const yCaptions = () => {\n const ticks = domains().y.ticks\n return ticks.map((value) => yLabel(state, value, ticks))\n }\n\n // Bound, not snapshotted, so a rescale re-labels and re-places the row as it\n // tweens. The marker *count* is read once, which is why `zoomTo` keeps it.\n const vAxis = built.showYAxis\n ? (new VerticalAxis({\n range: () => domains().y.range,\n markers: () => domains().y.ticks,\n captions: yCaptions,\n axis: yConfig,\n label: state.yAxis.label ?? \"\",\n width: \"hug\",\n height: \"fill\",\n }) as unknown as Node2D)\n : undefined\n\n const hAxis = built.showXAxis\n ? (new HorizontalAxis({\n range: () => domains().x.range,\n markers: () => domains().x.ticks,\n // A month or category tick is captioned with its cell (`Jan`), not the instant it parsed to.\n captions: () => {\n const column = columnOf(state)\n return domains().x.ticks.map((value) => column.label(value))\n },\n axis: xConfig,\n label: state.xAxis.label ?? \"\",\n overhang: () => ({ left: overhang(style()), right: overhang(style()) }),\n width: \"fill\",\n height: \"hug\",\n }) as unknown as Node2D)\n : undefined\n\n const ghost = vAxis && hAxis\n ? columnGhost({\n captions: yCaptions,\n count: lineChartDomains(state).y.ticks.length,\n text: () => yConfig().labelStyle,\n title: state.yAxis.label ?? \"\",\n titleText: () => yConfig().titleStyle,\n tickPad: () => axisPads(yConfig(), \"right\").tick,\n titlePad: () => axisPads(yConfig(), \"right\").title,\n })\n : undefined\n\n const spotlight = () => regionBox(state, domains(), plotSize())\n const dimOpacity = () => 1 - (1 - SPOTLIGHT_DIM) * state.regionReveal\n const lines = state.series.map((s, i) =>\n new ChartLine({\n points: () => pixels(i).points,\n curve: () => style().curve,\n stroke: () => ({ weight: style().strokeWidth, fill: seriesFill(style(), s, i), align: \"center\", cap: \"round\", join: \"round\" }),\n dotSize: () => (style().dots ? style().dotSize : 0),\n dotFill: () => seriesFill(style(), s, i),\n enabled: enabled[i],\n spotlight,\n dimOpacity,\n })\n )\n const areas = state.series.map((s, i) =>\n new ChartArea({\n points: () => pixels(i).points,\n base: () => pixels(i).base,\n baseline: () => mapper(domains(), plotSize()).y(baselineValue(domains())),\n curve: () => style().curve,\n area: () => style().area,\n fill: () => seriesFill(style(), s, i),\n areaOpacity: () => style().areaOpacity,\n // The line's own trace, switch and fade, so the two arrive, leave and dim as one.\n progress: () => lines[i].progress,\n enabled: () => lines[i].enabled,\n opacity: () => lines[i].opacity,\n spotlight,\n dimOpacity,\n })\n )\n\n const labels: Node2D[] = []\n if (built.values !== \"none\") {\n const below = built.values === \"below\"\n state.series.forEach((_, i) => {\n state.data.forEach((_row, k) => {\n const line = lines[i]\n const label: Node2D = new Text({\n ...boundText(() => valueText(style())),\n text: () => {\n const value = pixels(i).values[k]\n return value === undefined ? \"\" : yLabel(state, value, domains().y.ticks)\n },\n // Held inside the plot, so a figure on an end point does not run into the axis beside it.\n x: () => {\n const half = (plotSize().width - label.layoutBounds.width) / 2\n return clamp(pixels(i).points[k]?.x ?? 0, -Math.max(0, half), Math.max(0, half))\n },\n y: () => {\n const point = pixels(i).points[k]\n const clear = label.layoutBounds.height / 2 + (style().dots ? style().dotSize / 2 : style().strokeWidth / 2) + Math.round(sizeOf(style().valueText) * 0.25)\n return (point?.y ?? 0) + (below ? -clear : clear)\n },\n // In once the trace has passed its point.\n opacity: () => {\n const point = pixels(i).points[k]\n if (!line.enabled || !point) return 0\n const reach = traceX(pixels(i).points, line.progress)\n return line.opacity * (reach === Infinity ? 1 : clamp((reach - point.x) / 24, 0, 1))\n },\n }) as unknown as Node2D\n labels.push(label)\n })\n })\n }\n\n const legendAt = built.legend\n const legend = legendAt !== \"none\"\n ? (new ChartLegend({\n series: state.series,\n swatches: () => state.series.map((s, i) => seriesFill(style(), s, i)),\n legend: () => legendConfigOf(style()),\n flow: legendAt === \"right\" ? \"vertical\" : \"horizontal\",\n }) as unknown as Node2D)\n : undefined\n\n plot = new Rect({\n clip: () => state.clipped || overflows(state, domains()),\n children: [\n new ChartCanvas({\n fill: () => style().gridBackground,\n xGridStroke: () => style().verticalGrid,\n yGridStroke: () => style().horizontalGrid,\n xMarkers: () => domains().x.ticks,\n yMarkers: () => domains().y.ticks,\n xExtent: () => domains().x.range,\n yExtent: () => domains().y.range,\n axisStroke: () => style().axisStroke,\n xAxisAt: () => baselineValue(domains()),\n yAxisAt: () => domains().x.range[0],\n }),\n // Under the marks, so the highlight does not tint the stretch it picks out.\n new ChartRegion({\n box: spotlight,\n stroke: () => ({ weight: 2, fill: fade(style().valueText.fill ?? \"white\", 0.7), dash: [14, 12], cap: \"butt\", align: \"center\" }),\n fill: () => fade(style().valueText.fill ?? \"white\", 0.06),\n reveal: () => state.regionReveal,\n }),\n ...areas,\n ...lines,\n ...labels,\n ],\n }) as unknown as Node2D\n\n return asParts([\n cartesianFrame({\n background: () => style().background,\n left: vAxis,\n ghost,\n plot,\n bottom: hAxis,\n legend,\n legendAt,\n gap: () => frameGap(style()),\n padding: () => ({\n top: headroom(style()),\n right: hAxis ? overhang(style()) : 0,\n left: hAxis && !vAxis ? overhang(style()) : 0,\n bottom: 0,\n }),\n }),\n ])\n },\n commands: {\n /**\n * Axes stagger in, lines (and their areas) trace left to right, the legend\n * fades up last. `duration` is the whole entrance; a chart with a `region`\n * lands its call-out in the final quarter.\n */\n enter: {\n args: {},\n // Held from arrival, so it never shows finished ahead of its draw.\n entrance: true,\n easing: easeOut(),\n run: (timeline, state, children) => {\n const parts = partsOf(children)\n const duration = timeline.duration\n const revealing = hasCallout(state) && state.regionReveal === 0\n const body = revealing ? duration * 0.75 : duration\n const axes = body * ENTER_SHARE.axes\n const traced = body * ENTER_SHARE.marks\n const { legend } = parts\n const at0 = (piece: Beat[\"piece\"]): Beat => ({ at: 0, duration: 0, piece })\n const away = legendAway(state.style.legend)\n // The first frame arms what every later beat moves: a beat ahead of the\n // playhead writes nothing. A beat with nothing to do still takes its share.\n return beats(timeline, [\n ...(revealing ? [at0(timeline.animate(() => ({ regionReveal: 0 })))] : []),\n ...parts.lines.map((line) => at0(line.to({ progress: 0 }))),\n ...(legend ? [at0(legend.to({ opacity: 0, ...away }))] : []),\n ...(parts.vAxis ? [{ at: 0, duration: axes, piece: parts.vAxis.run(\"enter\", { slide: 24 }) }] : []),\n ...(parts.hAxis ? [{ at: 0, duration: axes, piece: parts.hAxis.run(\"enter\", { slide: 24 }) }] : []),\n ...parts.lines.map((line) => ({ at: axes, duration: traced, piece: line.run(\"enter\") })),\n ...(legend ? [{ at: axes + traced, duration: body * ENTER_SHARE.legend, piece: legend.to({ opacity: 1, x: 0, y: 0 }) }] : []),\n ...(revealing ? [{ at: body, duration: duration * 0.25, piece: timeline.animate((t) => ({ regionReveal: t })) }] : []),\n // Takes the whole slot even with no parts to move.\n { at: 0, duration, piece: timeline.wait(duration) },\n ])\n },\n },\n /**\n * Spotlight a slice of the plot in data units; either axis alone is a band.\n * Over a region already up, the old one retracts in the first half and the\n * new one draws in over the second, each half eased on its own.\n */\n spotlightRegion: {\n args: { region: REGION_ARG },\n easing: easeOut(),\n run: (timeline, state) => {\n const region = regionArg(timeline.args.region)\n const from = state.regionReveal\n const previous = state.region\n // A region bounding neither axis is no call-out: spotlighting it is a clear.\n if (region.x === undefined && region.y === undefined) return clearing(timeline, state)\n // Nothing up yet: the region is set from the first frame and just draws on.\n if (from <= 0 || !hasCallout(state)) return timeline.animate((t) => ({ region, regionReveal: from + (1 - from) * t }))\n return timeline.animate(\n (t) => (t < 0.5\n ? { region: previous, regionReveal: from * (1 - timeline.ease(t * 2)) }\n : { region, regionReveal: timeline.ease(t * 2 - 1) }),\n { eased: false }\n )\n },\n },\n /** Drop the call-out. A no-op when nothing is spotlit, which still takes its slot. */\n clearRegion: {\n args: {},\n easing: easeOut(),\n run: (timeline, state) => clearing(timeline, state),\n },\n /** Rescale the named axes so a slice (data units) fills the plot; an omitted axis is left. The first zoom remembers the domain for `resetZoom`. */\n zoomTo: {\n args: { region: REGION_ARG },\n easing: easeOut(),\n run: (timeline, state) => {\n const region = regionArg(timeline.args.region)\n if (!region.x && !region.y) return timeline.wait(timeline.duration)\n const from = lineChartDomains(state)\n const home = state.home ?? from\n const to = {\n ...(region.x && { x: { ...from.x, ...rescale(region.x, from.x.ticks) } }),\n ...(region.y && { y: { ...from.y, ...rescale(region.y, from.y.ticks) } }),\n }\n return timeline.animate((t) => ({ home, clipped: true, ...axesAt(from, to, t) }))\n },\n },\n /** Back to the domain the first zoom left; a hold if it never zoomed. */\n resetZoom: {\n args: {},\n easing: easeOut(),\n run: (timeline, state) => {\n const home = state.home\n if (!home) return timeline.wait(timeline.duration)\n const from = lineChartDomains(state)\n return timeline.animate((t) => ({ home: null, clipped: t < 1, ...axesAt(from, home, t) }))\n },\n },\n /** Bring series `index` in, with its legend entry growing in: traced, or in a stack risen out of the series below. */\n showSeries: {\n args: { seriesIndex: SERIES_ARG },\n easing: easeOut(),\n run: (timeline, state, children) => toggling(timeline, state, children, timeline.args.seriesIndex, true),\n },\n /** The mirror of `showSeries`. */\n hideSeries: {\n args: { seriesIndex: SERIES_ARG },\n easing: easeOut(),\n run: (timeline, state, children) => toggling(timeline, state, children, timeline.args.seriesIndex, false),\n },\n /** Fade every other series, line, area and legend entry, to focus on `index`. The legend dims in place, so the row does not reflow. */\n spotlightSeries: {\n args: { seriesIndex: SERIES_ARG },\n easing: easeOut(),\n run: (timeline, _state, children) => {\n const parts = partsOf(children)\n const index = timeline.args.seriesIndex\n return timeline.together([\n ...parts.lines.map((line, i) => line.to({ opacity: i === index ? 1 : SPOTLIGHT_DIM })),\n ...(parts.legend ? [parts.legend.run(\"spotlightSeries\", { index })] : []),\n timeline.wait(timeline.duration),\n ])\n },\n },\n },\n})\n\nexport type LineChart = NodeOf<typeof LineChart>\n"]}
1
+ {"version":3,"file":"line-chart.js","sourceRoot":"","sources":["../../src/line-chart/line-chart.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Rect,\n Text,\n Types,\n clamp,\n component2d,\n easeOut,\n type ChildView,\n type DataRecord,\n type NodeOf,\n type OutOf,\n // Named so this component's emitted type reaches `Node2D` and its props through the sdk, not core.\n type Node2D,\n type Node2DProps as _Node2DProps,\n type TextStyle as _TextStyle,\n type Fill as _Fill,\n type FillResolved as _FillResolved,\n type Stroke as _Stroke,\n type StrokeResolved as _StrokeResolved,\n type Size2D,\n type StyleInput as _StyleInput,\n type StyleValues as _StyleValues,\n type Vector2,\n} from \"@motionscript/sdk\"\nimport { formatNumber } from \"@motionscript/sdk/component\"\n\nimport { boundText, cartesianFrame, chartViews, columnGhost, fade, frameGap, headroom, laidOutSize, overhang } from \"../kit/cartesian\"\nimport { ChartCanvas } from \"../kit/chart-canvas\"\nimport { ChartLegend } from \"../kit/chart-legend\"\nimport { SERIES_ARG, asParts, fresh } from \"../kit/entries\"\nimport { HorizontalAxis } from \"../kit/horizontal-axis\"\nimport { DEFAULT_MARKERS, ENTER_SHARE, beats, legendAway, type AnyTimeline, type Beat } from \"../kit/motion\"\nimport {\n SPOTLIGHT_DIM,\n formatMarker,\n lerpAxisDomain,\n lerpAxisEntry,\n markerStep,\n markerValues,\n niceRange,\n niceTicks,\n resolveAxisDomain,\n settleAxisDomain,\n type AxisDomainConfig,\n type Range,\n type ResolvedAxisDomain,\n} from \"../kit/shared\"\nimport {\n CARTESIAN_GRID,\n CARTESIAN_AXES,\n CHART_LEGEND,\n CHART_SERIES,\n CHART_STYLE_FAMILY,\n CHART_STYLE_PRESETS,\n GRID_BACKGROUND,\n axisConfigOf,\n legendConfigOf,\n migrateChartStyle,\n seriesFill,\n sizeOf,\n valueText,\n} from \"../kit/style\"\nimport { VerticalAxis, axisPads } from \"../kit/vertical-axis\"\nimport { ChartArea, ChartLine, traceX } from \"./chart-line\"\nimport { ChartRegion } from \"./chart-region\"\nimport {\n LINE_LABELS,\n LINE_MARKS,\n resolveRegionBox,\n stackExtent,\n stackSeries,\n type LineSeries,\n type LineStack,\n type PlotRegion,\n type RegionBox,\n type StackedSeries,\n} from \"./shared\"\nimport { resolveXScale, type XScale } from \"./x-scale\"\n\nconst LINE_STYLE = Types.style(\n CHART_STYLE_FAMILY,\n { series: CHART_SERIES, background: GRID_BACKGROUND, grid: CARTESIAN_GRID, axes: CARTESIAN_AXES, marks: LINE_MARKS, labels: LINE_LABELS, legend: CHART_LEGEND },\n { presets: CHART_STYLE_PRESETS }\n)\n\n/** A line chart's resolved style. */\nexport type LineChartStyle = OutOf<typeof LINE_STYLE>\n\n/** Both axes' domains with their ranges and ticks resolved. */\nexport interface LineChartDomains {\n readonly x: ResolvedAxisDomain\n readonly y: ResolvedAxisDomain\n}\n\n/** What a line chart plots, as its entries hold it. */\nexport interface LineChartValues {\n readonly data: DataRecord[]\n readonly xField: string\n readonly series: LineSeries[]\n readonly stack: LineStack\n readonly xAxis: AxisDomainConfig\n readonly yAxis: AxisDomainConfig\n /** Each series' share of a stack, `1` when missing. */\n readonly weights?: readonly number[]\n /** An area must reach its baseline, so a chart with areas keeps zero on the scale. */\n readonly style?: { readonly area: string }\n}\n\n/** One argument, two controls: the commands take a `PlotRegion`, so the x and y spans a host draws are declared inside it. */\nconst REGION_ARG = Types.custom<PlotRegion | undefined>(undefined, {\n kind: \"region\",\n properties: {\n x: { kind: \"range\", default: true, defaultMin: 0, defaultMax: 100 },\n y: { kind: \"range\", default: false, defaultMin: 0, defaultMax: 100 },\n },\n})\n\n/** What the chart's own commands read: its entries, and the private state they write. */\ninterface LineState extends LineChartValues {\n readonly style: LineChartStyle\n readonly region: PlotRegion | null\n readonly regionReveal: number\n readonly home: LineChartDomains | null\n readonly weights: number[]\n}\n\n/** The share of the y axis a percent stack reads to. */\nconst PERCENT: Range = [0, 100]\n\n/** What the x column is (a number, an instant, or a place in the file), and so how rows are positioned, ticked and captioned. */\nfunction columnOf(s: LineChartValues, format = s.xAxis.format): XScale {\n return resolveXScale(s.data, s.xField, format)\n}\n\n/** Every series as drawn; `weighted` false reads each at full share, as the scale does so the ticks hold still while a series sinks out. */\nfunction stacksOf(s: LineChartValues, weighted = true): StackedSeries[] {\n return stackSeries(s.data, columnOf(s), s.series, s.stack, weighted ? s.weights : undefined)\n}\n\n/** The explicit range and ticks, else the column's extent and ticks: only a numeric column has round numbers between its samples. */\nfunction drawnX(s: LineChartValues, domain: AxisDomainConfig): AxisDomainConfig {\n const column = columnOf(s, domain.format)\n const range = domain.range ?? column.extent\n return { ...domain, range, ticks: domain.ticks ?? column.ticks(range, DEFAULT_MARKERS - 1) }\n}\n\n/** The y range the data asks for: a percent stack reads to 100; areas and stacks keep zero on the scale. */\nfunction autoY(s: LineChartValues, divisions: number): Range {\n const [lo, hi] = stackExtent(stacksOf(s, false))\n if (s.stack === \"percent\" && lo >= 0) return PERCENT\n const zero = s.stack !== \"none\" || (s.style?.area ?? \"none\") !== \"none\"\n return niceRange(zero ? [Math.min(0, lo), Math.max(0, hi)] : [lo, hi], divisions)\n}\n\n/** Auto-ranging steps into one fewer segment than the marker count, so the tidy bounds frame the ticks drawn. */\nfunction drawnY(s: LineChartValues, domain: AxisDomainConfig): AxisDomainConfig {\n const divisions = (domain.ticks?.length ?? DEFAULT_MARKERS) - 1\n const range = domain.range ?? autoY(s, divisions)\n const even = domain.range !== undefined || (s.stack === \"percent\" && range === PERCENT)\n return { ...domain, range, ticks: domain.ticks ?? (even ? markerValues(range, DEFAULT_MARKERS - 1) : niceTicks(range, DEFAULT_MARKERS - 1)) }\n}\n\n/** The last domains worked out from each data array, and what else they were read from. */\nconst domainsDrawn = new WeakMap<DataRecord[], { readonly key: readonly unknown[]; readonly domains: LineChartDomains }>()\n\n/** Both axes as drawn now. */\nexport function lineChartDomains(s: LineChartValues): LineChartDomains {\n const key = [s.xField, s.xAxis, s.yAxis, s.series, s.stack, s.style?.area]\n const kept = domainsDrawn.get(s.data)\n if (kept && kept.key.every((value, i) => value === key[i])) return kept.domains\n const domains = {\n x: settleAxisDomain(s.xAxis, (d) => drawnX(s, d)) as LineChartDomains[\"x\"],\n y: settleAxisDomain(s.yAxis, (d) => drawnY(s, d)) as LineChartDomains[\"y\"],\n }\n domainsDrawn.set(s.data, { key, domains })\n return domains\n}\n\n/** Data to the plot's centred pixel space (origin at its centre, y-up). */\nfunction mapper(domains: LineChartDomains, plot: Size2D) {\n const [xMin, xMax] = domains.x.range\n const [yMin, yMax] = domains.y.range\n return {\n x: (x: number) => (xMax <= xMin ? 0 : ((x - xMin) / (xMax - xMin) - 0.5) * plot.width),\n y: (y: number) => (yMax === yMin ? 0 : ((y - yMin) / (yMax - yMin) - 0.5) * plot.height),\n }\n}\n\ninterface SeriesPixels {\n readonly points: Vector2[]\n /** The line under the series in a stack; empty when it fills to the baseline. */\n readonly base: Vector2[]\n /** What each point reads: its own value, or its share in a percent stack. */\n readonly values: number[]\n}\n\nconst NO_PIXELS: SeriesPixels = { points: [], base: [], values: [] }\n\n/** Series `index` in the plot's centred pixel space. */\nfunction seriesPixels(s: LineChartValues, domains: LineChartDomains, index: number, plot: Size2D): SeriesPixels {\n const stack = stacksOf(s)[index]\n if (!stack) return NO_PIXELS\n const map = mapper(domains, plot)\n const toPx = ([x, y]: [number, number]): Vector2 => ({ x: map.x(x), y: map.y(y) })\n return {\n points: stack.points.map(toPx),\n base: stack.base ? stack.base.map(toPx) : [],\n values: stack.points.map(([, y], k) => y - (stack.base?.[k]?.[1] ?? 0)),\n }\n}\n\n/** Where the areas fill down to: zero, held inside the scale. */\nfunction baselineValue(domains: LineChartDomains): number {\n const [lo, hi] = domains.y.range\n return clamp(0, Math.min(lo, hi), Math.max(lo, hi))\n}\n\n/** Whether anything plotted runs past the scale, so the plot clips it: a zoom, or an author's range narrower than the data. */\nfunction overflows(s: LineChartValues, domains: LineChartDomains): boolean {\n const [ylo, yhi] = stackExtent(stacksOf(s, false))\n const [xlo, xhi] = columnOf(s).extent\n const within = (v: number, [a, b]: Range) => v >= Math.min(a, b) - 1e-9 && v <= Math.max(a, b) + 1e-9\n return !(within(ylo, domains.y.range) && within(yhi, domains.y.range) && within(xlo, domains.x.range) && within(xhi, domains.x.range))\n}\n\n/** `region` in centred pixel space against the live scales, so it travels with a zoom. */\nfunction regionBox(s: LineChartValues & { readonly region: PlotRegion | null }, domains: LineChartDomains, plot: Size2D): RegionBox {\n const { width: w, height: h } = plot\n return resolveRegionBox(s.region, { left: -w / 2, right: w / 2, bottom: -h / 2, top: h / 2 }, domains.x.range, domains.y.range)\n}\n\n/** Whether a call-out is authored, not whether it resolves to pixels: a command is built before the first layout. A region bounding neither axis is none. */\nfunction hasCallout(s: { readonly region: PlotRegion | null }): boolean {\n const region = s.region\n return region != null && (region.x !== undefined || region.y !== undefined)\n}\n\n/** The `region` argument, or `{}`: a command is added before its arguments are filled in. */\nfunction regionArg(region: PlotRegion | null | undefined): PlotRegion {\n return region != null && typeof region === \"object\" ? region : {}\n}\n\n/** A range ordered low to high. */\nfunction span([a, b]: Range): Range {\n return a <= b ? [a, b] : [b, a]\n}\n\n/** Rescale to `range` keeping the tick count, so each marker slides rather than the row popping. */\nfunction rescale(range: Range, ticks: readonly number[]): AxisDomainConfig {\n const to = span(range)\n return { range: to, ticks: markerValues(to, Math.max(2, ticks.length) - 1) }\n}\n\nfunction axesAt(from: LineChartDomains, to: Partial<Record<\"x\" | \"y\", AxisDomainConfig>>, t: number) {\n return {\n ...(to.x && { xAxis: lerpAxisDomain(from.x, to.x, t) }),\n ...(to.y && { yAxis: lerpAxisDomain(from.y, to.y, t) }),\n }\n}\n\n/** A value as the y axis writes it: the author's pattern, a share in a percent stack, else the bare reading at the ticks' precision. */\nfunction yLabel(s: LineChartValues, value: number, ticks: readonly number[]): string {\n const format = s.yAxis.format\n if (format !== undefined) return formatNumber(value, format)\n const text = formatMarker(value, markerStep(ticks))\n return s.stack === \"percent\" ? `${text}%` : text\n}\n\nfunction weightOf(s: { readonly weights: readonly number[] }, index: number): number {\n return Math.max(0, s.weights[index] ?? 1)\n}\n\n/** The parts a line chart's commands drive, found through its children. */\nfunction partsOf(children: readonly ChildView[]) {\n const views = chartViews(children)\n return {\n vAxis: views.find(VerticalAxis.is) ?? null,\n hAxis: views.find(HorizontalAxis.is) ?? null,\n lines: views.filter(ChartLine.is),\n legend: views.find(ChartLegend.is) ?? null,\n }\n}\n\nfunction clearing(timeline: AnyTimeline, state: LineState) {\n const from = state.regionReveal\n const region = state.region\n // Nothing to retract, but the call still takes its slot.\n if (from === 0) return timeline.animate(() => ({ region: null, regionReveal: 0 }), { eased: false })\n // `region` is held until the retraction lands, or there would be nothing left to retract.\n return timeline.animate((t) => (t >= 1 ? { region: null, regionReveal: 0 } : { region, regionReveal: from * (1 - t) }))\n}\n\n/**\n * Show or hide series `index` with its legend entry. Apart, the line retraces;\n * in a stack it sinks into the series below as its share falls to nothing, so\n * the ones above settle rather than leaving a gap.\n */\nfunction toggling(timeline: AnyTimeline, state: LineState, children: readonly ChildView[], index: number, show: boolean) {\n const parts = partsOf(children)\n const line = parts.lines[index]\n if (!line) return timeline.wait(timeline.duration)\n const legend = parts.legend ? [parts.legend.run(show ? \"showSeries\" : \"hideSeries\", { index })] : []\n if (state.stack === \"none\") {\n return timeline.together([line.run(\"enter\", show ? { from: 0, to: 1 } : { from: 1, to: 0 }), ...legend])\n }\n const from = state.series.map((_, i) => weightOf(state, i))\n const start = from[index] ?? 1\n const target = show ? 1 : 0\n return timeline.together([\n timeline.animate((t) => {\n const weights = [...from]\n weights[index] = start + (target - start) * timeline.ease(t)\n return { weights }\n }, { eased: false }),\n line.run(\"hold\", { shown: show }),\n ...legend,\n ])\n}\n\n/**\n * A multi-series line or area chart composed of {@link ChartCanvas}, the value\n * and x axes, {@link ChartRegion}, a {@link ChartArea} and a {@link ChartLine}\n * per series, and {@link ChartLegend}. Every part reads the chart's entries\n * through bindings and maps against the plot panel's own laid-out box.\n *\n * Resting state is the finished chart; `enter` arms every part on its first\n * frame. A `to` of an axis `range` or `ticks` tweens from the domain as drawn\n * (see {@link lerpAxisEntry}), so an auto axis rescales continuously.\n */\nexport const LineChart = component2d({\n key: \"lineChart\",\n state: {\n data: fresh<DataRecord[]>(() => [], { kind: \"dataset\" }),\n // Not `x`: every node already has an `x`, its position.\n xField: \"\",\n series: fresh<LineSeries[]>(() => [], { kind: \"series\" }),\n /** `stacked`: each series sits on the sum of those before it; `percent`: every row reads as shares of 100. */\n stack: Types.oneOf([\"none\", \"stacked\", \"percent\"] as const),\n xAxis: Types.custom<AxisDomainConfig>({}, { resolve: resolveAxisDomain, lerp: lerpAxisEntry }),\n yAxis: Types.custom<AxisDomainConfig>({}, { resolve: resolveAxisDomain, lerp: lerpAxisEntry }),\n style: LINE_STYLE,\n /** The spotlit slice in data units, or `null`. The box snaps; {@link regionReveal} animates it. */\n region: Types.custom<PlotRegion | null>(null),\n /** How far the `region` call-out is drawn in, `[0, 1]`: rules grow, wash fades up, out-of-region stretches fade. */\n regionReveal: 0,\n /** The domain `zoomTo` first left, so `resetZoom` restores it, auto-derived ticks included. */\n home: Types.custom<LineChartDomains | null>(null, { private: true }),\n /** Each series' share of a stack, seeded from `enabled`: a weight rather than a switch, so a hidden series sinks out. */\n weights: Types.custom<number[]>([], { private: true }),\n /** Whether the plot clips its marks, from a zoom's first frame until a reset lands. */\n clipped: Types.boolean(false, { private: true }),\n },\n // A node made of parts that fill would otherwise hug them.\n defaults: {\n width: \"fill\",\n height: \"fill\",\n weights: (state) => state.series.map((s) => ((s.enabled ?? true) ? 1 : 0)),\n },\n migrate: { style: migrateChartStyle(\"cartesian\") },\n allowedChildren: [],\n children: (state) => {\n const style = () => state.style\n const domains = () => lineChartDomains(state)\n let plot: Node2D | undefined\n const plotSize = () => laidOutSize(plot)\n const pixels = (i: number) => seriesPixels(state, domains(), i, plotSize())\n const enabled = state.series.map((s) => s.enabled ?? true)\n const built = state.style\n const yConfig = () => axisConfigOf(style(), \"y\")\n const xConfig = () => axisConfigOf(style(), \"x\")\n const yCaptions = () => {\n const ticks = domains().y.ticks\n return ticks.map((value) => yLabel(state, value, ticks))\n }\n\n // Bound, not snapshotted, so a rescale re-labels and re-places the row as it\n // tweens. The marker *count* is read once, which is why `zoomTo` keeps it.\n const vAxis = built.showYAxis\n ? (new VerticalAxis({\n range: () => domains().y.range,\n markers: () => domains().y.ticks,\n captions: yCaptions,\n axis: yConfig,\n label: state.yAxis.label ?? \"\",\n width: \"hug\",\n height: \"fill\",\n }) as unknown as Node2D)\n : undefined\n\n const hAxis = built.showXAxis\n ? (new HorizontalAxis({\n range: () => domains().x.range,\n markers: () => domains().x.ticks,\n // A month or category tick is captioned with its cell (`Jan`), not the instant it parsed to.\n captions: () => {\n const column = columnOf(state)\n return domains().x.ticks.map((value) => column.label(value))\n },\n axis: xConfig,\n label: state.xAxis.label ?? \"\",\n overhang: () => ({ left: overhang(style()), right: overhang(style()) }),\n width: \"fill\",\n height: \"hug\",\n }) as unknown as Node2D)\n : undefined\n\n const ghost = vAxis && hAxis\n ? columnGhost({\n captions: yCaptions,\n count: lineChartDomains(state).y.ticks.length,\n text: () => yConfig().labelStyle,\n title: state.yAxis.label ?? \"\",\n titleText: () => yConfig().titleStyle,\n tickPad: () => axisPads(yConfig(), \"right\").tick,\n titlePad: () => axisPads(yConfig(), \"right\").title,\n })\n : undefined\n\n const spotlight = () => regionBox(state, domains(), plotSize())\n const dimOpacity = () => 1 - (1 - SPOTLIGHT_DIM) * state.regionReveal\n const lines = state.series.map((s, i) =>\n new ChartLine({\n points: () => pixels(i).points,\n curve: () => style().curve,\n stroke: () => ({ weight: style().strokeWidth, fill: seriesFill(style(), s, i), align: \"center\", cap: \"round\", join: \"round\" }),\n dotSize: () => (style().dots ? style().dotSize : 0),\n dotFill: () => seriesFill(style(), s, i),\n enabled: enabled[i],\n spotlight,\n dimOpacity,\n })\n )\n const areas = state.series.map((s, i) =>\n new ChartArea({\n points: () => pixels(i).points,\n base: () => pixels(i).base,\n baseline: () => mapper(domains(), plotSize()).y(baselineValue(domains())),\n curve: () => style().curve,\n area: () => style().area,\n fill: () => seriesFill(style(), s, i),\n areaOpacity: () => style().areaOpacity,\n // The line's own trace, switch and fade, so the two arrive, leave and dim as one.\n progress: () => lines[i].progress,\n enabled: () => lines[i].enabled,\n opacity: () => lines[i].opacity,\n spotlight,\n dimOpacity,\n })\n )\n\n const labels: Node2D[] = []\n if (built.values !== \"none\") {\n const below = built.values === \"below\"\n state.series.forEach((_, i) => {\n state.data.forEach((_row, k) => {\n const line = lines[i]\n const label: Node2D = new Text({\n ...boundText(() => valueText(style())),\n text: () => {\n const value = pixels(i).values[k]\n return value === undefined ? \"\" : yLabel(state, value, domains().y.ticks)\n },\n // Held inside the plot, so a figure on an end point does not run into the axis beside it.\n x: () => {\n const half = (plotSize().width - label.layoutBounds.width) / 2\n return clamp(pixels(i).points[k]?.x ?? 0, -Math.max(0, half), Math.max(0, half))\n },\n y: () => {\n const point = pixels(i).points[k]\n const clear = label.layoutBounds.height / 2 + (style().dots ? style().dotSize / 2 : style().strokeWidth / 2) + Math.round(sizeOf(style().valueText) * 0.25)\n return (point?.y ?? 0) + (below ? -clear : clear)\n },\n // In once the trace has passed its point.\n opacity: () => {\n const point = pixels(i).points[k]\n if (!line.enabled || !point) return 0\n const reach = traceX(pixels(i).points, line.progress)\n return line.opacity * (reach === Infinity ? 1 : clamp((reach - point.x) / 24, 0, 1))\n },\n }) as unknown as Node2D\n labels.push(label)\n })\n })\n }\n\n const legendAt = built.legend\n const legend = legendAt !== \"none\"\n ? (new ChartLegend({\n series: state.series,\n swatches: () => state.series.map((s, i) => seriesFill(style(), s, i)),\n legend: () => legendConfigOf(style()),\n flow: legendAt === \"right\" ? \"vertical\" : \"horizontal\",\n }) as unknown as Node2D)\n : undefined\n\n plot = new Rect({\n clip: () => state.clipped || overflows(state, domains()),\n children: [\n new ChartCanvas({\n fill: () => style().gridBackground,\n xGridStroke: () => style().verticalGrid,\n yGridStroke: () => style().horizontalGrid,\n xMarkers: () => domains().x.ticks,\n yMarkers: () => domains().y.ticks,\n xExtent: () => domains().x.range,\n yExtent: () => domains().y.range,\n axisStroke: () => style().axisStroke,\n xAxisAt: () => baselineValue(domains()),\n yAxisAt: () => domains().x.range[0],\n }),\n // Under the marks, so the highlight does not tint the stretch it picks out.\n new ChartRegion({\n box: spotlight,\n stroke: () => ({ weight: 2, fill: fade(style().valueText.fill ?? \"white\", 0.7), dash: [14, 12], cap: \"butt\", align: \"center\" }),\n fill: () => fade(style().valueText.fill ?? \"white\", 0.06),\n reveal: () => state.regionReveal,\n }),\n ...areas,\n ...lines,\n ...labels,\n ],\n }) as unknown as Node2D\n\n return asParts([\n cartesianFrame({\n background: () => style().background,\n left: vAxis,\n ghost,\n plot,\n bottom: hAxis,\n legend,\n legendAt,\n gap: () => frameGap(style()),\n padding: () => ({\n top: headroom(style()),\n right: hAxis ? overhang(style()) : 0,\n left: hAxis && !vAxis ? overhang(style()) : 0,\n bottom: 0,\n }),\n }),\n ])\n },\n commands: {\n /**\n * Axes stagger in, lines (and their areas) trace left to right, the legend\n * fades up last. `duration` is the whole entrance; a chart with a `region`\n * lands its call-out in the final quarter.\n */\n enter: {\n args: {},\n // Held from arrival, so it never shows finished ahead of its draw.\n entrance: true,\n easing: easeOut(),\n run: (timeline, state, children) => {\n const parts = partsOf(children)\n const duration = timeline.duration\n const revealing = hasCallout(state) && state.regionReveal === 0\n const body = revealing ? duration * 0.75 : duration\n const axes = body * ENTER_SHARE.axes\n const traced = body * ENTER_SHARE.marks\n const { legend } = parts\n const at0 = (piece: Beat[\"piece\"]): Beat => ({ at: 0, duration: 0, piece })\n const away = legendAway(state.style.legend)\n // The first frame arms what every later beat moves: a beat ahead of the\n // playhead writes nothing. A beat with nothing to do still takes its share.\n return beats(timeline, [\n ...(revealing ? [at0(timeline.animate(() => ({ regionReveal: 0 })))] : []),\n ...parts.lines.map((line) => at0(line.to({ progress: 0 }))),\n ...(legend ? [at0(legend.to({ opacity: 0, ...away }))] : []),\n ...(parts.vAxis ? [{ at: 0, duration: axes, piece: parts.vAxis.run(\"enter\", { slide: 24 }) }] : []),\n ...(parts.hAxis ? [{ at: 0, duration: axes, piece: parts.hAxis.run(\"enter\", { slide: 24 }) }] : []),\n ...parts.lines.map((line) => ({ at: axes, duration: traced, piece: line.run(\"enter\") })),\n ...(legend ? [{ at: axes + traced, duration: body * ENTER_SHARE.legend, piece: legend.to({ opacity: 1, x: 0, y: 0 }) }] : []),\n ...(revealing ? [{ at: body, duration: duration * 0.25, piece: timeline.animate((t) => ({ regionReveal: t })) }] : []),\n // Takes the whole slot even with no parts to move.\n { at: 0, duration, piece: timeline.wait(duration) },\n ])\n },\n },\n /**\n * Spotlight a slice of the plot in data units; either axis alone is a band.\n * Over a region already up, the old one retracts in the first half and the\n * new one draws in over the second, each half eased on its own.\n */\n spotlightRegion: {\n args: { region: REGION_ARG },\n easing: easeOut(),\n run: (timeline, state) => {\n const region = regionArg(timeline.args.region)\n const from = state.regionReveal\n const previous = state.region\n // A region bounding neither axis is no call-out: spotlighting it is a clear.\n if (region.x === undefined && region.y === undefined) return clearing(timeline, state)\n // Nothing up yet: the region is set from the first frame and just draws on.\n if (from <= 0 || !hasCallout(state)) return timeline.animate((t) => ({ region, regionReveal: from + (1 - from) * t }))\n return timeline.animate(\n (t) => (t < 0.5\n ? { region: previous, regionReveal: from * (1 - timeline.ease(t * 2)) }\n : { region, regionReveal: timeline.ease(t * 2 - 1) }),\n { eased: false }\n )\n },\n },\n /** Drop the call-out. A no-op when nothing is spotlit, which still takes its slot. */\n clearRegion: {\n args: {},\n easing: easeOut(),\n run: (timeline, state) => clearing(timeline, state),\n },\n /** Rescale the named axes so a slice (data units) fills the plot; an omitted axis is left. The first zoom remembers the domain for `resetZoom`. */\n zoomTo: {\n args: { region: REGION_ARG },\n easing: easeOut(),\n run: (timeline, state) => {\n const region = regionArg(timeline.args.region)\n if (!region.x && !region.y) return timeline.wait(timeline.duration)\n const from = lineChartDomains(state)\n const home = state.home ?? from\n const to = {\n ...(region.x && { x: { ...from.x, ...rescale(region.x, from.x.ticks) } }),\n ...(region.y && { y: { ...from.y, ...rescale(region.y, from.y.ticks) } }),\n }\n return timeline.animate((t) => ({ home, clipped: true, ...axesAt(from, to, t) }))\n },\n },\n /** Back to the domain the first zoom left; a hold if it never zoomed. */\n resetZoom: {\n args: {},\n easing: easeOut(),\n run: (timeline, state) => {\n const home = state.home\n if (!home) return timeline.wait(timeline.duration)\n const from = lineChartDomains(state)\n return timeline.animate((t) => ({ home: null, clipped: t < 1, ...axesAt(from, home, t) }))\n },\n },\n /** Bring series `index` in, with its legend entry growing in: traced, or in a stack risen out of the series below. */\n showSeries: {\n args: { seriesIndex: SERIES_ARG },\n easing: easeOut(),\n run: (timeline, state, children) => toggling(timeline, state, children, timeline.args.seriesIndex, true),\n },\n /** The mirror of `showSeries`. */\n hideSeries: {\n args: { seriesIndex: SERIES_ARG },\n easing: easeOut(),\n run: (timeline, state, children) => toggling(timeline, state, children, timeline.args.seriesIndex, false),\n },\n /** Fade every other series, line, area and legend entry, to focus on `index`. The legend dims in place, so the row does not reflow. */\n spotlightSeries: {\n args: { seriesIndex: SERIES_ARG },\n easing: easeOut(),\n run: (timeline, _state, children) => {\n const parts = partsOf(children)\n const index = timeline.args.seriesIndex\n return timeline.together([\n ...parts.lines.map((line, i) => line.to({ opacity: i === index ? 1 : SPOTLIGHT_DIM })),\n ...(parts.legend ? [parts.legend.run(\"spotlightSeries\", { index })] : []),\n timeline.wait(timeline.duration),\n ])\n },\n },\n },\n})\n\nexport type LineChart = NodeOf<typeof LineChart>\n"]}
@@ -1,4 +1,4 @@
1
- import { type DataRecord, type Vector2 } from "@motionscript/sdk";
1
+ import { type DataRecord, type Vector2, type TextStyle as _TextStyle } from "@motionscript/sdk";
2
2
  import { type ChartSeries, type Range } from "../kit/shared.js";
3
3
  import type { XScale } from "./x-scale.js";
4
4
  /** One polyline of a {@link LineChart}: {@link ChartSeries} under the name for what it draws here. */
@@ -108,6 +108,7 @@ export declare const LINE_MARKS: {
108
108
  areaOpacity: import("@motionscript/sdk").Type<number, number, false>;
109
109
  };
110
110
  export declare const LINE_LABELS: {
111
+ valueText: import("@motionscript/sdk").Type<_TextStyle, _TextStyle, false>;
111
112
  /** Read as the chart is built: each point's value printed above or below it, or none. */
112
113
  values: import("@motionscript/sdk").Type<"none" | "above" | "below", "none" | "above" | "below", false>;
113
114
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/line-chart/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/line-chart/shared.ts"],"names":[],"mappings":"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"}