layerchart 0.53.0 → 0.54.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 (34) hide show
  1. package/dist/components/Axis.svelte +51 -94
  2. package/dist/components/Axis.svelte.d.ts +2 -1
  3. package/dist/components/Bars.svelte +2 -1
  4. package/dist/components/Bars.svelte.d.ts +1 -0
  5. package/dist/components/Chart.svelte +6 -4
  6. package/dist/components/Chart.svelte.d.ts +25 -8
  7. package/dist/components/ChartContext.svelte +1 -1
  8. package/dist/components/ChartContext.svelte.d.ts +1 -1
  9. package/dist/components/Grid.svelte +151 -0
  10. package/dist/components/Grid.svelte.d.ts +35 -0
  11. package/dist/components/Labels.svelte +15 -5
  12. package/dist/components/Labels.svelte.d.ts +2 -0
  13. package/dist/components/Legend.svelte +1 -1
  14. package/dist/components/Rule.svelte +20 -4
  15. package/dist/components/Rule.svelte.d.ts +2 -0
  16. package/dist/components/TransformContext.svelte +3 -1
  17. package/dist/components/charts/AreaChart.svelte +59 -35
  18. package/dist/components/charts/AreaChart.svelte.d.ts +40 -2
  19. package/dist/components/charts/BarChart.svelte +63 -29
  20. package/dist/components/charts/BarChart.svelte.d.ts +40 -2
  21. package/dist/components/charts/LineChart.svelte +44 -16
  22. package/dist/components/charts/LineChart.svelte.d.ts +40 -2
  23. package/dist/components/charts/PieChart.svelte +15 -1
  24. package/dist/components/charts/PieChart.svelte.d.ts +16 -1
  25. package/dist/components/charts/ScatterChart.svelte +31 -16
  26. package/dist/components/charts/ScatterChart.svelte.d.ts +38 -2
  27. package/dist/components/index.d.ts +1 -0
  28. package/dist/components/index.js +1 -0
  29. package/dist/components/tooltip/Tooltip.svelte +20 -5
  30. package/dist/components/tooltip/TooltipContext.svelte +2 -1
  31. package/dist/components/tooltip/TooltipContext.svelte.d.ts +7 -0
  32. package/dist/docs/Preview.svelte +24 -11
  33. package/dist/utils/scales.d.ts +1 -1
  34. package/package.json +1 -1
@@ -15,6 +15,8 @@ $: [yRangeMin, yRangeMax] = extent($yRange);
15
15
  * - Use number | Date value for annotation (yScale(value))
16
16
  */
17
17
  export let x = false;
18
+ /** Pixel offset to apply to `x` coordinate */
19
+ export let xOffset = 0;
18
20
  /**
19
21
  * Create a horizontal `y` line
20
22
  * - If true or 'bottom', will draw at chart bottom (yRange[0])
@@ -23,6 +25,8 @@ export let x = false;
23
25
  * - Use number | Date value for annotation (xScale(value))
24
26
  */
25
27
  export let y = false;
28
+ /** Pixel offset to apply to `y` coordinate */
29
+ export let yOffset = 0;
26
30
  function showRule(value, axis) {
27
31
  switch (typeof value) {
28
32
  case 'boolean':
@@ -43,7 +47,7 @@ function showRule(value, axis) {
43
47
  <g class="rule">
44
48
  {#if showRule(x, 'x')}
45
49
  {@const xCoord =
46
- x === true || x === 'left' ? xRangeMin : x === 'right' ? xRangeMax : $xScale(x)}
50
+ x === true || x === 'left' ? xRangeMin : x === 'right' ? xRangeMax : $xScale(x) + xOffset}
47
51
 
48
52
  {#if $radial}
49
53
  {@const [x1, y1] = pointRadial(xCoord, Number(yRangeMin))}
@@ -72,15 +76,27 @@ function showRule(value, axis) {
72
76
  {#if showRule(y, 'y')}
73
77
  {#if $radial}
74
78
  <Circle
75
- r={y === true || y === 'bottom' ? yRangeMax : y === 'top' ? yRangeMin : $yScale(y)}
79
+ r={y === true || y === 'bottom'
80
+ ? yRangeMax
81
+ : y === 'top'
82
+ ? yRangeMin
83
+ : $yScale(y) + yOffset}
76
84
  class={cls('fill-none stroke-surface-content/50', $$props.class)}
77
85
  />
78
86
  {:else}
79
87
  <Line
80
88
  x1={$xRange[0] || 0}
81
89
  x2={$xRange[1] || 0}
82
- y1={y === true || y === 'bottom' ? yRangeMax : y === 'top' ? yRangeMin : $yScale(y)}
83
- y2={y === true || y === 'bottom' ? yRangeMax : y === 'top' ? yRangeMin : $yScale(y)}
90
+ y1={y === true || y === 'bottom'
91
+ ? yRangeMax
92
+ : y === 'top'
93
+ ? yRangeMin
94
+ : $yScale(y) + yOffset}
95
+ y2={y === true || y === 'bottom'
96
+ ? yRangeMax
97
+ : y === 'top'
98
+ ? yRangeMin
99
+ : $yScale(y) + yOffset}
84
100
  {...$$restProps}
85
101
  class={cls('stroke-surface-content/50', $$props.class)}
86
102
  />
@@ -3,7 +3,9 @@ declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
5
  x?: (number | Date | boolean | "left" | "right") | undefined;
6
+ xOffset?: number | undefined;
6
7
  y?: (number | Date | boolean | "top" | "bottom") | undefined;
8
+ yOffset?: number | undefined;
7
9
  };
8
10
  events: {
9
11
  [evt: string]: CustomEvent<any>;
@@ -226,7 +226,9 @@ setTransformContext({
226
226
  // Touch events cause pointer events to be interrupted.
227
227
  // Typically `touch-action: none` works, but doesn't appear to with SVG, but `preventDefault()` works here
228
228
  // https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events#touch-action_css_property
229
- e.preventDefault();
229
+ if (mode !== 'none' && !disablePointer) {
230
+ e.preventDefault();
231
+ }
230
232
  }}
231
233
  on:pointerup={onPointerUp}
232
234
  on:dblclick={onDoubleClick}
@@ -6,6 +6,7 @@ import { format } from '@layerstack/utils';
6
6
  import Area from '../Area.svelte';
7
7
  import Axis from '../Axis.svelte';
8
8
  import Chart from '../Chart.svelte';
9
+ import Grid from '../Grid.svelte';
9
10
  import Highlight from '../Highlight.svelte';
10
11
  import Labels from '../Labels.svelte';
11
12
  import Legend from '../Legend.svelte';
@@ -21,10 +22,12 @@ export let y = undefined;
21
22
  /** Use radial instead of cartesian coordinates, mapping `x` to `angle` and `y`` to radial. Radial lines are positioned relative to the origin, use transform (ex. `<Group center>`) to change the origin */
22
23
  export let radial = false;
23
24
  export let series = [{ key: 'default', value: y, color: 'hsl(var(--color-primary))' }];
25
+ $: isDefaultSeries = series.length === 1 && series[0].key === 'default';
24
26
  /** Determine how to layout series. Overlap (default) or stack */
25
27
  export let seriesLayout = 'overlap';
26
28
  $: stackSeries = seriesLayout.startsWith('stack');
27
29
  export let axis = true;
30
+ export let grid = true;
28
31
  export let rule = true;
29
32
  export let labels = false;
30
33
  export let legend = false;
@@ -57,6 +60,32 @@ $: if (stackSeries) {
57
60
  }
58
61
  // Default xScale based on first data's `x` value
59
62
  $: xScale = accessor(x)(chartData[0]) instanceof Date ? scaleTime() : scaleLinear();
63
+ function getAreaProps(s, i) {
64
+ const lineProps = {
65
+ ...props.line,
66
+ ...(typeof props.area?.line === 'object' ? props.area.line : null),
67
+ ...(typeof s.props?.line === 'object' ? s.props.line : null),
68
+ };
69
+ const areaProps = {
70
+ data: s.data,
71
+ y0: stackSeries ? (d) => d.stackData[i][0] : Array.isArray(s.value) ? s.value[0] : undefined,
72
+ y1: stackSeries
73
+ ? (d) => d.stackData[i][1]
74
+ : Array.isArray(s.value)
75
+ ? s.value[1]
76
+ : (s.value ?? s.key),
77
+ fill: s.color,
78
+ 'fill-opacity': 0.3,
79
+ ...props.area,
80
+ ...s.props,
81
+ line: {
82
+ class: !('stroke-width' in lineProps) ? 'stroke-2' : '',
83
+ stroke: s.color,
84
+ ...lineProps,
85
+ },
86
+ };
87
+ return areaProps;
88
+ }
60
89
  </script>
61
90
 
62
91
  <Chart
@@ -82,20 +111,41 @@ $: xScale = accessor(x)(chartData[0]) instanceof Date ? scaleTime() : scaleLinea
82
111
  let:xScale
83
112
  let:y
84
113
  let:yScale
114
+ let:c
115
+ let:cScale
85
116
  let:width
86
117
  let:height
87
118
  let:padding
88
119
  let:tooltip
89
120
  >
90
- {@const slotProps = { x, xScale, y, yScale, width, height, padding, tooltip, series }}
121
+ {@const slotProps = {
122
+ x,
123
+ xScale,
124
+ y,
125
+ yScale,
126
+ c,
127
+ cScale,
128
+ width,
129
+ height,
130
+ padding,
131
+ tooltip,
132
+ series,
133
+ getAreaProps,
134
+ }}
135
+
91
136
  <slot {...slotProps}>
92
137
  <Svg center={radial}>
138
+ <slot name="grid" {...slotProps}>
139
+ {#if grid}
140
+ <Grid x={radial} y {...typeof grid === 'object' ? grid : null} {...props.grid} />
141
+ {/if}
142
+ </slot>
143
+
93
144
  <slot name="axis" {...slotProps}>
94
145
  {#if axis}
95
146
  {#if axis !== 'x'}
96
147
  <Axis
97
148
  placement={radial ? 'radius' : 'left'}
98
- grid
99
149
  format={(value) => {
100
150
  if (seriesLayout === 'stackExpand') {
101
151
  return format(value, 'percentRound');
@@ -111,7 +161,6 @@ $: xScale = accessor(x)(chartData[0]) instanceof Date ? scaleTime() : scaleLinea
111
161
  {#if axis !== 'y'}
112
162
  <Axis
113
163
  placement={radial ? 'angle' : 'bottom'}
114
- grid={radial}
115
164
  format={(value) => format(value, undefined, { variant: 'short' })}
116
165
  {...typeof axis === 'object' ? axis : null}
117
166
  {...props.xAxis}
@@ -128,34 +177,7 @@ $: xScale = accessor(x)(chartData[0]) instanceof Date ? scaleTime() : scaleLinea
128
177
 
129
178
  <slot name="marks" {...slotProps}>
130
179
  {#each series as s, i}
131
- {@const lineProps = {
132
- ...props.line,
133
- ...(typeof props.area?.line === 'object' ? props.area.line : null),
134
- ...(typeof s.props?.line === 'object' ? s.props.line : null),
135
- }}
136
-
137
- <Area
138
- data={s.data}
139
- y0={stackSeries
140
- ? (d) => d.stackData[i][0]
141
- : Array.isArray(s.value)
142
- ? s.value[0]
143
- : undefined}
144
- y1={stackSeries
145
- ? (d) => d.stackData[i][1]
146
- : Array.isArray(s.value)
147
- ? s.value[1]
148
- : (s.value ?? s.key)}
149
- fill={s.color}
150
- fill-opacity={0.3}
151
- {...props.area}
152
- {...s.props}
153
- line={{
154
- class: !('stroke-width' in lineProps) ? 'stroke-2' : '',
155
- stroke: s.color,
156
- ...lineProps,
157
- }}
158
- />
180
+ <Area {...getAreaProps(s, i)} />
159
181
  {/each}
160
182
  </slot>
161
183
 
@@ -192,10 +214,12 @@ $: xScale = accessor(x)(chartData[0]) instanceof Date ? scaleTime() : scaleLinea
192
214
  <slot name="legend" {...slotProps}>
193
215
  {#if legend}
194
216
  <Legend
195
- scale={scaleOrdinal(
196
- series.map((s) => s.label ?? s.key),
197
- series.map((s) => s.color)
198
- )}
217
+ scale={isDefaultSeries
218
+ ? undefined
219
+ : scaleOrdinal(
220
+ series.map((s) => s.label ?? s.key),
221
+ series.map((s) => s.color)
222
+ )}
199
223
  placement="bottom"
200
224
  variant="swatches"
201
225
  {...props.legend}
@@ -2,6 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import { type ComponentProps } from 'svelte';
3
3
  import Area from '../Area.svelte';
4
4
  import Axis from '../Axis.svelte';
5
+ import Grid from '../Grid.svelte';
5
6
  import Highlight from '../Highlight.svelte';
6
7
  import Labels from '../Labels.svelte';
7
8
  import Legend from '../Legend.svelte';
@@ -77,7 +78,7 @@ declare class __sveltets_Render<TData> {
77
78
  width: number;
78
79
  height: number;
79
80
  }) => number[] | string[]) | undefined;
80
- cRange?: string[];
81
+ cRange?: string[] | readonly string[];
81
82
  xReverse?: boolean;
82
83
  yReverse?: boolean;
83
84
  zReverse?: boolean;
@@ -132,6 +133,13 @@ declare class __sveltets_Render<TData> {
132
133
  onClick?: ({ data }: {
133
134
  data: any;
134
135
  }) => any;
136
+ tooltip?: import("svelte/store").Writable<{
137
+ y: number;
138
+ x: number;
139
+ data: any;
140
+ show: (e: PointerEvent, tooltipData?: any) => void;
141
+ hide: () => void;
142
+ }>;
135
143
  }> | undefined;
136
144
  transform?: Partial<{
137
145
  mode?: "canvas" | "manual" | "none";
@@ -180,6 +188,14 @@ declare class __sveltets_Render<TData> {
180
188
  setScale?: (value: number, options?: import("../../stores/motionStore").MotionOptions) => void;
181
189
  }> | undefined;
182
190
  transformContext?: import("..").TransformContext;
191
+ geoProjection?: import("svelte/store").Writable<import("d3-geo").GeoProjection> | undefined;
192
+ tooltipContext?: import("svelte/store").Writable<{
193
+ y: number;
194
+ x: number;
195
+ data: any;
196
+ show: (e: PointerEvent, tooltipData?: any) => void;
197
+ hide: () => void;
198
+ }> | undefined;
183
199
  } & {
184
200
  axis?: boolean | "x" | "y" | {
185
201
  [x: string]: any;
@@ -187,7 +203,7 @@ declare class __sveltets_Render<TData> {
187
203
  label?: string | undefined;
188
204
  labelPlacement?: ("start" | "middle" | "end") | undefined;
189
205
  labelProps?: Partial<ComponentProps<import("..").Text>> | undefined;
190
- rule?: (boolean | Pick<import("svelte/elements").SVGAttributes<SVGElement>, "class" | "style">) | undefined;
206
+ rule?: (boolean | Partial<ComponentProps<Rule>>) | undefined;
191
207
  grid?: (boolean | Pick<import("svelte/elements").SVGAttributes<SVGElement>, "class" | "style">) | undefined;
192
208
  ticks?: number | any[] | ((scale: import("../../utils/scales").AnyScale) => any) | null | undefined;
193
209
  tickLength?: number | undefined;
@@ -203,8 +219,26 @@ declare class __sveltets_Render<TData> {
203
219
  label?: string;
204
220
  } | undefined;
205
221
  };
222
+ grid?: boolean | {
223
+ [x: string]: any;
224
+ x?: (boolean | Pick<import("svelte/elements").SVGAttributes<SVGElement>, "class" | "style">) | undefined;
225
+ y?: (boolean | Pick<import("svelte/elements").SVGAttributes<SVGElement>, "class" | "style">) | undefined;
226
+ xTicks?: number | any[] | ((scale: import("../../utils/scales").AnyScale) => any) | null | undefined;
227
+ yTicks?: number | any[] | ((scale: import("../../utils/scales").AnyScale) => any) | null | undefined;
228
+ bandAlign?: ("center" | "between") | undefined;
229
+ radialY?: ("circle" | "linear") | undefined;
230
+ spring?: boolean | Parameters<typeof import("svelte/motion").spring>[1];
231
+ tweened?: boolean | Parameters<typeof import("svelte/motion").tweened>[1];
232
+ transitionIn?: (typeof import("svelte/transition").fade | (() => {})) | undefined;
233
+ transitionInParams?: import("svelte-ux").TransitionParams | undefined;
234
+ classes?: {
235
+ root?: string;
236
+ line?: string;
237
+ } | undefined;
238
+ };
206
239
  labels?: boolean | {
207
240
  [x: string]: any;
241
+ value?: Accessor;
208
242
  placement?: ("inside" | "outside" | "center") | undefined;
209
243
  offset?: number | undefined;
210
244
  format?: import("@layerstack/utils").FormatType | undefined;
@@ -248,6 +282,7 @@ declare class __sveltets_Render<TData> {
248
282
  props?: {
249
283
  xAxis?: Partial<ComponentProps<Axis>>;
250
284
  yAxis?: Partial<ComponentProps<Axis>>;
285
+ grid?: Partial<ComponentProps<Grid>>;
251
286
  rule?: Partial<ComponentProps<Rule>>;
252
287
  area?: Partial<ComponentProps<Area>>;
253
288
  line?: Partial<ComponentProps<Line>>;
@@ -259,7 +294,9 @@ declare class __sveltets_Render<TData> {
259
294
  rule?: boolean | {
260
295
  [x: string]: any;
261
296
  x?: (number | Date | boolean | "left" | "right") | undefined;
297
+ xOffset?: number | undefined;
262
298
  y?: (number | Date | boolean | "top" | "bottom") | undefined;
299
+ yOffset?: number | undefined;
263
300
  };
264
301
  series?: {
265
302
  key: string;
@@ -277,6 +314,7 @@ declare class __sveltets_Render<TData> {
277
314
  };
278
315
  slots(): {
279
316
  default: any;
317
+ grid: any;
280
318
  axis: any;
281
319
  'below-marks': any;
282
320
  marks: any;
@@ -6,6 +6,7 @@ import { format } from '@layerstack/utils';
6
6
  import Axis from '../Axis.svelte';
7
7
  import Bars from '../Bars.svelte';
8
8
  import Chart from '../Chart.svelte';
9
+ import Grid from '../Grid.svelte';
9
10
  import Highlight from '../Highlight.svelte';
10
11
  import Labels from '../Labels.svelte';
11
12
  import Legend from '../Legend.svelte';
@@ -22,15 +23,16 @@ export let series = [
22
23
  {
23
24
  key: 'default',
24
25
  value: orientation === 'vertical' ? y : x,
25
- color: 'hsl(var(--color-primary))',
26
26
  },
27
27
  ];
28
+ $: isDefaultSeries = series.length === 1 && series[0].key === 'default';
28
29
  /** Determine how to layout series. Overlap (default), stack, or group side by side */
29
30
  export let seriesLayout = 'overlap';
30
31
  $: stackSeries = seriesLayout.startsWith('stack');
31
32
  $: groupSeries = seriesLayout === 'group';
32
33
  export let axis = true;
33
34
  export let rule = true;
35
+ export let grid = true;
34
36
  export let labels = false;
35
37
  export let legend = false;
36
38
  /** Padding between primary x or y bands/bars, applied to scaleBand().padding() */
@@ -88,6 +90,29 @@ $: if (stackSeries) {
88
90
  };
89
91
  });
90
92
  }
93
+ function getBarsProps(s, i) {
94
+ const barsProps = {
95
+ data: s.data,
96
+ x: !isVertical
97
+ ? stackSeries
98
+ ? (d) => d.stackData[i]
99
+ : (s.value ?? (s.data ? undefined : s.key))
100
+ : undefined,
101
+ y: isVertical
102
+ ? stackSeries
103
+ ? (d) => d.stackData[i]
104
+ : (s.value ?? (s.data ? undefined : s.key))
105
+ : undefined,
106
+ x1: isVertical && groupSeries ? (d) => s.value ?? s.key : undefined,
107
+ y1: !isVertical && groupSeries ? (d) => s.value ?? s.key : undefined,
108
+ radius: 4,
109
+ strokeWidth: 1,
110
+ fill: s.color,
111
+ ...props.bars,
112
+ ...s.props,
113
+ };
114
+ return barsProps;
115
+ }
91
116
  </script>
92
117
 
93
118
  <Chart
@@ -112,6 +137,8 @@ $: if (stackSeries) {
112
137
  {y1Scale}
113
138
  {y1Domain}
114
139
  {y1Range}
140
+ c={isVertical ? y : x}
141
+ cRange={['hsl(var(--color-primary))']}
115
142
  padding={axis === false
116
143
  ? undefined
117
144
  : {
@@ -124,20 +151,45 @@ $: if (stackSeries) {
124
151
  let:xScale
125
152
  let:y
126
153
  let:yScale
154
+ let:c
155
+ let:cScale
127
156
  let:width
128
157
  let:height
129
158
  let:padding
130
159
  let:tooltip
131
160
  >
132
- {@const slotProps = { x, xScale, y, yScale, width, height, padding, tooltip, series }}
161
+ {@const slotProps = {
162
+ x,
163
+ xScale,
164
+ y,
165
+ yScale,
166
+ c,
167
+ cScale,
168
+ width,
169
+ height,
170
+ padding,
171
+ tooltip,
172
+ series,
173
+ getBarsProps,
174
+ }}
133
175
  <slot {...slotProps}>
134
176
  <Svg>
177
+ <slot name="grid" {...slotProps}>
178
+ {#if grid}
179
+ <Grid
180
+ x={!isVertical}
181
+ y={isVertical}
182
+ {...typeof grid === 'object' ? grid : null}
183
+ {...props.grid}
184
+ />
185
+ {/if}
186
+ </slot>
187
+
135
188
  <slot name="axis" {...slotProps}>
136
189
  {#if axis}
137
190
  {#if axis !== 'x'}
138
191
  <Axis
139
192
  placement="left"
140
- grid={isVertical}
141
193
  format={(value) => {
142
194
  if (isVertical && seriesLayout === 'stackExpand') {
143
195
  return format(value, 'percentRound');
@@ -153,7 +205,6 @@ $: if (stackSeries) {
153
205
  {#if axis !== 'y'}
154
206
  <Axis
155
207
  placement="bottom"
156
- grid={!isVertical}
157
208
  format={(value) => {
158
209
  if (!isVertical && seriesLayout === 'stackExpand') {
159
210
  return format(value, 'percentRound');
@@ -176,26 +227,7 @@ $: if (stackSeries) {
176
227
 
177
228
  <slot name="marks" {...slotProps}>
178
229
  {#each series as s, i}
179
- <Bars
180
- data={s.data}
181
- x={!isVertical
182
- ? stackSeries
183
- ? (d) => d.stackData[i]
184
- : (s.value ?? (s.data ? undefined : s.key))
185
- : undefined}
186
- y={isVertical
187
- ? stackSeries
188
- ? (d) => d.stackData[i]
189
- : (s.value ?? (s.data ? undefined : s.key))
190
- : undefined}
191
- x1={isVertical && groupSeries ? (d) => s.value ?? s.key : undefined}
192
- y1={!isVertical && groupSeries ? (d) => s.value ?? s.key : undefined}
193
- radius={4}
194
- strokeWidth={1}
195
- fill={s.color}
196
- {...props.bars}
197
- {...s.props}
198
- />
230
+ <Bars {...getBarsProps(s, i)} />
199
231
  {/each}
200
232
  </slot>
201
233
 
@@ -213,10 +245,12 @@ $: if (stackSeries) {
213
245
  <slot name="legend" {...slotProps}>
214
246
  {#if legend}
215
247
  <Legend
216
- scale={scaleOrdinal(
217
- series.map((s) => s.label ?? s.key),
218
- series.map((s) => s.color)
219
- )}
248
+ scale={isDefaultSeries
249
+ ? undefined
250
+ : scaleOrdinal(
251
+ series.map((s) => s.label ?? s.key),
252
+ series.map((s) => s.color)
253
+ )}
220
254
  placement="bottom"
221
255
  variant="swatches"
222
256
  {...props.legend}
@@ -236,7 +270,7 @@ $: if (stackSeries) {
236
270
  <Tooltip.Item
237
271
  label={s.label ?? (s.key !== 'default' ? s.key : 'value')}
238
272
  value={valueAccessor(data)}
239
- color={s.color}
273
+ color={s.color ?? cScale(c(data))}
240
274
  {format}
241
275
  valueAlign="right"
242
276
  />
@@ -2,6 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import { type ComponentProps } from 'svelte';
3
3
  import Axis from '../Axis.svelte';
4
4
  import Bars from '../Bars.svelte';
5
+ import Grid from '../Grid.svelte';
5
6
  import Highlight from '../Highlight.svelte';
6
7
  import Labels from '../Labels.svelte';
7
8
  import Legend from '../Legend.svelte';
@@ -75,7 +76,7 @@ declare class __sveltets_Render<TData> {
75
76
  width: number;
76
77
  height: number;
77
78
  }) => number[] | string[]) | undefined;
78
- cRange?: string[];
79
+ cRange?: string[] | readonly string[];
79
80
  xReverse?: boolean;
80
81
  yReverse?: boolean;
81
82
  zReverse?: boolean;
@@ -130,6 +131,13 @@ declare class __sveltets_Render<TData> {
130
131
  onClick?: ({ data }: {
131
132
  data: any;
132
133
  }) => any;
134
+ tooltip?: import("svelte/store").Writable<{
135
+ y: number;
136
+ x: number;
137
+ data: any;
138
+ show: (e: PointerEvent, tooltipData?: any) => void;
139
+ hide: () => void;
140
+ }>;
133
141
  }> | undefined;
134
142
  transform?: Partial<{
135
143
  mode?: "canvas" | "manual" | "none";
@@ -178,6 +186,14 @@ declare class __sveltets_Render<TData> {
178
186
  setScale?: (value: number, options?: import("../../stores/motionStore").MotionOptions) => void;
179
187
  }> | undefined;
180
188
  transformContext?: import("..").TransformContext;
189
+ geoProjection?: import("svelte/store").Writable<import("d3-geo").GeoProjection> | undefined;
190
+ tooltipContext?: import("svelte/store").Writable<{
191
+ y: number;
192
+ x: number;
193
+ data: any;
194
+ show: (e: PointerEvent, tooltipData?: any) => void;
195
+ hide: () => void;
196
+ }> | undefined;
181
197
  } & {
182
198
  axis?: boolean | "x" | "y" | {
183
199
  [x: string]: any;
@@ -185,7 +201,7 @@ declare class __sveltets_Render<TData> {
185
201
  label?: string | undefined;
186
202
  labelPlacement?: ("start" | "middle" | "end") | undefined;
187
203
  labelProps?: Partial<ComponentProps<import("..").Text>> | undefined;
188
- rule?: (boolean | Pick<import("svelte/elements").SVGAttributes<SVGElement>, "class" | "style">) | undefined;
204
+ rule?: (boolean | Partial<ComponentProps<Rule>>) | undefined;
189
205
  grid?: (boolean | Pick<import("svelte/elements").SVGAttributes<SVGElement>, "class" | "style">) | undefined;
190
206
  ticks?: number | any[] | ((scale: import("../../utils/scales").AnyScale) => any) | null | undefined;
191
207
  tickLength?: number | undefined;
@@ -201,10 +217,28 @@ declare class __sveltets_Render<TData> {
201
217
  label?: string;
202
218
  } | undefined;
203
219
  };
220
+ grid?: boolean | {
221
+ [x: string]: any;
222
+ x?: (boolean | Pick<import("svelte/elements").SVGAttributes<SVGElement>, "class" | "style">) | undefined;
223
+ y?: (boolean | Pick<import("svelte/elements").SVGAttributes<SVGElement>, "class" | "style">) | undefined;
224
+ xTicks?: number | any[] | ((scale: import("../../utils/scales").AnyScale) => any) | null | undefined;
225
+ yTicks?: number | any[] | ((scale: import("../../utils/scales").AnyScale) => any) | null | undefined;
226
+ bandAlign?: ("center" | "between") | undefined;
227
+ radialY?: ("circle" | "linear") | undefined;
228
+ spring?: boolean | Parameters<typeof import("svelte/motion").spring>[1];
229
+ tweened?: boolean | Parameters<typeof import("svelte/motion").tweened>[1];
230
+ transitionIn?: (typeof import("svelte/transition").fade | (() => {})) | undefined;
231
+ transitionInParams?: import("svelte-ux").TransitionParams | undefined;
232
+ classes?: {
233
+ root?: string;
234
+ line?: string;
235
+ } | undefined;
236
+ };
204
237
  bandPadding?: number;
205
238
  groupPadding?: number;
206
239
  labels?: boolean | {
207
240
  [x: string]: any;
241
+ value?: Accessor;
208
242
  placement?: ("inside" | "outside" | "center") | undefined;
209
243
  offset?: number | undefined;
210
244
  format?: import("@layerstack/utils").FormatType | undefined;
@@ -236,6 +270,7 @@ declare class __sveltets_Render<TData> {
236
270
  props?: {
237
271
  xAxis?: Partial<ComponentProps<Axis>>;
238
272
  yAxis?: Partial<ComponentProps<Axis>>;
273
+ grid?: Partial<ComponentProps<Grid>>;
239
274
  rule?: Partial<ComponentProps<Rule>>;
240
275
  bars?: Partial<ComponentProps<Bars>>;
241
276
  legend?: Partial<ComponentProps<Legend>>;
@@ -245,7 +280,9 @@ declare class __sveltets_Render<TData> {
245
280
  rule?: boolean | {
246
281
  [x: string]: any;
247
282
  x?: (number | Date | boolean | "left" | "right") | undefined;
283
+ xOffset?: number | undefined;
248
284
  y?: (number | Date | boolean | "top" | "bottom") | undefined;
285
+ yOffset?: number | undefined;
249
286
  };
250
287
  series?: {
251
288
  key: string;
@@ -263,6 +300,7 @@ declare class __sveltets_Render<TData> {
263
300
  };
264
301
  slots(): {
265
302
  default: any;
303
+ grid: any;
266
304
  axis: any;
267
305
  'below-marks': any;
268
306
  marks: any;