@validationcloud/fractal-ui 1.76.0 → 1.78.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 (35) hide show
  1. package/README.md +22 -0
  2. package/dist/charts.d.ts +2 -0
  3. package/dist/charts.js +29 -20
  4. package/dist/components/dropdown-menu/dropdown-menu.js +34 -26
  5. package/dist/components/echarts-renderer/geo/africa-countries.json.d.ts +2463 -0
  6. package/dist/components/echarts-renderer/geo/africa-countries.json.js +9 -0
  7. package/dist/components/echarts-renderer/geo/americas-countries.json.d.ts +4160 -0
  8. package/dist/components/echarts-renderer/geo/americas-countries.json.js +9 -0
  9. package/dist/components/echarts-renderer/geo/asia-countries.json.d.ts +4275 -0
  10. package/dist/components/echarts-renderer/geo/asia-countries.json.js +9 -0
  11. package/dist/components/echarts-renderer/geo/europe-countries.json.d.ts +2407 -0
  12. package/dist/components/echarts-renderer/geo/europe-countries.json.js +9 -0
  13. package/dist/components/echarts-renderer/geo/us-states.json.d.ts +1338 -0
  14. package/dist/components/echarts-renderer/geo/us-states.json.js +9 -0
  15. package/dist/components/echarts-renderer/geo/world-continents.json.d.ts +10639 -0
  16. package/dist/components/echarts-renderer/geo/world-continents.json.js +9 -0
  17. package/dist/components/echarts-renderer/geo/world-countries.json.d.ts +14549 -0
  18. package/dist/components/echarts-renderer/geo/world-countries.json.js +9 -0
  19. package/dist/components/echarts-renderer/geo/world-regions.json.d.ts +10621 -0
  20. package/dist/components/echarts-renderer/geo/world-regions.json.js +9 -0
  21. package/dist/components/echarts-renderer/map-centers.d.ts +2 -0
  22. package/dist/components/echarts-renderer/map-centers.js +13 -0
  23. package/dist/components/echarts-renderer/map-style.d.ts +12 -0
  24. package/dist/components/echarts-renderer/map-style.js +12 -0
  25. package/dist/components/echarts-renderer/natural-earth-projection.d.ts +29 -0
  26. package/dist/components/echarts-renderer/natural-earth-projection.js +64 -0
  27. package/dist/components/echarts-renderer/register-map.d.ts +24 -0
  28. package/dist/components/echarts-renderer/register-map.js +62 -0
  29. package/dist/components/echarts-renderer/use-chart-instance.js +38 -36
  30. package/dist/components/icon/icon-ids.d.ts +1 -1
  31. package/dist/components/mount-svg-sprite/mount-svg-sprite.js +1 -1
  32. package/dist/hooks/use-scroll-to-bottom.d.ts +4 -3
  33. package/dist/lib/render-chart-to-image.js +72 -43
  34. package/dist/maps.json +438 -0
  35. package/package.json +19 -4
@@ -1,12 +1,13 @@
1
1
  type UseScrollToBottomOptions = {
2
2
  readonly threshold?: number;
3
3
  };
4
- export declare function useScrollToBottom({ threshold }?: UseScrollToBottomOptions): {
5
- containerRef: import('react').RefObject<HTMLDivElement | null>;
6
- endRef: import('react').RefObject<HTMLDivElement | null>;
4
+ type UseScrollToBottomReturn = {
5
+ containerRef: React.RefObject<HTMLDivElement | null>;
6
+ endRef: React.RefObject<HTMLDivElement | null>;
7
7
  isAtBottom: boolean;
8
8
  scrollToBottom: (behavior?: ScrollBehavior) => void;
9
9
  onViewportEnter: () => void;
10
10
  onViewportLeave: () => void;
11
11
  };
12
+ export declare function useScrollToBottom({ threshold }?: UseScrollToBottomOptions): UseScrollToBottomReturn;
12
13
  export {};
@@ -1,33 +1,51 @@
1
- import * as p from "echarts";
2
- import { randomUUID as C } from "node:crypto";
3
- import { writeFileSync as F, mkdtempSync as O } from "node:fs";
4
- import { tmpdir as b } from "node:os";
5
- import h from "node:path";
6
- import { Image as I, Canvas as S, FontLibrary as j } from "skia-canvas";
7
- import { calculateTitleLayout as w } from "../components/echarts-renderer/calculate-title-layout.js";
8
- import { isChartTheme as v } from "../components/echarts-renderer/chart-theme.js";
9
- import { replaceFormatterTokens as A } from "../components/echarts-renderer/formatters/replace-formatter-tokens.js";
10
- import { mergeThemeGraphicIntoOptions as D } from "../components/echarts-renderer/merge-theme-graphic-into-options.js";
11
- globalThis.Image = I;
12
- const l = /* @__PURE__ */ new Set();
13
- let m;
14
- function E() {
15
- return m || (m = O(h.join(b(), "chart-fonts-"))), m;
1
+ import * as d from "echarts";
2
+ import { writeFileSync as w, mkdtempSync as N } from "node:fs";
3
+ import { tmpdir as T } from "node:os";
4
+ import y from "node:path";
5
+ import { Image as C, Canvas as S, FontLibrary as G } from "skia-canvas";
6
+ import { calculateTitleLayout as F } from "../components/echarts-renderer/calculate-title-layout.js";
7
+ import { isChartTheme as b } from "../components/echarts-renderer/chart-theme.js";
8
+ import { replaceFormatterTokens as J } from "../components/echarts-renderer/formatters/replace-formatter-tokens.js";
9
+ import A from "../components/echarts-renderer/geo/africa-countries.json.js";
10
+ import I from "../components/echarts-renderer/geo/americas-countries.json.js";
11
+ import j from "../components/echarts-renderer/geo/asia-countries.json.js";
12
+ import E from "../components/echarts-renderer/geo/europe-countries.json.js";
13
+ import M from "../components/echarts-renderer/geo/us-states.json.js";
14
+ import R from "../components/echarts-renderer/geo/world-continents.json.js";
15
+ import P from "../components/echarts-renderer/geo/world-countries.json.js";
16
+ import k from "../components/echarts-renderer/geo/world-regions.json.js";
17
+ import { mergeThemeGraphicIntoOptions as v } from "../components/echarts-renderer/merge-theme-graphic-into-options.js";
18
+ import { getRequiredMapName as x, isMapName as D, registerMapSync as _ } from "../components/echarts-renderer/register-map.js";
19
+ const $ = {
20
+ "world-countries": P,
21
+ "world-continents": R,
22
+ "world-regions": k,
23
+ "us-states": M,
24
+ "europe-countries": E,
25
+ "americas-countries": I,
26
+ "asia-countries": j,
27
+ "africa-countries": A
28
+ };
29
+ globalThis.Image = C;
30
+ const g = /* @__PURE__ */ new Set();
31
+ let f;
32
+ function z() {
33
+ return f || (f = N(y.join(T(), "chart-fonts-"))), f;
16
34
  }
17
- function N(r) {
35
+ function L(r) {
18
36
  for (const t of r)
19
- if (!l.has(t.family))
37
+ if (!g.has(t.family))
20
38
  try {
21
- const e = E(), n = t.data.map((i, s) => {
22
- const o = h.join(e, `${t.family}-${String(s)}.ttf`);
23
- return F(o, i), o;
39
+ const e = z(), o = t.data.map((a, m) => {
40
+ const n = y.join(e, `${t.family}-${String(m)}.ttf`);
41
+ return w(n, a), n;
24
42
  });
25
- j.use(t.family, n), l.add(t.family);
43
+ G.use(t.family, o), g.add(t.family);
26
44
  } catch (e) {
27
45
  console.warn(`Failed to register ${t.family} fonts, charts will use fallback font:`, e);
28
46
  }
29
47
  }
30
- const P = /* @__PURE__ */ new Set([
48
+ const V = /* @__PURE__ */ new Set([
31
49
  "aria",
32
50
  // Tries to set DOM attributes which node-canvas doesn't implement
33
51
  "toolbox",
@@ -39,41 +57,52 @@ const P = /* @__PURE__ */ new Set([
39
57
  "axisPointer"
40
58
  // Crosshair on hover
41
59
  ]);
42
- function $(r) {
60
+ function q(r) {
43
61
  if (!r || typeof r != "object" || Array.isArray(r))
44
62
  return { animation: !1 };
45
63
  const t = Object.fromEntries(
46
- Object.entries(r).filter(([e]) => !P.has(e))
64
+ Object.entries(r).filter(([e]) => !V.has(e))
47
65
  );
48
66
  return t.animation = !1, t;
49
67
  }
50
- function k({
68
+ function B(r) {
69
+ const t = new S(r.width, r.height);
70
+ return t.getContext("2d").drawImage(r, 0, 0), t;
71
+ }
72
+ function U({
51
73
  option: r,
52
74
  theme: t,
53
75
  fonts: e,
54
- width: n = 800,
55
- height: i = 600,
56
- devicePixelRatio: s = 2
76
+ width: o = 800,
77
+ height: a = 600,
78
+ devicePixelRatio: m = 2
57
79
  }) {
58
- e?.length && N(e);
59
- let o, a, c;
80
+ e?.length && L(e);
81
+ let n, s, p;
60
82
  if (t) {
61
- a = v(t) ? t.config : t, c = a.graphic, o = `theme-${C()}`;
62
- const { graphic: x, ...T } = a;
63
- p.registerTheme(o, T);
83
+ s = b(t) ? t.config : t, p = s.graphic;
84
+ const { graphic: h, ...c } = s;
85
+ n = c;
64
86
  }
65
- const f = new S(n, i), u = p.init(f, o, {
87
+ const i = x(r);
88
+ i && (D(i) ? _(d, i, $[i]) : console.warn(`Unknown map name for server-side rendering: "${i}"`));
89
+ const l = new S(o, a), u = d.init(l, n, {
66
90
  renderer: "canvas",
67
- devicePixelRatio: s,
68
- width: n,
69
- height: i
70
- }), g = $(r), d = A(g), y = w(d, n, a);
71
- return u.setOption(D(y, c), { replaceMerge: ["graphic"] }), f;
91
+ devicePixelRatio: m,
92
+ width: o,
93
+ height: a
94
+ });
95
+ try {
96
+ const h = q(r), c = J(h), O = F(c, o, s);
97
+ return u.setOption(v(O, p), { replaceMerge: ["graphic"] }), B(l);
98
+ } finally {
99
+ u.dispose();
100
+ }
72
101
  }
73
- function W(r) {
74
- return k(r).toBufferSync("png");
102
+ function ft(r) {
103
+ return U(r).toBufferSync("png");
75
104
  }
76
105
  export {
77
- k as renderChartToCanvas,
78
- W as renderChartToImage
106
+ U as renderChartToCanvas,
107
+ ft as renderChartToImage
79
108
  };
package/dist/maps.json ADDED
@@ -0,0 +1,438 @@
1
+ [
2
+ {
3
+ "name": "world-countries",
4
+ "description": "World map with all countries as individual regions",
5
+ "regions": [
6
+ "Afghanistan",
7
+ "Albania",
8
+ "Algeria",
9
+ "Andorra",
10
+ "Angola",
11
+ "Antarctica",
12
+ "Argentina",
13
+ "Armenia",
14
+ "Australia",
15
+ "Austria",
16
+ "Azerbaijan",
17
+ "Bahamas",
18
+ "Bahrain",
19
+ "Bangladesh",
20
+ "Belarus",
21
+ "Belgium",
22
+ "Belize",
23
+ "Benin",
24
+ "Bhutan",
25
+ "Bolivia",
26
+ "Bosnia and Herzegovina",
27
+ "Botswana",
28
+ "Brazil",
29
+ "Bulgaria",
30
+ "Burkina Faso",
31
+ "Burundi",
32
+ "Cambodia",
33
+ "Cameroon",
34
+ "Canada",
35
+ "Central African Rep.",
36
+ "Chad",
37
+ "Chile",
38
+ "China",
39
+ "Colombia",
40
+ "Congo",
41
+ "Costa Rica",
42
+ "Côte d'Ivoire",
43
+ "Croatia",
44
+ "Cuba",
45
+ "Czechia",
46
+ "Dem. Rep. Congo",
47
+ "Denmark",
48
+ "Djibouti",
49
+ "Dominican Rep.",
50
+ "Ecuador",
51
+ "Egypt",
52
+ "El Salvador",
53
+ "Eq. Guinea",
54
+ "Eritrea",
55
+ "Estonia",
56
+ "eSwatini",
57
+ "Ethiopia",
58
+ "Falkland Is.",
59
+ "Fiji",
60
+ "Finland",
61
+ "France",
62
+ "Gabon",
63
+ "Georgia",
64
+ "Germany",
65
+ "Ghana",
66
+ "Greece",
67
+ "Greenland",
68
+ "Guatemala",
69
+ "Guinea",
70
+ "Guinea-Bissau",
71
+ "Guyana",
72
+ "Haiti",
73
+ "Honduras",
74
+ "Hong Kong",
75
+ "Hungary",
76
+ "Iceland",
77
+ "India",
78
+ "Indonesia",
79
+ "Iran",
80
+ "Iraq",
81
+ "Ireland",
82
+ "Israel",
83
+ "Italy",
84
+ "Japan",
85
+ "Jordan",
86
+ "Kazakhstan",
87
+ "Kenya",
88
+ "Kosovo",
89
+ "Kuwait",
90
+ "Kyrgyzstan",
91
+ "Laos",
92
+ "Latvia",
93
+ "Lesotho",
94
+ "Liberia",
95
+ "Libya",
96
+ "Liechtenstein",
97
+ "Lithuania",
98
+ "Macao",
99
+ "Madagascar",
100
+ "Malawi",
101
+ "Malaysia",
102
+ "Mali",
103
+ "Malta",
104
+ "Mauritania",
105
+ "Mexico",
106
+ "Moldova",
107
+ "Monaco",
108
+ "Mongolia",
109
+ "Montenegro",
110
+ "Morocco",
111
+ "Mozambique",
112
+ "Myanmar",
113
+ "Namibia",
114
+ "Nepal",
115
+ "Netherlands",
116
+ "New Caledonia",
117
+ "New Zealand",
118
+ "Nicaragua",
119
+ "Niger",
120
+ "Nigeria",
121
+ "North Korea",
122
+ "North Macedonia",
123
+ "Norway",
124
+ "Oman",
125
+ "Pakistan",
126
+ "Panama",
127
+ "Papua New Guinea",
128
+ "Paraguay",
129
+ "Peru",
130
+ "Philippines",
131
+ "Poland",
132
+ "Portugal",
133
+ "Romania",
134
+ "Russia",
135
+ "Rwanda",
136
+ "S. Sudan",
137
+ "San Marino",
138
+ "Saudi Arabia",
139
+ "Senegal",
140
+ "Serbia",
141
+ "Sierra Leone",
142
+ "Singapore",
143
+ "Slovakia",
144
+ "Slovenia",
145
+ "Solomon Is.",
146
+ "Somalia",
147
+ "Somaliland",
148
+ "South Africa",
149
+ "South Korea",
150
+ "Spain",
151
+ "Sri Lanka",
152
+ "Sudan",
153
+ "Suriname",
154
+ "Sweden",
155
+ "Switzerland",
156
+ "Syria",
157
+ "Taiwan",
158
+ "Tajikistan",
159
+ "Tanzania",
160
+ "Thailand",
161
+ "Timor-Leste",
162
+ "Togo",
163
+ "Tunisia",
164
+ "Turkey",
165
+ "Turkmenistan",
166
+ "Uganda",
167
+ "Ukraine",
168
+ "United Arab Emirates",
169
+ "United Kingdom",
170
+ "United States",
171
+ "Uruguay",
172
+ "Uzbekistan",
173
+ "Vatican",
174
+ "Venezuela",
175
+ "Vietnam",
176
+ "W. Sahara",
177
+ "Yemen",
178
+ "Zambia",
179
+ "Zimbabwe"
180
+ ]
181
+ },
182
+ {
183
+ "name": "us-states",
184
+ "description": "United States map with individual states (contiguous 48)",
185
+ "regions": [
186
+ "Alabama",
187
+ "Arizona",
188
+ "Arkansas",
189
+ "California",
190
+ "Colorado",
191
+ "Connecticut",
192
+ "Florida",
193
+ "Georgia",
194
+ "Idaho",
195
+ "Illinois",
196
+ "Indiana",
197
+ "Iowa",
198
+ "Kansas",
199
+ "Kentucky",
200
+ "Louisiana",
201
+ "Maine",
202
+ "Maryland",
203
+ "Massachusetts",
204
+ "Michigan",
205
+ "Minnesota",
206
+ "Mississippi",
207
+ "Missouri",
208
+ "Montana",
209
+ "Nebraska",
210
+ "Nevada",
211
+ "New Hampshire",
212
+ "New Jersey",
213
+ "New Mexico",
214
+ "New York",
215
+ "North Carolina",
216
+ "North Dakota",
217
+ "Ohio",
218
+ "Oklahoma",
219
+ "Oregon",
220
+ "Pennsylvania",
221
+ "South Carolina",
222
+ "South Dakota",
223
+ "Tennessee",
224
+ "Texas",
225
+ "Utah",
226
+ "Vermont",
227
+ "Virginia",
228
+ "Washington",
229
+ "West Virginia",
230
+ "Wisconsin",
231
+ "Wyoming"
232
+ ]
233
+ },
234
+ {
235
+ "name": "europe-countries",
236
+ "description": "European countries including European Russia and Turkey",
237
+ "regions": [
238
+ "Albania",
239
+ "Andorra",
240
+ "Austria",
241
+ "Belarus",
242
+ "Belgium",
243
+ "Bosnia and Herzegovina",
244
+ "Bulgaria",
245
+ "Croatia",
246
+ "Czechia",
247
+ "Denmark",
248
+ "Estonia",
249
+ "European Russia",
250
+ "European Turkey",
251
+ "Finland",
252
+ "France",
253
+ "Germany",
254
+ "Greece",
255
+ "Hungary",
256
+ "Iceland",
257
+ "Ireland",
258
+ "Italy",
259
+ "Kosovo",
260
+ "Latvia",
261
+ "Liechtenstein",
262
+ "Lithuania",
263
+ "Malta",
264
+ "Moldova",
265
+ "Monaco",
266
+ "Montenegro",
267
+ "Netherlands",
268
+ "North Macedonia",
269
+ "Norway",
270
+ "Poland",
271
+ "Portugal",
272
+ "Romania",
273
+ "San Marino",
274
+ "Serbia",
275
+ "Slovakia",
276
+ "Slovenia",
277
+ "Spain",
278
+ "Sweden",
279
+ "Switzerland",
280
+ "Ukraine",
281
+ "United Kingdom",
282
+ "Vatican"
283
+ ]
284
+ },
285
+ {
286
+ "name": "americas-countries",
287
+ "description": "North and South American countries",
288
+ "regions": [
289
+ "Argentina",
290
+ "Bahamas",
291
+ "Belize",
292
+ "Bolivia",
293
+ "Brazil",
294
+ "Canada",
295
+ "Chile",
296
+ "Colombia",
297
+ "Costa Rica",
298
+ "Cuba",
299
+ "Dominican Rep.",
300
+ "Ecuador",
301
+ "El Salvador",
302
+ "Falkland Is.",
303
+ "French Guiana",
304
+ "Greenland",
305
+ "Guatemala",
306
+ "Guyana",
307
+ "Haiti",
308
+ "Honduras",
309
+ "Mexico",
310
+ "Nicaragua",
311
+ "Panama",
312
+ "Paraguay",
313
+ "Peru",
314
+ "Suriname",
315
+ "United States",
316
+ "Uruguay",
317
+ "Venezuela"
318
+ ]
319
+ },
320
+ {
321
+ "name": "asia-countries",
322
+ "description": "Asian countries including Asian Russia and Turkey",
323
+ "regions": [
324
+ "Afghanistan",
325
+ "Armenia",
326
+ "Asian Russia",
327
+ "Asian Turkey",
328
+ "Azerbaijan",
329
+ "Bahrain",
330
+ "Bangladesh",
331
+ "Bhutan",
332
+ "Cambodia",
333
+ "China",
334
+ "Georgia",
335
+ "Hong Kong",
336
+ "India",
337
+ "Indonesia",
338
+ "Iran",
339
+ "Iraq",
340
+ "Israel",
341
+ "Japan",
342
+ "Jordan",
343
+ "Kazakhstan",
344
+ "Kuwait",
345
+ "Kyrgyzstan",
346
+ "Laos",
347
+ "Macao",
348
+ "Malaysia",
349
+ "Mongolia",
350
+ "Myanmar",
351
+ "Nepal",
352
+ "North Korea",
353
+ "Oman",
354
+ "Pakistan",
355
+ "Philippines",
356
+ "Saudi Arabia",
357
+ "Singapore",
358
+ "South Korea",
359
+ "Sri Lanka",
360
+ "Syria",
361
+ "Taiwan",
362
+ "Tajikistan",
363
+ "Thailand",
364
+ "Timor-Leste",
365
+ "Turkmenistan",
366
+ "United Arab Emirates",
367
+ "Uzbekistan",
368
+ "Vietnam",
369
+ "Yemen"
370
+ ]
371
+ },
372
+ {
373
+ "name": "africa-countries",
374
+ "description": "African countries",
375
+ "regions": [
376
+ "Algeria",
377
+ "Angola",
378
+ "Benin",
379
+ "Botswana",
380
+ "Burkina Faso",
381
+ "Burundi",
382
+ "Cameroon",
383
+ "Central African Rep.",
384
+ "Chad",
385
+ "Congo",
386
+ "Côte d'Ivoire",
387
+ "Dem. Rep. Congo",
388
+ "Djibouti",
389
+ "Egypt",
390
+ "Eq. Guinea",
391
+ "Eritrea",
392
+ "eSwatini",
393
+ "Ethiopia",
394
+ "Gabon",
395
+ "Ghana",
396
+ "Guinea",
397
+ "Guinea-Bissau",
398
+ "Kenya",
399
+ "Lesotho",
400
+ "Liberia",
401
+ "Libya",
402
+ "Madagascar",
403
+ "Malawi",
404
+ "Mali",
405
+ "Mauritania",
406
+ "Morocco",
407
+ "Mozambique",
408
+ "Namibia",
409
+ "Niger",
410
+ "Nigeria",
411
+ "Rwanda",
412
+ "S. Sudan",
413
+ "Senegal",
414
+ "Sierra Leone",
415
+ "Somalia",
416
+ "Somaliland",
417
+ "South Africa",
418
+ "Sudan",
419
+ "Tanzania",
420
+ "Togo",
421
+ "Tunisia",
422
+ "Uganda",
423
+ "W. Sahara",
424
+ "Zambia",
425
+ "Zimbabwe"
426
+ ]
427
+ },
428
+ {
429
+ "name": "world-continents",
430
+ "description": "World map with regions grouped by continent",
431
+ "regions": ["Africa", "Asia", "Europe", "North America", "Oceania", "South America"]
432
+ },
433
+ {
434
+ "name": "world-regions",
435
+ "description": "World map with regions grouped into 5 major areas",
436
+ "regions": ["Africa", "Americas", "Asia", "Europe", "Oceania"]
437
+ }
438
+ ]
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@validationcloud/fractal-ui",
3
3
  "private": false,
4
- "version": "1.76.0",
4
+ "version": "1.78.0",
5
5
  "module": "./dist/index.js",
6
6
  "type": "module",
7
7
  "files": [
@@ -29,8 +29,9 @@
29
29
  "typecheck": "tsc -b --noEmit",
30
30
  "test": "vitest run",
31
31
  "prepublishOnly": "pnpm build",
32
- "generate:theme": "node --experimental-transform-types scripts/generate-mavrik-theme.ts && prettier --write src/components/echarts-renderer/mavrik-theme*.json",
33
- "generate:fonts": "node --experimental-transform-types scripts/generate-font-data.ts && prettier --write src/lib/font-data.ts",
32
+ "generate:theme": "node --experimental-strip-types scripts/generate-mavrik-theme.ts && prettier --write src/components/echarts-renderer/mavrik-theme*.json",
33
+ "generate:fonts": "node --experimental-strip-types scripts/generate-font-data.ts && prettier --write src/lib/font-data.ts",
34
+ "generate:maps": "node --experimental-strip-types scripts/generate-maps.ts",
34
35
  "setup-hooks": "git config core.hooksPath .githooks"
35
36
  },
36
37
  "exports": {
@@ -46,7 +47,8 @@
46
47
  "types": "./dist/server.d.ts",
47
48
  "import": "./dist/server.js"
48
49
  },
49
- "./tailwind.css": "./dist/styles/tailwind.css"
50
+ "./tailwind.css": "./dist/styles/tailwind.css",
51
+ "./maps.json": "./dist/maps.json"
50
52
  },
51
53
  "packageManager": "pnpm@10.28.0",
52
54
  "engines": {
@@ -68,10 +70,18 @@
68
70
  "@storybook/react-vite": "^10.1.11",
69
71
  "@tailwindcss/postcss": "^4.1.18",
70
72
  "@trivago/prettier-plugin-sort-imports": "^6.0.2",
73
+ "@turf/difference": "^7.3.4",
74
+ "@turf/helpers": "^7.3.4",
75
+ "@turf/union": "^7.3.4",
71
76
  "@types/culori": "^4.0.1",
77
+ "@types/geojson": "^7946.0.16",
72
78
  "@types/node": "^24.10.7",
73
79
  "@types/react": "^19.2.8",
74
80
  "@types/react-dom": "^19.2.3",
81
+ "@types/topojson-client": "^3.1.5",
82
+ "@types/topojson-server": "^3.0.4",
83
+ "@types/topojson-simplify": "^3.0.3",
84
+ "@types/topojson-specification": "^1.0.5",
75
85
  "@vitejs/plugin-react": "^5.1.2",
76
86
  "culori": "^4.0.2",
77
87
  "eslint": "^9.39.2",
@@ -79,6 +89,7 @@
79
89
  "eslint-plugin-react-hooks": "^7.0.1",
80
90
  "eslint-plugin-react-refresh": "^0.4.26",
81
91
  "eslint-plugin-storybook": "^10.1.11",
92
+ "extract-zip": "^2.0.1",
82
93
  "globals": "^16.5.0",
83
94
  "knip": "^5.82.1",
84
95
  "postcss": "^8.5.6",
@@ -88,9 +99,13 @@
88
99
  "rollup-plugin-copy": "^3.5.0",
89
100
  "rollup-preserve-directives": "^1.1.3",
90
101
  "semantic-release": "^25.0.2",
102
+ "shapefile": "^0.6.6",
91
103
  "skia-canvas": "^3.0.8",
92
104
  "storybook": "^10.1.11",
93
105
  "tailwindcss": "^4.1.18",
106
+ "topojson-client": "^3.1.0",
107
+ "topojson-server": "^3.0.1",
108
+ "topojson-simplify": "^3.0.3",
94
109
  "typescript": "^5.9.3",
95
110
  "typescript-eslint": "^8.52.0",
96
111
  "vite": "^7.3.1",