@xrift/world-components 0.26.0 → 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.
- package/dist/components/Portal/__tests__/utils.test.d.ts +2 -0
- package/dist/components/Portal/__tests__/utils.test.d.ts.map +1 -0
- package/dist/components/Portal/__tests__/utils.test.js +56 -0
- package/dist/components/Portal/__tests__/utils.test.js.map +1 -0
- package/dist/components/Portal/components/PortalGlow/index.d.ts +7 -0
- package/dist/components/Portal/components/PortalGlow/index.d.ts.map +1 -0
- package/dist/components/Portal/components/PortalGlow/index.js +64 -0
- package/dist/components/Portal/components/PortalGlow/index.js.map +1 -0
- package/dist/components/Portal/components/PortalParticles/index.d.ts +9 -0
- package/dist/components/Portal/components/PortalParticles/index.d.ts.map +1 -0
- package/dist/components/Portal/components/PortalParticles/index.js +110 -0
- package/dist/components/Portal/components/PortalParticles/index.js.map +1 -0
- package/dist/components/Portal/components/PortalPedestal/index.d.ts +6 -0
- package/dist/components/Portal/components/PortalPedestal/index.d.ts.map +1 -0
- package/dist/components/Portal/components/PortalPedestal/index.js +57 -0
- package/dist/components/Portal/components/PortalPedestal/index.js.map +1 -0
- package/dist/components/Portal/components/PortalThumbnail/index.d.ts +7 -0
- package/dist/components/Portal/components/PortalThumbnail/index.d.ts.map +1 -0
- package/dist/components/Portal/components/PortalThumbnail/index.js +113 -0
- package/dist/components/Portal/components/PortalThumbnail/index.js.map +1 -0
- package/dist/components/Portal/components/PortalVortex/index.d.ts +10 -0
- package/dist/components/Portal/components/PortalVortex/index.d.ts.map +1 -0
- package/dist/components/Portal/components/PortalVortex/index.js +41 -0
- package/dist/components/Portal/components/PortalVortex/index.js.map +1 -0
- package/dist/components/Portal/constants.d.ts +11 -0
- package/dist/components/Portal/constants.d.ts.map +1 -0
- package/dist/components/Portal/constants.js +10 -0
- package/dist/components/Portal/constants.js.map +1 -0
- package/dist/components/Portal/hooks.d.ts +11 -0
- package/dist/components/Portal/hooks.d.ts.map +1 -0
- package/dist/components/Portal/hooks.js +14 -0
- package/dist/components/Portal/hooks.js.map +1 -0
- package/dist/components/Portal/index.d.ts +4 -0
- package/dist/components/Portal/index.d.ts.map +1 -0
- package/dist/components/Portal/index.js +14 -0
- package/dist/components/Portal/index.js.map +1 -0
- package/dist/components/Portal/shaders/noise.d.ts +2 -0
- package/dist/components/Portal/shaders/noise.d.ts.map +1 -0
- package/dist/components/Portal/shaders/noise.js +82 -0
- package/dist/components/Portal/shaders/noise.js.map +1 -0
- package/dist/components/Portal/shaders/portalFragment.d.ts +2 -0
- package/dist/components/Portal/shaders/portalFragment.d.ts.map +1 -0
- package/dist/components/Portal/shaders/portalFragment.js +45 -0
- package/dist/components/Portal/shaders/portalFragment.js.map +1 -0
- package/dist/components/Portal/shaders/portalVertex.d.ts +2 -0
- package/dist/components/Portal/shaders/portalVertex.d.ts.map +1 -0
- package/dist/components/Portal/shaders/portalVertex.js +11 -0
- package/dist/components/Portal/shaders/portalVertex.js.map +1 -0
- package/dist/components/Portal/types.d.ts +22 -0
- package/dist/components/Portal/types.d.ts.map +1 -0
- package/dist/components/Portal/types.js +2 -0
- package/dist/components/Portal/types.js.map +1 -0
- package/dist/components/Portal/utils.d.ts +11 -0
- package/dist/components/Portal/utils.d.ts.map +1 -0
- package/dist/components/Portal/utils.js +31 -0
- package/dist/components/Portal/utils.js.map +1 -0
- package/dist/contexts/ConfirmContext.d.ts +35 -0
- package/dist/contexts/ConfirmContext.d.ts.map +1 -0
- package/dist/contexts/ConfirmContext.js +32 -0
- package/dist/contexts/ConfirmContext.js.map +1 -0
- package/dist/contexts/XRiftContext.d.ts +13 -1
- package/dist/contexts/XRiftContext.d.ts.map +1 -1
- package/dist/contexts/XRiftContext.js +8 -2
- package/dist/contexts/XRiftContext.js.map +1 -1
- package/dist/hooks/useConfirm.d.ts +19 -0
- package/dist/hooks/useConfirm.d.ts.map +1 -0
- package/dist/hooks/useConfirm.js +24 -0
- package/dist/hooks/useConfirm.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- 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 @@
|
|
|
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 @@
|
|
|
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,8 @@ 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';
|
|
7
|
+
import { type TeleportContextValue } from './TeleportContext';
|
|
6
8
|
import { type TextInputContextValue } from './TextInputContext';
|
|
7
9
|
import { type UsersContextValue } from './UsersContext';
|
|
8
10
|
import { type WorldEventContextValue } from './WorldEventContext';
|
|
@@ -48,6 +50,16 @@ interface Props {
|
|
|
48
50
|
* 指定しない場合はデフォルト実装(ローカルstate)が使用される
|
|
49
51
|
*/
|
|
50
52
|
spawnPointImplementation?: SpawnPointContextValue;
|
|
53
|
+
/**
|
|
54
|
+
* 確認モーダルの実装(オプション)
|
|
55
|
+
* 指定しない場合はデフォルト実装(window.confirm)が使用される
|
|
56
|
+
*/
|
|
57
|
+
confirmImplementation?: ConfirmContextValue;
|
|
58
|
+
/**
|
|
59
|
+
* テレポート機能の実装(オプション)
|
|
60
|
+
* 指定しない場合はデフォルト実装(console.log)が使用される
|
|
61
|
+
*/
|
|
62
|
+
teleportImplementation?: TeleportContextValue;
|
|
51
63
|
/**
|
|
52
64
|
* テキスト入力の実装(オプション)
|
|
53
65
|
* 指定しない場合はデフォルト実装(ブラウザのprompt)が使用される
|
|
@@ -70,7 +82,7 @@ interface Props {
|
|
|
70
82
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
71
83
|
* 必要な情報を注入するために使用
|
|
72
84
|
*/
|
|
73
|
-
export declare const XRiftProvider: ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, 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;
|
|
74
86
|
/**
|
|
75
87
|
* XRift ワールドの情報を取得するhook
|
|
76
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,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,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,
|
|
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,8 @@ 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';
|
|
7
|
+
import { TeleportProvider, createDefaultTeleportImplementation, } from './TeleportContext';
|
|
6
8
|
import { TextInputProvider, createDefaultTextInputImplementation, } from './TextInputContext';
|
|
7
9
|
import { UsersProvider } from './UsersContext';
|
|
8
10
|
import { WorldEventProvider, createDefaultWorldEventImplementation, } from './WorldEventContext';
|
|
@@ -24,13 +26,17 @@ export const XRiftContext = createContext(null);
|
|
|
24
26
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
25
27
|
* 必要な情報を注入するために使用
|
|
26
28
|
*/
|
|
27
|
-
export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, textInputImplementation, usersImplementation, worldEventImplementation, children, }) => {
|
|
29
|
+
export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldEventImplementation, children, }) => {
|
|
28
30
|
// インタラクト可能なオブジェクトの管理
|
|
29
31
|
const [interactableObjects] = useState(() => new Set());
|
|
30
32
|
// 画面共有の実装(指定がない場合はデフォルト実装を使用)
|
|
31
33
|
const screenShareImpl = useMemo(() => screenShareImplementation ?? createDefaultScreenShareImplementation(), [screenShareImplementation]);
|
|
32
34
|
// テキスト入力の実装(指定がない場合はデフォルト実装を使用)
|
|
33
35
|
const textInputImpl = useMemo(() => textInputImplementation ?? createDefaultTextInputImplementation(), [textInputImplementation]);
|
|
36
|
+
// 確認モーダルの実装(指定がない場合はデフォルト実装を使用)
|
|
37
|
+
const confirmImpl = useMemo(() => confirmImplementation ?? createDefaultConfirmImplementation(), [confirmImplementation]);
|
|
38
|
+
// テレポートの実装(指定がない場合はデフォルト実装を使用)
|
|
39
|
+
const teleportImpl = useMemo(() => teleportImplementation ?? createDefaultTeleportImplementation(), [teleportImplementation]);
|
|
34
40
|
// ワールドイベントの実装(指定がない場合はデフォルト実装を使用)
|
|
35
41
|
const worldEventImpl = useMemo(() => worldEventImplementation ?? createDefaultWorldEventImplementation(), [worldEventImplementation]);
|
|
36
42
|
// オブジェクトの登録
|
|
@@ -46,7 +52,7 @@ export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShar
|
|
|
46
52
|
interactableObjects,
|
|
47
53
|
registerInteractable,
|
|
48
54
|
unregisterInteractable,
|
|
49
|
-
}, 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: 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 }) }) }) }) }) }) }) }) }));
|
|
50
56
|
};
|
|
51
57
|
/**
|
|
52
58
|
* XRift ワールドの情報を取得するhook
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEjG,OAAO,EAAE,qBAAqB,EAAkC,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAgC,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,kBAAkB,EAA+B,MAAM,qBAAqB,CAAA;AACrF,OAAO,EACL,iBAAiB,EACjB,oCAAoC,GAErC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,aAAa,EAA0B,MAAM,gBAAgB,CAAA;AACtE,OAAO,EACL,kBAAkB,EAClB,qCAAqC,GAEtC,MAAM,qBAAqB,CAAA;AAE5B,sBAAsB;AACtB,MAAM,sCAAsC,GAAG,GAA4B,EAAE,CAAC,CAAC;IAC7E,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC;IAC5E,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC;IAC1E,eAAe,EAAE,KAAK;CACvB,CAAC,CAAA;AA2BF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAA;
|
|
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,8 @@ 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';
|
|
8
|
+
export { TeleportContext, TeleportProvider, useTeleportContext, createDefaultTeleportImplementation, type TeleportContextValue, type TeleportDestination, } from './contexts/TeleportContext';
|
|
7
9
|
export { WorldEventContext, WorldEventProvider, useWorldEventContext, createDefaultWorldEventImplementation, type WorldEventContextValue, } from './contexts/WorldEventContext';
|
|
8
10
|
export { Interactable, type InteractableProps, } from './components/Interactable';
|
|
9
11
|
export { Mirror, type MirrorProps } from './components/Mirror';
|
|
@@ -21,6 +23,8 @@ export { EntryLogBoard, type EntryLogBoardProps, } from './components/EntryLogBo
|
|
|
21
23
|
export { type PhysicsConfig } from './components/DevEnvironment/types';
|
|
22
24
|
export { useInstanceState } from './hooks/useInstanceState';
|
|
23
25
|
export { useSpawnPoint } from './hooks/useSpawnPoint';
|
|
26
|
+
export { useConfirm } from './hooks/useConfirm';
|
|
27
|
+
export { useTeleport } from './hooks/useTeleport';
|
|
24
28
|
export { useWebAudioVolume } from './hooks/useWebAudioVolume';
|
|
25
29
|
export { useWorldEvent } from './hooks/useWorldEvent';
|
|
26
30
|
export { LAYERS, type LayerName, type LayerNumber } from './constants/layers';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,UAAU,IAAI,cAAc,EACjC,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,KAAK,IAAI,EACT,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,oCAAoC,EACpC,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qCAAqC,EACrC,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,SAAS,EACT,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,GAAG,GACT,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGrD,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAG7E,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAA"}
|
|
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,8 @@ 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';
|
|
9
|
+
export { TeleportContext, TeleportProvider, useTeleportContext, createDefaultTeleportImplementation, } from './contexts/TeleportContext';
|
|
8
10
|
export { WorldEventContext, WorldEventProvider, useWorldEventContext, createDefaultWorldEventImplementation, } from './contexts/WorldEventContext';
|
|
9
11
|
// Components
|
|
10
12
|
export { Interactable, } from './components/Interactable';
|
|
@@ -23,6 +25,8 @@ export { EntryLogBoard, } from './components/EntryLogBoard';
|
|
|
23
25
|
// Hooks
|
|
24
26
|
export { useInstanceState } from './hooks/useInstanceState';
|
|
25
27
|
export { useSpawnPoint } from './hooks/useSpawnPoint';
|
|
28
|
+
export { useConfirm } from './hooks/useConfirm';
|
|
29
|
+
export { useTeleport } from './hooks/useTeleport';
|
|
26
30
|
export { useWebAudioVolume } from './hooks/useWebAudioVolume';
|
|
27
31
|
export { useWorldEvent } from './hooks/useWorldEvent';
|
|
28
32
|
// Constants
|
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,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,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"}
|