@accelint/map-toolkit 0.2.0 → 0.3.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 (51) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/catalog-info.yaml +6 -3
  3. package/dist/cursor-coordinates/index.d.ts +3 -0
  4. package/dist/cursor-coordinates/index.js +3 -0
  5. package/dist/cursor-coordinates/index.js.map +1 -0
  6. package/dist/cursor-coordinates/use-cursor-coordinates.d.ts +76 -0
  7. package/dist/cursor-coordinates/use-cursor-coordinates.js +161 -0
  8. package/dist/cursor-coordinates/use-cursor-coordinates.js.map +1 -0
  9. package/dist/deckgl/base-map/events.d.ts +1 -0
  10. package/dist/deckgl/base-map/events.js +2 -1
  11. package/dist/deckgl/base-map/events.js.map +1 -1
  12. package/dist/deckgl/base-map/index.d.ts +1 -1
  13. package/dist/deckgl/base-map/index.js +69 -15
  14. package/dist/deckgl/base-map/index.js.map +1 -1
  15. package/dist/deckgl/base-map/provider.d.ts +12 -16
  16. package/dist/deckgl/base-map/provider.js +2 -6
  17. package/dist/deckgl/base-map/provider.js.map +1 -1
  18. package/dist/deckgl/base-map/types.d.ts +29 -8
  19. package/dist/deckgl/text-layer/character-sets.d.ts +7 -0
  20. package/dist/deckgl/text-layer/character-sets.js.map +1 -1
  21. package/dist/deckgl/text-layer/default-settings.js.map +1 -1
  22. package/dist/decorators/deckgl.d.ts +1 -1
  23. package/dist/decorators/deckgl.js.map +1 -1
  24. package/dist/map-mode/index.d.ts +1 -1
  25. package/dist/map-mode/index.js +1 -1
  26. package/dist/map-mode/store.d.ts +35 -109
  27. package/dist/map-mode/store.js +268 -289
  28. package/dist/map-mode/store.js.map +1 -1
  29. package/dist/map-mode/use-map-mode.d.ts +3 -5
  30. package/dist/map-mode/use-map-mode.js +8 -10
  31. package/dist/map-mode/use-map-mode.js.map +1 -1
  32. package/dist/metafile-esm.json +1 -1
  33. package/dist/viewport/constants.d.ts +9 -0
  34. package/dist/viewport/constants.js +11 -0
  35. package/dist/viewport/constants.js.map +1 -0
  36. package/dist/viewport/index.d.ts +13 -0
  37. package/dist/viewport/index.js +6 -0
  38. package/dist/viewport/index.js.map +1 -0
  39. package/dist/viewport/types.d.ts +22 -0
  40. package/dist/viewport/types.js +3 -0
  41. package/dist/viewport/types.js.map +1 -0
  42. package/dist/viewport/use-viewport-state.d.ts +85 -0
  43. package/dist/viewport/use-viewport-state.js +109 -0
  44. package/dist/viewport/use-viewport-state.js.map +1 -0
  45. package/dist/viewport/utils.d.ts +37 -0
  46. package/dist/viewport/utils.js +46 -0
  47. package/dist/viewport/utils.js.map +1 -0
  48. package/dist/viewport/viewport-size.d.ts +42 -0
  49. package/dist/viewport/viewport-size.js +16 -0
  50. package/dist/viewport/viewport-size.js.map +1 -0
  51. package/package.json +15 -20
@@ -0,0 +1,37 @@
1
+ import { GetViewportSizeArgs } from './types.js';
2
+ import '../deckgl/base-map/types.js';
3
+ import '@accelint/bus';
4
+ import '@accelint/core';
5
+ import '@deck.gl/core';
6
+ import 'mjolnir.js';
7
+ import '../deckgl/base-map/events.js';
8
+ import './constants.js';
9
+
10
+ /**
11
+ * Returns a formatted viewport size string i.e. `660 x 1,801 NM`
12
+ *
13
+ * Calculates the geographic distance of the viewport using zoom level and
14
+ * pixel dimensions with the Web Mercator projection formula. This approach
15
+ * provides stable results without the edge cases of bounds-based calculations.
16
+ *
17
+ * @param args - Viewport size calculation arguments
18
+ * @param args.bounds - Geographic bounds [minLon, minLat, maxLon, maxLat]
19
+ * @param args.zoom - Zoom level for meters-per-pixel calculation
20
+ * @param args.width - Viewport width in pixels
21
+ * @param args.height - Viewport height in pixels
22
+ * @param args.unit - Unit of distance measurement: `km | m | nm | mi | ft`. Defaults to `nm`
23
+ * @param args.formatter - Number formatter for localization (defaults to en-US)
24
+ * @returns Formatted string like "660 x 1,801 NM" or "-- x -- NM" if invalid
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * getViewportSize({ bounds: [-82, 22, -71, 52], zoom: 5, width: 800, height: 600, unit: 'nm' })
29
+ * // returns "612 x 459 NM"
30
+ *
31
+ * getViewportSize({ bounds: [170, 50, -170, 60], zoom: 4, width: 1024, height: 768, unit: 'km' })
32
+ * // returns "2,050 x 1,538 KM"
33
+ * ```
34
+ */
35
+ declare function getViewportSize({ bounds, zoom, width: pixelWidth, height: pixelHeight, unit, formatter, }: GetViewportSizeArgs): string;
36
+
37
+ export { getViewportSize };
@@ -0,0 +1,46 @@
1
+ import { UNIT_MAP } from './constants.js';
2
+
3
+ const numberFormatter = Intl.NumberFormat("en-US");
4
+ const METERS_PER_PIXEL_AT_ZOOM_0 = 156543.03392;
5
+ const METERS_TO_UNIT = {
6
+ kilometers: 1e-3,
7
+ meters: 1,
8
+ nauticalmiles: 539957e-9,
9
+ miles: 621371e-9,
10
+ feet: 3.28084
11
+ };
12
+ function getViewportSize({
13
+ bounds,
14
+ zoom,
15
+ width: pixelWidth,
16
+ height: pixelHeight,
17
+ unit = "nm",
18
+ formatter = numberFormatter
19
+ }) {
20
+ const defaultValue = `-- x -- ${unit.toUpperCase()}`;
21
+ if (bounds.every((b) => Number.isNaN(b))) {
22
+ return defaultValue;
23
+ }
24
+ if (Number.isNaN(zoom) || pixelWidth === 0 || pixelHeight === 0) {
25
+ return defaultValue;
26
+ }
27
+ const [, minLat, , maxLat] = bounds;
28
+ if (minLat < -90 || minLat > 90 || maxLat < -90 || maxLat > 90) {
29
+ return defaultValue;
30
+ }
31
+ const centerLat = (minLat + maxLat) / 2;
32
+ const metersPerPixel = METERS_PER_PIXEL_AT_ZOOM_0 * Math.cos(centerLat * Math.PI / 180) / 2 ** zoom;
33
+ const widthMeters = pixelWidth * metersPerPixel;
34
+ const heightMeters = pixelHeight * metersPerPixel;
35
+ const unitKey = UNIT_MAP[unit];
36
+ const conversionFactor = METERS_TO_UNIT[unitKey];
37
+ const widthDistance = Math.round(widthMeters * conversionFactor);
38
+ const heightDistance = Math.round(heightMeters * conversionFactor);
39
+ const width = formatter.format(widthDistance);
40
+ const height = formatter.format(heightDistance);
41
+ return `${width} x ${height} ${unit.toUpperCase()}`;
42
+ }
43
+
44
+ export { getViewportSize };
45
+ //# sourceMappingURL=utils.js.map
46
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/viewport/utils.ts"],"names":[],"mappings":";;AAeA,MAAM,eAAA,GAAkB,IAAA,CAAK,YAAA,CAAa,OAAO,CAAA;AAMjD,MAAM,0BAAA,GAA6B,YAAA;AAKnC,MAAM,cAAA,GAAiB;AAAA,EACrB,UAAA,EAAY,IAAA;AAAA,EACZ,MAAA,EAAQ,CAAA;AAAA,EACR,aAAA,EAAe,SAAA;AAAA,EACf,KAAA,EAAO,SAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAA;AA2BO,SAAS,eAAA,CAAgB;AAAA,EAC9B,MAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ,WAAA;AAAA,EACR,IAAA,GAAO,IAAA;AAAA,EACP,SAAA,GAAY;AACd,CAAA,EAAwB;AACtB,EAAA,MAAM,YAAA,GAAe,CAAA,QAAA,EAAW,IAAA,CAAK,WAAA,EAAa,CAAA,CAAA;AAGlD,EAAA,IAAI,MAAA,CAAO,MAAM,CAAC,CAAA,KAAM,OAAO,KAAA,CAAM,CAAC,CAAC,CAAA,EAAG;AACxC,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAO,KAAA,CAAM,IAAI,KAAK,UAAA,KAAe,CAAA,IAAK,gBAAgB,CAAA,EAAG;AAC/D,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,MAAM,GAAG,MAAA,IAAU,MAAM,CAAA,GAAI,MAAA;AAG7B,EAAA,IAAI,SAAS,GAAA,IAAO,MAAA,GAAS,MAAM,MAAA,GAAS,GAAA,IAAO,SAAS,EAAA,EAAI;AAC9D,IAAA,OAAO,YAAA;AAAA,EACT;AAGA,EAAA,MAAM,SAAA,GAAA,CAAa,SAAS,MAAA,IAAU,CAAA;AAItC,EAAA,MAAM,cAAA,GACH,6BAA6B,IAAA,CAAK,GAAA,CAAK,YAAY,IAAA,CAAK,EAAA,GAAM,GAAG,CAAA,GAClE,CAAA,IAAK,IAAA;AAGP,EAAA,MAAM,cAAc,UAAA,GAAa,cAAA;AACjC,EAAA,MAAM,eAAe,WAAA,GAAc,cAAA;AAGnC,EAAA,MAAM,OAAA,GAAU,SAAS,IAAI,CAAA;AAC7B,EAAA,MAAM,gBAAA,GAAmB,eAAe,OAAO,CAAA;AAE/C,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAA,CAAM,WAAA,GAAc,gBAAgB,CAAA;AAC/D,EAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,KAAA,CAAM,YAAA,GAAe,gBAAgB,CAAA;AAEjE,EAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,MAAA,CAAO,aAAa,CAAA;AAC5C,EAAA,MAAM,MAAA,GAAS,SAAA,CAAU,MAAA,CAAO,cAAc,CAAA;AAE9C,EAAA,OAAO,GAAG,KAAK,CAAA,GAAA,EAAM,MAAM,CAAA,CAAA,EAAI,IAAA,CAAK,aAAa,CAAA,CAAA;AACnD","file":"utils.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { UNIT_MAP } from './constants';\nimport type { GetViewportSizeArgs } from './types';\n\nconst numberFormatter = Intl.NumberFormat('en-US');\n\n/**\n * Web Mercator constant: meters per pixel at zoom 0, equator.\n * This is Earth's circumference (40075016.686m) divided by 256 (tile size).\n */\nconst METERS_PER_PIXEL_AT_ZOOM_0 = 156543.03392;\n\n/**\n * Unit conversion factors from meters.\n */\nconst METERS_TO_UNIT = {\n kilometers: 0.001,\n meters: 1,\n nauticalmiles: 0.000539957,\n miles: 0.000621371,\n feet: 3.28084,\n} as const;\n\n/**\n * Returns a formatted viewport size string i.e. `660 x 1,801 NM`\n *\n * Calculates the geographic distance of the viewport using zoom level and\n * pixel dimensions with the Web Mercator projection formula. This approach\n * provides stable results without the edge cases of bounds-based calculations.\n *\n * @param args - Viewport size calculation arguments\n * @param args.bounds - Geographic bounds [minLon, minLat, maxLon, maxLat]\n * @param args.zoom - Zoom level for meters-per-pixel calculation\n * @param args.width - Viewport width in pixels\n * @param args.height - Viewport height in pixels\n * @param args.unit - Unit of distance measurement: `km | m | nm | mi | ft`. Defaults to `nm`\n * @param args.formatter - Number formatter for localization (defaults to en-US)\n * @returns Formatted string like \"660 x 1,801 NM\" or \"-- x -- NM\" if invalid\n *\n * @example\n * ```typescript\n * getViewportSize({ bounds: [-82, 22, -71, 52], zoom: 5, width: 800, height: 600, unit: 'nm' })\n * // returns \"612 x 459 NM\"\n *\n * getViewportSize({ bounds: [170, 50, -170, 60], zoom: 4, width: 1024, height: 768, unit: 'km' })\n * // returns \"2,050 x 1,538 KM\"\n * ```\n */\nexport function getViewportSize({\n bounds,\n zoom,\n width: pixelWidth,\n height: pixelHeight,\n unit = 'nm',\n formatter = numberFormatter,\n}: GetViewportSizeArgs) {\n const defaultValue = `-- x -- ${unit.toUpperCase()}`;\n\n // Validate inputs\n if (bounds.every((b) => Number.isNaN(b))) {\n return defaultValue;\n }\n\n if (Number.isNaN(zoom) || pixelWidth === 0 || pixelHeight === 0) {\n return defaultValue;\n }\n\n const [, minLat, , maxLat] = bounds;\n\n // Validate latitude bounds are within valid geographic ranges\n if (minLat < -90 || minLat > 90 || maxLat < -90 || maxLat > 90) {\n return defaultValue;\n }\n\n // Calculate center latitude for the viewport\n const centerLat = (minLat + maxLat) / 2;\n\n // Web Mercator formula: meters per pixel at given zoom and latitude\n // Resolution = 156543.03392 * cos(latitude * π/180) / 2^zoom\n const metersPerPixel =\n (METERS_PER_PIXEL_AT_ZOOM_0 * Math.cos((centerLat * Math.PI) / 180)) /\n 2 ** zoom;\n\n // Calculate distances in meters\n const widthMeters = pixelWidth * metersPerPixel;\n const heightMeters = pixelHeight * metersPerPixel;\n\n // Convert to requested unit\n const unitKey = UNIT_MAP[unit] as keyof typeof METERS_TO_UNIT;\n const conversionFactor = METERS_TO_UNIT[unitKey];\n\n const widthDistance = Math.round(widthMeters * conversionFactor);\n const heightDistance = Math.round(heightMeters * conversionFactor);\n\n const width = formatter.format(widthDistance);\n const height = formatter.format(heightDistance);\n\n return `${width} x ${height} ${unit.toUpperCase()}`;\n}\n"]}
@@ -0,0 +1,42 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { UniqueId } from '@accelint/core';
3
+ import { ComponentPropsWithRef } from 'react';
4
+ import { SupportedDistanceUnit } from './types.js';
5
+ import '../deckgl/base-map/types.js';
6
+ import '@accelint/bus';
7
+ import '@deck.gl/core';
8
+ import 'mjolnir.js';
9
+ import '../deckgl/base-map/events.js';
10
+ import './constants.js';
11
+
12
+ type ViewportSizeProps = ComponentPropsWithRef<'span'> & {
13
+ instanceId: UniqueId;
14
+ unit?: SupportedDistanceUnit;
15
+ };
16
+ /**
17
+ * A span element displaying the current viewport bounds in the specified unit.
18
+ *
19
+ * Displays the viewport dimensions in a format like `660 x 1,801 NM`.
20
+ * Updates automatically as the viewport changes by subscribing to viewport events.
21
+ *
22
+ * @param props - Extends `<span>` props
23
+ * @param props.instanceId - The id of the view to subscribe to
24
+ * @param props.unit - Measure of distance: `km | m | nm | mi | ft`. Defaults to `nm`
25
+ * @param props.className - CSS classes for styling
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * // Basic usage with default nautical miles
30
+ * <ViewportSize instanceId="some-uuid" />
31
+ *
32
+ * // With custom unit and styling
33
+ * <ViewportSize
34
+ * instanceId="some-uuid"
35
+ * unit="km"
36
+ * className="text-sm text-gray-600"
37
+ * />
38
+ * ```
39
+ */
40
+ declare function ViewportSize({ instanceId, unit, ...rest }: ViewportSizeProps): react_jsx_runtime.JSX.Element;
41
+
42
+ export { ViewportSize, type ViewportSizeProps };
@@ -0,0 +1,16 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useViewportState } from './use-viewport-state.js';
3
+ import { getViewportSize } from './utils.js';
4
+
5
+ function ViewportSize({
6
+ instanceId,
7
+ unit = "nm",
8
+ ...rest
9
+ }) {
10
+ const { bounds, zoom, width, height } = useViewportState({ instanceId });
11
+ return /* @__PURE__ */ jsx("span", { ...rest, children: getViewportSize({ bounds, unit, zoom, width, height }) });
12
+ }
13
+
14
+ export { ViewportSize };
15
+ //# sourceMappingURL=viewport-size.js.map
16
+ //# sourceMappingURL=viewport-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/viewport/viewport-size.tsx"],"names":[],"mappings":";;;;AA+CO,SAAS,YAAA,CAAa;AAAA,EAC3B,UAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,GAAG;AACL,CAAA,EAAsB;AACpB,EAAA,MAAM,EAAE,QAAQ,IAAA,EAAM,KAAA,EAAO,QAAO,GAAI,gBAAA,CAAiB,EAAE,UAAA,EAAY,CAAA;AAEvE,EAAA,uBACE,GAAA,CAAC,MAAA,EAAA,EAAM,GAAG,IAAA,EACP,QAAA,EAAA,eAAA,CAAgB,EAAE,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,CAAA,EACxD,CAAA;AAEJ","file":"viewport-size.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useViewportState } from './use-viewport-state';\nimport { getViewportSize } from './utils';\nimport type { UniqueId } from '@accelint/core';\nimport type { ComponentPropsWithRef } from 'react';\nimport type { SupportedDistanceUnit } from './types';\n\nexport type ViewportSizeProps = ComponentPropsWithRef<'span'> & {\n instanceId: UniqueId;\n unit?: SupportedDistanceUnit;\n};\n\n/**\n * A span element displaying the current viewport bounds in the specified unit.\n *\n * Displays the viewport dimensions in a format like `660 x 1,801 NM`.\n * Updates automatically as the viewport changes by subscribing to viewport events.\n *\n * @param props - Extends `<span>` props\n * @param props.instanceId - The id of the view to subscribe to\n * @param props.unit - Measure of distance: `km | m | nm | mi | ft`. Defaults to `nm`\n * @param props.className - CSS classes for styling\n *\n * @example\n * ```tsx\n * // Basic usage with default nautical miles\n * <ViewportSize instanceId=\"some-uuid\" />\n *\n * // With custom unit and styling\n * <ViewportSize\n * instanceId=\"some-uuid\"\n * unit=\"km\"\n * className=\"text-sm text-gray-600\"\n * />\n * ```\n */\nexport function ViewportSize({\n instanceId,\n unit = 'nm',\n ...rest\n}: ViewportSizeProps) {\n const { bounds, zoom, width, height } = useViewportState({ instanceId });\n\n return (\n <span {...rest}>\n {getViewportSize({ bounds, unit, zoom, width, height })}\n </span>\n );\n}\n"]}
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "maplibre"
13
13
  ],
14
14
  "subPath": "packages/map-toolkit",
15
- "version": "0.2.0",
15
+ "version": "0.3.0",
16
16
  "private": false,
17
17
  "license": "Apache-2.0",
18
18
  "repository": {
@@ -55,16 +55,10 @@
55
55
  "@deckgl-fiber-renderer/dom": "^1.4.0",
56
56
  "@deckgl-fiber-renderer/shared": "^1.4.0",
57
57
  "@deckgl-fiber-renderer/types": "^1.4.0",
58
- "@storybook/addon-actions": "^8.6.14",
59
- "@storybook/addon-essentials": "^8.6.14",
60
- "@storybook/addon-storysource": "^8.6.14",
61
- "@storybook/addon-themes": "^8.6.14",
62
- "@storybook/blocks": "^8.6.14",
63
- "@storybook/builder-vite": "^8.6.14",
64
- "@storybook/manager-api": "^8.6.14",
65
- "@storybook/react": "^8.6.14",
66
- "@storybook/react-vite": "^8.6.14",
67
- "@storybook/theming": "^8.6.14",
58
+ "@storybook/addon-docs": "^9.1.16",
59
+ "@storybook/addon-themes": "^9.1.16",
60
+ "@storybook/builder-vite": "^9.1.16",
61
+ "@storybook/react-vite": "^9.1.16",
68
62
  "@tailwindcss/vite": "^4.1.11",
69
63
  "@testing-library/dom": "^10.4.1",
70
64
  "@testing-library/jest-dom": "^6.6.4",
@@ -81,19 +75,20 @@
81
75
  "node-fetch": "^2.6.7",
82
76
  "react": "19.0.0",
83
77
  "react-dom": "19.0.0",
84
- "storybook": "^8.6.14",
78
+ "storybook": "^9.1.16",
85
79
  "tailwindcss": "^4.1.11",
86
80
  "tsup": "8.5.0",
87
81
  "type-fest": "^4.41.0",
88
82
  "typescript": "5.8.3",
89
- "vite": "^5.4.9",
90
- "vitest": "^2.1.9",
91
- "vitest-broadcast-channel-mock": "^0.1.0",
83
+ "vite": "^7.2.2",
84
+ "vitest": "^4.0.8",
92
85
  "@accelint/biome-config": "1.0.2",
93
- "@accelint/bus": "2.0.0",
86
+ "@accelint/bus": "3.0.0",
94
87
  "@accelint/constellation-tracker": "1.0.1",
88
+ "@accelint/design-foundation": "1.0.0",
95
89
  "@accelint/core": "0.5.0",
96
- "@accelint/design-toolkit": "7.0.0",
90
+ "@accelint/design-toolkit": "8.0.0",
91
+ "@accelint/geo": "0.3.0",
97
92
  "@accelint/typescript-config": "0.1.4",
98
93
  "@accelint/vitest-config": "0.1.5"
99
94
  },
@@ -111,9 +106,9 @@
111
106
  "maplibre-gl": "^5.7.1",
112
107
  "milsymbol": "3.0.2",
113
108
  "mjolnir.js": "^3.0.0",
114
- "react": "19.0.0",
115
- "@accelint/bus": "2.0.0",
116
- "@accelint/core": "0.5.0"
109
+ "@accelint/bus": "3.0.0",
110
+ "@accelint/core": "0.5.0",
111
+ "@accelint/geo": "0.3.0"
117
112
  },
118
113
  "publishConfig": {
119
114
  "access": "public"