svelteplot 0.10.3 → 0.11.0-pr-514.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 (229) 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 +70 -36
  8. package/dist/helpers/arrowPath.js +10 -5
  9. package/dist/helpers/autoScales.d.ts +3 -3
  10. package/dist/helpers/autoScales.js +28 -18
  11. package/dist/helpers/autoTicks.js +2 -0
  12. package/dist/helpers/callWithProps.d.ts +1 -2
  13. package/dist/helpers/colors.d.ts +4 -4
  14. package/dist/helpers/facets.d.ts +42 -1
  15. package/dist/helpers/facets.js +83 -1
  16. package/dist/helpers/index.js +1 -1
  17. package/dist/helpers/math.js +1 -1
  18. package/dist/helpers/mergeDeep.d.ts +1 -3
  19. package/dist/helpers/mergeDeep.js +15 -16
  20. package/dist/helpers/noise.js +1 -1
  21. package/dist/helpers/projection.d.ts +4 -3
  22. package/dist/helpers/projection.js +17 -5
  23. package/dist/helpers/reduce.d.ts +4 -4
  24. package/dist/helpers/reduce.js +6 -4
  25. package/dist/helpers/regressionLoess.js +2 -1
  26. package/dist/helpers/resolve.d.ts +6 -3
  27. package/dist/helpers/resolve.js +25 -16
  28. package/dist/helpers/roundedRect.js +1 -1
  29. package/dist/helpers/scales.d.ts +11 -10
  30. package/dist/helpers/scales.js +43 -13
  31. package/dist/helpers/time.d.ts +10 -3
  32. package/dist/helpers/time.js +2 -1
  33. package/dist/hooks/index.d.ts +2 -0
  34. package/dist/hooks/index.js +2 -0
  35. package/dist/hooks/plotDefaults.d.ts +3 -1
  36. package/dist/hooks/plotDefaults.js +33 -1
  37. package/dist/hooks/usePlot.svelte.d.ts +10 -25
  38. package/dist/hooks/usePlot.svelte.js +8 -7
  39. package/dist/index.d.ts +1 -2
  40. package/dist/index.js +1 -3
  41. package/dist/marks/Area.svelte +24 -13
  42. package/dist/marks/Area.svelte.d.ts +118 -34
  43. package/dist/marks/AreaX.svelte +42 -8
  44. package/dist/marks/AreaX.svelte.d.ts +154 -71
  45. package/dist/marks/AreaY.svelte +42 -8
  46. package/dist/marks/AreaY.svelte.d.ts +154 -71
  47. package/dist/marks/Arrow.svelte +42 -23
  48. package/dist/marks/Arrow.svelte.d.ts +114 -35
  49. package/dist/marks/AxisX.svelte +43 -28
  50. package/dist/marks/AxisX.svelte.d.ts +125 -40
  51. package/dist/marks/AxisY.svelte +43 -26
  52. package/dist/marks/AxisY.svelte.d.ts +127 -40
  53. package/dist/marks/BarX.svelte +12 -10
  54. package/dist/marks/BarX.svelte.d.ts +104 -32
  55. package/dist/marks/BarY.svelte +11 -10
  56. package/dist/marks/BarY.svelte.d.ts +106 -34
  57. package/dist/marks/BollingerX.svelte +4 -7
  58. package/dist/marks/BollingerX.svelte.d.ts +105 -30
  59. package/dist/marks/BollingerY.svelte +3 -0
  60. package/dist/marks/BollingerY.svelte.d.ts +105 -30
  61. package/dist/marks/BoxX.svelte +3 -3
  62. package/dist/marks/BoxY.svelte +12 -9
  63. package/dist/marks/BoxY.svelte.d.ts +128 -53
  64. package/dist/marks/Brush.svelte +26 -21
  65. package/dist/marks/Brush.svelte.d.ts +119 -60
  66. package/dist/marks/Cell.svelte +13 -9
  67. package/dist/marks/Cell.svelte.d.ts +105 -30
  68. package/dist/marks/CellX.svelte +2 -1
  69. package/dist/marks/CellX.svelte.d.ts +105 -32
  70. package/dist/marks/CellY.svelte +2 -1
  71. package/dist/marks/CellY.svelte.d.ts +105 -32
  72. package/dist/marks/ColorLegend.svelte +24 -13
  73. package/dist/marks/ColorLegend.svelte.d.ts +1 -0
  74. package/dist/marks/CustomMark.svelte +16 -10
  75. package/dist/marks/CustomMark.svelte.d.ts +112 -31
  76. package/dist/marks/CustomMarkHTML.svelte +8 -2
  77. package/dist/marks/CustomMarkHTML.svelte.d.ts +8 -2
  78. package/dist/marks/DifferenceY.svelte +31 -20
  79. package/dist/marks/DifferenceY.svelte.d.ts +134 -55
  80. package/dist/marks/Dot.svelte +21 -11
  81. package/dist/marks/Dot.svelte.d.ts +117 -38
  82. package/dist/marks/DotX.svelte +2 -0
  83. package/dist/marks/DotX.svelte.d.ts +136 -62
  84. package/dist/marks/DotY.svelte +1 -0
  85. package/dist/marks/DotY.svelte.d.ts +135 -62
  86. package/dist/marks/Frame.svelte +47 -9
  87. package/dist/marks/Frame.svelte.d.ts +124 -41
  88. package/dist/marks/Geo.svelte +21 -12
  89. package/dist/marks/Geo.svelte.d.ts +105 -30
  90. package/dist/marks/Graticule.svelte +3 -0
  91. package/dist/marks/Graticule.svelte.d.ts +3 -0
  92. package/dist/marks/GridX.svelte +31 -16
  93. package/dist/marks/GridX.svelte.d.ts +108 -32
  94. package/dist/marks/GridY.svelte +30 -15
  95. package/dist/marks/GridY.svelte.d.ts +108 -32
  96. package/dist/marks/HTMLTooltip.svelte +37 -27
  97. package/dist/marks/HTMLTooltip.svelte.d.ts +7 -0
  98. package/dist/marks/Image.svelte +50 -25
  99. package/dist/marks/Image.svelte.d.ts +117 -35
  100. package/dist/marks/Line.svelte +67 -44
  101. package/dist/marks/Line.svelte.d.ts +119 -30
  102. package/dist/marks/LineX.svelte +2 -1
  103. package/dist/marks/LineX.svelte.d.ts +142 -69
  104. package/dist/marks/LineY.svelte +2 -1
  105. package/dist/marks/LineY.svelte.d.ts +142 -69
  106. package/dist/marks/Link.svelte +70 -46
  107. package/dist/marks/Link.svelte.d.ts +126 -41
  108. package/dist/marks/Pointer.svelte +46 -35
  109. package/dist/marks/Pointer.svelte.d.ts +7 -0
  110. package/dist/marks/Rect.svelte +13 -5
  111. package/dist/marks/Rect.svelte.d.ts +116 -35
  112. package/dist/marks/RectX.svelte +6 -3
  113. package/dist/marks/RectX.svelte.d.ts +158 -12
  114. package/dist/marks/RectY.svelte +6 -3
  115. package/dist/marks/RectY.svelte.d.ts +158 -12
  116. package/dist/marks/RegressionX.svelte +13 -6
  117. package/dist/marks/RegressionX.svelte.d.ts +8 -3
  118. package/dist/marks/RegressionY.svelte +13 -6
  119. package/dist/marks/RegressionY.svelte.d.ts +8 -3
  120. package/dist/marks/RuleX.svelte +18 -11
  121. package/dist/marks/RuleX.svelte.d.ts +112 -32
  122. package/dist/marks/RuleY.svelte +19 -12
  123. package/dist/marks/RuleY.svelte.d.ts +114 -34
  124. package/dist/marks/Spike.svelte +11 -5
  125. package/dist/marks/Spike.svelte.d.ts +146 -68
  126. package/dist/marks/Text.svelte +24 -7
  127. package/dist/marks/Text.svelte.d.ts +253 -75
  128. package/dist/marks/TickX.svelte +56 -48
  129. package/dist/marks/TickX.svelte.d.ts +114 -40
  130. package/dist/marks/TickY.svelte +59 -51
  131. package/dist/marks/TickY.svelte.d.ts +117 -43
  132. package/dist/marks/Trail.svelte +25 -13
  133. package/dist/marks/Trail.svelte.d.ts +116 -33
  134. package/dist/marks/Vector.svelte +20 -11
  135. package/dist/marks/Vector.svelte.d.ts +116 -35
  136. package/dist/marks/WaffleX.svelte +18 -16
  137. package/dist/marks/WaffleX.svelte.d.ts +131 -57
  138. package/dist/marks/WaffleY.svelte +16 -15
  139. package/dist/marks/WaffleY.svelte.d.ts +129 -56
  140. package/dist/marks/helpers/Anchor.svelte +17 -2
  141. package/dist/marks/helpers/Anchor.svelte.d.ts +16 -1
  142. package/dist/marks/helpers/AreaCanvas.svelte +8 -8
  143. package/dist/marks/helpers/BaseAxisX.svelte +38 -41
  144. package/dist/marks/helpers/BaseAxisX.svelte.d.ts +11 -17
  145. package/dist/marks/helpers/BaseAxisY.svelte +35 -35
  146. package/dist/marks/helpers/BaseAxisY.svelte.d.ts +12 -15
  147. package/dist/marks/helpers/Box.svelte +35 -28
  148. package/dist/marks/helpers/Box.svelte.d.ts +122 -50
  149. package/dist/marks/helpers/DotCanvas.svelte +11 -9
  150. package/dist/marks/helpers/GeoCanvas.svelte +7 -6
  151. package/dist/marks/helpers/LineCanvas.svelte +7 -7
  152. package/dist/marks/helpers/LinearGradientX.svelte +2 -2
  153. package/dist/marks/helpers/LinearGradientX.svelte.d.ts +1 -1
  154. package/dist/marks/helpers/LinearGradientY.svelte +2 -2
  155. package/dist/marks/helpers/LinearGradientY.svelte.d.ts +1 -1
  156. package/dist/marks/helpers/Marker.svelte +2 -2
  157. package/dist/marks/helpers/MarkerPath.svelte +15 -12
  158. package/dist/marks/helpers/MarkerPath.svelte.d.ts +105 -32
  159. package/dist/marks/helpers/MultilineText.svelte +24 -17
  160. package/dist/marks/helpers/MultilineText.svelte.d.ts +1 -1
  161. package/dist/marks/helpers/RectCanvas.svelte +31 -26
  162. package/dist/marks/helpers/RectPath.svelte +2 -2
  163. package/dist/marks/helpers/Regression.svelte +176 -86
  164. package/dist/marks/helpers/Regression.svelte.d.ts +20 -8
  165. package/dist/marks/helpers/RuleCanvas.svelte +9 -6
  166. package/dist/marks/helpers/TextCanvas.svelte +13 -9
  167. package/dist/marks/helpers/TextCanvas.svelte.d.ts +6 -6
  168. package/dist/marks/helpers/TickCanvas.svelte +6 -5
  169. package/dist/marks/helpers/TrailCanvas.svelte +16 -18
  170. package/dist/marks/helpers/TrailCanvas.svelte.d.ts +3 -5
  171. package/dist/marks/helpers/canvas.js +16 -9
  172. package/dist/marks/helpers/events.d.ts +2 -2
  173. package/dist/marks/helpers/events.js +14 -7
  174. package/dist/marks/helpers/trail.js +1 -1
  175. package/dist/marks/helpers/waffle.d.ts +3 -3
  176. package/dist/marks/helpers/waffle.js +7 -5
  177. package/dist/regression/polynomial.d.ts +1 -1
  178. package/dist/regression/polynomial.js +7 -7
  179. package/dist/regression/utils/determination.d.ts +1 -1
  180. package/dist/regression/utils/determination.js +1 -1
  181. package/dist/regression/utils/geometry.d.ts +1 -1
  182. package/dist/regression/utils/interpose.d.ts +1 -1
  183. package/dist/regression/utils/interpose.js +1 -1
  184. package/dist/regression/utils/points.d.ts +1 -1
  185. package/dist/transforms/bin.d.ts +3 -3
  186. package/dist/transforms/bin.js +29 -20
  187. package/dist/transforms/bollinger.d.ts +8 -0
  188. package/dist/transforms/bollinger.js +15 -4
  189. package/dist/transforms/centroid.d.ts +4 -0
  190. package/dist/transforms/centroid.js +4 -0
  191. package/dist/transforms/density.d.ts +4 -4
  192. package/dist/transforms/density.js +23 -16
  193. package/dist/transforms/dodge.d.ts +12 -1
  194. package/dist/transforms/dodge.js +15 -6
  195. package/dist/transforms/group.d.ts +141 -4
  196. package/dist/transforms/group.js +4 -1
  197. package/dist/transforms/interval.d.ts +204 -60
  198. package/dist/transforms/jitter.d.ts +421 -4
  199. package/dist/transforms/jitter.js +10 -1
  200. package/dist/transforms/map.d.ts +412 -4
  201. package/dist/transforms/map.js +5 -5
  202. package/dist/transforms/normalize.d.ts +276 -5
  203. package/dist/transforms/normalize.js +6 -4
  204. package/dist/transforms/recordize.d.ts +17 -5
  205. package/dist/transforms/recordize.js +13 -9
  206. package/dist/transforms/rename.d.ts +11 -4
  207. package/dist/transforms/rename.js +7 -2
  208. package/dist/transforms/select.d.ts +722 -210
  209. package/dist/transforms/select.js +13 -1
  210. package/dist/transforms/shift.d.ts +8 -0
  211. package/dist/transforms/shift.js +20 -6
  212. package/dist/transforms/sort.d.ts +13 -258
  213. package/dist/transforms/sort.js +13 -10
  214. package/dist/transforms/stack.d.ts +58 -9
  215. package/dist/transforms/stack.js +27 -11
  216. package/dist/transforms/window.d.ts +221 -66
  217. package/dist/transforms/window.js +8 -2
  218. package/dist/types/axes.d.ts +43 -0
  219. package/dist/types/axes.js +1 -0
  220. package/dist/types/channel.d.ts +30 -2
  221. package/dist/types/data.d.ts +14 -1
  222. package/dist/types/facet.d.ts +5 -0
  223. package/dist/types/index.d.ts +33 -8
  224. package/dist/types/index.js +11 -7
  225. package/dist/types/mark.d.ts +125 -36
  226. package/dist/types/plot.d.ts +118 -16
  227. package/dist/types/scale.d.ts +125 -8
  228. package/package.json +37 -32
  229. package/dist/helpers/autoTicks.d.ts +0 -12
@@ -1,82 +1,167 @@
1
- import type { RawValue, ConstantAccessor } from '../types/index.js';
1
+ import type { RawValue, ConstantAccessor, TickFormatFunction } from '../types/index.js';
2
2
  import type * as CSS from 'csstype';
3
3
  declare function $$render<Datum extends RawValue>(): {
4
4
  props: Omit<Partial<{
5
5
  filter: ConstantAccessor<boolean, Datum>;
6
6
  facet: "auto" | "include" | "exclude";
7
- fx: import("../types/channel").ChannelAccessor<Datum>;
8
- fy: import("../types/channel").ChannelAccessor<Datum>;
7
+ fx: import("../types/channel.js").ChannelAccessor<Datum>;
8
+ fy: import("../types/channel.js").ChannelAccessor<Datum>;
9
9
  dx: ConstantAccessor<number, Datum>;
10
10
  dy: ConstantAccessor<number, Datum>;
11
- dodgeX: import("../transforms/dodge").DodgeXOptions;
12
- dodgeY: import("../transforms/dodge").DodgeYOptions;
13
- fill: import("../types/channel").ChannelAccessor<Datum>;
11
+ dodgeX: import("../transforms/dodge.js").DodgeXOptions;
12
+ dodgeY: import("../transforms/dodge.js").DodgeYOptions;
13
+ fill: import("../types/channel.js").ChannelAccessor<Datum>;
14
14
  fillOpacity: ConstantAccessor<number, Datum>;
15
+ fontFamily: ConstantAccessor<CSS.Property.FontFamily, Datum>;
16
+ fontSize: ConstantAccessor<CSS.Property.FontSize<number>, Datum>;
17
+ fontStyle: ConstantAccessor<CSS.Property.FontStyle, Datum>;
18
+ fontVariant: ConstantAccessor<CSS.Property.FontVariant, Datum>;
19
+ fontWeight: ConstantAccessor<CSS.Property.FontWeight, Datum>;
20
+ letterSpacing: ConstantAccessor<CSS.Property.LetterSpacing<0 | (string & {})>, Datum>;
21
+ wordSpacing: ConstantAccessor<CSS.Property.WordSpacing<0 | (string & {})>, Datum>;
22
+ textAnchor: ConstantAccessor<CSS.Property.TextAnchor, Datum>;
23
+ textTransform: ConstantAccessor<CSS.Property.TextTransform, Datum>;
24
+ textDecoration: ConstantAccessor<CSS.Property.TextDecoration<0 | (string & {})>, Datum>;
15
25
  sort: ((a: RawValue, b: RawValue) => number) | {
16
26
  channel: string;
17
27
  order?: "ascending" | "descending";
18
28
  } | ConstantAccessor<RawValue, Datum>;
19
- stroke: import("../types/channel").ChannelAccessor<Datum>;
29
+ stroke: import("../types/channel.js").ChannelAccessor<Datum>;
20
30
  strokeWidth: ConstantAccessor<number, Datum>;
21
31
  strokeOpacity: ConstantAccessor<number, Datum>;
22
32
  strokeLinejoin: ConstantAccessor<CSS.Property.StrokeLinejoin, Datum>;
23
33
  strokeLinecap: ConstantAccessor<CSS.Property.StrokeLinecap, Datum>;
24
34
  strokeMiterlimit: ConstantAccessor<number, Datum>;
25
- opacity: import("../types/channel").ChannelAccessor<Datum>;
35
+ opacity: import("../types/channel.js").ChannelAccessor<Datum>;
26
36
  strokeDasharray: ConstantAccessor<string, Datum>;
27
37
  strokeDashoffset: ConstantAccessor<number, Datum>;
38
+ blend: ConstantAccessor<CSS.Property.MixBlendMode, Datum>;
28
39
  mixBlendMode: ConstantAccessor<CSS.Property.MixBlendMode, Datum>;
29
40
  clipPath: string;
30
41
  mask: string;
31
42
  imageFilter: ConstantAccessor<string, Datum>;
32
43
  shapeRendering: ConstantAccessor<CSS.Property.ShapeRendering, Datum>;
33
44
  paintOrder: ConstantAccessor<string, Datum>;
34
- onclick: import("svelte/elements").MouseEventHandler<SVGPathElement>;
35
- ondblclick: import("svelte/elements").MouseEventHandler<SVGPathElement>;
36
- onmouseup: import("svelte/elements").MouseEventHandler<SVGPathElement>;
37
- onmousedown: import("svelte/elements").MouseEventHandler<SVGPathElement>;
38
- onmouseenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
39
- onmousemove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
40
- onmouseleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
41
- onmouseout: import("svelte/elements").MouseEventHandler<SVGPathElement>;
42
- onmouseover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
43
- onpointercancel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
44
- onpointerdown: import("svelte/elements").MouseEventHandler<SVGPathElement>;
45
- onpointerup: import("svelte/elements").MouseEventHandler<SVGPathElement>;
46
- onpointerenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
47
- onpointerleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
48
- onpointermove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
49
- onpointerover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
50
- onpointerout: import("svelte/elements").MouseEventHandler<SVGPathElement>;
51
- ondrag: import("svelte/elements").MouseEventHandler<SVGPathElement>;
52
- ondrop: import("svelte/elements").MouseEventHandler<SVGPathElement>;
53
- ondragstart: import("svelte/elements").MouseEventHandler<SVGPathElement>;
54
- ondragenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
55
- ondragleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
56
- ondragover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
57
- ondragend: import("svelte/elements").MouseEventHandler<SVGPathElement>;
58
- ontouchstart: import("svelte/elements").MouseEventHandler<SVGPathElement>;
59
- ontouchmove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
60
- ontouchend: import("svelte/elements").MouseEventHandler<SVGPathElement>;
61
- ontouchcancel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
62
- oncontextmenu: import("svelte/elements").MouseEventHandler<SVGPathElement>;
63
- onwheel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
45
+ onclick: (event: Event & {
46
+ currentTarget: SVGPathElement;
47
+ }, datum: Datum, index: number) => void;
48
+ ondblclick: (event: Event & {
49
+ currentTarget: SVGPathElement;
50
+ }, datum: Datum, index: number) => void;
51
+ onmouseup: (event: Event & {
52
+ currentTarget: SVGPathElement;
53
+ }, datum: Datum, index: number) => void;
54
+ onmousedown: (event: Event & {
55
+ currentTarget: SVGPathElement;
56
+ }, datum: Datum, index: number) => void;
57
+ onmouseenter: (event: Event & {
58
+ currentTarget: SVGPathElement;
59
+ }, datum: Datum, index: number) => void;
60
+ onmousemove: (event: Event & {
61
+ currentTarget: SVGPathElement;
62
+ }, datum: Datum, index: number) => void;
63
+ onmouseleave: (event: Event & {
64
+ currentTarget: SVGPathElement;
65
+ }, datum: Datum, index: number) => void;
66
+ onmouseout: (event: Event & {
67
+ currentTarget: SVGPathElement;
68
+ }, datum: Datum, index: number) => void;
69
+ onmouseover: (event: Event & {
70
+ currentTarget: SVGPathElement;
71
+ }, datum: Datum, index: number) => void;
72
+ onpointercancel: (event: Event & {
73
+ currentTarget: SVGPathElement;
74
+ }, datum: Datum, index: number) => void;
75
+ onpointerdown: (event: Event & {
76
+ currentTarget: SVGPathElement;
77
+ }, datum: Datum, index: number) => void;
78
+ onpointerup: (event: Event & {
79
+ currentTarget: SVGPathElement;
80
+ }, datum: Datum, index: number) => void;
81
+ onpointerenter: (event: Event & {
82
+ currentTarget: SVGPathElement;
83
+ }, datum: Datum, index: number) => void;
84
+ onpointerleave: (event: Event & {
85
+ currentTarget: SVGPathElement;
86
+ }, datum: Datum, index: number) => void;
87
+ onpointermove: (event: Event & {
88
+ currentTarget: SVGPathElement;
89
+ }, datum: Datum, index: number) => void;
90
+ onpointerover: (event: Event & {
91
+ currentTarget: SVGPathElement;
92
+ }, datum: Datum, index: number) => void;
93
+ onpointerout: (event: Event & {
94
+ currentTarget: SVGPathElement;
95
+ }, datum: Datum, index: number) => void;
96
+ ondrag: (event: Event & {
97
+ currentTarget: SVGPathElement;
98
+ }, datum: Datum, index: number) => void;
99
+ ondrop: (event: Event & {
100
+ currentTarget: SVGPathElement;
101
+ }, datum: Datum, index: number) => void;
102
+ ondragstart: (event: Event & {
103
+ currentTarget: SVGPathElement;
104
+ }, datum: Datum, index: number) => void;
105
+ ondragenter: (event: Event & {
106
+ currentTarget: SVGPathElement;
107
+ }, datum: Datum, index: number) => void;
108
+ ondragleave: (event: Event & {
109
+ currentTarget: SVGPathElement;
110
+ }, datum: Datum, index: number) => void;
111
+ ondragover: (event: Event & {
112
+ currentTarget: SVGPathElement;
113
+ }, datum: Datum, index: number) => void;
114
+ ondragend: (event: Event & {
115
+ currentTarget: SVGPathElement;
116
+ }, datum: Datum, index: number) => void;
117
+ ontouchstart: (event: Event & {
118
+ currentTarget: SVGPathElement;
119
+ }, datum: Datum, index: number) => void;
120
+ ontouchmove: (event: Event & {
121
+ currentTarget: SVGPathElement;
122
+ }, datum: Datum, index: number) => void;
123
+ ontouchend: (event: Event & {
124
+ currentTarget: SVGPathElement;
125
+ }, datum: Datum, index: number) => void;
126
+ ontouchcancel: (event: Event & {
127
+ currentTarget: SVGPathElement;
128
+ }, datum: Datum, index: number) => void;
129
+ oncontextmenu: (event: Event & {
130
+ currentTarget: SVGPathElement;
131
+ }, datum: Datum, index: number) => void;
132
+ onwheel: (event: Event & {
133
+ currentTarget: SVGPathElement;
134
+ }, datum: Datum, index: number) => void;
64
135
  class: string;
65
136
  style: string;
66
137
  cursor: ConstantAccessor<CSS.Property.Cursor, Datum>;
67
- }>, "fillOpacity" | "paintOrder" | "href" | "target" | "title"> & {
138
+ title: ConstantAccessor<string, Datum>;
139
+ }>, "fillOpacity" | "textAnchor" | "paintOrder" | "title" | "href" | "target"> & {
140
+ /** custom tick values to display on the axis */
68
141
  data?: Datum[];
142
+ /** whether this axis was automatically added by the Plot component */
69
143
  automatic?: boolean;
144
+ /** the axis title label; set to false or null to hide */
70
145
  title?: string | false | null;
146
+ /** which edge of the plot the axis appears on */
71
147
  anchor?: "top" | "bottom";
148
+ /** the interval between ticks, e.g. "day", "month", or a number */
72
149
  interval?: string | number;
150
+ /** controls which facet edge displays this axis */
73
151
  facetAnchor?: "auto" | "top-empty" | "bottom-empty" | "top" | "bottom";
152
+ /** horizontal alignment of the axis title */
74
153
  labelAnchor?: "auto" | "left" | "center" | "right";
154
+ /** the length of tick marks in pixels */
75
155
  tickSize?: number;
156
+ /** font size for tick labels */
76
157
  tickFontSize?: ConstantAccessor<number, Datum>;
158
+ /** font size for the axis title */
77
159
  titleFontSize?: number;
160
+ /** spacing between tick marks and tick labels in pixels */
78
161
  tickPadding?: number;
79
- tickFormat?: "auto" | Intl.DateTimeFormatOptions | Intl.NumberFormatOptions | ((d: RawValue, i: number) => string);
162
+ /** formatter for tick labels; can be "auto", an Intl format options object, or a custom function */
163
+ tickFormat?: "auto" | Intl.DateTimeFormatOptions | Intl.NumberFormatOptions | TickFormatFunction;
164
+ /** CSS class applied to each tick label */
80
165
  tickClass?: ConstantAccessor<string, Datum>;
81
166
  /** ticks is a shorthand for defining data, tickCount or interval */
82
167
  ticks?: number | string | Datum[];
@@ -10,7 +10,10 @@
10
10
  RawValue,
11
11
  FacetContext,
12
12
  ChannelName,
13
- ConstantAccessor
13
+ ConstantAccessor,
14
+ TickFormatFunction,
15
+ DataRecord,
16
+ ScaledChannelName
14
17
  } from '../types/index.js';
15
18
  import autoTimeFormat from '../helpers/autoTimeFormat.js';
16
19
  import { autoTicks } from '../helpers/autoTicks.js';
@@ -21,26 +24,41 @@
21
24
 
22
25
  interface AxisYMarkProps extends Omit<
23
26
  BaseMarkProps<Datum>,
24
- 'fillOpacity' | 'paintOrder' | 'title' | 'href' | 'target'
27
+ 'fillOpacity' | 'paintOrder' | 'title' | 'href' | 'target' | 'textAnchor'
25
28
  > {
29
+ /** custom tick values to display on the axis */
26
30
  data?: Datum[];
31
+ /** whether this axis was automatically added by the Plot component */
27
32
  automatic?: boolean;
33
+ /** the axis title label; set to false or null to hide */
28
34
  title?: string | false | null;
35
+ /** which edge of the plot the axis appears on */
29
36
  anchor?: 'left' | 'right';
37
+ /** controls which facet edge displays this axis */
30
38
  facetAnchor?: 'auto' | 'left' | 'right' | 'left-empty' | 'right-empty';
39
+ /** vertical alignment of tick labels relative to the tick position */
31
40
  lineAnchor?: 'top' | 'center' | 'bottom';
41
+ /** the interval between ticks, e.g. "day", "month", or a number */
32
42
  interval?: string | number;
43
+ /** horizontal alignment of the axis title */
33
44
  labelAnchor?: 'auto' | 'left' | 'center' | 'right';
45
+ /** text anchor for tick labels */
34
46
  textAnchor?: 'auto' | 'start' | 'middle' | 'end';
47
+ /** the length of tick marks in pixels */
35
48
  tickSize?: number;
49
+ /** font size for tick labels */
36
50
  tickFontSize?: ConstantAccessor<number, Datum>;
51
+ /** font size for the axis title */
37
52
  titleFontSize?: number;
53
+ /** spacing between tick marks and tick labels in pixels */
38
54
  tickPadding?: number;
55
+ /** formatter for tick labels; can be "auto", an Intl format options object, or a custom function */
39
56
  tickFormat?:
40
57
  | 'auto'
41
58
  | Intl.DateTimeFormatOptions
42
59
  | Intl.NumberFormatOptions
43
- | ((d: RawValue) => string);
60
+ | TickFormatFunction;
61
+ /** CSS class applied to each tick label */
44
62
  tickClass?: ConstantAccessor<string, Datum>;
45
63
  /** ticks is a shorthand for defining data, tickCount or interval */
46
64
  ticks?: number | string | Datum[];
@@ -54,7 +72,7 @@
54
72
 
55
73
  let markProps: AxisYMarkProps = $props();
56
74
 
57
- const DEFAULTS: Omit<AxisYMarkProps, 'data' | ChannelName> = {
75
+ const DEFAULTS = {
58
76
  tickSize: 6,
59
77
  tickPadding: 3,
60
78
  tickFontSize: 11,
@@ -68,7 +86,7 @@
68
86
  const { ticks: magicTicks } = $derived({ ...DEFAULTS, ...markProps });
69
87
 
70
88
  const {
71
- data,
89
+ data = [] as Datum[],
72
90
  automatic = false,
73
91
  title,
74
92
  anchor = 'left',
@@ -87,12 +105,12 @@
87
105
  text = true,
88
106
  ...options
89
107
  }: AxisYMarkProps = $derived({
90
- data: Array.isArray(magicTicks) ? magicTicks : [],
108
+ data: (Array.isArray(magicTicks) ? magicTicks : []) as Datum[],
91
109
  tickCount: typeof magicTicks === 'number' ? magicTicks : undefined,
92
110
  interval: typeof magicTicks === 'string' ? magicTicks : undefined,
93
111
  ...DEFAULTS,
94
112
  ...markProps
95
- });
113
+ } as AxisYMarkProps);
96
114
 
97
115
  const plot = usePlot();
98
116
 
@@ -120,15 +138,14 @@
120
138
  );
121
139
 
122
140
  const useCompactNotation = $derived.by(() => {
123
- const range =
124
- extent(plot.scales.y.domain).filter(
125
- (d): d is number => typeof d === 'number' && Number.isFinite(d)
126
- ) ?? [];
127
-
128
- if (range[0] === undefined || range[1] === undefined) return false;
129
- const crossesZero = range[0] <= 0 && range[1] >= 0;
141
+ const numericDomain = plot.scales.y.domain.filter(
142
+ (d): d is number => typeof d === 'number' && Number.isFinite(d)
143
+ );
144
+ if (numericDomain.length < 2) return false;
145
+ const [min, max] = extent(numericDomain) as [number, number];
146
+ const crossesZero = min <= 0 && max >= 0;
130
147
  if (crossesZero) return true;
131
- const magnitudes = range.map((d) =>
148
+ const magnitudes = [min, max].map((d) =>
132
149
  d === 0 ? -Infinity : Math.floor(Math.log10(Math.abs(d)))
133
150
  );
134
151
  return magnitudes[0] !== magnitudes[1];
@@ -140,7 +157,7 @@
140
157
  typeof tickFmt === 'function'
141
158
  ? tickFmt
142
159
  : plot.scales.y.type === 'band' || plot.scales.y.type === 'point'
143
- ? (d) => d
160
+ ? (d: RawValue) => String(d)
144
161
  : plot.scales.y.type === 'time'
145
162
  ? // time scale
146
163
  typeof tickFmt === 'object'
@@ -154,9 +171,9 @@
154
171
  Intl.NumberFormat(plot.options.locale, {
155
172
  // use compact notation if range covers multiple magnitudes
156
173
  ...(useCompactNotation ? { notation: 'compact' } : {}),
157
- ...DEFAULTS.numberFormat,
174
+ ...getPlotDefaults().numberFormat,
158
175
  style: plot.options.y.percent ? 'percent' : 'decimal'
159
- }).format(d)
176
+ }).format(d as number)
160
177
  );
161
178
 
162
179
  const optionsLabel = $derived(plot.options.y.label);
@@ -195,12 +212,12 @@
195
212
  type="axisY"
196
213
  data={data.length ? data.map((tick) => ({ __y: tick })) : []}
197
214
  channels={['y']}
198
- {...{ ...options, y: '__y' }}
215
+ {...{ ...options, y: '__y' } as any}
199
216
  {automatic}>
200
217
  {#if left && top && useTitle}
201
218
  <text
202
219
  style={resolveScaledStyles(
203
- null,
220
+ {} as DataRecord,
204
221
  {
205
222
  opacity: 0.8,
206
223
  ...options,
@@ -209,7 +226,7 @@
209
226
  stroke: null,
210
227
  textAnchor: anchor === 'left' ? 'start' : 'end'
211
228
  },
212
- {},
229
+ {} as Record<ScaledChannelName, boolean>,
213
230
  plot,
214
231
  'fill'
215
232
  )}
@@ -224,7 +241,7 @@
224
241
  class={className}
225
242
  {lineAnchor}
226
243
  options={{
227
- ...options,
244
+ ...(options as any),
228
245
  textAnchor:
229
246
  textAnchor == null || textAnchor === 'auto'
230
247
  ? anchor === 'left'
@@ -234,16 +251,16 @@
234
251
  }}
235
252
  {plot}
236
253
  {text}
237
- {tickClass}
238
- {tickFontSize}
254
+ tickClass={tickClass as ConstantAccessor<string>}
255
+ tickFontSize={tickFontSize as ConstantAccessor<number>}
239
256
  {tickPadding}
240
257
  {ticks}
241
258
  {tickSize}
242
259
  marginLeft={plot.options.marginLeft}
243
260
  scaleFn={plot.scales.y.fn}
244
261
  scaleType={plot.scales.y.type}
245
- tickFormat={useTickFormat}
246
- title={useTitle}
262
+ tickFormat={useTickFormat as TickFormatFunction}
263
+ title={useTitle as string | null}
247
264
  width={plot.facetWidth} />
248
265
  {/if}
249
266
  </Mark>
@@ -1,83 +1,170 @@
1
- import type { RawValue, ConstantAccessor } from '../types/index.js';
1
+ import type { RawValue, ConstantAccessor, TickFormatFunction } from '../types/index.js';
2
2
  declare function $$render<Datum extends RawValue>(): {
3
3
  props: Omit<Partial<{
4
4
  filter: ConstantAccessor<boolean, Datum>;
5
5
  facet: "auto" | "include" | "exclude";
6
- fx: import("../types/channel").ChannelAccessor<Datum>;
7
- fy: import("../types/channel").ChannelAccessor<Datum>;
6
+ fx: import("../types/channel.js").ChannelAccessor<Datum>;
7
+ fy: import("../types/channel.js").ChannelAccessor<Datum>;
8
8
  dx: ConstantAccessor<number, Datum>;
9
9
  dy: ConstantAccessor<number, Datum>;
10
- dodgeX: import("../transforms/dodge").DodgeXOptions;
11
- dodgeY: import("../transforms/dodge").DodgeYOptions;
12
- fill: import("../types/channel").ChannelAccessor<Datum>;
10
+ dodgeX: import("../transforms/dodge.js").DodgeXOptions;
11
+ dodgeY: import("../transforms/dodge.js").DodgeYOptions;
12
+ fill: import("../types/channel.js").ChannelAccessor<Datum>;
13
13
  fillOpacity: ConstantAccessor<number, Datum>;
14
+ fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
15
+ fontSize: ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
16
+ fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
17
+ fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
18
+ fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
19
+ letterSpacing: ConstantAccessor<import("csstype").Property.LetterSpacing<0 | (string & {})>, Datum>;
20
+ wordSpacing: ConstantAccessor<import("csstype").Property.WordSpacing<0 | (string & {})>, Datum>;
21
+ textAnchor: ConstantAccessor<import("csstype").Property.TextAnchor, Datum>;
22
+ textTransform: ConstantAccessor<import("csstype").Property.TextTransform, Datum>;
23
+ textDecoration: ConstantAccessor<import("csstype").Property.TextDecoration<0 | (string & {})>, Datum>;
14
24
  sort: ((a: RawValue, b: RawValue) => number) | {
15
25
  channel: string;
16
26
  order?: "ascending" | "descending";
17
27
  } | ConstantAccessor<RawValue, Datum>;
18
- stroke: import("../types/channel").ChannelAccessor<Datum>;
28
+ stroke: import("../types/channel.js").ChannelAccessor<Datum>;
19
29
  strokeWidth: ConstantAccessor<number, Datum>;
20
30
  strokeOpacity: ConstantAccessor<number, Datum>;
21
31
  strokeLinejoin: ConstantAccessor<import("csstype").Property.StrokeLinejoin, Datum>;
22
32
  strokeLinecap: ConstantAccessor<import("csstype").Property.StrokeLinecap, Datum>;
23
33
  strokeMiterlimit: ConstantAccessor<number, Datum>;
24
- opacity: import("../types/channel").ChannelAccessor<Datum>;
34
+ opacity: import("../types/channel.js").ChannelAccessor<Datum>;
25
35
  strokeDasharray: ConstantAccessor<string, Datum>;
26
36
  strokeDashoffset: ConstantAccessor<number, Datum>;
37
+ blend: ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
27
38
  mixBlendMode: ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
28
39
  clipPath: string;
29
40
  mask: string;
30
41
  imageFilter: ConstantAccessor<string, Datum>;
31
42
  shapeRendering: ConstantAccessor<import("csstype").Property.ShapeRendering, Datum>;
32
43
  paintOrder: ConstantAccessor<string, Datum>;
33
- onclick: import("svelte/elements").MouseEventHandler<SVGPathElement>;
34
- ondblclick: import("svelte/elements").MouseEventHandler<SVGPathElement>;
35
- onmouseup: import("svelte/elements").MouseEventHandler<SVGPathElement>;
36
- onmousedown: import("svelte/elements").MouseEventHandler<SVGPathElement>;
37
- onmouseenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
38
- onmousemove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
39
- onmouseleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
40
- onmouseout: import("svelte/elements").MouseEventHandler<SVGPathElement>;
41
- onmouseover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
42
- onpointercancel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
43
- onpointerdown: import("svelte/elements").MouseEventHandler<SVGPathElement>;
44
- onpointerup: import("svelte/elements").MouseEventHandler<SVGPathElement>;
45
- onpointerenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
46
- onpointerleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
47
- onpointermove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
48
- onpointerover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
49
- onpointerout: import("svelte/elements").MouseEventHandler<SVGPathElement>;
50
- ondrag: import("svelte/elements").MouseEventHandler<SVGPathElement>;
51
- ondrop: import("svelte/elements").MouseEventHandler<SVGPathElement>;
52
- ondragstart: import("svelte/elements").MouseEventHandler<SVGPathElement>;
53
- ondragenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
54
- ondragleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
55
- ondragover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
56
- ondragend: import("svelte/elements").MouseEventHandler<SVGPathElement>;
57
- ontouchstart: import("svelte/elements").MouseEventHandler<SVGPathElement>;
58
- ontouchmove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
59
- ontouchend: import("svelte/elements").MouseEventHandler<SVGPathElement>;
60
- ontouchcancel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
61
- oncontextmenu: import("svelte/elements").MouseEventHandler<SVGPathElement>;
62
- onwheel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
44
+ onclick: (event: Event & {
45
+ currentTarget: SVGPathElement;
46
+ }, datum: Datum, index: number) => void;
47
+ ondblclick: (event: Event & {
48
+ currentTarget: SVGPathElement;
49
+ }, datum: Datum, index: number) => void;
50
+ onmouseup: (event: Event & {
51
+ currentTarget: SVGPathElement;
52
+ }, datum: Datum, index: number) => void;
53
+ onmousedown: (event: Event & {
54
+ currentTarget: SVGPathElement;
55
+ }, datum: Datum, index: number) => void;
56
+ onmouseenter: (event: Event & {
57
+ currentTarget: SVGPathElement;
58
+ }, datum: Datum, index: number) => void;
59
+ onmousemove: (event: Event & {
60
+ currentTarget: SVGPathElement;
61
+ }, datum: Datum, index: number) => void;
62
+ onmouseleave: (event: Event & {
63
+ currentTarget: SVGPathElement;
64
+ }, datum: Datum, index: number) => void;
65
+ onmouseout: (event: Event & {
66
+ currentTarget: SVGPathElement;
67
+ }, datum: Datum, index: number) => void;
68
+ onmouseover: (event: Event & {
69
+ currentTarget: SVGPathElement;
70
+ }, datum: Datum, index: number) => void;
71
+ onpointercancel: (event: Event & {
72
+ currentTarget: SVGPathElement;
73
+ }, datum: Datum, index: number) => void;
74
+ onpointerdown: (event: Event & {
75
+ currentTarget: SVGPathElement;
76
+ }, datum: Datum, index: number) => void;
77
+ onpointerup: (event: Event & {
78
+ currentTarget: SVGPathElement;
79
+ }, datum: Datum, index: number) => void;
80
+ onpointerenter: (event: Event & {
81
+ currentTarget: SVGPathElement;
82
+ }, datum: Datum, index: number) => void;
83
+ onpointerleave: (event: Event & {
84
+ currentTarget: SVGPathElement;
85
+ }, datum: Datum, index: number) => void;
86
+ onpointermove: (event: Event & {
87
+ currentTarget: SVGPathElement;
88
+ }, datum: Datum, index: number) => void;
89
+ onpointerover: (event: Event & {
90
+ currentTarget: SVGPathElement;
91
+ }, datum: Datum, index: number) => void;
92
+ onpointerout: (event: Event & {
93
+ currentTarget: SVGPathElement;
94
+ }, datum: Datum, index: number) => void;
95
+ ondrag: (event: Event & {
96
+ currentTarget: SVGPathElement;
97
+ }, datum: Datum, index: number) => void;
98
+ ondrop: (event: Event & {
99
+ currentTarget: SVGPathElement;
100
+ }, datum: Datum, index: number) => void;
101
+ ondragstart: (event: Event & {
102
+ currentTarget: SVGPathElement;
103
+ }, datum: Datum, index: number) => void;
104
+ ondragenter: (event: Event & {
105
+ currentTarget: SVGPathElement;
106
+ }, datum: Datum, index: number) => void;
107
+ ondragleave: (event: Event & {
108
+ currentTarget: SVGPathElement;
109
+ }, datum: Datum, index: number) => void;
110
+ ondragover: (event: Event & {
111
+ currentTarget: SVGPathElement;
112
+ }, datum: Datum, index: number) => void;
113
+ ondragend: (event: Event & {
114
+ currentTarget: SVGPathElement;
115
+ }, datum: Datum, index: number) => void;
116
+ ontouchstart: (event: Event & {
117
+ currentTarget: SVGPathElement;
118
+ }, datum: Datum, index: number) => void;
119
+ ontouchmove: (event: Event & {
120
+ currentTarget: SVGPathElement;
121
+ }, datum: Datum, index: number) => void;
122
+ ontouchend: (event: Event & {
123
+ currentTarget: SVGPathElement;
124
+ }, datum: Datum, index: number) => void;
125
+ ontouchcancel: (event: Event & {
126
+ currentTarget: SVGPathElement;
127
+ }, datum: Datum, index: number) => void;
128
+ oncontextmenu: (event: Event & {
129
+ currentTarget: SVGPathElement;
130
+ }, datum: Datum, index: number) => void;
131
+ onwheel: (event: Event & {
132
+ currentTarget: SVGPathElement;
133
+ }, datum: Datum, index: number) => void;
63
134
  class: string;
64
135
  style: string;
65
136
  cursor: ConstantAccessor<import("csstype").Property.Cursor, Datum>;
66
- }>, "fillOpacity" | "paintOrder" | "href" | "target" | "title"> & {
137
+ title: ConstantAccessor<string, Datum>;
138
+ }>, "fillOpacity" | "textAnchor" | "paintOrder" | "title" | "href" | "target"> & {
139
+ /** custom tick values to display on the axis */
67
140
  data?: Datum[];
141
+ /** whether this axis was automatically added by the Plot component */
68
142
  automatic?: boolean;
143
+ /** the axis title label; set to false or null to hide */
69
144
  title?: string | false | null;
145
+ /** which edge of the plot the axis appears on */
70
146
  anchor?: "left" | "right";
147
+ /** controls which facet edge displays this axis */
71
148
  facetAnchor?: "auto" | "left" | "right" | "left-empty" | "right-empty";
149
+ /** vertical alignment of tick labels relative to the tick position */
72
150
  lineAnchor?: "top" | "center" | "bottom";
151
+ /** the interval between ticks, e.g. "day", "month", or a number */
73
152
  interval?: string | number;
153
+ /** horizontal alignment of the axis title */
74
154
  labelAnchor?: "auto" | "left" | "center" | "right";
155
+ /** text anchor for tick labels */
75
156
  textAnchor?: "auto" | "start" | "middle" | "end";
157
+ /** the length of tick marks in pixels */
76
158
  tickSize?: number;
159
+ /** font size for tick labels */
77
160
  tickFontSize?: ConstantAccessor<number, Datum>;
161
+ /** font size for the axis title */
78
162
  titleFontSize?: number;
163
+ /** spacing between tick marks and tick labels in pixels */
79
164
  tickPadding?: number;
80
- tickFormat?: "auto" | Intl.DateTimeFormatOptions | Intl.NumberFormatOptions | ((d: RawValue) => string);
165
+ /** formatter for tick labels; can be "auto", an Intl format options object, or a custom function */
166
+ tickFormat?: "auto" | Intl.DateTimeFormatOptions | Intl.NumberFormatOptions | TickFormatFunction;
167
+ /** CSS class applied to each tick label */
81
168
  tickClass?: ConstantAccessor<string, Datum>;
82
169
  /** ticks is a shorthand for defining data, tickCount or interval */
83
170
  ticks?: number | string | Datum[];