svelteplot 0.6.0 → 0.7.0-pr-274.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 (87) hide show
  1. package/LICENSE.md +19 -1
  2. package/dist/Mark.svelte +7 -0
  3. package/dist/Mark.svelte.d.ts +5 -4
  4. package/dist/Plot.svelte +10 -2
  5. package/dist/constants.d.ts +1 -1
  6. package/dist/core/FacetAxes.svelte +2 -2
  7. package/dist/core/Plot.svelte +7 -11
  8. package/dist/helpers/colors.d.ts +9 -12
  9. package/dist/helpers/facets.d.ts +1 -1
  10. package/dist/helpers/getBaseStyles.d.ts +4 -4
  11. package/dist/helpers/getBaseStyles.js +8 -0
  12. package/dist/helpers/index.d.ts +3 -3
  13. package/dist/helpers/reduce.d.ts +1 -1
  14. package/dist/helpers/removeIdenticalLines.js +3 -2
  15. package/dist/helpers/scales.d.ts +7 -7
  16. package/dist/helpers/scales.js +2 -2
  17. package/dist/helpers/symbols.d.ts +2 -2
  18. package/dist/helpers/time.d.ts +3 -3
  19. package/dist/helpers/typeChecks.d.ts +8 -8
  20. package/dist/helpers/wordwrap.d.ts +14 -0
  21. package/dist/helpers/wordwrap.js +129 -0
  22. package/dist/marks/Area.svelte.d.ts +5 -4
  23. package/dist/marks/AreaX.svelte.d.ts +6 -5
  24. package/dist/marks/Arrow.svelte.d.ts +5 -4
  25. package/dist/marks/AxisX.svelte +2 -1
  26. package/dist/marks/AxisX.svelte.d.ts +7 -5
  27. package/dist/marks/AxisY.svelte.d.ts +6 -5
  28. package/dist/marks/BarX.svelte.d.ts +5 -4
  29. package/dist/marks/BarY.svelte.d.ts +5 -4
  30. package/dist/marks/BollingerX.svelte.d.ts +2 -76
  31. package/dist/marks/BollingerY.svelte.d.ts +2 -76
  32. package/dist/marks/BoxY.svelte.d.ts +6 -68
  33. package/dist/marks/Brush.svelte +44 -4
  34. package/dist/marks/Cell.svelte.d.ts +5 -4
  35. package/dist/marks/CustomMark.svelte.d.ts +2 -84
  36. package/dist/marks/CustomMarkHTML.svelte.d.ts +1 -1
  37. package/dist/marks/DifferenceY.svelte.d.ts +7 -69
  38. package/dist/marks/Dot.svelte.d.ts +5 -4
  39. package/dist/marks/DotX.svelte.d.ts +6 -5
  40. package/dist/marks/DotY.svelte.d.ts +6 -5
  41. package/dist/marks/Geo.svelte.d.ts +5 -4
  42. package/dist/marks/GridX.svelte.d.ts +5 -4
  43. package/dist/marks/GridY.svelte.d.ts +5 -4
  44. package/dist/marks/Image.svelte.d.ts +2 -75
  45. package/dist/marks/Line.svelte +1 -1
  46. package/dist/marks/Line.svelte.d.ts +6 -5
  47. package/dist/marks/LineX.svelte.d.ts +7 -6
  48. package/dist/marks/LineY.svelte.d.ts +7 -6
  49. package/dist/marks/Link.svelte.d.ts +5 -4
  50. package/dist/marks/Rect.svelte.d.ts +5 -4
  51. package/dist/marks/RuleX.svelte.d.ts +5 -4
  52. package/dist/marks/RuleY.svelte.d.ts +5 -4
  53. package/dist/marks/Spike.svelte.d.ts +6 -5
  54. package/dist/marks/Text.svelte.d.ts +7 -6
  55. package/dist/marks/TickX.svelte.d.ts +5 -4
  56. package/dist/marks/TickY.svelte.d.ts +5 -4
  57. package/dist/marks/Vector.svelte.d.ts +5 -4
  58. package/dist/marks/WaffleX.svelte +115 -0
  59. package/dist/marks/WaffleX.svelte.d.ts +19 -0
  60. package/dist/marks/WaffleY.svelte +119 -0
  61. package/dist/marks/WaffleY.svelte.d.ts +19 -0
  62. package/dist/marks/helpers/Anchor.svelte.d.ts +5 -5
  63. package/dist/marks/helpers/BaseAxisX.svelte +31 -3
  64. package/dist/marks/helpers/BaseAxisX.svelte.d.ts +2 -0
  65. package/dist/marks/helpers/MarkerPath.svelte.d.ts +2 -164
  66. package/dist/marks/helpers/RectPath.svelte.d.ts +3 -65
  67. package/dist/marks/helpers/waffle.d.ts +64 -0
  68. package/dist/marks/helpers/waffle.js +162 -0
  69. package/dist/marks/index.d.ts +3 -1
  70. package/dist/marks/index.js +3 -1
  71. package/dist/transforms/bollinger.d.ts +1 -69
  72. package/dist/transforms/centroid.d.ts +1 -4
  73. package/dist/transforms/group.d.ts +4 -12
  74. package/dist/transforms/group.js +11 -5
  75. package/dist/transforms/interval.d.ts +2 -128
  76. package/dist/transforms/recordize.d.ts +4 -7
  77. package/dist/transforms/select.d.ts +7 -448
  78. package/dist/transforms/sort.d.ts +5 -253
  79. package/dist/transforms/stack.d.ts +3 -23
  80. package/dist/transforms/window.d.ts +2 -134
  81. package/dist/types/data.d.ts +1 -0
  82. package/dist/types/mark.d.ts +1 -1
  83. package/dist/types/plot.d.ts +19 -5
  84. package/dist/types/scale.d.ts +8 -0
  85. package/dist/ui/ExamplesPagePreview.svelte +148 -0
  86. package/dist/ui/ExamplesPagePreview.svelte.d.ts +13 -0
  87. package/package.json +130 -128
@@ -0,0 +1,148 @@
1
+ <script lang="ts">
2
+ import { resolve } from '$app/paths';
3
+
4
+ const exampleImages = import.meta.glob('../../../static/examples/*/*.png', {
5
+ eager: true,
6
+ query: {
7
+ enhanced: true,
8
+ w: 440
9
+ }
10
+ });
11
+
12
+ let {
13
+ paths,
14
+ pages,
15
+ isDark
16
+ }: {
17
+ paths: Record<string, string[]>;
18
+ pages: Record<
19
+ string,
20
+ {
21
+ title: string;
22
+ description?: string;
23
+ sortKey?: number;
24
+ transforms?: string[];
25
+ }
26
+ >;
27
+ isDark: boolean;
28
+ } = $props();
29
+
30
+ function sortPages(a: string, b: string) {
31
+ const sortA = pages[a].sortKey ?? 10;
32
+ const sortB = pages[b].sortKey ?? 10;
33
+ return sortA - sortB;
34
+ }
35
+ </script>
36
+
37
+ <div class="column-container">
38
+ {#each Object.entries(paths).sort( (a, b) => a[0].localeCompare(b[0]) ) as [group, groupPages] (group)}
39
+ <div>
40
+ <h2 id={group}>
41
+ <a href={resolve(`/examples/${group}`)}
42
+ >{pages[groupPages.find((p) => p.endsWith('/_index.svelte'))]?.title ??
43
+ group}</a>
44
+ </h2>
45
+ <div class="example-grid">
46
+ {#each groupPages
47
+ .sort(sortPages)
48
+ .filter((p) => !p.endsWith('/_index.svelte')) as page (page)}
49
+ <a
50
+ animate:slide
51
+ href={resolve(page.replace('./', './examples/').replace('.svelte', ''))}
52
+ ><div>
53
+ <enhanced:img
54
+ title={pages[page].title}
55
+ src={exampleImages[
56
+ `../../../static/examples/${page
57
+ .replace('./', '')
58
+ .replace('.svelte', isDark ? '.dark.png' : '.png')}`
59
+ ].default}
60
+ alt={pages[page].title} />
61
+ <div class="title">{pages[page].title}</div>
62
+ </div></a>
63
+ {/each}
64
+ </div>
65
+ </div>
66
+ {/each}
67
+ </div>
68
+
69
+ <style>
70
+ :global(.content) h2 {
71
+ margin-top: 1rem !important;
72
+ margin-bottom: 1rem;
73
+ text-transform: capitalize;
74
+ border: 0;
75
+ a {
76
+ text-decoration: none;
77
+ color: inherit;
78
+ }
79
+ }
80
+
81
+ .column-container {
82
+ container-type: inline-size;
83
+
84
+ h3 {
85
+ break-before: avoid-column;
86
+ text-transform: capitalize;
87
+ }
88
+ }
89
+
90
+ .example-grid {
91
+ --example-grid-columns: 5;
92
+
93
+ /* width: 100%; */
94
+ display: grid;
95
+ /* overflow-x: clip; */
96
+ grid-template-columns: repeat(var(--example-grid-columns), 1fr);
97
+ grid-auto-rows: 1fr;
98
+ gap: 1.25rem;
99
+
100
+ a {
101
+ text-decoration: none;
102
+ color: inherit;
103
+ }
104
+
105
+ .title {
106
+ font-size: 0.75rem;
107
+ opacity: 0.8;
108
+ line-height: 1.2;
109
+ text-decoration: none;
110
+ }
111
+ }
112
+
113
+ @container (max-width: 800px) {
114
+ .example-grid {
115
+ --example-grid-columns: 4;
116
+ }
117
+ }
118
+ @container (max-width: 600px) {
119
+ .example-grid {
120
+ --example-grid-columns: 3;
121
+ }
122
+ }
123
+ @container (max-width: 500px) {
124
+ .example-grid {
125
+ --example-grid-columns: 2;
126
+ }
127
+ }
128
+
129
+ .example-grid :global(img) {
130
+ height: auto !important;
131
+ aspect-ratio: 4 / 3;
132
+ object-fit: cover;
133
+ width: 100%;
134
+ height: auto;
135
+
136
+ position: relative;
137
+ transition: transform 0.05s ease-out;
138
+ &:hover {
139
+ transform: scale(1.5);
140
+ object-fit: contain;
141
+ z-index: 1;
142
+
143
+ background: fixed var(--svelteplot-bg);
144
+
145
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
146
+ }
147
+ }
148
+ </style>
@@ -0,0 +1,13 @@
1
+ type $$ComponentProps = {
2
+ paths: Record<string, string[]>;
3
+ pages: Record<string, {
4
+ title: string;
5
+ description?: string;
6
+ sortKey?: number;
7
+ transforms?: string[];
8
+ }>;
9
+ isDark: boolean;
10
+ };
11
+ declare const ExamplesPagePreview: import("svelte").Component<$$ComponentProps, {}, "">;
12
+ type ExamplesPagePreview = ReturnType<typeof ExamplesPagePreview>;
13
+ export default ExamplesPagePreview;
package/package.json CHANGED
@@ -1,134 +1,136 @@
1
1
  {
2
- "name": "svelteplot",
3
- "version": "0.6.0",
4
- "license": "ISC",
5
- "author": {
6
- "name": "Gregor Aisch",
7
- "email": "gka@users.noreply.github.com"
8
- },
9
- "exports": {
10
- ".": {
11
- "types": "./dist/index.d.ts",
12
- "svelte": "./dist/index.js"
2
+ "name": "svelteplot",
3
+ "version": "0.7.0-pr-274.0",
4
+ "license": "ISC",
5
+ "author": {
6
+ "name": "Gregor Aisch",
7
+ "email": "gka@users.noreply.github.com"
13
8
  },
14
- "./*.js": {
15
- "import": "./dist/*.js"
9
+ "scripts": {
10
+ "dev": "vite dev",
11
+ "build": "vite build",
12
+ "preview": "vite preview",
13
+ "test": "npm run test:unit",
14
+ "test:visual": "node scripts/visual-regression.js",
15
+ "vr:report": "node scripts/vr-report.js",
16
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
17
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
18
+ "lint": "prettier --check src && eslint src",
19
+ "format": "prettier --write .",
20
+ "test:unit": "vitest",
21
+ "prepack": "npx svelte-package",
22
+ "release-next": "npm version prerelease --preid next && npm publish && git push && git push --tags && sleep 1 && npm dist-tag add svelteplot@$(npm view . version) next",
23
+ "docs": "npm run build && cd build && rsync --recursive . vis4.net:svelteplot/alpha0/",
24
+ "screenshots": "node screenshot-examples.js",
25
+ "check-js-extensions": "node scripts/check-js-extensions.js src"
16
26
  },
17
- "./*.svelte": {
18
- "import": "./dist/*.svelte"
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/index.d.ts",
30
+ "svelte": "./dist/index.js"
31
+ },
32
+ "./*.js": {
33
+ "import": "./dist/*.js"
34
+ },
35
+ "./*.svelte": {
36
+ "import": "./dist/*.svelte"
37
+ },
38
+ "./core/*.svelte": {
39
+ "import": "./dist/core/*.svelte"
40
+ },
41
+ "./marks/*.svelte": {
42
+ "import": "./dist/marks/*.svelte"
43
+ },
44
+ "./transforms": {
45
+ "import": "./dist/transforms/index.js"
46
+ }
19
47
  },
20
- "./core/*.svelte": {
21
- "import": "./dist/core/*.svelte"
48
+ "main": "./dist/index.js",
49
+ "files": [
50
+ "dist",
51
+ "!dist/**/*.test.*",
52
+ "!dist/**/*.spec.*"
53
+ ],
54
+ "devDependencies": {
55
+ "@aitodotai/json-stringify-pretty-compact": "^1.3.0",
56
+ "@emotion/css": "^11.13.5",
57
+ "@sveltejs/adapter-auto": "^7.0.0",
58
+ "@sveltejs/adapter-static": "^3.0.10",
59
+ "@sveltejs/enhanced-img": "^0.6.1",
60
+ "@sveltejs/eslint-config": "^8.3.4",
61
+ "@sveltejs/kit": "^2.48.5",
62
+ "@sveltejs/package": "^2.5.4",
63
+ "@sveltejs/vite-plugin-svelte": "5.1.1",
64
+ "@sveltepress/theme-default": "^6.0.4",
65
+ "@sveltepress/twoslash": "^1.2.2",
66
+ "@sveltepress/vite": "^1.2.2",
67
+ "@testing-library/svelte": "^5.2.9",
68
+ "@testing-library/user-event": "^14.6.1",
69
+ "@types/d3-array": "^3.2.2",
70
+ "@types/d3-color": "^3.1.3",
71
+ "@types/d3-dsv": "^3.0.7",
72
+ "@types/d3-geo": "^3.1.0",
73
+ "@types/d3-interpolate": "^3.0.4",
74
+ "@types/d3-path": "^3.1.1",
75
+ "@types/d3-quadtree": "^3.0.6",
76
+ "@types/d3-random": "^3.0.3",
77
+ "@types/d3-scale": "^4.0.9",
78
+ "@types/d3-scale-chromatic": "^3.1.0",
79
+ "@types/d3-shape": "^3.1.7",
80
+ "@types/geojson": "^7946.0.16",
81
+ "@types/topojson": "^3.2.6",
82
+ "@types/topojson-client": "^3.1.5",
83
+ "@typescript-eslint/eslint-plugin": "^8.46.4",
84
+ "@typescript-eslint/parser": "^8.46.4",
85
+ "csstype": "^3.2.1",
86
+ "d3-dsv": "^3.0.1",
87
+ "d3-fetch": "^3.0.1",
88
+ "d3-force": "^3.0.0",
89
+ "eslint": "^9.39.1",
90
+ "eslint-config-prettier": "^10.1.8",
91
+ "eslint-plugin-svelte": "3.13.0",
92
+ "jsdom": "^27.2.0",
93
+ "prettier": "^3.6.2",
94
+ "prettier-plugin-svelte": "^3.4.0",
95
+ "puppeteer": "^24.30.0",
96
+ "remark-code-extra": "^1.0.1",
97
+ "remark-code-frontmatter": "^1.0.0",
98
+ "resize-observer-polyfill": "^1.5.1",
99
+ "sass": "^1.94.0",
100
+ "svelte-check": "^4.3.4",
101
+ "svelte-eslint-parser": "1.4.0",
102
+ "svelte-highlight": "^7.9.0",
103
+ "svg-path-parser": "^1.1.0",
104
+ "topojson-client": "^3.1.0",
105
+ "ts-essentials": "^10.1.1",
106
+ "tslib": "^2.8.1",
107
+ "typedoc": "^0.28.14",
108
+ "typedoc-plugin-markdown": "^4.9.0",
109
+ "typescript": "^5.9.3",
110
+ "vite": "^6.4.1",
111
+ "vitest": "^4.0.9",
112
+ "vitest-matchmedia-mock": "^2.0.3",
113
+ "yoctocolors": "^2.1.2"
22
114
  },
23
- "./marks/*.svelte": {
24
- "import": "./dist/marks/*.svelte"
25
- },
26
- "./transforms": {
27
- "import": "./dist/transforms/index.js"
115
+ "types": "./dist/index.d.ts",
116
+ "type": "module",
117
+ "dependencies": {
118
+ "d3-array": "^3.2.4",
119
+ "d3-color": "^3.1.0",
120
+ "d3-format": "^3.1.0",
121
+ "d3-geo": "^3.1.1",
122
+ "d3-interpolate": "^3.0.1",
123
+ "d3-path": "^3.1.0",
124
+ "d3-quadtree": "^3.0.1",
125
+ "d3-random": "^3.0.1",
126
+ "d3-scale": "^4.0.2",
127
+ "d3-scale-chromatic": "^3.1.0",
128
+ "d3-shape": "^3.2.0",
129
+ "d3-time": "^3.1.0",
130
+ "es-toolkit": "^1.41.0",
131
+ "fast-equals": "^5.3.3",
132
+ "interval-tree-1d": "^1.0.4",
133
+ "merge-deep": "^3.0.3",
134
+ "svelte": "5"
28
135
  }
29
- },
30
- "main": "./dist/index.js",
31
- "files": [
32
- "dist",
33
- "!dist/**/*.test.*",
34
- "!dist/**/*.spec.*"
35
- ],
36
- "devDependencies": {
37
- "@aitodotai/json-stringify-pretty-compact": "^1.3.0",
38
- "@emotion/css": "^11.13.5",
39
- "@sveltejs/adapter-auto": "^6.1.1",
40
- "@sveltejs/adapter-static": "^3.0.10",
41
- "@sveltejs/eslint-config": "^8.3.4",
42
- "@sveltejs/kit": "^2.47.3",
43
- "@sveltejs/package": "^2.5.4",
44
- "@sveltejs/vite-plugin-svelte": "5.1.1",
45
- "@sveltepress/theme-default": "^6.0.4",
46
- "@sveltepress/twoslash": "^1.2.2",
47
- "@sveltepress/vite": "^1.2.2",
48
- "@testing-library/svelte": "^5.2.8",
49
- "@testing-library/user-event": "^14.6.1",
50
- "@types/d3-array": "^3.2.2",
51
- "@types/d3-color": "^3.1.3",
52
- "@types/d3-dsv": "^3.0.7",
53
- "@types/d3-geo": "^3.1.0",
54
- "@types/d3-interpolate": "^3.0.4",
55
- "@types/d3-path": "^3.1.1",
56
- "@types/d3-quadtree": "^3.0.6",
57
- "@types/d3-random": "^3.0.3",
58
- "@types/d3-scale": "^4.0.9",
59
- "@types/d3-scale-chromatic": "^3.1.0",
60
- "@types/d3-shape": "^3.1.7",
61
- "@types/geojson": "^7946.0.16",
62
- "@types/topojson": "^3.2.6",
63
- "@types/topojson-client": "^3.1.5",
64
- "@typescript-eslint/eslint-plugin": "^8.46.2",
65
- "@typescript-eslint/parser": "^8.46.2",
66
- "csstype": "^3.1.3",
67
- "d3-dsv": "^3.0.1",
68
- "d3-fetch": "^3.0.1",
69
- "d3-force": "^3.0.0",
70
- "eslint": "^9.38.0",
71
- "eslint-config-prettier": "^10.1.8",
72
- "eslint-plugin-svelte": "3.12.5",
73
- "jsdom": "^26.1.0",
74
- "prettier": "^3.6.2",
75
- "prettier-plugin-svelte": "^3.4.0",
76
- "puppeteer": "^24.26.1",
77
- "remark-code-extra": "^1.0.1",
78
- "remark-code-frontmatter": "^1.0.0",
79
- "resize-observer-polyfill": "^1.5.1",
80
- "sass": "^1.93.2",
81
- "svelte-check": "^4.3.3",
82
- "svelte-eslint-parser": "1.4.0",
83
- "svelte-highlight": "^7.9.0",
84
- "svg-path-parser": "^1.1.0",
85
- "topojson-client": "^3.1.0",
86
- "ts-essentials": "^10.1.1",
87
- "tslib": "^2.8.1",
88
- "typedoc": "^0.28.14",
89
- "typedoc-plugin-markdown": "^4.9.0",
90
- "typescript": "^5.9.3",
91
- "vite": "^6.4.1",
92
- "vitest": "^3.2.4",
93
- "vitest-matchmedia-mock": "^2.0.3",
94
- "yoctocolors": "^2.1.2"
95
- },
96
- "types": "./dist/index.d.ts",
97
- "type": "module",
98
- "dependencies": {
99
- "d3-array": "^3.2.4",
100
- "d3-color": "^3.1.0",
101
- "d3-format": "^3.1.0",
102
- "d3-geo": "^3.1.1",
103
- "d3-interpolate": "^3.0.1",
104
- "d3-path": "^3.1.0",
105
- "d3-quadtree": "^3.0.1",
106
- "d3-random": "^3.0.1",
107
- "d3-scale": "^4.0.2",
108
- "d3-scale-chromatic": "^3.1.0",
109
- "d3-shape": "^3.2.0",
110
- "d3-time": "^3.1.0",
111
- "es-toolkit": "^1.41.0",
112
- "fast-equals": "^5.3.2",
113
- "interval-tree-1d": "^1.0.4",
114
- "merge-deep": "^3.0.3",
115
- "svelte": "5.43.0"
116
- },
117
- "scripts": {
118
- "dev": "vite dev",
119
- "build": "vite build",
120
- "preview": "vite preview",
121
- "test": "npm run test:unit",
122
- "test:visual": "node scripts/visual-regression.js",
123
- "vr:report": "node scripts/vr-report.js",
124
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
125
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
126
- "lint": "prettier --check src && eslint src",
127
- "format": "prettier --write .",
128
- "test:unit": "vitest",
129
- "release-next": "npm version prerelease --preid next && npm publish && git push && git push --tags && sleep 1 && npm dist-tag add svelteplot@$(npm view . version) next",
130
- "docs": "npm run build && cd build && rsync --recursive . vis4.net:svelteplot/alpha0/",
131
- "screenshots": "node screenshot-examples.js",
132
- "check-js-extensions": "node scripts/check-js-extensions.js src"
133
- }
134
- }
136
+ }