@dxos/react-ui-geo 0.8.4-main.a4bbb77 → 0.8.4-main.ae835ea

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.
@@ -1 +1 @@
1
- {"inputs":{"data/countries-110m.ts":{"bytes":1301786,"imports":[],"format":"esm"},"src/data.ts":{"bytes":869,"imports":[{"path":"data/countries-110m.ts","kind":"dynamic-import","original":"../data/countries-110m.ts"}],"format":"esm"},"src/hooks/context.tsx":{"bytes":5386,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/util/debug.ts":{"bytes":1444,"imports":[],"format":"esm"},"src/util/inertia.ts":{"bytes":21685,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"versor","kind":"import-statement","external":true}],"format":"esm"},"src/util/path.ts":{"bytes":5718,"imports":[{"path":"d3","kind":"import-statement","external":true}],"format":"esm"},"src/util/render.ts":{"bytes":12272,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"topojson-client","kind":"import-statement","external":true},{"path":"src/util/path.ts","kind":"import-statement","original":"./path"}],"format":"esm"},"src/util/index.ts":{"bytes":698,"imports":[{"path":"src/util/debug.ts","kind":"import-statement","original":"./debug"},{"path":"src/util/inertia.ts","kind":"import-statement","original":"./inertia"},{"path":"src/util/path.ts","kind":"import-statement","original":"./path"},{"path":"src/util/render.ts","kind":"import-statement","original":"./render"}],"format":"esm"},"src/hooks/useDrag.ts":{"bytes":4558,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"src/hooks/useGlobeZoomHandler.ts":{"bytes":2305,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useMapZoomHandler.ts":{"bytes":2289,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useSpinner.ts":{"bytes":5258,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useTour.ts":{"bytes":14868,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"versor","kind":"import-statement","external":true},{"path":"src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"src/hooks/index.ts":{"bytes":948,"imports":[{"path":"src/hooks/context.tsx","kind":"import-statement","original":"./context"},{"path":"src/hooks/useDrag.ts","kind":"import-statement","original":"./useDrag"},{"path":"src/hooks/useGlobeZoomHandler.ts","kind":"import-statement","original":"./useGlobeZoomHandler"},{"path":"src/hooks/useMapZoomHandler.ts","kind":"import-statement","original":"./useMapZoomHandler"},{"path":"src/hooks/useSpinner.ts","kind":"import-statement","original":"./useSpinner"},{"path":"src/hooks/useTour.ts","kind":"import-statement","original":"./useTour"}],"format":"esm"},"src/components/Toolbar/Controls.tsx":{"bytes":6086,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/components/Toolbar/index.ts":{"bytes":470,"imports":[{"path":"src/components/Toolbar/Controls.tsx","kind":"import-statement","original":"./Controls"}],"format":"esm"},"src/components/Globe/Globe.tsx":{"bytes":28107,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-resize-detector","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"src/components/Toolbar/index.ts","kind":"import-statement","original":"../Toolbar"}],"format":"esm"},"src/components/Globe/index.ts":{"bytes":461,"imports":[{"path":"src/components/Globe/Globe.tsx","kind":"import-statement","original":"./Globe"}],"format":"esm"},"src/components/Map/Map.tsx":{"bytes":27967,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"leaflet/dist/leaflet.css","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"leaflet","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"react-leaflet","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"src/components/Toolbar/index.ts","kind":"import-statement","original":"../Toolbar"}],"format":"esm"},"src/components/Map/index.ts":{"bytes":457,"imports":[{"path":"src/components/Map/Map.tsx","kind":"import-statement","original":"./Map"}],"format":"esm"},"src/components/index.ts":{"bytes":617,"imports":[{"path":"src/components/Globe/index.ts","kind":"import-statement","original":"./Globe"},{"path":"src/components/Map/index.ts","kind":"import-statement","original":"./Map"},{"path":"src/components/Toolbar/index.ts","kind":"import-statement","original":"./Toolbar"}],"format":"esm"},"src/index.ts":{"bytes":738,"imports":[{"path":"src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"src/data.ts","kind":"import-statement","original":"./data"},{"path":"src/hooks/index.ts","kind":"import-statement","original":"./hooks"},{"path":"src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"dist/lib/browser/data.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/data.mjs":{"imports":[{"path":"dist/lib/browser/chunk-GMWLKTLN.mjs","kind":"import-statement"}],"exports":["loadTopology"],"entryPoint":"src/data.ts","inputs":{},"bytes":116},"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":69737},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-GMWLKTLN.mjs","kind":"import-statement"},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-resize-detector","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"versor","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"topojson-client","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"versor","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"leaflet/dist/leaflet.css","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"leaflet","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"react-leaflet","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["ActionControls","Globe","GlobeContextProvider","Map","ZoomControls","closestPoint","controlPositions","createLayers","geoCircle","geoInertiaDrag","geoLine","geoPoint","geoToPosition","getDistance","loadTopology","positionToRotation","renderLayers","restrictAxis","timer","useDrag","useGlobeContext","useGlobeZoomHandler","useMapZoomHandler","useSpinner","useTour"],"entryPoint":"src/index.ts","inputs":{"src/components/Globe/Globe.tsx":{"bytesInOutput":6780},"src/hooks/context.tsx":{"bytesInOutput":1142},"src/hooks/index.ts":{"bytesInOutput":0},"src/hooks/useDrag.ts":{"bytesInOutput":862},"src/util/debug.ts":{"bytesInOutput":211},"src/util/index.ts":{"bytesInOutput":0},"src/util/inertia.ts":{"bytesInOutput":4562},"src/util/path.ts":{"bytesInOutput":1068},"src/util/render.ts":{"bytesInOutput":2487},"src/hooks/useGlobeZoomHandler.ts":{"bytesInOutput":411},"src/hooks/useMapZoomHandler.ts":{"bytesInOutput":426},"src/hooks/useSpinner.ts":{"bytesInOutput":1151},"src/hooks/useTour.ts":{"bytesInOutput":3306},"src/components/Toolbar/Controls.tsx":{"bytesInOutput":1805},"src/components/Toolbar/index.ts":{"bytesInOutput":0},"src/components/Globe/index.ts":{"bytesInOutput":0},"src/components/index.ts":{"bytesInOutput":0},"src/components/Map/Map.tsx":{"bytesInOutput":6733},"src/components/Map/index.ts":{"bytesInOutput":0},"src/index.ts":{"bytesInOutput":0}},"bytes":31867},"dist/lib/browser/chunk-GMWLKTLN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":430},"dist/lib/browser/chunk-GMWLKTLN.mjs":{"imports":[{"path":"dist/lib/browser/countries-110m-ZM3ZIEFS.mjs","kind":"dynamic-import"}],"exports":["loadTopology"],"inputs":{"src/data.ts":{"bytesInOutput":102}},"bytes":189},"dist/lib/browser/countries-110m-ZM3ZIEFS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":352624},"dist/lib/browser/countries-110m-ZM3ZIEFS.mjs":{"imports":[],"exports":["default"],"entryPoint":"data/countries-110m.ts","inputs":{"data/countries-110m.ts":{"bytesInOutput":420420}},"bytes":420547}}}
1
+ {"inputs":{"data/countries-110m.ts":{"bytes":1301786,"imports":[],"format":"esm"},"src/data.ts":{"bytes":869,"imports":[{"path":"data/countries-110m.ts","kind":"dynamic-import","original":"../data/countries-110m.ts"}],"format":"esm"},"src/hooks/context.tsx":{"bytes":6048,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/util/debug.ts":{"bytes":1445,"imports":[],"format":"esm"},"src/util/inertia.ts":{"bytes":21690,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"versor","kind":"import-statement","external":true}],"format":"esm"},"src/util/path.ts":{"bytes":5718,"imports":[{"path":"d3","kind":"import-statement","external":true}],"format":"esm"},"src/util/render.ts":{"bytes":12238,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"topojson-client","kind":"import-statement","external":true},{"path":"src/util/path.ts","kind":"import-statement","original":"./path"}],"format":"esm"},"src/util/index.ts":{"bytes":698,"imports":[{"path":"src/util/debug.ts","kind":"import-statement","original":"./debug"},{"path":"src/util/inertia.ts","kind":"import-statement","original":"./inertia"},{"path":"src/util/path.ts","kind":"import-statement","original":"./path"},{"path":"src/util/render.ts","kind":"import-statement","original":"./render"}],"format":"esm"},"src/hooks/useDrag.ts":{"bytes":4559,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"src/hooks/useGlobeZoomHandler.ts":{"bytes":2762,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useMapZoomHandler.ts":{"bytes":2289,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useSpinner.ts":{"bytes":5258,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useTour.ts":{"bytes":14870,"imports":[{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"versor","kind":"import-statement","external":true},{"path":"src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"src/hooks/index.ts":{"bytes":948,"imports":[{"path":"src/hooks/context.tsx","kind":"import-statement","original":"./context"},{"path":"src/hooks/useDrag.ts","kind":"import-statement","original":"./useDrag"},{"path":"src/hooks/useGlobeZoomHandler.ts","kind":"import-statement","original":"./useGlobeZoomHandler"},{"path":"src/hooks/useMapZoomHandler.ts","kind":"import-statement","original":"./useMapZoomHandler"},{"path":"src/hooks/useSpinner.ts","kind":"import-statement","original":"./useSpinner"},{"path":"src/hooks/useTour.ts","kind":"import-statement","original":"./useTour"}],"format":"esm"},"src/components/Toolbar/Controls.tsx":{"bytes":6086,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/components/Toolbar/index.ts":{"bytes":470,"imports":[{"path":"src/components/Toolbar/Controls.tsx","kind":"import-statement","original":"./Controls"}],"format":"esm"},"src/components/Globe/Globe.tsx":{"bytes":28179,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-resize-detector","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"src/components/Toolbar/index.ts","kind":"import-statement","original":"../Toolbar"}],"format":"esm"},"src/components/Globe/index.ts":{"bytes":461,"imports":[{"path":"src/components/Globe/Globe.tsx","kind":"import-statement","original":"./Globe"}],"format":"esm"},"src/components/Map/Map.tsx":{"bytes":26592,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"leaflet/dist/leaflet.css","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"leaflet","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"react-leaflet","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"src/components/Toolbar/index.ts","kind":"import-statement","original":"../Toolbar"}],"format":"esm"},"src/components/Map/index.ts":{"bytes":457,"imports":[{"path":"src/components/Map/Map.tsx","kind":"import-statement","original":"./Map"}],"format":"esm"},"src/components/index.ts":{"bytes":617,"imports":[{"path":"src/components/Globe/index.ts","kind":"import-statement","original":"./Globe"},{"path":"src/components/Map/index.ts","kind":"import-statement","original":"./Map"},{"path":"src/components/Toolbar/index.ts","kind":"import-statement","original":"./Toolbar"}],"format":"esm"},"src/index.ts":{"bytes":738,"imports":[{"path":"src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"src/data.ts","kind":"import-statement","original":"./data"},{"path":"src/hooks/index.ts","kind":"import-statement","original":"./hooks"},{"path":"src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"dist/lib/browser/data.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/data.mjs":{"imports":[{"path":"dist/lib/browser/chunk-GMWLKTLN.mjs","kind":"import-statement"}],"exports":["loadTopology"],"entryPoint":"src/data.ts","inputs":{},"bytes":116},"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":69596},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-GMWLKTLN.mjs","kind":"import-statement"},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-resize-detector","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"versor","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"topojson-client","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"d3","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"versor","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"leaflet/dist/leaflet.css","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"leaflet","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"react-leaflet","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["ActionControls","Globe","GlobeContextProvider","Map","ZoomControls","closestPoint","controlPositions","createLayers","geoCircle","geoInertiaDrag","geoLine","geoPoint","geoToPosition","getDistance","loadTopology","positionToRotation","renderLayers","restrictAxis","timer","useDrag","useGlobeContext","useGlobeZoomHandler","useMapZoomHandler","useSpinner","useTour"],"entryPoint":"src/index.ts","inputs":{"src/components/Globe/Globe.tsx":{"bytesInOutput":6804},"src/hooks/context.tsx":{"bytesInOutput":1279},"src/hooks/index.ts":{"bytesInOutput":0},"src/hooks/useDrag.ts":{"bytesInOutput":862},"src/util/debug.ts":{"bytesInOutput":211},"src/util/index.ts":{"bytesInOutput":0},"src/util/inertia.ts":{"bytesInOutput":4562},"src/util/path.ts":{"bytesInOutput":1068},"src/util/render.ts":{"bytesInOutput":2469},"src/hooks/useGlobeZoomHandler.ts":{"bytesInOutput":522},"src/hooks/useMapZoomHandler.ts":{"bytesInOutput":426},"src/hooks/useSpinner.ts":{"bytesInOutput":1151},"src/hooks/useTour.ts":{"bytesInOutput":3306},"src/components/Toolbar/Controls.tsx":{"bytesInOutput":1805},"src/components/Toolbar/index.ts":{"bytesInOutput":0},"src/components/Globe/index.ts":{"bytesInOutput":0},"src/components/index.ts":{"bytesInOutput":0},"src/components/Map/Map.tsx":{"bytesInOutput":6399},"src/components/Map/index.ts":{"bytesInOutput":0},"src/index.ts":{"bytesInOutput":0}},"bytes":31787},"dist/lib/browser/chunk-GMWLKTLN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":430},"dist/lib/browser/chunk-GMWLKTLN.mjs":{"imports":[{"path":"dist/lib/browser/countries-110m-ZM3ZIEFS.mjs","kind":"dynamic-import"}],"exports":["loadTopology"],"inputs":{"src/data.ts":{"bytesInOutput":102}},"bytes":189},"dist/lib/browser/countries-110m-ZM3ZIEFS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":352624},"dist/lib/browser/countries-110m-ZM3ZIEFS.mjs":{"imports":[],"exports":["default"],"entryPoint":"data/countries-110m.ts","inputs":{"data/countries-110m.ts":{"bytesInOutput":420420}},"bytes":420547}}}
@@ -16,14 +16,21 @@ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
16
16
  import React, { createContext, useContext } from "react";
17
17
  import { raise } from "@dxos/debug";
18
18
  import { useControlledState } from "@dxos/react-ui";
19
+ var defaults = {
20
+ center: {
21
+ lat: 51,
22
+ lng: 0
23
+ },
24
+ zoom: 4
25
+ };
19
26
  var GlobeContext = /* @__PURE__ */ createContext(void 0);
20
- var GlobeContextProvider = ({ children, size, center: _center, zoom: _zoom, translation: _translation, rotation: _rotation }) => {
27
+ var GlobeContextProvider = ({ children, size, center: centerParam = defaults.center, zoom: zoomParam = defaults.zoom, translation: translationParam, rotation: rotationParam }) => {
21
28
  var _effect = _useSignals();
22
29
  try {
23
- const [center, setCenter] = useControlledState(_center);
24
- const [zoom, setZoom] = useControlledState(_zoom);
25
- const [translation, setTranslation] = useControlledState(_translation);
26
- const [rotation, setRotation] = useControlledState(_rotation);
30
+ const [center, setCenter] = useControlledState(centerParam);
31
+ const [zoom, setZoom] = useControlledState(zoomParam);
32
+ const [translation, setTranslation] = useControlledState(translationParam);
33
+ const [rotation, setRotation] = useControlledState(rotationParam);
27
34
  return /* @__PURE__ */ React.createElement(GlobeContext.Provider, {
28
35
  value: {
29
36
  size,
@@ -377,8 +384,8 @@ var renderLayers = (generator, layers = [], scale, styles) => {
377
384
  generator.pointRadius(value * scale);
378
385
  } else {
379
386
  context[key] = value;
380
- fill || (fill = key === "fillStyle");
381
- stroke || (stroke = key === "strokeStyle");
387
+ fill ||= key === "fillStyle";
388
+ stroke ||= key === "strokeStyle";
382
389
  }
383
390
  });
384
391
  }
@@ -428,6 +435,7 @@ var cancelDrag = (node) => node.on(".drag", null);
428
435
 
429
436
  // src/hooks/useGlobeZoomHandler.ts
430
437
  import { useCallback } from "react";
438
+ var ZOOM_FACTOR = 0.1;
431
439
  var useGlobeZoomHandler = (controller) => {
432
440
  return useCallback((event) => {
433
441
  if (!controller) {
@@ -435,11 +443,15 @@ var useGlobeZoomHandler = (controller) => {
435
443
  }
436
444
  switch (event) {
437
445
  case "zoom-in": {
438
- controller.setZoom((zoom) => zoom * 1.1);
446
+ controller.setZoom((zoom) => {
447
+ return zoom * (1 + ZOOM_FACTOR);
448
+ });
439
449
  break;
440
450
  }
441
451
  case "zoom-out": {
442
- controller.setZoom((zoom) => zoom * 0.9);
452
+ controller.setZoom((zoom) => {
453
+ return zoom * (1 - ZOOM_FACTOR);
454
+ });
443
455
  break;
444
456
  }
445
457
  }
@@ -757,18 +769,18 @@ var GlobeRoot = ({ classNames, children, ...props }) => {
757
769
  _effect.f();
758
770
  }
759
771
  };
760
- var GlobeCanvas = /* @__PURE__ */ forwardRef(({ projection: _projection, topology, features, styles: _styles }, forwardRef3) => {
772
+ var GlobeCanvas = /* @__PURE__ */ forwardRef(({ projection: projectionParam, topology, features, styles: stylesParam }, forwardRef3) => {
761
773
  var _effect = _useSignals3();
762
774
  try {
763
775
  const { themeMode } = useThemeContext();
764
- const styles = useMemo2(() => _styles ?? defaultStyles[themeMode], [
765
- _styles,
776
+ const styles = useMemo2(() => stylesParam ?? defaultStyles[themeMode], [
777
+ stylesParam,
766
778
  themeMode
767
779
  ]);
768
780
  const [canvas, setCanvas] = useState3(null);
769
781
  const canvasRef = (canvas2) => setCanvas(canvas2);
770
- const projection = useMemo2(() => getProjection(_projection), [
771
- _projection
782
+ const projection = useMemo2(() => getProjection(projectionParam), [
783
+ projectionParam
772
784
  ]);
773
785
  const layers = useMemo2(() => {
774
786
  return timer(() => createLayers(topology, features, styles));
@@ -935,11 +947,10 @@ import { createContext as createContext2 } from "@radix-ui/react-context";
935
947
  import L, { Control, DomEvent, DomUtil, latLngBounds } from "leaflet";
936
948
  import React4, { forwardRef as forwardRef2, useEffect as useEffect5, useImperativeHandle as useImperativeHandle2, useRef as useRef2, useState as useState4 } from "react";
937
949
  import { createRoot } from "react-dom/client";
938
- import { MapContainer, Marker, Popup, TileLayer, useMap } from "react-leaflet";
939
- import { debounce } from "@dxos/async";
950
+ import { MapContainer, Marker, Popup, TileLayer, useMap, useMapEvents } from "react-leaflet";
940
951
  import { ThemeProvider, Tooltip } from "@dxos/react-ui";
941
952
  import { defaultTx, mx as mx2 } from "@dxos/react-ui-theme";
942
- var defaults = {
953
+ var defaults2 = {
943
954
  center: {
944
955
  lat: 51,
945
956
  lng: 0
@@ -947,7 +958,7 @@ var defaults = {
947
958
  zoom: 4
948
959
  };
949
960
  var [MapContextProvier, useMapContext] = createContext2("Map");
950
- var MapRoot = /* @__PURE__ */ forwardRef2(({ classNames, scrollWheelZoom = true, doubleClickZoom = true, touchZoom = true, center = defaults.center, zoom = defaults.zoom, onChange, ...props }, forwardedRef) => {
961
+ var MapRoot = /* @__PURE__ */ forwardRef2(({ classNames, scrollWheelZoom = true, doubleClickZoom = true, touchZoom = true, center, zoom, onChange, ...props }, forwardedRef) => {
951
962
  var _effect = _useSignals4();
952
963
  try {
953
964
  const [attention, setAttention] = useState4(false);
@@ -961,31 +972,6 @@ var MapRoot = /* @__PURE__ */ forwardRef2(({ classNames, scrollWheelZoom = true,
961
972
  mapRef.current?.setZoom(cb(mapRef.current?.getZoom() ?? 0));
962
973
  }
963
974
  }), []);
964
- useEffect5(() => {
965
- if (!map) {
966
- return;
967
- }
968
- const handler = debounce(() => {
969
- setAttention(true);
970
- onChange?.({
971
- center: map.getCenter(),
972
- zoom: map.getZoom()
973
- });
974
- }, 100);
975
- map.on("move", handler);
976
- map.on("zoom", handler);
977
- map.on("focus", () => setAttention(true));
978
- map.on("blur", () => setAttention(false));
979
- return () => {
980
- map.off("move");
981
- map.off("zoom");
982
- map.off("focus");
983
- map.off("blur");
984
- };
985
- }, [
986
- map,
987
- onChange
988
- ]);
989
975
  useEffect5(() => {
990
976
  if (!map) {
991
977
  return;
@@ -1000,7 +986,8 @@ var MapRoot = /* @__PURE__ */ forwardRef2(({ classNames, scrollWheelZoom = true,
1000
986
  attention
1001
987
  ]);
1002
988
  return /* @__PURE__ */ React4.createElement(MapContextProvier, {
1003
- attention
989
+ attention,
990
+ onChange
1004
991
  }, /* @__PURE__ */ React4.createElement(MapContainer, {
1005
992
  ...props,
1006
993
  ref: mapRef,
@@ -1010,8 +997,8 @@ var MapRoot = /* @__PURE__ */ forwardRef2(({ classNames, scrollWheelZoom = true,
1010
997
  scrollWheelZoom,
1011
998
  doubleClickZoom,
1012
999
  touchZoom,
1013
- center,
1014
- zoom
1000
+ center: center ?? defaults2.center,
1001
+ zoom: zoom ?? defaults2.zoom
1015
1002
  }));
1016
1003
  } finally {
1017
1004
  _effect.f();
@@ -1022,6 +1009,15 @@ var MapTiles = (_props) => {
1022
1009
  var _effect = _useSignals4();
1023
1010
  try {
1024
1011
  const ref = useRef2(null);
1012
+ const { onChange } = useMapContext(MapTiles.displayName);
1013
+ useMapEvents({
1014
+ zoomstart: (ev) => {
1015
+ onChange?.({
1016
+ center: ev.target.getCenter(),
1017
+ zoom: ev.target.getZoom()
1018
+ });
1019
+ }
1020
+ });
1025
1021
  const { attention } = useMapContext(MapTiles.displayName);
1026
1022
  useEffect5(() => {
1027
1023
  if (ref.current) {
@@ -1052,7 +1048,7 @@ var MapMarkers = ({ selected, markers }) => {
1052
1048
  const bounds = latLngBounds(markers.map((marker) => marker.location));
1053
1049
  map.fitBounds(bounds);
1054
1050
  } else {
1055
- map.setView(defaults.center, defaults.zoom);
1051
+ map.setView(defaults2.center, defaults2.zoom);
1056
1052
  }
1057
1053
  }, [
1058
1054
  markers