react-three-map 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 (83) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +14 -13
  3. package/dist/cjs/main.js.js +1 -1318
  4. package/dist/es/main.js2.mjs +24 -20
  5. package/dist/es/main.js2.mjs.map +1 -1
  6. package/dist/es/main.js3.mjs.map +1 -1
  7. package/dist/es/main.js4.mjs +12 -24
  8. package/dist/es/main.js4.mjs.map +1 -1
  9. package/dist/es/main.js5.mjs +55 -23532
  10. package/dist/es/main.js5.mjs.map +1 -1
  11. package/dist/es/main.js6.mjs +13 -2
  12. package/dist/es/main.js6.mjs.map +1 -1
  13. package/dist/es/main.js7.mjs +53 -2
  14. package/dist/es/main.js7.mjs.map +1 -1
  15. package/dist/es/main.js8.mjs +6 -57
  16. package/dist/es/main.js8.mjs.map +1 -1
  17. package/dist/maplibre/cjs/main.js.js +1 -1
  18. package/dist/maplibre/es/main.js2.mjs +24 -20
  19. package/dist/maplibre/es/main.js2.mjs.map +1 -1
  20. package/dist/maplibre/es/main.js3.mjs.map +1 -1
  21. package/dist/maplibre/es/main.js4.mjs +12 -24
  22. package/dist/maplibre/es/main.js4.mjs.map +1 -1
  23. package/dist/maplibre/es/main.js5.mjs.map +1 -1
  24. package/dist/maplibre/es/main.js6.mjs.map +1 -1
  25. package/dist/maplibre/es/main.js7.mjs.map +1 -1
  26. package/dist/maplibre/es/main.js8.mjs.map +1 -1
  27. package/example-mapbox/package.json +29 -0
  28. package/example-mapbox/sandbox.config.json +3 -0
  29. package/example-mapbox/src/canvas.basic.stories.tsx +69 -0
  30. package/example-mapbox/src/comparison.stories.tsx +24 -0
  31. package/example-mapbox/src/html-on-top.stories.tsx +24 -0
  32. package/example-mapbox/src/my-scene.tsx +96 -0
  33. package/example-mapbox/src/render-on-demand.stories.tsx +32 -0
  34. package/example-mapbox/src/story-map.tsx +46 -0
  35. package/example-mapbox/src/vite-env.d.ts +1 -0
  36. package/example-mapbox/tsconfig.json +27 -0
  37. package/example-mapbox/tsconfig.node.json +10 -0
  38. package/example-mapbox/yarn.lock +4154 -0
  39. package/example-maplibre/package.json +29 -0
  40. package/example-maplibre/sandbox.config.json +3 -0
  41. package/example-maplibre/src/canvas.basic.stories.tsx +61 -0
  42. package/example-maplibre/src/comparison.stories.tsx +22 -0
  43. package/example-maplibre/src/html-on-top.stories.tsx +24 -0
  44. package/example-maplibre/src/my-scene.tsx +97 -0
  45. package/example-maplibre/src/render-on-demand.stories.tsx +32 -0
  46. package/example-maplibre/src/story-map.tsx +38 -0
  47. package/example-maplibre/src/vite-env.d.ts +1 -0
  48. package/example-maplibre/tsconfig.json +25 -0
  49. package/example-maplibre/tsconfig.node.json +10 -0
  50. package/example-maplibre/yarn.lock +4181 -0
  51. package/maplibre/package.json +3 -3
  52. package/package.json +9 -6
  53. package/src/{canvas/core → core}/generic-map.ts +15 -2
  54. package/src/{canvas/core → core}/state-ref.ts +2 -2
  55. package/src/{canvas/core/internal-canvas.tsx → core/use-canvas.tsx} +6 -18
  56. package/src/{canvas/core → core}/use-on-add.ts +3 -3
  57. package/src/{canvas/canvas-mapbox.tsx → mapbox/canvas.tsx} +15 -9
  58. package/src/mapbox/index.ts +1 -0
  59. package/src/{canvas/canvas-maplibre.tsx → maplibre/canvas.tsx} +13 -7
  60. package/src/maplibre/index.ts +1 -0
  61. package/src/stories/comparison.stories.tsx +13 -30
  62. package/src/stories/html-on-top.stories.tsx +11 -16
  63. package/src/stories/mapbox/story-mapbox.tsx +43 -0
  64. package/src/stories/mapbox-example.stories.tsx +69 -0
  65. package/src/stories/maplibre/story-maplibre.tsx +32 -0
  66. package/src/stories/{canvas.basic.stories.tsx → maplibre-example.stories.tsx} +28 -30
  67. package/src/stories/my-scene.tsx +0 -1
  68. package/src/stories/render-on-demand.stories.tsx +18 -37
  69. package/src/stories/story-map.tsx +26 -24
  70. package/tsconfig.json +5 -0
  71. package/dist/es/main.js10.mjs +0 -56
  72. package/dist/es/main.js10.mjs.map +0 -1
  73. package/dist/es/main.js11.mjs +0 -9
  74. package/dist/es/main.js11.mjs.map +0 -1
  75. package/dist/es/main.js9.mjs +0 -16
  76. package/dist/es/main.js9.mjs.map +0 -1
  77. package/src/main-mapbox.ts +0 -1
  78. package/src/main-maplibre.ts +0 -1
  79. /package/src/{canvas/core → core}/coords-to-matrix.ts +0 -0
  80. /package/src/{canvas/core → core}/create-events.ts +0 -0
  81. /package/src/{canvas/core → core}/generic-map.test.ts +0 -0
  82. /package/src/{canvas/core → core}/use-function.ts +0 -0
  83. /package/src/{canvas/core → core}/use-render.ts +0 -0
@@ -1,34 +1,38 @@
1
- import { jsx as n } from "react/jsx-runtime";
2
- import { extend as p } from "@react-three/fiber";
3
- import { memo as f, useMemo as e } from "react";
4
- import * as i from "three";
5
- import { coordsToMatrix as x } from "./main.js3.mjs";
6
- import { InternalCanvas as c } from "./main.js4.mjs";
7
- import { m as L } from "./main.js5.mjs";
8
- p(i);
9
- const g = f(({
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { extend as d } from "@react-three/fiber";
3
+ import { MercatorCoordinate as c } from "mapbox-gl";
4
+ import { memo as L, useMemo as x } from "react";
5
+ import { Layer as M } from "react-map-gl";
6
+ import * as v from "three";
7
+ import { coordsToMatrix as y } from "./main.js3.mjs";
8
+ import { useCanvas as C } from "./main.js4.mjs";
9
+ d(v);
10
+ const A = L(({
10
11
  longitude: o,
11
12
  latitude: r,
12
13
  altitude: m = 0,
13
- frameloop: t = "always",
14
- ...a
14
+ frameloop: e = "always",
15
+ ...t
15
16
  }) => {
16
- const s = e(() => x({
17
+ const n = x(() => y({
17
18
  latitude: r,
18
19
  longitude: o,
19
20
  altitude: m,
20
- fromLngLat: L.MercatorCoordinate.fromLngLat
21
- }), [r, o, m]);
22
- return /* @__PURE__ */ n(
23
- c,
21
+ fromLngLat: c.fromLngLat
22
+ }), [r, o, m]), { id: s, onAdd: a, onRemove: f, render: p } = C({ m4: n, frameloop: e, ...t });
23
+ return /* @__PURE__ */ i(
24
+ M,
24
25
  {
25
- frameloop: t,
26
- m4: s,
27
- ...a
26
+ id: s,
27
+ type: "custom",
28
+ renderingMode: "3d",
29
+ onAdd: a,
30
+ onRemove: f,
31
+ render: p
28
32
  }
29
33
  );
30
34
  });
31
35
  export {
32
- g as Canvas
36
+ A as Canvas
33
37
  };
34
38
  //# sourceMappingURL=main.js2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js2.mjs","sources":["../../src/canvas/canvas-mapbox.tsx"],"sourcesContent":["import { RenderProps, extend } from \"@react-three/fiber\";\nimport { PropsWithChildren, memo, useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport { coordsToMatrix } from \"./core/coords-to-matrix\";\nimport { InternalCanvas } from \"./core/internal-canvas\";\nimport { MercatorCoordinate } from \"mapbox-gl\";\n\nextend(THREE);\n\nexport interface CanvasProps extends Omit<RenderProps<HTMLCanvasElement>, 'frameloop'>, PropsWithChildren {\n longitude: number,\n latitude: number,\n altitude?: number,\n frameloop?: 'always' | 'demand',\n}\n\n/** react`-three-fiber` canvas inside `Mapbox` */\nexport const Canvas = memo<CanvasProps>(({\n longitude, latitude, altitude = 0,\n frameloop = 'always', ...renderProps\n}) => {\n\n const m4 = useMemo(() => coordsToMatrix({\n latitude, longitude, altitude, fromLngLat: MercatorCoordinate.fromLngLat,\n }), [latitude, longitude, altitude])\n\n return <InternalCanvas\n frameloop={frameloop}\n m4={m4}\n {...renderProps}\n />\n})"],"names":["extend","THREE","Canvas","memo","longitude","latitude","altitude","frameloop","renderProps","m4","useMemo","coordsToMatrix","MercatorCoordinate","jsx","InternalCanvas"],"mappings":";;;;;;;AAOAA,EAAOC,CAAK;AAUC,MAAAC,IAASC,EAAkB,CAAC;AAAA,EACvC,WAAAC;AAAA,EAAW,UAAAC;AAAA,EAAU,UAAAC,IAAW;AAAA,EAChC,WAAAC,IAAY;AAAA,EAAU,GAAGC;AAC3B,MAAM;AAEE,QAAAC,IAAKC,EAAQ,MAAMC,EAAe;AAAA,IACtC,UAAAN;AAAA,IAAU,WAAAD;AAAA,IAAW,UAAAE;AAAA,IAAU,YAAYM,EAAmB,mBAAA;AAAA,EAC/D,CAAA,GAAG,CAACP,GAAUD,GAAWE,CAAQ,CAAC;AAE5B,SAAA,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACN,WAAAP;AAAA,MACA,IAAAE;AAAA,MACC,GAAGD;AAAA,IAAA;AAAA,EAAA;AAER,CAAC;"}
1
+ {"version":3,"file":"main.js2.mjs","sources":["../../src/mapbox/canvas.tsx"],"sourcesContent":["import { RenderProps, extend } from \"@react-three/fiber\";\nimport { MercatorCoordinate } from \"mapbox-gl\";\nimport { PropsWithChildren, memo, useMemo } from \"react\";\nimport { Layer } from \"react-map-gl\";\nimport * as THREE from \"three\";\nimport { coordsToMatrix } from \"../core/coords-to-matrix\";\nimport { useCanvas } from \"../core/use-canvas\";\n\nextend(THREE);\n\nexport interface CanvasProps extends Omit<RenderProps<HTMLCanvasElement>, 'frameloop'>, PropsWithChildren {\n longitude: number,\n latitude: number,\n altitude?: number,\n frameloop?: 'always' | 'demand',\n}\n\n/** react`-three-fiber` canvas inside `MapLibre` */\nexport const Canvas = memo<CanvasProps>(({\n longitude, latitude, altitude = 0,\n frameloop = 'always', ...renderProps\n}) => {\n\n const m4 = useMemo(() => coordsToMatrix({\n latitude, longitude, altitude, fromLngLat: MercatorCoordinate.fromLngLat,\n }), [latitude, longitude, altitude]);\n\n const { id, onAdd, onRemove, render } = useCanvas({ m4, frameloop, ...renderProps });\n\n return <Layer\n id={id}\n type=\"custom\"\n renderingMode=\"3d\"\n onAdd={onAdd}\n onRemove={onRemove}\n render={render}\n />\n})"],"names":["extend","THREE","Canvas","memo","longitude","latitude","altitude","frameloop","renderProps","m4","useMemo","coordsToMatrix","MercatorCoordinate","id","onAdd","onRemove","render","useCanvas","jsx","Layer"],"mappings":";;;;;;;;AAQAA,EAAOC,CAAK;AAUC,MAAAC,IAASC,EAAkB,CAAC;AAAA,EACvC,WAAAC;AAAA,EAAW,UAAAC;AAAA,EAAU,UAAAC,IAAW;AAAA,EAChC,WAAAC,IAAY;AAAA,EAAU,GAAGC;AAC3B,MAAM;AAEE,QAAAC,IAAKC,EAAQ,MAAMC,EAAe;AAAA,IACtC,UAAAN;AAAA,IAAU,WAAAD;AAAA,IAAW,UAAAE;AAAA,IAAU,YAAYM,EAAmB;AAAA,EAC/D,CAAA,GAAG,CAACP,GAAUD,GAAWE,CAAQ,CAAC,GAE7B,EAAE,IAAAO,GAAI,OAAAC,GAAO,UAAAC,GAAU,QAAAC,EAAO,IAAIC,EAAU,EAAE,IAAAR,GAAI,WAAAF,GAAW,GAAGC,EAAa,CAAA;AAE5E,SAAA,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACN,IAAAN;AAAA,MACA,MAAK;AAAA,MACL,eAAc;AAAA,MACd,OAAAC;AAAA,MACA,UAAAC;AAAA,MACA,QAAAC;AAAA,IAAA;AAAA,EAAA;AAEJ,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.js3.mjs","sources":["../../src/canvas/core/coords-to-matrix.ts"],"sourcesContent":["import { Euler, Matrix4, Quaternion, Vector3 } from \"three\";\nimport { FromLngLat } from \"./generic-map\";\n\nconst quat = new Quaternion();\nconst euler = new Euler();\nconst pos = new Vector3();\nconst scale = new Vector3();\nconst m4 = new Matrix4();\n\n/** calculate Matrix4 from coordinates */\nexport function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }: {\n longitude: number, latitude: number, altitude: number, fromLngLat: FromLngLat\n}) {\n const center = fromLngLat([longitude, latitude], altitude);\n const scaleUnit = center.meterInMercatorCoordinateUnits();\n pos.set(center.x, center.y, center.z || 0);\n scale.set(scaleUnit, -scaleUnit, scaleUnit);\n quat.setFromEuler(euler.set(-Math.PI * .5, 0, 0));\n return m4.compose(pos, quat, scale).toArray();\n}\n"],"names":["quat","Quaternion","euler","Euler","pos","Vector3","scale","m4","Matrix4","coordsToMatrix","longitude","latitude","altitude","fromLngLat","center","scaleUnit"],"mappings":";AAGA,MAAMA,IAAO,IAAIC,KACXC,IAAQ,IAAIC,KACZC,IAAM,IAAIC,KACVC,IAAQ,IAAID,KACZE,IAAK,IAAIC;AAGR,SAASC,EAAe,EAAE,WAAAC,GAAW,UAAAC,GAAU,UAAAC,GAAU,YAAAC,KAE7D;AACD,QAAMC,IAASD,EAAW,CAACH,GAAWC,CAAQ,GAAGC,CAAQ,GACnDG,IAAYD,EAAO;AACzB,SAAAV,EAAI,IAAIU,EAAO,GAAGA,EAAO,GAAGA,EAAO,KAAK,CAAC,GACzCR,EAAM,IAAIS,GAAW,CAACA,GAAWA,CAAS,GACrCf,EAAA,aAAaE,EAAM,IAAI,CAAC,KAAK,KAAK,KAAI,GAAG,CAAC,CAAC,GACzCK,EAAG,QAAQH,GAAKJ,GAAMM,CAAK,EAAE;AACtC;"}
1
+ {"version":3,"file":"main.js3.mjs","sources":["../../src/core/coords-to-matrix.ts"],"sourcesContent":["import { Euler, Matrix4, Quaternion, Vector3 } from \"three\";\nimport { FromLngLat } from \"./generic-map\";\n\nconst quat = new Quaternion();\nconst euler = new Euler();\nconst pos = new Vector3();\nconst scale = new Vector3();\nconst m4 = new Matrix4();\n\n/** calculate Matrix4 from coordinates */\nexport function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }: {\n longitude: number, latitude: number, altitude: number, fromLngLat: FromLngLat\n}) {\n const center = fromLngLat([longitude, latitude], altitude);\n const scaleUnit = center.meterInMercatorCoordinateUnits();\n pos.set(center.x, center.y, center.z || 0);\n scale.set(scaleUnit, -scaleUnit, scaleUnit);\n quat.setFromEuler(euler.set(-Math.PI * .5, 0, 0));\n return m4.compose(pos, quat, scale).toArray();\n}\n"],"names":["quat","Quaternion","euler","Euler","pos","Vector3","scale","m4","Matrix4","coordsToMatrix","longitude","latitude","altitude","fromLngLat","center","scaleUnit"],"mappings":";AAGA,MAAMA,IAAO,IAAIC,KACXC,IAAQ,IAAIC,KACZC,IAAM,IAAIC,KACVC,IAAQ,IAAID,KACZE,IAAK,IAAIC;AAGR,SAASC,EAAe,EAAE,WAAAC,GAAW,UAAAC,GAAU,UAAAC,GAAU,YAAAC,KAE7D;AACD,QAAMC,IAASD,EAAW,CAACH,GAAWC,CAAQ,GAAGC,CAAQ,GACnDG,IAAYD,EAAO;AACzB,SAAAV,EAAI,IAAIU,EAAO,GAAGA,EAAO,GAAGA,EAAO,KAAK,CAAC,GACzCR,EAAM,IAAIS,GAAW,CAACA,GAAWA,CAAS,GACrCf,EAAA,aAAaE,EAAM,IAAI,CAAC,KAAK,KAAK,KAAI,GAAG,CAAC,CAAC,GACzCK,EAAG,QAAQH,GAAKJ,GAAMM,CAAK,EAAE;AACtC;"}
@@ -1,31 +1,19 @@
1
- import { jsx as o, Fragment as i } from "react/jsx-runtime";
2
- import { memo as c, useId as p, useRef as R, useEffect as v } from "react";
3
- import { Layer as y } from "react-map-gl";
4
- import { useOnAdd as I } from "./main.js8.mjs";
5
- import { useRender as g } from "./main.js9.mjs";
6
- const x = c(({
7
- m4: m,
1
+ import { jsx as c, Fragment as i } from "react/jsx-runtime";
2
+ import { useId as p, useRef as R, useEffect as a } from "react";
3
+ import { useOnAdd as v } from "./main.js5.mjs";
4
+ import { useRender as x } from "./main.js6.mjs";
5
+ const E = ({
6
+ m4: o,
8
7
  children: r,
9
8
  frameloop: t,
10
9
  ...s
11
10
  }) => {
12
- const d = p(), e = R(), { onAdd: u, onRemove: a, mounted: n } = I(e, { frameloop: t, ...s }), f = g(m, e, t);
13
- return v(() => {
14
- n && e.current && e.current.root.render(/* @__PURE__ */ o(i, { children: r }));
15
- }, [e, n, r]), /* @__PURE__ */ o(
16
- y,
17
- {
18
- id: d,
19
- type: "custom",
20
- renderingMode: "3d",
21
- onAdd: u,
22
- onRemove: a,
23
- render: f
24
- }
25
- );
26
- });
27
- x.displayName = "InternalCanvas";
11
+ const u = p(), e = R(), { onAdd: m, onRemove: d, mounted: n } = v(e, { frameloop: t, ...s }), f = x(o, e, t);
12
+ return a(() => {
13
+ n && e.current && e.current.root.render(/* @__PURE__ */ c(i, { children: r }));
14
+ }, [e, n, r]), { id: u, onAdd: m, onRemove: d, render: f };
15
+ };
28
16
  export {
29
- x as InternalCanvas
17
+ E as useCanvas
30
18
  };
31
19
  //# sourceMappingURL=main.js4.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js4.mjs","sources":["../../src/canvas/core/internal-canvas.tsx"],"sourcesContent":["import { RenderProps } from \"@react-three/fiber\";\nimport { PropsWithChildren, memo, useEffect, useId, useRef } from \"react\";\nimport { Layer } from \"react-map-gl\";\nimport { Matrix4Tuple } from \"three\";\nimport { StateRef } from \"./state-ref\";\nimport { useOnAdd } from \"./use-on-add\";\nimport { useRender } from \"./use-render\";\n\nexport interface InternalCanvasProps extends Omit<RenderProps<HTMLCanvasElement>, 'frameloop'>, PropsWithChildren {\n frameloop: 'always' | 'demand',\n m4: Matrix4Tuple;\n}\n\nexport const InternalCanvas = memo<InternalCanvasProps>(({\n m4, children, frameloop, ...renderProps\n}) => {\n const id = useId();\n\n const stateRef: StateRef = useRef();\n\n const { onAdd, onRemove, mounted } = useOnAdd(stateRef, { frameloop, ...renderProps });\n\n const render = useRender(m4, stateRef, frameloop);\n\n useEffect(() => {\n if (!mounted) return;\n if (!stateRef.current) return;\n stateRef.current.root.render(<>{children}</>);\n }, [stateRef, mounted, children])\n\n return <Layer\n id={id}\n type=\"custom\"\n renderingMode=\"3d\"\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onAdd={onAdd as any}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onRemove={onRemove as any}\n render={render}\n />\n})\n\nInternalCanvas.displayName = 'InternalCanvas';"],"names":["InternalCanvas","memo","m4","children","frameloop","renderProps","id","useId","stateRef","useRef","onAdd","onRemove","mounted","useOnAdd","render","useRender","useEffect","jsx","Fragment","Layer"],"mappings":";;;;;AAaa,MAAAA,IAAiBC,EAA0B,CAAC;AAAA,EACvD,IAAAC;AAAA,EAAI,UAAAC;AAAA,EAAU,WAAAC;AAAA,EAAW,GAAGC;AAC9B,MAAM;AACJ,QAAMC,IAAKC,KAELC,IAAqBC,KAErB,EAAE,OAAAC,GAAO,UAAAC,GAAU,SAAAC,MAAYC,EAASL,GAAU,EAAE,WAAAJ,GAAW,GAAGC,EAAA,CAAa,GAE/ES,IAASC,EAAUb,GAAIM,GAAUJ,CAAS;AAEhD,SAAAY,EAAU,MAAM;AACd,IAAKJ,KACAJ,EAAS,WACdA,EAAS,QAAQ,KAAK,OAAO,gBAAAS,EAAAC,GAAA,EAAG,UAAAf,EAAS,CAAA,CAAG;AAAA,EAC3C,GAAA,CAACK,GAAUI,GAAST,CAAQ,CAAC,GAEzB,gBAAAc;AAAA,IAACE;AAAA,IAAA;AAAA,MACN,IAAAb;AAAA,MACA,MAAK;AAAA,MACL,eAAc;AAAA,MAEd,OAAAI;AAAA,MAEA,UAAAC;AAAA,MACA,QAAAG;AAAA,IAAA;AAAA,EAAA;AAEJ,CAAC;AAEDd,EAAe,cAAc;"}
1
+ {"version":3,"file":"main.js4.mjs","sources":["../../src/core/use-canvas.tsx"],"sourcesContent":["import { RenderProps } from \"@react-three/fiber\";\nimport { PropsWithChildren, useEffect, useId, useRef } from \"react\";\nimport { Matrix4Tuple } from \"three\";\nimport { StateRef } from \"./state-ref\";\nimport { useOnAdd } from \"./use-on-add\";\nimport { useRender } from \"./use-render\";\n\nexport interface useCanvasProps extends Omit<RenderProps<HTMLCanvasElement>, 'frameloop'>, PropsWithChildren {\n frameloop: 'always' | 'demand',\n m4: Matrix4Tuple;\n}\n\nexport const useCanvas = (({\n m4, children, frameloop, ...renderProps\n}: useCanvasProps) => {\n const id = useId();\n\n const stateRef: StateRef = useRef();\n\n const { onAdd, onRemove, mounted } = useOnAdd(stateRef, { frameloop, ...renderProps });\n\n const render = useRender(m4, stateRef, frameloop);\n\n useEffect(() => {\n if (!mounted) return;\n if (!stateRef.current) return;\n stateRef.current.root.render(<>{children}</>);\n }, [stateRef, mounted, children])\n\n return { id, onAdd, onRemove, render }\n})"],"names":["useCanvas","m4","children","frameloop","renderProps","id","useId","stateRef","useRef","onAdd","onRemove","mounted","useOnAdd","render","useRender","useEffect","jsx","Fragment"],"mappings":";;;;AAYO,MAAMA,IAAa,CAAC;AAAA,EACzB,IAAAC;AAAA,EAAI,UAAAC;AAAA,EAAU,WAAAC;AAAA,EAAW,GAAGC;AAC9B,MAAsB;AACpB,QAAMC,IAAKC,KAELC,IAAqBC,KAErB,EAAE,OAAAC,GAAO,UAAAC,GAAU,SAAAC,MAAYC,EAASL,GAAU,EAAE,WAAAJ,GAAW,GAAGC,EAAA,CAAa,GAE/ES,IAASC,EAAUb,GAAIM,GAAUJ,CAAS;AAEhD,SAAAY,EAAU,MAAM;AACd,IAAKJ,KACAJ,EAAS,WACdA,EAAS,QAAQ,KAAK,OAAO,gBAAAS,EAAAC,GAAA,EAAG,UAAAf,EAAS,CAAA,CAAG;AAAA,EAC3C,GAAA,CAACK,GAAUI,GAAST,CAAQ,CAAC,GAEzB,EAAE,IAAAG,GAAI,OAAAI,GAAO,UAAAC,GAAU,QAAAG,EAAO;AACvC;"}