layerchart 2.0.0-next.44 → 2.0.0-next.45

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 (177) hide show
  1. package/LICENSE +1 -1
  2. package/dist/components/AnnotationLine.svelte +1 -1
  3. package/dist/components/AnnotationPoint.svelte +1 -1
  4. package/dist/components/AnnotationRange.svelte +16 -15
  5. package/dist/components/Arc.svelte +10 -10
  6. package/dist/components/Arc.svelte.d.ts +4 -4
  7. package/dist/components/Arc.svelte.test.d.ts +1 -0
  8. package/dist/components/Arc.svelte.test.js +868 -0
  9. package/dist/components/Area.svelte +9 -7
  10. package/dist/components/Axis.svelte +2 -1
  11. package/dist/components/Axis.svelte.d.ts +1 -0
  12. package/dist/components/Bar.svelte +3 -3
  13. package/dist/components/Bars.svelte +1 -1
  14. package/dist/components/Blur.svelte +3 -3
  15. package/dist/components/Bounds.svelte +1 -1
  16. package/dist/components/BrushContext.svelte +1 -1
  17. package/dist/components/Calendar.svelte +2 -2
  18. package/dist/components/Calendar.svelte.d.ts +1 -1
  19. package/dist/components/Chart.svelte +63 -137
  20. package/dist/components/Chart.svelte.d.ts +23 -88
  21. package/dist/components/ChartClipPath.svelte +1 -1
  22. package/dist/components/Circle.svelte +17 -8
  23. package/dist/components/Circle.svelte.d.ts +3 -0
  24. package/dist/components/ClipPath.svelte +4 -4
  25. package/dist/components/Connector.svelte +4 -4
  26. package/dist/components/Connector.svelte.d.ts +3 -3
  27. package/dist/components/Ellipse.svelte +7 -7
  28. package/dist/components/Frame.svelte +1 -1
  29. package/dist/components/GeoContext.svelte +4 -20
  30. package/dist/components/GeoContext.svelte.d.ts +2 -6
  31. package/dist/components/GeoEdgeFade.svelte +1 -1
  32. package/dist/components/GeoPath.svelte +42 -107
  33. package/dist/components/GeoPath.svelte.d.ts +5 -4
  34. package/dist/components/GeoPoint.svelte +5 -5
  35. package/dist/components/GeoSpline.svelte +2 -14
  36. package/dist/components/GeoSpline.svelte.d.ts +1 -1
  37. package/dist/components/GeoTile.svelte +7 -6
  38. package/dist/components/GeoVisible.svelte +1 -1
  39. package/dist/components/Graticule.svelte +4 -7
  40. package/dist/components/Graticule.svelte.d.ts +2 -1
  41. package/dist/components/Grid.svelte +1 -1
  42. package/dist/components/Group.svelte +8 -8
  43. package/dist/components/Highlight.svelte +18 -16
  44. package/dist/components/Hull.svelte +2 -2
  45. package/dist/components/Labels.svelte +1 -1
  46. package/dist/components/Legend.svelte +1 -1
  47. package/dist/components/Line.svelte +9 -7
  48. package/dist/components/LinearGradient.svelte +8 -7
  49. package/dist/components/MonthPath.svelte +5 -11
  50. package/dist/components/MonthPath.svelte.d.ts +2 -2
  51. package/dist/components/Pack.svelte +4 -6
  52. package/dist/components/Pack.svelte.d.ts +2 -4
  53. package/dist/components/Partition.svelte +4 -3
  54. package/dist/components/Partition.svelte.d.ts +2 -1
  55. package/dist/components/Path.svelte +344 -0
  56. package/dist/components/Path.svelte.d.ts +72 -0
  57. package/dist/components/Pattern.svelte +6 -6
  58. package/dist/components/Pie.svelte +2 -2
  59. package/dist/components/Pie.svelte.d.ts +1 -1
  60. package/dist/components/Point.svelte +1 -1
  61. package/dist/components/Points.svelte +1 -1
  62. package/dist/components/Polygon.svelte +8 -6
  63. package/dist/components/RadialGradient.svelte +7 -7
  64. package/dist/components/Rect.svelte +32 -10
  65. package/dist/components/Rect.svelte.d.ts +4 -1
  66. package/dist/components/Rule.svelte +1 -1
  67. package/dist/components/Sankey.svelte +1 -1
  68. package/dist/components/Spline.svelte +13 -337
  69. package/dist/components/Spline.svelte.d.ts +10 -73
  70. package/dist/components/Text.svelte +9 -7
  71. package/dist/components/Threshold.svelte +3 -3
  72. package/dist/components/TransformContext.svelte +10 -143
  73. package/dist/components/TransformControls.svelte +2 -2
  74. package/dist/components/TransformControls.svelte.d.ts +1 -1
  75. package/dist/components/Tree.svelte +4 -3
  76. package/dist/components/Tree.svelte.d.ts +2 -1
  77. package/dist/components/Treemap.svelte +4 -3
  78. package/dist/components/Treemap.svelte.d.ts +2 -1
  79. package/dist/components/Voronoi.svelte +5 -5
  80. package/dist/components/charts/ArcChart.svelte +14 -6
  81. package/dist/components/charts/ArcChart.svelte.d.ts +1 -1
  82. package/dist/components/charts/AreaChart.svelte +12 -6
  83. package/dist/components/charts/BarChart.svelte +12 -6
  84. package/dist/components/charts/DefaultTooltip.svelte +1 -1
  85. package/dist/components/charts/LineChart.svelte +12 -6
  86. package/dist/components/charts/PieChart.svelte +14 -6
  87. package/dist/components/charts/PieChart.svelte.d.ts +1 -1
  88. package/dist/components/charts/ScatterChart.svelte +11 -9
  89. package/dist/components/charts/types.d.ts +7 -6
  90. package/dist/components/index.d.ts +14 -12
  91. package/dist/components/index.js +14 -12
  92. package/dist/components/{layout → layers}/Canvas.svelte +13 -60
  93. package/dist/components/{layout → layers}/Canvas.svelte.d.ts +2 -32
  94. package/dist/components/{layout → layers}/Html.svelte +18 -3
  95. package/dist/components/{layout → layers}/Html.svelte.d.ts +7 -0
  96. package/dist/components/layers/Layer.svelte +85 -0
  97. package/dist/components/{layout → layers}/Layer.svelte.d.ts +7 -3
  98. package/dist/components/{layout → layers}/Svg.svelte +18 -3
  99. package/dist/components/{layout → layers}/Svg.svelte.d.ts +7 -0
  100. package/dist/components/{layout → layers}/WebGL.svelte +1 -1
  101. package/dist/components/{layout → layers}/WebGL.svelte.d.ts +3 -3
  102. package/dist/components/tests/TestHarness.svelte +76 -0
  103. package/dist/components/tests/TestHarness.svelte.d.ts +19 -0
  104. package/dist/components/tooltip/Tooltip.svelte +3 -3
  105. package/dist/components/tooltip/Tooltip.svelte.d.ts +1 -1
  106. package/dist/components/tooltip/TooltipContext.svelte +13 -45
  107. package/dist/components/tooltip/TooltipContext.svelte.d.ts +2 -14
  108. package/dist/components/tooltip/tooltipMetaContext.d.ts +2 -2
  109. package/dist/components/tooltip/tooltipMetaContext.js +2 -2
  110. package/dist/contexts/canvas.d.ts +33 -0
  111. package/dist/contexts/canvas.js +14 -0
  112. package/dist/contexts/chart.d.ts +84 -0
  113. package/dist/contexts/chart.js +10 -0
  114. package/dist/contexts/geo.d.ts +6 -0
  115. package/dist/contexts/geo.js +12 -0
  116. package/dist/contexts/index.d.ts +6 -0
  117. package/dist/contexts/index.js +6 -0
  118. package/dist/contexts/layer.d.ts +3 -0
  119. package/dist/contexts/layer.js +8 -0
  120. package/dist/contexts/settings.d.ts +4 -0
  121. package/dist/contexts/settings.js +10 -0
  122. package/dist/contexts/tooltip.d.ts +15 -0
  123. package/dist/contexts/tooltip.js +8 -0
  124. package/dist/contexts/transform.d.ts +95 -0
  125. package/dist/contexts/transform.js +10 -0
  126. package/dist/index.d.ts +1 -0
  127. package/dist/index.js +1 -0
  128. package/dist/states/settings.svelte.d.ts +12 -0
  129. package/dist/states/settings.svelte.js +10 -0
  130. package/dist/states/transform.svelte.d.ts +9 -0
  131. package/dist/states/transform.svelte.js +31 -0
  132. package/dist/utils/arcText.svelte.d.ts +1 -1
  133. package/dist/utils/canvas.d.ts +7 -3
  134. package/dist/utils/canvas.js +78 -11
  135. package/dist/utils/common.d.ts +8 -1
  136. package/dist/utils/common.js +9 -10
  137. package/dist/utils/index.d.ts +2 -0
  138. package/dist/utils/index.js +2 -0
  139. package/dist/utils/motion.svelte.js +0 -1
  140. package/dist/utils/rect.svelte.d.ts +1 -1
  141. package/dist/utils/rect.svelte.js +17 -9
  142. package/dist/utils/string.d.ts +3 -1
  143. package/package.json +32 -54
  144. package/README.md +0 -41
  145. package/dist/components/layout/Layer.svelte +0 -41
  146. package/dist/docs/Blockquote.svelte +0 -17
  147. package/dist/docs/Blockquote.svelte.d.ts +0 -5
  148. package/dist/docs/Code.svelte +0 -80
  149. package/dist/docs/Code.svelte.d.ts +0 -14
  150. package/dist/docs/ConnectorSweepMenuField.svelte +0 -17
  151. package/dist/docs/ConnectorSweepMenuField.svelte.d.ts +0 -7
  152. package/dist/docs/ConnectorTypeMenuField.svelte +0 -17
  153. package/dist/docs/ConnectorTypeMenuField.svelte.d.ts +0 -7
  154. package/dist/docs/CurveMenuField.svelte +0 -44
  155. package/dist/docs/CurveMenuField.svelte.d.ts +0 -9
  156. package/dist/docs/GeoDebug.svelte +0 -60
  157. package/dist/docs/GeoDebug.svelte.d.ts +0 -4
  158. package/dist/docs/Header1.svelte +0 -16
  159. package/dist/docs/Header1.svelte.d.ts +0 -5
  160. package/dist/docs/Json.svelte +0 -36
  161. package/dist/docs/Json.svelte.d.ts +0 -10
  162. package/dist/docs/Layout.svelte +0 -21
  163. package/dist/docs/Layout.svelte.d.ts +0 -8
  164. package/dist/docs/Link.svelte +0 -9
  165. package/dist/docs/Link.svelte.d.ts +0 -5
  166. package/dist/docs/PathDataMenuField.svelte +0 -78
  167. package/dist/docs/PathDataMenuField.svelte.d.ts +0 -9
  168. package/dist/docs/Preview.svelte +0 -104
  169. package/dist/docs/Preview.svelte.d.ts +0 -13
  170. package/dist/docs/TilesetField.svelte +0 -136
  171. package/dist/docs/TilesetField.svelte.d.ts +0 -6
  172. package/dist/docs/TransformDebug.svelte +0 -22
  173. package/dist/docs/TransformDebug.svelte.d.ts +0 -20
  174. package/dist/docs/ViewSourceButton.svelte +0 -53
  175. package/dist/docs/ViewSourceButton.svelte.d.ts +0 -11
  176. /package/dist/{utils → contexts}/legendPayload.d.ts +0 -0
  177. /package/dist/{utils → contexts}/legendPayload.js +0 -0
@@ -1,78 +0,0 @@
1
- <script lang="ts">
2
- import { onMount } from 'svelte';
3
- import * as easings from 'svelte/easing';
4
- import { MenuField } from 'svelte-ux';
5
-
6
- let {
7
- value = $bindable(),
8
- amplitude = 1,
9
- frequency = 10,
10
- phase = 0,
11
- }: {
12
- value?: any;
13
- amplitude?: number;
14
- frequency?: number;
15
- phase?: number;
16
- } = $props();
17
-
18
- const mathOptions = $derived([
19
- {
20
- label: 'sin',
21
- group: 'math',
22
- value: (x: number) => amplitude * Math.sin(x * frequency) + phase,
23
- },
24
- {
25
- label: 'cos',
26
- group: 'math',
27
- value: (x: number) => amplitude * Math.cos(x * frequency) + phase,
28
- },
29
- {
30
- label: 'tan',
31
- group: 'math',
32
- value: (x: number) => amplitude * Math.tan(x * frequency) + phase,
33
- },
34
- {
35
- label: 'sqrt',
36
- group: 'math',
37
- value: (x: number) => amplitude * Math.sqrt(x * frequency) + phase,
38
- },
39
- {
40
- label: 'ceil',
41
- group: 'math',
42
- value: (x: number) => amplitude * Math.ceil(x * frequency) + phase,
43
- },
44
- {
45
- label: 'floor',
46
- group: 'math',
47
- value: (x: number) => amplitude * Math.floor(x * frequency) + phase,
48
- },
49
- {
50
- label: 'round',
51
- group: 'math',
52
- value: (x: number) => amplitude * Math.round(x * frequency) + phase,
53
- },
54
- { label: 'random', group: 'math', value: (x: number) => amplitude * Math.random() + phase },
55
- {
56
- label: 'pow',
57
- group: 'math',
58
- value: (x: number) => amplitude * Math.pow(x, frequency) + phase,
59
- },
60
- ]);
61
-
62
- const easingOptions = Object.entries(easings).map(([key, value]) => {
63
- return {
64
- label: key,
65
- value,
66
- group: 'easing',
67
- };
68
- });
69
-
70
- const options = $derived([...mathOptions, ...easingOptions]);
71
-
72
- // Select initial option
73
- onMount(() => {
74
- value = options[0].value;
75
- });
76
- </script>
77
-
78
- <MenuField label="Path data" {options} bind:value stepper classes={{ menuIcon: 'hidden' }} />
@@ -1,9 +0,0 @@
1
- type $$ComponentProps = {
2
- value?: any;
3
- amplitude?: number;
4
- frequency?: number;
5
- phase?: number;
6
- };
7
- declare const PathDataMenuField: import("svelte").Component<$$ComponentProps, {}, "value">;
8
- type PathDataMenuField = ReturnType<typeof PathDataMenuField>;
9
- export default PathDataMenuField;
@@ -1,104 +0,0 @@
1
- <script lang="ts">
2
- import { slide } from 'svelte/transition';
3
- import LucideCode from '~icons/lucide/code';
4
- import LucideTable from '~icons/lucide/table';
5
-
6
- import { Button, CopyButton, Dialog, Toggle, Tooltip } from 'svelte-ux';
7
- import { cls } from '@layerstack/tailwind';
8
-
9
- import Code from './Code.svelte';
10
- import Json from './Json.svelte';
11
- import type { HTMLAttributes } from 'svelte/elements';
12
- import type { Snippet } from 'svelte';
13
-
14
- interface Props {
15
- children: Snippet;
16
- code?: string;
17
- data?: any;
18
- language?: string;
19
- showCode?: boolean;
20
- }
21
-
22
- let {
23
- children,
24
- code = undefined,
25
- data = undefined,
26
- language = 'svelte',
27
- showCode = false,
28
- class: className,
29
- }: Props & HTMLAttributes<HTMLDivElement> = $props();
30
-
31
- /**
32
- * Custom JSON replacer (to use with JSON.stringify()) to convert `Date` instances to `new Date()`
33
- */
34
- function replacer(this: any, key: string, value: any): any {
35
- // TODO: Improve handling of circular structures and handle other data types (Map, Set, etc)
36
- if (this[key] instanceof Date) {
37
- return `new Date('${this[key].toISOString()}')`;
38
- }
39
-
40
- return value;
41
- }
42
-
43
- function getDataAsString(_data: typeof data) {
44
- try {
45
- // Regular expression to match quoted instantiation (ex. `"new Date(...)"`) and stripe the quotes (`new Date(...)`)
46
- const datePattern = /"(new \w+\([^)]*\))"/g;
47
- return JSON.stringify(_data, replacer, 2).replace(datePattern, '$1');
48
- } catch (e) {
49
- console.error('Error capturing value to copy', e);
50
- return '';
51
- }
52
- }
53
- </script>
54
-
55
- <div class={cls('Preview border rounded bg-surface-100', className)}>
56
- <div class="p-4">
57
- {@render children()}
58
- </div>
59
-
60
- {#if code && showCode}
61
- <div transition:slide class="border-t">
62
- <Code source={code} {language} />
63
- </div>
64
- {/if}
65
- </div>
66
-
67
- {#if code}
68
- <Button
69
- icon={LucideCode}
70
- class="text-surface-content/70 py-1"
71
- on:click={() => (showCode = !showCode)}
72
- >
73
- {showCode ? 'Hide' : 'Show'} Code
74
- </Button>
75
- {/if}
76
-
77
- {#if data}
78
- <Toggle let:on={open} let:toggle let:toggleOff>
79
- <Button icon={LucideTable} class="text-surface-content/70 py-1" on:click={toggle}
80
- >View data</Button
81
- >
82
- <Dialog
83
- {open}
84
- on:close={toggleOff}
85
- class="max-h-[98dvh] md:max-h-[90dvh] max-w-[98vw] md:max-w-[90vw] grid grid-rows-[auto_1fr_auto]"
86
- >
87
- <div class="grid grid-cols-[1fr_auto] gap-3 items-center p-4">
88
- <div class="overflow-auto">
89
- <div class="text-lg font-semibold">Chart data</div>
90
- </div>
91
-
92
- <Tooltip title="Copy">
93
- <CopyButton value={() => getDataAsString(data)} variant="fill-light" color="primary" />
94
- </Tooltip>
95
- </div>
96
-
97
- <Json value={data} />
98
-
99
- <div slot="actions">
100
- <Button variant="fill" color="primary">Close</Button>
101
- </div>
102
- </Dialog>
103
- </Toggle>
104
- {/if}
@@ -1,13 +0,0 @@
1
- import type { HTMLAttributes } from 'svelte/elements';
2
- import type { Snippet } from 'svelte';
3
- interface Props {
4
- children: Snippet;
5
- code?: string;
6
- data?: any;
7
- language?: string;
8
- showCode?: boolean;
9
- }
10
- type $$ComponentProps = Props & HTMLAttributes<HTMLDivElement>;
11
- declare const Preview: import("svelte").Component<$$ComponentProps, {}, "">;
12
- type Preview = ReturnType<typeof Preview>;
13
- export default Preview;
@@ -1,136 +0,0 @@
1
- <script lang="ts">
2
- import { SelectField, Switch } from 'svelte-ux';
3
-
4
- let { doubleScale = $bindable(devicePixelRatio > 1), serviceUrl = $bindable() } = $props();
5
-
6
- // TODO: Access via context, or possibly global state
7
- const ACCESS_TOKEN =
8
- 'pk.eyJ1IjoidGVjaG5pcTM1IiwiYSI6ImNsZTR5cDd0ZjAyNm8zdnFvczhzdnFpcXkifQ.-LAr8sl5BZ3y-H0pDyD1qA';
9
-
10
- // https://docs.mapbox.com/api/maps/styles/
11
- const mapboxv1 = $derived((style: string) => (x: number, y: number, z: number) => {
12
- return `https://api.mapbox.com/styles/v1/mapbox/${style}/tiles/${z}/${x}/${y}${
13
- doubleScale ? '@2x' : ''
14
- }?access_token=${ACCESS_TOKEN}`;
15
- });
16
-
17
- // https://docs.mapbox.com/api/maps/raster-tiles/
18
- // https://docs.mapbox.com/data/tilesets/reference/mapbox-streets-v8/
19
- const mapboxv4 = $derived((tileset: string) => (x: number, y: number, z: number) => {
20
- return `https://${'abc'[Math.abs(x + y) % 3]}.tiles.mapbox.com/v4/${tileset}/${z}/${x}/${y}${
21
- doubleScale ? '@2x' : ''
22
- }.png?access_token=${ACCESS_TOKEN}`;
23
- });
24
-
25
- // https://apps.nationalmap.gov/services/
26
- const nationalmap = (tileset: string) => (x: number, y: number, z: number) => {
27
- return `https://basemap.nationalmap.gov/arcgis/rest/services/${tileset}/MapServer/tile/${z}/${y}/${x}`;
28
- };
29
-
30
- // https://services.arcgisonline.com/arcgis/rest/services
31
- // https://www.arcgis.com/home/webmap/viewer.html?useExisting=1
32
- // https://www.arcgis.com/apps/mapviewer/index.html
33
- const arcgis = (tileset: string) => (x: number, y: number, z: number) => {
34
- return `https://services.arcgisonline.com/ArcGIS/rest/services/${tileset}/MapServer/tile/${z}/${y}/${x}`;
35
- };
36
-
37
- const arcgisVector = (tileset: string) => (x: number, y: number, z: number) => {
38
- return `https://basemaps.arcgis.com/arcgis/rest/services/${tileset}/VectorTileServer/tile/${z}/${y}/${x}.pbf`;
39
- // https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/tile/12/1572/1108.pbf
40
- };
41
-
42
- // https://github.com/leaflet-extras/leaflet-providers/blob/master/leaflet-providers.js#L79
43
- // https://www.openstreetmap.org/
44
- const openStreetMap = (tileset: string) => (x: number, y: number, z: number) => {
45
- // CyclOSM: https://a.tile-cyclosm.openstreetmap.fr/cyclosm/9/142/197.png
46
- // Cycle Map: https://b.tile.thunderforest.com/cycle/9/141/199@2x.png?apikey=6e5478c8a4f54c779f85573c0e399391
47
- // TransportMap: https://b.tile.thunderforest.com/transport/9/136/195@2x.png?apikey=6e5478c8a4f54c779f85573c0e399391
48
- return `https://tile.openstreetmap.org/${z}/${x}/${y}.png`;
49
- };
50
-
51
- // opentopomap.org/
52
- const openTopoMap = (tileset: string) => (x: number, y: number, z: number) => {
53
- const s = 'a';
54
- return `https://${s}.tile.opentopomap.org/${z}/${x}/${y}.png`;
55
- };
56
-
57
- const services = $derived<Record<string, Record<string, Function>>>({
58
- 'mapbox v1': {
59
- 'streets-v11': mapboxv1('streets-v11'),
60
- 'light-v10': mapboxv1('light-v10'),
61
- 'dark-v10': mapboxv1('dark-v10'),
62
- 'outdoors-v12': mapboxv1('outdoors-v12'),
63
- 'satelllite-v9': mapboxv1('satellite-v9'),
64
- 'satelllite-streets-v12': mapboxv1('satellite-streets-v12'),
65
- 'navigation-day-v1': mapboxv1('navigation-day-v1'),
66
- 'navigation-night-v1': mapboxv1('navigation-night-v1'),
67
- },
68
- 'mapbox v4': {
69
- 'natural-earth-2': mapboxv4('mapbox.natural-earth-2'),
70
- satellite: mapboxv4('mapbox.satellite'),
71
- streets: mapboxv4('mapbox.mapbox-streets-v8'),
72
- terrain: mapboxv4('mapbox.mapbox-terrain-v2'),
73
- 'terrain-dem': mapboxv4('mapbox.mapbox-terrain-dem-v1'),
74
- traffic: mapboxv4('mapbox.mapbox-traffic-v1'),
75
- // 'transit (mapbox v4)': mapboxv4('mapbox.transit-v2'),
76
- },
77
- OpenStreetMap: {
78
- Stardard: openStreetMap(''),
79
- },
80
- OpenTopoMap: {
81
- Stardard: openTopoMap(''),
82
- },
83
- 'National Map Services': {
84
- Hydrography: nationalmap('USGSHydroCached'),
85
- 'USGS Imagery Topo Base Map': nationalmap('USGSImageryTopo'),
86
- 'USGS Imagery Only Base Map': nationalmap('USGSImageryOnly'),
87
- 'USGS Shaded Relief': nationalmap('USGSShadedReliefOnly'),
88
- 'USGS Topo Base Map': nationalmap('USGSTopo'),
89
- },
90
- ArcGIS: {
91
- 'USA Topo Map': arcgis('USA_Topo_Maps'),
92
- 'National Geographic World Map': arcgis('NatGeo_World_Map'),
93
- 'World Imagery': arcgis('World_Imagery'),
94
- 'World Physicial Map': arcgis('World_Physical_Map'),
95
- 'World Shaded Relief': arcgis('World_Shaded_Relief'),
96
- 'World Street Map': arcgis('World_Street_Map'),
97
- 'World Terrain Base': arcgis('World_Terrain_Base'),
98
- 'World Topo Map': arcgis('World_Topo_Map'),
99
- },
100
- // 'ArcGIS Vector': {
101
- // 'Community Map', url: arcgisVector('World_Basemap_v2'),
102
- // }
103
- });
104
-
105
- const serviceOptions = $derived(
106
- Object.entries(services).flatMap(([group, service]) => {
107
- return Object.entries(service).map(([label, value]) => {
108
- return { label, value: `${group}:${label}`, group, serviceUrl: value };
109
- });
110
- })
111
- );
112
-
113
- const getServiceUrl = $derived((option: string) => {
114
- const [selectedService, selectedTileset] = selected.split(':');
115
- return services[selectedService][selectedTileset];
116
- });
117
-
118
- let selected = $state('mapbox v1:streets-v11');
119
- $effect(() => {
120
- serviceUrl = getServiceUrl(selected);
121
- });
122
- </script>
123
-
124
- <SelectField
125
- label="Tileset"
126
- options={serviceOptions}
127
- bind:value={selected}
128
- clearable={false}
129
- toggleIcon={null}
130
- stepper
131
- >
132
- <div slot="append" onclick={(e) => e.stopPropagation()} role="none">
133
- <div class="text-[10px] text-surface-content/50 text-center">2x</div>
134
- <Switch bind:checked={doubleScale} size="md" />
135
- </div>
136
- </SelectField>
@@ -1,6 +0,0 @@
1
- declare const TilesetField: import("svelte").Component<{
2
- doubleScale?: any;
3
- serviceUrl?: any;
4
- }, {}, "doubleScale" | "serviceUrl">;
5
- type TilesetField = ReturnType<typeof TilesetField>;
6
- export default TilesetField;
@@ -1,22 +0,0 @@
1
- <script lang="ts">
2
- import { cls } from '@layerstack/tailwind';
3
- import { format } from '@layerstack/utils';
4
-
5
- import { getTransformContext } from '../components/TransformContext.svelte';
6
-
7
- const transform = getTransformContext();
8
- </script>
9
-
10
- <div
11
- class={cls('bg-surface-300/50 rounded-sm m-1 backdrop-blur-sm p-2 tabular-nums', $$props.class)}
12
- >
13
- <div class="grid gap-2 text-xs">
14
- <div><span class="opacity-50">scale:</span> {format(transform.scale, 'decimal')}</div>
15
-
16
- <div>
17
- <span class="opacity-50">translate:</span>
18
- <div class="text-right">{format(transform.translate.x, 'decimal')}</div>
19
- <div class="text-right">{format(transform.translate.y, 'decimal')}</div>
20
- </div>
21
- </div>
22
- </div>
@@ -1,20 +0,0 @@
1
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- declare const TransformDebug: $$__sveltets_2_IsomorphicComponent<{
15
- [x: string]: any;
16
- }, {
17
- [evt: string]: CustomEvent<any>;
18
- }, {}, {}, string>;
19
- type TransformDebug = InstanceType<typeof TransformDebug>;
20
- export default TransformDebug;
@@ -1,53 +0,0 @@
1
- <script lang="ts">
2
- import type { ComponentProps } from 'svelte';
3
- import { Button, Dialog, Toggle, Tooltip } from 'svelte-ux';
4
- import LucideGithub from '~icons/lucide/github';
5
-
6
- import Code from './Code.svelte';
7
-
8
- const {
9
- label,
10
- source,
11
- href,
12
- icon,
13
- }: { label: string; source?: string; href?: string; icon: ComponentProps<Button>['icon'] } =
14
- $props();
15
- </script>
16
-
17
- {#if source}
18
- <Toggle let:on={open} let:toggle let:toggleOff>
19
- <Button {icon} on:click={toggle} variant="fill-light" color="primary" size="sm">{label}</Button>
20
- <Dialog
21
- {open}
22
- on:close={toggleOff}
23
- class="max-h-[98dvh] md:max-h-[90dvh] max-w-[98vw] md:max-w-[90vw] grid grid-rows-[auto_1fr_auto]"
24
- >
25
- <div class="grid grid-cols-[1fr_auto] gap-3 items-center p-4">
26
- <div class="overflow-auto">
27
- <div class="text-lg font-semibold">{label}</div>
28
- <div class="text-xs text-surface-content/50 truncate">{href}</div>
29
- </div>
30
-
31
- {#if href}
32
- <Button icon={LucideGithub} variant="fill-light" color="primary" {href} target="_blank">
33
- View on Github
34
- </Button>
35
- {/if}
36
- </div>
37
-
38
- <div class="overflow-auto border-t">
39
- <Code {source} language={source.startsWith('<script') ? 'svelte' : 'js'} />
40
- </div>
41
-
42
- <div slot="actions">
43
- <Button variant="fill" color="primary">Close</Button>
44
- </div>
45
- </Dialog>
46
- </Toggle>
47
- {:else if href}
48
- <Tooltip title="Edit this page">
49
- <Button {icon} {href} target="_blank" variant="fill-light" color="primary" size="sm">
50
- {label}
51
- </Button>
52
- </Tooltip>
53
- {/if}
@@ -1,11 +0,0 @@
1
- import type { ComponentProps } from 'svelte';
2
- import { Button } from 'svelte-ux';
3
- type $$ComponentProps = {
4
- label: string;
5
- source?: string;
6
- href?: string;
7
- icon: ComponentProps<Button>['icon'];
8
- };
9
- declare const ViewSourceButton: import("svelte").Component<$$ComponentProps, {}, "">;
10
- type ViewSourceButton = ReturnType<typeof ViewSourceButton>;
11
- export default ViewSourceButton;
File without changes
File without changes