@xrift/world-components 0.10.3 → 0.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Interactable/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAA;AAGnG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,KAAK,CAgHlC,CAAA;AAED,YAAY,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Interactable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAA;AAGlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,KAAK,CAqDlC,CAAA;AAED,YAAY,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,SAAS,CAAA"}
@@ -1,77 +1,42 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Outlines } from '@react-three/drei';
3
- import { Children, cloneElement, isValidElement, useEffect, useMemo, useRef } from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from 'react';
4
3
  import { useXRift } from '../../contexts/XRiftContext';
5
4
  const INTERACTABLE_LAYER = 10;
6
5
  export const Interactable = ({ id, type = 'button', onInteract, interactionText, enabled = true, children, }) => {
7
- const { currentTarget, registerInteractable, unregisterInteractable } = useXRift();
6
+ const { registerInteractable, unregisterInteractable } = useXRift();
8
7
  const groupRef = useRef(null);
9
- // userDataにインタラクション情報を設定 & レイヤー設定 & オブジェクト登録
8
+ // レイヤー設定 & オブジェクト登録(マウント時のみ)
10
9
  useEffect(() => {
11
10
  const object = groupRef.current;
12
11
  if (!object)
13
12
  return;
14
- // userDataにインタラクション情報を設定
15
- const interactableData = {
16
- id,
17
- type,
18
- onInteract,
19
- interactionText,
20
- enabled,
21
- };
22
- Object.assign(object.userData, interactableData);
23
13
  // レイヤーを設定(レイキャスト最適化のため)
24
14
  object.traverse((child) => {
25
15
  child.layers.enable(INTERACTABLE_LAYER);
26
16
  });
27
17
  // インタラクト可能オブジェクトとして登録
28
18
  registerInteractable(object);
29
- // クリーンアップ: userDataからインタラクション情報を削除
19
+ // クリーンアップ
30
20
  return () => {
31
- // 登録解除
32
21
  unregisterInteractable(object);
33
- if (object.userData) {
34
- delete object.userData.id;
35
- delete object.userData.type;
36
- delete object.userData.onInteract;
37
- delete object.userData.interactionText;
38
- delete object.userData.enabled;
39
- }
40
- // レイヤーを無効化
41
22
  object.traverse((child) => {
42
23
  child.layers.disable(INTERACTABLE_LAYER);
43
24
  });
44
25
  };
45
- }, [id, type, onInteract, interactionText, enabled, registerInteractable, unregisterInteractable]);
46
- // 現在のターゲットかどうかで視覚的フィードバックを提供
47
- const isTargeted = currentTarget !== null && currentTarget.uuid === groupRef.current?.uuid;
48
- // 再帰的に子要素を探索して、すべての<mesh>に<Outlines>を追加する関数
49
- // useMemoを使用して、isTargetedとenabledが変更された時のみ再計算する
50
- const childrenWithOutlines = useMemo(() => {
51
- const addOutlinesToMeshes = (child) => {
52
- if (!isValidElement(child))
53
- return child;
54
- // 子要素のtypeをチェック(meshかどうか)
55
- const childType = child.type;
56
- const isMesh = typeof childType === 'string' && childType === 'mesh';
57
- // meshの場合、Outlinesを子要素として追加
58
- if (isMesh) {
59
- return cloneElement(child, {
60
- children: (_jsxs(_Fragment, { children: [child.props.children, isTargeted && enabled && (_jsx(Outlines, { thickness: 5, color: "#4dabf7", screenspace: false, opacity: 1, transparent: false, angle: Math.PI }))] })),
61
- });
62
- }
63
- // mesh以外の場合、子要素を再帰的に処理
64
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
- const grandChildren = child.props.children;
66
- if (grandChildren) {
67
- return cloneElement(child, {
68
- children: Children.map(grandChildren, (grandChild) => addOutlinesToMeshes(grandChild)),
69
- });
70
- }
71
- return child;
72
- };
73
- return Children.map(children, (child) => addOutlinesToMeshes(child));
74
- }, [children, isTargeted, enabled]);
75
- return (_jsx("group", { ref: groupRef, children: childrenWithOutlines }));
26
+ }, [registerInteractable, unregisterInteractable]);
27
+ // userData の更新(props が変わった時)
28
+ useEffect(() => {
29
+ const object = groupRef.current;
30
+ if (!object)
31
+ return;
32
+ Object.assign(object.userData, {
33
+ id,
34
+ type,
35
+ onInteract,
36
+ interactionText,
37
+ enabled,
38
+ });
39
+ }, [id, type, onInteract, interactionText, enabled]);
40
+ return (_jsx("group", { ref: groupRef, children: children }));
76
41
  };
77
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Interactable/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Interactable/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAW,MAAM,OAAO,CAAA;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAGtD,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAc,CAAC,EACtC,EAAE,EACF,IAAI,GAAG,QAAQ,EACf,UAAU,EACV,eAAe,EACf,OAAO,GAAG,IAAI,EACd,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,GAAG,QAAQ,EAAE,CAAA;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAA;IAEpC,6BAA6B;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,wBAAwB;QACxB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,sBAAsB;QACtB,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAE5B,UAAU;QACV,OAAO,GAAG,EAAE;YACV,sBAAsB,CAAC,MAAM,CAAC,CAAA;YAE9B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;YAC1C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAElD,6BAA6B;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,EAAE;YACF,IAAI;YACJ,UAAU;YACV,eAAe;YACf,OAAO;SACR,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;IAEpD,OAAO,CACL,gBAAO,GAAG,EAAE,QAAQ,YACjB,QAAQ,GACH,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,wBAAgB,MAAM,CAAC,EACrB,QAAuB,EACvB,QAAoB,EACpB,IAAa,EACb,KAAgB,EAChB,iBAAuB,GACxB,EAAE,WAAW,2CAsCb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,wBAAgB,MAAM,CAAC,EACrB,QAAuB,EACvB,QAAoB,EACpB,IAAa,EACb,KAAgB,EAChB,iBAAuB,GACxB,EAAE,WAAW,2CAqDb"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useThree } from '@react-three/fiber';
2
+ import { useFrame, useThree } from '@react-three/fiber';
3
3
  import { useEffect, useRef } from 'react';
4
4
  import { PlaneGeometry } from 'three';
5
5
  import { Reflector } from 'three/addons/objects/Reflector.js';
@@ -34,6 +34,20 @@ export function Mirror({ position = [0, 2.5, -9], rotation = [0, 0, 0], size = [
34
34
  reflectorRef.current = null;
35
35
  };
36
36
  }, [size, color, textureResolution, gl]);
37
+ // Reflectorの内部カメラ(virtualCamera)の全レイヤーを有効化
38
+ // VRMFirstPersonのレイヤー設定により、メインカメラではThirdPersonOnlyレイヤー(頭部)が
39
+ // 非表示になっているが、鏡には全身を映す必要があるため
40
+ // onBeforeRenderでメインカメラの設定がコピーされるため、毎フレーム設定が必要
41
+ useFrame(() => {
42
+ const reflector = reflectorRef.current;
43
+ if (!reflector)
44
+ return;
45
+ // Reflectorの内部カメラにアクセス(型定義にないためanyでキャスト)
46
+ const virtualCamera = reflector.camera;
47
+ if (virtualCamera) {
48
+ virtualCamera.layers.enableAll();
49
+ }
50
+ });
37
51
  return _jsx("group", { ref: groupRef, position: position, rotation: rotation });
38
52
  }
39
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAS,aAAa,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAK7D,MAAM,UAAU,MAAM,CAAC,EACrB,QAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EACvB,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACb,KAAK,GAAG,QAAQ,EAChB,iBAAiB,GAAG,GAAG,GACX;IACZ,MAAM,QAAQ,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAA;IACpC,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IACnD,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAA;IAEzB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAA;QACrC,IAAI,CAAC,YAAY;YAAE,OAAM;QAEzB,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpD,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAA;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAA;QAEzE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE;YACxC,QAAQ,EAAE,KAAK;YACf,YAAY;YACZ,aAAa;YACb,KAAK;YACL,WAAW,EAAE,CAAC,EAAE,kDAAkD;SACnE,CAAC,CAAA;QAEF,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/B,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC3B,YAAY,CAAC,OAAO,GAAG,SAAS,CAAA;QAEhC,OAAO,GAAG,EAAE;YACV,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;gBAC9B,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC9B,SAAS,CAAC,OAAO,EAAE,EAAE,CAAA;YACvB,CAAC;YACD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;QAC7B,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAA;IAExC,OAAO,gBAAO,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAA;AACzE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"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"}
@@ -8,11 +8,6 @@ export interface XRiftContextValue {
8
8
  * 例: 'https://assets.xrift.net/users/xxx/worlds/yyy/hash123/'
9
9
  */
10
10
  baseUrl: string;
11
- /**
12
- * 現在レイキャストでターゲットされているオブジェクト
13
- * xrift-frontend側のRaycastDetectorが設定する
14
- */
15
- currentTarget: Object3D | null;
16
11
  /**
17
12
  * インタラクト可能なオブジェクトのセット
18
13
  * レイキャストのパフォーマンス最適化のために使用
@@ -34,7 +29,6 @@ export interface XRiftContextValue {
34
29
  export declare const XRiftContext: import("react").Context<XRiftContextValue | null>;
35
30
  interface Props {
36
31
  baseUrl: string;
37
- currentTarget?: Object3D | null;
38
32
  /**
39
33
  * インスタンス状態管理の実装(オプション)
40
34
  * 指定しない場合はデフォルト実装(ローカルstate)が使用される
@@ -52,7 +46,7 @@ interface Props {
52
46
  * Module Federationで動的にロードされたワールドコンポーネントに
53
47
  * 必要な情報を注入するために使用
54
48
  */
55
- export declare const XRiftProvider: ({ baseUrl, currentTarget, instanceStateImplementation, screenShareImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
49
+ export declare const XRiftProvider: ({ baseUrl, instanceStateImplementation, screenShareImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
56
50
  /**
57
51
  * XRift ワールドの情報を取得するhook
58
52
  * ワールドプロジェクト側でアセットの相対パスを絶対パスに変換する際に使用
@@ -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;AAUxF,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC9B;;;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,aAAa,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC/B;;;OAGG;IACH,2BAA2B,CAAC,EAAE,yBAAyB,CAAA;IACvD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,uBAAuB,CAAA;IACnD,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,+FAM3B,KAAK,4CAqCP,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;AAUxF,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,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,gFAK3B,KAAK,4CAoCP,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAQ3B,CAAA"}
@@ -19,7 +19,7 @@ export const XRiftContext = createContext(null);
19
19
  * Module Federationで動的にロードされたワールドコンポーネントに
20
20
  * 必要な情報を注入するために使用
21
21
  */
22
- export const XRiftProvider = ({ baseUrl, currentTarget = null, instanceStateImplementation, screenShareImplementation, children, }) => {
22
+ export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShareImplementation, children, }) => {
23
23
  // インタラクト可能なオブジェクトの管理
24
24
  const [interactableObjects] = useState(() => new Set());
25
25
  // 画面共有の実装(指定がない場合はデフォルト実装を使用)
@@ -34,7 +34,6 @@ export const XRiftProvider = ({ baseUrl, currentTarget = null, instanceStateImpl
34
34
  }, [interactableObjects]);
35
35
  return (_jsx(XRiftContext.Provider, { value: {
36
36
  baseUrl,
37
- currentTarget,
38
37
  interactableObjects,
39
38
  registerInteractable,
40
39
  unregisterInteractable,
@@ -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;AAExF,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;CAC3E,CAAC,CAAA;AAgCF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAA;AAkBzE;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,EACP,aAAa,GAAG,IAAI,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,QAAQ,GACF,EAAE,EAAE;IACV,qBAAqB;IACrB,MAAM,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAY,CAAC,CAAA;IAEjE,8BAA8B;IAC9B,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,yBAAyB,IAAI,sCAAsC,EAAE,EAC3E,CAAC,yBAAyB,CAAC,CAC5B,CAAA;IAED,YAAY;IACZ,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,MAAgB,EAAE,EAAE;QAC5D,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAEzB,cAAc;IACd,MAAM,sBAAsB,GAAG,WAAW,CAAC,CAAC,MAAgB,EAAE,EAAE;QAC9D,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAEzB,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IACpB,KAAK,EAAE;YACL,OAAO;YACP,aAAa;YACb,mBAAmB;YACnB,oBAAoB;YACpB,sBAAsB;SACvB,YAED,KAAC,mBAAmB,IAAC,KAAK,EAAE,eAAe,YACzC,KAAC,qBAAqB,IAAC,cAAc,EAAE,2BAA2B,YAC/D,QAAQ,GACa,GACJ,GACA,CACzB,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
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;AAExF,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;CAC3E,CAAC,CAAA;AA2BF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAA;AAiBzE;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,EACP,2BAA2B,EAC3B,yBAAyB,EACzB,QAAQ,GACF,EAAE,EAAE;IACV,qBAAqB;IACrB,MAAM,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAY,CAAC,CAAA;IAEjE,8BAA8B;IAC9B,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,yBAAyB,IAAI,sCAAsC,EAAE,EAC3E,CAAC,yBAAyB,CAAC,CAC5B,CAAA;IAED,YAAY;IACZ,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,MAAgB,EAAE,EAAE;QAC5D,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAEzB,cAAc;IACd,MAAM,sBAAsB,GAAG,WAAW,CAAC,CAAC,MAAgB,EAAE,EAAE;QAC9D,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAEzB,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IACpB,KAAK,EAAE;YACL,OAAO;YACP,mBAAmB;YACnB,oBAAoB;YACpB,sBAAsB;SACvB,YAED,KAAC,mBAAmB,IAAC,KAAK,EAAE,eAAe,YACzC,KAAC,qBAAqB,IAAC,cAAc,EAAE,2BAA2B,YAC/D,QAAQ,GACa,GACJ,GACA,CACzB,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrift/world-components",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Shared components and utilities for Xrift worlds",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",