@xrift/world-components 0.26.1 → 0.27.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 (73) hide show
  1. package/dist/components/Portal/__tests__/utils.test.d.ts +2 -0
  2. package/dist/components/Portal/__tests__/utils.test.d.ts.map +1 -0
  3. package/dist/components/Portal/__tests__/utils.test.js +56 -0
  4. package/dist/components/Portal/__tests__/utils.test.js.map +1 -0
  5. package/dist/components/Portal/components/PortalGlow/index.d.ts +7 -0
  6. package/dist/components/Portal/components/PortalGlow/index.d.ts.map +1 -0
  7. package/dist/components/Portal/components/PortalGlow/index.js +64 -0
  8. package/dist/components/Portal/components/PortalGlow/index.js.map +1 -0
  9. package/dist/components/Portal/components/PortalParticles/index.d.ts +9 -0
  10. package/dist/components/Portal/components/PortalParticles/index.d.ts.map +1 -0
  11. package/dist/components/Portal/components/PortalParticles/index.js +110 -0
  12. package/dist/components/Portal/components/PortalParticles/index.js.map +1 -0
  13. package/dist/components/Portal/components/PortalPedestal/index.d.ts +6 -0
  14. package/dist/components/Portal/components/PortalPedestal/index.d.ts.map +1 -0
  15. package/dist/components/Portal/components/PortalPedestal/index.js +57 -0
  16. package/dist/components/Portal/components/PortalPedestal/index.js.map +1 -0
  17. package/dist/components/Portal/components/PortalThumbnail/index.d.ts +7 -0
  18. package/dist/components/Portal/components/PortalThumbnail/index.d.ts.map +1 -0
  19. package/dist/components/Portal/components/PortalThumbnail/index.js +113 -0
  20. package/dist/components/Portal/components/PortalThumbnail/index.js.map +1 -0
  21. package/dist/components/Portal/components/PortalVortex/index.d.ts +10 -0
  22. package/dist/components/Portal/components/PortalVortex/index.d.ts.map +1 -0
  23. package/dist/components/Portal/components/PortalVortex/index.js +41 -0
  24. package/dist/components/Portal/components/PortalVortex/index.js.map +1 -0
  25. package/dist/components/Portal/constants.d.ts +11 -0
  26. package/dist/components/Portal/constants.d.ts.map +1 -0
  27. package/dist/components/Portal/constants.js +10 -0
  28. package/dist/components/Portal/constants.js.map +1 -0
  29. package/dist/components/Portal/hooks.d.ts +11 -0
  30. package/dist/components/Portal/hooks.d.ts.map +1 -0
  31. package/dist/components/Portal/hooks.js +14 -0
  32. package/dist/components/Portal/hooks.js.map +1 -0
  33. package/dist/components/Portal/index.d.ts +4 -0
  34. package/dist/components/Portal/index.d.ts.map +1 -0
  35. package/dist/components/Portal/index.js +14 -0
  36. package/dist/components/Portal/index.js.map +1 -0
  37. package/dist/components/Portal/shaders/noise.d.ts +2 -0
  38. package/dist/components/Portal/shaders/noise.d.ts.map +1 -0
  39. package/dist/components/Portal/shaders/noise.js +82 -0
  40. package/dist/components/Portal/shaders/noise.js.map +1 -0
  41. package/dist/components/Portal/shaders/portalFragment.d.ts +2 -0
  42. package/dist/components/Portal/shaders/portalFragment.d.ts.map +1 -0
  43. package/dist/components/Portal/shaders/portalFragment.js +45 -0
  44. package/dist/components/Portal/shaders/portalFragment.js.map +1 -0
  45. package/dist/components/Portal/shaders/portalVertex.d.ts +2 -0
  46. package/dist/components/Portal/shaders/portalVertex.d.ts.map +1 -0
  47. package/dist/components/Portal/shaders/portalVertex.js +11 -0
  48. package/dist/components/Portal/shaders/portalVertex.js.map +1 -0
  49. package/dist/components/Portal/types.d.ts +22 -0
  50. package/dist/components/Portal/types.d.ts.map +1 -0
  51. package/dist/components/Portal/types.js +2 -0
  52. package/dist/components/Portal/types.js.map +1 -0
  53. package/dist/components/Portal/utils.d.ts +11 -0
  54. package/dist/components/Portal/utils.d.ts.map +1 -0
  55. package/dist/components/Portal/utils.js +31 -0
  56. package/dist/components/Portal/utils.js.map +1 -0
  57. package/dist/contexts/ConfirmContext.d.ts +35 -0
  58. package/dist/contexts/ConfirmContext.d.ts.map +1 -0
  59. package/dist/contexts/ConfirmContext.js +32 -0
  60. package/dist/contexts/ConfirmContext.js.map +1 -0
  61. package/dist/contexts/XRiftContext.d.ts +7 -1
  62. package/dist/contexts/XRiftContext.d.ts.map +1 -1
  63. package/dist/contexts/XRiftContext.js +5 -2
  64. package/dist/contexts/XRiftContext.js.map +1 -1
  65. package/dist/hooks/useConfirm.d.ts +19 -0
  66. package/dist/hooks/useConfirm.d.ts.map +1 -0
  67. package/dist/hooks/useConfirm.js +24 -0
  68. package/dist/hooks/useConfirm.js.map +1 -0
  69. package/dist/index.d.ts +2 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +2 -0
  72. package/dist/index.js.map +1 -1
  73. package/package.json +1 -1
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PortalGlow } from './components/PortalGlow';
3
+ import { PortalParticles } from './components/PortalParticles';
4
+ import { PortalPedestal } from './components/PortalPedestal';
5
+ import { PortalThumbnail } from './components/PortalThumbnail';
6
+ import { PortalVortex } from './components/PortalVortex';
7
+ import { PORTAL_DEFAULTS } from './constants';
8
+ import { usePortalProps } from './hooks';
9
+ const PARTICLE_COUNT = 30;
10
+ 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 })] }));
13
+ };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export declare const simplexNoise3D = "\nvec3 mod289(vec3 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec4 mod289(vec4 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec4 permute(vec4 x) {\n return mod289(((x * 34.0) + 1.0) * x);\n}\n\nvec4 taylorInvSqrt(vec4 r) {\n return 1.79284291400159 - 0.85373472095314 * r;\n}\n\nfloat snoise(vec3 v) {\n const vec2 C = vec2(1.0 / 6.0, 1.0 / 3.0);\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\n\n vec3 i = floor(v + dot(v, C.yyy));\n vec3 x0 = v - i + dot(i, C.xxx);\n\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min(g.xyz, l.zxy);\n vec3 i2 = max(g.xyz, l.zxy);\n\n vec3 x1 = x0 - i1 + C.xxx;\n vec3 x2 = x0 - i2 + C.yyy;\n vec3 x3 = x0 - D.yyy;\n\n i = mod289(i);\n vec4 p = permute(permute(permute(\n i.z + vec4(0.0, i1.z, i2.z, 1.0))\n + i.y + vec4(0.0, i1.y, i2.y, 1.0))\n + i.x + vec4(0.0, i1.x, i2.x, 1.0));\n\n float n_ = 0.142857142857;\n vec3 ns = n_ * D.wyz - D.xzx;\n\n vec4 j = p - 49.0 * floor(p * ns.z * ns.z);\n\n vec4 x_ = floor(j * ns.z);\n vec4 y_ = floor(j - 7.0 * x_);\n\n vec4 x = x_ * ns.x + ns.yyyy;\n vec4 y = y_ * ns.x + ns.yyyy;\n vec4 h = 1.0 - abs(x) - abs(y);\n\n vec4 b0 = vec4(x.xy, y.xy);\n vec4 b1 = vec4(x.zw, y.zw);\n\n vec4 s0 = floor(b0) * 2.0 + 1.0;\n vec4 s1 = floor(b1) * 2.0 + 1.0;\n vec4 sh = -step(h, vec4(0.0));\n\n vec4 a0 = b0.xzyw + s0.xzyw * sh.xxyy;\n vec4 a1 = b1.xzyw + s1.xzyw * sh.zzww;\n\n vec3 p0 = vec3(a0.xy, h.x);\n vec3 p1 = vec3(a0.zw, h.y);\n vec3 p2 = vec3(a1.xy, h.z);\n vec3 p3 = vec3(a1.zw, h.w);\n\n vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n\n vec4 m = max(0.6 - vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);\n m = m * m;\n return 42.0 * dot(m * m, vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));\n}\n";
2
+ //# sourceMappingURL=noise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noise.d.ts","sourceRoot":"","sources":["../../../../src/components/Portal/shaders/noise.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,s3DA4E1B,CAAA"}
@@ -0,0 +1,82 @@
1
+ // Simplex 3D Noise - GLSL
2
+ // Author: Ian McEwan, Ashima Arts
3
+ // License: MIT License
4
+ // https://github.com/ashima/webgl-noise
5
+ export const simplexNoise3D = /* glsl */ `
6
+ vec3 mod289(vec3 x) {
7
+ return x - floor(x * (1.0 / 289.0)) * 289.0;
8
+ }
9
+
10
+ vec4 mod289(vec4 x) {
11
+ return x - floor(x * (1.0 / 289.0)) * 289.0;
12
+ }
13
+
14
+ vec4 permute(vec4 x) {
15
+ return mod289(((x * 34.0) + 1.0) * x);
16
+ }
17
+
18
+ vec4 taylorInvSqrt(vec4 r) {
19
+ return 1.79284291400159 - 0.85373472095314 * r;
20
+ }
21
+
22
+ float snoise(vec3 v) {
23
+ const vec2 C = vec2(1.0 / 6.0, 1.0 / 3.0);
24
+ const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
25
+
26
+ vec3 i = floor(v + dot(v, C.yyy));
27
+ vec3 x0 = v - i + dot(i, C.xxx);
28
+
29
+ vec3 g = step(x0.yzx, x0.xyz);
30
+ vec3 l = 1.0 - g;
31
+ vec3 i1 = min(g.xyz, l.zxy);
32
+ vec3 i2 = max(g.xyz, l.zxy);
33
+
34
+ vec3 x1 = x0 - i1 + C.xxx;
35
+ vec3 x2 = x0 - i2 + C.yyy;
36
+ vec3 x3 = x0 - D.yyy;
37
+
38
+ i = mod289(i);
39
+ vec4 p = permute(permute(permute(
40
+ i.z + vec4(0.0, i1.z, i2.z, 1.0))
41
+ + i.y + vec4(0.0, i1.y, i2.y, 1.0))
42
+ + i.x + vec4(0.0, i1.x, i2.x, 1.0));
43
+
44
+ float n_ = 0.142857142857;
45
+ vec3 ns = n_ * D.wyz - D.xzx;
46
+
47
+ vec4 j = p - 49.0 * floor(p * ns.z * ns.z);
48
+
49
+ vec4 x_ = floor(j * ns.z);
50
+ vec4 y_ = floor(j - 7.0 * x_);
51
+
52
+ vec4 x = x_ * ns.x + ns.yyyy;
53
+ vec4 y = y_ * ns.x + ns.yyyy;
54
+ vec4 h = 1.0 - abs(x) - abs(y);
55
+
56
+ vec4 b0 = vec4(x.xy, y.xy);
57
+ vec4 b1 = vec4(x.zw, y.zw);
58
+
59
+ vec4 s0 = floor(b0) * 2.0 + 1.0;
60
+ vec4 s1 = floor(b1) * 2.0 + 1.0;
61
+ vec4 sh = -step(h, vec4(0.0));
62
+
63
+ vec4 a0 = b0.xzyw + s0.xzyw * sh.xxyy;
64
+ vec4 a1 = b1.xzyw + s1.xzyw * sh.zzww;
65
+
66
+ vec3 p0 = vec3(a0.xy, h.x);
67
+ vec3 p1 = vec3(a0.zw, h.y);
68
+ vec3 p2 = vec3(a1.xy, h.z);
69
+ vec3 p3 = vec3(a1.zw, h.w);
70
+
71
+ vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
72
+ p0 *= norm.x;
73
+ p1 *= norm.y;
74
+ p2 *= norm.z;
75
+ p3 *= norm.w;
76
+
77
+ vec4 m = max(0.6 - vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);
78
+ m = m * m;
79
+ return 42.0 * dot(m * m, vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));
80
+ }
81
+ `;
82
+ //# sourceMappingURL=noise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noise.js","sourceRoot":"","sources":["../../../../src/components/Portal/shaders/noise.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,kCAAkC;AAClC,uBAAuB;AACvB,wCAAwC;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4ExC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const portalFragmentShader = "\n\nvec3 mod289(vec3 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec4 mod289(vec4 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\n\nvec4 permute(vec4 x) {\n return mod289(((x * 34.0) + 1.0) * x);\n}\n\nvec4 taylorInvSqrt(vec4 r) {\n return 1.79284291400159 - 0.85373472095314 * r;\n}\n\nfloat snoise(vec3 v) {\n const vec2 C = vec2(1.0 / 6.0, 1.0 / 3.0);\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\n\n vec3 i = floor(v + dot(v, C.yyy));\n vec3 x0 = v - i + dot(i, C.xxx);\n\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min(g.xyz, l.zxy);\n vec3 i2 = max(g.xyz, l.zxy);\n\n vec3 x1 = x0 - i1 + C.xxx;\n vec3 x2 = x0 - i2 + C.yyy;\n vec3 x3 = x0 - D.yyy;\n\n i = mod289(i);\n vec4 p = permute(permute(permute(\n i.z + vec4(0.0, i1.z, i2.z, 1.0))\n + i.y + vec4(0.0, i1.y, i2.y, 1.0))\n + i.x + vec4(0.0, i1.x, i2.x, 1.0));\n\n float n_ = 0.142857142857;\n vec3 ns = n_ * D.wyz - D.xzx;\n\n vec4 j = p - 49.0 * floor(p * ns.z * ns.z);\n\n vec4 x_ = floor(j * ns.z);\n vec4 y_ = floor(j - 7.0 * x_);\n\n vec4 x = x_ * ns.x + ns.yyyy;\n vec4 y = y_ * ns.x + ns.yyyy;\n vec4 h = 1.0 - abs(x) - abs(y);\n\n vec4 b0 = vec4(x.xy, y.xy);\n vec4 b1 = vec4(x.zw, y.zw);\n\n vec4 s0 = floor(b0) * 2.0 + 1.0;\n vec4 s1 = floor(b1) * 2.0 + 1.0;\n vec4 sh = -step(h, vec4(0.0));\n\n vec4 a0 = b0.xzyw + s0.xzyw * sh.xxyy;\n vec4 a1 = b1.xzyw + s1.xzyw * sh.zzww;\n\n vec3 p0 = vec3(a0.xy, h.x);\n vec3 p1 = vec3(a0.zw, h.y);\n vec3 p2 = vec3(a1.xy, h.z);\n vec3 p3 = vec3(a1.zw, h.w);\n\n vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n\n vec4 m = max(0.6 - vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);\n m = m * m;\n return 42.0 * dot(m * m, vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));\n}\n\n\nuniform float uTime;\nuniform vec3 uColor;\nuniform vec3 uSecondaryColor;\nuniform float uIntensity;\n\nvarying vec2 vUv;\nvarying vec3 vPosition;\n\nvoid main() {\n // 3D\u4F4D\u7F6E\u304B\u3089\u89D2\u5EA6\u3092\u8A08\u7B97\uFF08UV\u7D99\u304E\u76EE\u306A\u3057\uFF09\n float angle = atan(vPosition.z, vPosition.x);\n float height = vUv.y; // 0=\u9802\u70B9, 1=\u5E95\u9762\n\n // \u9AD8\u3055\u306B\u5FDC\u3058\u3066\u306D\u3058\u308A\uFF08\u9802\u70B9\u5074\u307B\u3069\u5F37\u304F\u306D\u3058\u308C\u308B\uFF09\n float twistedAngle = angle - (1.0 - height) * 3.0;\n\n // \u30B9\u30C8\u30E9\u30A4\u30D7\u30D1\u30BF\u30FC\u30F3\n float arms = 8.0;\n float rawPattern = sin(twistedAngle * arms) * 0.5 + 0.5;\n float radialPattern = smoothstep(0.2, 0.6, rawPattern);\n\n // \u7DE9\u3084\u304B\u306A\u8108\u52D5\n float pulse = sin(uTime * 2.0) * 0.08 + 0.92;\n\n // \u5E95\u9762\u5074\uFF08\u4E0A\uFF09\u3092\u660E\u308B\u304F\u3001\u9802\u70B9\u5074\uFF08\u4E0B\uFF09\u3092\u6697\u304F\n float heightBrightness = smoothstep(0.0, 0.5, height);\n\n // \u8DDD\u96E2\u30D9\u30FC\u30B9\u306E\u8272\u6DF7\u5408\uFF08\u9802\u70B9=\u30E1\u30A4\u30F3\u30AB\u30E9\u30FC\u3001\u5E95\u9762=\u30B5\u30D6\u30AB\u30E9\u30FC\uFF09\n vec3 baseColor = mix(uColor, uSecondaryColor, height);\n\n // \u6700\u7D42\u8272\u5408\u6210\n float brightness = (radialPattern * 0.7 + heightBrightness * 0.3) * pulse * uIntensity;\n vec3 finalColor = baseColor * brightness;\n\n // \u9802\u70B9\u4ED8\u8FD1\u3092\u30D5\u30A7\u30FC\u30C9\u30A2\u30A6\u30C8\n float alpha = smoothstep(0.0, 0.5, height) * clamp(brightness, 0.0, 1.0);\n\n gl_FragColor = vec4(finalColor, alpha);\n}\n";
2
+ //# sourceMappingURL=portalFragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalFragment.d.ts","sourceRoot":"","sources":["../../../../src/components/Portal/shaders/portalFragment.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,mgHA0ChC,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { simplexNoise3D } from './noise';
2
+ export const portalFragmentShader = /* glsl */ `
3
+ ${simplexNoise3D}
4
+
5
+ uniform float uTime;
6
+ uniform vec3 uColor;
7
+ uniform vec3 uSecondaryColor;
8
+ uniform float uIntensity;
9
+
10
+ varying vec2 vUv;
11
+ varying vec3 vPosition;
12
+
13
+ void main() {
14
+ // 3D位置から角度を計算(UV継ぎ目なし)
15
+ float angle = atan(vPosition.z, vPosition.x);
16
+ float height = vUv.y; // 0=頂点, 1=底面
17
+
18
+ // 高さに応じてねじり(頂点側ほど強くねじれる)
19
+ float twistedAngle = angle - (1.0 - height) * 3.0;
20
+
21
+ // ストライプパターン
22
+ float arms = 8.0;
23
+ float rawPattern = sin(twistedAngle * arms) * 0.5 + 0.5;
24
+ float radialPattern = smoothstep(0.2, 0.6, rawPattern);
25
+
26
+ // 緩やかな脈動
27
+ float pulse = sin(uTime * 2.0) * 0.08 + 0.92;
28
+
29
+ // 底面側(上)を明るく、頂点側(下)を暗く
30
+ float heightBrightness = smoothstep(0.0, 0.5, height);
31
+
32
+ // 距離ベースの色混合(頂点=メインカラー、底面=サブカラー)
33
+ vec3 baseColor = mix(uColor, uSecondaryColor, height);
34
+
35
+ // 最終色合成
36
+ float brightness = (radialPattern * 0.7 + heightBrightness * 0.3) * pulse * uIntensity;
37
+ vec3 finalColor = baseColor * brightness;
38
+
39
+ // 頂点付近をフェードアウト
40
+ float alpha = smoothstep(0.0, 0.5, height) * clamp(brightness, 0.0, 1.0);
41
+
42
+ gl_FragColor = vec4(finalColor, alpha);
43
+ }
44
+ `;
45
+ //# sourceMappingURL=portalFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalFragment.js","sourceRoot":"","sources":["../../../../src/components/Portal/shaders/portalFragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;EAC7C,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCf,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const portalVertexShader = "\nvarying vec2 vUv;\nvarying vec3 vPosition;\n\nvoid main() {\n vUv = uv;\n vPosition = position;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
2
+ //# sourceMappingURL=portalVertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalVertex.d.ts","sourceRoot":"","sources":["../../../../src/components/Portal/shaders/portalVertex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,wLAS9B,CAAA"}
@@ -0,0 +1,11 @@
1
+ export const portalVertexShader = /* glsl */ `
2
+ varying vec2 vUv;
3
+ varying vec3 vPosition;
4
+
5
+ void main() {
6
+ vUv = uv;
7
+ vPosition = position;
8
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
9
+ }
10
+ `;
11
+ //# sourceMappingURL=portalVertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalVertex.js","sourceRoot":"","sources":["../../../../src/components/Portal/shaders/portalVertex.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;;;;;;;;;CAS5C,CAAA"}
@@ -0,0 +1,22 @@
1
+ import type { Vector3Tuple } from 'three';
2
+ export interface Props {
3
+ position?: Vector3Tuple;
4
+ rotation?: Vector3Tuple;
5
+ thumbnailUrl?: string;
6
+ onEnter?: () => void;
7
+ }
8
+ export interface PortalUniforms {
9
+ uTime: {
10
+ value: number;
11
+ };
12
+ uColor: {
13
+ value: [number, number, number];
14
+ };
15
+ uSecondaryColor: {
16
+ value: [number, number, number];
17
+ };
18
+ uIntensity: {
19
+ value: number;
20
+ };
21
+ }
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/Portal/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * パーティクルの初期位置を生成する
3
+ * 渦巻き軌道上にランダムに配置
4
+ */
5
+ export declare const generateParticlePositions: (count: number, radius: number, aspectRatio: number) => Float32Array;
6
+ /**
7
+ * パーティクルの初期速度パラメータを生成する
8
+ * 各パーティクルの角速度・半径方向速度の基準値
9
+ */
10
+ export declare const generateParticleVelocities: (count: number) => Float32Array;
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAG,YAgB9F,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAAI,OAAO,MAAM,KAAG,YAS1D,CAAA"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * パーティクルの初期位置を生成する
3
+ * 渦巻き軌道上にランダムに配置
4
+ */
5
+ export const generateParticlePositions = (count, radius, aspectRatio) => {
6
+ const positions = new Float32Array(count * 3);
7
+ for (let i = 0; i < count; i++) {
8
+ const angle = Math.random() * Math.PI * 2;
9
+ const dist = Math.random() * radius;
10
+ const x = Math.cos(angle) * dist;
11
+ const y = Math.sin(angle) * dist * aspectRatio;
12
+ const z = (Math.random() - 0.5) * 0.2;
13
+ positions[i * 3] = x;
14
+ positions[i * 3 + 1] = y;
15
+ positions[i * 3 + 2] = z;
16
+ }
17
+ return positions;
18
+ };
19
+ /**
20
+ * パーティクルの初期速度パラメータを生成する
21
+ * 各パーティクルの角速度・半径方向速度の基準値
22
+ */
23
+ export const generateParticleVelocities = (count) => {
24
+ const velocities = new Float32Array(count * 2); // [angularSpeed, radialPhase] per particle
25
+ for (let i = 0; i < count; i++) {
26
+ velocities[i * 2] = 0.5 + Math.random() * 1.5; // 角速度: 0.5〜2.0
27
+ velocities[i * 2 + 1] = Math.random() * Math.PI * 2; // 初期位相
28
+ }
29
+ return velocities;
30
+ };
31
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/Portal/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,WAAmB,EAAgB,EAAE;IAC5G,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAA;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,WAAW,CAAA;QAC9C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QAErC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QACpB,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QACxB,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAa,EAAgB,EAAE;IACxE,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA,CAAC,2CAA2C;IAE1F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAA,CAAC,eAAe;QAC7D,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA,CAAC,OAAO;IAC7D,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface ConfirmOptions {
3
+ title?: string;
4
+ message: string;
5
+ confirmLabel?: string;
6
+ cancelLabel?: string;
7
+ }
8
+ export interface ConfirmContextValue {
9
+ requestConfirm: (options: ConfirmOptions) => Promise<boolean>;
10
+ }
11
+ /**
12
+ * 開発環境用のデフォルト実装(window.confirm)
13
+ * プラットフォーム側が実装を注入しない場合に使用される
14
+ */
15
+ export declare const createDefaultConfirmImplementation: () => ConfirmContextValue;
16
+ /**
17
+ * 確認モーダル機能を提供する Context
18
+ * xrift-frontend 側で実装を注入し、ワールド側で利用できる
19
+ */
20
+ export declare const ConfirmContext: import("react").Context<ConfirmContextValue | null>;
21
+ interface Props {
22
+ value: ConfirmContextValue;
23
+ children: ReactNode;
24
+ }
25
+ /**
26
+ * 確認モーダル機能を提供する ContextProvider
27
+ */
28
+ export declare const ConfirmProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
29
+ /**
30
+ * 確認モーダルの Context を取得する hook
31
+ * @throws {Error} ConfirmProvider の外で呼び出された場合
32
+ */
33
+ export declare const useConfirmContext: () => ConfirmContextValue;
34
+ export {};
35
+ //# sourceMappingURL=ConfirmContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmContext.d.ts","sourceRoot":"","sources":["../../src/contexts/ConfirmContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC9D;AAED;;;GAGG;AACH,eAAO,MAAM,kCAAkC,QAAO,mBAEpD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,qDAAkD,CAAA;AAE7E,UAAU,KAAK;IACb,KAAK,EAAE,mBAAmB,CAAA;IAC1B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,qBAAqB,KAAK,4CAEzD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAO,mBAMpC,CAAA"}
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ /**
4
+ * 開発環境用のデフォルト実装(window.confirm)
5
+ * プラットフォーム側が実装を注入しない場合に使用される
6
+ */
7
+ export const createDefaultConfirmImplementation = () => ({
8
+ requestConfirm: (options) => Promise.resolve(window.confirm(options.message)),
9
+ });
10
+ /**
11
+ * 確認モーダル機能を提供する Context
12
+ * xrift-frontend 側で実装を注入し、ワールド側で利用できる
13
+ */
14
+ export const ConfirmContext = createContext(null);
15
+ /**
16
+ * 確認モーダル機能を提供する ContextProvider
17
+ */
18
+ export const ConfirmProvider = ({ value, children }) => {
19
+ return _jsx(ConfirmContext.Provider, { value: value, children: children });
20
+ };
21
+ /**
22
+ * 確認モーダルの Context を取得する hook
23
+ * @throws {Error} ConfirmProvider の外で呼び出された場合
24
+ */
25
+ export const useConfirmContext = () => {
26
+ const context = useContext(ConfirmContext);
27
+ if (!context) {
28
+ throw new Error('useConfirmContext must be used within ConfirmProvider');
29
+ }
30
+ return context;
31
+ };
32
+ //# sourceMappingURL=ConfirmContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmContext.js","sourceRoot":"","sources":["../../src/contexts/ConfirmContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAA;AAajE;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAwB,EAAE,CAAC,CAAC;IAC5E,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9E,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAA;AAO7E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAS,EAAE,EAAE;IAC5D,OAAO,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA2B,CAAA;AACpF,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAwB,EAAE;IACzD,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -3,6 +3,7 @@ import type { Object3D } from 'three';
3
3
  import { type InstanceStateContextValue } from './InstanceStateContext';
4
4
  import { type ScreenShareContextValue } from './ScreenShareContext';
5
5
  import { type SpawnPointContextValue } from './SpawnPointContext';
6
+ import { type ConfirmContextValue } from './ConfirmContext';
6
7
  import { type TeleportContextValue } from './TeleportContext';
7
8
  import { type TextInputContextValue } from './TextInputContext';
8
9
  import { type UsersContextValue } from './UsersContext';
@@ -49,6 +50,11 @@ interface Props {
49
50
  * 指定しない場合はデフォルト実装(ローカルstate)が使用される
50
51
  */
51
52
  spawnPointImplementation?: SpawnPointContextValue;
53
+ /**
54
+ * 確認モーダルの実装(オプション)
55
+ * 指定しない場合はデフォルト実装(window.confirm)が使用される
56
+ */
57
+ confirmImplementation?: ConfirmContextValue;
52
58
  /**
53
59
  * テレポート機能の実装(オプション)
54
60
  * 指定しない場合はデフォルト実装(console.log)が使用される
@@ -76,7 +82,7 @@ interface Props {
76
82
  * Module Federationで動的にロードされたワールドコンポーネントに
77
83
  * 必要な情報を注入するために使用
78
84
  */
79
- export declare const XRiftProvider: ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldEventImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
85
+ export declare const XRiftProvider: ({ baseUrl, confirmImplementation, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldEventImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
80
86
  /**
81
87
  * XRift ワールドの情報を取得するhook
82
88
  * ワールドプロジェクト側でアセットの相対パスを絶対パスに変換する際に使用
@@ -1 +1 @@
1
- {"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAA;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAyB,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAA;AAW5B,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC;;OAEG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;IAChD;;OAEG;IACH,sBAAsB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;CAKnD;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,mDAAgD,CAAA;AAEzE,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,2BAA2B,CAAC,EAAE,yBAAyB,CAAA;IACvD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,uBAAuB,CAAA;IACnD;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD;;;OAGG;IACH,sBAAsB,CAAC,EAAE,oBAAoB,CAAA;IAC7C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,qBAAqB,CAAA;IAC/C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,iBAAiB,CAAA;IACvC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,0MAU3B,KAAK,4CAgEP,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAQ3B,CAAA"}
1
+ {"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAA;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAyB,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAA;AAW5B,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC;;OAEG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;IAChD;;OAEG;IACH,sBAAsB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;CAKnD;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,mDAAgD,CAAA;AAEzE,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,2BAA2B,CAAC,EAAE,yBAAyB,CAAA;IACvD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,uBAAuB,CAAA;IACnD;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD;;;OAGG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,CAAA;IAC3C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,oBAAoB,CAAA;IAC7C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,qBAAqB,CAAA;IAC/C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,iBAAiB,CAAA;IACvC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,iOAW3B,KAAK,4CAwEP,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAQ3B,CAAA"}
@@ -3,6 +3,7 @@ import { createContext, useCallback, useContext, useMemo, useState } from 'react
3
3
  import { InstanceStateProvider } from './InstanceStateContext';
4
4
  import { ScreenShareProvider } from './ScreenShareContext';
5
5
  import { SpawnPointProvider } from './SpawnPointContext';
6
+ import { ConfirmProvider, createDefaultConfirmImplementation, } from './ConfirmContext';
6
7
  import { TeleportProvider, createDefaultTeleportImplementation, } from './TeleportContext';
7
8
  import { TextInputProvider, createDefaultTextInputImplementation, } from './TextInputContext';
8
9
  import { UsersProvider } from './UsersContext';
@@ -25,13 +26,15 @@ export const XRiftContext = createContext(null);
25
26
  * Module Federationで動的にロードされたワールドコンポーネントに
26
27
  * 必要な情報を注入するために使用
27
28
  */
28
- export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldEventImplementation, children, }) => {
29
+ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldEventImplementation, children, }) => {
29
30
  // インタラクト可能なオブジェクトの管理
30
31
  const [interactableObjects] = useState(() => new Set());
31
32
  // 画面共有の実装(指定がない場合はデフォルト実装を使用)
32
33
  const screenShareImpl = useMemo(() => screenShareImplementation ?? createDefaultScreenShareImplementation(), [screenShareImplementation]);
33
34
  // テキスト入力の実装(指定がない場合はデフォルト実装を使用)
34
35
  const textInputImpl = useMemo(() => textInputImplementation ?? createDefaultTextInputImplementation(), [textInputImplementation]);
36
+ // 確認モーダルの実装(指定がない場合はデフォルト実装を使用)
37
+ const confirmImpl = useMemo(() => confirmImplementation ?? createDefaultConfirmImplementation(), [confirmImplementation]);
35
38
  // テレポートの実装(指定がない場合はデフォルト実装を使用)
36
39
  const teleportImpl = useMemo(() => teleportImplementation ?? createDefaultTeleportImplementation(), [teleportImplementation]);
37
40
  // ワールドイベントの実装(指定がない場合はデフォルト実装を使用)
@@ -49,7 +52,7 @@ export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShar
49
52
  interactableObjects,
50
53
  registerInteractable,
51
54
  unregisterInteractable,
52
- }, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(TextInputProvider, { value: textInputImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: _jsx(SpawnPointProvider, { implementation: spawnPointImplementation, children: _jsx(UsersProvider, { implementation: usersImplementation, children: _jsx(WorldEventProvider, { value: worldEventImpl, children: _jsx(TeleportProvider, { value: teleportImpl, children: children }) }) }) }) }) }) }) }));
55
+ }, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(TextInputProvider, { value: textInputImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: _jsx(SpawnPointProvider, { implementation: spawnPointImplementation, children: _jsx(UsersProvider, { implementation: usersImplementation, children: _jsx(WorldEventProvider, { value: worldEventImpl, children: _jsx(TeleportProvider, { value: teleportImpl, children: _jsx(ConfirmProvider, { value: confirmImpl, children: children }) }) }) }) }) }) }) }) }));
53
56
  };
54
57
  /**
55
58
  * XRift ワールドの情報を取得するhook
@@ -1 +1 @@
1
- {"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type ConfirmOptions } from '../contexts/ConfirmContext';
2
+ /**
3
+ * 確認モーダルを使用するhook
4
+ * ワールド作成者がユーザーに確認を求めるために使用
5
+ *
6
+ * @example
7
+ * const { requestConfirm } = useConfirm()
8
+ *
9
+ * const handleEnter = async () => {
10
+ * const ok = await requestConfirm({ message: 'ワールドを移動しますか?' })
11
+ * if (ok) navigate('/worlds/abc')
12
+ * }
13
+ *
14
+ * @returns {{ requestConfirm: (options: ConfirmOptions) => Promise<boolean> }}
15
+ */
16
+ export declare const useConfirm: () => {
17
+ requestConfirm: (options: ConfirmOptions) => Promise<boolean>;
18
+ };
19
+ //# sourceMappingURL=useConfirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfirm.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfirm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,4BAA4B,CAAA;AAEnF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,QAAO;IAAE,cAAc,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAW5F,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { useCallback } from 'react';
2
+ import { useConfirmContext } from '../contexts/ConfirmContext';
3
+ /**
4
+ * 確認モーダルを使用するhook
5
+ * ワールド作成者がユーザーに確認を求めるために使用
6
+ *
7
+ * @example
8
+ * const { requestConfirm } = useConfirm()
9
+ *
10
+ * const handleEnter = async () => {
11
+ * const ok = await requestConfirm({ message: 'ワールドを移動しますか?' })
12
+ * if (ok) navigate('/worlds/abc')
13
+ * }
14
+ *
15
+ * @returns {{ requestConfirm: (options: ConfirmOptions) => Promise<boolean> }}
16
+ */
17
+ export const useConfirm = () => {
18
+ const { requestConfirm } = useConfirmContext();
19
+ const stableRequestConfirm = useCallback((options) => {
20
+ return requestConfirm(options);
21
+ }, [requestConfirm]);
22
+ return { requestConfirm: stableRequestConfirm };
23
+ };
24
+ //# sourceMappingURL=useConfirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfirm.js","sourceRoot":"","sources":["../../src/hooks/useConfirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAuB,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAEnF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAsE,EAAE;IAChG,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAA;IAE9C,MAAM,oBAAoB,GAAG,WAAW,CACtC,CAAC,OAAuB,EAAE,EAAE;QAC1B,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAA;IAED,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAA;AACjD,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { ScreenShareContext, ScreenShareProvider, useScreenShareContext, type Sc
4
4
  export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, type SpawnPoint as SpawnPointData, type SpawnPointContextValue, } from './contexts/SpawnPointContext';
5
5
  export { UsersContext, UsersProvider, useUsers, type User, type UsersContextValue, } from './contexts/UsersContext';
6
6
  export { TextInputContext, TextInputProvider, useTextInputContext, createDefaultTextInputImplementation, type TextInputContextValue, type TextInputRequest, } from './contexts/TextInputContext';
7
+ export { ConfirmContext, ConfirmProvider, useConfirmContext, createDefaultConfirmImplementation, type ConfirmContextValue, type ConfirmOptions, } from './contexts/ConfirmContext';
7
8
  export { TeleportContext, TeleportProvider, useTeleportContext, createDefaultTeleportImplementation, type TeleportContextValue, type TeleportDestination, } from './contexts/TeleportContext';
8
9
  export { WorldEventContext, WorldEventProvider, useWorldEventContext, createDefaultWorldEventImplementation, type WorldEventContextValue, } from './contexts/WorldEventContext';
9
10
  export { Interactable, type InteractableProps, } from './components/Interactable';
@@ -22,6 +23,7 @@ export { EntryLogBoard, type EntryLogBoardProps, } from './components/EntryLogBo
22
23
  export { type PhysicsConfig } from './components/DevEnvironment/types';
23
24
  export { useInstanceState } from './hooks/useInstanceState';
24
25
  export { useSpawnPoint } from './hooks/useSpawnPoint';
26
+ export { useConfirm } from './hooks/useConfirm';
25
27
  export { useTeleport } from './hooks/useTeleport';
26
28
  export { useWebAudioVolume } from './hooks/useWebAudioVolume';
27
29
  export { useWorldEvent } from './hooks/useWorldEvent';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export { ScreenShareContext, ScreenShareProvider, useScreenShareContext, } from
5
5
  export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, } from './contexts/SpawnPointContext';
6
6
  export { UsersContext, UsersProvider, useUsers, } from './contexts/UsersContext';
7
7
  export { TextInputContext, TextInputProvider, useTextInputContext, createDefaultTextInputImplementation, } from './contexts/TextInputContext';
8
+ export { ConfirmContext, ConfirmProvider, useConfirmContext, createDefaultConfirmImplementation, } from './contexts/ConfirmContext';
8
9
  export { TeleportContext, TeleportProvider, useTeleportContext, createDefaultTeleportImplementation, } from './contexts/TeleportContext';
9
10
  export { WorldEventContext, WorldEventProvider, useWorldEventContext, createDefaultWorldEventImplementation, } from './contexts/WorldEventContext';
10
11
  // Components
@@ -24,6 +25,7 @@ export { EntryLogBoard, } from './components/EntryLogBoard';
24
25
  // Hooks
25
26
  export { useInstanceState } from './hooks/useInstanceState';
26
27
  export { useSpawnPoint } from './hooks/useSpawnPoint';
28
+ export { useConfirm } from './hooks/useConfirm';
27
29
  export { useTeleport } from './hooks/useTeleport';
28
30
  export { useWebAudioVolume } from './hooks/useWebAudioVolume';
29
31
  export { useWorldEvent } from './hooks/useWorldEvent';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAET,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAGT,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,oCAAoC,GAGrC,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mCAAmC,GAGpC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qCAAqC,GAEtC,MAAM,8BAA8B,CAAA;AAErC,aAAa;AACb,OAAO,EACL,YAAY,GAEb,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EACL,WAAW,GAGZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAyB,MAAM,0BAA0B,CAAA;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EACL,kBAAkB,GAEnB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,UAAU,GAEX,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,SAAS,GAEV,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,QAAQ,GAGT,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAA;AAInC,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,YAAY;AACZ,OAAO,EAAE,MAAM,EAAoC,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAET,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAGT,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,oCAAoC,GAGrC,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kCAAkC,GAGnC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mCAAmC,GAGpC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qCAAqC,GAEtC,MAAM,8BAA8B,CAAA;AAErC,aAAa;AACb,OAAO,EACL,YAAY,GAEb,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EACL,WAAW,GAGZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAyB,MAAM,0BAA0B,CAAA;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EACL,kBAAkB,GAEnB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,UAAU,GAEX,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,SAAS,GAEV,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,QAAQ,GAGT,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAA;AAInC,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,YAAY;AACZ,OAAO,EAAE,MAAM,EAAoC,MAAM,oBAAoB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrift/world-components",
3
- "version": "0.26.1",
3
+ "version": "0.27.0",
4
4
  "description": "Shared components and utilities for Xrift worlds",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",