svelteplot 0.11.0 → 0.11.1-pr-520.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 (94) hide show
  1. package/dist/Mark.svelte +6 -1
  2. package/dist/Mark.svelte.d.ts +1 -1
  3. package/dist/constants.js +2 -0
  4. package/dist/core/Plot.svelte +32 -3
  5. package/dist/helpers/arrowPath.js +10 -5
  6. package/dist/helpers/autoScales.js +7 -3
  7. package/dist/helpers/autoTicks.js +4 -4
  8. package/dist/helpers/autoTimeFormat.js +22 -12
  9. package/dist/helpers/colors.d.ts +4 -4
  10. package/dist/helpers/facets.d.ts +42 -1
  11. package/dist/helpers/facets.js +83 -0
  12. package/dist/helpers/math.js +1 -1
  13. package/dist/helpers/noise.js +1 -1
  14. package/dist/helpers/rasterInterpolate.d.ts +26 -0
  15. package/dist/helpers/rasterInterpolate.js +220 -0
  16. package/dist/helpers/roundedRect.js +1 -1
  17. package/dist/helpers/scales.d.ts +1 -0
  18. package/dist/helpers/scales.js +8 -5
  19. package/dist/helpers/time.js +1 -1
  20. package/dist/helpers/typeChecks.d.ts +1 -0
  21. package/dist/helpers/typeChecks.js +3 -0
  22. package/dist/marks/Area.svelte.d.ts +1 -1
  23. package/dist/marks/AreaX.svelte.d.ts +1 -1
  24. package/dist/marks/AreaY.svelte.d.ts +1 -1
  25. package/dist/marks/Arrow.svelte.d.ts +1 -1
  26. package/dist/marks/AxisX.svelte +8 -3
  27. package/dist/marks/AxisX.svelte.d.ts +1 -1
  28. package/dist/marks/AxisY.svelte +8 -3
  29. package/dist/marks/AxisY.svelte.d.ts +1 -1
  30. package/dist/marks/BarX.svelte.d.ts +1 -1
  31. package/dist/marks/BarY.svelte.d.ts +1 -1
  32. package/dist/marks/BollingerX.svelte.d.ts +1 -1
  33. package/dist/marks/BollingerY.svelte.d.ts +1 -1
  34. package/dist/marks/BoxY.svelte.d.ts +1 -1
  35. package/dist/marks/Brush.svelte.d.ts +1 -1
  36. package/dist/marks/Cell.svelte.d.ts +1 -1
  37. package/dist/marks/CellX.svelte.d.ts +1 -1
  38. package/dist/marks/CellY.svelte.d.ts +1 -1
  39. package/dist/marks/CustomMark.svelte.d.ts +1 -1
  40. package/dist/marks/DifferenceY.svelte.d.ts +1 -1
  41. package/dist/marks/Dot.svelte.d.ts +1 -1
  42. package/dist/marks/DotX.svelte.d.ts +1 -1
  43. package/dist/marks/DotY.svelte.d.ts +1 -1
  44. package/dist/marks/Frame.svelte.d.ts +1 -1
  45. package/dist/marks/Geo.svelte.d.ts +1 -1
  46. package/dist/marks/GridX.svelte.d.ts +1 -1
  47. package/dist/marks/GridY.svelte.d.ts +1 -1
  48. package/dist/marks/HTMLTooltip.svelte +28 -25
  49. package/dist/marks/Image.svelte.d.ts +1 -1
  50. package/dist/marks/Line.svelte +52 -15
  51. package/dist/marks/Line.svelte.d.ts +1 -1
  52. package/dist/marks/LineX.svelte.d.ts +1 -1
  53. package/dist/marks/LineY.svelte.d.ts +1 -1
  54. package/dist/marks/Link.svelte.d.ts +1 -1
  55. package/dist/marks/Pointer.svelte +31 -29
  56. package/dist/marks/Raster.svelte +414 -0
  57. package/dist/marks/Raster.svelte.d.ts +94 -0
  58. package/dist/marks/Rect.svelte.d.ts +1 -1
  59. package/dist/marks/RectX.svelte.d.ts +1 -1
  60. package/dist/marks/RectY.svelte.d.ts +1 -1
  61. package/dist/marks/RuleX.svelte.d.ts +1 -1
  62. package/dist/marks/RuleY.svelte.d.ts +1 -1
  63. package/dist/marks/Spike.svelte.d.ts +1 -1
  64. package/dist/marks/Text.svelte +7 -5
  65. package/dist/marks/Text.svelte.d.ts +2 -2
  66. package/dist/marks/TickX.svelte.d.ts +1 -1
  67. package/dist/marks/TickY.svelte.d.ts +1 -1
  68. package/dist/marks/Trail.svelte.d.ts +1 -1
  69. package/dist/marks/Vector.svelte.d.ts +1 -1
  70. package/dist/marks/WaffleX.svelte.d.ts +1 -1
  71. package/dist/marks/WaffleY.svelte.d.ts +1 -1
  72. package/dist/marks/helpers/Box.svelte.d.ts +1 -1
  73. package/dist/marks/helpers/MarkerPath.svelte.d.ts +1 -1
  74. package/dist/marks/helpers/Regression.svelte +2 -1
  75. package/dist/marks/helpers/trail.js +1 -1
  76. package/dist/marks/helpers/waffle.js +1 -1
  77. package/dist/marks/index.d.ts +1 -0
  78. package/dist/marks/index.js +1 -0
  79. package/dist/regression/polynomial.js +2 -2
  80. package/dist/transforms/bollinger.js +6 -3
  81. package/dist/transforms/density.js +3 -3
  82. package/dist/transforms/group.d.ts +1 -1
  83. package/dist/transforms/interval.d.ts +2 -2
  84. package/dist/transforms/jitter.d.ts +3 -3
  85. package/dist/transforms/map.d.ts +3 -3
  86. package/dist/transforms/map.js +2 -2
  87. package/dist/transforms/normalize.d.ts +2 -2
  88. package/dist/transforms/normalize.js +1 -1
  89. package/dist/transforms/select.d.ts +7 -7
  90. package/dist/transforms/window.d.ts +2 -2
  91. package/dist/types/mark.d.ts +3 -3
  92. package/dist/types/plot.d.ts +8 -1
  93. package/dist/types/scale.d.ts +2 -2
  94. package/package.json +183 -179
@@ -0,0 +1,220 @@
1
+ import { Delaunay } from 'd3-delaunay';
2
+ import { randomLcg } from 'd3-random';
3
+ /**
4
+ * Simple forward mapping: each sample is binned to its nearest pixel.
5
+ * If multiple samples map to the same pixel, the last one wins.
6
+ */
7
+ export function interpolateNone(index, width, height, X, Y, V) {
8
+ const W = new Array(width * height);
9
+ for (const i of index) {
10
+ if (X[i] < 0 || X[i] >= width || Y[i] < 0 || Y[i] >= height)
11
+ continue;
12
+ W[Math.floor(Y[i]) * width + Math.floor(X[i])] = V[i];
13
+ }
14
+ return W;
15
+ }
16
+ /**
17
+ * Nearest-neighbor interpolation using Delaunay triangulation.
18
+ */
19
+ export function interpolateNearest(index, width, height, X, Y, V) {
20
+ const n = width * height;
21
+ // Use typed array if V is typed, otherwise plain array
22
+ const W = isTypedArray(V) ? new V.constructor(n) : new Array(n);
23
+ const delaunay = Delaunay.from(index, (i) => X[i], (i) => Y[i]);
24
+ // Memoize delaunay.find for the line start (iy) and current pixel (ix)
25
+ let iy, ix;
26
+ for (let y = 0.5, k = 0; y < height; ++y) {
27
+ ix = iy;
28
+ for (let x = 0.5; x < width; ++x, ++k) {
29
+ ix = delaunay.find(x, y, ix);
30
+ if (x === 0.5)
31
+ iy = ix;
32
+ W[k] = V[index[ix]];
33
+ }
34
+ }
35
+ return W;
36
+ }
37
+ /**
38
+ * Barycentric interpolation: fills the interior of each Delaunay triangle with
39
+ * barycentric-weighted values, then extrapolates exterior pixels to the hull.
40
+ */
41
+ export function interpolatorBarycentric({ random = randomLcg(42) } = {}) {
42
+ return (index, width, height, X, Y, V) => {
43
+ const { points, triangles, hull } = Delaunay.from(index, (i) => X[i], (i) => Y[i]);
44
+ const n = width * height;
45
+ const W = isTypedArray(V)
46
+ ? new V.constructor(n).fill(NaN)
47
+ : new Array(n).fill(NaN);
48
+ const S = new Uint8Array(n); // 1 if pixel has been written
49
+ const mix = mixer(V, random);
50
+ for (let i = 0; i < triangles.length; i += 3) {
51
+ const ta = triangles[i];
52
+ const tb = triangles[i + 1];
53
+ const tc = triangles[i + 2];
54
+ const Ax = points[2 * ta];
55
+ const Bx = points[2 * tb];
56
+ const Cx = points[2 * tc];
57
+ const Ay = points[2 * ta + 1];
58
+ const By = points[2 * tb + 1];
59
+ const Cy = points[2 * tc + 1];
60
+ const x1 = Math.min(Ax, Bx, Cx);
61
+ const x2 = Math.max(Ax, Bx, Cx);
62
+ const y1 = Math.min(Ay, By, Cy);
63
+ const y2 = Math.max(Ay, By, Cy);
64
+ const z = (By - Cy) * (Ax - Cx) + (Ay - Cy) * (Cx - Bx);
65
+ if (!z)
66
+ continue;
67
+ const va = V[index[ta]];
68
+ const vb = V[index[tb]];
69
+ const vc = V[index[tc]];
70
+ for (let x = Math.floor(x1); x < x2; ++x) {
71
+ for (let y = Math.floor(y1); y < y2; ++y) {
72
+ if (x < 0 || x >= width || y < 0 || y >= height)
73
+ continue;
74
+ const xp = x + 0.5;
75
+ const yp = y + 0.5;
76
+ const s = Math.sign(z);
77
+ const ga = (By - Cy) * (xp - Cx) + (yp - Cy) * (Cx - Bx);
78
+ if (ga * s < 0)
79
+ continue;
80
+ const gb = (Cy - Ay) * (xp - Cx) + (yp - Cy) * (Ax - Cx);
81
+ if (gb * s < 0)
82
+ continue;
83
+ const gc = z - (ga + gb);
84
+ if (gc * s < 0)
85
+ continue;
86
+ const idx = x + width * y;
87
+ W[idx] = mix(va, ga / z, vb, gb / z, vc, gc / z, x, y);
88
+ S[idx] = 1;
89
+ }
90
+ }
91
+ }
92
+ extrapolateBarycentric(W, S, X, Y, V, width, height, hull, index, mix);
93
+ return W;
94
+ };
95
+ }
96
+ function extrapolateBarycentric(W, S, X, Y, V, width, height, hull, index, mix) {
97
+ const hX = Float64Array.from(hull, (i) => X[index[i]]);
98
+ const hY = Float64Array.from(hull, (i) => Y[index[i]]);
99
+ const hV = Array.from(hull, (i) => V[index[i]]);
100
+ const n = hX.length;
101
+ const rays = Array.from({ length: n }, (_, j) => ray(j, hX, hY));
102
+ let k = 0;
103
+ for (let y = 0; y < height; ++y) {
104
+ const yp = y + 0.5;
105
+ for (let x = 0; x < width; ++x) {
106
+ const i = x + width * y;
107
+ if (!S[i]) {
108
+ const xp = x + 0.5;
109
+ for (let l = 0; l < n; ++l) {
110
+ const j = (n + k + (l % 2 ? (l + 1) / 2 : -l / 2)) % n;
111
+ if (rays[j](xp, yp)) {
112
+ const t = segmentProject(at(hX, j - 1), at(hY, j - 1), hX[j], hY[j], xp, yp);
113
+ W[i] = mix(at(hV, j - 1), t, hV[j], 1 - t, hV[j], 0, x, y);
114
+ k = j;
115
+ break;
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ /**
123
+ * Walk-on-spheres algorithm for smooth interpolation.
124
+ * https://observablehq.com/@observablehq/walk-on-spheres-precision
125
+ */
126
+ export function interpolatorRandomWalk({ random = randomLcg(42), minDistance = 0.5, maxSteps = 2 } = {}) {
127
+ return (index, width, height, X, Y, V) => {
128
+ const n = width * height;
129
+ const W = isTypedArray(V) ? new V.constructor(n) : new Array(n);
130
+ const delaunay = Delaunay.from(index, (i) => X[i], (i) => Y[i]);
131
+ let iy, ix, iw;
132
+ for (let y = 0.5, k = 0; y < height; ++y) {
133
+ ix = iy;
134
+ for (let x = 0.5; x < width; ++x, ++k) {
135
+ let cx = x;
136
+ let cy = y;
137
+ iw = ix = delaunay.find(cx, cy, ix);
138
+ if (x === 0.5)
139
+ iy = ix;
140
+ let distance;
141
+ let step = 0;
142
+ while ((distance = Math.hypot(X[index[iw]] - cx, Y[index[iw]] - cy)) > minDistance &&
143
+ step < maxSteps) {
144
+ const angle = random(x, y, step) * 2 * Math.PI;
145
+ cx += Math.cos(angle) * distance;
146
+ cy += Math.sin(angle) * distance;
147
+ iw = delaunay.find(cx, cy, iw);
148
+ ++step;
149
+ }
150
+ W[k] = V[index[iw]];
151
+ }
152
+ }
153
+ return W;
154
+ };
155
+ }
156
+ // --- Internal helpers ---
157
+ function blend(a, ca, b, cb, c, cc) {
158
+ return ca * a + cb * b + cc * c;
159
+ }
160
+ function pick(random) {
161
+ return (a, ca, b, cb, c, _cc, x, y) => {
162
+ const u = random(x, y);
163
+ return u < ca ? a : u < ca + cb ? b : c;
164
+ };
165
+ }
166
+ function mixer(V, random) {
167
+ const first = findFirst(V);
168
+ return typeof first === 'number' || first instanceof Date ? blend : pick(random);
169
+ }
170
+ function findFirst(V) {
171
+ for (let i = 0; i < V.length; ++i)
172
+ if (V[i] != null)
173
+ return V[i];
174
+ return undefined;
175
+ }
176
+ function isTypedArray(V) {
177
+ return ArrayBuffer.isView(V) && !(V instanceof DataView);
178
+ }
179
+ function at(arr, i) {
180
+ return arr[(i + arr.length) % arr.length];
181
+ }
182
+ function segmentProject(x1, y1, x2, y2, x, y) {
183
+ const dx = x2 - x1;
184
+ const dy = y2 - y1;
185
+ const a = dx * (x2 - x) + dy * (y2 - y);
186
+ const b = dx * (x - x1) + dy * (y - y1);
187
+ return a > 0 && b > 0 ? a / (a + b) : +(a > b);
188
+ }
189
+ function cross(xa, ya, xb, yb) {
190
+ return xa * yb - xb * ya;
191
+ }
192
+ function ray(j, X, Y) {
193
+ const n = X.length;
194
+ const xc = at(X, j - 2);
195
+ const yc = at(Y, j - 2);
196
+ const xa = at(X, j - 1);
197
+ const ya = at(Y, j - 1);
198
+ const xb = X[j];
199
+ const yb = Y[j];
200
+ const xd = at(X, j + 1 - n);
201
+ const yd = at(Y, j + 1 - n);
202
+ const dxab = xa - xb;
203
+ const dyab = ya - yb;
204
+ const dxca = xc - xa;
205
+ const dyca = yc - ya;
206
+ const dxbd = xb - xd;
207
+ const dybd = yb - yd;
208
+ const hab = Math.hypot(dxab, dyab);
209
+ const hca = Math.hypot(dxca, dyca);
210
+ const hbd = Math.hypot(dxbd, dybd);
211
+ return (x, y) => {
212
+ const dxa = x - xa;
213
+ const dya = y - ya;
214
+ const dxb = x - xb;
215
+ const dyb = y - yb;
216
+ return (cross(dxa, dya, dxb, dyb) > -1e-6 &&
217
+ cross(dxa, dya, dxab, dyab) * hca - cross(dxa, dya, dxca, dyca) * hab > -1e-6 &&
218
+ cross(dxb, dyb, dxbd, dybd) * hab - cross(dxb, dyb, dxab, dyab) * hbd <= 0);
219
+ };
220
+ }
@@ -9,7 +9,7 @@ export function roundedRect(x, y, width, height, borderRadius = {
9
9
  }) {
10
10
  const maxRadius = Math.min(width, height) / 2;
11
11
  const [tl, tr, bl, br] = (typeof borderRadius === 'number'
12
- ? new Array(4).fill(borderRadius)
12
+ ? Array.from({ length: 4 }, () => borderRadius)
13
13
  : [
14
14
  borderRadius?.topLeft || 0,
15
15
  borderRadius?.topRight || 0,
@@ -1,4 +1,5 @@
1
1
  import type { ChannelAccessor, GenericMarkOptions, Mark, MarkType, PlotDefaults, PlotScaleFunction, ResolvedPlotOptions, PlotScales, PlotState, RawValue, ScaleName, ScaleOptions, ScaleType, ScaledChannelName, UsedScales } from '../types/index.js';
2
+ export declare function normalizeScaleFn(fn: any): PlotScaleFunction;
2
3
  /**
3
4
  * compute the plot scales
4
5
  */
@@ -1,13 +1,13 @@
1
1
  import { extent, ascending } from 'd3-array';
2
2
  import { isColorOrNull, isDate, isDateOrNull, isNumberOrNull, isNumberOrNullOrNaN, isStringOrNull } from './typeChecks.js';
3
3
  import { CHANNEL_SCALE, ORIGINAL_NAME_KEYS, VALID_SCALE_TYPES } from '../constants.js';
4
- import { isSymbolOrNull } from './typeChecks.js';
4
+ import { isSymbolOrNull, isTemporalScale } from './typeChecks.js';
5
5
  import { resolveProp, toChannelOption } from './resolve.js';
6
6
  import isDataRecord from './isDataRecord.js';
7
7
  import { createProjection } from './projection.js';
8
8
  import { maybeInterval } from './autoTicks.js';
9
9
  import { IS_SORTED } from '../transforms/sort.js';
10
- function normalizeScaleFn(fn) {
10
+ export function normalizeScaleFn(fn) {
11
11
  const out = fn;
12
12
  out.range ||= () => [];
13
13
  out.invert ||= (value) => value;
@@ -165,7 +165,8 @@ export function createScale(name, scaleOptions, marks, plotOptions, plotWidth, p
165
165
  sortOrdinalDomain = false;
166
166
  }
167
167
  // construct domain from data values
168
- const valueArr = [...dataValues.values(), ...(scaleOptions.domain || [])].filter((d) => d != null);
168
+ // For facet scales (fx/fy), null is a valid grouping category (e.g. penguins with sex=null)
169
+ const valueArr = [...dataValues.values(), ...(scaleOptions.domain || [])].filter((d) => d != null || name === 'fx' || name === 'fy');
169
170
  const type = !scaleOptions.type || scaleOptions.type === 'auto'
170
171
  ? inferScaleType(name, valueArr, markTypes, scaleOptions)
171
172
  : scaleOptions.type;
@@ -177,7 +178,9 @@ export function createScale(name, scaleOptions, marks, plotOptions, plotWidth, p
177
178
  if (isOrdinal && sortOrdinalDomain) {
178
179
  valueArr.sort(ascending);
179
180
  }
180
- const valueArray = type === 'quantile' || type === 'quantile-cont' ? allDataValues.toSorted() : valueArr;
181
+ const valueArray = type === 'quantile' || type === 'quantile-cont'
182
+ ? allDataValues.toSorted((a, b) => Number(a) - Number(b))
183
+ : valueArr;
181
184
  let domain = scaleOptions.domain
182
185
  ? isOrdinal
183
186
  ? scaleOptions.domain
@@ -228,7 +231,7 @@ export function createScale(name, scaleOptions, marks, plotOptions, plotWidth, p
228
231
  skip,
229
232
  manualActiveMarks,
230
233
  uniqueScaleProps,
231
- autoTitle: type === 'time'
234
+ autoTitle: isTemporalScale(type)
232
235
  ? null
233
236
  : propNames.size === 1
234
237
  ? `${[...propNames.values()][0]}${type === 'log' ? ' (log)' : ''}`
@@ -139,7 +139,7 @@ const timeFormatIntervals = [
139
139
  // from largest to smallest, used to determine the most specific standard time
140
140
  // format for a given array of dates. This is a subset of the tick intervals
141
141
  // listed above; we only need the breakpoints where the format changes.
142
- const formatIntervals = [
142
+ const _formatIntervals = [
143
143
  utcFormatIntervals[0],
144
144
  timeFormatIntervals[0],
145
145
  utcFormatIntervals[1],
@@ -8,3 +8,4 @@ export declare function isStringOrNull(v: RawValue | null | undefined): v is str
8
8
  export declare function isSymbolOrNull(v: RawValue | null | undefined): v is ("square" | "circle" | "asterisk" | "cross" | "diamond" | "diamond2" | "hexagon" | "plus" | "square2" | "star" | "times" | "triangle" | "triangle2" | "wye") | import("d3-shape").SymbolType | null | undefined;
9
9
  export declare function isColorOrNull(v: RawValue | null | undefined): boolean;
10
10
  export declare function isOpacityOrNull(v: RawValue): boolean;
11
+ export declare function isTemporalScale(type: string): boolean;
@@ -44,3 +44,6 @@ export function isColorOrNull(v) {
44
44
  export function isOpacityOrNull(v) {
45
45
  return v == null || (typeof v === 'number' && Number.isFinite(v) && v >= 0 && v <= 1);
46
46
  }
47
+ export function isTemporalScale(type) {
48
+ return type === 'time' || type === 'utc';
49
+ }
@@ -14,7 +14,7 @@ declare function $$render<Datum extends DataRecord>(): {
14
14
  fill: ChannelAccessor<Datum>;
15
15
  fillOpacity: ConstantAccessor<number, Datum>;
16
16
  fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
17
- fontSize: ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
17
+ fontSize: ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
18
18
  fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
19
19
  fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
20
20
  fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -14,7 +14,7 @@ declare function $$render<Datum extends DataRow>(): {
14
14
  fill: ChannelAccessor<Datum>;
15
15
  fillOpacity: ConstantAccessor<number, Datum>;
16
16
  fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
17
- fontSize: ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
17
+ fontSize: ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
18
18
  fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
19
19
  fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
20
20
  fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -14,7 +14,7 @@ declare function $$render<Datum extends DataRow>(): {
14
14
  fill: ChannelAccessor<Datum>;
15
15
  fillOpacity: ConstantAccessor<number, Datum>;
16
16
  fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
17
- fontSize: ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
17
+ fontSize: ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
18
18
  fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
19
19
  fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
20
20
  fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -13,7 +13,7 @@ declare function $$render<Datum = DataRecord | GeoJSON.GeoJsonObject>(): {
13
13
  fill: ChannelAccessor<Datum>;
14
14
  fillOpacity: ConstantAccessor<number, Datum>;
15
15
  fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
16
- fontSize: ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
16
+ fontSize: ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
17
17
  fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
18
18
  fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
19
19
  fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -18,6 +18,7 @@
18
18
  import type * as CSS from 'csstype';
19
19
  import autoTimeFormat from '../helpers/autoTimeFormat.js';
20
20
  import { autoTicks } from '../helpers/autoTicks.js';
21
+ import { isTemporalScale } from '../helpers/typeChecks.js';
21
22
  import { resolveScaledStyles } from '../helpers/resolve.js';
22
23
  import { getPlotDefaults } from '../hooks/plotDefaults.js';
23
24
  import { extent } from 'd3-array';
@@ -161,10 +162,14 @@
161
162
  ? tickFmt
162
163
  : plot.scales.x.type === 'band' || plot.scales.x.type === 'point'
163
164
  ? (d: RawValue) => String(d)
164
- : plot.scales.x.type === 'time'
165
- ? // time scale
165
+ : isTemporalScale(plot.scales.x.type)
166
+ ? // time/utc scale
166
167
  typeof tickFmt === 'object'
167
- ? (d: Date) => Intl.DateTimeFormat(plot.options.locale, tickFmt).format(d)
168
+ ? (d: Date) =>
169
+ Intl.DateTimeFormat(plot.options.locale, {
170
+ ...tickFmt,
171
+ ...(plot.scales.x.type === 'utc' ? { timeZone: 'UTC' } : {})
172
+ }).format(d)
168
173
  : autoTimeFormat(plot.scales.x, plot.plotWidth, plot.options.locale)
169
174
  : // numeric scale
170
175
  typeof tickFmt === 'object'
@@ -13,7 +13,7 @@ declare function $$render<Datum extends RawValue>(): {
13
13
  fill: import("../types/channel.js").ChannelAccessor<Datum>;
14
14
  fillOpacity: ConstantAccessor<number, Datum>;
15
15
  fontFamily: ConstantAccessor<CSS.Property.FontFamily, Datum>;
16
- fontSize: ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
16
+ fontSize: ConstantAccessor<CSS.Property.FontSize<number>, Datum>;
17
17
  fontStyle: ConstantAccessor<CSS.Property.FontStyle, Datum>;
18
18
  fontVariant: ConstantAccessor<CSS.Property.FontVariant, Datum>;
19
19
  fontWeight: ConstantAccessor<CSS.Property.FontWeight, Datum>;
@@ -17,6 +17,7 @@
17
17
  } from '../types/index.js';
18
18
  import autoTimeFormat from '../helpers/autoTimeFormat.js';
19
19
  import { autoTicks } from '../helpers/autoTicks.js';
20
+ import { isTemporalScale } from '../helpers/typeChecks.js';
20
21
  import { resolveScaledStyles } from '../helpers/resolve.js';
21
22
  import { getPlotDefaults } from '../hooks/plotDefaults.js';
22
23
  import { extent } from 'd3-array';
@@ -158,10 +159,14 @@
158
159
  ? tickFmt
159
160
  : plot.scales.y.type === 'band' || plot.scales.y.type === 'point'
160
161
  ? (d: RawValue) => String(d)
161
- : plot.scales.y.type === 'time'
162
- ? // time scale
162
+ : isTemporalScale(plot.scales.y.type)
163
+ ? // time/utc scale
163
164
  typeof tickFmt === 'object'
164
- ? (d: Date) => Intl.DateTimeFormat(plot.options.locale, tickFmt).format(d)
165
+ ? (d: Date) =>
166
+ Intl.DateTimeFormat(plot.options.locale, {
167
+ ...tickFmt,
168
+ ...(plot.scales.y.type === 'utc' ? { timeZone: 'UTC' } : {})
169
+ }).format(d)
165
170
  : autoTimeFormat(plot.scales.y, plot.plotWidth, plot.options.locale)
166
171
  : // numeric scale
167
172
  typeof tickFmt === 'object'
@@ -12,7 +12,7 @@ declare function $$render<Datum extends RawValue>(): {
12
12
  fill: import("../types/channel.js").ChannelAccessor<Datum>;
13
13
  fillOpacity: ConstantAccessor<number, Datum>;
14
14
  fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
15
- fontSize: ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
15
+ fontSize: ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
16
16
  fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
17
17
  fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
18
18
  fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -14,7 +14,7 @@ declare function $$render<Datum extends DataRow>(): {
14
14
  fill: ChannelAccessor<Datum>;
15
15
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
16
16
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
17
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
17
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
18
18
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
19
19
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
20
20
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -13,7 +13,7 @@ declare function $$render<Datum extends DataRow>(): {
13
13
  fill: ChannelAccessor<Datum>;
14
14
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
15
15
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
16
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
16
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
17
17
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
18
18
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
19
19
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -12,7 +12,7 @@ declare function $$render<Datum extends DataRecord>(): {
12
12
  fill: ChannelAccessor<Datum>;
13
13
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
14
14
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
15
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
15
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
16
16
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
17
17
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
18
18
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -12,7 +12,7 @@ declare function $$render<Datum extends DataRecord>(): {
12
12
  fill: ChannelAccessor<Datum>;
13
13
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
14
14
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
15
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
15
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
16
16
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
17
17
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
18
18
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -12,7 +12,7 @@ declare function $$render<Datum extends DataRecord>(): {
12
12
  fill: ChannelAccessor<Datum>;
13
13
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
14
14
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
15
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
15
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
16
16
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
17
17
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
18
18
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -19,7 +19,7 @@ declare function $$render<Datum extends DataRecord>(): {
19
19
  fill: import("../types/index.js").ChannelAccessor<Datum>;
20
20
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
21
21
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
22
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
22
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
23
23
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
24
24
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
25
25
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -12,7 +12,7 @@ declare function $$render<Datum extends DataRecord>(): {
12
12
  fill: ChannelAccessor<Datum>;
13
13
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
14
14
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
15
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
15
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
16
16
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
17
17
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
18
18
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -12,7 +12,7 @@ declare function $$render<Datum extends DataRow>(): {
12
12
  fill: import("../types/index.js").ChannelAccessor<Record<string | symbol, import("../types/index.js").RawValue>>;
13
13
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Record<string | symbol, import("../types/index.js").RawValue>>;
14
14
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Record<string | symbol, import("../types/index.js").RawValue>>;
15
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Record<string | symbol, import("../types/index.js").RawValue>>;
15
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Record<string | symbol, import("../types/index.js").RawValue>>;
16
16
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Record<string | symbol, import("../types/index.js").RawValue>>;
17
17
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Record<string | symbol, import("../types/index.js").RawValue>>;
18
18
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Record<string | symbol, import("../types/index.js").RawValue>>;
@@ -12,7 +12,7 @@ declare function $$render<Datum extends DataRow>(): {
12
12
  fill: import("../types/index.js").ChannelAccessor<Record<string | symbol, import("../types/index.js").RawValue>>;
13
13
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Record<string | symbol, import("../types/index.js").RawValue>>;
14
14
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Record<string | symbol, import("../types/index.js").RawValue>>;
15
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Record<string | symbol, import("../types/index.js").RawValue>>;
15
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Record<string | symbol, import("../types/index.js").RawValue>>;
16
16
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Record<string | symbol, import("../types/index.js").RawValue>>;
17
17
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Record<string | symbol, import("../types/index.js").RawValue>>;
18
18
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Record<string | symbol, import("../types/index.js").RawValue>>;
@@ -13,7 +13,7 @@ declare function $$render<Datum extends DataRecord>(): {
13
13
  fill: ChannelAccessor<Datum>;
14
14
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
15
15
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
16
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
16
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
17
17
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
18
18
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
19
19
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -13,7 +13,7 @@ declare function $$render<Datum extends DataRecord>(): {
13
13
  fill: ChannelAccessor<Datum>;
14
14
  fillOpacity: ConstantAccessor<number, Datum>;
15
15
  fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
16
- fontSize: ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
16
+ fontSize: ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
17
17
  fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
18
18
  fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
19
19
  fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -13,7 +13,7 @@ declare function $$render<Datum = DataRecord | GeoJSON.GeoJsonObject>(): {
13
13
  fill: ChannelAccessor<Datum>;
14
14
  fillOpacity: ConstantAccessor<number, Datum>;
15
15
  fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
16
- fontSize: ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
16
+ fontSize: ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
17
17
  fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
18
18
  fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
19
19
  fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -12,7 +12,7 @@ declare function $$render<Datum extends DataRow>(): {
12
12
  fill: ChannelAccessor<unknown>;
13
13
  fillOpacity: import("../types/index.js").ConstantAccessor<number, unknown>;
14
14
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, unknown>;
15
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", unknown>;
15
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, unknown>;
16
16
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, unknown>;
17
17
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, unknown>;
18
18
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, unknown>;
@@ -12,7 +12,7 @@ declare function $$render<Datum extends DataRow>(): {
12
12
  fill: import("../types/channel.js").ChannelAccessor<unknown>;
13
13
  fillOpacity: import("../types/index.js").ConstantAccessor<number, unknown>;
14
14
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, unknown>;
15
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", unknown>;
15
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, unknown>;
16
16
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, unknown>;
17
17
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, unknown>;
18
18
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, unknown>;
@@ -12,7 +12,7 @@ declare function $$render<Datum extends DataRecord>(): {
12
12
  fill: import("../types/channel.js").ChannelAccessor<Datum>;
13
13
  fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
14
14
  fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
15
- fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
15
+ fontSize: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
16
16
  fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
17
17
  fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
18
18
  fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
@@ -12,7 +12,7 @@ declare function $$render<Datum = DataRecord | GeoJSON.GeoJsonObject>(): {
12
12
  fill: ChannelAccessor<Datum>;
13
13
  fillOpacity: ConstantAccessor<number, Datum>;
14
14
  fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
15
- fontSize: ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
15
+ fontSize: ConstantAccessor<import("csstype").Property.FontSize<number>, Datum>;
16
16
  fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
17
17
  fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
18
18
  fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;