@xrift/world-components 0.27.0 → 0.28.1

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 (61) hide show
  1. package/dist/components/Portal/components/PortalGlow/index.d.ts.map +1 -1
  2. package/dist/components/Portal/components/PortalGlow/index.js +5 -4
  3. package/dist/components/Portal/components/PortalGlow/index.js.map +1 -1
  4. package/dist/components/Portal/components/PortalParticles/index.d.ts.map +1 -1
  5. package/dist/components/Portal/components/PortalParticles/index.js +5 -4
  6. package/dist/components/Portal/components/PortalParticles/index.js.map +1 -1
  7. package/dist/components/Portal/components/PortalPedestal/index.d.ts.map +1 -1
  8. package/dist/components/Portal/components/PortalPedestal/index.js +4 -3
  9. package/dist/components/Portal/components/PortalPedestal/index.js.map +1 -1
  10. package/dist/components/Portal/components/PortalThumbnail/index.d.ts.map +1 -1
  11. package/dist/components/Portal/components/PortalThumbnail/index.js +25 -7
  12. package/dist/components/Portal/components/PortalThumbnail/index.js.map +1 -1
  13. package/dist/components/Portal/components/PortalVortex/index.d.ts.map +1 -1
  14. package/dist/components/Portal/components/PortalVortex/index.js +5 -4
  15. package/dist/components/Portal/components/PortalVortex/index.js.map +1 -1
  16. package/dist/components/Portal/hooks.d.ts +1 -2
  17. package/dist/components/Portal/hooks.d.ts.map +1 -1
  18. package/dist/components/Portal/hooks.js +2 -3
  19. package/dist/components/Portal/hooks.js.map +1 -1
  20. package/dist/components/Portal/index.d.ts.map +1 -1
  21. package/dist/components/Portal/index.js +11 -3
  22. package/dist/components/Portal/index.js.map +1 -1
  23. package/dist/components/Portal/types.d.ts +1 -2
  24. package/dist/components/Portal/types.d.ts.map +1 -1
  25. package/dist/contexts/InstanceContext.d.ts +48 -0
  26. package/dist/contexts/InstanceContext.d.ts.map +1 -0
  27. package/dist/contexts/InstanceContext.js +55 -0
  28. package/dist/contexts/InstanceContext.js.map +1 -0
  29. package/dist/contexts/InstanceInfoContext.d.ts +39 -0
  30. package/dist/contexts/InstanceInfoContext.d.ts.map +1 -0
  31. package/dist/contexts/InstanceInfoContext.js +42 -0
  32. package/dist/contexts/InstanceInfoContext.js.map +1 -0
  33. package/dist/contexts/PortalContext.d.ts +39 -0
  34. package/dist/contexts/PortalContext.d.ts.map +1 -0
  35. package/dist/contexts/PortalContext.js +42 -0
  36. package/dist/contexts/PortalContext.js.map +1 -0
  37. package/dist/contexts/WorldContext.d.ts +46 -0
  38. package/dist/contexts/WorldContext.d.ts.map +1 -0
  39. package/dist/contexts/WorldContext.js +45 -0
  40. package/dist/contexts/WorldContext.js.map +1 -0
  41. package/dist/contexts/XRiftContext.d.ts +13 -1
  42. package/dist/contexts/XRiftContext.d.ts.map +1 -1
  43. package/dist/contexts/XRiftContext.js +8 -2
  44. package/dist/contexts/XRiftContext.js.map +1 -1
  45. package/dist/hooks/useInstance.d.ts +18 -0
  46. package/dist/hooks/useInstance.d.ts.map +1 -0
  47. package/dist/hooks/useInstance.js +54 -0
  48. package/dist/hooks/useInstance.js.map +1 -0
  49. package/dist/hooks/usePortalNavigation.d.ts +10 -0
  50. package/dist/hooks/usePortalNavigation.d.ts.map +1 -0
  51. package/dist/hooks/usePortalNavigation.js +46 -0
  52. package/dist/hooks/usePortalNavigation.js.map +1 -0
  53. package/dist/hooks/useWorld.d.ts +14 -0
  54. package/dist/hooks/useWorld.d.ts.map +1 -0
  55. package/dist/hooks/useWorld.js +31 -0
  56. package/dist/hooks/useWorld.js.map +1 -0
  57. package/dist/index.d.ts +5 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +5 -0
  60. package/dist/index.js.map +1 -1
  61. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalGlow/index.tsx"],"names":[],"mappings":"AAIA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AA2CD,eAAO,MAAM,UAAU,GAAI,sBAAsB,KAAK,4CAqCrD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalGlow/index.tsx"],"names":[],"mappings":"AAIA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AA2CD,eAAO,MAAM,UAAU,GAAI,sBAAsB,KAAK,4CAsCrD,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useFrame } from '@react-three/fiber';
3
- import { useEffect, useRef } from 'react';
3
+ import { useEffect, useRef, useState } from 'react';
4
4
  import { AdditiveBlending, Color, DoubleSide } from 'three';
5
5
  const glowVertexShader = /* glsl */ `
6
6
  varying vec2 vUv;
@@ -35,12 +35,13 @@ void main() {
35
35
  gl_FragColor = vec4(finalColor, alpha);
36
36
  }
37
37
  `;
38
- const INITIAL_UNIFORMS = {
38
+ const createUniforms = () => ({
39
39
  uTime: { value: 0 },
40
40
  uColor: { value: [0.6, 0.33, 1.0] },
41
41
  uIntensity: { value: 1.5 },
42
- };
42
+ });
43
43
  export const PortalGlow = ({ color, intensity }) => {
44
+ const [uniforms] = useState(createUniforms);
44
45
  const materialRef = useRef(null);
45
46
  const geometryRef = useRef(null);
46
47
  useFrame((_, delta) => {
@@ -59,6 +60,6 @@ export const PortalGlow = ({ color, intensity }) => {
59
60
  geometry?.dispose();
60
61
  };
61
62
  }, []);
62
- return (_jsxs("mesh", { rotation: [-Math.PI / 2, 0, 0], position: [0, 0.16, 0], children: [_jsx("planeGeometry", { ref: geometryRef, args: [2, 2] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: glowVertexShader, fragmentShader: glowFragmentShader, uniforms: INITIAL_UNIFORMS, transparent: true, blending: AdditiveBlending, depthWrite: false, side: DoubleSide })] }));
63
+ return (_jsxs("mesh", { rotation: [-Math.PI / 2, 0, 0], position: [0, 0.16, 0], children: [_jsx("planeGeometry", { ref: geometryRef, args: [2, 2] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: glowVertexShader, fragmentShader: glowFragmentShader, uniforms: uniforms, transparent: true, blending: AdditiveBlending, depthWrite: false, side: DoubleSide })] }));
63
64
  };
64
65
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalGlow/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAA2C,MAAM,OAAO,CAAA;AAOpG,MAAM,gBAAgB,GAAG,UAAU,CAAC;;;;;;CAMnC,CAAA;AAED,MAAM,kBAAkB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBrC,CAAA;AAED,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;IACnB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAA6B,EAAE;IAC/D,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;CAC3B,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAS,EAAE,EAAE;IACxD,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAA;IAE/C,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAM;QAChC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAA;QAEjD,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1B,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3D,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,OAAO,EAAE,CAAA;YACnB,QAAQ,EAAE,OAAO,EAAE,CAAA;QACrB,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,gBAAM,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,aAC1D,wBAAe,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAI,EACjD,yBACE,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EAAE,kBAAkB,EAClC,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,QACX,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,UAAU,GAChB,IACG,CACR,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalGlow/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAA2C,MAAM,OAAO,CAAA;AAOpG,MAAM,gBAAgB,GAAG,UAAU,CAAC;;;;;;CAMnC,CAAA;AAED,MAAM,kBAAkB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBrC,CAAA;AAED,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC;IAC5B,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;IACnB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAA6B,EAAE;IAC/D,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;CAC3B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAS,EAAE,EAAE;IACxD,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IAC3C,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAA;IAE/C,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAM;QAChC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAA;QAEjD,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1B,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3D,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,OAAO,EAAE,CAAA;YACnB,QAAQ,EAAE,OAAO,EAAE,CAAA;QACrB,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,gBAAM,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,aAC1D,wBAAe,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAI,EACjD,yBACE,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EAAE,kBAAkB,EAClC,QAAQ,EAAE,QAAQ,EAClB,WAAW,QACX,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,UAAU,GAChB,IACG,CACR,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalParticles/index.tsx"],"names":[],"mappings":"AAIA,UAAU,KAAK;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB;AAuDD,eAAO,MAAM,eAAe,GAAI,uDAAuD,KAAK,4CAmG3F,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalParticles/index.tsx"],"names":[],"mappings":"AAIA,UAAU,KAAK;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB;AAuDD,eAAO,MAAM,eAAe,GAAI,uDAAuD,KAAK,4CAoG3F,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useFrame } from '@react-three/fiber';
3
- import { useEffect, useMemo, useRef } from 'react';
3
+ import { useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { AdditiveBlending, Color } from 'three';
5
5
  const particleVertexShader = /* glsl */ `
6
6
  attribute float aOpacity;
@@ -25,9 +25,9 @@ void main() {
25
25
  gl_FragColor = vec4(uColor, soft * vOpacity);
26
26
  }
27
27
  `;
28
- const INITIAL_UNIFORMS = {
28
+ const createUniforms = () => ({
29
29
  uColor: { value: [0.73, 0.53, 1.0] },
30
- };
30
+ });
31
31
  const initParticles = (count, radius) => {
32
32
  const positions = new Float32Array(count * 3);
33
33
  const opacities = new Float32Array(count);
@@ -47,6 +47,7 @@ const initParticles = (count, radius) => {
47
47
  const MAX_HEIGHT = 1.0;
48
48
  const FADE_START = 0.7;
49
49
  export const PortalParticles = ({ particleCount, color, portalRadius, rotationSpeed }) => {
50
+ const [uniforms] = useState(createUniforms);
50
51
  const pointsRef = useRef(null);
51
52
  const geometryRef = useRef(null);
52
53
  const materialRef = useRef(null);
@@ -105,6 +106,6 @@ export const PortalParticles = ({ particleCount, color, portalRadius, rotationSp
105
106
  material?.dispose();
106
107
  };
107
108
  }, []);
108
- return (_jsxs("points", { ref: pointsRef, children: [_jsxs("bufferGeometry", { ref: geometryRef, children: [_jsx("bufferAttribute", { attach: "attributes-position", args: [positions, 3], count: particleCount }), _jsx("bufferAttribute", { attach: "attributes-aOpacity", args: [opacities, 1], count: particleCount })] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: particleVertexShader, fragmentShader: particleFragmentShader, uniforms: INITIAL_UNIFORMS, transparent: true, blending: AdditiveBlending, depthWrite: false })] }));
109
+ return (_jsxs("points", { ref: pointsRef, children: [_jsxs("bufferGeometry", { ref: geometryRef, children: [_jsx("bufferAttribute", { attach: "attributes-position", args: [positions, 3], count: particleCount }), _jsx("bufferAttribute", { attach: "attributes-aOpacity", args: [opacities, 1], count: particleCount })] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: particleVertexShader, fragmentShader: particleFragmentShader, uniforms: uniforms, transparent: true, blending: AdditiveBlending, depthWrite: false })] }));
109
110
  };
110
111
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalParticles/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalParticles/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalPedestal/index.tsx"],"names":[],"mappings":"AAgDA,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,eAAO,MAAM,cAAc,GAAI,aAAa,KAAK,4CAkChD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalPedestal/index.tsx"],"names":[],"mappings":"AAgDA,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,eAAO,MAAM,cAAc,GAAI,aAAa,KAAK,4CAmChD,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { CuboidCollider, RigidBody } from '@react-three/rapier';
3
- import { useEffect, useRef } from 'react';
3
+ import { useEffect, useRef, useState } from 'react';
4
4
  import { DoubleSide } from 'three';
5
5
  import { simplexNoise3D } from '../../shaders/noise';
6
6
  const PEDESTAL_HEIGHT = 0.15;
@@ -38,10 +38,11 @@ void main() {
38
38
  gl_FragColor = vec4(stoneColor * light, 1.0);
39
39
  }
40
40
  `;
41
- const INITIAL_UNIFORMS = {};
41
+ const createUniforms = () => ({});
42
42
  const SENSOR_HALF_WIDTH = TOP_RADIUS * 0.6;
43
43
  const SENSOR_HALF_HEIGHT = 0.8;
44
44
  export const PortalPedestal = ({ onEnter }) => {
45
+ const [uniforms] = useState(createUniforms);
45
46
  const materialRef = useRef(null);
46
47
  const geometryRef = useRef(null);
47
48
  useEffect(() => {
@@ -52,6 +53,6 @@ export const PortalPedestal = ({ onEnter }) => {
52
53
  geometry?.dispose();
53
54
  };
54
55
  }, []);
55
- return (_jsxs(RigidBody, { type: "fixed", colliders: "trimesh", children: [_jsxs("mesh", { position: [0, PEDESTAL_HEIGHT / 2, 0], rotation: [0, Math.PI / 4, 0], children: [_jsx("cylinderGeometry", { ref: geometryRef, args: [TOP_RADIUS, BOTTOM_RADIUS, PEDESTAL_HEIGHT, 4] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: vertexShader, fragmentShader: fragmentShader, uniforms: INITIAL_UNIFORMS, side: DoubleSide })] }), _jsx(CuboidCollider, { args: [SENSOR_HALF_WIDTH, SENSOR_HALF_HEIGHT, SENSOR_HALF_WIDTH], position: [0, PEDESTAL_HEIGHT + SENSOR_HALF_HEIGHT, 0], sensor: true, onIntersectionEnter: onEnter })] }));
56
+ return (_jsxs(RigidBody, { type: "fixed", colliders: "trimesh", children: [_jsxs("mesh", { position: [0, PEDESTAL_HEIGHT / 2, 0], rotation: [0, Math.PI / 4, 0], children: [_jsx("cylinderGeometry", { ref: geometryRef, args: [TOP_RADIUS, BOTTOM_RADIUS, PEDESTAL_HEIGHT, 4] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: vertexShader, fragmentShader: fragmentShader, uniforms: uniforms, side: DoubleSide })] }), _jsx(CuboidCollider, { args: [SENSOR_HALF_WIDTH, SENSOR_HALF_HEIGHT, SENSOR_HALF_WIDTH], position: [0, PEDESTAL_HEIGHT + SENSOR_HALF_HEIGHT, 0], sensor: true, onIntersectionEnter: onEnter })] }));
56
57
  };
57
58
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalPedestal/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAyB,UAAU,EAAuB,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,aAAa,GAAG,GAAG,CAAA;AACzB,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,MAAM,YAAY,GAAG,UAAU,CAAC;;;;;;;;;CAS/B,CAAA;AAED,MAAM,cAAc,GAAG,UAAU,CAAC;EAChC,cAAc;;;;;;;;;;;;;;;;;;;;CAoBf,CAAA;AAED,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAE3B,MAAM,iBAAiB,GAAG,UAAU,GAAG,GAAG,CAAA;AAC1C,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAM9B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE;IACnD,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,OAAO,EAAE,CAAA;YACnB,QAAQ,EAAE,OAAO,EAAE,CAAA;QACrB,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,MAAC,SAAS,IAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,SAAS,aACzC,gBAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,aACxE,2BAAkB,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,GAAI,EAC7F,yBACE,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,UAAU,GAChB,IACG,EAEP,KAAC,cAAc,IACb,IAAI,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,EAChE,QAAQ,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,kBAAkB,EAAE,CAAC,CAAC,EACtD,MAAM,QACN,mBAAmB,EAAE,OAAO,GAC5B,IACQ,CACb,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalPedestal/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAyB,UAAU,EAAuB,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,aAAa,GAAG,GAAG,CAAA;AACzB,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,MAAM,YAAY,GAAG,UAAU,CAAC;;;;;;;;;CAS/B,CAAA;AAED,MAAM,cAAc,GAAG,UAAU,CAAC;EAChC,cAAc;;;;;;;;;;;;;;;;;;;;CAoBf,CAAA;AAED,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;AAEjC,MAAM,iBAAiB,GAAG,UAAU,GAAG,GAAG,CAAA;AAC1C,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAM9B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE;IACnD,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IAC3C,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,OAAO,EAAE,CAAA;YACnB,QAAQ,EAAE,OAAO,EAAE,CAAA;QACrB,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,MAAC,SAAS,IAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,SAAS,aACzC,gBAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,aACxE,2BAAkB,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,GAAI,EAC7F,yBACE,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,GAChB,IACG,EAEP,KAAC,cAAc,IACb,IAAI,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,EAChE,QAAQ,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,kBAAkB,EAAE,CAAC,CAAC,EACtD,MAAM,QACN,mBAAmB,EAAE,OAAO,GAC5B,IACQ,CACb,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalThumbnail/index.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AA2DD,eAAO,MAAM,eAAe,GAAI,gCAAgC,KAAK,mDA4EpE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalThumbnail/index.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAmED,eAAO,MAAM,eAAe,GAAI,gCAAgC,KAAK,mDAwFpE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useFrame } from '@react-three/fiber';
3
3
  import { useEffect, useRef, useState } from 'react';
4
- import { TextureLoader } from 'three';
4
+ import { DataTexture, TextureLoader } from 'three';
5
5
  import { simplexNoise3D } from '../../shaders/noise';
6
6
  const vertexShader = /* glsl */ `
7
7
  varying vec2 vUv;
@@ -52,19 +52,33 @@ const fragmentShader = /* glsl */ `
52
52
  gl_FragColor = vec4(color + uGlowColor * glowStrength * 0.3, alpha);
53
53
  }
54
54
  `;
55
- const INITIAL_UNIFORMS = {
55
+ /** サムネイルがない場合の黒プレースホルダー */
56
+ const createBlackTexture = () => {
57
+ const data = new Uint8Array([0, 0, 0, 255]);
58
+ const tex = new DataTexture(data, 1, 1);
59
+ tex.needsUpdate = true;
60
+ return tex;
61
+ };
62
+ const createUniforms = () => ({
56
63
  uTexture: { value: null },
57
64
  uGlowColor: { value: [0.6, 0.33, 1.0] },
58
65
  uTime: { value: 0 },
59
- };
66
+ });
60
67
  export const PortalThumbnail = ({ thumbnailUrl, portalRadius }) => {
68
+ const [uniforms] = useState(createUniforms);
61
69
  const [texture, setTexture] = useState(null);
62
70
  const meshRef = useRef(null);
63
71
  const geometryRef = useRef(null);
64
72
  const materialRef = useRef(null);
65
73
  useEffect(() => {
66
- if (!thumbnailUrl)
67
- return;
74
+ if (!thumbnailUrl) {
75
+ const black = createBlackTexture();
76
+ setTexture(black);
77
+ return () => {
78
+ black.dispose();
79
+ setTexture(null);
80
+ };
81
+ }
68
82
  const loader = new TextureLoader();
69
83
  loader.setCrossOrigin('anonymous');
70
84
  let cancelled = false;
@@ -74,6 +88,10 @@ export const PortalThumbnail = ({ thumbnailUrl, portalRadius }) => {
74
88
  setTexture(loaded);
75
89
  }, undefined, (err) => {
76
90
  console.error('PortalThumbnail: texture load failed', err);
91
+ if (!cancelled) {
92
+ const black = createBlackTexture();
93
+ setTexture(black);
94
+ }
77
95
  });
78
96
  return () => {
79
97
  cancelled = true;
@@ -105,9 +123,9 @@ export const PortalThumbnail = ({ thumbnailUrl, portalRadius }) => {
105
123
  materialRef.current.uniforms.uTime.value = clock.getElapsedTime();
106
124
  }
107
125
  });
126
+ const size = portalRadius * (2 / 3) * 2;
108
127
  if (!texture)
109
128
  return null;
110
- const size = portalRadius * (2 / 3) * 2;
111
- return (_jsx("group", { ref: meshRef, position: [0, baseY, 0], children: _jsxs("mesh", { children: [_jsx("planeGeometry", { ref: geometryRef, args: [size, size] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: vertexShader, fragmentShader: fragmentShader, uniforms: INITIAL_UNIFORMS, transparent: true })] }) }));
129
+ return (_jsx("group", { ref: meshRef, position: [0, baseY, 0], children: _jsxs("mesh", { children: [_jsx("planeGeometry", { ref: geometryRef, args: [size, size] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: vertexShader, fragmentShader: fragmentShader, uniforms: uniforms, transparent: true })] }) }));
112
130
  };
113
131
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalThumbnail/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalThumbnail/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalVortex/index.tsx"],"names":[],"mappings":"AAMA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAYD,eAAO,MAAM,YAAY,GAAI,mEAAmE,KAAK,4CAgDpG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalVortex/index.tsx"],"names":[],"mappings":"AAMA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAYD,eAAO,MAAM,YAAY,GAAI,mEAAmE,KAAK,4CAiDpG,CAAA"}
@@ -1,18 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useFrame } from '@react-three/fiber';
3
- import { useEffect, useRef } from 'react';
3
+ import { useEffect, useRef, useState } from 'react';
4
4
  import { AdditiveBlending, Color, DoubleSide } from 'three';
5
5
  import { portalFragmentShader } from '../../shaders/portalFragment';
6
6
  import { portalVertexShader } from '../../shaders/portalVertex';
7
- const INITIAL_UNIFORMS = {
7
+ const createUniforms = () => ({
8
8
  uTime: { value: 0 },
9
9
  uColor: { value: [0.6, 0.33, 1.0] },
10
10
  uSecondaryColor: { value: [0.73, 0.53, 1.0] },
11
11
  uIntensity: { value: 1.5 },
12
- };
12
+ });
13
13
  const CONE_SEGMENTS = 24;
14
14
  const CONE_HEIGHT_SEGMENTS = 12;
15
15
  export const PortalVortex = ({ color, secondaryColor, intensity, rotationSpeed, portalRadius }) => {
16
+ const [uniforms] = useState(createUniforms);
16
17
  const meshRef = useRef(null);
17
18
  const materialRef = useRef(null);
18
19
  const geometryRef = useRef(null);
@@ -36,6 +37,6 @@ export const PortalVortex = ({ color, secondaryColor, intensity, rotationSpeed,
36
37
  };
37
38
  }, []);
38
39
  const height = portalRadius * 0.15;
39
- return (_jsxs("mesh", { ref: meshRef, rotation: [Math.PI, 0, 0], position: [0, height / 2 + 0.15, 0], children: [_jsx("coneGeometry", { ref: geometryRef, args: [portalRadius, height, CONE_SEGMENTS, CONE_HEIGHT_SEGMENTS, true] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: portalVertexShader, fragmentShader: portalFragmentShader, uniforms: INITIAL_UNIFORMS, transparent: true, blending: AdditiveBlending, depthWrite: false, side: DoubleSide })] }));
40
+ return (_jsxs("mesh", { ref: meshRef, rotation: [Math.PI, 0, 0], position: [0, height / 2 + 0.15, 0], children: [_jsx("coneGeometry", { ref: geometryRef, args: [portalRadius, height, CONE_SEGMENTS, CONE_HEIGHT_SEGMENTS, true] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: portalVertexShader, fragmentShader: portalFragmentShader, uniforms: uniforms, transparent: true, blending: AdditiveBlending, depthWrite: false, side: DoubleSide })] }));
40
41
  };
41
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalVortex/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAqB,UAAU,EAAkC,MAAM,OAAO,CAAA;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAU/D,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;IACnB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAA6B,EAAE;IAC/D,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAA6B,EAAE;IACzE,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;CAC3B,CAAA;AAED,MAAM,aAAa,GAAG,EAAE,CAAA;AACxB,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAS,EAAE,EAAE;IACvG,MAAM,OAAO,GAAG,MAAM,CAAO,IAAI,CAAC,CAAA;IAClC,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,MAAM,CAAe,IAAI,CAAC,CAAA;IAE9C,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAM;QAEpD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAA;QAEjD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QAC1C,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;QACnF,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzF,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;QAEzD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,aAAa,GAAG,KAAK,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,OAAO,EAAE,CAAA;YACnB,QAAQ,EAAE,OAAO,EAAE,CAAA;QACrB,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,MAAM,GAAG,YAAY,GAAG,IAAI,CAAA;IAElC,OAAO,CACL,gBAAM,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,aAChF,uBACE,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,IAAI,CAAC,GACvE,EACF,yBACE,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,kBAAkB,EAChC,cAAc,EAAE,oBAAoB,EACpC,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,QACX,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,UAAU,GAChB,IACG,CACR,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalVortex/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAqB,UAAU,EAAkC,MAAM,OAAO,CAAA;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAU/D,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC;IAC5B,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;IACnB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAA6B,EAAE;IAC/D,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAA6B,EAAE;IACzE,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;CAC3B,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,EAAE,CAAA;AACxB,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAS,EAAE,EAAE;IACvG,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAO,IAAI,CAAC,CAAA;IAClC,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,MAAM,CAAe,IAAI,CAAC,CAAA;IAE9C,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAM;QAEpD,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAA;QAEjD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QAC1C,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;QACnF,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzF,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;QAEzD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,aAAa,GAAG,KAAK,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,OAAO,EAAE,CAAA;YACnB,QAAQ,EAAE,OAAO,EAAE,CAAA;QACrB,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,MAAM,GAAG,YAAY,GAAG,IAAI,CAAA;IAElC,OAAO,CACL,gBAAM,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,aAChF,uBACE,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,IAAI,CAAC,GACvE,EACF,yBACE,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,kBAAkB,EAChC,cAAc,EAAE,oBAAoB,EACpC,QAAQ,EAAE,QAAQ,EAClB,WAAW,QACX,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,UAAU,GAChB,IACG,CACR,CAAA;AACH,CAAC,CAAA"}
@@ -3,9 +3,8 @@ import type { Props } from './types';
3
3
  * Propsにデフォルト値を適用して返す
4
4
  */
5
5
  export declare const usePortalProps: (props: Props) => {
6
+ instanceId: string;
6
7
  position: import("three").Vector3Tuple;
7
8
  rotation: import("three").Vector3Tuple;
8
- thumbnailUrl: string | undefined;
9
- onEnter: (() => void) | undefined;
10
9
  };
11
10
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK;;;;;CAc1C,CAAA"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK;;;;CAY1C,CAAA"}
@@ -3,12 +3,11 @@ import { PORTAL_DEFAULTS } from './constants';
3
3
  * Propsにデフォルト値を適用して返す
4
4
  */
5
5
  export const usePortalProps = (props) => {
6
- const { position = PORTAL_DEFAULTS.position, rotation = PORTAL_DEFAULTS.rotation, thumbnailUrl, onEnter, } = props;
6
+ const { instanceId, position = PORTAL_DEFAULTS.position, rotation = PORTAL_DEFAULTS.rotation, } = props;
7
7
  return {
8
+ instanceId,
8
9
  position,
9
10
  rotation,
10
- thumbnailUrl,
11
- onEnter,
12
11
  };
13
12
  };
14
13
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/components/Portal/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;IAC7C,MAAM,EACJ,QAAQ,GAAG,eAAe,CAAC,QAAQ,EACnC,QAAQ,GAAG,eAAe,CAAC,QAAQ,EACnC,YAAY,EACZ,OAAO,GACR,GAAG,KAAK,CAAA;IAET,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,OAAO;KACR,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/components/Portal/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;IAC7C,MAAM,EACJ,UAAU,EACV,QAAQ,GAAG,eAAe,CAAC,QAAQ,EACnC,QAAQ,GAAG,eAAe,CAAC,QAAQ,GACpC,GAAG,KAAK,CAAA;IAET,OAAO;QACL,UAAU;QACV,QAAQ;QACR,QAAQ;KACT,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,YAAY,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,SAAS,CAAA;AAInD,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,4CAkClC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,YAAY,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,SAAS,CAAA;AAUnD,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,4CA8DlC,CAAA"}
@@ -1,4 +1,6 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from '@react-three/drei';
3
+ import { useInstance } from '../../hooks/useInstance';
2
4
  import { PortalGlow } from './components/PortalGlow';
3
5
  import { PortalParticles } from './components/PortalParticles';
4
6
  import { PortalPedestal } from './components/PortalPedestal';
@@ -7,8 +9,14 @@ import { PortalVortex } from './components/PortalVortex';
7
9
  import { PORTAL_DEFAULTS } from './constants';
8
10
  import { usePortalProps } from './hooks';
9
11
  const PARTICLE_COUNT = 30;
12
+ /** サムネイル上部からのラベル位置を計算 */
13
+ const portalRadius = PORTAL_DEFAULTS.portalRadius;
14
+ const thumbnailBaseY = portalRadius * 0.15 + 0.15 + portalRadius * 0.7;
15
+ const thumbnailHalfSize = portalRadius * (2 / 3);
16
+ const LABEL_BASE_Y = thumbnailBaseY + thumbnailHalfSize;
10
17
  export const Portal = (props) => {
11
- const { position, rotation, thumbnailUrl, onEnter, } = usePortalProps(props);
12
- return (_jsxs("group", { position: position, rotation: rotation, children: [_jsx(PortalVortex, { color: PORTAL_DEFAULTS.color, secondaryColor: PORTAL_DEFAULTS.secondaryColor, intensity: PORTAL_DEFAULTS.intensity, rotationSpeed: PORTAL_DEFAULTS.rotationSpeed, portalRadius: PORTAL_DEFAULTS.portalRadius }), _jsx(PortalThumbnail, { thumbnailUrl: thumbnailUrl, portalRadius: PORTAL_DEFAULTS.portalRadius }), _jsx(PortalGlow, { color: PORTAL_DEFAULTS.secondaryColor, intensity: PORTAL_DEFAULTS.intensity }), _jsx(PortalParticles, { particleCount: PARTICLE_COUNT, color: PORTAL_DEFAULTS.secondaryColor, portalRadius: PORTAL_DEFAULTS.portalRadius, rotationSpeed: PORTAL_DEFAULTS.rotationSpeed }), _jsx(PortalPedestal, { onEnter: onEnter })] }));
18
+ const { instanceId, position, rotation, } = usePortalProps(props);
19
+ const { info, navigateWithConfirm } = useInstance(instanceId);
20
+ return (_jsxs("group", { position: position, rotation: rotation, children: [_jsx(PortalVortex, { color: PORTAL_DEFAULTS.color, secondaryColor: PORTAL_DEFAULTS.secondaryColor, intensity: PORTAL_DEFAULTS.intensity, rotationSpeed: PORTAL_DEFAULTS.rotationSpeed, portalRadius: PORTAL_DEFAULTS.portalRadius }), _jsx(PortalThumbnail, { thumbnailUrl: info?.world.thumbnailUrl ?? undefined, portalRadius: PORTAL_DEFAULTS.portalRadius }), _jsx(PortalGlow, { color: PORTAL_DEFAULTS.secondaryColor, intensity: PORTAL_DEFAULTS.intensity }), _jsx(PortalParticles, { particleCount: PARTICLE_COUNT, color: PORTAL_DEFAULTS.secondaryColor, portalRadius: PORTAL_DEFAULTS.portalRadius, rotationSpeed: PORTAL_DEFAULTS.rotationSpeed }), _jsx(PortalPedestal, { onEnter: navigateWithConfirm }), info && (_jsxs(_Fragment, { children: [_jsx(Text, { position: [0, LABEL_BASE_Y + 0.3, 0], fontSize: 0.12, color: "white", anchorX: "center", anchorY: "bottom", maxWidth: 1.6, children: info.world.name }), _jsx(Text, { position: [0, LABEL_BASE_Y + 0.17, 0], fontSize: 0.07, color: "#cccccc", anchorX: "center", anchorY: "bottom", maxWidth: 1.6, children: info.name })] }))] }));
13
21
  };
14
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Portal/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKxC,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE;IACrC,MAAM,EACJ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,OAAO,GACR,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAEzB,OAAO,CACL,iBAAO,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,aAC3C,KAAC,YAAY,IACX,KAAK,EAAE,eAAe,CAAC,KAAK,EAC5B,cAAc,EAAE,eAAe,CAAC,cAAc,EAC9C,SAAS,EAAE,eAAe,CAAC,SAAS,EACpC,aAAa,EAAE,eAAe,CAAC,aAAa,EAC5C,YAAY,EAAE,eAAe,CAAC,YAAY,GAC1C,EACF,KAAC,eAAe,IACd,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,eAAe,CAAC,YAAY,GAC1C,EACF,KAAC,UAAU,IACT,KAAK,EAAE,eAAe,CAAC,cAAc,EACrC,SAAS,EAAE,eAAe,CAAC,SAAS,GACpC,EACF,KAAC,eAAe,IACd,aAAa,EAAE,cAAc,EAC7B,KAAK,EAAE,eAAe,CAAC,cAAc,EACrC,YAAY,EAAE,eAAe,CAAC,YAAY,EAC1C,aAAa,EAAE,eAAe,CAAC,aAAa,GAC5C,EACF,KAAC,cAAc,IAAC,OAAO,EAAE,OAAO,GAAI,IAC9B,CACT,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Portal/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKxC,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,yBAAyB;AACzB,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAA;AACjD,MAAM,cAAc,GAAG,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,CAAA;AACtE,MAAM,iBAAiB,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAChD,MAAM,YAAY,GAAG,cAAc,GAAG,iBAAiB,CAAA;AAEvD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE;IACrC,MAAM,EACJ,UAAU,EACV,QAAQ,EACR,QAAQ,GACT,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAEzB,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IAE7D,OAAO,CACL,iBAAO,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,aAC3C,KAAC,YAAY,IACX,KAAK,EAAE,eAAe,CAAC,KAAK,EAC5B,cAAc,EAAE,eAAe,CAAC,cAAc,EAC9C,SAAS,EAAE,eAAe,CAAC,SAAS,EACpC,aAAa,EAAE,eAAe,CAAC,aAAa,EAC5C,YAAY,EAAE,eAAe,CAAC,YAAY,GAC1C,EACF,KAAC,eAAe,IACd,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS,EACnD,YAAY,EAAE,eAAe,CAAC,YAAY,GAC1C,EACF,KAAC,UAAU,IACT,KAAK,EAAE,eAAe,CAAC,cAAc,EACrC,SAAS,EAAE,eAAe,CAAC,SAAS,GACpC,EACF,KAAC,eAAe,IACd,aAAa,EAAE,cAAc,EAC7B,KAAK,EAAE,eAAe,CAAC,cAAc,EACrC,YAAY,EAAE,eAAe,CAAC,YAAY,EAC1C,aAAa,EAAE,eAAe,CAAC,aAAa,GAC5C,EACF,KAAC,cAAc,IAAC,OAAO,EAAE,mBAAmB,GAAI,EAG/C,IAAI,IAAI,CACP,8BACE,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,EACpC,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,EAChB,QAAQ,EAAE,GAAG,YAEZ,IAAI,CAAC,KAAK,CAAC,IAAI,GACX,EAEP,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,EAAE,CAAC,CAAC,EACrC,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,EAChB,QAAQ,EAAE,GAAG,YAEZ,IAAI,CAAC,IAAI,GACL,IACN,CACJ,IACK,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -1,9 +1,8 @@
1
1
  import type { Vector3Tuple } from 'three';
2
2
  export interface Props {
3
+ instanceId: string;
3
4
  position?: Vector3Tuple;
4
5
  rotation?: Vector3Tuple;
5
- thumbnailUrl?: string;
6
- onEnter?: () => void;
7
6
  }
8
7
  export interface PortalUniforms {
9
8
  uTime: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACxB,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IAC3C,eAAe,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IACpD,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,WAAW,KAAK;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACxB,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IAC3C,eAAe,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IACpD,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9B"}
@@ -0,0 +1,48 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { WorldInfo } from './WorldContext';
3
+ export interface InstanceInfo {
4
+ id: string;
5
+ name: string;
6
+ description: string | null;
7
+ currentUsers: number;
8
+ maxCapacity: number;
9
+ isPublic: boolean;
10
+ allowGuests: boolean;
11
+ owner?: {
12
+ id: string;
13
+ displayName: string;
14
+ userIconUrl?: string | null;
15
+ };
16
+ world: WorldInfo;
17
+ }
18
+ export interface InstanceContextValue {
19
+ /** instanceId からインスタンス情報を取得 */
20
+ getInstanceInfo: (instanceId: string) => Promise<InstanceInfo>;
21
+ /** 指定インスタンスへ遷移 */
22
+ navigateToInstance: (instanceId: string) => void;
23
+ }
24
+ /**
25
+ * 開発環境用のデフォルト実装(console.log のみ)
26
+ * プラットフォーム側が実装を注入しない場合に使用される
27
+ */
28
+ export declare const createDefaultInstanceImplementation: () => InstanceContextValue;
29
+ /**
30
+ * インスタンス情報の取得・遷移機能を提供する Context
31
+ * xrift-frontend 側で実装を注入し、ワールド側で利用できる
32
+ */
33
+ export declare const InstanceContext: import("react").Context<InstanceContextValue | null>;
34
+ interface Props {
35
+ value: InstanceContextValue;
36
+ children: ReactNode;
37
+ }
38
+ /**
39
+ * インスタンス情報の取得・遷移機能を提供する ContextProvider
40
+ */
41
+ export declare const InstanceProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
42
+ /**
43
+ * インスタンスの Context を取得する hook
44
+ * @throws {Error} InstanceProvider の外で呼び出された場合
45
+ */
46
+ export declare const useInstanceContext: () => InstanceContextValue;
47
+ export {};
48
+ //# sourceMappingURL=InstanceContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstanceContext.d.ts","sourceRoot":"","sources":["../../src/contexts/InstanceContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;IACD,KAAK,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9D,kBAAkB;IAClB,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD;AAED;;;GAGG;AACH,eAAO,MAAM,mCAAmC,QAAO,oBA0BrD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,sDAAmD,CAAA;AAE/E,UAAU,KAAK;IACb,KAAK,EAAE,oBAAoB,CAAA;IAC3B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,qBAAqB,KAAK,4CAE1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,oBAMrC,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ /**
4
+ * 開発環境用のデフォルト実装(console.log のみ)
5
+ * プラットフォーム側が実装を注入しない場合に使用される
6
+ */
7
+ export const createDefaultInstanceImplementation = () => ({
8
+ getInstanceInfo: async (instanceId) => {
9
+ console.log('[Instance] getInstanceInfo called', instanceId);
10
+ return {
11
+ id: '',
12
+ name: '',
13
+ description: null,
14
+ currentUsers: 0,
15
+ maxCapacity: 0,
16
+ isPublic: false,
17
+ allowGuests: false,
18
+ world: {
19
+ id: '',
20
+ name: '',
21
+ description: null,
22
+ thumbnailUrl: null,
23
+ isPublic: false,
24
+ instanceCount: 0,
25
+ totalVisitCount: 0,
26
+ uniqueVisitorCount: 0,
27
+ favoriteCount: 0,
28
+ },
29
+ };
30
+ },
31
+ navigateToInstance: (instanceId) => console.log('[Instance] navigateToInstance called', instanceId),
32
+ });
33
+ /**
34
+ * インスタンス情報の取得・遷移機能を提供する Context
35
+ * xrift-frontend 側で実装を注入し、ワールド側で利用できる
36
+ */
37
+ export const InstanceContext = createContext(null);
38
+ /**
39
+ * インスタンス情報の取得・遷移機能を提供する ContextProvider
40
+ */
41
+ export const InstanceProvider = ({ value, children }) => {
42
+ return _jsx(InstanceContext.Provider, { value: value, children: children });
43
+ };
44
+ /**
45
+ * インスタンスの Context を取得する hook
46
+ * @throws {Error} InstanceProvider の外で呼び出された場合
47
+ */
48
+ export const useInstanceContext = () => {
49
+ const context = useContext(InstanceContext);
50
+ if (!context) {
51
+ throw new Error('useInstanceContext must be used within InstanceProvider');
52
+ }
53
+ return context;
54
+ };
55
+ //# sourceMappingURL=InstanceContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstanceContext.js","sourceRoot":"","sources":["../../src/contexts/InstanceContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAA;AA0BjE;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAyB,EAAE,CAAC,CAAC;IAC9E,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAA;QAC5D,OAAO;YACL,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,CAAC;gBAChB,eAAe,EAAE,CAAC;gBAClB,kBAAkB,EAAE,CAAC;gBACrB,aAAa,EAAE,CAAC;aACjB;SACF,CAAA;IACH,CAAC;IACD,kBAAkB,EAAE,CAAC,UAAU,EAAE,EAAE,CACjC,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,UAAU,CAAC;CAClE,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAA8B,IAAI,CAAC,CAAA;AAO/E;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAS,EAAE,EAAE;IAC7D,OAAO,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA4B,CAAA;AACtF,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAyB,EAAE;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface InstanceInfo {
3
+ instanceName: string;
4
+ worldName: string;
5
+ thumbnailUrl: string | null;
6
+ currentUsers: number;
7
+ maxCapacity: number;
8
+ }
9
+ export interface InstanceInfoContextValue {
10
+ /** instanceId からインスタンス情報を取得 */
11
+ getInstanceInfo: (instanceId: string) => Promise<InstanceInfo>;
12
+ /** 指定インスタンスへ遷移 */
13
+ navigateToInstance: (instanceId: string) => void;
14
+ }
15
+ /**
16
+ * 開発環境用のデフォルト実装(console.log のみ)
17
+ * プラットフォーム側が実装を注入しない場合に使用される
18
+ */
19
+ export declare const createDefaultInstanceInfoImplementation: () => InstanceInfoContextValue;
20
+ /**
21
+ * インスタンス情報の取得・遷移機能を提供する Context
22
+ * xrift-frontend 側で実装を注入し、ワールド側で利用できる
23
+ */
24
+ export declare const InstanceInfoContext: import("react").Context<InstanceInfoContextValue | null>;
25
+ interface Props {
26
+ value: InstanceInfoContextValue;
27
+ children: ReactNode;
28
+ }
29
+ /**
30
+ * インスタンス情報の取得・遷移機能を提供する ContextProvider
31
+ */
32
+ export declare const InstanceInfoProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
33
+ /**
34
+ * インスタンス情報の Context を取得する hook
35
+ * @throws {Error} InstanceInfoProvider の外で呼び出された場合
36
+ */
37
+ export declare const useInstanceInfoContext: () => InstanceInfoContextValue;
38
+ export {};
39
+ //# sourceMappingURL=InstanceInfoContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstanceInfoContext.d.ts","sourceRoot":"","sources":["../../src/contexts/InstanceInfoContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,+BAA+B;IAC/B,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9D,kBAAkB;IAClB,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD;AAED;;;GAGG;AACH,eAAO,MAAM,uCAAuC,QAAO,wBAazD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,0DAAuD,CAAA;AAEvF,UAAU,KAAK;IACb,KAAK,EAAE,wBAAwB,CAAA;IAC/B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,qBAAqB,KAAK,4CAE9D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAO,wBAMzC,CAAA"}