@ankhorage/zora 21.0.22 → 21.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +40 -184
  3. package/dist/features/authoring/allowedChildren.d.ts +5 -2
  4. package/dist/features/authoring/allowedChildren.d.ts.map +1 -1
  5. package/dist/features/authoring/allowedChildren.js +13 -2
  6. package/dist/features/authoring/allowedChildren.js.map +1 -1
  7. package/dist/features/authoring/componentMeta.d.ts.map +1 -1
  8. package/dist/features/authoring/componentMeta.js +21 -0
  9. package/dist/features/authoring/componentMeta.js.map +1 -1
  10. package/dist/features/authoring/constants.d.ts +3 -0
  11. package/dist/features/authoring/constants.d.ts.map +1 -1
  12. package/dist/features/authoring/constants.js +3 -0
  13. package/dist/features/authoring/constants.js.map +1 -1
  14. package/dist/features/button/adapters/inbound/Button.d.ts +0 -4
  15. package/dist/features/button/adapters/inbound/Button.d.ts.map +1 -1
  16. package/dist/features/button/adapters/inbound/Button.js +0 -4
  17. package/dist/features/button/adapters/inbound/Button.js.map +1 -1
  18. package/dist/features/card/adapters/inbound/Card.d.ts +0 -4
  19. package/dist/features/card/adapters/inbound/Card.d.ts.map +1 -1
  20. package/dist/features/card/adapters/inbound/Card.js +0 -4
  21. package/dist/features/card/adapters/inbound/Card.js.map +1 -1
  22. package/dist/features/card/cardMeta.d.ts +1 -1
  23. package/dist/features/card/cardMeta.d.ts.map +1 -1
  24. package/dist/features/card/cardMeta.js +7 -2
  25. package/dist/features/card/cardMeta.js.map +1 -1
  26. package/dist/features/chess/adapters/inbound/ChessBoard.d.ts +5 -0
  27. package/dist/features/chess/adapters/inbound/ChessBoard.d.ts.map +1 -0
  28. package/dist/features/chess/adapters/inbound/ChessBoard.js +119 -0
  29. package/dist/features/chess/adapters/inbound/ChessBoard.js.map +1 -0
  30. package/dist/features/chess/adapters/inbound/OpeningBook.d.ts +5 -0
  31. package/dist/features/chess/adapters/inbound/OpeningBook.d.ts.map +1 -0
  32. package/dist/features/chess/adapters/inbound/OpeningBook.js +94 -0
  33. package/dist/features/chess/adapters/inbound/OpeningBook.js.map +1 -0
  34. package/dist/features/chess/meta.d.ts +219 -0
  35. package/dist/features/chess/meta.d.ts.map +1 -0
  36. package/dist/features/chess/meta.js +165 -0
  37. package/dist/features/chess/meta.js.map +1 -0
  38. package/dist/features/chess/public.d.ts +12 -0
  39. package/dist/features/chess/public.d.ts.map +1 -0
  40. package/dist/features/chess/public.js +10 -0
  41. package/dist/features/chess/public.js.map +1 -0
  42. package/dist/features/chess/utils/chessSquares.d.ts +4 -0
  43. package/dist/features/chess/utils/chessSquares.d.ts.map +1 -0
  44. package/dist/features/chess/utils/chessSquares.js +3 -0
  45. package/dist/features/chess/utils/chessSquares.js.map +1 -0
  46. package/dist/features/chess/utils/createBoardSquares.d.ts +4 -0
  47. package/dist/features/chess/utils/createBoardSquares.d.ts.map +1 -0
  48. package/dist/features/chess/utils/createBoardSquares.js +9 -0
  49. package/dist/features/chess/utils/createBoardSquares.js.map +1 -0
  50. package/dist/features/chess/utils/createChessBoardColorScheme.d.ts +35 -0
  51. package/dist/features/chess/utils/createChessBoardColorScheme.d.ts.map +1 -0
  52. package/dist/features/chess/utils/createChessBoardColorScheme.js +26 -0
  53. package/dist/features/chess/utils/createChessBoardColorScheme.js.map +1 -0
  54. package/dist/features/chess/utils/createOpeningBookColorScheme.d.ts +11 -0
  55. package/dist/features/chess/utils/createOpeningBookColorScheme.d.ts.map +1 -0
  56. package/dist/features/chess/utils/createOpeningBookColorScheme.js +21 -0
  57. package/dist/features/chess/utils/createOpeningBookColorScheme.js.map +1 -0
  58. package/dist/features/chess/utils/getSquareFile.d.ts +4 -0
  59. package/dist/features/chess/utils/getSquareFile.d.ts.map +1 -0
  60. package/dist/features/chess/utils/getSquareFile.js +5 -0
  61. package/dist/features/chess/utils/getSquareFile.js.map +1 -0
  62. package/dist/features/chess/utils/getSquareRank.d.ts +4 -0
  63. package/dist/features/chess/utils/getSquareRank.d.ts.map +1 -0
  64. package/dist/features/chess/utils/getSquareRank.js +5 -0
  65. package/dist/features/chess/utils/getSquareRank.js.map +1 -0
  66. package/dist/features/chess/utils/isLightSquare.d.ts +4 -0
  67. package/dist/features/chess/utils/isLightSquare.d.ts.map +1 -0
  68. package/dist/features/chess/utils/isLightSquare.js +6 -0
  69. package/dist/features/chess/utils/isLightSquare.js.map +1 -0
  70. package/dist/features/empty-state/adapters/inbound/EmptyState.d.ts +0 -4
  71. package/dist/features/empty-state/adapters/inbound/EmptyState.d.ts.map +1 -1
  72. package/dist/features/empty-state/adapters/inbound/EmptyState.js +0 -4
  73. package/dist/features/empty-state/adapters/inbound/EmptyState.js.map +1 -1
  74. package/dist/features/form/text-input/adapters/inbound/TextInput.d.ts +0 -4
  75. package/dist/features/form/text-input/adapters/inbound/TextInput.d.ts.map +1 -1
  76. package/dist/features/form/text-input/adapters/inbound/TextInput.js +0 -4
  77. package/dist/features/form/text-input/adapters/inbound/TextInput.js.map +1 -1
  78. package/dist/features/game/adapters/inbound/Game.d.ts +5 -0
  79. package/dist/features/game/adapters/inbound/Game.d.ts.map +1 -0
  80. package/dist/features/game/adapters/inbound/Game.js +24 -0
  81. package/dist/features/game/adapters/inbound/Game.js.map +1 -0
  82. package/dist/features/game/adapters/inbound/GameEntity.d.ts +5 -0
  83. package/dist/features/game/adapters/inbound/GameEntity.d.ts.map +1 -0
  84. package/dist/features/game/adapters/inbound/GameEntity.js +29 -0
  85. package/dist/features/game/adapters/inbound/GameEntity.js.map +1 -0
  86. package/dist/features/game/adapters/inbound/GameField.d.ts +4 -0
  87. package/dist/features/game/adapters/inbound/GameField.d.ts.map +1 -0
  88. package/dist/features/game/adapters/inbound/GameField.js +32 -0
  89. package/dist/features/game/adapters/inbound/GameField.js.map +1 -0
  90. package/dist/features/game/adapters/inbound/GameInputZone.d.ts +4 -0
  91. package/dist/features/game/adapters/inbound/GameInputZone.d.ts.map +1 -0
  92. package/dist/features/game/adapters/inbound/GameInputZone.js +50 -0
  93. package/dist/features/game/adapters/inbound/GameInputZone.js.map +1 -0
  94. package/dist/features/game/adapters/inbound/GameMeasurementProbe.d.ts +4 -0
  95. package/dist/features/game/adapters/inbound/GameMeasurementProbe.d.ts.map +1 -0
  96. package/dist/features/game/adapters/inbound/GameMeasurementProbe.js +54 -0
  97. package/dist/features/game/adapters/inbound/GameMeasurementProbe.js.map +1 -0
  98. package/dist/features/game/adapters/inbound/GameOverlay.d.ts +4 -0
  99. package/dist/features/game/adapters/inbound/GameOverlay.d.ts.map +1 -0
  100. package/dist/features/game/adapters/inbound/GameOverlay.js +39 -0
  101. package/dist/features/game/adapters/inbound/GameOverlay.js.map +1 -0
  102. package/dist/features/game/adapters/inbound/createGameKeyboardEvent.d.ts +16 -0
  103. package/dist/features/game/adapters/inbound/createGameKeyboardEvent.d.ts.map +1 -0
  104. package/dist/features/game/adapters/inbound/createGameKeyboardEvent.js +16 -0
  105. package/dist/features/game/adapters/inbound/createGameKeyboardEvent.js.map +1 -0
  106. package/dist/features/game/adapters/inbound/createGameMeasurementEvent.d.ts +14 -0
  107. package/dist/features/game/adapters/inbound/createGameMeasurementEvent.d.ts.map +1 -0
  108. package/dist/features/game/adapters/inbound/createGameMeasurementEvent.js +25 -0
  109. package/dist/features/game/adapters/inbound/createGameMeasurementEvent.js.map +1 -0
  110. package/dist/features/game/adapters/inbound/createGamePointerEvent.d.ts +17 -0
  111. package/dist/features/game/adapters/inbound/createGamePointerEvent.d.ts.map +1 -0
  112. package/dist/features/game/adapters/inbound/createGamePointerEvent.js +20 -0
  113. package/dist/features/game/adapters/inbound/createGamePointerEvent.js.map +1 -0
  114. package/dist/features/game/adapters/inbound/measureGameEntity.d.ts +5 -0
  115. package/dist/features/game/adapters/inbound/measureGameEntity.d.ts.map +1 -0
  116. package/dist/features/game/adapters/inbound/measureGameEntity.js +22 -0
  117. package/dist/features/game/adapters/inbound/measureGameEntity.js.map +1 -0
  118. package/dist/features/game/adapters/inbound/useGameInputZoneResponder.d.ts +15 -0
  119. package/dist/features/game/adapters/inbound/useGameInputZoneResponder.d.ts.map +1 -0
  120. package/dist/features/game/adapters/inbound/useGameInputZoneResponder.js +67 -0
  121. package/dist/features/game/adapters/inbound/useGameInputZoneResponder.js.map +1 -0
  122. package/dist/features/game/composition/GameRuntimeContext.d.ts +5 -0
  123. package/dist/features/game/composition/GameRuntimeContext.d.ts.map +1 -0
  124. package/dist/features/game/composition/GameRuntimeContext.js +4 -0
  125. package/dist/features/game/composition/GameRuntimeContext.js.map +1 -0
  126. package/dist/features/game/composition/createGameBindingContext.d.ts +4 -0
  127. package/dist/features/game/composition/createGameBindingContext.d.ts.map +1 -0
  128. package/dist/features/game/composition/createGameBindingContext.js +10 -0
  129. package/dist/features/game/composition/createGameBindingContext.js.map +1 -0
  130. package/dist/features/game/composition/createGameMeasurementRegistry.d.ts +4 -0
  131. package/dist/features/game/composition/createGameMeasurementRegistry.d.ts.map +1 -0
  132. package/dist/features/game/composition/createGameMeasurementRegistry.js +15 -0
  133. package/dist/features/game/composition/createGameMeasurementRegistry.js.map +1 -0
  134. package/dist/features/game/composition/useGameRuntime.d.ts +5 -0
  135. package/dist/features/game/composition/useGameRuntime.d.ts.map +1 -0
  136. package/dist/features/game/composition/useGameRuntime.js +117 -0
  137. package/dist/features/game/composition/useGameRuntime.js.map +1 -0
  138. package/dist/features/game/composition/useGameScheduledEffects.d.ts +17 -0
  139. package/dist/features/game/composition/useGameScheduledEffects.d.ts.map +1 -0
  140. package/dist/features/game/composition/useGameScheduledEffects.js +40 -0
  141. package/dist/features/game/composition/useGameScheduledEffects.js.map +1 -0
  142. package/dist/features/game/meta/gameEntityMeta.d.ts +403 -0
  143. package/dist/features/game/meta/gameEntityMeta.d.ts.map +1 -0
  144. package/dist/features/game/meta/gameEntityMeta.js +224 -0
  145. package/dist/features/game/meta/gameEntityMeta.js.map +1 -0
  146. package/dist/features/game/meta/gameFieldMeta.d.ts +61 -0
  147. package/dist/features/game/meta/gameFieldMeta.d.ts.map +1 -0
  148. package/dist/features/game/meta/gameFieldMeta.js +48 -0
  149. package/dist/features/game/meta/gameFieldMeta.js.map +1 -0
  150. package/dist/features/game/meta/gameInputZoneMeta.d.ts +163 -0
  151. package/dist/features/game/meta/gameInputZoneMeta.d.ts.map +1 -0
  152. package/dist/features/game/meta/gameInputZoneMeta.js +138 -0
  153. package/dist/features/game/meta/gameInputZoneMeta.js.map +1 -0
  154. package/dist/features/game/meta/gameMeasurementProbeMeta.d.ts +112 -0
  155. package/dist/features/game/meta/gameMeasurementProbeMeta.d.ts.map +1 -0
  156. package/dist/features/game/meta/gameMeasurementProbeMeta.js +70 -0
  157. package/dist/features/game/meta/gameMeasurementProbeMeta.js.map +1 -0
  158. package/dist/features/game/meta/gameMeta.d.ts +130 -0
  159. package/dist/features/game/meta/gameMeta.d.ts.map +1 -0
  160. package/dist/features/game/meta/gameMeta.js +113 -0
  161. package/dist/features/game/meta/gameMeta.js.map +1 -0
  162. package/dist/features/game/meta/gameOverlayMeta.d.ts +55 -0
  163. package/dist/features/game/meta/gameOverlayMeta.d.ts.map +1 -0
  164. package/dist/features/game/meta/gameOverlayMeta.js +65 -0
  165. package/dist/features/game/meta/gameOverlayMeta.js.map +1 -0
  166. package/dist/features/game/public.d.ts +8 -0
  167. package/dist/features/game/public.d.ts.map +1 -0
  168. package/dist/features/game/public.js +7 -0
  169. package/dist/features/game/public.js.map +1 -0
  170. package/dist/features/game/utils/clampGamePercentage.d.ts +3 -0
  171. package/dist/features/game/utils/clampGamePercentage.d.ts.map +1 -0
  172. package/dist/features/game/utils/clampGamePercentage.js +5 -0
  173. package/dist/features/game/utils/clampGamePercentage.js.map +1 -0
  174. package/dist/features/game/utils/resolveGameEntityMotionPlan.d.ts +15 -0
  175. package/dist/features/game/utils/resolveGameEntityMotionPlan.d.ts.map +1 -0
  176. package/dist/features/game/utils/resolveGameEntityMotionPlan.js +31 -0
  177. package/dist/features/game/utils/resolveGameEntityMotionPlan.js.map +1 -0
  178. package/dist/features/game/utils/toGamePercentage.d.ts +3 -0
  179. package/dist/features/game/utils/toGamePercentage.d.ts.map +1 -0
  180. package/dist/features/game/utils/toGamePercentage.js +6 -0
  181. package/dist/features/game/utils/toGamePercentage.js.map +1 -0
  182. package/dist/features/game/utils/useAnimatedGameEntityValue.d.ts +5 -0
  183. package/dist/features/game/utils/useAnimatedGameEntityValue.d.ts.map +1 -0
  184. package/dist/features/game/utils/useAnimatedGameEntityValue.js +33 -0
  185. package/dist/features/game/utils/useAnimatedGameEntityValue.js.map +1 -0
  186. package/dist/features/game/utils/useGameEntityAnimatedStyle.d.ts +16 -0
  187. package/dist/features/game/utils/useGameEntityAnimatedStyle.d.ts.map +1 -0
  188. package/dist/features/game/utils/useGameEntityAnimatedStyle.js +52 -0
  189. package/dist/features/game/utils/useGameEntityAnimatedStyle.js.map +1 -0
  190. package/dist/features/game/utils/useGameEntityMeasurement.d.ts +5 -0
  191. package/dist/features/game/utils/useGameEntityMeasurement.d.ts.map +1 -0
  192. package/dist/features/game/utils/useGameEntityMeasurement.js +14 -0
  193. package/dist/features/game/utils/useGameEntityMeasurement.js.map +1 -0
  194. package/dist/features/game/utils/useGameEntityMotionProgress.d.ts +5 -0
  195. package/dist/features/game/utils/useGameEntityMotionProgress.d.ts.map +1 -0
  196. package/dist/features/game/utils/useGameEntityMotionProgress.js +87 -0
  197. package/dist/features/game/utils/useGameEntityMotionProgress.js.map +1 -0
  198. package/dist/features/game/utils/useGameReducedMotion.d.ts +3 -0
  199. package/dist/features/game/utils/useGameReducedMotion.d.ts.map +1 -0
  200. package/dist/features/game/utils/useGameReducedMotion.js +13 -0
  201. package/dist/features/game/utils/useGameReducedMotion.js.map +1 -0
  202. package/dist/features/graph-view/adapters/inbound/web-artifact/GraphView.d.ts +5 -5
  203. package/dist/features/graph-view/adapters/inbound/web-artifact/GraphView.js +5 -5
  204. package/dist/features/graph-view/adapters/inbound/web-artifact/GraphView.js.map +1 -1
  205. package/dist/features/graph-view/adapters/inbound/web-artifact/compactGraphSpacing.d.ts +1 -1
  206. package/dist/features/graph-view/adapters/inbound/web-artifact/compactGraphSpacing.js +1 -1
  207. package/dist/features/graph-view/adapters/inbound/web-artifact/compactGraphSpacing.js.map +1 -1
  208. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphController.js +1 -1
  209. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphController.js.map +1 -1
  210. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphLoopSizer.d.ts +1 -1
  211. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphLoopSizer.js +1 -1
  212. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphLoopSizer.js.map +1 -1
  213. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.js +7 -7
  214. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.js.map +1 -1
  215. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphGeometryKey.d.ts +0 -1
  216. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphGeometryKey.d.ts.map +1 -1
  217. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphGeometryKey.js +0 -1
  218. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphGeometryKey.js.map +1 -1
  219. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphTopologyKey.d.ts +1 -1
  220. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphTopologyKey.js +1 -1
  221. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphTopologyKey.js.map +1 -1
  222. package/dist/features/graph-view/adapters/inbound/web-artifact/hasGraphLayoutChanged.d.ts +0 -1
  223. package/dist/features/graph-view/adapters/inbound/web-artifact/hasGraphLayoutChanged.d.ts.map +1 -1
  224. package/dist/features/graph-view/adapters/inbound/web-artifact/hasGraphLayoutChanged.js +0 -1
  225. package/dist/features/graph-view/adapters/inbound/web-artifact/hasGraphLayoutChanged.js.map +1 -1
  226. package/dist/features/graph-view/adapters/inbound/web-artifact/runDetachedGraphLayout.d.ts +1 -1
  227. package/dist/features/graph-view/adapters/inbound/web-artifact/runDetachedGraphLayout.js +1 -1
  228. package/dist/features/graph-view/adapters/inbound/web-artifact/runDetachedGraphLayout.js.map +1 -1
  229. package/dist/features/graph-view/adapters/inbound/web-artifact/sizeGraphNodesToLabels.d.ts +1 -1
  230. package/dist/features/graph-view/adapters/inbound/web-artifact/sizeGraphNodesToLabels.js +1 -1
  231. package/dist/features/graph-view/adapters/inbound/web-artifact/sizeGraphNodesToLabels.js.map +1 -1
  232. package/dist/features/graph-view/adapters/inbound/web-artifact/syncGraphElements.d.ts +0 -1
  233. package/dist/features/graph-view/adapters/inbound/web-artifact/syncGraphElements.d.ts.map +1 -1
  234. package/dist/features/graph-view/adapters/inbound/web-artifact/syncGraphElements.js +0 -1
  235. package/dist/features/graph-view/adapters/inbound/web-artifact/syncGraphElements.js.map +1 -1
  236. package/dist/features/layout/gridMeta.d.ts +1 -1
  237. package/dist/features/layout/gridMeta.d.ts.map +1 -1
  238. package/dist/features/layout/gridMeta.js +7 -2
  239. package/dist/features/layout/gridMeta.js.map +1 -1
  240. package/dist/features/layout/screenMeta.d.ts +1 -1
  241. package/dist/features/layout/viewMeta.d.ts +1 -1
  242. package/dist/features/layout/viewMeta.d.ts.map +1 -1
  243. package/dist/features/layout/viewMeta.js +6 -2
  244. package/dist/features/layout/viewMeta.js.map +1 -1
  245. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.d.ts.map +1 -1
  246. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js +16 -0
  247. package/dist/features/registry/ZORA_COMPONENT_REGISTRY.js.map +1 -1
  248. package/dist/features/section/screenSectionMeta.d.ts +1 -1
  249. package/dist/features/tabletop/adapters/inbound/CardBack.d.ts +5 -0
  250. package/dist/features/tabletop/adapters/inbound/CardBack.d.ts.map +1 -0
  251. package/dist/features/tabletop/adapters/inbound/CardBack.js +47 -0
  252. package/dist/features/tabletop/adapters/inbound/CardBack.js.map +1 -0
  253. package/dist/features/tabletop/adapters/inbound/CardHand.d.ts +5 -0
  254. package/dist/features/tabletop/adapters/inbound/CardHand.d.ts.map +1 -0
  255. package/dist/features/tabletop/adapters/inbound/CardHand.js +28 -0
  256. package/dist/features/tabletop/adapters/inbound/CardHand.js.map +1 -0
  257. package/dist/features/tabletop/adapters/inbound/PlayingCard.d.ts +5 -0
  258. package/dist/features/tabletop/adapters/inbound/PlayingCard.d.ts.map +1 -0
  259. package/dist/features/tabletop/adapters/inbound/PlayingCard.js +64 -0
  260. package/dist/features/tabletop/adapters/inbound/PlayingCard.js.map +1 -0
  261. package/dist/features/tabletop/adapters/inbound/PokerTrainingTable.d.ts +5 -0
  262. package/dist/features/tabletop/adapters/inbound/PokerTrainingTable.d.ts.map +1 -0
  263. package/dist/features/tabletop/adapters/inbound/PokerTrainingTable.js +12 -0
  264. package/dist/features/tabletop/adapters/inbound/PokerTrainingTable.js.map +1 -0
  265. package/dist/features/tabletop/adapters/inbound/TabletopTable.d.ts +5 -0
  266. package/dist/features/tabletop/adapters/inbound/TabletopTable.d.ts.map +1 -0
  267. package/dist/features/tabletop/adapters/inbound/TabletopTable.js +206 -0
  268. package/dist/features/tabletop/adapters/inbound/TabletopTable.js.map +1 -0
  269. package/dist/features/tabletop/meta.d.ts +353 -0
  270. package/dist/features/tabletop/meta.d.ts.map +1 -0
  271. package/dist/features/tabletop/meta.js +252 -0
  272. package/dist/features/tabletop/meta.js.map +1 -0
  273. package/dist/features/tabletop/public.d.ts +10 -0
  274. package/dist/features/tabletop/public.d.ts.map +1 -0
  275. package/dist/features/tabletop/public.js +9 -0
  276. package/dist/features/tabletop/public.js.map +1 -0
  277. package/dist/features/tabletop/utils/createPokerTrainingTableState.d.ts +13 -0
  278. package/dist/features/tabletop/utils/createPokerTrainingTableState.d.ts.map +1 -0
  279. package/dist/features/tabletop/utils/createPokerTrainingTableState.js +112 -0
  280. package/dist/features/tabletop/utils/createPokerTrainingTableState.js.map +1 -0
  281. package/dist/features/tabletop/utils/createTabletopColorScheme.d.ts +36 -0
  282. package/dist/features/tabletop/utils/createTabletopColorScheme.d.ts.map +1 -0
  283. package/dist/features/tabletop/utils/createTabletopColorScheme.js +144 -0
  284. package/dist/features/tabletop/utils/createTabletopColorScheme.js.map +1 -0
  285. package/dist/features/tabletop/utils/createTabletopGameSeats.d.ts +13 -0
  286. package/dist/features/tabletop/utils/createTabletopGameSeats.d.ts.map +1 -0
  287. package/dist/features/tabletop/utils/createTabletopGameSeats.js +22 -0
  288. package/dist/features/tabletop/utils/createTabletopGameSeats.js.map +1 -0
  289. package/dist/features/tabletop/utils/getPlayingCardLabel.d.ts +4 -0
  290. package/dist/features/tabletop/utils/getPlayingCardLabel.d.ts.map +1 -0
  291. package/dist/features/tabletop/utils/getPlayingCardLabel.js +6 -0
  292. package/dist/features/tabletop/utils/getPlayingCardLabel.js.map +1 -0
  293. package/dist/features/tabletop/utils/getTabletopCardDimensions.d.ts +12 -0
  294. package/dist/features/tabletop/utils/getTabletopCardDimensions.d.ts.map +1 -0
  295. package/dist/features/tabletop/utils/getTabletopCardDimensions.js +35 -0
  296. package/dist/features/tabletop/utils/getTabletopCardDimensions.js.map +1 -0
  297. package/dist/features/tabletop/utils/getTabletopSeatPosition.d.ts +9 -0
  298. package/dist/features/tabletop/utils/getTabletopSeatPosition.d.ts.map +1 -0
  299. package/dist/features/tabletop/utils/getTabletopSeatPosition.js +88 -0
  300. package/dist/features/tabletop/utils/getTabletopSeatPosition.js.map +1 -0
  301. package/dist/features/tree-view/adapters/inbound/TreeView.d.ts +1 -1
  302. package/dist/features/tree-view/adapters/inbound/TreeView.js +1 -1
  303. package/dist/features/tree-view/adapters/inbound/TreeView.js.map +1 -1
  304. package/dist/features/tree-view/adapters/inbound/web-artifact/TreeView.d.ts +1 -1
  305. package/dist/features/tree-view/adapters/inbound/web-artifact/TreeView.js +1 -1
  306. package/dist/features/tree-view/adapters/inbound/web-artifact/TreeView.js.map +1 -1
  307. package/dist/features/typography/adapters/inbound/Heading.d.ts +0 -4
  308. package/dist/features/typography/adapters/inbound/Heading.d.ts.map +1 -1
  309. package/dist/features/typography/adapters/inbound/Heading.js +0 -4
  310. package/dist/features/typography/adapters/inbound/Heading.js.map +1 -1
  311. package/dist/features/typography/adapters/inbound/Text.d.ts +0 -4
  312. package/dist/features/typography/adapters/inbound/Text.d.ts.map +1 -1
  313. package/dist/features/typography/adapters/inbound/Text.js +0 -4
  314. package/dist/features/typography/adapters/inbound/Text.js.map +1 -1
  315. package/dist/index.d.ts +8 -0
  316. package/dist/index.d.ts.map +1 -1
  317. package/dist/index.js +4 -0
  318. package/dist/index.js.map +1 -1
  319. package/dist/types/chess.d.ts +83 -0
  320. package/dist/types/chess.d.ts.map +1 -0
  321. package/dist/types/chess.js +2 -0
  322. package/dist/types/chess.js.map +1 -0
  323. package/dist/types/gamePresentation.d.ts +94 -0
  324. package/dist/types/gamePresentation.d.ts.map +1 -0
  325. package/dist/types/gamePresentation.js +2 -0
  326. package/dist/types/gamePresentation.js.map +1 -0
  327. package/dist/types/gameRuntime.d.ts +29 -0
  328. package/dist/types/gameRuntime.d.ts.map +1 -0
  329. package/dist/types/gameRuntime.js +2 -0
  330. package/dist/types/gameRuntime.js.map +1 -0
  331. package/dist/types/tabletop.d.ts +129 -0
  332. package/dist/types/tabletop.d.ts.map +1 -0
  333. package/dist/types/tabletop.js +2 -0
  334. package/dist/types/tabletop.js.map +1 -0
  335. package/package.json +6 -7
  336. package/src/features/authoring/allowedChildren.ts +15 -2
  337. package/src/features/authoring/componentMeta.test.ts +93 -0
  338. package/src/features/authoring/componentMeta.ts +27 -0
  339. package/src/features/authoring/constants.ts +3 -0
  340. package/src/features/button/adapters/inbound/Button.tsx +0 -4
  341. package/src/features/card/adapters/inbound/Card.tsx +0 -4
  342. package/src/features/card/cardMeta.ts +12 -2
  343. package/src/features/chess/adapters/inbound/ChessBoard.tsx +169 -0
  344. package/src/features/chess/adapters/inbound/OpeningBook.tsx +131 -0
  345. package/src/features/chess/meta.ts +168 -0
  346. package/src/features/chess/public.test.tsx +165 -0
  347. package/src/features/chess/public.ts +27 -0
  348. package/src/features/chess/utils/chessSquares.ts +6 -0
  349. package/src/features/chess/utils/createBoardSquares.ts +13 -0
  350. package/src/features/chess/utils/createChessBoardColorScheme.ts +55 -0
  351. package/src/features/chess/utils/createOpeningBookColorScheme.ts +26 -0
  352. package/src/features/chess/utils/getSquareFile.ts +6 -0
  353. package/src/features/chess/utils/getSquareRank.ts +6 -0
  354. package/src/features/chess/utils/isLightSquare.ts +8 -0
  355. package/src/features/chessTabletopOwnership.test.ts +71 -0
  356. package/src/features/empty-state/adapters/inbound/EmptyState.tsx +0 -4
  357. package/src/features/form/text-input/adapters/inbound/TextInput.tsx +0 -4
  358. package/src/features/game/adapters/inbound/Game.tsx +43 -0
  359. package/src/features/game/adapters/inbound/GameEntity.tsx +44 -0
  360. package/src/features/game/adapters/inbound/GameField.tsx +52 -0
  361. package/src/features/game/adapters/inbound/GameInputZone.tsx +99 -0
  362. package/src/features/game/adapters/inbound/GameMeasurementProbe.tsx +83 -0
  363. package/src/features/game/adapters/inbound/GameOverlay.tsx +58 -0
  364. package/src/features/game/adapters/inbound/createGameKeyboardEvent.test.ts +51 -0
  365. package/src/features/game/adapters/inbound/createGameKeyboardEvent.ts +33 -0
  366. package/src/features/game/adapters/inbound/createGameMeasurementEvent.test.ts +56 -0
  367. package/src/features/game/adapters/inbound/createGameMeasurementEvent.ts +38 -0
  368. package/src/features/game/adapters/inbound/createGamePointerEvent.test.ts +56 -0
  369. package/src/features/game/adapters/inbound/createGamePointerEvent.ts +39 -0
  370. package/src/features/game/adapters/inbound/measureGameEntity.ts +28 -0
  371. package/src/features/game/adapters/inbound/useGameInputZoneResponder.ts +85 -0
  372. package/src/features/game/composition/GameRuntimeContext.ts +6 -0
  373. package/src/features/game/composition/createGameBindingContext.test.ts +66 -0
  374. package/src/features/game/composition/createGameBindingContext.ts +11 -0
  375. package/src/features/game/composition/createGameMeasurementRegistry.test.ts +35 -0
  376. package/src/features/game/composition/createGameMeasurementRegistry.ts +16 -0
  377. package/src/features/game/composition/useGameRuntime.test.tsx +173 -0
  378. package/src/features/game/composition/useGameRuntime.ts +200 -0
  379. package/src/features/game/composition/useGameScheduledEffects.ts +85 -0
  380. package/src/features/game/meta/gameEntityMeta.ts +226 -0
  381. package/src/features/game/meta/gameFieldMeta.ts +49 -0
  382. package/src/features/game/meta/gameInputZoneMeta.ts +140 -0
  383. package/src/features/game/meta/gameMeasurementProbeMeta.ts +72 -0
  384. package/src/features/game/meta/gameMeta.ts +115 -0
  385. package/src/features/game/meta/gameOverlayMeta.ts +66 -0
  386. package/src/features/game/public.test.tsx +64 -0
  387. package/src/features/game/public.ts +19 -0
  388. package/src/features/game/utils/clampGamePercentage.ts +4 -0
  389. package/src/features/game/utils/resolveGameEntityMotionPlan.test.ts +63 -0
  390. package/src/features/game/utils/resolveGameEntityMotionPlan.ts +53 -0
  391. package/src/features/game/utils/toGamePercentage.ts +6 -0
  392. package/src/features/game/utils/useAnimatedGameEntityValue.ts +41 -0
  393. package/src/features/game/utils/useGameEntityAnimatedStyle.ts +87 -0
  394. package/src/features/game/utils/useGameEntityMeasurement.ts +19 -0
  395. package/src/features/game/utils/useGameEntityMotionProgress.ts +114 -0
  396. package/src/features/game/utils/useGameReducedMotion.ts +15 -0
  397. package/src/features/graph-view/adapters/inbound/web-artifact/GraphView.tsx +5 -5
  398. package/src/features/graph-view/adapters/inbound/web-artifact/compactGraphSpacing.ts +1 -1
  399. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphController.ts +1 -1
  400. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphLoopSizer.ts +1 -1
  401. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.ts +7 -7
  402. package/src/features/graph-view/adapters/inbound/web-artifact/getGraphGeometryKey.ts +0 -1
  403. package/src/features/graph-view/adapters/inbound/web-artifact/getGraphTopologyKey.ts +1 -1
  404. package/src/features/graph-view/adapters/inbound/web-artifact/hasGraphLayoutChanged.ts +0 -1
  405. package/src/features/graph-view/adapters/inbound/web-artifact/runDetachedGraphLayout.ts +1 -1
  406. package/src/features/graph-view/adapters/inbound/web-artifact/sizeGraphNodesToLabels.ts +1 -1
  407. package/src/features/graph-view/adapters/inbound/web-artifact/syncGraphElements.ts +0 -1
  408. package/src/features/layout/gridMeta.ts +12 -2
  409. package/src/features/layout/viewMeta.ts +10 -2
  410. package/src/features/registry/ZORA_COMPONENT_REGISTRY.ts +29 -0
  411. package/src/features/tabletop/adapters/inbound/CardBack.tsx +70 -0
  412. package/src/features/tabletop/adapters/inbound/CardHand.tsx +61 -0
  413. package/src/features/tabletop/adapters/inbound/PlayingCard.tsx +95 -0
  414. package/src/features/tabletop/adapters/inbound/PokerTrainingTable.tsx +34 -0
  415. package/src/features/tabletop/adapters/inbound/TabletopTable.tsx +264 -0
  416. package/src/features/tabletop/meta.ts +254 -0
  417. package/src/features/tabletop/public.test.tsx +127 -0
  418. package/src/features/tabletop/public.ts +32 -0
  419. package/src/features/tabletop/utils/createPokerTrainingTableState.ts +152 -0
  420. package/src/features/tabletop/utils/createTabletopColorScheme.ts +232 -0
  421. package/src/features/tabletop/utils/createTabletopGameSeats.ts +31 -0
  422. package/src/features/tabletop/utils/getPlayingCardLabel.ts +8 -0
  423. package/src/features/tabletop/utils/getTabletopCardDimensions.ts +45 -0
  424. package/src/features/tabletop/utils/getTabletopSeatPosition.ts +100 -0
  425. package/src/features/tree-view/adapters/inbound/TreeView.tsx +1 -1
  426. package/src/features/tree-view/adapters/inbound/web-artifact/TreeView.tsx +1 -1
  427. package/src/features/typography/adapters/inbound/Heading.tsx +0 -4
  428. package/src/features/typography/adapters/inbound/Text.tsx +0 -4
  429. package/src/index.ts +83 -0
  430. package/src/types/chess.ts +95 -0
  431. package/src/types/gamePresentation.ts +103 -0
  432. package/src/types/gameRuntime.ts +34 -0
  433. package/src/types/tabletop.ts +131 -0
  434. package/web-dist/chunks/{Accordion-cscmtcn8.js → Accordion-0txegc16.js} +1 -1
  435. package/web-dist/chunks/{Accordion-06588rzn.js → Accordion-10xw59gm.js} +1 -1
  436. package/web-dist/chunks/{Accordion-8kgtg62g.js → Accordion-2zh15wt9.js} +6 -6
  437. package/web-dist/chunks/{Accordion-pkqj4g3r.js → Accordion-481bknsd.js} +5 -5
  438. package/web-dist/chunks/{Accordion-grfbz6f2.js → Accordion-4fkjn6r5.js} +1 -1
  439. package/web-dist/chunks/{Accordion-ftjkdjqs.js → Accordion-4gx45mn0.js} +3 -3
  440. package/web-dist/chunks/{Accordion-fjnck2tg.js → Accordion-4s69xvqy.js} +6 -6
  441. package/web-dist/chunks/{Accordion-jh7nxehr.js → Accordion-50jz5nhg.js} +1 -1
  442. package/web-dist/chunks/{Accordion-t6sdgmbz.js → Accordion-52xke54s.js} +1 -1
  443. package/web-dist/chunks/{Accordion-far6szrp.js → Accordion-6npzmbgk.js} +5 -5
  444. package/web-dist/chunks/{Accordion-q7c1ryf2.js → Accordion-6z4npcgf.js} +4 -4
  445. package/web-dist/chunks/{Accordion-gbba10rg.js → Accordion-8gw5tkfw.js} +6 -6
  446. package/web-dist/chunks/{Accordion-fmxygyb6.js → Accordion-8qteyww0.js} +4 -4
  447. package/web-dist/chunks/{Accordion-1pp37dtg.js → Accordion-9h5dx3ck.js} +4 -4
  448. package/web-dist/chunks/{Accordion-paha5aje.js → Accordion-9mmqf3wr.js} +2 -2
  449. package/web-dist/chunks/{Accordion-f5swy5bs.js → Accordion-b21zrnzj.js} +1 -1
  450. package/web-dist/chunks/{Accordion-ars389m1.js → Accordion-b8qd23hr.js} +3 -3
  451. package/web-dist/chunks/{Accordion-hxfa71g9.js → Accordion-c79y8g44.js} +7 -7
  452. package/web-dist/chunks/Accordion-ca2csh5r.js +321 -0
  453. package/web-dist/chunks/{Accordion-49gf1zb8.js → Accordion-cjht9dyv.js} +1 -1
  454. package/web-dist/chunks/{Accordion-sz21xsf4.js → Accordion-cq6hn45r.js} +1 -1
  455. package/web-dist/chunks/{Accordion-33rd76r7.js → Accordion-d90g9wcb.js} +8 -8
  456. package/web-dist/chunks/{Accordion-crx58d5n.js → Accordion-f5jb299b.js} +2 -2
  457. package/web-dist/chunks/{Accordion-h95wvyn5.js → Accordion-fe6vmbpf.js} +2 -2
  458. package/web-dist/chunks/{Accordion-jzbq36ec.js → Accordion-fqm027n3.js} +8 -8
  459. package/web-dist/chunks/{Accordion-0jkm3y3w.js → Accordion-gpccarct.js} +1 -1
  460. package/web-dist/chunks/{Accordion-v6ykq9hv.js → Accordion-h95h3xdb.js} +10 -10
  461. package/web-dist/chunks/{Accordion-t3p4ykg7.js → Accordion-j8ab9k8k.js} +8 -8
  462. package/web-dist/chunks/{Accordion-qpwhmqzd.js → Accordion-k5z591wx.js} +13 -13
  463. package/web-dist/chunks/{Accordion-rrpej6sv.js → Accordion-kdncjvc7.js} +7 -7
  464. package/web-dist/chunks/{Accordion-f05a7r28.js → Accordion-ks4a1c6w.js} +5 -5
  465. package/web-dist/chunks/{Accordion-x0j8b2by.js → Accordion-ma1sfe5z.js} +5 -5
  466. package/web-dist/chunks/{Accordion-2dws3778.js → Accordion-mhtyce1k.js} +4 -4
  467. package/web-dist/chunks/{Accordion-1vewf8aa.js → Accordion-n7gtb5ec.js} +2 -2
  468. package/web-dist/chunks/{Accordion-0psdn97s.js → Accordion-p42mm8rr.js} +1 -1
  469. package/web-dist/chunks/{Accordion-3404tth9.js → Accordion-panw5f0q.js} +7 -7
  470. package/web-dist/chunks/{Accordion-4a6wj3ez.js → Accordion-pxq8gfgg.js} +9 -9
  471. package/web-dist/chunks/{Accordion-xshn7k8f.js → Accordion-qwbshc4s.js} +4 -4
  472. package/web-dist/chunks/{Accordion-395r3wra.js → Accordion-r51wsmvy.js} +2 -2
  473. package/web-dist/chunks/Accordion-rt13cqr7.js +830 -0
  474. package/web-dist/chunks/{Accordion-hz4xaqjf.js → Accordion-s1f9hb5a.js} +9 -9
  475. package/web-dist/chunks/{Accordion-7ja4mtbz.js → Accordion-sv87mbqa.js} +1 -1
  476. package/web-dist/chunks/{Accordion-r4c9k9y7.js → Accordion-t4k9egq6.js} +2 -2
  477. package/web-dist/chunks/{Accordion-96cqeekv.js → Accordion-t64m1kca.js} +5 -5
  478. package/web-dist/chunks/Accordion-wg31jkvp.js +1559 -0
  479. package/web-dist/chunks/{Accordion-ch67q4t0.js → Accordion-y9zr4x2x.js} +4 -4
  480. package/web-dist/chunks/{Accordion-31aeqxak.js → Accordion-ye3k55r7.js} +3 -3
  481. package/web-dist/chunks/{Accordion-s42wwh6m.js → Accordion-z29agann.js} +6 -6
  482. package/web-dist/chunks/{Accordion-f1h2f05v.js → Accordion-ze26effy.js} +5 -5
  483. package/web-dist/chunks/{Accordion-tx78txec.js → Accordion-zqzcagxz.js} +5 -5
  484. package/web-dist/components/accordion/Accordion.js +12 -12
  485. package/web-dist/components/accordion-item/AccordionItem.js +12 -12
  486. package/web-dist/components/activity-indicator/ActivityIndicator.js +3 -3
  487. package/web-dist/components/app-bar/AppBar.js +19 -19
  488. package/web-dist/components/app-shell/AppShell.js +6 -6
  489. package/web-dist/components/avatar/Avatar.js +12 -12
  490. package/web-dist/components/avatar-group/AvatarGroup.js +12 -12
  491. package/web-dist/components/badge/Badge.js +7 -7
  492. package/web-dist/components/barcode-scanner-view/BarcodeScannerView.js +20 -20
  493. package/web-dist/components/bottom-sheet/BottomSheet.js +8 -8
  494. package/web-dist/components/bottom-sheet-flat-list/BottomSheetFlatList.js +8 -8
  495. package/web-dist/components/bottom-sheet-scroll-view/BottomSheetScrollView.js +8 -8
  496. package/web-dist/components/bottom-sheet-section-list/BottomSheetSectionList.js +8 -8
  497. package/web-dist/components/bottom-sheet-view/BottomSheetView.js +8 -8
  498. package/web-dist/components/bottom-sheet-virtualized-list/BottomSheetVirtualizedList.js +8 -8
  499. package/web-dist/components/breadcrumbs/Breadcrumbs.js +15 -15
  500. package/web-dist/components/button/Button.js +12 -12
  501. package/web-dist/components/button-group/ButtonGroup.js +12 -12
  502. package/web-dist/components/camera-permission-view/CameraPermissionView.js +20 -20
  503. package/web-dist/components/card/Card.js +19 -19
  504. package/web-dist/components/card-back/CardBack.d.ts +7 -0
  505. package/web-dist/components/card-back/CardBack.js +19 -0
  506. package/web-dist/components/card-back/index.d.ts +1 -0
  507. package/web-dist/components/card-back/index.js +2 -0
  508. package/web-dist/components/card-hand/CardHand.d.ts +7 -0
  509. package/web-dist/components/card-hand/CardHand.js +19 -0
  510. package/web-dist/components/card-hand/index.d.ts +1 -0
  511. package/web-dist/components/card-hand/index.js +2 -0
  512. package/web-dist/components/chat-list-item/ChatListItem.js +16 -16
  513. package/web-dist/components/checkbox/Checkbox.js +12 -12
  514. package/web-dist/components/checkbox-group/CheckboxGroup.js +12 -12
  515. package/web-dist/components/chess-board/ChessBoard.d.ts +4 -0
  516. package/web-dist/components/chess-board/ChessBoard.js +13 -0
  517. package/web-dist/components/chess-board/index.d.ts +1 -0
  518. package/web-dist/components/chess-board/index.js +2 -0
  519. package/web-dist/components/chip/Chip.js +13 -13
  520. package/web-dist/components/chip-group/ChipGroup.js +13 -13
  521. package/web-dist/components/collection-editor/CollectionEditor.js +19 -19
  522. package/web-dist/components/content-rail/ContentRail.js +13 -13
  523. package/web-dist/components/data-table/DataTable.js +26 -26
  524. package/web-dist/components/date-picker/DatePicker.js +17 -17
  525. package/web-dist/components/dialog/Dialog.js +12 -12
  526. package/web-dist/components/divider/Divider.js +6 -6
  527. package/web-dist/components/empty-state/EmptyState.js +20 -20
  528. package/web-dist/components/field/Field.js +12 -12
  529. package/web-dist/components/flat-list/FlatList.js +13 -13
  530. package/web-dist/components/forgot-password-form/ForgotPasswordForm.js +18 -18
  531. package/web-dist/components/form/Form.js +16 -16
  532. package/web-dist/components/form-actions/FormActions.js +16 -16
  533. package/web-dist/components/form-error/FormError.js +16 -16
  534. package/web-dist/components/game/Game.d.ts +8 -0
  535. package/web-dist/components/game/Game.js +25 -0
  536. package/web-dist/components/game/index.d.ts +1 -0
  537. package/web-dist/components/game/index.js +2 -0
  538. package/web-dist/components/game-entity/GameEntity.d.ts +8 -0
  539. package/web-dist/components/game-entity/GameEntity.js +25 -0
  540. package/web-dist/components/game-entity/index.d.ts +1 -0
  541. package/web-dist/components/game-entity/index.js +2 -0
  542. package/web-dist/components/game-field/GameField.d.ts +8 -0
  543. package/web-dist/components/game-field/GameField.js +25 -0
  544. package/web-dist/components/game-field/index.d.ts +1 -0
  545. package/web-dist/components/game-field/index.js +2 -0
  546. package/web-dist/components/game-input-zone/GameInputZone.d.ts +8 -0
  547. package/web-dist/components/game-input-zone/GameInputZone.js +25 -0
  548. package/web-dist/components/game-input-zone/index.d.ts +1 -0
  549. package/web-dist/components/game-input-zone/index.js +2 -0
  550. package/web-dist/components/game-measurement-probe/GameMeasurementProbe.d.ts +8 -0
  551. package/web-dist/components/game-measurement-probe/GameMeasurementProbe.js +25 -0
  552. package/web-dist/components/game-measurement-probe/index.d.ts +1 -0
  553. package/web-dist/components/game-measurement-probe/index.js +2 -0
  554. package/web-dist/components/game-overlay/GameOverlay.d.ts +8 -0
  555. package/web-dist/components/game-overlay/GameOverlay.js +25 -0
  556. package/web-dist/components/game-overlay/index.d.ts +1 -0
  557. package/web-dist/components/game-overlay/index.js +2 -0
  558. package/web-dist/components/gradient/Gradient.js +7 -7
  559. package/web-dist/components/gradient-renderer-provider/GradientRendererProvider.js +7 -7
  560. package/web-dist/components/graph-view/GraphView.d.ts +5 -5
  561. package/web-dist/components/grid/Grid.js +6 -6
  562. package/web-dist/components/heading/Heading.js +6 -6
  563. package/web-dist/components/hero/Hero.js +19 -19
  564. package/web-dist/components/icon/Icon.js +4 -4
  565. package/web-dist/components/icon-button/IconButton.js +12 -12
  566. package/web-dist/components/image/Image.js +10 -10
  567. package/web-dist/components/keyboard-avoiding-view/KeyboardAvoidingView.js +2 -2
  568. package/web-dist/components/list/List.js +13 -13
  569. package/web-dist/components/list-item/ListItem.js +13 -13
  570. package/web-dist/components/list-section/ListSection.js +13 -13
  571. package/web-dist/components/media-card/MediaCard.js +19 -19
  572. package/web-dist/components/message-bubble/MessageBubble.js +16 -16
  573. package/web-dist/components/metric-card/MetricCard.js +19 -19
  574. package/web-dist/components/missing-element/MissingElement.js +11 -11
  575. package/web-dist/components/o-auth-provider-button/OAuthProviderButton.js +18 -18
  576. package/web-dist/components/o-auth-provider-list/OAuthProviderList.js +18 -18
  577. package/web-dist/components/opening-book/OpeningBook.d.ts +4 -0
  578. package/web-dist/components/opening-book/OpeningBook.js +13 -0
  579. package/web-dist/components/opening-book/index.d.ts +1 -0
  580. package/web-dist/components/opening-book/index.js +2 -0
  581. package/web-dist/components/otp-form/OtpForm.js +18 -18
  582. package/web-dist/components/pagination/Pagination.js +13 -13
  583. package/web-dist/components/palette-item/PaletteItem.js +19 -19
  584. package/web-dist/components/playing-card/PlayingCard.d.ts +7 -0
  585. package/web-dist/components/playing-card/PlayingCard.js +19 -0
  586. package/web-dist/components/playing-card/index.d.ts +1 -0
  587. package/web-dist/components/playing-card/index.js +2 -0
  588. package/web-dist/components/poker-training-table/PokerTrainingTable.d.ts +7 -0
  589. package/web-dist/components/poker-training-table/PokerTrainingTable.js +19 -0
  590. package/web-dist/components/poker-training-table/index.d.ts +1 -0
  591. package/web-dist/components/poker-training-table/index.js +2 -0
  592. package/web-dist/components/popover-menu/PopoverMenu.js +14 -14
  593. package/web-dist/components/post-card/PostCard.js +19 -19
  594. package/web-dist/components/product-card/ProductCard.js +19 -19
  595. package/web-dist/components/progress/Progress.js +10 -10
  596. package/web-dist/components/progress-ring/ProgressRing.js +10 -10
  597. package/web-dist/components/radio/Radio.js +14 -14
  598. package/web-dist/components/radio-group/RadioGroup.js +14 -14
  599. package/web-dist/components/rating/Rating.js +9 -9
  600. package/web-dist/components/reader-surface/ReaderSurface.js +21 -21
  601. package/web-dist/components/scan-overlay/ScanOverlay.js +20 -20
  602. package/web-dist/components/screen/Screen.js +6 -6
  603. package/web-dist/components/screen-section/ScreenSection.js +10 -10
  604. package/web-dist/components/scroll-view/ScrollView.js +6 -6
  605. package/web-dist/components/search-input/SearchInput.js +13 -13
  606. package/web-dist/components/section-header/SectionHeader.js +10 -10
  607. package/web-dist/components/section-list/SectionList.js +13 -13
  608. package/web-dist/components/select/Select.js +16 -16
  609. package/web-dist/components/selectable-item/SelectableItem.js +5 -5
  610. package/web-dist/components/selection-provider/SelectionProvider.js +5 -5
  611. package/web-dist/components/sign-in-form/SignInForm.js +18 -18
  612. package/web-dist/components/sign-up-form/SignUpForm.js +18 -18
  613. package/web-dist/components/skeleton/Skeleton.js +22 -22
  614. package/web-dist/components/skeleton-card/SkeletonCard.js +22 -22
  615. package/web-dist/components/skeleton-list/SkeletonList.js +22 -22
  616. package/web-dist/components/skeleton-text/SkeletonText.js +22 -22
  617. package/web-dist/components/surface/Surface.js +7 -7
  618. package/web-dist/components/switch/Switch.js +7 -7
  619. package/web-dist/components/tab/Tab.js +7 -7
  620. package/web-dist/components/tab-list/TabList.js +7 -7
  621. package/web-dist/components/tab-panel/TabPanel.js +7 -7
  622. package/web-dist/components/tabletop-table/TabletopTable.d.ts +7 -0
  623. package/web-dist/components/tabletop-table/TabletopTable.js +19 -0
  624. package/web-dist/components/tabletop-table/index.d.ts +1 -0
  625. package/web-dist/components/tabletop-table/index.js +2 -0
  626. package/web-dist/components/tabs/Tabs.js +7 -7
  627. package/web-dist/components/text/Text.js +6 -6
  628. package/web-dist/components/text-input/TextInput.js +13 -13
  629. package/web-dist/components/time-picker/TimePicker.js +17 -17
  630. package/web-dist/components/timeline/Timeline.js +11 -11
  631. package/web-dist/components/toast/Toast.js +9 -9
  632. package/web-dist/components/toast-provider/ToastProvider.js +9 -9
  633. package/web-dist/components/toolbar/Toolbar.js +19 -19
  634. package/web-dist/components/tree-item/TreeItem.js +16 -16
  635. package/web-dist/components/tree-view/TreeView.d.ts +1 -1
  636. package/web-dist/components/uploader/Uploader.js +22 -22
  637. package/web-dist/components/view/View.js +6 -6
  638. package/web-dist/manifest.json +1650 -1379
  639. package/web-dist/runtime/ZoraProvider.js +8 -8
@@ -0,0 +1,94 @@
1
+ import type { GameDefinition, GameInput, GameOutput } from '@ankhorage/game';
2
+ import type { InteractionPolicyProps } from '@ankhorage/surface';
3
+ import type React from 'react';
4
+ type GameOverlayCornerPlacement = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
5
+ export type GamePointerEvents = 'auto' | 'box-none' | 'box-only' | 'none';
6
+ export type GameEntityEasing = 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out';
7
+ export interface GameEntityMotionProps {
8
+ readonly transitionDurationMs?: number;
9
+ readonly transitionEasing?: GameEntityEasing;
10
+ readonly motionOffsetX?: number;
11
+ readonly motionOffsetY?: number;
12
+ readonly motionOpacityDelta?: number;
13
+ readonly motionScaleDelta?: number;
14
+ readonly motionRotationDelta?: number;
15
+ readonly motionDurationMs?: number;
16
+ readonly motionDelayMs?: number;
17
+ readonly motionEasing?: GameEntityEasing;
18
+ readonly motionRepeat?: boolean;
19
+ readonly motionAlternate?: boolean;
20
+ readonly motionPaused?: boolean;
21
+ readonly motionEssential?: boolean;
22
+ }
23
+ export type GameOverlayPlacement = 'fill' | 'center' | 'top' | 'bottom' | GameOverlayCornerPlacement;
24
+ export interface GameFieldProps extends InteractionPolicyProps {
25
+ readonly children?: React.ReactNode;
26
+ readonly aspectRatio?: number;
27
+ readonly minHeight?: number;
28
+ readonly fill?: boolean;
29
+ readonly clip?: boolean;
30
+ readonly accessibilityLabel?: string;
31
+ readonly testID?: string;
32
+ }
33
+ export interface GameEntityProps extends GameEntityMotionProps, InteractionPolicyProps {
34
+ readonly children?: React.ReactNode;
35
+ readonly x?: number;
36
+ readonly y?: number;
37
+ readonly width?: number;
38
+ readonly height?: number;
39
+ readonly opacity?: number;
40
+ readonly scale?: number;
41
+ readonly rotation?: number;
42
+ readonly zIndex?: number;
43
+ readonly hidden?: boolean;
44
+ readonly pointerEvents?: GamePointerEvents;
45
+ readonly measurementId?: string;
46
+ readonly accessibilityLabel?: string;
47
+ readonly testID?: string;
48
+ }
49
+ export interface GameKeyboardBinding {
50
+ readonly key: string;
51
+ readonly eventType?: string;
52
+ readonly entityId?: string;
53
+ readonly preventDefault?: boolean;
54
+ }
55
+ export interface GameInputZoneProps extends InteractionPolicyProps {
56
+ readonly eventType: string;
57
+ readonly entityId?: string;
58
+ readonly x?: number;
59
+ readonly y?: number;
60
+ readonly width?: number;
61
+ readonly height?: number;
62
+ readonly zIndex?: number;
63
+ readonly enabled?: boolean;
64
+ readonly continuous?: boolean;
65
+ readonly keyboardBindings?: readonly GameKeyboardBinding[];
66
+ readonly accessibilityLabel?: string;
67
+ readonly testID?: string;
68
+ }
69
+ export interface GameMeasurementProbeProps extends InteractionPolicyProps {
70
+ readonly sourceId: string;
71
+ readonly targetId: string;
72
+ readonly eventType?: string;
73
+ readonly entityId?: string;
74
+ readonly delayMs?: number;
75
+ readonly enabled?: boolean;
76
+ }
77
+ export interface GameOverlayProps extends InteractionPolicyProps {
78
+ readonly children?: React.ReactNode;
79
+ readonly placement?: GameOverlayPlacement;
80
+ readonly blocking?: boolean;
81
+ readonly padding?: number;
82
+ readonly accessibilityLabel?: string;
83
+ readonly testID?: string;
84
+ }
85
+ export interface GameProps extends GameFieldProps {
86
+ readonly definition: GameDefinition;
87
+ readonly input?: GameInput;
88
+ readonly seed?: number;
89
+ readonly resetKey?: string;
90
+ readonly autoAdvanceTime?: boolean;
91
+ readonly onOutput?: (output: GameOutput) => void;
92
+ }
93
+ export {};
94
+ //# sourceMappingURL=gamePresentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gamePresentation.d.ts","sourceRoot":"","sources":["../../src/types/gamePresentation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gamePresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gamePresentation.js","sourceRoot":"","sources":["../../src/types/gamePresentation.ts"],"names":[],"mappings":"","sourcesContent":["import type { GameDefinition, GameInput, GameOutput } from '@ankhorage/game';\nimport type { InteractionPolicyProps } from '@ankhorage/surface';\nimport type React from 'react';\n\ntype GameOverlayCornerPlacement = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n\nexport type GamePointerEvents = 'auto' | 'box-none' | 'box-only' | 'none';\nexport type GameEntityEasing = 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out';\n\nexport interface GameEntityMotionProps {\n readonly transitionDurationMs?: number;\n readonly transitionEasing?: GameEntityEasing;\n readonly motionOffsetX?: number;\n readonly motionOffsetY?: number;\n readonly motionOpacityDelta?: number;\n readonly motionScaleDelta?: number;\n readonly motionRotationDelta?: number;\n readonly motionDurationMs?: number;\n readonly motionDelayMs?: number;\n readonly motionEasing?: GameEntityEasing;\n readonly motionRepeat?: boolean;\n readonly motionAlternate?: boolean;\n readonly motionPaused?: boolean;\n readonly motionEssential?: boolean;\n}\nexport type GameOverlayPlacement =\n 'fill' | 'center' | 'top' | 'bottom' | GameOverlayCornerPlacement;\n\nexport interface GameFieldProps extends InteractionPolicyProps {\n readonly children?: React.ReactNode;\n readonly aspectRatio?: number;\n readonly minHeight?: number;\n readonly fill?: boolean;\n readonly clip?: boolean;\n readonly accessibilityLabel?: string;\n readonly testID?: string;\n}\n\nexport interface GameEntityProps extends GameEntityMotionProps, InteractionPolicyProps {\n readonly children?: React.ReactNode;\n readonly x?: number;\n readonly y?: number;\n readonly width?: number;\n readonly height?: number;\n readonly opacity?: number;\n readonly scale?: number;\n readonly rotation?: number;\n readonly zIndex?: number;\n readonly hidden?: boolean;\n readonly pointerEvents?: GamePointerEvents;\n readonly measurementId?: string;\n readonly accessibilityLabel?: string;\n readonly testID?: string;\n}\n\nexport interface GameKeyboardBinding {\n readonly key: string;\n readonly eventType?: string;\n readonly entityId?: string;\n readonly preventDefault?: boolean;\n}\n\nexport interface GameInputZoneProps extends InteractionPolicyProps {\n readonly eventType: string;\n readonly entityId?: string;\n readonly x?: number;\n readonly y?: number;\n readonly width?: number;\n readonly height?: number;\n readonly zIndex?: number;\n readonly enabled?: boolean;\n readonly continuous?: boolean;\n readonly keyboardBindings?: readonly GameKeyboardBinding[];\n readonly accessibilityLabel?: string;\n readonly testID?: string;\n}\n\nexport interface GameMeasurementProbeProps extends InteractionPolicyProps {\n readonly sourceId: string;\n readonly targetId: string;\n readonly eventType?: string;\n readonly entityId?: string;\n readonly delayMs?: number;\n readonly enabled?: boolean;\n}\n\nexport interface GameOverlayProps extends InteractionPolicyProps {\n readonly children?: React.ReactNode;\n readonly placement?: GameOverlayPlacement;\n readonly blocking?: boolean;\n readonly padding?: number;\n readonly accessibilityLabel?: string;\n readonly testID?: string;\n}\n\nexport interface GameProps extends GameFieldProps {\n readonly definition: GameDefinition;\n readonly input?: GameInput;\n readonly seed?: number;\n readonly resetKey?: string;\n readonly autoAdvanceTime?: boolean;\n readonly onOutput?: (output: GameOutput) => void;\n}\n"]}
@@ -0,0 +1,29 @@
1
+ import type { GameEvent, GameOutput, GameSession } from '@ankhorage/game';
2
+ import type { InteractionPolicy } from '@ankhorage/surface';
3
+ export interface GameMeasurementBounds {
4
+ readonly left: number;
5
+ readonly right: number;
6
+ readonly top: number;
7
+ readonly bottom: number;
8
+ readonly width: number;
9
+ readonly height: number;
10
+ }
11
+ export type GameMeasurementReader = () => Promise<GameMeasurementBounds | undefined>;
12
+ export interface GameMeasurementRegistry {
13
+ readonly registerMeasurement: (id: string, reader: GameMeasurementReader) => () => void;
14
+ readonly measure: (id: string) => Promise<GameMeasurementBounds | undefined>;
15
+ }
16
+ export interface GameRuntimeValue {
17
+ readonly session: GameSession;
18
+ readonly dispatch: (event: GameEvent) => void;
19
+ }
20
+ export interface GameRuntimeContextValue extends GameRuntimeValue, GameMeasurementRegistry {
21
+ readonly interactionPolicy?: InteractionPolicy;
22
+ }
23
+ export interface GameRuntimeState {
24
+ readonly key: string;
25
+ readonly session: GameSession;
26
+ readonly outputs: readonly GameOutput[];
27
+ readonly revision: number;
28
+ }
29
+ //# sourceMappingURL=gameRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gameRuntime.d.ts","sourceRoot":"","sources":["../../src/types/gameRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;AAErF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,KAAK,MAAM,IAAI,CAAC;IACxF,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB,EAAE,uBAAuB;IACxF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gameRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gameRuntime.js","sourceRoot":"","sources":["../../src/types/gameRuntime.ts"],"names":[],"mappings":"","sourcesContent":["import type { GameEvent, GameOutput, GameSession } from '@ankhorage/game';\nimport type { InteractionPolicy } from '@ankhorage/surface';\n\nexport interface GameMeasurementBounds {\n readonly left: number;\n readonly right: number;\n readonly top: number;\n readonly bottom: number;\n readonly width: number;\n readonly height: number;\n}\n\nexport type GameMeasurementReader = () => Promise<GameMeasurementBounds | undefined>;\n\nexport interface GameMeasurementRegistry {\n readonly registerMeasurement: (id: string, reader: GameMeasurementReader) => () => void;\n readonly measure: (id: string) => Promise<GameMeasurementBounds | undefined>;\n}\n\nexport interface GameRuntimeValue {\n readonly session: GameSession;\n readonly dispatch: (event: GameEvent) => void;\n}\n\nexport interface GameRuntimeContextValue extends GameRuntimeValue, GameMeasurementRegistry {\n readonly interactionPolicy?: InteractionPolicy;\n}\n\nexport interface GameRuntimeState {\n readonly key: string;\n readonly session: GameSession;\n readonly outputs: readonly GameOutput[];\n readonly revision: number;\n}\n"]}
@@ -0,0 +1,129 @@
1
+ import type React from 'react';
2
+ import type { ZoraBaseProps } from './base';
3
+ export type PlayingCardSuit = 'clubs' | 'diamonds' | 'hearts' | 'spades';
4
+ export type TabletopCardSize = 'large' | 'medium' | 'small';
5
+ export type TabletopShape = 'circle' | 'oval' | 'rounded';
6
+ export type TabletopSeatCount = 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
7
+ export interface PlayingCardValue {
8
+ readonly rank: string;
9
+ readonly suit: PlayingCardSuit;
10
+ }
11
+ export interface TabletopSeatState {
12
+ readonly id: string;
13
+ readonly label: React.ReactNode;
14
+ readonly sublabel?: React.ReactNode;
15
+ readonly cards?: readonly PlayingCardValue[];
16
+ readonly faceDownCards?: number;
17
+ readonly selected?: boolean;
18
+ readonly muted?: boolean;
19
+ readonly disabled?: boolean;
20
+ readonly tokenLabel?: React.ReactNode;
21
+ readonly accessibilityLabel?: string;
22
+ }
23
+ export type TabletopGameSeatPresentation = Omit<TabletopSeatState, 'id'>;
24
+ export interface TabletopGameSeatDefinition {
25
+ readonly id: string;
26
+ readonly defaultState: TabletopGameSeatPresentation;
27
+ }
28
+ export interface TabletopGameParticipantState {
29
+ readonly seatId: string;
30
+ readonly state: Partial<TabletopGameSeatPresentation>;
31
+ }
32
+ export interface CreateTabletopGameSeatsInput {
33
+ readonly seats: readonly TabletopGameSeatDefinition[];
34
+ readonly participants: readonly TabletopGameParticipantState[];
35
+ readonly missingParticipantState?: Partial<TabletopGameSeatPresentation>;
36
+ }
37
+ export interface TabletopColorScheme {
38
+ readonly cardBack: string;
39
+ readonly cardBackBorder: string;
40
+ readonly cardBorder: string;
41
+ readonly cardSurface: string;
42
+ readonly cardText: string;
43
+ readonly mutedText: string;
44
+ readonly redSuitText: string;
45
+ readonly seatBorder: string;
46
+ readonly seatMutedText: string;
47
+ readonly seatSelectedBorder: string;
48
+ readonly seatSurface: string;
49
+ readonly seatText: string;
50
+ readonly tableBorder: string;
51
+ readonly tableFelt: string;
52
+ readonly tableInnerBorder: string;
53
+ readonly tableMutedText: string;
54
+ readonly tableText: string;
55
+ readonly tokenSurface: string;
56
+ readonly tokenText: string;
57
+ }
58
+ export type TabletopColorOverrides = Partial<TabletopColorScheme>;
59
+ export interface CardBackProps extends ZoraBaseProps {
60
+ readonly size?: TabletopCardSize;
61
+ readonly muted?: boolean;
62
+ readonly accessibilityLabel?: string;
63
+ readonly colorScheme?: TabletopColorOverrides;
64
+ }
65
+ export interface CardHandProps extends ZoraBaseProps {
66
+ readonly cards?: readonly PlayingCardValue[];
67
+ readonly faceDownCards?: number;
68
+ readonly size?: TabletopCardSize;
69
+ readonly muted?: boolean;
70
+ readonly colorScheme?: TabletopColorOverrides;
71
+ readonly accessibilityLabel?: string;
72
+ }
73
+ export interface PlayingCardProps extends ZoraBaseProps {
74
+ readonly card: PlayingCardValue;
75
+ readonly size?: TabletopCardSize;
76
+ readonly selected?: boolean;
77
+ readonly muted?: boolean;
78
+ readonly accessibilityLabel?: string;
79
+ readonly colorScheme?: TabletopColorOverrides;
80
+ }
81
+ export interface TabletopTableProps extends ZoraBaseProps {
82
+ readonly seats: readonly TabletopSeatState[];
83
+ readonly centerCards?: readonly PlayingCardValue[];
84
+ readonly centerLabel?: React.ReactNode;
85
+ readonly centerSublabel?: React.ReactNode;
86
+ readonly shape?: TabletopShape;
87
+ readonly seatCount?: TabletopSeatCount;
88
+ readonly cardSize?: TabletopCardSize;
89
+ readonly disabled?: boolean;
90
+ readonly colorScheme?: TabletopColorOverrides;
91
+ readonly accessibilityLabel?: string;
92
+ }
93
+ export interface PokerTrainingPlayer {
94
+ readonly position: string;
95
+ readonly stack?: number;
96
+ readonly bet?: number;
97
+ readonly cards?: readonly PlayingCardValue[];
98
+ readonly folded?: boolean;
99
+ readonly isHero?: boolean;
100
+ }
101
+ export type PokerTrainingTableSize = '6max' | '9max';
102
+ export interface PokerTrainingTaskTableData {
103
+ readonly tableSize?: PokerTrainingTableSize;
104
+ readonly blinds?: {
105
+ readonly small: number;
106
+ readonly big: number;
107
+ };
108
+ readonly heroPosition?: string;
109
+ readonly heroCards?: readonly PlayingCardValue[];
110
+ readonly communityCards?: readonly PlayingCardValue[];
111
+ readonly pot?: number;
112
+ readonly players?: readonly PokerTrainingPlayer[];
113
+ }
114
+ export interface PokerTrainingTableProps extends Omit<TabletopTableProps, 'seatCount' | 'seats' | 'centerCards' | 'centerLabel' | 'centerSublabel'> {
115
+ readonly task?: PokerTrainingTaskTableData;
116
+ readonly defaultStackBigBlinds?: number;
117
+ }
118
+ export interface CreatePokerTrainingTableStateOptions {
119
+ readonly defaultStackBigBlinds?: number;
120
+ }
121
+ export interface PokerTrainingTableState {
122
+ readonly seatCount: TabletopSeatCount;
123
+ readonly seats: readonly TabletopSeatState[];
124
+ readonly centerCards: readonly PlayingCardValue[];
125
+ readonly centerLabel?: string;
126
+ readonly centerSublabel?: string;
127
+ readonly accessibilityLabel: string;
128
+ }
129
+ //# sourceMappingURL=tabletop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabletop.d.ts","sourceRoot":"","sources":["../../src/types/tabletop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tabletop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabletop.js","sourceRoot":"","sources":["../../src/types/tabletop.ts"],"names":[],"mappings":"","sourcesContent":["import type React from 'react';\n\nimport type { ZoraBaseProps } from './base';\n\nexport type PlayingCardSuit = 'clubs' | 'diamonds' | 'hearts' | 'spades';\nexport type TabletopCardSize = 'large' | 'medium' | 'small';\nexport type TabletopShape = 'circle' | 'oval' | 'rounded';\nexport type TabletopSeatCount = 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport interface PlayingCardValue {\n readonly rank: string;\n readonly suit: PlayingCardSuit;\n}\nexport interface TabletopSeatState {\n readonly id: string;\n readonly label: React.ReactNode;\n readonly sublabel?: React.ReactNode;\n readonly cards?: readonly PlayingCardValue[];\n readonly faceDownCards?: number;\n readonly selected?: boolean;\n readonly muted?: boolean;\n readonly disabled?: boolean;\n readonly tokenLabel?: React.ReactNode;\n readonly accessibilityLabel?: string;\n}\nexport type TabletopGameSeatPresentation = Omit<TabletopSeatState, 'id'>;\nexport interface TabletopGameSeatDefinition {\n readonly id: string;\n readonly defaultState: TabletopGameSeatPresentation;\n}\nexport interface TabletopGameParticipantState {\n readonly seatId: string;\n readonly state: Partial<TabletopGameSeatPresentation>;\n}\nexport interface CreateTabletopGameSeatsInput {\n readonly seats: readonly TabletopGameSeatDefinition[];\n readonly participants: readonly TabletopGameParticipantState[];\n readonly missingParticipantState?: Partial<TabletopGameSeatPresentation>;\n}\nexport interface TabletopColorScheme {\n readonly cardBack: string;\n readonly cardBackBorder: string;\n readonly cardBorder: string;\n readonly cardSurface: string;\n readonly cardText: string;\n readonly mutedText: string;\n readonly redSuitText: string;\n readonly seatBorder: string;\n readonly seatMutedText: string;\n readonly seatSelectedBorder: string;\n readonly seatSurface: string;\n readonly seatText: string;\n readonly tableBorder: string;\n readonly tableFelt: string;\n readonly tableInnerBorder: string;\n readonly tableMutedText: string;\n readonly tableText: string;\n readonly tokenSurface: string;\n readonly tokenText: string;\n}\nexport type TabletopColorOverrides = Partial<TabletopColorScheme>;\nexport interface CardBackProps extends ZoraBaseProps {\n readonly size?: TabletopCardSize;\n readonly muted?: boolean;\n readonly accessibilityLabel?: string;\n readonly colorScheme?: TabletopColorOverrides;\n}\nexport interface CardHandProps extends ZoraBaseProps {\n readonly cards?: readonly PlayingCardValue[];\n readonly faceDownCards?: number;\n readonly size?: TabletopCardSize;\n readonly muted?: boolean;\n readonly colorScheme?: TabletopColorOverrides;\n readonly accessibilityLabel?: string;\n}\nexport interface PlayingCardProps extends ZoraBaseProps {\n readonly card: PlayingCardValue;\n readonly size?: TabletopCardSize;\n readonly selected?: boolean;\n readonly muted?: boolean;\n readonly accessibilityLabel?: string;\n readonly colorScheme?: TabletopColorOverrides;\n}\nexport interface TabletopTableProps extends ZoraBaseProps {\n readonly seats: readonly TabletopSeatState[];\n readonly centerCards?: readonly PlayingCardValue[];\n readonly centerLabel?: React.ReactNode;\n readonly centerSublabel?: React.ReactNode;\n readonly shape?: TabletopShape;\n readonly seatCount?: TabletopSeatCount;\n readonly cardSize?: TabletopCardSize;\n readonly disabled?: boolean;\n readonly colorScheme?: TabletopColorOverrides;\n readonly accessibilityLabel?: string;\n}\nexport interface PokerTrainingPlayer {\n readonly position: string;\n readonly stack?: number;\n readonly bet?: number;\n readonly cards?: readonly PlayingCardValue[];\n readonly folded?: boolean;\n readonly isHero?: boolean;\n}\nexport type PokerTrainingTableSize = '6max' | '9max';\nexport interface PokerTrainingTaskTableData {\n readonly tableSize?: PokerTrainingTableSize;\n readonly blinds?: { readonly small: number; readonly big: number };\n readonly heroPosition?: string;\n readonly heroCards?: readonly PlayingCardValue[];\n readonly communityCards?: readonly PlayingCardValue[];\n readonly pot?: number;\n readonly players?: readonly PokerTrainingPlayer[];\n}\nexport interface PokerTrainingTableProps extends Omit<\n TabletopTableProps,\n 'seatCount' | 'seats' | 'centerCards' | 'centerLabel' | 'centerSublabel'\n> {\n readonly task?: PokerTrainingTaskTableData;\n readonly defaultStackBigBlinds?: number;\n}\nexport interface CreatePokerTrainingTableStateOptions {\n readonly defaultStackBigBlinds?: number;\n}\nexport interface PokerTrainingTableState {\n readonly seatCount: TabletopSeatCount;\n readonly seats: readonly TabletopSeatState[];\n readonly centerCards: readonly PlayingCardValue[];\n readonly centerLabel?: string;\n readonly centerSublabel?: string;\n readonly accessibilityLabel: string;\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ankhorage/zora",
3
3
  "type": "module",
4
- "version": "21.0.22",
4
+ "version": "21.1.0",
5
5
  "description": "Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.",
6
6
  "homepage": "https://github.com/ankhorage/zora#readme",
7
7
  "bugs": {
@@ -42,8 +42,10 @@
42
42
  "dependencies": {
43
43
  "@ankhorage/color-theory": "^0.3.1",
44
44
  "@ankhorage/contracts": "^22.8.2",
45
+ "@ankhorage/game": "^0.1.2",
46
+ "@ankhorage/runtime": "^3.0.25",
45
47
  "@ankhorage/surface": "^9.1.7",
46
- "@ankhorage/utility": "^1.8.0",
48
+ "@ankhorage/utility": "^1.8.1",
47
49
  "expo-document-picker": "~57.0.1",
48
50
  "expo-image-picker": "~57.0.16"
49
51
  },
@@ -117,13 +119,12 @@
117
119
  "format:check": "ankhorage-prettier --check .",
118
120
  "prepack": "bun run build",
119
121
  "test": "bun run build && bun test src",
120
- "test:next-materialization": "bun scripts/web-artifacts/verifyNextWebMaterialization.ts",
121
122
  "typecheck": "bun x tsc --noEmit -p tsconfig.json && bun x tsc --noEmit -p tsconfig.scripts.json",
122
123
  "version-packages": "ankhorage-changeset version"
123
124
  },
124
125
  "devDependencies": {
125
- "@ankhorage/devtools": "^1.18.5",
126
- "@ankhorage/paradox": "^0.1.26",
126
+ "@ankhorage/devtools": "^2.0.0",
127
+ "@ankhorage/paradox": "^0.2.6",
127
128
  "@react-native-vector-icons/fontawesome": "^13.1.3",
128
129
  "@react-native-vector-icons/fontawesome5": "^13.1.3",
129
130
  "@react-native-vector-icons/fontawesome6": "^13.1.3",
@@ -136,8 +137,6 @@
136
137
  "cytoscape": "^3.34.3",
137
138
  "cytoscape-elk": "^2.3.0",
138
139
  "happy-dom": "^20.11.6",
139
- "next": "16.3.5",
140
- "playwright-core": "^1.58.2",
141
140
  "react": "19.2.3",
142
141
  "react-dom": "19.2.3",
143
142
  "react-native": "0.86.3",
@@ -63,6 +63,11 @@ export const CONTAINER_ALLOWED_CHILDREN = [
63
63
  'MissingElement',
64
64
  ] as const;
65
65
 
66
+ export const GAME_ALLOWED_CHILDREN = ['Game', 'GameField'] as const;
67
+
68
+ export const CHESS_ALLOWED_CHILDREN = ['ChessBoard', 'OpeningBook'] as const;
69
+ export const TABLETOP_ALLOWED_CHILDREN = ['TabletopTable', 'PokerTrainingTable'] as const;
70
+
66
71
  export const CONTENT_RAIL_ALLOWED_CHILDREN = [
67
72
  'Chip',
68
73
  'ChipGroup',
@@ -84,6 +89,14 @@ export const CONTENT_RAIL_ALLOWED_CHILDREN = [
84
89
  'MissingElement',
85
90
  ] as const;
86
91
 
87
- export const SCREEN_SECTION_ALLOWED_CHILDREN = [...CONTAINER_ALLOWED_CHILDREN] as const;
92
+ export const SCREEN_SECTION_ALLOWED_CHILDREN = [
93
+ ...CONTAINER_ALLOWED_CHILDREN,
94
+ ...CHESS_ALLOWED_CHILDREN,
95
+ ...GAME_ALLOWED_CHILDREN,
96
+ ...TABLETOP_ALLOWED_CHILDREN,
97
+ ] as const;
88
98
 
89
- export const SCREEN_ALLOWED_CHILDREN = ['ScreenSection', ...CONTAINER_ALLOWED_CHILDREN] as const;
99
+ export const SCREEN_ALLOWED_CHILDREN = [
100
+ 'ScreenSection',
101
+ ...SCREEN_SECTION_ALLOWED_CHILDREN,
102
+ ] as const;
@@ -17,6 +17,32 @@ describe('ZORA_COMPONENT_META public API', () => {
17
17
  });
18
18
 
19
19
  describe('ZORA_COMPONENT_META registry coverage', () => {
20
+ test('registers the six Game components and their canonical placements', () => {
21
+ const names = [
22
+ 'Game',
23
+ 'GameField',
24
+ 'GameEntity',
25
+ 'GameInputZone',
26
+ 'GameMeasurementProbe',
27
+ 'GameOverlay',
28
+ ] as const;
29
+ const gameMetadata = Object.values(ZORA_COMPONENT_META).filter((meta) =>
30
+ names.some((name) => name === meta.name),
31
+ );
32
+ expect(gameMetadata).toHaveLength(names.length);
33
+ for (const meta of gameMetadata) expect(meta.directManifestNode).toBe(true);
34
+ expect(ZORA_COMPONENT_META.Screen.allowedChildren).toContain('Game');
35
+ expect(ZORA_COMPONENT_META.ScreenSection.allowedChildren).toContain('GameField');
36
+ expect(ZORA_COMPONENT_META.Game.allowedChildren).toContain('GameInputZone');
37
+ expect(ZORA_COMPONENT_META.Game.allowedChildren).toContain('GameMeasurementProbe');
38
+ expect(ZORA_COMPONENT_META.GameField.allowedChildren).toContain('GameEntity');
39
+ expect(ZORA_COMPONENT_META.GameField.allowedChildren).toContain('GameOverlay');
40
+ expect(ZORA_COMPONENT_META.Game.bindings?.props?.definition?.value.type).toBe('object');
41
+ expect(ZORA_COMPONENT_META.Game.bindings?.events?.output?.payload.eventType).toBe(
42
+ 'game.output',
43
+ );
44
+ });
45
+
20
46
  test('covers every public UI React component export (foundation/components/patterns/layout)', async () => {
21
47
  const source = await Bun.file('src/index.ts').text();
22
48
  const componentExports = Array.from(
@@ -185,6 +211,10 @@ describe('ZORA_COMPONENT_META invariants', () => {
185
211
  'Divider',
186
212
  'ChatListItem',
187
213
  'CameraPermissionView',
214
+ 'ChessBoard',
215
+ 'GameInputZone',
216
+ 'GameMeasurementProbe',
217
+ 'OpeningBook',
188
218
  'ScanOverlay',
189
219
  'ProductCard',
190
220
  'Progress',
@@ -192,6 +222,8 @@ describe('ZORA_COMPONENT_META invariants', () => {
192
222
  'ReaderSurface',
193
223
  'MissingElement',
194
224
  'TimePicker',
225
+ 'TabletopTable',
226
+ 'PokerTrainingTable',
195
227
  ]);
196
228
 
197
229
  const expectedContainerNodes = new Set([
@@ -200,6 +232,10 @@ describe('ZORA_COMPONENT_META invariants', () => {
200
232
  'Dialog',
201
233
  'Form',
202
234
  'Gradient',
235
+ 'Game',
236
+ 'GameEntity',
237
+ 'GameField',
238
+ 'GameOverlay',
203
239
  'Surface',
204
240
  'MediaCard',
205
241
  'FlatList',
@@ -254,6 +290,63 @@ describe('ZORA_COMPONENT_META invariants', () => {
254
290
  expect(ZORA_COMPONENT_META.Tabs.events?.valueChange?.eventType).toBe('tabs.valueChange');
255
291
  });
256
292
 
293
+ test('Chess and Tabletop retain their direct placement hierarchy without exposing card subprimitives', () => {
294
+ for (const name of ['CardBack', 'CardHand', 'PlayingCard']) {
295
+ expect(
296
+ Object.values(ZORA_COMPONENT_META).find((meta) => meta.name === name)?.directManifestNode,
297
+ ).toBe(false);
298
+ for (const meta of Object.values(ZORA_COMPONENT_META)) {
299
+ expect(meta.allowedChildren).not.toContain(name);
300
+ }
301
+ }
302
+ for (const parent of [
303
+ ZORA_COMPONENT_META.Card,
304
+ ZORA_COMPONENT_META.Grid,
305
+ ZORA_COMPONENT_META.Screen,
306
+ ZORA_COMPONENT_META.ScreenSection,
307
+ ]) {
308
+ for (const name of ['ChessBoard', 'OpeningBook', 'TabletopTable', 'PokerTrainingTable']) {
309
+ expect(parent.allowedChildren).toContain(name);
310
+ }
311
+ }
312
+ expect(ZORA_COMPONENT_META.View.allowedChildren).toContain('ChessBoard');
313
+ expect(ZORA_COMPONENT_META.View.allowedChildren).not.toContain('TabletopTable');
314
+ expect(ZORA_COMPONENT_META.ScrollView.allowedChildren).not.toContain('PokerTrainingTable');
315
+ });
316
+
317
+ test('Chess and Tabletop presentation bindings retain typed inputs and interaction intents', () => {
318
+ expect(ZORA_COMPONENT_META.ChessBoard.bindings?.props?.pieces?.value).toEqual({
319
+ type: 'array',
320
+ itemType: 'object',
321
+ });
322
+ expect(ZORA_COMPONENT_META.ChessBoard.bindings?.props?.legalTargets?.value).toEqual({
323
+ type: 'array',
324
+ itemType: 'string',
325
+ });
326
+ expect(ZORA_COMPONENT_META.OpeningBook.bindings?.props?.moves?.value).toEqual({
327
+ type: 'array',
328
+ itemType: 'object',
329
+ });
330
+ expect(ZORA_COMPONENT_META.OpeningBook.bindings?.events?.movePress?.payload.eventType).toBe(
331
+ 'chess.openingMovePress',
332
+ );
333
+ expect(ZORA_COMPONENT_META.TabletopTable.bindings?.props?.seats?.value).toEqual({
334
+ type: 'array',
335
+ itemType: 'object',
336
+ });
337
+ expect(ZORA_COMPONENT_META.PokerTrainingTable.bindings?.props?.task?.value).toMatchObject({
338
+ type: 'object',
339
+ fields: [
340
+ { path: 'blinds' },
341
+ { path: 'heroPosition' },
342
+ { path: 'heroCards' },
343
+ { path: 'communityCards' },
344
+ { path: 'pot' },
345
+ { path: 'players' },
346
+ ],
347
+ });
348
+ });
349
+
257
350
  test('Accordion constrains authored items to its canonical hierarchy', () => {
258
351
  expect(ZORA_COMPONENT_META.Accordion.directManifestNode).toBe(true);
259
352
  expect(ZORA_COMPONENT_META.Accordion.allowedChildren).toEqual(['AccordionItem']);
@@ -24,6 +24,7 @@ import { postCardMeta } from '../card/postCardMeta';
24
24
  import { productCardMeta } from '../card/productCardMeta';
25
25
  import { chatListItemMeta } from '../chat/chatListItemMeta';
26
26
  import { messageBubbleMeta } from '../chat/messageBubbleMeta';
27
+ import { chessBoardMeta, openingBookMeta } from '../chess/meta';
27
28
  import { chipGroupMeta } from '../chip/chipGroupMeta';
28
29
  import { chipMeta } from '../chip/chipMeta';
29
30
  import { collectionEditorMeta } from '../collection-editor/meta';
@@ -42,6 +43,12 @@ import { searchInputMeta } from '../form/search-input/searchInputMeta';
42
43
  import { selectMeta } from '../form/select/selectMeta';
43
44
  import { switchMeta } from '../form/switch/switchMeta';
44
45
  import { textInputMeta } from '../form/text-input/textInputMeta';
46
+ import { gameEntityMeta } from '../game/meta/gameEntityMeta';
47
+ import { gameFieldMeta } from '../game/meta/gameFieldMeta';
48
+ import { gameInputZoneMeta } from '../game/meta/gameInputZoneMeta';
49
+ import { gameMeasurementProbeMeta } from '../game/meta/gameMeasurementProbeMeta';
50
+ import { gameMeta } from '../game/meta/gameMeta';
51
+ import { gameOverlayMeta } from '../game/meta/gameOverlayMeta';
45
52
  import { gradientMeta } from '../gradient/gradientMeta';
46
53
  import { heroMeta } from '../hero/heroMeta';
47
54
  import { iconMeta } from '../icon/iconMeta';
@@ -74,6 +81,13 @@ import {
74
81
  skeletonTextMeta,
75
82
  } from '../skeleton/skeletonMeta';
76
83
  import { surfaceMeta } from '../surface/surfaceMeta';
84
+ import {
85
+ cardBackMeta,
86
+ cardHandMeta,
87
+ playingCardMeta,
88
+ pokerTrainingTableMeta,
89
+ tabletopTableMeta,
90
+ } from '../tabletop/meta';
77
91
  import { tabListMeta } from '../tabs/tabListMeta';
78
92
  import { tabMeta } from '../tabs/tabMeta';
79
93
  import { tabPanelMeta } from '../tabs/tabPanelMeta';
@@ -119,6 +133,12 @@ export const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = finalizeFeatureMet
119
133
  FormError: formErrorMeta,
120
134
  Field: fieldMeta,
121
135
  Gradient: gradientMeta,
136
+ Game: gameMeta,
137
+ GameField: gameFieldMeta,
138
+ GameEntity: gameEntityMeta,
139
+ GameInputZone: gameInputZoneMeta,
140
+ GameMeasurementProbe: gameMeasurementProbeMeta,
141
+ GameOverlay: gameOverlayMeta,
122
142
  Heading: headingMeta,
123
143
  Icon: iconMeta,
124
144
  IconButton: iconButtonMeta,
@@ -165,6 +185,7 @@ export const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = finalizeFeatureMet
165
185
  SignInForm: signInFormMeta,
166
186
  SignUpForm: signUpFormMeta,
167
187
  ChatListItem: chatListItemMeta,
188
+ ChessBoard: chessBoardMeta,
168
189
  CollectionEditor: collectionEditorMeta,
169
190
  ContentRail: contentRailMeta,
170
191
  EmptyState: emptyStateMeta,
@@ -173,6 +194,7 @@ export const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = finalizeFeatureMet
173
194
  ListItem: listItemMeta,
174
195
  ListSection: listSectionMeta,
175
196
  MessageBubble: messageBubbleMeta,
197
+ OpeningBook: openingBookMeta,
176
198
  MissingElement: missingElementMeta,
177
199
  PostCard: postCardMeta,
178
200
  ProductCard: productCardMeta,
@@ -185,6 +207,11 @@ export const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = finalizeFeatureMet
185
207
  SelectionProvider: selectionProviderMeta,
186
208
  PaletteItem: paletteItemMeta,
187
209
  Timeline: timelineMeta,
210
+ CardBack: cardBackMeta,
211
+ CardHand: cardHandMeta,
212
+ PlayingCard: playingCardMeta,
213
+ TabletopTable: tabletopTableMeta,
214
+ PokerTrainingTable: pokerTrainingTableMeta,
188
215
  TreeItem: treeItemMeta,
189
216
  TreeView: treeViewMeta,
190
217
  });
@@ -42,6 +42,9 @@ export const FEATURE_MANIFEST_ELEMENTS = {
42
42
  'time-picker': ['TimePicker'],
43
43
  uploader: ['Uploader'],
44
44
  'bottom-sheet': ['BottomSheet'],
45
+ chess: ['ChessBoard', 'OpeningBook'],
46
+ game: ['Game', 'GameField', 'GameEntity', 'GameInputZone', 'GameMeasurementProbe', 'GameOverlay'],
47
+ tabletop: ['TabletopTable', 'PokerTrainingTable'],
45
48
  } as const;
46
49
 
47
50
  export const ZORA_THEME_TOKEN_FAMILIES = [
@@ -11,10 +11,6 @@ import { resolveButtonThemeRecipe } from '../../utils/resolveButtonThemeRecipe';
11
11
  * Use `Button` for explicit user actions that should follow ZORA's semantic color,
12
12
  * variant, and size recipes across React Native and React Native Web.
13
13
  *
14
- * @example Basic action
15
- * ```tsx
16
- * <Button color="primary" variant="solid" onPress={save}>Save</Button>
17
- * ```
18
14
  */
19
15
  export const Button = withZoraThemeScope(ButtonInner);
20
16
 
@@ -15,10 +15,6 @@ import { resolveCardVariant } from '../../utils/resolveCardVariant';
15
15
  * Use `Card` for reusable content blocks that should inherit ZORA spacing,
16
16
  * radius, tone, and responsive header layout without hand-assembling primitives.
17
17
  *
18
- * @example Content card
19
- * ```tsx
20
- * <Card title="Project" description="Latest activity">...</Card>
21
- * ```
22
18
  */
23
19
  export const Card = withZoraThemeScope(CardInner);
24
20