layerchart 0.0.4 → 0.0.8

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 (48) hide show
  1. package/README.md +2 -37
  2. package/components/Arc.svelte +77 -0
  3. package/components/Arc.svelte.d.ts +34 -0
  4. package/components/Area.svelte +19 -10
  5. package/components/Area.svelte.d.ts +4 -1
  6. package/components/AreaStack.svelte +3 -0
  7. package/components/AreaStack.svelte.d.ts +1 -0
  8. package/components/AxisX.svelte +1 -1
  9. package/components/AxisY.svelte +1 -4
  10. package/components/{Bar.svelte → Bars.svelte} +27 -14
  11. package/components/{Bar.svelte.d.ts → Bars.svelte.d.ts} +10 -4
  12. package/components/ConnectedPoints.svelte +68 -0
  13. package/components/ConnectedPoints.svelte.d.ts +18 -0
  14. package/components/Group.svelte +26 -0
  15. package/components/Group.svelte.d.ts +21 -0
  16. package/components/{HighlightBar.svelte → HighlightRect.svelte} +0 -0
  17. package/components/HighlightRect.svelte.d.ts +18 -0
  18. package/components/{Label.svelte → Labels.svelte} +0 -0
  19. package/components/{Label.svelte.d.ts → Labels.svelte.d.ts} +4 -4
  20. package/components/LinearGradient.svelte +27 -0
  21. package/components/LinearGradient.svelte.d.ts +27 -0
  22. package/components/Path.svelte +19 -15
  23. package/components/Path.svelte.d.ts +4 -2
  24. package/components/Points.svelte +58 -0
  25. package/components/Points.svelte.d.ts +19 -0
  26. package/components/Threshold.svelte +25 -22
  27. package/components/index.d.ts +8 -5
  28. package/components/index.js +8 -5
  29. package/docs/Preview.svelte +7 -3
  30. package/docs/Preview.svelte.d.ts +2 -0
  31. package/index.d.ts +2 -2
  32. package/index.js +2 -2
  33. package/package.json +17 -10
  34. package/stores/motionStore.d.ts +2 -2
  35. package/utils/genData.d.ts +13 -0
  36. package/utils/genData.js +24 -0
  37. package/utils/math.d.ts +4 -0
  38. package/utils/math.js +6 -0
  39. package/utils/path.d.ts +5 -0
  40. package/utils/path.js +14 -0
  41. package/utils/pivot.js +1 -1
  42. package/utils/stack.d.ts +14 -0
  43. package/utils/stack.js +69 -0
  44. package/components/ClevelandDotPlot.svelte +0 -44
  45. package/components/ClevelandDotPlot.svelte.d.ts +0 -21
  46. package/components/HighlightBar.svelte.d.ts +0 -18
  47. package/components/Scatter.svelte +0 -25
  48. package/components/Scatter.svelte.d.ts +0 -33
package/README.md CHANGED
@@ -1,38 +1,3 @@
1
- # create-svelte
1
+ # layerchart
2
2
 
3
- Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte);
4
-
5
- ## Creating a project
6
-
7
- If you're seeing this, you've probably already done this step. Congrats!
8
-
9
- ```bash
10
- # create a new project in the current directory
11
- npm init svelte@next
12
-
13
- # create a new project in my-app
14
- npm init svelte@next my-app
15
- ```
16
-
17
- > Note: the `@next` is temporary
18
-
19
- ## Developing
20
-
21
- Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
22
-
23
- ```bash
24
- npm run dev
25
-
26
- # or start the server and open the app in a new browser tab
27
- npm run dev -- --open
28
- ```
29
-
30
- ## Building
31
-
32
- Before creating a production version of your app, install an [adapter](https://kit.svelte.dev/docs#adapters) for your target environment. Then:
33
-
34
- ```bash
35
- npm run build
36
- ```
37
-
38
- > You can preview the built app with `npm run preview`, regardless of whether you installed an adapter. This should _not_ be used to serve your app in production.
3
+ WIP
@@ -0,0 +1,77 @@
1
+ <script >/*
2
+ TODO:
3
+ - [ ] Chart usage
4
+ - [x] Track on/off and pass props
5
+ - [x] Text configuration / slot?
6
+ - [ ] Pie usage (second dimension?)
7
+ - [x] style / class (gradient, etc)
8
+ - [ ] Allow spring/tweened to be reactive (but ignore value)
9
+ */
10
+ // https://caniuse.com/#feat=css-conic-gradients
11
+ // https://css-tricks.com/snippets/css/css-conic-gradient/
12
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/conic-gradient
13
+ import { arc as d3arc } from 'd3-shape';
14
+ import { scaleLinear } from 'd3-scale';
15
+ import { getMotionStore } from '../stores/motionStore';
16
+ import { degreesToRadians } from '../utils/math';
17
+ export let spring = undefined;
18
+ export let tweened = undefined;
19
+ export let value = 0;
20
+ let tweened_value = getMotionStore(value, { spring, tweened });
21
+ $: tweened_value.set(value);
22
+ export let domain = [0, 100];
23
+ export let range = [0, 360]; // degrees
24
+ export let innerRadius = 50;
25
+ export let outerRadius = 60;
26
+ export let cornerRadius = 10;
27
+ export let padAngle = 0;
28
+ export let padRadius = 0;
29
+ export let track = false;
30
+ $: scale = scaleLinear().domain(domain).range(range);
31
+ $: startAngle = degreesToRadians(range[0]);
32
+ $: endAngle = degreesToRadians(range[1]);
33
+ $: valueAngle = degreesToRadians(scale($tweened_value));
34
+ $: arc = d3arc()
35
+ .innerRadius(innerRadius)
36
+ .outerRadius(outerRadius)
37
+ .startAngle(startAngle)
38
+ .endAngle(valueAngle)
39
+ .cornerRadius(cornerRadius)
40
+ .padAngle(padAngle);
41
+ // .padRadius(padRadius);
42
+ $: trackArc = d3arc()
43
+ .innerRadius(innerRadius)
44
+ .outerRadius(outerRadius)
45
+ .startAngle(startAngle)
46
+ .endAngle(endAngle)
47
+ .cornerRadius(cornerRadius)
48
+ .padAngle(padAngle);
49
+ // .padRadius(padRadius);
50
+ $: trackArcCentroid = trackArc.centroid();
51
+ // $: console.log(trackArcCentroid)
52
+ let trackArcEl;
53
+ $: boundingBox = trackArc && trackArcEl ? trackArcEl.getBBox() : {};
54
+ // $: console.log(boundingBox)
55
+ $: labelArcCenterOffset = {
56
+ x: outerRadius - boundingBox.width / 2,
57
+ // x: 0,
58
+ y: (outerRadius - boundingBox.height / 2) * -1
59
+ };
60
+ // $: console.log(labelArcCenterOffset)
61
+ $: labelArcBottomOffset = {
62
+ // x: outerRadius - boundingBox.width / 2,
63
+ x: outerRadius - boundingBox.width / 2,
64
+ // x: 0,
65
+ // y: (outerRadius - boundingBox.height) * -1
66
+ y: (outerRadius - boundingBox.height) * -1
67
+ };
68
+ // $: console.log(labelArcBottomOffset)
69
+ </script>
70
+
71
+ {#if track}
72
+ <path d={trackArc()} class="track" bind:this={trackArcEl} {...track} />
73
+ {/if}
74
+
75
+ <path d={arc()} {...$$restProps} />
76
+
77
+ <slot value={$tweened_value} centroid={trackArcCentroid} {boundingBox} />
@@ -0,0 +1,34 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { spring as springStore, tweened as tweenedStore } from 'svelte/motion';
3
+ declare const __propDef: {
4
+ props: {
5
+ [x: string]: any;
6
+ spring?: boolean | Parameters<typeof springStore>[1];
7
+ tweened?: boolean | Parameters<typeof tweenedStore>[1];
8
+ value?: number;
9
+ domain?: number[];
10
+ range?: number[];
11
+ innerRadius?: number;
12
+ outerRadius?: number;
13
+ cornerRadius?: number;
14
+ padAngle?: number;
15
+ padRadius?: number;
16
+ track?: boolean | svelte.JSX.SVGProps<SVGPathElement>;
17
+ };
18
+ events: {
19
+ [evt: string]: CustomEvent<any>;
20
+ };
21
+ slots: {
22
+ default: {
23
+ value: any;
24
+ centroid: [number, number];
25
+ boundingBox: any;
26
+ };
27
+ };
28
+ };
29
+ export declare type ArcProps = typeof __propDef.props;
30
+ export declare type ArcEvents = typeof __propDef.events;
31
+ export declare type ArcSlots = typeof __propDef.slots;
32
+ export default class Arc extends SvelteComponentTyped<ArcProps, ArcEvents, ArcSlots> {
33
+ }
34
+ export {};
@@ -1,5 +1,7 @@
1
1
  <script >import { getContext } from 'svelte';
2
2
  import { area as d3Area } from 'd3-shape';
3
+ import { interpolatePath } from 'd3-interpolate-path';
4
+ import { getMotionStore } from '../stores/motionStore';
3
5
  import Path from './Path.svelte';
4
6
  const { data: contextData, xGet, yGet, yRange } = getContext('LayerCake');
5
7
  // Properties to override what is used from context
@@ -9,28 +11,35 @@ export let y0 = undefined; // TODO: Update Type
9
11
  export let y1 = undefined; // TODO: Update Type
10
12
  export let pathData = undefined;
11
13
  export let clipPath = undefined;
14
+ export let tweened = undefined;
12
15
  export let curve = undefined;
13
16
  export let defined = undefined;
14
17
  export let color = 'var(--color-blue-500)';
15
18
  export let opacity = 0.3;
16
19
  export let line = false;
17
- $: path = d3Area()
18
- .x(x ?? $xGet)
19
- .y0(y0 ?? $yRange[0])
20
- .y1(y1 ?? $yGet);
21
- $: if (curve)
22
- path.curve(curve);
23
- $: if (defined)
24
- path.defined(defined);
20
+ $: tweenedOptions = tweened ? { interpolate: interpolatePath, ...tweened } : false;
21
+ $: tweened_d = getMotionStore('', { tweened: tweenedOptions });
22
+ $: {
23
+ const path = d3Area()
24
+ .x(x ?? $xGet)
25
+ .y0(y0 ?? $yRange[0])
26
+ .y1(y1 ?? $yGet);
27
+ if (curve)
28
+ path.curve(curve);
29
+ if (defined)
30
+ path.defined(defined);
31
+ const d = pathData ?? path(data ?? $contextData);
32
+ tweened_d.set(d);
33
+ }
25
34
  </script>
26
35
 
27
36
  {#if line}
28
- <Path {curve} {defined} {color} {...line} />
37
+ <Path {curve} {defined} {color} {tweened} {...line} />
29
38
  {/if}
30
39
 
31
40
  <path
32
41
  class="path-area"
33
- d={pathData ?? path(data ?? $contextData)}
42
+ d={$tweened_d}
34
43
  clip-path={clipPath}
35
44
  fill={color}
36
45
  fill-opacity={opacity}
@@ -1,4 +1,6 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
+ import type { tweened as tweenedStore } from 'svelte/motion';
3
+ import { Area } from 'd3-shape';
2
4
  import type { CurveFactory } from 'd3-shape';
3
5
  declare const __propDef: {
4
6
  props: {
@@ -9,8 +11,9 @@ declare const __propDef: {
9
11
  y1?: any;
10
12
  pathData?: string;
11
13
  clipPath?: string;
14
+ tweened?: boolean | Parameters<typeof tweenedStore>[1];
12
15
  curve?: CurveFactory;
13
- defined?: (d: [number, number], index: number, data: [number, number][]) => boolean;
16
+ defined?: Parameters<Area<any>['defined']>[0];
14
17
  color?: string;
15
18
  opacity?: number;
16
19
  line?: boolean | any;
@@ -6,6 +6,7 @@ export let curve = undefined;
6
6
  export let defined = undefined;
7
7
  export let opacity = 0.3;
8
8
  export let line = false;
9
+ export let tweened = undefined;
9
10
  // Render in reverse order so bottom stacks are rendered last (and stack above the upper stacks). Fixes when upper stack has 0 value
10
11
  $: lineData = [...$data].reverse();
11
12
  </script>
@@ -19,6 +20,7 @@ $: lineData = [...$data].reverse();
19
20
  color={$zGet(seriesData)}
20
21
  {curve}
21
22
  {defined}
23
+ {tweened}
22
24
  {...line}
23
25
  />
24
26
  {/each}
@@ -35,6 +37,7 @@ $: lineData = [...$data].reverse();
35
37
  {curve}
36
38
  {defined}
37
39
  {opacity}
40
+ {tweened}
38
41
  />
39
42
  {/each}
40
43
  </g>
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  defined?: (d: any, index: number, data: any[]) => boolean;
7
7
  opacity?: number;
8
8
  line?: boolean | any;
9
+ tweened?: boolean | Parameters<typeof tweenedStore>[1];
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -22,7 +22,7 @@ $: tickVals = Array.isArray(ticks)
22
22
  {#each tickVals as tick, i}
23
23
  <g class="tick tick-{tick}" transform="translate({$xScale(tick)},{$yRange[0]})">
24
24
  {#if gridlines !== false}
25
- <line y1={$height * -1} y2="0" x1="0" x2="0" />
25
+ <line y1={$height * -1} y2="0" x1="0" x2="0" {...gridlines} />
26
26
  {/if}
27
27
  <Text
28
28
  x={xTick || isBand ? $xScale.bandwidth() / 2 : 0}
@@ -30,6 +30,7 @@ $: tickVals = Array.isArray(ticks)
30
30
  x2={$width + $padding.left}
31
31
  y1={yTick + (isBand ? $yScale.bandwidth() / 2 : 0)}
32
32
  y2={yTick + (isBand ? $yScale.bandwidth() / 2 : 0)}
33
+ {...gridlines}
33
34
  />
34
35
  {/if}
35
36
  <!-- <circle
@@ -62,8 +63,4 @@ $: tickVals = Array.isArray(ticks)
62
63
  stroke: #e0e0e0;
63
64
  /* stroke-dasharray: 2; */
64
65
  }
65
-
66
- .tick.tick-0 line {
67
- stroke-dasharray: 0;
68
- }
69
66
  </style>
@@ -1,23 +1,34 @@
1
1
  <script >import { getContext } from 'svelte';
2
2
  import { scaleBand } from 'd3-scale';
3
3
  import { max, min } from 'd3-array';
4
- import Rect from './Rect.svelte';
5
4
  import { unique } from 'svelte-ux/utils/array';
6
- const { data, flatData, xGet, yRange, xScale, yScale, x, y, rGet, config } = getContext('LayerCake');
5
+ import Rect from './Rect.svelte';
6
+ const { data, flatData, xGet, yRange, xScale, yScale, x: xContext, y: yContext, rGet, config } = getContext('LayerCake');
7
+ /**
8
+ * Override `x` from context. Useful for multiple Bar instances
9
+ */
10
+ export let x = $xContext;
11
+ // Convert x to function
12
+ $: _x = x ? (typeof x === 'string' ? (d) => d[x] : x) : $xContext;
13
+ /**
14
+ * Override `y` from context. Useful for multiple Bar instances
15
+ */
16
+ export let y = $yContext;
17
+ $: _y = y ? (typeof y === 'string' ? (d) => d[y] : y) : $yContext;
7
18
  /*
8
- TODO: Support vertical/horizontal layout
9
- - https://layercake.graphics/example/Bar
10
- - https://layercake.graphics/example/Column
11
- - https://layercake.graphics/example/BarStacked
12
- - https://layercake.graphics/example/ColumnStacked
19
+ TODO:
20
+ - [ ] Support vertical/horizontal layout (Bar/Column)
13
21
  */
14
22
  export let color = 'var(--color-blue-500)';
15
23
  export let opacity = 1;
16
24
  export let stroke = 'black';
17
25
  export let strokeWidth = 0;
18
26
  export let radius = 0;
19
- export let getKey = (item) => $x(item);
27
+ export let getKey = (item) => _x(item);
20
28
  export let getProps = undefined;
29
+ export let widthOffset = 0;
30
+ export let spring = undefined;
31
+ export let tweened = undefined;
21
32
  // See: https://svelte.dev/repl/7000c5ce05b84cd98ccbfb2768b4be3d?version=3.38.3
22
33
  export let groupBy = undefined;
23
34
  // export let delay = 300;
@@ -26,17 +37,17 @@ $: groupKeys = unique($flatData.map((d) => d[groupBy]));
26
37
  $: x1Scale = scaleBand().domain(groupKeys).range([0, $xScale.bandwidth()]).paddingInner(0.2);
27
38
  $: getDimensions = (item) => {
28
39
  // console.log({ item, y: $y(item) });
29
- const x = $xGet(item) + (groupBy ? x1Scale(item[groupBy]) : 0);
40
+ const x = $xGet(item) + (groupBy ? x1Scale(item[groupBy]) : 0) - widthOffset / 2;
30
41
  // TODO: Do we need to support the non-bandwidth scale?
31
42
  // const width = $xScale.bandwidth
32
43
  // ? $xScale.bandwidth()
33
44
  // : Math.max(0, $xGet(d)[1] - $xGet(d)[0]);
34
- const width = groupBy ? x1Scale.bandwidth() : $xScale.bandwidth();
35
- const yValue = $y(item);
45
+ const width = (groupBy ? x1Scale.bandwidth() : $xScale.bandwidth()) + widthOffset;
46
+ const yValue = _y(item);
36
47
  let yTop = 0;
37
48
  let yBottom = 0;
38
49
  if (Array.isArray(yValue)) {
39
- // Array contains both top and bottom values;
50
+ // Array contains both top and bottom values (stack, etc);
40
51
  yTop = max(yValue);
41
52
  yBottom = min(yValue);
42
53
  }
@@ -64,7 +75,7 @@ $: getDimensions = (item) => {
64
75
  };
65
76
  function getColor(item, index) {
66
77
  if (typeof color === 'function') {
67
- return color({ value: $y(item), item, index });
78
+ return color({ value: _y(item), item, index });
68
79
  }
69
80
  else if ($config.r) {
70
81
  return $rGet(item);
@@ -85,8 +96,10 @@ function getColor(item, index) {
85
96
  {stroke}
86
97
  stroke-width={strokeWidth}
87
98
  rx={radius}
99
+ {spring}
100
+ {tweened}
88
101
  {...getDimensions(item)}
89
- {...getProps?.({ value: $y(item), item, index })}
102
+ {...getProps?.({ value: _y(item), item, index })}
90
103
  {...$$restProps}
91
104
  />
92
105
  {/each}
@@ -1,7 +1,10 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
+ import type { spring as springStore, tweened as tweenedStore } from 'svelte/motion';
2
3
  declare const __propDef: {
3
4
  props: {
4
5
  [x: string]: any;
6
+ x?: any;
7
+ y?: any;
5
8
  color?: string | ((obj: {
6
9
  value: any;
7
10
  item: any;
@@ -17,6 +20,9 @@ declare const __propDef: {
17
20
  item: any;
18
21
  index: number;
19
22
  }) => any;
23
+ widthOffset?: number;
24
+ spring?: boolean | Parameters<typeof springStore>[1];
25
+ tweened?: boolean | Parameters<typeof tweenedStore>[1];
20
26
  groupBy?: string;
21
27
  };
22
28
  events: {
@@ -24,9 +30,9 @@ declare const __propDef: {
24
30
  };
25
31
  slots: {};
26
32
  };
27
- export declare type BarProps = typeof __propDef.props;
28
- export declare type BarEvents = typeof __propDef.events;
29
- export declare type BarSlots = typeof __propDef.slots;
30
- export default class Bar extends SvelteComponentTyped<BarProps, BarEvents, BarSlots> {
33
+ export declare type BarsProps = typeof __propDef.props;
34
+ export declare type BarsEvents = typeof __propDef.events;
35
+ export declare type BarsSlots = typeof __propDef.slots;
36
+ export default class Bars extends SvelteComponentTyped<BarsProps, BarsEvents, BarsSlots> {
31
37
  }
32
38
  export {};
@@ -0,0 +1,68 @@
1
+ <script >/*
2
+ TODO:
3
+ - [ ] Consider becoming LinkLine using d3-path buider https://github.com/d3/d3-path
4
+ - https://github.com/airbnb/visx/blob/master/packages/visx-shape/src/shapes/link/line/LinkHorizontalLine.tsx
5
+ */
6
+ import { getContext } from 'svelte';
7
+ import { extent } from 'd3-array';
8
+ import Line from './Line.svelte';
9
+ const context = getContext('LayerCake');
10
+ const { data, xGet, yGet, config } = context;
11
+ export let offsetX = 0;
12
+ export let offsetY = 0;
13
+ function getOffset(value, offset) {
14
+ if (typeof offset === 'function') {
15
+ return offset(value, context);
16
+ }
17
+ else {
18
+ return offset;
19
+ }
20
+ }
21
+ $: points = $data.flatMap((d) => {
22
+ if (Array.isArray($config.x)) {
23
+ /*
24
+ x={["prop1" ,"prop2"]}
25
+ y="prop3"
26
+ */
27
+ const [xMin, xMax] = extent($xGet(d));
28
+ return {
29
+ x1: xMin + getOffset(xMin, offsetX),
30
+ y1: $yGet(d) + getOffset($yGet(d), offsetY),
31
+ x2: xMax + getOffset(xMax, offsetX),
32
+ y2: $yGet(d) + getOffset($yGet(d), offsetY)
33
+ };
34
+ }
35
+ else if (Array.isArray($config.y)) {
36
+ /*
37
+ x="prop1"
38
+ y={["prop2" ,"prop3"]}
39
+ */
40
+ const [yMin, yMax] = extent($yGet(d));
41
+ return {
42
+ x1: $xGet(d) + getOffset($xGet(d), offsetX),
43
+ y1: yMin + getOffset(yMin, offsetY),
44
+ x2: $xGet(d) + getOffset($xGet(d), offsetX),
45
+ y2: yMax + getOffset(yMax, offsetY)
46
+ };
47
+ }
48
+ else {
49
+ /*
50
+ x="prop1"
51
+ y="prop2"
52
+ */
53
+ // Not really supported (nothing to connect...)
54
+ return {
55
+ x1: $xGet(d) + getOffset($xGet(d), offsetX),
56
+ y1: $yGet(d) + getOffset($yGet(d), offsetY),
57
+ x2: $xGet(d) + getOffset($xGet(d), offsetX),
58
+ y2: $yGet(d) + getOffset($yGet(d), offsetY)
59
+ };
60
+ }
61
+ });
62
+ </script>
63
+
64
+ <g class="connected-points">
65
+ {#each points as p}
66
+ <Line x1={p.x1} y1={p.y1} x2={p.x2} y2={p.y2} {...$$restProps} />
67
+ {/each}
68
+ </g>
@@ -0,0 +1,18 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ offsetX?: number | ((value: number, context: any) => number);
6
+ offsetY?: number | ((value: number, context: any) => number);
7
+ };
8
+ events: {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {};
12
+ };
13
+ export declare type ConnectedPointsProps = typeof __propDef.props;
14
+ export declare type ConnectedPointsEvents = typeof __propDef.events;
15
+ export declare type ConnectedPointsSlots = typeof __propDef.slots;
16
+ export default class ConnectedPoints extends SvelteComponentTyped<ConnectedPointsProps, ConnectedPointsEvents, ConnectedPointsSlots> {
17
+ }
18
+ export {};
@@ -0,0 +1,26 @@
1
+ <script >import { getContext } from 'svelte';
2
+ /**
3
+ * Translate x
4
+ */
5
+ export let x;
6
+ /**
7
+ * Translate x
8
+ */
9
+ export let y;
10
+ /**
11
+ * Center within chart
12
+ */
13
+ export let center;
14
+ const { width, height } = getContext('LayerCake');
15
+ let transform = undefined;
16
+ $: if (x != null || y != null) {
17
+ transform = `translate(${x ?? 0}, ${y ?? 0})`;
18
+ }
19
+ $: if (center) {
20
+ transform = `translate(${$width / 2}, ${$height / 2})`;
21
+ }
22
+ </script>
23
+
24
+ <g {transform} {...$$restProps}>
25
+ <slot />
26
+ </g>
@@ -0,0 +1,21 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ x: number;
6
+ y: number;
7
+ center: boolean;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {
13
+ default: {};
14
+ };
15
+ };
16
+ export declare type GroupProps = typeof __propDef.props;
17
+ export declare type GroupEvents = typeof __propDef.events;
18
+ export declare type GroupSlots = typeof __propDef.slots;
19
+ export default class Group extends SvelteComponentTyped<GroupProps, GroupEvents, GroupSlots> {
20
+ }
21
+ export {};
@@ -0,0 +1,18 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ data: any;
5
+ };
6
+ events: {
7
+ click: MouseEvent;
8
+ } & {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {};
12
+ };
13
+ export declare type HighlightRectProps = typeof __propDef.props;
14
+ export declare type HighlightRectEvents = typeof __propDef.events;
15
+ export declare type HighlightRectSlots = typeof __propDef.slots;
16
+ export default class HighlightRect extends SvelteComponentTyped<HighlightRectProps, HighlightRectEvents, HighlightRectSlots> {
17
+ }
18
+ export {};
File without changes
@@ -14,9 +14,9 @@ declare const __propDef: {
14
14
  };
15
15
  slots: {};
16
16
  };
17
- export declare type LabelProps = typeof __propDef.props;
18
- export declare type LabelEvents = typeof __propDef.events;
19
- export declare type LabelSlots = typeof __propDef.slots;
20
- export default class Label extends SvelteComponentTyped<LabelProps, LabelEvents, LabelSlots> {
17
+ export declare type LabelsProps = typeof __propDef.props;
18
+ export declare type LabelsEvents = typeof __propDef.events;
19
+ export declare type LabelsSlots = typeof __propDef.slots;
20
+ export default class Labels extends SvelteComponentTyped<LabelsProps, LabelsEvents, LabelsSlots> {
21
21
  }
22
22
  export {};
@@ -0,0 +1,27 @@
1
+ <script >export let id;
2
+ export let from;
3
+ export let to;
4
+ export let vertical = false;
5
+ export let x1 = '0%';
6
+ export let y1 = '0%';
7
+ export let x2 = vertical ? '0%' : '100%';
8
+ export let y2 = vertical ? '100%' : '0%';
9
+ export let rotate = undefined;
10
+ </script>
11
+
12
+ <defs>
13
+ <linearGradient
14
+ {id}
15
+ {x1}
16
+ {y1}
17
+ {x2}
18
+ {y2}
19
+ gradientTransform={rotate ? `rotate(${rotate})` : ''}
20
+ {...$$restProps}
21
+ >
22
+ <slot>
23
+ <stop offset="0%" stop-color={from} />
24
+ <stop offset="100%" stop-color={to} />
25
+ </slot>
26
+ </linearGradient>
27
+ </defs>
@@ -0,0 +1,27 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ id: string;
6
+ from: string;
7
+ to: string;
8
+ vertical?: boolean;
9
+ x1?: string;
10
+ y1?: string;
11
+ x2?: string;
12
+ y2?: string;
13
+ rotate?: number;
14
+ };
15
+ events: {
16
+ [evt: string]: CustomEvent<any>;
17
+ };
18
+ slots: {
19
+ default: {};
20
+ };
21
+ };
22
+ export declare type LinearGradientProps = typeof __propDef.props;
23
+ export declare type LinearGradientEvents = typeof __propDef.events;
24
+ export declare type LinearGradientSlots = typeof __propDef.slots;
25
+ export default class LinearGradient extends SvelteComponentTyped<LinearGradientProps, LinearGradientEvents, LinearGradientSlots> {
26
+ }
27
+ export {};