@uwdata/mosaic-spec 0.7.1 → 0.8.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 (154) hide show
  1. package/dist/mosaic-schema.json +186153 -0
  2. package/dist/mosaic-spec.js +2977 -4237
  3. package/dist/mosaic-spec.min.js +23 -23
  4. package/dist/types/ast/ASTNode.d.ts +26 -0
  5. package/dist/types/ast/DataNode.d.ts +60 -0
  6. package/dist/types/ast/ExpressionNode.d.ts +15 -0
  7. package/dist/types/ast/HConcatNode.d.ts +10 -0
  8. package/dist/types/ast/HSpaceNode.d.ts +11 -0
  9. package/dist/types/ast/InputNode.d.ts +8 -0
  10. package/dist/types/ast/LiteralNode.d.ts +7 -0
  11. package/dist/types/ast/OptionsNode.d.ts +10 -0
  12. package/dist/types/ast/ParamNode.d.ts +9 -0
  13. package/dist/types/ast/ParamRefNode.d.ts +8 -0
  14. package/dist/types/ast/PlotAttributeNode.d.ts +18 -0
  15. package/dist/types/ast/PlotFromNode.d.ts +9 -0
  16. package/dist/types/ast/PlotInteractorNode.d.ts +8 -0
  17. package/dist/types/ast/PlotLegendNode.d.ts +10 -0
  18. package/dist/types/ast/PlotMarkNode.d.ts +10 -0
  19. package/dist/types/ast/PlotNode.d.ts +11 -0
  20. package/dist/types/ast/SelectionNode.d.ts +12 -0
  21. package/dist/types/ast/SpecNode.d.ts +10 -0
  22. package/dist/types/ast/TransformNode.d.ts +13 -0
  23. package/dist/types/ast/VConcatNode.d.ts +10 -0
  24. package/dist/types/ast/VSpaceNode.d.ts +11 -0
  25. package/dist/types/ast-to-dom.d.ts +38 -0
  26. package/dist/types/ast-to-esm.d.ts +64 -0
  27. package/dist/types/config/components.d.ts +4 -0
  28. package/dist/types/config/extensions.d.ts +9 -0
  29. package/dist/types/config/inputs.d.ts +5 -0
  30. package/dist/types/config/plots.d.ts +34 -0
  31. package/dist/types/config/transforms.d.ts +4 -0
  32. package/dist/types/constants.d.ts +30 -0
  33. package/dist/types/index.d.ts +29 -0
  34. package/dist/types/parse-spec.d.ts +86 -0
  35. package/dist/types/spec/CSSStyles.d.ts +3 -0
  36. package/dist/types/spec/Data.d.ts +165 -0
  37. package/dist/types/spec/Expression.d.ts +27 -0
  38. package/dist/types/spec/HConcat.d.ts +8 -0
  39. package/dist/types/spec/HSpace.d.ts +9 -0
  40. package/dist/types/spec/Input.d.ts +182 -0
  41. package/dist/types/spec/Param.d.ts +51 -0
  42. package/dist/types/spec/Plot.d.ts +14 -0
  43. package/dist/types/spec/PlotAttribute.d.ts +1522 -0
  44. package/dist/types/spec/PlotFrom.d.ts +20 -0
  45. package/dist/types/spec/PlotInteractor.d.ts +8 -0
  46. package/dist/types/spec/PlotLegend.d.ts +68 -0
  47. package/dist/types/spec/PlotMark.d.ts +26 -0
  48. package/dist/types/spec/PlotTypes.d.ts +293 -0
  49. package/dist/types/spec/Spec.d.ts +45 -0
  50. package/dist/types/spec/Transform.d.ts +278 -0
  51. package/dist/types/spec/VConcat.d.ts +8 -0
  52. package/dist/types/spec/VSpace.d.ts +9 -0
  53. package/dist/types/spec/interactors/Highlight.d.ts +37 -0
  54. package/dist/types/spec/interactors/Interval1D.d.ts +63 -0
  55. package/dist/types/spec/interactors/Interval2D.d.ts +46 -0
  56. package/dist/types/spec/interactors/Nearest.d.ts +25 -0
  57. package/dist/types/spec/interactors/PanZoom.d.ts +58 -0
  58. package/dist/types/spec/interactors/Toggle.d.ts +51 -0
  59. package/dist/types/spec/marks/Area.d.ts +139 -0
  60. package/dist/types/spec/marks/Arrow.d.ts +94 -0
  61. package/dist/types/spec/marks/Axis.d.ts +281 -0
  62. package/dist/types/spec/marks/Bar.d.ts +150 -0
  63. package/dist/types/spec/marks/Cell.d.ts +57 -0
  64. package/dist/types/spec/marks/Contour.d.ts +23 -0
  65. package/dist/types/spec/marks/Delaunay.d.ts +86 -0
  66. package/dist/types/spec/marks/DenseLine.d.ts +27 -0
  67. package/dist/types/spec/marks/Density.d.ts +121 -0
  68. package/dist/types/spec/marks/Dot.d.ts +129 -0
  69. package/dist/types/spec/marks/Frame.d.ts +21 -0
  70. package/dist/types/spec/marks/Geo.d.ts +53 -0
  71. package/dist/types/spec/marks/Hexbin.d.ts +30 -0
  72. package/dist/types/spec/marks/Hexgrid.d.ts +25 -0
  73. package/dist/types/spec/marks/Image.d.ts +89 -0
  74. package/dist/types/spec/marks/Line.d.ts +82 -0
  75. package/dist/types/spec/marks/Link.d.ts +60 -0
  76. package/dist/types/spec/marks/Marks.d.ts +890 -0
  77. package/dist/types/spec/marks/Raster.d.ts +124 -0
  78. package/dist/types/spec/marks/Rect.d.ts +166 -0
  79. package/dist/types/spec/marks/Regression.d.ts +58 -0
  80. package/dist/types/spec/marks/Rule.d.ts +100 -0
  81. package/dist/types/spec/marks/Text.d.ts +106 -0
  82. package/dist/types/spec/marks/Tick.d.ts +61 -0
  83. package/dist/types/spec/marks/Vector.d.ts +99 -0
  84. package/dist/types/util.d.ts +12 -0
  85. package/jsconfig.json +10 -0
  86. package/package.json +16 -9
  87. package/src/ast/ASTNode.js +23 -2
  88. package/src/ast/DataNode.js +79 -21
  89. package/src/ast/HSpaceNode.js +1 -1
  90. package/src/ast/InputNode.js +1 -2
  91. package/src/ast/ParamNode.js +1 -2
  92. package/src/ast/PlotAttributeNode.js +1 -2
  93. package/src/ast/PlotInteractorNode.js +1 -2
  94. package/src/ast/PlotLegendNode.js +1 -2
  95. package/src/ast/PlotMarkNode.js +3 -2
  96. package/src/ast/TransformNode.js +1 -2
  97. package/src/ast/VSpaceNode.js +1 -1
  98. package/src/ast-to-dom.js +9 -3
  99. package/src/ast-to-esm.js +41 -12
  100. package/src/config/inputs.js +1 -0
  101. package/src/config/plots.js +4 -0
  102. package/src/index.js +4 -0
  103. package/src/parse-spec.js +38 -5
  104. package/src/spec/CSSStyles.ts +9 -0
  105. package/src/spec/Data.ts +184 -0
  106. package/src/spec/Expression.ts +31 -0
  107. package/src/spec/HConcat.ts +9 -0
  108. package/src/spec/HSpace.ts +9 -0
  109. package/src/spec/Input.ts +182 -0
  110. package/src/spec/Param.ts +68 -0
  111. package/src/spec/Plot.ts +15 -0
  112. package/src/spec/PlotAttribute.ts +1783 -0
  113. package/src/spec/PlotFrom.ts +23 -0
  114. package/src/spec/PlotInteractor.ts +25 -0
  115. package/src/spec/PlotLegend.ts +70 -0
  116. package/src/spec/PlotMark.ts +51 -0
  117. package/src/spec/PlotTypes.ts +519 -0
  118. package/src/spec/Spec.ts +63 -0
  119. package/src/spec/Transform.ts +394 -0
  120. package/src/spec/VConcat.ts +9 -0
  121. package/src/spec/VSpace.ts +9 -0
  122. package/src/spec/interactors/Highlight.ts +38 -0
  123. package/src/spec/interactors/Interval1D.ts +67 -0
  124. package/src/spec/interactors/Interval2D.ts +48 -0
  125. package/src/spec/interactors/Nearest.ts +28 -0
  126. package/src/spec/interactors/PanZoom.ts +65 -0
  127. package/src/spec/interactors/Toggle.ts +56 -0
  128. package/src/spec/marks/Area.ts +154 -0
  129. package/src/spec/marks/Arrow.ts +108 -0
  130. package/src/spec/marks/Axis.ts +305 -0
  131. package/src/spec/marks/Bar.ts +160 -0
  132. package/src/spec/marks/Cell.ts +62 -0
  133. package/src/spec/marks/Contour.ts +25 -0
  134. package/src/spec/marks/Delaunay.ts +95 -0
  135. package/src/spec/marks/DenseLine.ts +30 -0
  136. package/src/spec/marks/Density.ts +145 -0
  137. package/src/spec/marks/Dot.ts +147 -0
  138. package/src/spec/marks/Frame.ts +23 -0
  139. package/src/spec/marks/Geo.ts +58 -0
  140. package/src/spec/marks/Hexbin.ts +34 -0
  141. package/src/spec/marks/Hexgrid.ts +27 -0
  142. package/src/spec/marks/Image.ts +101 -0
  143. package/src/spec/marks/Line.ts +93 -0
  144. package/src/spec/marks/Link.ts +70 -0
  145. package/src/spec/marks/Marks.ts +1062 -0
  146. package/src/spec/marks/Raster.ts +145 -0
  147. package/src/spec/marks/Rect.ts +183 -0
  148. package/src/spec/marks/Regression.ts +63 -0
  149. package/src/spec/marks/Rule.ts +113 -0
  150. package/src/spec/marks/Text.ts +122 -0
  151. package/src/spec/marks/Tick.ts +69 -0
  152. package/src/spec/marks/Vector.ts +113 -0
  153. package/src/util.js +8 -0
  154. package/tsconfig.json +11 -0
@@ -0,0 +1,1522 @@
1
+ import { CSSStyles } from './CSSStyles.js';
2
+ import { ParamRef } from './Param.js';
3
+ import { ColorScaleType, ColorScheme, ContinuousScaleType, DiscreteScaleType, Fixed, Interpolate, Interval, PositionScaleType, ProjectionName } from './PlotTypes.js';
4
+ export type LabelArrow = 'auto' | 'up' | 'right' | 'down' | 'left' | 'none' | true | false | null;
5
+ /** Plot attributes. */
6
+ export interface PlotAttributes {
7
+ /**
8
+ * A unique name for the plot. The name is used by standalone legend
9
+ * components to to lookup the plot and access scale mappings.
10
+ */
11
+ name?: string;
12
+ /**
13
+ * The outer width of the plot in pixels, including margins. Defaults to 640.
14
+ * On Observable, this can be set to the built-in [width][1] for full-width
15
+ * responsive plots. Note: the default style has a max-width of 100%; the plot
16
+ * will automatically shrink to fit even when a fixed width is specified.
17
+ *
18
+ * [1]: https://github.com/observablehq/stdlib/blob/main/README.md#width
19
+ */
20
+ width?: number | ParamRef;
21
+ /**
22
+ * The outer height of the plot in pixels, including margins. The default
23
+ * depends on the plot’s scales, and the plot’s width if an aspectRatio is
24
+ * specified. For example, if the *y* scale is linear and there is no *fy*
25
+ * scale, it might be 396.
26
+ */
27
+ height?: number | ParamRef;
28
+ /**
29
+ * The desired aspect ratio of the *x* and *y* scales, affecting the default
30
+ * height. Given an aspect ratio of *dx* / *dy*, and assuming that the *x* and
31
+ * *y* scales represent equivalent units (say, degrees Celsius or meters),
32
+ * computes a default height such that *dx* pixels along *x* represents the
33
+ * same variation as *dy* pixels along *y*. Note: when faceting, set the *fx*
34
+ * and *fy* scales’ **round** option to false for an exact aspect ratio.
35
+ */
36
+ aspectRatio?: number | boolean | null | ParamRef;
37
+ /**
38
+ * Shorthand to set the same default for all four margins: **marginTop**,
39
+ * **marginRight**, **marginBottom**, and **marginLeft**. Otherwise, the
40
+ * default margins depend on the maximum margins of the plot’s marks. While
41
+ * most marks default to zero margins (because they are drawn inside the chart
42
+ * area), Plot’s axis marks have non-zero default margins.
43
+ */
44
+ margin?: number | ParamRef;
45
+ /**
46
+ * The top margin; the distance in pixels between the top edges of the inner
47
+ * and outer plot area. Defaults to the maximum top margin of the plot’s
48
+ * marks.
49
+ */
50
+ marginTop?: number | ParamRef;
51
+ /**
52
+ * The right margin; the distance in pixels between the right edges of the
53
+ * inner and outer plot area. Defaults to the maximum right margin of the
54
+ * plot’s marks.
55
+ */
56
+ marginRight?: number | ParamRef;
57
+ /**
58
+ * The bottom margin; the distance in pixels between the bottom edges of the
59
+ * inner and outer plot area. Defaults to the maximum bottom margin of the
60
+ * plot’s marks.
61
+ */
62
+ marginBottom?: number | ParamRef;
63
+ /**
64
+ * The left margin; the distance in pixels between the left edges of the inner
65
+ * and outer plot area. Defaults to the maximum left margin of the plot’s
66
+ * marks.
67
+ */
68
+ marginLeft?: number | ParamRef;
69
+ /**
70
+ * A shorthand object notation for setting multiple margin values.
71
+ * The object keys are margin names (top, right, etc).
72
+ */
73
+ margins?: {
74
+ top?: number | ParamRef;
75
+ right?: number | ParamRef;
76
+ bottom?: number | ParamRef;
77
+ left?: number | ParamRef;
78
+ };
79
+ /**
80
+ * Shorthand to set the same default for all four insets: **insetTop**,
81
+ * **insetRight**, **insetBottom**, and **insetLeft**. All insets typically
82
+ * default to zero, though not always (say when using bin transform). A
83
+ * positive inset reduces effective area, while a negative inset increases it.
84
+ */
85
+ inset?: number | ParamRef;
86
+ /**
87
+ * Custom styles to override Plot’s defaults. Styles may be specified either
88
+ * as a string of inline styles (*e.g.*, `"color: red;"`, in the same fashion
89
+ * as assigning [*element*.style][1]) or an object of properties (*e.g.*,
90
+ * `{color: "red"}`, in the same fashion as assigning [*element*.style
91
+ * properties][2]). Note that unitless numbers ([quirky lengths][3]) such as
92
+ * `{padding: 20}` may not supported by some browsers; you should instead
93
+ * specify a string with units such as `{padding: "20px"}`. By default, the
94
+ * returned plot has a max-width of 100%, and the system-ui font. Plot’s marks
95
+ * and axes default to [currentColor][4], meaning that they will inherit the
96
+ * surrounding content’s color.
97
+ *
98
+ * [1]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style
99
+ * [2]: https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration
100
+ * [3]: https://www.w3.org/TR/css-values-4/#deprecated-quirky-length
101
+ * [4]: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#currentcolor_keyword
102
+ */
103
+ style?: string | CSSStyles | null | ParamRef;
104
+ /**
105
+ * How to distribute unused space in the **range** for *point* and *band*
106
+ * scales. A number in [0, 1], such as:
107
+ *
108
+ * - 0 - use the start of the range, putting unused space at the end
109
+ * - 0.5 (default) - use the middle, distributing unused space evenly
110
+ * - 1 use the end, putting unused space at the start
111
+ *
112
+ * For ordinal position scales only.
113
+ */
114
+ align?: number | ParamRef;
115
+ /**
116
+ * For *band* scales, how much of the **range** to reserve to separate
117
+ * adjacent bands; defaults to 0.1 (10%). For *point* scales, the amount of
118
+ * inset for the first and last value as a proportion of the bandwidth;
119
+ * defaults to 0.5 (50%).
120
+ *
121
+ * For ordinal position scales only.
122
+ */
123
+ padding?: number | ParamRef;
124
+ /**
125
+ * The side of the frame on which to place the implicit axis: *top* or
126
+ * *bottom* for *x* or *fx*, or *left* or *right* for *y* or *fy*. The default
127
+ * depends on the scale:
128
+ *
129
+ * - *x* - *bottom*
130
+ * - *y* - *left*
131
+ * - *fx* - *top* if there is a *bottom* *x* axis, and otherwise *bottom*
132
+ * - *fy* - *right* if there is a *left* *y* axis, and otherwise *right*
133
+ *
134
+ * If *both*, an implicit axis will be rendered on both sides of the plot
135
+ * (*top* and *bottom* for *x* or *fx*, or *left* and *right* for *y* or
136
+ * *fy*). If null, the implicit axis is suppressed.
137
+ *
138
+ * For position axes only.
139
+ */
140
+ axis?: 'top' | 'right' | 'bottom' | 'left' | 'both' | boolean | null | ParamRef;
141
+ /**
142
+ * Whether to show a grid aligned with the scale’s ticks. If true, show a grid
143
+ * with the currentColor stroke; if a string, show a grid with the specified
144
+ * stroke color; if an approximate number of ticks, an interval, or an array
145
+ * of tick values, show corresponding grid lines. See also the grid mark.
146
+ *
147
+ * For axes only.
148
+ */
149
+ grid?: boolean | string | ParamRef;
150
+ /**
151
+ * A textual label to show on the axis or legend; if null, show no label. By
152
+ * default the scale label is inferred from channel definitions, possibly with
153
+ * an arrow (↑, →, ↓, or ←) to indicate the direction of increasing value.
154
+ *
155
+ * For axes and legends only.
156
+ */
157
+ label?: string | null | ParamRef;
158
+ /**
159
+ * The *x* scale type, affecting how the scale encodes abstract data, say by
160
+ * applying a mathematical transformation. If null, the scale is disabled.
161
+ *
162
+ * For quantitative data (numbers), defaults to *linear*; for temporal data
163
+ * (dates), defaults to *utc*; for ordinal data (strings or booleans),
164
+ * defaults to *point* for position scales, *categorical* for color scales,
165
+ * and otherwise *ordinal*. However, the radius scale defaults to *sqrt*, and
166
+ * the length and opacity scales default to *linear*; these scales are
167
+ * intended for quantitative data. The plot’s marks may also impose a scale
168
+ * type; for example, the barY mark requires that *x* is a *band* scale.
169
+ */
170
+ xScale?: PositionScaleType | null | ParamRef;
171
+ /**
172
+ * The extent of the scale’s inputs (abstract values). By default inferred
173
+ * from channel values. For continuous data (numbers and dates), it is
174
+ * typically [*min*, *max*]; it can be [*max*, *min*] to reverse the scale.
175
+ * For ordinal data (strings or booleans), it is an array (or iterable) of
176
+ * values is the desired order, defaulting to natural ascending order.
177
+ *
178
+ * Linear scales have a default domain of [0, 1]. Log scales have a default
179
+ * domain of [1, 10] and cannot include zero. Radius scales have a default
180
+ * domain from 0 to the median first quartile of associated channels. Length
181
+ * have a default domain from 0 to the median median of associated channels.
182
+ * Opacity scales have a default domain from 0 to the maximum value of
183
+ * associated channels.
184
+ */
185
+ xDomain?: any[] | Fixed | ParamRef;
186
+ /**
187
+ * The extent of the scale’s outputs (visual values). By default inferred from
188
+ * the scale’s **type** and **domain**, and for position scales, the plot’s
189
+ * dimensions. For continuous data (numbers and dates), and for ordinal
190
+ * position scales (*point* and *band*), it is typically [*min*, *max*]; it
191
+ * can be [*max*, *min*] to reverse the scale.
192
+ */
193
+ xRange?: any[] | Fixed | ParamRef;
194
+ /**
195
+ * If true, or a tick count or interval, extend the domain to nice round
196
+ * values. Defaults to 1, 2 or 5 times a power of 10 for *linear* scales, and
197
+ * nice time intervals for *utc* and *time* scales. Pass an interval such as
198
+ * *minute*, *wednesday* or *month* to specify what constitutes a nice
199
+ * interval.
200
+ *
201
+ * For continuous scales only.
202
+ */
203
+ xNice?: boolean | number | Interval | ParamRef;
204
+ /**
205
+ * Shorthand to set the same default for all four insets: **insetTop**,
206
+ * **insetRight**, **insetBottom**, and **insetLeft**. All insets typically
207
+ * default to zero, though not always (say when using bin transform). A
208
+ * positive inset reduces effective area, while a negative inset increases it.
209
+ */
210
+ xInset?: number | ParamRef;
211
+ /**
212
+ * Insets the right edge by the specified number of pixels. A positive value
213
+ * insets towards the left edge (reducing effective area), while a negative
214
+ * value insets away from the left edge (increasing it).
215
+ */
216
+ xInsetRight?: number | ParamRef;
217
+ /**
218
+ * Insets the left edge by the specified number of pixels. A positive value
219
+ * insets towards the right edge (reducing effective area), while a negative
220
+ * value insets away from the right edge (increasing it).
221
+ */
222
+ xInsetLeft?: number | ParamRef;
223
+ /**
224
+ * If true, values below the domain minimum are treated as the domain minimum,
225
+ * and values above the domain maximum are treated as the domain maximum.
226
+ *
227
+ * Clamping is useful for focusing on a subset of the data while ensuring that
228
+ * extreme values remain visible, but use caution: clamped values may need an
229
+ * annotation to avoid misinterpretation. Clamping typically requires setting
230
+ * an explicit **domain** since if the domain is inferred, no values will be
231
+ * outside the domain.
232
+ *
233
+ * For continuous scales only.
234
+ */
235
+ xClamp?: boolean | ParamRef;
236
+ /**
237
+ * If true, round the output value to the nearest integer (pixel); useful for
238
+ * crisp edges when rendering.
239
+ *
240
+ * For position scales only.
241
+ */
242
+ xRound?: boolean | ParamRef;
243
+ /**
244
+ * How to distribute unused space in the **range** for *point* and *band*
245
+ * scales. A number in [0, 1], such as:
246
+ *
247
+ * - 0 - use the start of the range, putting unused space at the end
248
+ * - 0.5 (default) - use the middle, distributing unused space evenly
249
+ * - 1 use the end, putting unused space at the start
250
+ *
251
+ * For ordinal position scales only.
252
+ */
253
+ xAlign?: number | ParamRef;
254
+ /**
255
+ * For *band* scales, how much of the **range** to reserve to separate
256
+ * adjacent bands; defaults to 0.1 (10%). For *point* scales, the amount of
257
+ * inset for the first and last value as a proportion of the bandwidth;
258
+ * defaults to 0.5 (50%).
259
+ *
260
+ * For ordinal position scales only.
261
+ */
262
+ xPadding?: number | ParamRef;
263
+ /**
264
+ * For a *band* scale, how much of the range to reserve to separate
265
+ * adjacent bands.
266
+ */
267
+ xPaddingInner?: number | ParamRef;
268
+ /**
269
+ * For a *band* scale, how much of the range to reserve to inset first and
270
+ * last bands.
271
+ */
272
+ xPaddingOuter?: number | ParamRef;
273
+ /**
274
+ * The side of the frame on which to place the implicit axis: *top* or
275
+ * *bottom* for *x*. Defaults to *bottom* for an *x* scale.
276
+ *
277
+ * If *both*, an implicit axis will be rendered on both sides of the plot
278
+ * (*top* and *bottom* for *x*). If null, the implicit axis is suppressed.
279
+ */
280
+ xAxis?: 'top' | 'bottom' | 'both' | boolean | null | ParamRef;
281
+ /**
282
+ * The desired approximate number of axis ticks, or an explicit array of tick
283
+ * values, or an interval such as *day* or *month*.
284
+ */
285
+ xTicks?: number | Interval | any[] | ParamRef;
286
+ /**
287
+ * The length of axis tick marks in pixels; negative values extend in the
288
+ * opposite direction. Defaults to 6 for *x* and *y* axes and *color* and
289
+ * *opacity* *ramp* legends, and 0 for *fx* and *fy* axes.
290
+ */
291
+ xTickSize?: number | ParamRef;
292
+ /**
293
+ * The desired approximate spacing between adjacent axis ticks, affecting the
294
+ * default **ticks**; defaults to 80 pixels for *x* and *fx*, and 35 pixels
295
+ * for *y* and *fy*.
296
+ */
297
+ xTickSpacing?: number | ParamRef;
298
+ /**
299
+ * The distance between an axis tick mark and its associated text label (in
300
+ * pixels); often defaults to 3, but may be affected by **xTickSize** and
301
+ * **xTickRotate**.
302
+ */
303
+ xTickPadding?: number | ParamRef;
304
+ /**
305
+ * How to format inputs (abstract values) for axis tick labels; one of:
306
+ *
307
+ * - a [d3-format][1] string for numeric scales
308
+ * - a [d3-time-format][2] string for temporal scales
309
+ *
310
+ * [1]: https://d3js.org/d3-time
311
+ * [2]: https://d3js.org/d3-time-format
312
+ */
313
+ xTickFormat?: string | null | ParamRef;
314
+ /**
315
+ * The rotation angle of axis tick labels in degrees clocksize; defaults to 0.
316
+ */
317
+ xTickRotate?: number | ParamRef;
318
+ /**
319
+ * Whether to show a grid aligned with the scale’s ticks. If true, show a grid
320
+ * with the currentColor stroke; if a string, show a grid with the specified
321
+ * stroke color; if an approximate number of ticks, an interval, or an array
322
+ * of tick values, show corresponding grid lines. See also the grid mark.
323
+ *
324
+ * For axes only.
325
+ */
326
+ xGrid?: boolean | string | Interval | any[] | ParamRef;
327
+ /**
328
+ * If true, draw a line along the axis; if false (default), do not.
329
+ */
330
+ xLine?: boolean | ParamRef;
331
+ /**
332
+ * A textual label to show on the axis or legend; if null, show no label. By
333
+ * default the scale label is inferred from channel definitions, possibly with
334
+ * an arrow (↑, →, ↓, or ←) to indicate the direction of increasing value.
335
+ *
336
+ * For axes and legends only.
337
+ */
338
+ xLabel?: string | null | ParamRef;
339
+ /**
340
+ * Where to place the axis **label** relative to the plot’s frame. For
341
+ * vertical position scales (*y* and *fy*), may be *top*, *bottom*, or
342
+ * *center*; for horizontal position scales (*x* and *fx*), may be *left*,
343
+ * *right*, or *center*. Defaults to *center* for ordinal scales (including
344
+ * *fx* and *fy*), and otherwise *top* for *y*, and *right* for *x*.
345
+ */
346
+ xLabelAnchor?: 'top' | 'right' | 'bottom' | 'left' | 'center' | ParamRef;
347
+ /**
348
+ * Whether to apply a directional arrow such as → or ↑ to the x-axis scale
349
+ * label. If *auto* (the default), the presence of the arrow depends on
350
+ * whether the scale is ordinal.
351
+ */
352
+ xLabelArrow?: LabelArrow | ParamRef;
353
+ /**
354
+ * The axis **label** position offset (in pixels); default depends on margins
355
+ * and orientation.
356
+ */
357
+ xLabelOffset?: number | ParamRef;
358
+ /**
359
+ * The font-variant attribute for axis ticks; defaults to *tabular-nums* for
360
+ * quantitative axes.
361
+ */
362
+ xFontVariant?: string | ParamRef;
363
+ /**
364
+ * A short label representing the axis in the accessibility tree.
365
+ */
366
+ xAriaLabel?: string | ParamRef;
367
+ /**
368
+ * A textual description for the axis in the accessibility tree.
369
+ */
370
+ xAriaDescription?: string | ParamRef;
371
+ /**
372
+ * If true, shorthand for a transform suitable for percentages, mapping
373
+ * proportions in [0, 1] to [0, 100].
374
+ */
375
+ xPercent?: boolean | ParamRef;
376
+ /**
377
+ * Whether to reverse the scale’s encoding; equivalent to reversing either the
378
+ * **domain** or **range**.
379
+ */
380
+ xReverse?: boolean | ParamRef;
381
+ /**
382
+ * Whether the **domain** must include zero. If the domain minimum is
383
+ * positive, it will be set to zero; otherwise if the domain maximum is
384
+ * negative, it will be set to zero.
385
+ *
386
+ * For quantitative scales only.
387
+ */
388
+ xZero?: boolean | ParamRef;
389
+ /**
390
+ * A power scale’s exponent (*e.g.*, 0.5 for sqrt); defaults to 1 for a
391
+ * linear scale. For *pow* scales only.
392
+ */
393
+ xExponent?: number | ParamRef;
394
+ /**
395
+ * A log scale’s base; defaults to 10. Does not affect the scale’s encoding,
396
+ * but rather the default ticks. For *log* scales only.
397
+ */
398
+ xBase?: number | ParamRef;
399
+ /**
400
+ * A symlog scale’s constant, expressing the magnitude of the linear region
401
+ * around the origin; defaults to 1. For *symlog* scales only.
402
+ */
403
+ xConstant?: number | ParamRef;
404
+ /**
405
+ * The *y* scale type, affecting how the scale encodes abstract data, say by
406
+ * applying a mathematical transformation. If null, the scale is disabled.
407
+ *
408
+ * For quantitative data (numbers), defaults to *linear*; for temporal data
409
+ * (dates), defaults to *utc*; for ordinal data (strings or booleans),
410
+ * defaults to *point* for position scales, The plot’s marks may also impose
411
+ * a scale type; for example, the barY mark requires that *x* is a *band*
412
+ * scale.
413
+ */
414
+ yScale?: PositionScaleType | null | ParamRef;
415
+ /**
416
+ * The extent of the scale’s inputs (abstract values). By default inferred
417
+ * from channel values. For continuous data (numbers and dates), it is
418
+ * typically [*min*, *max*]; it can be [*max*, *min*] to reverse the scale.
419
+ * For ordinal data (strings or booleans), it is an array (or iterable) of
420
+ * values is the desired order, defaulting to natural ascending order.
421
+ *
422
+ * Linear scales have a default domain of [0, 1]. Log scales have a default
423
+ * domain of [1, 10] and cannot include zero.
424
+ */
425
+ yDomain?: any[] | Fixed | ParamRef;
426
+ /**
427
+ * The extent of the scale’s outputs (visual values). By default inferred
428
+ * from the scale’s **type** and **domain**, and for position scales, the
429
+ * plot’s dimensions. For continuous data (numbers and dates), and for
430
+ * ordinal position scales (*point* and *band*), it is typically [*min*,
431
+ * *max*]; it can be [*max*, *min*] to reverse the scale.
432
+ */
433
+ yRange?: any[] | Fixed | ParamRef;
434
+ /**
435
+ * If true, or a tick count or interval, extend the domain to nice round
436
+ * values. Defaults to 1, 2 or 5 times a power of 10 for *linear* scales, and
437
+ * nice time intervals for *utc* and *time* scales. Pass an interval such as
438
+ * *minute*, *wednesday* or *month* to specify what constitutes a nice
439
+ * interval.
440
+ *
441
+ * For continuous scales only.
442
+ */
443
+ yNice?: boolean | number | Interval | ParamRef;
444
+ /**
445
+ * Shorthand to set the same default for all four insets: **insetTop**,
446
+ * **insetRight**, **insetBottom**, and **insetLeft**. All insets typically
447
+ * default to zero, though not always (say when using bin transform). A
448
+ * positive inset reduces effective area, while a negative inset increases it.
449
+ */
450
+ yInset?: number | ParamRef;
451
+ /**
452
+ * Insets the top edge by the specified number of pixels. A positive value
453
+ * insets towards the bottom edge (reducing effective area), while a negative
454
+ * value insets away from the bottom edge (increasing it).
455
+ */
456
+ yInsetTop?: number | ParamRef;
457
+ /**
458
+ * Insets the bottom edge by the specified number of pixels. A positive value
459
+ * insets towards the top edge (reducing effective area), while a negative
460
+ * value insets away from the top edge (increasing it).
461
+ */
462
+ yInsetBottom?: number | ParamRef;
463
+ /**
464
+ * If true, values below the domain minimum are treated as the domain minimum,
465
+ * and values above the domain maximum are treated as the domain maximum.
466
+ *
467
+ * Clamping is useful for focusing on a subset of the data while ensuring that
468
+ * extreme values remain visible, but use caution: clamped values may need an
469
+ * annotation to avoid misinterpretation. Clamping typically requires setting
470
+ * an explicit **domain** since if the domain is inferred, no values will be
471
+ * outside the domain.
472
+ *
473
+ * For continuous scales only.
474
+ */
475
+ yClamp?: boolean | ParamRef;
476
+ /**
477
+ * If true, round the output value to the nearest integer (pixel); useful for
478
+ * crisp edges when rendering.
479
+ *
480
+ * For position scales only.
481
+ */
482
+ yRound?: boolean | ParamRef;
483
+ /**
484
+ * How to distribute unused space in the **range** for *point* and *band*
485
+ * scales. A number in [0, 1], such as:
486
+ *
487
+ * - 0 - use the start of the range, putting unused space at the end
488
+ * - 0.5 (default) - use the middle, distributing unused space evenly
489
+ * - 1 use the end, putting unused space at the start
490
+ *
491
+ * For ordinal position scales only.
492
+ */
493
+ yAlign?: number | ParamRef;
494
+ /**
495
+ * For *band* scales, how much of the **range** to reserve to separate
496
+ * adjacent bands; defaults to 0.1 (10%). For *point* scales, the amount of
497
+ * inset for the first and last value as a proportion of the bandwidth;
498
+ * defaults to 0.5 (50%).
499
+ *
500
+ * For ordinal position scales only.
501
+ */
502
+ yPadding?: number | ParamRef;
503
+ /**
504
+ * For a *band* scale, how much of the range to reserve to separate
505
+ * adjacent bands.
506
+ */
507
+ yPaddingInner?: number | ParamRef;
508
+ /**
509
+ * For a *band* scale, how much of the range to reserve to inset first and
510
+ * last bands.
511
+ */
512
+ yPaddingOuter?: number | ParamRef;
513
+ /**
514
+ * The side of the frame on which to place the implicit axis: *left* or
515
+ * *right* for *y*. Defaults to *left* for a *y* scale.
516
+ *
517
+ * If *both*, an implicit axis will be rendered on both sides of the plot
518
+ * (*left* and *right* for *y*). If null, the implicit axis is suppressed.
519
+ */
520
+ yAxis?: 'left' | 'right' | 'both' | boolean | null | ParamRef;
521
+ /**
522
+ * The desired approximate number of axis ticks, or an explicit array of tick
523
+ * values, or an interval such as *day* or *month*.
524
+ */
525
+ yTicks?: number | Interval | any[] | ParamRef;
526
+ /**
527
+ * The length of axis tick marks in pixels; negative values extend in the
528
+ * opposite direction. Defaults to 6 for *x* and *y* axes and *color* and
529
+ * *opacity* *ramp* legends, and 0 for *fx* and *fy* axes.
530
+ */
531
+ yTickSize?: number | ParamRef;
532
+ /**
533
+ * The desired approximate spacing between adjacent axis ticks, affecting the
534
+ * default **ticks**; defaults to 80 pixels for *x* and *fx*, and 35 pixels
535
+ * for *y* and *fy*.
536
+ */
537
+ yTickSpacing?: number | ParamRef;
538
+ /**
539
+ * The distance between an axis tick mark and its associated text label (in
540
+ * pixels); often defaults to 3, but may be affected by **yTickSize** and
541
+ * **yTickRotate**.
542
+ */
543
+ yTickPadding?: number | ParamRef;
544
+ /**
545
+ * How to format inputs (abstract values) for axis tick labels; one of:
546
+ *
547
+ * - a [d3-format][1] string for numeric scales
548
+ * - a [d3-time-format][2] string for temporal scales
549
+ *
550
+ * [1]: https://d3js.org/d3-time
551
+ * [2]: https://d3js.org/d3-time-format
552
+ */
553
+ yTickFormat?: string | null | ParamRef;
554
+ /**
555
+ * The rotation angle of axis tick labels in degrees clocksize; defaults to 0.
556
+ */
557
+ yTickRotate?: number | ParamRef;
558
+ /**
559
+ * Whether to show a grid aligned with the scale’s ticks. If true, show a grid
560
+ * with the currentColor stroke; if a string, show a grid with the specified
561
+ * stroke color; if an approximate number of ticks, an interval, or an array
562
+ * of tick values, show corresponding grid lines. See also the grid mark.
563
+ *
564
+ * For axes only.
565
+ */
566
+ yGrid?: boolean | string | Interval | any[] | ParamRef;
567
+ /**
568
+ * If true, draw a line along the axis; if false (default), do not.
569
+ */
570
+ yLine?: boolean | ParamRef;
571
+ /**
572
+ * A textual label to show on the axis or legend; if null, show no label. By
573
+ * default the scale label is inferred from channel definitions, possibly with
574
+ * an arrow (↑, →, ↓, or ←) to indicate the direction of increasing value.
575
+ *
576
+ * For axes and legends only.
577
+ */
578
+ yLabel?: string | null | ParamRef;
579
+ /**
580
+ * Where to place the axis **label** relative to the plot’s frame. For
581
+ * vertical position scales (*y* and *fy*), may be *top*, *bottom*, or
582
+ * *center*; for horizontal position scales (*x* and *fx*), may be *left*,
583
+ * *right*, or *center*. Defaults to *center* for ordinal scales (including
584
+ * *fx* and *fy*), and otherwise *top* for *y*, and *right* for *x*.
585
+ */
586
+ yLabelAnchor?: 'top' | 'right' | 'bottom' | 'left' | 'center' | ParamRef;
587
+ /**
588
+ * Whether to apply a directional arrow such as → or ↑ to the x-axis scale
589
+ * label. If *auto* (the default), the presence of the arrow depends on
590
+ * whether the scale is ordinal.
591
+ */
592
+ yLabelArrow?: LabelArrow | ParamRef;
593
+ /**
594
+ * The axis **label** position offset (in pixels); default depends on margins
595
+ * and orientation.
596
+ */
597
+ yLabelOffset?: number | ParamRef;
598
+ /**
599
+ * The font-variant attribute for axis ticks; defaults to *tabular-nums* for
600
+ * quantitative axes.
601
+ */
602
+ yFontVariant?: string | ParamRef;
603
+ /**
604
+ * A short label representing the axis in the accessibility tree.
605
+ */
606
+ yAriaLabel?: string | ParamRef;
607
+ /**
608
+ * A textual description for the axis in the accessibility tree.
609
+ */
610
+ yAriaDescription?: string | ParamRef;
611
+ /**
612
+ * If true, shorthand for a transform suitable for percentages, mapping
613
+ * proportions in [0, 1] to [0, 100].
614
+ */
615
+ yPercent?: boolean | ParamRef;
616
+ /**
617
+ * Whether to reverse the scale’s encoding; equivalent to reversing either the
618
+ * **domain** or **range**. Note that by default, when the *y* scale is
619
+ * continuous, the *max* value points to the top of the screen, whereas
620
+ * ordinal values are ranked from top to bottom.
621
+ */
622
+ yReverse?: boolean | ParamRef;
623
+ /**
624
+ * Whether the **domain** must include zero. If the domain minimum is
625
+ * positive, it will be set to zero; otherwise if the domain maximum is
626
+ * negative, it will be set to zero.
627
+ *
628
+ * For quantitative scales only.
629
+ */
630
+ yZero?: boolean | ParamRef;
631
+ /**
632
+ * A power scale’s exponent (*e.g.*, 0.5 for sqrt); defaults to 1 for a
633
+ * linear scale. For *pow* scales only.
634
+ */
635
+ yExponent?: number | ParamRef;
636
+ /**
637
+ * A log scale’s base; defaults to 10. Does not affect the scale’s encoding,
638
+ * but rather the default ticks. For *log* scales only.
639
+ */
640
+ yBase?: number | ParamRef;
641
+ /**
642
+ * A symlog scale’s constant, expressing the magnitude of the linear region
643
+ * around the origin; defaults to 1. For *symlog* scales only.
644
+ */
645
+ yConstant?: number | ParamRef;
646
+ /**
647
+ * Set the *x* and *y* scale domains.
648
+ */
649
+ xyDomain?: any[] | Fixed | ParamRef;
650
+ /**
651
+ * Shorthand to set the same default for all four facet margins: marginTop,
652
+ * marginRight, marginBottom, and marginLeft.
653
+ */
654
+ facetMargin?: number | ParamRef;
655
+ /**
656
+ * The top facet margin; the (minimum) distance in pixels between the top
657
+ * edges of the inner and outer plot area.
658
+ */
659
+ facetMarginTop?: number | ParamRef;
660
+ /**
661
+ * The right facet margin; the (minimum) distance in pixels between the right
662
+ * edges of the inner and outer plot area.
663
+ */
664
+ facetMarginBottom?: number | ParamRef;
665
+ /**
666
+ * The bottom facet margin; the (minimum) distance in pixels between the
667
+ * bottom edges of the inner and outer plot area.
668
+ */
669
+ facetMarginLeft?: number | ParamRef;
670
+ /**
671
+ * The left facet margin; the (minimum) distance in pixels between the left
672
+ * edges of the inner and outer plot area.
673
+ */
674
+ facetMarginRight?: number | ParamRef;
675
+ /**
676
+ * Default axis grid for fx and fy scales; typically set to true to enable.
677
+ */
678
+ facetGrid?: boolean | string | Interval | any[] | ParamRef;
679
+ /**
680
+ * Default axis label for fx and fy scales; typically set to null to disable.
681
+ */
682
+ facetLabel?: string | null | ParamRef;
683
+ /**
684
+ * The extent of the scale’s inputs (abstract values). By default inferred
685
+ * from channel values. For ordinal data (strings or booleans), it is an
686
+ * array (or iterable) of values is the desired order, defaulting to natural
687
+ * ascending order.
688
+ */
689
+ fxDomain?: any[] | Fixed | ParamRef;
690
+ /**
691
+ * The extent of the scale’s outputs (visual values). By default inferred from
692
+ * the scale’s **type** and **domain**, and the plot’s dimensions. For ordinal
693
+ * position scales (*point* and *band*), it is typically [*min*, *max*]; it
694
+ * can be [*max*, *min*] to reverse the scale.
695
+ */
696
+ fxRange?: any[] | Fixed | ParamRef;
697
+ /**
698
+ * Shorthand to set the same default for all four insets: **insetTop**,
699
+ * **insetRight**, **insetBottom**, and **insetLeft**. All insets typically
700
+ * default to zero, though not always (say when using bin transform). A
701
+ * positive inset reduces effective area, while a negative inset increases it.
702
+ */
703
+ fxInset?: number | ParamRef;
704
+ /**
705
+ * Insets the right edge by the specified number of pixels. A positive value
706
+ * insets towards the left edge (reducing effective area), while a negative
707
+ * value insets away from the left edge (increasing it).
708
+ */
709
+ fxInsetRight?: number | ParamRef;
710
+ /**
711
+ * Insets the left edge by the specified number of pixels. A positive value
712
+ * insets towards the right edge (reducing effective area), while a negative
713
+ * value insets away from the right edge (increasing it).
714
+ */
715
+ fxInsetLeft?: number | ParamRef;
716
+ /**
717
+ * If true, round the output value to the nearest integer (pixel); useful for
718
+ * crisp edges when rendering.
719
+ *
720
+ * For position scales only.
721
+ */
722
+ fxRound?: boolean | ParamRef;
723
+ /**
724
+ * How to distribute unused space in the **range** for *point* and *band*
725
+ * scales. A number in [0, 1], such as:
726
+ *
727
+ * - 0 - use the start of the range, putting unused space at the end
728
+ * - 0.5 (default) - use the middle, distributing unused space evenly
729
+ * - 1 use the end, putting unused space at the start
730
+ *
731
+ * For ordinal position scales only.
732
+ */
733
+ fxAlign?: number | ParamRef;
734
+ /**
735
+ * For *band* scales, how much of the **range** to reserve to separate
736
+ * adjacent bands; defaults to 0.1 (10%). For *point* scales, the amount of
737
+ * inset for the first and last value as a proportion of the bandwidth;
738
+ * defaults to 0.5 (50%).
739
+ *
740
+ * For ordinal position scales only.
741
+ */
742
+ fxPadding?: number | ParamRef;
743
+ /**
744
+ * For a *band* scale, how much of the range to reserve to separate
745
+ * adjacent bands.
746
+ */
747
+ fxPaddingInner?: number | ParamRef;
748
+ /**
749
+ * For a *band* scale, how much of the range to reserve to inset first and
750
+ * last bands.
751
+ */
752
+ fxPaddingOuter?: number | ParamRef;
753
+ /**
754
+ * The side of the frame on which to place the implicit axis: *top* or
755
+ * *bottom* for *fx*. Defaults to *top* if there is a *bottom* *x* axis,
756
+ * and otherwise *bottom*.
757
+ *
758
+ * If *both*, an implicit axis will be rendered on both sides of the plot
759
+ * (*top* and *bottom* for *fx*). If null, the implicit axis is suppressed.
760
+ */
761
+ fxAxis?: 'top' | 'bottom' | 'both' | boolean | null | ParamRef;
762
+ /**
763
+ * The desired approximate number of axis ticks, or an explicit array of tick
764
+ * values, or an interval such as *day* or *month*.
765
+ */
766
+ fxTicks?: number | Interval | any[] | ParamRef;
767
+ /**
768
+ * The length of axis tick marks in pixels; negative values extend in the
769
+ * opposite direction. Defaults to 6 for *x* and *y* axes and *color* and
770
+ * *opacity* *ramp* legends, and 0 for *fx* and *fy* axes.
771
+ */
772
+ fxTickSize?: number | ParamRef;
773
+ /**
774
+ * The desired approximate spacing between adjacent axis ticks, affecting the
775
+ * default **ticks**; defaults to 80 pixels for *x* and *fx*, and 35 pixels
776
+ * for *y* and *fy*.
777
+ */
778
+ fxTickSpacing?: number | ParamRef;
779
+ /**
780
+ * The distance between an axis tick mark and its associated text label (in
781
+ * pixels); often defaults to 3, but may be affected by **fxTickSize** and
782
+ * **fxTickRotate**.
783
+ */
784
+ fxTickPadding?: number | ParamRef;
785
+ /**
786
+ * How to format inputs (abstract values) for axis tick labels; one of:
787
+ *
788
+ * - a [d3-format][1] string for numeric scales
789
+ * - a [d3-time-format][2] string for temporal scales
790
+ *
791
+ * [1]: https://d3js.org/d3-time
792
+ * [2]: https://d3js.org/d3-time-format
793
+ */
794
+ fxTickFormat?: string | null | ParamRef;
795
+ /**
796
+ * The rotation angle of axis tick labels in degrees clocksize; defaults to 0.
797
+ */
798
+ fxTickRotate?: number | ParamRef;
799
+ /**
800
+ * Whether to show a grid aligned with the scale’s ticks. If true, show a grid
801
+ * with the currentColor stroke; if a string, show a grid with the specified
802
+ * stroke color; if an approximate number of ticks, an interval, or an array
803
+ * of tick values, show corresponding grid lines. See also the grid mark.
804
+ *
805
+ * For axes only.
806
+ */
807
+ fxGrid?: boolean | string | Interval | any[] | ParamRef;
808
+ /**
809
+ * If true, draw a line along the axis; if false (default), do not.
810
+ */
811
+ fxLine?: boolean | ParamRef;
812
+ /**
813
+ * A textual label to show on the axis or legend; if null, show no label. By
814
+ * default the scale label is inferred from channel definitions, possibly with
815
+ * an arrow (↑, →, ↓, or ←) to indicate the direction of increasing value.
816
+ *
817
+ * For axes and legends only.
818
+ */
819
+ fxLabel?: string | null | ParamRef;
820
+ /**
821
+ * Where to place the axis **label** relative to the plot’s frame. For
822
+ * vertical position scales (*y* and *fy*), may be *top*, *bottom*, or
823
+ * *center*; for horizontal position scales (*x* and *fx*), may be *left*,
824
+ * *right*, or *center*. Defaults to *center* for ordinal scales (including
825
+ * *fx* and *fy*), and otherwise *top* for *y*, and *right* for *x*.
826
+ */
827
+ fxLabelAnchor?: 'top' | 'right' | 'bottom' | 'left' | 'center' | ParamRef;
828
+ /**
829
+ * The axis **label** position offset (in pixels); default depends on margins
830
+ * and orientation.
831
+ */
832
+ fxLabelOffset?: number | ParamRef;
833
+ /**
834
+ * The font-variant attribute for axis ticks; defaults to *tabular-nums* for
835
+ * quantitative axes.
836
+ */
837
+ fxFontVariant?: string | ParamRef;
838
+ /**
839
+ * A short label representing the axis in the accessibility tree.
840
+ */
841
+ fxAriaLabel?: string | ParamRef;
842
+ /**
843
+ * A textual description for the axis in the accessibility tree.
844
+ */
845
+ fxAriaDescription?: string | ParamRef;
846
+ /**
847
+ * Whether to reverse the scale’s encoding; equivalent to reversing either the
848
+ * **domain** or **range**.
849
+ */
850
+ fxReverse?: boolean | ParamRef;
851
+ /**
852
+ * The extent of the scale’s inputs (abstract values). By default inferred
853
+ * from channel values. For ordinal data (strings or booleans), it is an
854
+ * array (or iterable) of values is the desired order, defaulting to natural
855
+ * ascending order.
856
+ */
857
+ fyDomain?: any[] | Fixed | ParamRef;
858
+ /**
859
+ * The extent of the scale’s outputs (visual values). By default inferred from
860
+ * the scale’s **type** and **domain**, and the plot’s dimensions. For ordinal
861
+ * position scales (*point* and *band*), it is typically [*min*, *max*]; it
862
+ * can be [*max*, *min*] to reverse the scale.
863
+ */
864
+ fyRange?: any[] | Fixed | ParamRef;
865
+ /**
866
+ * Shorthand to set the same default for all four insets: **insetTop**,
867
+ * **insetRight**, **insetBottom**, and **insetLeft**. All insets typically
868
+ * default to zero, though not always (say when using bin transform). A
869
+ * positive inset reduces effective area, while a negative inset increases it.
870
+ */
871
+ fyInset?: number | ParamRef;
872
+ /**
873
+ * Insets the top edge by the specified number of pixels. A positive value
874
+ * insets towards the bottom edge (reducing effective area), while a negative
875
+ * value insets away from the bottom edge (increasing it).
876
+ */
877
+ fyInsetTop?: number | ParamRef;
878
+ /**
879
+ * Insets the bottom edge by the specified number of pixels. A positive value
880
+ * insets towards the top edge (reducing effective area), while a negative
881
+ * value insets away from the top edge (increasing it).
882
+ */
883
+ fyInsetBottom?: number | ParamRef;
884
+ /**
885
+ * If true, round the output value to the nearest integer (pixel); useful for
886
+ * crisp edges when rendering.
887
+ *
888
+ * For position scales only.
889
+ */
890
+ fyRound?: boolean | ParamRef;
891
+ /**
892
+ * How to distribute unused space in the **range** for *point* and *band*
893
+ * scales. A number in [0, 1], such as:
894
+ *
895
+ * - 0 - use the start of the range, putting unused space at the end
896
+ * - 0.5 (default) - use the middle, distributing unused space evenly
897
+ * - 1 use the end, putting unused space at the start
898
+ *
899
+ * For ordinal position scales only.
900
+ */
901
+ fyAlign?: number | ParamRef;
902
+ /**
903
+ * For *band* scales, how much of the **range** to reserve to separate
904
+ * adjacent bands; defaults to 0.1 (10%). For *point* scales, the amount of
905
+ * inset for the first and last value as a proportion of the bandwidth;
906
+ * defaults to 0.5 (50%).
907
+ *
908
+ * For ordinal position scales only.
909
+ */
910
+ fyPadding?: number | ParamRef;
911
+ /**
912
+ * For a *band* scale, how much of the range to reserve to separate
913
+ * adjacent bands.
914
+ */
915
+ fyPaddingInner?: number | ParamRef;
916
+ /**
917
+ * For a *band* scale, how much of the range to reserve to inset first and
918
+ * last bands.
919
+ */
920
+ fyPaddingOuter?: number | ParamRef;
921
+ /**
922
+ * The side of the frame on which to place the implicit axis: *left* or
923
+ * *right* for *fy*. Defaults to *left* for an *fy* scale.
924
+ *
925
+ * If *both*, an implicit axis will be rendered on both sides of the plot
926
+ * (*left* and *right* for *fy*). If null, the implicit axis is suppressed.
927
+ */
928
+ fyAxis?: 'left' | 'right' | 'both' | boolean | null | ParamRef;
929
+ /**
930
+ * The desired approximate number of axis ticks, or an explicit array of tick
931
+ * values, or an interval such as *day* or *month*.
932
+ */
933
+ fyTicks?: number | Interval | any[] | ParamRef;
934
+ /**
935
+ * The length of axis tick marks in pixels; negative values extend in the
936
+ * opposite direction. Defaults to 6 for *x* and *y* axes and *color* and
937
+ * *opacity* *ramp* legends, and 0 for *fx* and *fy* axes.
938
+ */
939
+ fyTickSize?: number | ParamRef;
940
+ /**
941
+ * The desired approximate spacing between adjacent axis ticks, affecting the
942
+ * default **ticks**; defaults to 80 pixels for *x* and *fx*, and 35 pixels
943
+ * for *y* and *fy*.
944
+ */
945
+ fyTickSpacing?: number | ParamRef;
946
+ /**
947
+ * The distance between an axis tick mark and its associated text label (in
948
+ * pixels); often defaults to 3, but may be affected by **fyTickSize** and
949
+ * **fyTickRotate**.
950
+ */
951
+ fyTickPadding?: number | ParamRef;
952
+ /**
953
+ * How to format inputs (abstract values) for axis tick labels; one of:
954
+ *
955
+ * - a [d3-format][1] string for numeric scales
956
+ * - a [d3-time-format][2] string for temporal scales
957
+ *
958
+ * [1]: https://d3js.org/d3-time
959
+ * [2]: https://d3js.org/d3-time-format
960
+ */
961
+ fyTickFormat?: string | null | ParamRef;
962
+ /**
963
+ * The rotation angle of axis tick labels in degrees clocksize; defaults to 0.
964
+ */
965
+ fyTickRotate?: number | ParamRef;
966
+ /**
967
+ * Whether to show a grid aligned with the scale’s ticks. If true, show a grid
968
+ * with the currentColor stroke; if a string, show a grid with the specified
969
+ * stroke color; if an approximate number of ticks, an interval, or an array
970
+ * of tick values, show corresponding grid lines. See also the grid mark.
971
+ *
972
+ * For axes only.
973
+ */
974
+ fyGrid?: boolean | string | Interval | any[] | ParamRef;
975
+ /**
976
+ * If true, draw a line along the axis; if false (default), do not.
977
+ */
978
+ fyLine?: boolean | ParamRef;
979
+ /**
980
+ * A textual label to show on the axis or legend; if null, show no label. By
981
+ * default the scale label is inferred from channel definitions, possibly with
982
+ * an arrow (↑, →, ↓, or ←) to indicate the direction of increasing value.
983
+ *
984
+ * For axes and legends only.
985
+ */
986
+ fyLabel?: string | null | ParamRef;
987
+ /**
988
+ * Where to place the axis **label** relative to the plot’s frame. For
989
+ * vertical position scales (*y* and *fy*), may be *top*, *bottom*, or
990
+ * *center*; for horizontal position scales (*x* and *fx*), may be *left*,
991
+ * *right*, or *center*. Defaults to *center* for ordinal scales (including
992
+ * *fx* and *fy*), and otherwise *top* for *y*, and *right* for *x*.
993
+ */
994
+ fyLabelAnchor?: 'top' | 'right' | 'bottom' | 'left' | 'center' | ParamRef;
995
+ /**
996
+ * The axis **label** position offset (in pixels); default depends on margins
997
+ * and orientation.
998
+ */
999
+ fyLabelOffset?: number | ParamRef;
1000
+ /**
1001
+ * The font-variant attribute for axis ticks; defaults to *tabular-nums* for
1002
+ * quantitative axes.
1003
+ */
1004
+ fyFontVariant?: string | ParamRef;
1005
+ /**
1006
+ * A short label representing the axis in the accessibility tree.
1007
+ */
1008
+ fyAriaLabel?: string | ParamRef;
1009
+ /**
1010
+ * A textual description for the axis in the accessibility tree.
1011
+ */
1012
+ fyAriaDescription?: string | ParamRef;
1013
+ /**
1014
+ * Whether to reverse the scale’s encoding; equivalent to reversing either the
1015
+ * **domain** or **range**.
1016
+ */
1017
+ fyReverse?: boolean | ParamRef;
1018
+ /**
1019
+ * The *color* scale type, affecting how the scale encodes abstract data, say
1020
+ * by applying a mathematical transformation. If null, the scale is disabled.
1021
+ *
1022
+ * For quantitative data (numbers), defaults to *linear*; for temporal data
1023
+ * (dates), defaults to *utc*; for ordinal data (strings or booleans),
1024
+ * defaults to *point* for position scales, *categorical* for color scales,
1025
+ * and otherwise *ordinal*.
1026
+ */
1027
+ colorScale?: ColorScaleType | null | ParamRef;
1028
+ /**
1029
+ * The extent of the scale’s inputs (abstract values). By default inferred
1030
+ * from channel values. For continuous data (numbers and dates), it is
1031
+ * typically [*min*, *max*]; it can be [*max*, *min*] to reverse the scale.
1032
+ * For ordinal data (strings or booleans), it is an array (or iterable) of
1033
+ * values is the desired order, defaulting to natural ascending order.
1034
+ */
1035
+ colorDomain?: any[] | Fixed | ParamRef;
1036
+ /**
1037
+ * The extent of the scale’s outputs (visual values). By default inferred from
1038
+ * the scale’s **type** and **domain**. For other ordinal data, it is an array
1039
+ * (or iterable) of output values in the same order as the **domain**.
1040
+ */
1041
+ colorRange?: any[] | Fixed | ParamRef;
1042
+ /**
1043
+ * If true, values below the domain minimum are treated as the domain minimum,
1044
+ * and values above the domain maximum are treated as the domain maximum.
1045
+ *
1046
+ * Clamping is useful for focusing on a subset of the data while ensuring that
1047
+ * extreme values remain visible, but use caution: clamped values may need an
1048
+ * annotation to avoid misinterpretation. Clamping typically requires setting
1049
+ * an explicit **domain** since if the domain is inferred, no values will be
1050
+ * outside the domain.
1051
+ *
1052
+ * For continuous scales only.
1053
+ */
1054
+ colorClamp?: boolean | ParamRef;
1055
+ /**
1056
+ * For a *quantile* scale, the number of quantiles (creates *n* - 1
1057
+ * thresholds); for a *quantize* scale, the approximate number of thresholds;
1058
+ * defaults to 5.
1059
+ */
1060
+ colorN?: number | ParamRef;
1061
+ /**
1062
+ * If true, or a tick count or interval, extend the domain to nice round
1063
+ * values. Defaults to 1, 2 or 5 times a power of 10 for *linear* scales, and
1064
+ * nice time intervals for *utc* and *time* scales. Pass an interval such as
1065
+ * *minute*, *wednesday* or *month* to specify what constitutes a nice
1066
+ * interval.
1067
+ *
1068
+ * For continuous scales only.
1069
+ */
1070
+ colorNice?: boolean | number | Interval | ParamRef;
1071
+ /**
1072
+ * If specified, shorthand for setting the **colorRange**
1073
+ * or **colorInterpolate** option of a *color* scale.
1074
+ */
1075
+ colorScheme?: ColorScheme | ParamRef;
1076
+ /**
1077
+ * How to interpolate color range values. For quantitative scales only.
1078
+ * This attribute can be used to specify a color space for interpolating
1079
+ * colors specified in the **colorRange**.
1080
+ */
1081
+ colorInterpolate?: Interpolate | ParamRef;
1082
+ /**
1083
+ * For a diverging color scale, the input value (abstract value) that divides
1084
+ * the domain into two parts; defaults to 0 for *diverging* scales, dividing
1085
+ * the domain into negative and positive parts; defaults to 1 for
1086
+ * *diverging-log* scales. By default, diverging scales are symmetric around
1087
+ * the pivot; see the **symmetric** option.
1088
+ */
1089
+ colorPivot?: any | ParamRef;
1090
+ /**
1091
+ * For a diverging color scale, if true (the default), extend the domain to
1092
+ * ensure that the lower part of the domain (below the **pivot**) is
1093
+ * commensurate with the upper part of the domain (above the **pivot**).
1094
+ *
1095
+ * A symmetric diverging color scale may not use all of its output **range**;
1096
+ * this reduces contrast but ensures that deviations both below and above the
1097
+ * **pivot** are represented proportionally. Otherwise if false, the full
1098
+ * output **range** will be used; this increases contrast but values on
1099
+ * opposite sides of the **pivot** may not be meaningfully compared.
1100
+ */
1101
+ colorSymmetric?: boolean | ParamRef;
1102
+ /**
1103
+ * A textual label to show on the axis or legend; if null, show no label. By
1104
+ * default the scale label is inferred from channel definitions, possibly with
1105
+ * an arrow (↑, →, ↓, or ←) to indicate the direction of increasing value.
1106
+ *
1107
+ * For axes and legends only.
1108
+ */
1109
+ colorLabel?: string | null | ParamRef;
1110
+ /**
1111
+ * If true, shorthand for a transform suitable for percentages, mapping
1112
+ * proportions in [0, 1] to [0, 100].
1113
+ */
1114
+ colorPercent?: boolean | ParamRef;
1115
+ /**
1116
+ * Whether to reverse the scale’s encoding; equivalent to reversing either the
1117
+ * **domain** or **range**.
1118
+ */
1119
+ colorReverse?: boolean | ParamRef;
1120
+ /**
1121
+ * Whether the **domain** must include zero. If the domain minimum is
1122
+ * positive, it will be set to zero; otherwise if the domain maximum is
1123
+ * negative, it will be set to zero.
1124
+ *
1125
+ * For quantitative scales only.
1126
+ */
1127
+ colorZero?: boolean | ParamRef;
1128
+ /**
1129
+ * How to format inputs (abstract values) for axis tick labels; one of:
1130
+ *
1131
+ * - a [d3-format][1] string for numeric scales
1132
+ * - a [d3-time-format][2] string for temporal scales
1133
+ *
1134
+ * [1]: https://d3js.org/d3-time
1135
+ * [2]: https://d3js.org/d3-time-format
1136
+ */
1137
+ colorTickFormat?: string | null | ParamRef;
1138
+ /**
1139
+ * A power scale’s exponent (*e.g.*, 0.5 for sqrt); defaults to 1 for a
1140
+ * linear scale. For *pow* and *diverging-pow* scales only.
1141
+ */
1142
+ colorExponent?: number | ParamRef;
1143
+ /**
1144
+ * A log scale’s base; defaults to 10. Does not affect the scale’s encoding,
1145
+ * but rather the default ticks. For *log* and *diverging-log* scales only.
1146
+ */
1147
+ colorBase?: number | ParamRef;
1148
+ /**
1149
+ * A symlog scale’s constant, expressing the magnitude of the linear region
1150
+ * around the origin; defaults to 1. For *symlog* and *diverging-symlog*
1151
+ * scales only.
1152
+ */
1153
+ colorConstant?: number | ParamRef;
1154
+ /**
1155
+ * The *opacity* scale type, affecting how the scale encodes abstract data,
1156
+ * say by applying a mathematical transformation. If null, the scale is
1157
+ * disabled. The opacity scale defaults to *linear*; this scales is intended
1158
+ * for quantitative data.
1159
+ */
1160
+ opacityScale?: ContinuousScaleType | null | ParamRef;
1161
+ /**
1162
+ * The extent of the scale’s inputs (abstract values). By default inferred
1163
+ * from channel values. For continuous data (numbers and dates), it is
1164
+ * typically [*min*, *max*]; it can be [*max*, *min*] to reverse the scale.
1165
+ * For ordinal data (strings or booleans), it is an array (or iterable) of
1166
+ * values is the desired order, defaulting to natural ascending order.
1167
+ *
1168
+ * Opacity scales have a default domain from 0 to the maximum value of
1169
+ * associated channels.
1170
+ */
1171
+ opacityDomain?: any[] | Fixed | ParamRef;
1172
+ /**
1173
+ * The extent of the scale’s outputs (visual values).
1174
+ *
1175
+ * Opacity scales have a default range of [0, 1].
1176
+ */
1177
+ opacityRange?: any[] | Fixed | ParamRef;
1178
+ /**
1179
+ * If true, values below the domain minimum are treated as the domain minimum,
1180
+ * and values above the domain maximum are treated as the domain maximum.
1181
+ *
1182
+ * Clamping is useful for focusing on a subset of the data while ensuring that
1183
+ * extreme values remain visible, but use caution: clamped values may need an
1184
+ * annotation to avoid misinterpretation. Clamping typically requires setting
1185
+ * an explicit **domain** since if the domain is inferred, no values will be
1186
+ * outside the domain.
1187
+ *
1188
+ * For continuous scales only.
1189
+ */
1190
+ opacityClamp?: boolean | ParamRef;
1191
+ /**
1192
+ * If true, or a tick count or interval, extend the domain to nice round
1193
+ * values. Defaults to 1, 2 or 5 times a power of 10 for *linear* scales, and
1194
+ * nice time intervals for *utc* and *time* scales. Pass an interval such as
1195
+ * *minute*, *wednesday* or *month* to specify what constitutes a nice
1196
+ * interval.
1197
+ *
1198
+ * For continuous scales only.
1199
+ */
1200
+ opacityNice?: boolean | number | Interval | ParamRef;
1201
+ /**
1202
+ * A textual label to show on the axis or legend; if null, show no label. By
1203
+ * default the scale label is inferred from channel definitions, possibly with
1204
+ * an arrow (↑, →, ↓, or ←) to indicate the direction of increasing value.
1205
+ *
1206
+ * For axes and legends only.
1207
+ */
1208
+ opacityLabel?: string | null | ParamRef;
1209
+ /**
1210
+ * If true, shorthand for a transform suitable for percentages, mapping
1211
+ * proportions in [0, 1] to [0, 100].
1212
+ */
1213
+ opacityPercent?: boolean | ParamRef;
1214
+ /**
1215
+ * Whether to reverse the scale’s encoding; equivalent to reversing either the
1216
+ * **domain** or **range**.
1217
+ */
1218
+ opacityReverse?: boolean | ParamRef;
1219
+ /**
1220
+ * Whether the **domain** must include zero. If the domain minimum is
1221
+ * positive, it will be set to zero; otherwise if the domain maximum is
1222
+ * negative, it will be set to zero.
1223
+ *
1224
+ * For quantitative scales only.
1225
+ */
1226
+ opacityZero?: boolean | ParamRef;
1227
+ /**
1228
+ * How to format inputs (abstract values) for axis tick labels; one of:
1229
+ *
1230
+ * - a [d3-format][1] string for numeric scales
1231
+ * - a [d3-time-format][2] string for temporal scales
1232
+ *
1233
+ * [1]: https://d3js.org/d3-time
1234
+ * [2]: https://d3js.org/d3-time-format
1235
+ */
1236
+ opacityTickFormat?: string | null | ParamRef;
1237
+ /**
1238
+ * A power scale’s exponent (*e.g.*, 0.5 for sqrt); defaults to 1 for a
1239
+ * linear scale. For *pow* scales only.
1240
+ */
1241
+ opacityExponent?: number | ParamRef;
1242
+ /**
1243
+ * A log scale’s base; defaults to 10. Does not affect the scale’s encoding,
1244
+ * but rather the default ticks. For *log* scales only.
1245
+ */
1246
+ opacityBase?: number | ParamRef;
1247
+ /**
1248
+ * A symlog scale’s constant, expressing the magnitude of the linear region
1249
+ * around the origin; defaults to 1. For *symlog* scales only.
1250
+ */
1251
+ opacityConstant?: number | ParamRef;
1252
+ /**
1253
+ * The *symbol* scale type, affecting how the scale encodes abstract data,
1254
+ * say by applying a mathematical transformation. If null, the scale is
1255
+ * disabled. Defaults to an *ordinal* scale type.
1256
+ */
1257
+ symbolScale?: DiscreteScaleType | null | ParamRef;
1258
+ /**
1259
+ * The extent of the scale’s inputs (abstract values). By default inferred
1260
+ * from channel values. As symbol scales are discrete, the domain is an array
1261
+ * (or iterable) of values is the desired order, defaulting to natural
1262
+ * ascending order.
1263
+ */
1264
+ symbolDomain?: any[] | Fixed | ParamRef;
1265
+ /**
1266
+ * The extent of the scale’s outputs (visual values). By default inferred from
1267
+ * the scale’s **type** and **domain**, and for position scales, the plot’s
1268
+ * dimensions. For continuous data (numbers and dates), and for ordinal
1269
+ * position scales (*point* and *band*), it is typically [*min*, *max*]; it
1270
+ * can be [*max*, *min*] to reverse the scale. For other ordinal data, such as
1271
+ * for a *color* scale, it is an array (or iterable) of output values in the
1272
+ * same order as the **domain**.
1273
+ *
1274
+ * Symbol scales have a default range of categorical symbols; the choice of
1275
+ * symbols depends on whether the associated dot mark is filled or stroked.
1276
+ */
1277
+ symbolRange?: any[] | Fixed | ParamRef;
1278
+ /**
1279
+ * The *r* (radius) scale type, affecting how the scale encodes abstract
1280
+ * data, say by applying a mathematical transformation. If null, the scale
1281
+ * is disabled. The radius scale defaults to *sqrt*; this scale is intended
1282
+ * for quantitative data.
1283
+ */
1284
+ rScale?: ContinuousScaleType | null | ParamRef;
1285
+ /**
1286
+ * The extent of the scale’s inputs (abstract values). By default inferred
1287
+ * from channel values. For continuous data (numbers and dates), it is
1288
+ * typically [*min*, *max*]; it can be [*max*, *min*] to reverse the scale.
1289
+ * For ordinal data (strings or booleans), it is an array (or iterable) of
1290
+ * values is the desired order, defaulting to natural ascending order.
1291
+ *
1292
+ * Radius scales have a default domain from 0 to the median first quartile
1293
+ * of associated channels.
1294
+ */
1295
+ rDomain?: any[] | Fixed | ParamRef;
1296
+ /**
1297
+ * The extent of the scale’s outputs (visual values). By default inferred from
1298
+ * the scale’s **type** and **domain**, and for position scales, the plot’s
1299
+ * dimensions. For continuous data (numbers and dates), and for ordinal
1300
+ * position scales (*point* and *band*), it is typically [*min*, *max*]; it
1301
+ * can be [*max*, *min*] to reverse the scale. For other ordinal data, such as
1302
+ * for a *color* scale, it is an array (or iterable) of output values in the
1303
+ * same order as the **domain**.
1304
+ *
1305
+ * Radius scales have a default range of [0, 3].
1306
+ */
1307
+ rRange?: any[] | Fixed | ParamRef;
1308
+ /**
1309
+ * If true, values below the domain minimum are treated as the domain minimum,
1310
+ * and values above the domain maximum are treated as the domain maximum.
1311
+ *
1312
+ * Clamping is useful for focusing on a subset of the data while ensuring that
1313
+ * extreme values remain visible, but use caution: clamped values may need an
1314
+ * annotation to avoid misinterpretation. Clamping typically requires setting
1315
+ * an explicit **domain** since if the domain is inferred, no values will be
1316
+ * outside the domain.
1317
+ *
1318
+ * For continuous scales only.
1319
+ */
1320
+ rClamp?: any;
1321
+ /**
1322
+ * If true, or a tick count or interval, extend the domain to nice round
1323
+ * values. Defaults to 1, 2 or 5 times a power of 10 for *linear* scales, and
1324
+ * nice time intervals for *utc* and *time* scales. Pass an interval such as
1325
+ * *minute*, *wednesday* or *month* to specify what constitutes a nice
1326
+ * interval.
1327
+ *
1328
+ * For continuous scales only.
1329
+ */
1330
+ rNice?: boolean | number | Interval | ParamRef;
1331
+ /**
1332
+ * If true, shorthand for a transform suitable for percentages, mapping
1333
+ * proportions in [0, 1] to [0, 100].
1334
+ */
1335
+ rPercent?: boolean | ParamRef;
1336
+ /**
1337
+ * Whether the **domain** must include zero. If the domain minimum is
1338
+ * positive, it will be set to zero; otherwise if the domain maximum is
1339
+ * negative, it will be set to zero.
1340
+ *
1341
+ * For quantitative scales only.
1342
+ */
1343
+ rZero?: boolean | ParamRef;
1344
+ /**
1345
+ * A power scale’s exponent (*e.g.*, 0.5 for sqrt); defaults to 1 for a
1346
+ * linear scale. For *pow* scales only.
1347
+ */
1348
+ rExponent?: number | ParamRef;
1349
+ /**
1350
+ * A log scale’s base; defaults to 10. Does not affect the scale’s encoding,
1351
+ * but rather the default ticks. For *log* scales only.
1352
+ */
1353
+ rBase?: number | ParamRef;
1354
+ /**
1355
+ * A symlog scale’s constant, expressing the magnitude of the linear region
1356
+ * around the origin; defaults to 1. For *symlog* scales only.
1357
+ */
1358
+ rConstant?: number | ParamRef;
1359
+ /**
1360
+ * The *length* scale type, affecting how the scale encodes abstract data,
1361
+ * say by applying a mathematical transformation. If null, the scale is
1362
+ * disabled. The length scale defaults to *linear*, as this scale is intended
1363
+ * for quantitative data.
1364
+ */
1365
+ lengthScale?: ContinuousScaleType | null | ParamRef;
1366
+ /**
1367
+ * The extent of the scale’s inputs (abstract values). By default inferred
1368
+ * from channel values. For continuous data (numbers and dates), it is
1369
+ * typically [*min*, *max*]; it can be [*max*, *min*] to reverse the scale.
1370
+ * For ordinal data (strings or booleans), it is an array (or iterable) of
1371
+ * values is the desired order, defaulting to natural ascending order.
1372
+ *
1373
+ * Linear scales have a default domain of [0, 1]. Log scales have a default
1374
+ * domain of [1, 10] and cannot include zero. Radius scales have a default
1375
+ * domain from 0 to the median first quartile of associated channels. Length
1376
+ * have a default domain from 0 to the median median of associated channels.
1377
+ * Opacity scales have a default domain from 0 to the maximum value of
1378
+ * associated channels.
1379
+ */
1380
+ lengthDomain?: any[] | Fixed | ParamRef;
1381
+ /**
1382
+ * The extent of the scale’s outputs (visual values). By default inferred from
1383
+ * the scale’s **type** and **domain**, and for position scales, the plot’s
1384
+ * dimensions. For continuous data (numbers and dates), and for ordinal
1385
+ * position scales (*point* and *band*), it is typically [*min*, *max*]; it
1386
+ * can be [*max*, *min*] to reverse the scale. For other ordinal data, such as
1387
+ * for a *color* scale, it is an array (or iterable) of output values in the
1388
+ * same order as the **domain**.
1389
+ *
1390
+ * Length scales have a default range of [0, 12].
1391
+ */
1392
+ lengthRange?: any[] | Fixed | ParamRef;
1393
+ /**
1394
+ * If true, values below the domain minimum are treated as the domain minimum,
1395
+ * and values above the domain maximum are treated as the domain maximum.
1396
+ *
1397
+ * Clamping is useful for focusing on a subset of the data while ensuring that
1398
+ * extreme values remain visible, but use caution: clamped values may need an
1399
+ * annotation to avoid misinterpretation. Clamping typically requires setting
1400
+ * an explicit **domain** since if the domain is inferred, no values will be
1401
+ * outside the domain.
1402
+ *
1403
+ * For continuous scales only.
1404
+ */
1405
+ lengthClamp?: any;
1406
+ /**
1407
+ * If true, or a tick count or interval, extend the domain to nice round
1408
+ * values. Defaults to 1, 2 or 5 times a power of 10 for *linear* scales, and
1409
+ * nice time intervals for *utc* and *time* scales. Pass an interval such as
1410
+ * *minute*, *wednesday* or *month* to specify what constitutes a nice
1411
+ * interval.
1412
+ *
1413
+ * For continuous scales only.
1414
+ */
1415
+ lengthNice?: boolean | number | Interval | ParamRef;
1416
+ /**
1417
+ * If true, shorthand for a transform suitable for percentages, mapping
1418
+ * proportions in [0, 1] to [0, 100].
1419
+ */
1420
+ lengthPercent?: boolean | ParamRef;
1421
+ /**
1422
+ * Whether the **domain** must include zero. If the domain minimum is
1423
+ * positive, it will be set to zero; otherwise if the domain maximum is
1424
+ * negative, it will be set to zero.
1425
+ *
1426
+ * For quantitative scales only.
1427
+ */
1428
+ lengthZero?: boolean | ParamRef;
1429
+ /**
1430
+ * A power scale’s exponent (*e.g.*, 0.5 for sqrt); defaults to 1 for a
1431
+ * linear scale. For *pow* scales only.
1432
+ */
1433
+ lengthExponent?: number | ParamRef;
1434
+ /**
1435
+ * A log scale’s base; defaults to 10. Does not affect the scale’s encoding,
1436
+ * but rather the default ticks. For *log* scales only.
1437
+ */
1438
+ lengthBase?: number | ParamRef;
1439
+ /**
1440
+ * A symlog scale’s constant, expressing the magnitude of the linear region
1441
+ * around the origin; defaults to 1. For *symlog* scales only.
1442
+ */
1443
+ lengthConstant?: number | ParamRef;
1444
+ /**
1445
+ * The desired projection; one of:
1446
+ *
1447
+ * - a named built-in projection such as *albers-usa*
1448
+ * - null, for no projection
1449
+ *
1450
+ * Named projections are scaled and translated to fit
1451
+ * the **domain** to the plot’s frame (minus insets).
1452
+ */
1453
+ projectionType?: ProjectionName | null | ParamRef;
1454
+ /**
1455
+ * A GeoJSON object to fit to the plot’s frame (minus insets); defaults to a
1456
+ * Sphere for spherical projections (outline of the the whole globe).
1457
+ */
1458
+ projectionDomain?: object | ParamRef;
1459
+ /**
1460
+ * A rotation of the sphere before projection; defaults to [0, 0, 0].
1461
+ * Specified as Euler angles λ (yaw, or reference longitude), φ (pitch, or
1462
+ * reference latitude), and optionally γ (roll), in degrees.
1463
+ */
1464
+ projectionRotate?: [x: number | ParamRef, y: number | ParamRef, z?: number | ParamRef] | ParamRef;
1465
+ /**
1466
+ * The [standard parallels][1]. For conic projections only.
1467
+ *
1468
+ * [1]: https://d3js.org/d3-geo/conic#conic_parallels
1469
+ */
1470
+ projectionParallels?: [y1: number | ParamRef, y2: number | ParamRef] | ParamRef;
1471
+ /**
1472
+ * The projection’s [sampling threshold][1].
1473
+ *
1474
+ * [1]: https://d3js.org/d3-geo/projection#projection_precision
1475
+ */
1476
+ projectionPrecision?: number | ParamRef;
1477
+ /**
1478
+ * The projection’s clipping method; one of:
1479
+ *
1480
+ * - *frame* or true (default) - clip to the plot’s frame (including margins but not insets)
1481
+ * - a number - clip to a circle of the given radius in degrees centered around the origin
1482
+ * - null or false - do not clip
1483
+ *
1484
+ * Some projections (such as [*armadillo*][1] and [*berghaus*][2]) require
1485
+ * spherical clipping: in that case set the marks’ **clip** option to
1486
+ * *sphere*.
1487
+ *
1488
+ * [1]: https://observablehq.com/@d3/armadillo
1489
+ * [2]: https://observablehq.com/@d3/berghaus-star
1490
+ */
1491
+ projectionClip?: boolean | number | 'frame' | null | ParamRef;
1492
+ /**
1493
+ * Shorthand to set the same default for all four projection insets.
1494
+ * All insets typically default to zero, though not always. A positive
1495
+ * inset reduces effective area, while a negative inset increases it.
1496
+ */
1497
+ projectionInset?: number | ParamRef;
1498
+ /**
1499
+ * Insets the top edge of the projection by the specified number of pixels.
1500
+ * A positive value insets towards the bottom edge (reducing effective area),
1501
+ * while a negative value insets away from the bottom edge (increasing it).
1502
+ */
1503
+ projectionInsetTop?: number | ParamRef;
1504
+ /**
1505
+ * Insets the right edge of the projection by the specified number of pixels.
1506
+ * A positive value insets towards the left edge (reducing effective area),
1507
+ * while a negative value insets away from the left edge (increasing it).
1508
+ */
1509
+ projectionInsetRight?: number | ParamRef;
1510
+ /**
1511
+ * Insets the bottom edge of the projection by the specified number of pixels.
1512
+ * A positive value insets towards the top edge (reducing effective area),
1513
+ * while a negative value insets away from the top edge (increasing it).
1514
+ */
1515
+ projectionInsetBottom?: number | ParamRef;
1516
+ /**
1517
+ * Insets the left edge of the projection by the specified number of pixels.
1518
+ * A positive value insets towards the right edge (reducing effective area),
1519
+ * while a negative value insets away from the right edge (increasing it).
1520
+ */
1521
+ projectionInsetLeft?: number | ParamRef;
1522
+ }