@thewhateverapp/tile-sdk 0.17.0 → 0.17.2
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/react/ExcaliburGame.d.ts +1 -1
- package/dist/react/ExcaliburGame.d.ts.map +1 -1
- package/dist/react/ExcaliburGame.js +2 -2
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -0
- package/dist/react/useViewport.d.ts +14 -0
- package/dist/react/useViewport.d.ts.map +1 -0
- package/dist/react/useViewport.js +69 -0
- package/package.json +1 -1
|
@@ -87,7 +87,7 @@ export interface ExcaliburGameProps {
|
|
|
87
87
|
height?: number;
|
|
88
88
|
/** Background color (CSS color string, default: black) */
|
|
89
89
|
backgroundColor?: string;
|
|
90
|
-
/** Display mode (default:
|
|
90
|
+
/** Display mode (default: FitContainerAndFill - scales to fill container) */
|
|
91
91
|
displayMode?: DisplayMode;
|
|
92
92
|
/** Game options */
|
|
93
93
|
options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExcaliburGame.d.ts","sourceRoot":"","sources":["../../src/react/ExcaliburGame.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ExcaliburGame.d.ts","sourceRoot":"","sources":["../../src/react/ExcaliburGame.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,WAAW,EAAoB,KAAK,KAAK,EAAE,MAAM,WAAW,CAAC;AAI9E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAGvF,OAAO,EACL,MAAM,EACN,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,SAAS,EACT,MAAM,EACN,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,cAAc,EACd,aAAa,GACd,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,WAAW,EACX,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,GAAG,GACJ,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,KAAK,EACL,cAAc,EACd,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,IAAI,EACJ,aAAa,GACd,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,eAAe,EACf,WAAW,GACZ,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,OAAO,EACP,IAAI,EACJ,aAAa,EACb,YAAY,GACb,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,KAAK,EACL,KAAK,GACN,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,GAAG,EACH,GAAG,EACH,MAAM,EACN,KAAK,EACL,SAAS,EACT,SAAS,GACV,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EACL,cAAc,EACd,eAAe,EACf,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,eAAO,MAAM,WAAW,MAAM,CAAC;AAY/B;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAMzC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAGvC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,OAAO,GAAE,OAAc,QAexB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mBAAmB;IACnB,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;IACF,6BAA6B;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAkB,EAClB,MAAoB,EACpB,eAA2B,EAC3B,WAA6C,EAC7C,OAAY,EACZ,MAAc,EACd,OAAO,GACR,EAAE,kBAAkB,qBA+FpB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,YAAY,EAAE,CAAC,GACd,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CASzC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,oDAwB3B"}
|
|
@@ -124,7 +124,7 @@ export function useGameLoop(callback, enabled = true) {
|
|
|
124
124
|
* Creates an Excalibur Engine and provides it via context.
|
|
125
125
|
* Children can use useEngine() to access the engine and add actors/entities.
|
|
126
126
|
*/
|
|
127
|
-
export function ExcaliburGame({ children, width = TILE_WIDTH, height = TILE_HEIGHT, backgroundColor = '#000000', displayMode = DisplayMode.
|
|
127
|
+
export function ExcaliburGame({ children, width = TILE_WIDTH, height = TILE_HEIGHT, backgroundColor = '#000000', displayMode = DisplayMode.FitContainerAndFill, options = {}, paused = false, onMount, }) {
|
|
128
128
|
const containerRef = useRef(null);
|
|
129
129
|
const engineRef = useRef(null);
|
|
130
130
|
const updateCallbacksRef = useRef(new Set());
|
|
@@ -201,7 +201,7 @@ export function ExcaliburGame({ children, width = TILE_WIDTH, height = TILE_HEIG
|
|
|
201
201
|
};
|
|
202
202
|
}, []),
|
|
203
203
|
};
|
|
204
|
-
return (React.createElement("div", { ref: containerRef, style: { width, height, overflow: 'hidden' } }, isReady && (React.createElement(ExcaliburContext.Provider, { value: contextValue }, children))));
|
|
204
|
+
return (React.createElement("div", { ref: containerRef, style: { width: '100%', height: '100%', overflow: 'hidden' } }, isReady && (React.createElement(ExcaliburContext.Provider, { value: contextValue }, children))));
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
207
207
|
* useGameState - Helper for managing game state with refs
|
package/dist/react/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { TileProvider, TileContext } from './TileProvider.js';
|
|
|
2
2
|
export type { TileContextValue } from './TileProvider.js';
|
|
3
3
|
export { useTile } from './useTile.js';
|
|
4
4
|
export { useKeyboard } from './useKeyboard.js';
|
|
5
|
+
export { useViewport } from './useViewport.js';
|
|
5
6
|
export { TileContainer } from './TileContainer.js';
|
|
6
7
|
export { withTile } from './withTile.js';
|
|
7
8
|
export * from './overlay/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC,cAAc,oBAAoB,CAAC"}
|
package/dist/react/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export { TileProvider, TileContext } from './TileProvider.js';
|
|
3
3
|
export { useTile } from './useTile.js';
|
|
4
4
|
export { useKeyboard } from './useKeyboard.js';
|
|
5
|
+
export { useViewport } from './useViewport.js';
|
|
5
6
|
export { TileContainer } from './TileContainer.js';
|
|
6
7
|
export { withTile } from './withTile.js';
|
|
7
8
|
// TileInitializer removed - router should be injected directly into TileProvider
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface SafeAreaInsets {
|
|
2
|
+
top: number;
|
|
3
|
+
right: number;
|
|
4
|
+
bottom: number;
|
|
5
|
+
left: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ViewportInfo {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
safeAreaInsets: SafeAreaInsets;
|
|
11
|
+
isVisualViewport: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function useViewport(): ViewportInfo;
|
|
14
|
+
//# sourceMappingURL=useViewport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useViewport.d.ts","sourceRoot":"","sources":["../../src/react/useViewport.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAyDD,wBAAgB,WAAW,IAAI,YAAY,CAwB1C"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
const defaultInsets = { top: 0, right: 0, bottom: 0, left: 0 };
|
|
3
|
+
function readSafeAreaInsets() {
|
|
4
|
+
if (typeof window === 'undefined' || typeof document === 'undefined') {
|
|
5
|
+
return defaultInsets;
|
|
6
|
+
}
|
|
7
|
+
if (!document.body) {
|
|
8
|
+
return defaultInsets;
|
|
9
|
+
}
|
|
10
|
+
const probe = document.createElement('div');
|
|
11
|
+
probe.style.cssText = [
|
|
12
|
+
'position:fixed',
|
|
13
|
+
'top:0',
|
|
14
|
+
'left:0',
|
|
15
|
+
'right:0',
|
|
16
|
+
'bottom:0',
|
|
17
|
+
'padding-top:env(safe-area-inset-top)',
|
|
18
|
+
'padding-right:env(safe-area-inset-right)',
|
|
19
|
+
'padding-bottom:env(safe-area-inset-bottom)',
|
|
20
|
+
'padding-left:env(safe-area-inset-left)',
|
|
21
|
+
'pointer-events:none',
|
|
22
|
+
'visibility:hidden'
|
|
23
|
+
].join(';');
|
|
24
|
+
document.body.appendChild(probe);
|
|
25
|
+
const style = window.getComputedStyle(probe);
|
|
26
|
+
const insets = {
|
|
27
|
+
top: Number.parseFloat(style.paddingTop) || 0,
|
|
28
|
+
right: Number.parseFloat(style.paddingRight) || 0,
|
|
29
|
+
bottom: Number.parseFloat(style.paddingBottom) || 0,
|
|
30
|
+
left: Number.parseFloat(style.paddingLeft) || 0,
|
|
31
|
+
};
|
|
32
|
+
document.body.removeChild(probe);
|
|
33
|
+
return insets;
|
|
34
|
+
}
|
|
35
|
+
function getViewportInfo() {
|
|
36
|
+
if (typeof window === 'undefined') {
|
|
37
|
+
return { width: 0, height: 0, safeAreaInsets: defaultInsets, isVisualViewport: false };
|
|
38
|
+
}
|
|
39
|
+
const visual = window.visualViewport;
|
|
40
|
+
const width = visual?.width ?? window.innerWidth;
|
|
41
|
+
const height = visual?.height ?? window.innerHeight;
|
|
42
|
+
return {
|
|
43
|
+
width,
|
|
44
|
+
height,
|
|
45
|
+
safeAreaInsets: readSafeAreaInsets(),
|
|
46
|
+
isVisualViewport: Boolean(visual),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function useViewport() {
|
|
50
|
+
const [info, setInfo] = useState(() => getViewportInfo());
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (typeof window === 'undefined')
|
|
53
|
+
return;
|
|
54
|
+
const update = () => setInfo(getViewportInfo());
|
|
55
|
+
const visual = window.visualViewport;
|
|
56
|
+
update();
|
|
57
|
+
window.addEventListener('resize', update);
|
|
58
|
+
window.addEventListener('orientationchange', update);
|
|
59
|
+
visual?.addEventListener('resize', update);
|
|
60
|
+
visual?.addEventListener('scroll', update);
|
|
61
|
+
return () => {
|
|
62
|
+
window.removeEventListener('resize', update);
|
|
63
|
+
window.removeEventListener('orientationchange', update);
|
|
64
|
+
visual?.removeEventListener('resize', update);
|
|
65
|
+
visual?.removeEventListener('scroll', update);
|
|
66
|
+
};
|
|
67
|
+
}, []);
|
|
68
|
+
return info;
|
|
69
|
+
}
|