@gamepark/react-game 7.3.2 → 7.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/components/GameProvider/GameProvider.js +2 -3
  2. package/dist/components/GameProvider/GameProvider.js.map +1 -1
  3. package/dist/components/Header/HeaderText.d.ts +6 -1
  4. package/dist/components/Header/HeaderText.js +14 -5
  5. package/dist/components/Header/HeaderText.js.map +1 -1
  6. package/dist/components/JournalTabs/JournalTabs.js +1 -1
  7. package/dist/components/JournalTabs/JournalTabs.js.map +1 -1
  8. package/dist/components/LoadingScreen/LoadingScreen.js +5 -0
  9. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  10. package/dist/components/material/DraggableMaterial.d.ts +12 -2
  11. package/dist/components/material/DraggableMaterial.js +47 -57
  12. package/dist/components/material/DraggableMaterial.js.map +1 -1
  13. package/dist/components/material/GameTable/DynamicItemsDisplay.js +53 -8
  14. package/dist/components/material/GameTable/DynamicItemsDisplay.js.map +1 -1
  15. package/dist/components/material/GameTable/GameMaterialDisplay.js +5 -2
  16. package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
  17. package/dist/components/material/GameTable/GameTable.d.ts +1 -0
  18. package/dist/components/material/GameTable/GameTable.js +49 -18
  19. package/dist/components/material/GameTable/GameTable.js.map +1 -1
  20. package/dist/components/material/GameTable/GameTableNavigation.js +7 -0
  21. package/dist/components/material/GameTable/GameTableNavigation.js.map +1 -1
  22. package/dist/components/material/GameTable/ItemDisplay.js +4 -4
  23. package/dist/components/material/GameTable/ItemDisplay.js.map +1 -1
  24. package/dist/components/material/GameTable/StaticItemsDisplay.js +21 -6
  25. package/dist/components/material/GameTable/StaticItemsDisplay.js.map +1 -1
  26. package/dist/components/material/GameTable/focus/FocusProvider.js +11 -5
  27. package/dist/components/material/GameTable/focus/FocusProvider.js.map +1 -1
  28. package/dist/components/material/GameTable/focus/NoZoomFocusProvider.js +2 -2
  29. package/dist/components/material/GameTable/focus/NoZoomFocusProvider.js.map +1 -1
  30. package/dist/components/material/GameTable/focus/index.d.ts +1 -0
  31. package/dist/components/material/GameTable/focus/index.js +1 -0
  32. package/dist/components/material/GameTable/focus/index.js.map +1 -1
  33. package/dist/components/material/GameTable/index.d.ts +2 -0
  34. package/dist/components/material/GameTable/index.js +2 -0
  35. package/dist/components/material/GameTable/index.js.map +1 -1
  36. package/dist/components/material/MaterialDescription.d.ts +1 -1
  37. package/dist/components/material/MaterialDescription.js +10 -13
  38. package/dist/components/material/MaterialDescription.js.map +1 -1
  39. package/dist/components/material/animations/AnimationBuilder.d.ts +160 -0
  40. package/dist/components/material/animations/AnimationBuilder.js +287 -0
  41. package/dist/components/material/animations/AnimationBuilder.js.map +1 -0
  42. package/dist/components/material/animations/CreateItemAnimations.d.ts +4 -2
  43. package/dist/components/material/animations/CreateItemAnimations.js +91 -10
  44. package/dist/components/material/animations/CreateItemAnimations.js.map +1 -1
  45. package/dist/components/material/animations/DeleteItemAnimations.d.ts +4 -8
  46. package/dist/components/material/animations/DeleteItemAnimations.js +24 -14
  47. package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -1
  48. package/dist/components/material/animations/DeleteItemAtOnceAnimations.d.ts +3 -1
  49. package/dist/components/material/animations/DeleteItemAtOnceAnimations.js +16 -4
  50. package/dist/components/material/animations/DeleteItemAtOnceAnimations.js.map +1 -1
  51. package/dist/components/material/animations/ItemAnimations.d.ts +46 -1
  52. package/dist/components/material/animations/ItemAnimations.js +155 -1
  53. package/dist/components/material/animations/ItemAnimations.js.map +1 -1
  54. package/dist/components/material/animations/MaterialAnimations.d.ts +2 -1
  55. package/dist/components/material/animations/MaterialAnimations.js +6 -6
  56. package/dist/components/material/animations/MaterialAnimations.js.map +1 -1
  57. package/dist/components/material/animations/MaterialGameAnimations.d.ts +94 -1
  58. package/dist/components/material/animations/MaterialGameAnimations.js +150 -2
  59. package/dist/components/material/animations/MaterialGameAnimations.js.map +1 -1
  60. package/dist/components/material/animations/MoveItemAnimations.d.ts +3 -1
  61. package/dist/components/material/animations/MoveItemAnimations.js +51 -7
  62. package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
  63. package/dist/components/material/animations/MoveItemAtOnceAnimations.d.ts +5 -2
  64. package/dist/components/material/animations/MoveItemAtOnceAnimations.js +57 -5
  65. package/dist/components/material/animations/MoveItemAtOnceAnimations.js.map +1 -1
  66. package/dist/components/material/animations/Trajectory.d.ts +132 -0
  67. package/dist/components/material/animations/Trajectory.js +87 -0
  68. package/dist/components/material/animations/Trajectory.js.map +1 -0
  69. package/dist/components/material/animations/index.d.ts +3 -0
  70. package/dist/components/material/animations/index.js +3 -0
  71. package/dist/components/material/animations/index.js.map +1 -1
  72. package/dist/hooks/index.d.ts +1 -0
  73. package/dist/hooks/index.js +1 -0
  74. package/dist/hooks/index.js.map +1 -1
  75. package/dist/hooks/useLegalMoves.js +2 -1
  76. package/dist/hooks/useLegalMoves.js.map +1 -1
  77. package/dist/hooks/useMaterialContextRef.d.ts +10 -0
  78. package/dist/hooks/useMaterialContextRef.js +12 -0
  79. package/dist/hooks/useMaterialContextRef.js.map +1 -0
  80. package/dist/hooks/usePlayerName.js +1 -1
  81. package/dist/hooks/usePlayerName.js.map +1 -1
  82. package/dist/hooks/useUndo.js +12 -3
  83. package/dist/hooks/useUndo.js.map +1 -1
  84. package/dist/locators/DeckLocator.d.ts +3 -1
  85. package/dist/locators/DeckLocator.js +6 -0
  86. package/dist/locators/DeckLocator.js.map +1 -1
  87. package/dist/locators/HandLocator.d.ts +1 -0
  88. package/dist/locators/HandLocator.js +3 -0
  89. package/dist/locators/HandLocator.js.map +1 -1
  90. package/dist/locators/ListLocator.d.ts +1 -0
  91. package/dist/locators/ListLocator.js +3 -0
  92. package/dist/locators/ListLocator.js.map +1 -1
  93. package/dist/locators/Locator.d.ts +39 -0
  94. package/dist/locators/Locator.js +74 -1
  95. package/dist/locators/Locator.js.map +1 -1
  96. package/dist/locators/PileLocator.d.ts +1 -0
  97. package/dist/locators/PileLocator.js +3 -0
  98. package/dist/locators/PileLocator.js.map +1 -1
  99. package/dist/utilities/translation.util.js +1 -1
  100. package/dist/utilities/translation.util.js.map +1 -1
  101. package/package.json +79 -78
@@ -0,0 +1,87 @@
1
+ import { keyframes } from '@emotion/react';
2
+ /**
3
+ * Default elevation configuration (arc of 10em at 50%).
4
+ */
5
+ export const defaultElevation = {
6
+ height: 10,
7
+ peak: 0.5,
8
+ curve: 'parabolic'
9
+ };
10
+ /**
11
+ * Calculate the elevation value at a given point in time.
12
+ * @param t Progress in the animation (0-1)
13
+ * @param config Elevation configuration
14
+ * @returns Elevation in em units
15
+ */
16
+ export function calculateElevation(t, config) {
17
+ if (config === false)
18
+ return 0;
19
+ const { height, peak = 0.5, curve = 'parabolic' } = config ?? defaultElevation;
20
+ if (curve === 'linear') {
21
+ // Triangular arc
22
+ if (t <= peak) {
23
+ return height * (t / peak);
24
+ }
25
+ else {
26
+ return height * (1 - (t - peak) / (1 - peak));
27
+ }
28
+ }
29
+ // Parabolic arc (default)
30
+ // Parabola passing through (0, 0), (peak, height), (1, 0)
31
+ if (t <= peak) {
32
+ const normalized = t / peak;
33
+ return height * (1 - (1 - normalized) * (1 - normalized));
34
+ }
35
+ else {
36
+ const normalized = (t - peak) / (1 - peak);
37
+ return height * (1 - normalized * normalized);
38
+ }
39
+ }
40
+ /**
41
+ * Parse a transform string and extract x, y, z translations.
42
+ * This is used to interpolate between waypoints.
43
+ */
44
+ export function extractTranslation(transforms) {
45
+ let x = 0, y = 0, z = 0;
46
+ for (const transform of transforms) {
47
+ const translate3dMatch = transform.match(/translate3d\(\s*([-\d.]+)em\s*,\s*([-\d.]+)em\s*,\s*([-\d.]+)em\s*\)/);
48
+ if (translate3dMatch) {
49
+ x += parseFloat(translate3dMatch[1]);
50
+ y += parseFloat(translate3dMatch[2]);
51
+ z += parseFloat(translate3dMatch[3]);
52
+ continue;
53
+ }
54
+ const translateXMatch = transform.match(/translateX\(\s*([-\d.]+)em\s*\)/);
55
+ if (translateXMatch) {
56
+ x += parseFloat(translateXMatch[1]);
57
+ continue;
58
+ }
59
+ const translateYMatch = transform.match(/translateY\(\s*([-\d.]+)em\s*\)/);
60
+ if (translateYMatch) {
61
+ y += parseFloat(translateYMatch[1]);
62
+ continue;
63
+ }
64
+ const translateZMatch = transform.match(/translateZ\(\s*([-\d.]+)em\s*\)/);
65
+ if (translateZMatch) {
66
+ z += parseFloat(translateZMatch[1]);
67
+ }
68
+ }
69
+ return { x, y, z };
70
+ }
71
+ /**
72
+ * Generate simple elevation keyframes for the parent div.
73
+ * Creates a 3-keyframe arc: from (0) → peak (height) → to (0).
74
+ */
75
+ export function getElevationKeyframes(config) {
76
+ const { height, peak = 0.5 } = config;
77
+ const peakPercent = Math.round(peak * 100);
78
+ const frames = `from, to { transform: translateZ(0); } ${peakPercent}% { transform: translateZ(${height}em); }`;
79
+ return keyframes `${frames}`;
80
+ }
81
+ /**
82
+ * Interpolate between two coordinate values.
83
+ */
84
+ export function interpolateCoordinate(from, to, t) {
85
+ return from + (to - from) * t;
86
+ }
87
+ //# sourceMappingURL=Trajectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Trajectory.js","sourceRoot":"","sources":["../../../../src/components/material/animations/Trajectory.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * from './AnimationBuilder';
1
2
  export * from './CreateItemAnimations';
2
3
  export * from './DeleteItemAnimations';
3
4
  export * from './ItemAnimations';
@@ -5,4 +6,6 @@ export * from './MaterialAnimations';
5
6
  export * from './MaterialGameAnimations';
6
7
  export * from './MoveItemAnimations';
7
8
  export * from './ShuffleAnimations';
9
+ export * from './Trajectory';
8
10
  export { transformItem } from './transformItem.util';
11
+ export { toSingleRotation, toClosestRotations } from './rotations.utils';
@@ -1,3 +1,4 @@
1
+ export * from './AnimationBuilder';
1
2
  export * from './CreateItemAnimations';
2
3
  export * from './DeleteItemAnimations';
3
4
  export * from './ItemAnimations';
@@ -5,5 +6,7 @@ export * from './MaterialAnimations';
5
6
  export * from './MaterialGameAnimations';
6
7
  export * from './MoveItemAnimations';
7
8
  export * from './ShuffleAnimations';
9
+ export * from './Trajectory';
8
10
  export { transformItem } from './transformItem.util';
11
+ export { toSingleRotation, toClosestRotations } from './rotations.utils';
9
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/animations/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/animations/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -8,6 +8,7 @@ export * from './useItemLocator';
8
8
  export * from './useKeyDown';
9
9
  export * from './useLegalMoves';
10
10
  export * from './useMaterialContext';
11
+ export * from './useMaterialContextRef';
11
12
  export * from './useMaterialDescription';
12
13
  export * from './useNow';
13
14
  export * from './useNumberOfPlayers';
@@ -8,6 +8,7 @@ export * from './useItemLocator';
8
8
  export * from './useKeyDown';
9
9
  export * from './useLegalMoves';
10
10
  export * from './useMaterialContext';
11
+ export * from './useMaterialContextRef';
11
12
  export * from './useMaterialDescription';
12
13
  export * from './useNow';
13
14
  export * from './useNumberOfPlayers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA"}
@@ -1,11 +1,12 @@
1
1
  import { useGameSelector } from '@gamepark/react-client';
2
2
  import { useIsAnimatingPlayerAction } from '../components/material/utils/useIsAnimatingPlayerAction';
3
+ const EMPTY_MOVES = [];
3
4
  export function useLegalMoves(predicate) {
4
5
  const legalMoves = useGameSelector((state) => state.legalMoves);
5
6
  const gameOver = useGameSelector((state) => state.gameOver);
6
7
  const isAnimatingPlayerAction = useIsAnimatingPlayerAction();
7
8
  if (gameOver || isAnimatingPlayerAction)
8
- return [];
9
+ return EMPTY_MOVES;
9
10
  return predicate ? legalMoves.filter(predicate) : legalMoves;
10
11
  }
11
12
  export function useLegalMove(predicate) {
@@ -1 +1 @@
1
- {"version":3,"file":"useLegalMoves.js","sourceRoot":"","sources":["../../src/hooks/useLegalMoves.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AAEpG,MAAM,UAAU,aAAa,CAAa,SAAmC;IAC3E,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,uBAAuB,GAAG,0BAA0B,EAAE,CAAA;IAC5D,IAAI,QAAQ,IAAI,uBAAuB;QAAE,OAAO,EAAE,CAAA;IAClD,OAAO,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAa,SAAmC;IAC1E,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"useLegalMoves.js","sourceRoot":"","sources":["../../src/hooks/useLegalMoves.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AAEpG,MAAM,WAAW,GAAY,EAAE,CAAA;AAE/B,MAAM,UAAU,aAAa,CAAa,SAAmC;IAC3E,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,uBAAuB,GAAG,0BAA0B,EAAE,CAAA;IAC5D,IAAI,QAAQ,IAAI,uBAAuB;QAAE,OAAO,WAAW,CAAA;IAC3D,OAAO,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAa,SAAmC;IAC1E,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAChD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { RefObject } from 'react';
2
+ import { MaterialContext } from '../locators';
3
+ export declare const MaterialContextRefContext: import("react").Context<RefObject<MaterialContext>>;
4
+ /**
5
+ * Returns the MaterialContext from a stable ref. Does NOT subscribe to Redux state,
6
+ * so reading this does not trigger re-renders when game state changes.
7
+ *
8
+ * Must be used inside a MaterialContextRefContext.Provider (provided by DynamicItemsTypeDisplay or StaticItemsTypeDisplay).
9
+ */
10
+ export declare function useMaterialContextRef<P extends number = number, M extends number = number, L extends number = number>(): MaterialContext<P, M, L>;
@@ -0,0 +1,12 @@
1
+ import { createContext, useContext } from 'react';
2
+ export const MaterialContextRefContext = createContext(null);
3
+ /**
4
+ * Returns the MaterialContext from a stable ref. Does NOT subscribe to Redux state,
5
+ * so reading this does not trigger re-renders when game state changes.
6
+ *
7
+ * Must be used inside a MaterialContextRefContext.Provider (provided by DynamicItemsTypeDisplay or StaticItemsTypeDisplay).
8
+ */
9
+ export function useMaterialContextRef() {
10
+ return useContext(MaterialContextRefContext).current;
11
+ }
12
+ //# sourceMappingURL=useMaterialContextRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMaterialContextRef.js","sourceRoot":"","sources":["../../src/hooks/useMaterialContextRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAa,UAAU,EAAE,MAAM,OAAO,CAAA;AAG5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,aAAa,CAA6B,IAAK,CAAC,CAAA;AAEzF;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,UAAU,CAAC,yBAAyB,CAAC,CAAC,OAA8C,CAAA;AAC7F,CAAC"}
@@ -15,7 +15,7 @@ export function usePlayerName(playerId) {
15
15
  return name;
16
16
  if (myId === playerId)
17
17
  return me?.user?.name ?? tCommon('anonymous');
18
- if (isWithPlayerIdOptions(optionsSpec))
18
+ if (playerId !== undefined && isWithPlayerIdOptions(optionsSpec))
19
19
  return optionsSpec.players.id.valueSpec(playerId).label(t);
20
20
  return tCommon('Player {number}', { number: playerId });
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"usePlayerName.js","sourceRoot":"","sources":["../../src/hooks/usePlayerName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,UAAU,aAAa,CAAiB,QAAkB;IAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IAC7H,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,WAAW,CAAA;IACvD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,IAAI,GAAG,WAAW,EAAE,CAAA;IAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9B,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC/C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACpE,IAAI,qBAAqB,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,OAAO,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;AACzD,CAAC"}
1
+ {"version":3,"file":"usePlayerName.js","sourceRoot":"","sources":["../../src/hooks/usePlayerName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,UAAU,aAAa,CAAiB,QAAkB;IAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IAC7H,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,WAAW,CAAA;IACvD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,IAAI,GAAG,WAAW,EAAE,CAAA;IAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9B,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC/C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACpE,IAAI,QAAQ,KAAK,SAAS,IAAI,qBAAqB,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5H,OAAO,OAAO,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;AACzD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { isActionToAnimate, undoMove, useGameDispatch, useGameSelector } from '@gamepark/react-client';
2
2
  import { hasUndo } from '@gamepark/rules-api';
3
3
  import { findLastIndex } from 'es-toolkit/compat';
4
- import { useCallback, useContext } from 'react';
4
+ import { useCallback, useContext, useRef } from 'react';
5
5
  import { gameContext } from '../components';
6
6
  export const useUndo = () => {
7
7
  const actions = useGameSelector((state) => state.actions);
@@ -11,11 +11,18 @@ export const useUndo = () => {
11
11
  const Rules = useContext(gameContext)?.Rules;
12
12
  if (!Rules)
13
13
  throw new Error('Cannot useUndo outside a GameProvider');
14
+ // Use refs so that undo/canUndo callbacks have stable references
15
+ // and don't cause downstream useMemo/re-renders when actions/game change during animations
16
+ const actionsRef = useRef(actions);
17
+ actionsRef.current = actions;
18
+ const gameRef = useRef(game);
19
+ gameRef.current = game;
14
20
  const undo = useCallback((arg, options) => {
15
21
  if (typeof arg === 'string') {
16
22
  dispatch(undoMove({ actionId: arg, delayed: options?.delayed }));
17
23
  }
18
24
  else {
25
+ const actions = actionsRef.current;
19
26
  if (!actions)
20
27
  return console.error('Cannot undo before actions history is loaded');
21
28
  const actionToUndo = findLastN(actions, action => action.playerId === playerId && !action.cancelled && (typeof arg !== 'function' || arg(action.move)), typeof arg === 'number' ? arg : 1);
@@ -28,8 +35,10 @@ export const useUndo = () => {
28
35
  }
29
36
  }
30
37
  }
31
- }, [actions, playerId, dispatch]);
38
+ }, [playerId, dispatch]);
32
39
  const canUndo = useCallback((movePredicate) => {
40
+ const game = gameRef.current;
41
+ const actions = actionsRef.current;
33
42
  if (!game || !actions)
34
43
  return false;
35
44
  if (actions.some(action => action.playerId === playerId && (isActionToAnimate(action) || action.animation !== undefined)))
@@ -47,7 +56,7 @@ export const useUndo = () => {
47
56
  if (!hasUndo(rules))
48
57
  return false;
49
58
  return rules.canUndo(action, consecutiveActions);
50
- }, [game, actions, playerId, Rules]);
59
+ }, [playerId, Rules]);
51
60
  return [undo, canUndo];
52
61
  };
53
62
  function findLastN(array, predicate, n = 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"useUndo.js","sourceRoot":"","sources":["../../src/hooks/useUndo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useUndo.js","sourceRoot":"","sources":["../../src/hooks/useUndo.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { Coordinates } from '@gamepark/rules-api';
1
+ import { Coordinates, MaterialItem } from '@gamepark/rules-api';
2
+ import { ItemContext } from './Locator';
2
3
  import { ListLocator } from './ListLocator';
3
4
  /**
4
5
  * This Locator places items to form a deck of cards. A specific use-case for the {@link ListLocator}.
@@ -7,4 +8,5 @@ export declare class DeckLocator<P extends number = number, M extends number = n
7
8
  constructor(clone?: Partial<DeckLocator>);
8
9
  limit?: number | undefined;
9
10
  gap: Partial<Coordinates>;
11
+ ignore(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): boolean;
10
12
  }
@@ -9,5 +9,11 @@ export class DeckLocator extends ListLocator {
9
9
  }
10
10
  limit = 20;
11
11
  gap = { x: -0.05, y: -0.05 };
12
+ ignore(item, context) {
13
+ if (this.limit !== undefined && this.getItemIndex(item, context) < 0) {
14
+ return true;
15
+ }
16
+ return super.ignore(item, context);
17
+ }
12
18
  }
13
19
  //# sourceMappingURL=DeckLocator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeckLocator.js","sourceRoot":"","sources":["../../src/locators/DeckLocator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,WAA6F,SAAQ,WAAoB;IAEpI,YAAY,KAA4B;QACtC,KAAK,EAAE,CAAA;QACP,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,GAAI,EAAE,CAAA;IACX,GAAG,GAAyB,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;CACnD"}
1
+ {"version":3,"file":"DeckLocator.js","sourceRoot":"","sources":["../../src/locators/DeckLocator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,WAA6F,SAAQ,WAAoB;IAEpI,YAAY,KAA4B;QACtC,KAAK,EAAE,CAAA;QACP,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,GAAI,EAAE,CAAA;IACX,GAAG,GAAyB,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;IAElD,MAAM,CAAC,IAAwB,EAAE,OAA6B;QAC5D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACpC,CAAC;CACF"}
@@ -72,6 +72,7 @@ export declare class HandLocator<P extends number = number, M extends number = n
72
72
  * @returns The Z-axis position difference between 2 consecutive items in the hand. Default is 0.05cm.
73
73
  */
74
74
  getDeltaZ(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number;
75
+ getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>): number;
75
76
  /**
76
77
  * See {@link Locator.getLocationCoordinates}.
77
78
  * @param location Location to position
@@ -86,6 +86,9 @@ export class HandLocator extends Locator {
86
86
  getDeltaZ(_location, _context) {
87
87
  return this.deltaZ;
88
88
  }
89
+ getPositionDependencies(location, context) {
90
+ return this.countItems(location, context);
91
+ }
89
92
  /**
90
93
  * See {@link Locator.getLocationCoordinates}.
91
94
  * @param location Location to position
@@ -1 +1 @@
1
- {"version":3,"file":"HandLocator.js","sourceRoot":"","sources":["../../src/locators/HandLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandLocator.js","sourceRoot":"","sources":["../../src/locators/HandLocator.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ export declare class ListLocator<P extends number = number, M extends number = n
39
39
  * @returns The maximum gap between the first and the last items
40
40
  */
41
41
  getMaxGap(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
42
+ getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>): number;
42
43
  /**
43
44
  * The number of items displayed in the list
44
45
  * @param location Location area of the items
@@ -57,6 +57,9 @@ export class ListLocator extends Locator {
57
57
  z: z ? z * (maxCount - 1) : z
58
58
  };
59
59
  }
60
+ getPositionDependencies(location, context) {
61
+ return this.countItems(location, context);
62
+ }
60
63
  /**
61
64
  * The number of items displayed in the list
62
65
  * @param location Location area of the items
@@ -1 +1 @@
1
- {"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":"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"}
@@ -60,8 +60,17 @@ export declare class Locator<P extends number = number, M extends number = numbe
60
60
  * @internal This function provides a custom location description for the current dragged item.
61
61
  */
62
62
  protected generateLocationDescriptionFromDraggedItem(_location: Location<P, L>, context: ItemContext<P, M, L>): LocationDescription<P, M, L> | undefined;
63
+ /**
64
+ * This function can completely remove some items from the DOM. Unlike {@link hide}, ignored items cannot be animated.
65
+ * Use this for performance when items never need to animate (e.g. cards deep in a deck).
66
+ * @param _item The item
67
+ * @param _context The context of the item
68
+ * @returns true if the item must be removed from the DOM
69
+ */
70
+ ignore(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): boolean;
63
71
  /**
64
72
  * This function can hide some items on the game table depending on the context.
73
+ * Hidden items remain in the DOM with scale(0) so they can be animated.
65
74
  * @param item The item
66
75
  * @param context The context of the item
67
76
  * @returns true if the item must be hidden
@@ -128,6 +137,36 @@ export declare class Locator<P extends number = number, M extends number = numbe
128
137
  * Coordinates of the location on the Game Table. Use {@link getCoordinates} to provide dynamic coordinates.
129
138
  */
130
139
  coordinates: Partial<Coordinates>;
140
+ /**
141
+ * Declare which parts of the game state affect the positioning of items in this location area.
142
+ *
143
+ * The returned value is compared with deep equality between renders. If it hasn't changed, the item's position
144
+ * is assumed unchanged and the re-render is skipped.
145
+ *
146
+ * Return `undefined` to opt out of the optimization (item always re-renders on state change).
147
+ *
148
+ * **Default**: `{}` — position only depends on the item's own location data, never on external game state.
149
+ *
150
+ * **Important**: If you override `getCoordinates()` or `getItemCoordinates()` and read from `context.rules`,
151
+ * you **must** also override this method to declare those dependencies. Otherwise items won't reposition when
152
+ * the game state changes.
153
+ *
154
+ * @param _location A location in this area
155
+ * @param _context Context of the game
156
+ * @returns A value representing the external dependencies. Compared with deep equality.
157
+ */
158
+ getPositionDependencies(_location: Location<P, L>, _context: MaterialContext<P, M, L>): unknown;
159
+ /**
160
+ * Computes the full position dependencies for an item, including the parent item's position dependencies
161
+ * when the item is placed on a dynamic parent (i.e. `location.parent !== undefined`).
162
+ *
163
+ * This method should not be overridden. Override {@link getPositionDependencies} instead.
164
+ *
165
+ * @param location A location in this area
166
+ * @param context Context of the game
167
+ * @returns Combined dependencies (own + parent chain). `undefined` if any locator in the chain opts out.
168
+ */
169
+ getFullPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>): unknown;
131
170
  /**
132
171
  * Provide the coordinates of a location on the Game Table.
133
172
  *
@@ -78,14 +78,37 @@ export class Locator {
78
78
  generateLocationDescriptionFromDraggedItem(_location, context) {
79
79
  return new DropAreaDescription(context.material[context.type]);
80
80
  }
81
+ /**
82
+ * This function can completely remove some items from the DOM. Unlike {@link hide}, ignored items cannot be animated.
83
+ * Use this for performance when items never need to animate (e.g. cards deep in a deck).
84
+ * @param _item The item
85
+ * @param _context The context of the item
86
+ * @returns true if the item must be removed from the DOM
87
+ */
88
+ ignore(_item, _context) {
89
+ return false;
90
+ }
81
91
  /**
82
92
  * This function can hide some items on the game table depending on the context.
93
+ * Hidden items remain in the DOM with scale(0) so they can be animated.
83
94
  * @param item The item
84
95
  * @param context The context of the item
85
96
  * @returns true if the item must be hidden
86
97
  */
87
98
  hide(item, context) {
88
- return this.limit !== undefined && this.getItemIndex(item, context) < 0;
99
+ if (this.limit !== undefined && this.getItemIndex(item, context) < 0) {
100
+ return true;
101
+ }
102
+ if (item.location.parent !== undefined && this.parentItemType !== undefined) {
103
+ const parentItem = this.getParentItem(item.location, context);
104
+ if (parentItem) {
105
+ const parentLocator = context.locators[parentItem.location.type];
106
+ if (parentLocator?.hide(parentItem, { ...context, type: this.parentItemType, index: item.location.parent, displayIndex: 0 })) {
107
+ return true;
108
+ }
109
+ }
110
+ }
111
+ return false;
89
112
  }
90
113
  /**
91
114
  * Value returned by {@link getLocationOrigin} default implementation
@@ -182,6 +205,8 @@ export class Locator {
182
205
  return undefined;
183
206
  if (location.parent === undefined)
184
207
  return material[this.parentItemType]?.staticItem;
208
+ if (location.parent < 0)
209
+ return undefined;
185
210
  return rules.material(this.parentItemType).getItem(location.parent);
186
211
  }
187
212
  /**
@@ -204,6 +229,54 @@ export class Locator {
204
229
  * Coordinates of the location on the Game Table. Use {@link getCoordinates} to provide dynamic coordinates.
205
230
  */
206
231
  coordinates = { x: 0, y: 0, z: 0 };
232
+ /**
233
+ * Declare which parts of the game state affect the positioning of items in this location area.
234
+ *
235
+ * The returned value is compared with deep equality between renders. If it hasn't changed, the item's position
236
+ * is assumed unchanged and the re-render is skipped.
237
+ *
238
+ * Return `undefined` to opt out of the optimization (item always re-renders on state change).
239
+ *
240
+ * **Default**: `{}` — position only depends on the item's own location data, never on external game state.
241
+ *
242
+ * **Important**: If you override `getCoordinates()` or `getItemCoordinates()` and read from `context.rules`,
243
+ * you **must** also override this method to declare those dependencies. Otherwise items won't reposition when
244
+ * the game state changes.
245
+ *
246
+ * @param _location A location in this area
247
+ * @param _context Context of the game
248
+ * @returns A value representing the external dependencies. Compared with deep equality.
249
+ */
250
+ getPositionDependencies(_location, _context) {
251
+ return {};
252
+ }
253
+ /**
254
+ * Computes the full position dependencies for an item, including the parent item's position dependencies
255
+ * when the item is placed on a dynamic parent (i.e. `location.parent !== undefined`).
256
+ *
257
+ * This method should not be overridden. Override {@link getPositionDependencies} instead.
258
+ *
259
+ * @param location A location in this area
260
+ * @param context Context of the game
261
+ * @returns Combined dependencies (own + parent chain). `undefined` if any locator in the chain opts out.
262
+ */
263
+ getFullPositionDependencies(location, context) {
264
+ const own = this.getPositionDependencies(location, context);
265
+ if (own === undefined)
266
+ return undefined;
267
+ if (this.parentItemType === undefined || location.parent === undefined)
268
+ return own;
269
+ const parentItem = context.rules.material(this.parentItemType).getItem(location.parent);
270
+ if (!parentItem)
271
+ return own;
272
+ const parentLocator = context.locators[parentItem.location.type];
273
+ if (!parentLocator)
274
+ return own;
275
+ const parentDeps = parentLocator.getFullPositionDependencies(parentItem.location, context);
276
+ if (parentDeps === undefined)
277
+ return undefined;
278
+ return [own, parentDeps];
279
+ }
207
280
  /**
208
281
  * Provide the coordinates of a location on the Game Table.
209
282
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Locator.js","sourceRoot":"","sources":["../../src/locators/Locator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Locator.js","sourceRoot":"","sources":["../../src/locators/Locator.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ export declare class PileLocator<P extends number = number, M extends number = n
42
42
  * @returns a unique identifier for the pile of items this location goes to
43
43
  */
44
44
  getPileId(item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): string;
45
+ getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>): number;
45
46
  getItemCoordinates(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): Partial<Coordinates>;
46
47
  generateItemPosition(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): {
47
48
  x: number;