@dreamboard-games/sdk 0.2.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 (369) hide show
  1. package/LICENSE.md +96 -0
  2. package/README.md +12 -0
  3. package/dist/HandView-ncJIVLhN.d.ts +193 -0
  4. package/dist/ResourceCounter-CTREyF73.d.ts +102 -0
  5. package/dist/ThemeProvider-fy0_QzgO.d.ts +99 -0
  6. package/dist/bundle-TIZcw8LB.d.ts +281 -0
  7. package/dist/cards-Sl3b40Mv.d.ts +13 -0
  8. package/dist/chunk-7YAHLYBR.js +481 -0
  9. package/dist/chunk-7YAHLYBR.js.map +1 -0
  10. package/dist/chunk-FDNZTDD6.js +8085 -0
  11. package/dist/chunk-FDNZTDD6.js.map +1 -0
  12. package/dist/chunk-GKKBPPSW.js +598 -0
  13. package/dist/chunk-GKKBPPSW.js.map +1 -0
  14. package/dist/chunk-I46YJSOD.js +1 -0
  15. package/dist/chunk-I46YJSOD.js.map +1 -0
  16. package/dist/chunk-KAELH4KC.js +104 -0
  17. package/dist/chunk-KAELH4KC.js.map +1 -0
  18. package/dist/chunk-PZ5AY32C.js +10 -0
  19. package/dist/chunk-PZ5AY32C.js.map +1 -0
  20. package/dist/chunk-T3ZKNUZ7.js +1 -0
  21. package/dist/chunk-T3ZKNUZ7.js.map +1 -0
  22. package/dist/chunk-T52J5RMF.js +1 -0
  23. package/dist/chunk-T52J5RMF.js.map +1 -0
  24. package/dist/chunk-TDSWKVZ4.js +5401 -0
  25. package/dist/chunk-TDSWKVZ4.js.map +1 -0
  26. package/dist/chunk-U5C6BONG.js +34 -0
  27. package/dist/chunk-U5C6BONG.js.map +1 -0
  28. package/dist/chunk-VDXOF4FW.js +69 -0
  29. package/dist/chunk-VDXOF4FW.js.map +1 -0
  30. package/dist/chunk-VFTAA4WO.js +115 -0
  31. package/dist/chunk-VFTAA4WO.js.map +1 -0
  32. package/dist/chunk-WN74KVNY.js +17 -0
  33. package/dist/chunk-WN74KVNY.js.map +1 -0
  34. package/dist/chunk-WYPQ3GG5.js +10990 -0
  35. package/dist/chunk-WYPQ3GG5.js.map +1 -0
  36. package/dist/components-D5ZRE2Hl.d.ts +1451 -0
  37. package/dist/generated/runtime/primitives.d.ts +12 -0
  38. package/dist/generated/runtime/primitives.js +180 -0
  39. package/dist/generated/runtime/primitives.js.map +1 -0
  40. package/dist/generated/runtime-api.d.ts +3 -0
  41. package/dist/generated/runtime-api.js +2 -0
  42. package/dist/generated/runtime-api.js.map +1 -0
  43. package/dist/generated/runtime.d.ts +14 -0
  44. package/dist/generated/runtime.js +18 -0
  45. package/dist/generated/runtime.js.map +1 -0
  46. package/dist/generated/workspace-contract.d.ts +14 -0
  47. package/dist/generated/workspace-contract.js +14 -0
  48. package/dist/generated/workspace-contract.js.map +1 -0
  49. package/dist/hex-board-view-D_07hO6O.d.ts +933 -0
  50. package/dist/hex-color-MhOyuY-o.d.ts +8 -0
  51. package/dist/index-BwqPQtBu.d.ts +1433 -0
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.js +12 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/infrastructure/reducer-bundle-abi.d.ts +1083 -0
  56. package/dist/infrastructure/reducer-bundle-abi.js +14 -0
  57. package/dist/infrastructure/reducer-bundle-abi.js.map +1 -0
  58. package/dist/infrastructure/workspace-codegen.d.ts +53 -0
  59. package/dist/infrastructure/workspace-codegen.js +44 -0
  60. package/dist/infrastructure/workspace-codegen.js.map +1 -0
  61. package/dist/manifest-contract-BNHVGFtU.d.ts +9 -0
  62. package/dist/package-set.d.ts +13 -0
  63. package/dist/package-set.js +12 -0
  64. package/dist/package-set.js.map +1 -0
  65. package/dist/primitive-props-DpKs-GCr.d.ts +11 -0
  66. package/dist/reducer.d.ts +3786 -0
  67. package/dist/reducer.js +8131 -0
  68. package/dist/reducer.js.map +1 -0
  69. package/dist/runtime/primitives.d.ts +226 -0
  70. package/dist/runtime/primitives.js +180 -0
  71. package/dist/runtime/primitives.js.map +1 -0
  72. package/dist/runtime/types/runtime-api.d.ts +1 -0
  73. package/dist/runtime/types/runtime-api.js +2 -0
  74. package/dist/runtime/types/runtime-api.js.map +1 -0
  75. package/dist/runtime/workspace-contract.d.ts +172 -0
  76. package/dist/runtime/workspace-contract.js +14 -0
  77. package/dist/runtime/workspace-contract.js.map +1 -0
  78. package/dist/runtime-api-3dshj6kK.d.ts +101 -0
  79. package/dist/runtime-api-DWxvTr-O.d.ts +379 -0
  80. package/dist/runtime.d.ts +58 -0
  81. package/dist/runtime.js +13 -0
  82. package/dist/runtime.js.map +1 -0
  83. package/dist/slots-1GPGihk8.d.ts +8 -0
  84. package/dist/testing.d.ts +149 -0
  85. package/dist/testing.js +513 -0
  86. package/dist/testing.js.map +1 -0
  87. package/dist/types.d.ts +496 -0
  88. package/dist/types.js +28 -0
  89. package/dist/types.js.map +1 -0
  90. package/dist/ui/components.d.ts +16 -0
  91. package/dist/ui/components.js +192 -0
  92. package/dist/ui/components.js.map +1 -0
  93. package/dist/ui/defaults.d.ts +19 -0
  94. package/dist/ui/defaults.js +104 -0
  95. package/dist/ui/defaults.js.map +1 -0
  96. package/dist/ui/plugin-styles.css +250 -0
  97. package/dist/ui/types/player-state.d.ts +365 -0
  98. package/dist/ui/types/player-state.js +1 -0
  99. package/dist/ui/types/player-state.js.map +1 -0
  100. package/dist/ui-contract-iQfTtUSL.d.ts +1161 -0
  101. package/dist/ui.d.ts +320 -0
  102. package/dist/ui.js +253 -0
  103. package/dist/ui.js.map +1 -0
  104. package/package.json +199 -0
  105. package/src/generated/reducer-contract/builders.ts +90 -0
  106. package/src/generated/reducer-contract/version.ts +9 -0
  107. package/src/generated/reducer-contract/wire.ts +100 -0
  108. package/src/generated/reducer-contract/zod.ts +101 -0
  109. package/src/generated/runtime/primitives.ts +2 -0
  110. package/src/generated/runtime-api.ts +5 -0
  111. package/src/generated/runtime.ts +35 -0
  112. package/src/generated/workspace-contract.ts +2 -0
  113. package/src/index.ts +7 -0
  114. package/src/infrastructure/reducer-bundle-abi.ts +8 -0
  115. package/src/infrastructure/reducer-contract/bundle.ts +37 -0
  116. package/src/infrastructure/workspace-codegen/hex-geometry.ts +69 -0
  117. package/src/infrastructure/workspace-codegen/index.ts +64 -0
  118. package/src/infrastructure/workspace-codegen/manifest-contract.ts +6632 -0
  119. package/src/infrastructure/workspace-codegen/manifest-validation.ts +795 -0
  120. package/src/infrastructure/workspace-codegen/ownership.ts +131 -0
  121. package/src/infrastructure/workspace-codegen/preset-card-sets.ts +169 -0
  122. package/src/infrastructure/workspace-codegen/seeds.ts +1705 -0
  123. package/src/infrastructure/workspace-codegen.ts +1 -0
  124. package/src/package-set.ts +19 -0
  125. package/src/reducer/authoring/contract.ts +157 -0
  126. package/src/reducer/authoring/effect.ts +224 -0
  127. package/src/reducer/authoring/game.ts +23 -0
  128. package/src/reducer/authoring/interaction.ts +98 -0
  129. package/src/reducer/authoring/phase.ts +300 -0
  130. package/src/reducer/authoring/types.ts +70 -0
  131. package/src/reducer/authoring/validation.ts +382 -0
  132. package/src/reducer/authoring/view-stage.ts +68 -0
  133. package/src/reducer/authoring.ts +29 -0
  134. package/src/reducer/bundle/ingress-bundle.ts +491 -0
  135. package/src/reducer/bundle/trusted/engine-instruction-resolver.ts +254 -0
  136. package/src/reducer/bundle/trusted/flow-instruction-resolver.ts +73 -0
  137. package/src/reducer/bundle/trusted/instruction-runner.ts +414 -0
  138. package/src/reducer/bundle/trusted/interaction-authorization.ts +137 -0
  139. package/src/reducer/bundle/trusted/interaction-collectors.ts +859 -0
  140. package/src/reducer/bundle/trusted/interaction-decision.ts +747 -0
  141. package/src/reducer/bundle/trusted/interaction-resolver.ts +95 -0
  142. package/src/reducer/bundle/trusted/interaction-types.ts +171 -0
  143. package/src/reducer/bundle/trusted/lifecycle-runner.ts +427 -0
  144. package/src/reducer/bundle/trusted/projection-builder.ts +356 -0
  145. package/src/reducer/bundle/trusted/projection-context.ts +39 -0
  146. package/src/reducer/bundle/trusted/rng-sampler.ts +150 -0
  147. package/src/reducer/bundle/trusted/runtime-registry.ts +120 -0
  148. package/src/reducer/bundle/trusted/runtime-scope.ts +336 -0
  149. package/src/reducer/bundle/trusted/simultaneous-player.ts +97 -0
  150. package/src/reducer/bundle/trusted/stage-resolver.ts +87 -0
  151. package/src/reducer/bundle/trusted/static-projection.ts +116 -0
  152. package/src/reducer/bundle/trusted/trusted-runtime-args.ts +97 -0
  153. package/src/reducer/bundle/trusted/trusted-runtime-result.ts +39 -0
  154. package/src/reducer/bundle/trusted/trusted-setup-profiles.ts +43 -0
  155. package/src/reducer/bundle/trusted/trusted-state-codec.ts +48 -0
  156. package/src/reducer/bundle/trusted-bundle.ts +97 -0
  157. package/src/reducer/bundle/types.ts +171 -0
  158. package/src/reducer/bundle.ts +2 -0
  159. package/src/reducer/client-param-schemas.ts +57 -0
  160. package/src/reducer/compose.ts +34 -0
  161. package/src/reducer/core/runtime-input.ts +30 -0
  162. package/src/reducer/core/runtime-instruction.ts +59 -0
  163. package/src/reducer/core/types.ts +62 -0
  164. package/src/reducer/definition-index.ts +277 -0
  165. package/src/reducer/derived.ts +106 -0
  166. package/src/reducer/effects.ts +92 -0
  167. package/src/reducer/engine/runtime-instruction-engine.ts +155 -0
  168. package/src/reducer/ingress/decode-runtime-input.ts +7 -0
  169. package/src/reducer/ingress/decode-session-state.ts +9 -0
  170. package/src/reducer/ingress/encode-session-state.ts +6 -0
  171. package/src/reducer/ingress/input-codec.ts +18 -0
  172. package/src/reducer/ingress/phase-schemas.ts +62 -0
  173. package/src/reducer/ingress/raw-types.ts +107 -0
  174. package/src/reducer/ingress/runtime-codec.ts +14 -0
  175. package/src/reducer/ingress/runtime-payload.ts +13 -0
  176. package/src/reducer/ingress/session-codec.ts +392 -0
  177. package/src/reducer/ingress/types.ts +6 -0
  178. package/src/reducer/inputs/boardInput.ts +217 -0
  179. package/src/reducer/inputs/boardTarget.ts +190 -0
  180. package/src/reducer/inputs/cardInput.ts +86 -0
  181. package/src/reducer/inputs/cardTarget.ts +101 -0
  182. package/src/reducer/inputs/choiceTarget.ts +104 -0
  183. package/src/reducer/inputs/defineInputs.ts +71 -0
  184. package/src/reducer/inputs/formInput.ts +809 -0
  185. package/src/reducer/inputs/many.ts +120 -0
  186. package/src/reducer/inputs/promptInput.ts +87 -0
  187. package/src/reducer/inputs/rngInput.ts +58 -0
  188. package/src/reducer/inputs/targetRule.ts +123 -0
  189. package/src/reducer/inputs.ts +41 -0
  190. package/src/reducer/model/definition.ts +1072 -0
  191. package/src/reducer/model/extract.ts +745 -0
  192. package/src/reducer/model/manifest.ts +570 -0
  193. package/src/reducer/model/queries.ts +641 -0
  194. package/src/reducer/model/runtime.ts +264 -0
  195. package/src/reducer/model/spec.ts +1386 -0
  196. package/src/reducer/model/table.ts +260 -0
  197. package/src/reducer/model.ts +7 -0
  198. package/src/reducer/ops.ts +1034 -0
  199. package/src/reducer/parse-utils.ts +28 -0
  200. package/src/reducer/per-player.ts +422 -0
  201. package/src/reducer/rng.ts +69 -0
  202. package/src/reducer/schema-helpers.ts +185 -0
  203. package/src/reducer/setup-bootstrap-helpers.ts +171 -0
  204. package/src/reducer/setup-bootstrap.ts +481 -0
  205. package/src/reducer/table-ops.ts +2671 -0
  206. package/src/reducer/table-queries.ts +372 -0
  207. package/src/reducer/transaction.ts +120 -0
  208. package/src/reducer.ts +314 -0
  209. package/src/runtime/primitives.ts +1 -0
  210. package/src/runtime/types/runtime-api.ts +1 -0
  211. package/src/runtime/workspace-contract.ts +32 -0
  212. package/src/runtime-internal/components/InteractionForm.tsx +1309 -0
  213. package/src/runtime-internal/components/PluginRuntime.tsx +103 -0
  214. package/src/runtime-internal/components/board/target-layer.ts +70 -0
  215. package/src/runtime-internal/context/ClientParamSchemaContext.tsx +44 -0
  216. package/src/runtime-internal/context/InteractionDraftContext.tsx +279 -0
  217. package/src/runtime-internal/context/PluginSessionContext.tsx +47 -0
  218. package/src/runtime-internal/context/PluginStateContext.tsx +262 -0
  219. package/src/runtime-internal/context/RuntimeContext.tsx +96 -0
  220. package/src/runtime-internal/defaults/components.tsx +409 -0
  221. package/src/runtime-internal/defaults/index.ts +11 -0
  222. package/src/runtime-internal/errors/ValidationError.ts +29 -0
  223. package/src/runtime-internal/hooks/useActivePlayers.ts +33 -0
  224. package/src/runtime-internal/hooks/useBoardInteractions.ts +665 -0
  225. package/src/runtime-internal/hooks/useGameSelector.ts +105 -0
  226. package/src/runtime-internal/hooks/useGameView.ts +9 -0
  227. package/src/runtime-internal/hooks/useInteractionByKey.ts +354 -0
  228. package/src/runtime-internal/hooks/useInteractionHandle.ts +438 -0
  229. package/src/runtime-internal/hooks/useIsMyTurn.ts +20 -0
  230. package/src/runtime-internal/hooks/useLobby.ts +76 -0
  231. package/src/runtime-internal/hooks/useMe.ts +48 -0
  232. package/src/runtime-internal/hooks/usePlayerInfo.ts +28 -0
  233. package/src/runtime-internal/hooks/usePlayerTurnOrder.ts +23 -0
  234. package/src/runtime-internal/hooks/usePluginRuntime.ts +147 -0
  235. package/src/runtime-internal/hooks/useSeatInbox.ts +61 -0
  236. package/src/runtime-internal/hooks/useSimultaneousPhase.ts +10 -0
  237. package/src/runtime-internal/index.ts +42 -0
  238. package/src/runtime-internal/internal.ts +43 -0
  239. package/src/runtime-internal/plugin-styles.css +250 -0
  240. package/src/runtime-internal/primitives/board.tsx +459 -0
  241. package/src/runtime-internal/primitives/dialog-lifecycle.ts +58 -0
  242. package/src/runtime-internal/primitives/dice.tsx +79 -0
  243. package/src/runtime-internal/primitives/game-ui-provider.tsx +35 -0
  244. package/src/runtime-internal/primitives/game.tsx +387 -0
  245. package/src/runtime-internal/primitives/hand-intent-adapter.ts +147 -0
  246. package/src/runtime-internal/primitives/hand-surface.tsx +594 -0
  247. package/src/runtime-internal/primitives/index.ts +196 -0
  248. package/src/runtime-internal/primitives/interaction-form-binding.tsx +56 -0
  249. package/src/runtime-internal/primitives/interaction-submit.ts +90 -0
  250. package/src/runtime-internal/primitives/interaction.tsx +987 -0
  251. package/src/runtime-internal/primitives/phase.tsx +43 -0
  252. package/src/runtime-internal/primitives/player-roster.tsx +302 -0
  253. package/src/runtime-internal/primitives/primitive-props.tsx +101 -0
  254. package/src/runtime-internal/primitives/prompt.tsx +255 -0
  255. package/src/runtime-internal/primitives/ui.tsx +60 -0
  256. package/src/runtime-internal/primitives/zone.tsx +791 -0
  257. package/src/runtime-internal/reducer.ts +30 -0
  258. package/src/runtime-internal/runtime/createPluginRuntimeAPI.ts +605 -0
  259. package/src/runtime-internal/types/plugin-state.ts +508 -0
  260. package/src/runtime-internal/types/reducer-state.ts +24 -0
  261. package/src/runtime-internal/types/runtime-api.ts +114 -0
  262. package/src/runtime-internal/ui-contract.ts +519 -0
  263. package/src/runtime-internal/utils/card-intent-adapter.ts +546 -0
  264. package/src/runtime-internal/utils/interaction-inputs.ts +492 -0
  265. package/src/runtime-internal/utils/interaction-labels.ts +23 -0
  266. package/src/runtime-internal/utils/interaction-router.ts +273 -0
  267. package/src/runtime-internal/utils/interaction-status.ts +74 -0
  268. package/src/runtime-internal/workspace-contract.ts +1170 -0
  269. package/src/runtime.ts +34 -0
  270. package/src/testing/create-expect-api.ts +352 -0
  271. package/src/testing/create-test-runtime.ts +381 -0
  272. package/src/testing/definitions.ts +127 -0
  273. package/src/testing/index.ts +3 -0
  274. package/src/testing.ts +1 -0
  275. package/src/type-stubs/manifest-contract.d.ts +42 -0
  276. package/src/type-stubs/manifest-contract.js +72 -0
  277. package/src/type-stubs/ui-contract.d.ts +5 -0
  278. package/src/type-stubs/ui-contract.js +1 -0
  279. package/src/types/authoring-card-properties.type-test.ts +266 -0
  280. package/src/types/authoring.ts +1282 -0
  281. package/src/types/cards.ts +19 -0
  282. package/src/types/contracts.ts +1550 -0
  283. package/src/types/generated-helpers.ts +35 -0
  284. package/src/types/index.ts +147 -0
  285. package/src/types/slots.ts +11 -0
  286. package/src/types.ts +1 -0
  287. package/src/ui/components/ActionButton.tsx +97 -0
  288. package/src/ui/components/ActionPanel.tsx +315 -0
  289. package/src/ui/components/Card.tsx +378 -0
  290. package/src/ui/components/CardDragSurface.tsx +1076 -0
  291. package/src/ui/components/ChromeSuppressionContext.tsx +70 -0
  292. package/src/ui/components/CostDisplay.tsx +145 -0
  293. package/src/ui/components/DiceRoller.tsx +581 -0
  294. package/src/ui/components/Drawer.tsx +180 -0
  295. package/src/ui/components/ErrorBoundary.tsx +275 -0
  296. package/src/ui/components/GameEndDisplay.tsx +398 -0
  297. package/src/ui/components/GameSkeleton.tsx +260 -0
  298. package/src/ui/components/Hand.tsx +468 -0
  299. package/src/ui/components/HandDock.tsx +299 -0
  300. package/src/ui/components/HandView.tsx +441 -0
  301. package/src/ui/components/MobileHandTray.tsx +381 -0
  302. package/src/ui/components/MoreActions.tsx +143 -0
  303. package/src/ui/components/PhaseIndicator.tsx +341 -0
  304. package/src/ui/components/PlayArea.tsx +146 -0
  305. package/src/ui/components/PrimaryActionButton.tsx +336 -0
  306. package/src/ui/components/PrimaryButton.tsx +45 -0
  307. package/src/ui/components/ResourceCounter.tsx +270 -0
  308. package/src/ui/components/StagingZone.tsx +134 -0
  309. package/src/ui/components/ThemedButton.tsx +113 -0
  310. package/src/ui/components/Toast.tsx +264 -0
  311. package/src/ui/components/board/HexGrid.tsx +1294 -0
  312. package/src/ui/components/board/NetworkGraph.tsx +476 -0
  313. package/src/ui/components/board/SlotSystem.tsx +388 -0
  314. package/src/ui/components/board/SquareGrid.tsx +1165 -0
  315. package/src/ui/components/board/TrackBoard.tsx +496 -0
  316. package/src/ui/components/board/ZoneMap.tsx +448 -0
  317. package/src/ui/components/board/hex-board-view.ts +123 -0
  318. package/src/ui/components/board/index.ts +142 -0
  319. package/src/ui/components/board/interaction-accessibility.ts +21 -0
  320. package/src/ui/components/board/target-layer.ts +66 -0
  321. package/src/ui/components/card-render-content.type-test.ts +27 -0
  322. package/src/ui/components/hand-layout-math.ts +163 -0
  323. package/src/ui/components/hand-pointer-engine.ts +413 -0
  324. package/src/ui/components/index.ts +245 -0
  325. package/src/ui/components.ts +1 -0
  326. package/src/ui/defaults/components.tsx +106 -0
  327. package/src/ui/defaults/index.ts +8 -0
  328. package/src/ui/defaults.ts +1 -0
  329. package/src/ui/errors/ValidationError.ts +29 -0
  330. package/src/ui/helpers/cards.ts +19 -0
  331. package/src/ui/helpers/track-board.ts +211 -0
  332. package/src/ui/hooks/useBoardTopology.ts +316 -0
  333. package/src/ui/hooks/useCards.ts +10 -0
  334. package/src/ui/hooks/useHandCardPointer.ts +381 -0
  335. package/src/ui/hooks/useHandLayout.ts +378 -0
  336. package/src/ui/hooks/useHandPresentation.ts +121 -0
  337. package/src/ui/hooks/useHexBoard.ts +74 -0
  338. package/src/ui/hooks/useHexGrid.ts +185 -0
  339. package/src/ui/hooks/useIsMobile.ts +35 -0
  340. package/src/ui/hooks/usePanZoom.ts +278 -0
  341. package/src/ui/hooks/useSquareBoard.ts +124 -0
  342. package/src/ui/hooks/useSquareGrid.ts +328 -0
  343. package/src/ui/index.ts +98 -0
  344. package/src/ui/internal/ui/alert.tsx +51 -0
  345. package/src/ui/internal/ui/button.tsx +58 -0
  346. package/src/ui/internal/ui/dialog.tsx +134 -0
  347. package/src/ui/internal/ui/input.tsx +21 -0
  348. package/src/ui/internal/ui/label.tsx +21 -0
  349. package/src/ui/internal/ui/select.tsx +129 -0
  350. package/src/ui/internal/ui/tooltip.tsx +54 -0
  351. package/src/ui/internal/ui/utils.ts +5 -0
  352. package/src/ui/plugin-styles.css +250 -0
  353. package/src/ui/primitives/dialog-lifecycle.ts +58 -0
  354. package/src/ui/primitives/dice.tsx +79 -0
  355. package/src/ui/primitives/primitive-props.tsx +101 -0
  356. package/src/ui/theme/ThemeProvider.tsx +252 -0
  357. package/src/ui/theme/board.ts +61 -0
  358. package/src/ui/theme/css-vars.ts +105 -0
  359. package/src/ui/theme/derive.ts +240 -0
  360. package/src/ui/theme/index.ts +61 -0
  361. package/src/ui/theme/presets/arcade.ts +261 -0
  362. package/src/ui/theme/presets/studio.ts +261 -0
  363. package/src/ui/theme/presets/tabletop.ts +266 -0
  364. package/src/ui/theme/tokens.ts +392 -0
  365. package/src/ui/types/hex-color.ts +20 -0
  366. package/src/ui/types/player-state.ts +463 -0
  367. package/src/ui/types/tiled-board.ts +785 -0
  368. package/src/ui/types/visual-state.ts +137 -0
  369. package/src/ui.ts +1 -0
@@ -0,0 +1,281 @@
1
+ type ReducerContractVersion = string;
2
+ type EffectId = string;
3
+ type ContinuationToken = {
4
+ "id": string;
5
+ "data": JsonValue;
6
+ };
7
+ type ContinuationMap = Record<string, ContinuationToken>;
8
+ type JsonValue = Record<string, unknown> | Array<unknown> | string | number | boolean | null;
9
+ type ReducerSetupSelection = {
10
+ "profileId": string;
11
+ "optionValues": Record<string, string | null>;
12
+ };
13
+ type RngState = {
14
+ "seed": number | null;
15
+ "cursor": number;
16
+ "trace": Array<string>;
17
+ };
18
+ type ReducerFlowState = {
19
+ "currentPhase": string;
20
+ "turn": number;
21
+ "round": number;
22
+ "activePlayers": Array<string>;
23
+ };
24
+ type RuntimeSimultaneousSubmission = {
25
+ "interactionId": string;
26
+ "params": JsonValue;
27
+ };
28
+ type RuntimeSimultaneousCurrent = {
29
+ "phaseName": string;
30
+ "actors": Array<string>;
31
+ "submissions": Record<string, RuntimeSimultaneousSubmission>;
32
+ };
33
+ type RuntimeSimultaneousState = {
34
+ "current": RuntimeSimultaneousCurrent | null;
35
+ };
36
+ type TransitionRecord = {
37
+ "from": string;
38
+ "to": string;
39
+ };
40
+ type ReducerRuntimeState = {
41
+ "rng": RngState;
42
+ "setup": ReducerSetupSelection | null;
43
+ "simultaneous": RuntimeSimultaneousState;
44
+ "lastTransition": TransitionRecord | null;
45
+ };
46
+ type ReducerDomainState = {
47
+ "table": JsonValue;
48
+ "publicState": JsonValue;
49
+ "privateState": Record<string, JsonValue>;
50
+ "hiddenState": JsonValue;
51
+ "flow": ReducerFlowState;
52
+ "phase": JsonValue;
53
+ };
54
+ type ReducerSessionState = {
55
+ "domain": ReducerDomainState;
56
+ "runtime": ReducerRuntimeState;
57
+ };
58
+ type GameInput = GameInputInteraction;
59
+ type GameInputInteraction = {
60
+ "kind": "interaction";
61
+ "playerId": string;
62
+ "interactionId": string;
63
+ "params": JsonValue;
64
+ };
65
+ type Effect = EffectTransition | EffectRollDie | EffectShuffleSharedZone | EffectShufflePlayerZone;
66
+ type EffectTransition = {
67
+ "effectId": EffectId;
68
+ "type": "transition";
69
+ "to": string;
70
+ };
71
+ type EffectRollDie = {
72
+ "effectId": EffectId;
73
+ "type": "rollDie";
74
+ "dieId": string;
75
+ };
76
+ type EffectShuffleSharedZone = {
77
+ "effectId": EffectId;
78
+ "type": "shuffleSharedZone";
79
+ "zoneId": string;
80
+ };
81
+ type EffectShufflePlayerZone = {
82
+ "effectId": EffectId;
83
+ "type": "shufflePlayerZone";
84
+ "zoneId": string;
85
+ "playerId": string;
86
+ };
87
+ type ReducerInputValidationResult = {
88
+ "valid": boolean;
89
+ "errorCode"?: string;
90
+ "message"?: string;
91
+ };
92
+ type InitializeRequest = {
93
+ "table": JsonValue;
94
+ "playerIds": Array<string>;
95
+ "rngSeed"?: number | null;
96
+ "setup"?: ReducerSetupSelection | null;
97
+ };
98
+ type InitializePhaseRequest = {
99
+ "state": ReducerSessionState;
100
+ "to": string;
101
+ };
102
+ type ValidateInputRequest = {
103
+ "state": ReducerSessionState;
104
+ "input": GameInput;
105
+ };
106
+ type ReduceRequest = {
107
+ "state": ReducerSessionState;
108
+ "input": GameInput;
109
+ };
110
+ type DispatchRequest = {
111
+ "state": ReducerSessionState;
112
+ "input": GameInput;
113
+ };
114
+ type ReduceResult = ReduceResultReject | ReduceResultAccept;
115
+ type ReduceResultReject = {
116
+ "kind": "reject";
117
+ "errorCode": string;
118
+ "message"?: string;
119
+ };
120
+ type ReduceResultAccept = {
121
+ "kind": "accept";
122
+ "state": ReducerSessionState;
123
+ "effects": Array<Effect>;
124
+ "continuations": ContinuationMap;
125
+ };
126
+ type DispatchTrace = DispatchTraceAcceptedClientInput | DispatchTraceAppliedEffect | DispatchTraceRngConsumption;
127
+ type DispatchTraceAcceptedClientInput = {
128
+ "kind": "acceptedClientInput";
129
+ "input": GameInput;
130
+ };
131
+ type DispatchTraceAppliedEffect = {
132
+ "kind": "appliedEffect";
133
+ "effect": Effect;
134
+ "continuation"?: ContinuationToken;
135
+ };
136
+ type DispatchTraceRngConsumption = {
137
+ "kind": "rngConsumption";
138
+ "operation": string;
139
+ "traceEntry": string;
140
+ };
141
+ type DispatchResult = DispatchResultReject | DispatchResultAccept;
142
+ type DispatchResultReject = {
143
+ "kind": "reject";
144
+ "errorCode": string;
145
+ "message"?: string;
146
+ };
147
+ type DispatchResultAccept = {
148
+ "kind": "accept";
149
+ "state": ReducerSessionState;
150
+ "trace": Array<DispatchTrace>;
151
+ };
152
+ type ReducerRuntimeLogEntry = ReducerRuntimeLogEntryAcceptedClientInput | ReducerRuntimeLogEntryAppliedEffect | ReducerRuntimeLogEntryRngConsumption | ReducerRuntimeLogEntryStateCommit;
153
+ type ReducerRuntimeLogEntryAcceptedClientInput = {
154
+ "kind": "acceptedClientInput";
155
+ "version": number;
156
+ "input": GameInput;
157
+ };
158
+ type ReducerRuntimeLogEntryAppliedEffect = {
159
+ "kind": "appliedEffect";
160
+ "version": number;
161
+ "effect": Effect;
162
+ "continuation": ContinuationToken | null;
163
+ };
164
+ type ReducerRuntimeLogEntryRngConsumption = {
165
+ "kind": "rngConsumption";
166
+ "version": number;
167
+ "operation": string;
168
+ "traceEntry": string;
169
+ };
170
+ type ReducerRuntimeLogEntryStateCommit = {
171
+ "kind": "stateCommit";
172
+ "version": number;
173
+ "state": ReducerSessionState;
174
+ };
175
+ type SeatProjection = {
176
+ "view"?: JsonValue;
177
+ "availableInteractionRefs"?: JsonValue;
178
+ "zones"?: JsonValue;
179
+ };
180
+ type SimultaneousPhaseProjection = {
181
+ "phaseName": string;
182
+ "interactionId": string;
183
+ "actorIds": Array<string>;
184
+ "sealedPlayerIds": Array<string>;
185
+ "pendingPlayerIds": Array<string>;
186
+ };
187
+ type SeatProjectionBundle = {
188
+ "currentStage"?: string | null;
189
+ "stageSeats"?: Array<string>;
190
+ "simultaneousPhase"?: SimultaneousPhaseProjection | null;
191
+ "interactionsByRef"?: JsonValue;
192
+ "seats": Record<string, SeatProjection>;
193
+ };
194
+ type ProjectSeatsDynamicRequest = {
195
+ "state": ReducerSessionState;
196
+ "playerIds": Array<string>;
197
+ "viewId"?: string;
198
+ "projectionMode"?: "full" | "actionsOnly" | null;
199
+ };
200
+ type BoardStaticProjection = {
201
+ "view": JsonValue;
202
+ "hash": string;
203
+ "manifestVersion": string;
204
+ };
205
+
206
+ type wire_BoardStaticProjection = BoardStaticProjection;
207
+ type wire_ContinuationMap = ContinuationMap;
208
+ type wire_ContinuationToken = ContinuationToken;
209
+ type wire_DispatchRequest = DispatchRequest;
210
+ type wire_DispatchResult = DispatchResult;
211
+ type wire_DispatchResultAccept = DispatchResultAccept;
212
+ type wire_DispatchResultReject = DispatchResultReject;
213
+ type wire_DispatchTrace = DispatchTrace;
214
+ type wire_DispatchTraceAcceptedClientInput = DispatchTraceAcceptedClientInput;
215
+ type wire_DispatchTraceAppliedEffect = DispatchTraceAppliedEffect;
216
+ type wire_DispatchTraceRngConsumption = DispatchTraceRngConsumption;
217
+ type wire_Effect = Effect;
218
+ type wire_EffectId = EffectId;
219
+ type wire_EffectRollDie = EffectRollDie;
220
+ type wire_EffectShufflePlayerZone = EffectShufflePlayerZone;
221
+ type wire_EffectShuffleSharedZone = EffectShuffleSharedZone;
222
+ type wire_EffectTransition = EffectTransition;
223
+ type wire_GameInput = GameInput;
224
+ type wire_GameInputInteraction = GameInputInteraction;
225
+ type wire_InitializePhaseRequest = InitializePhaseRequest;
226
+ type wire_InitializeRequest = InitializeRequest;
227
+ type wire_JsonValue = JsonValue;
228
+ type wire_ProjectSeatsDynamicRequest = ProjectSeatsDynamicRequest;
229
+ type wire_ReduceRequest = ReduceRequest;
230
+ type wire_ReduceResult = ReduceResult;
231
+ type wire_ReduceResultAccept = ReduceResultAccept;
232
+ type wire_ReduceResultReject = ReduceResultReject;
233
+ type wire_ReducerContractVersion = ReducerContractVersion;
234
+ type wire_ReducerDomainState = ReducerDomainState;
235
+ type wire_ReducerFlowState = ReducerFlowState;
236
+ type wire_ReducerInputValidationResult = ReducerInputValidationResult;
237
+ type wire_ReducerRuntimeLogEntry = ReducerRuntimeLogEntry;
238
+ type wire_ReducerRuntimeLogEntryAcceptedClientInput = ReducerRuntimeLogEntryAcceptedClientInput;
239
+ type wire_ReducerRuntimeLogEntryAppliedEffect = ReducerRuntimeLogEntryAppliedEffect;
240
+ type wire_ReducerRuntimeLogEntryRngConsumption = ReducerRuntimeLogEntryRngConsumption;
241
+ type wire_ReducerRuntimeLogEntryStateCommit = ReducerRuntimeLogEntryStateCommit;
242
+ type wire_ReducerRuntimeState = ReducerRuntimeState;
243
+ type wire_ReducerSessionState = ReducerSessionState;
244
+ type wire_ReducerSetupSelection = ReducerSetupSelection;
245
+ type wire_RngState = RngState;
246
+ type wire_RuntimeSimultaneousCurrent = RuntimeSimultaneousCurrent;
247
+ type wire_RuntimeSimultaneousState = RuntimeSimultaneousState;
248
+ type wire_RuntimeSimultaneousSubmission = RuntimeSimultaneousSubmission;
249
+ type wire_SeatProjection = SeatProjection;
250
+ type wire_SeatProjectionBundle = SeatProjectionBundle;
251
+ type wire_SimultaneousPhaseProjection = SimultaneousPhaseProjection;
252
+ type wire_TransitionRecord = TransitionRecord;
253
+ type wire_ValidateInputRequest = ValidateInputRequest;
254
+ declare namespace wire {
255
+ export type { wire_BoardStaticProjection as BoardStaticProjection, wire_ContinuationMap as ContinuationMap, wire_ContinuationToken as ContinuationToken, wire_DispatchRequest as DispatchRequest, wire_DispatchResult as DispatchResult, wire_DispatchResultAccept as DispatchResultAccept, wire_DispatchResultReject as DispatchResultReject, wire_DispatchTrace as DispatchTrace, wire_DispatchTraceAcceptedClientInput as DispatchTraceAcceptedClientInput, wire_DispatchTraceAppliedEffect as DispatchTraceAppliedEffect, wire_DispatchTraceRngConsumption as DispatchTraceRngConsumption, wire_Effect as Effect, wire_EffectId as EffectId, wire_EffectRollDie as EffectRollDie, wire_EffectShufflePlayerZone as EffectShufflePlayerZone, wire_EffectShuffleSharedZone as EffectShuffleSharedZone, wire_EffectTransition as EffectTransition, wire_GameInput as GameInput, wire_GameInputInteraction as GameInputInteraction, wire_InitializePhaseRequest as InitializePhaseRequest, wire_InitializeRequest as InitializeRequest, wire_JsonValue as JsonValue, wire_ProjectSeatsDynamicRequest as ProjectSeatsDynamicRequest, wire_ReduceRequest as ReduceRequest, wire_ReduceResult as ReduceResult, wire_ReduceResultAccept as ReduceResultAccept, wire_ReduceResultReject as ReduceResultReject, wire_ReducerContractVersion as ReducerContractVersion, wire_ReducerDomainState as ReducerDomainState, wire_ReducerFlowState as ReducerFlowState, wire_ReducerInputValidationResult as ReducerInputValidationResult, wire_ReducerRuntimeLogEntry as ReducerRuntimeLogEntry, wire_ReducerRuntimeLogEntryAcceptedClientInput as ReducerRuntimeLogEntryAcceptedClientInput, wire_ReducerRuntimeLogEntryAppliedEffect as ReducerRuntimeLogEntryAppliedEffect, wire_ReducerRuntimeLogEntryRngConsumption as ReducerRuntimeLogEntryRngConsumption, wire_ReducerRuntimeLogEntryStateCommit as ReducerRuntimeLogEntryStateCommit, wire_ReducerRuntimeState as ReducerRuntimeState, wire_ReducerSessionState as ReducerSessionState, wire_ReducerSetupSelection as ReducerSetupSelection, wire_RngState as RngState, wire_RuntimeSimultaneousCurrent as RuntimeSimultaneousCurrent, wire_RuntimeSimultaneousState as RuntimeSimultaneousState, wire_RuntimeSimultaneousSubmission as RuntimeSimultaneousSubmission, wire_SeatProjection as SeatProjection, wire_SeatProjectionBundle as SeatProjectionBundle, wire_SimultaneousPhaseProjection as SimultaneousPhaseProjection, wire_TransitionRecord as TransitionRecord, wire_ValidateInputRequest as ValidateInputRequest };
256
+ }
257
+
258
+ type MaybePromise<T> = T | Promise<T>;
259
+ /**
260
+ * Canonical erased reducer boundary for `createReducerBundle(...)`.
261
+ *
262
+ * The callable method list is generated from
263
+ * `schema/reducer-runtime.operations.json`; payload DTOs come from
264
+ * `schema/reducer-runtime.schema.json`.
265
+ *
266
+ * This interface models the host/guest surface only. The concrete
267
+ * authored bundle stays strongly typed in `@dreamboard-games/sdk/reducer`, but every
268
+ * cross-runtime caller should agree on this shape.
269
+ */
270
+ interface ReducerBundleContract {
271
+ readonly reducerContractVersion: ReducerContractVersion;
272
+ initialize(input: InitializeRequest): MaybePromise<ReducerSessionState>;
273
+ initializePhase(input: InitializePhaseRequest): MaybePromise<ReducerSessionState>;
274
+ validateInput(input: ValidateInputRequest): MaybePromise<ReducerInputValidationResult>;
275
+ reduce(input: ReduceRequest): MaybePromise<ReduceResult>;
276
+ dispatch(input: DispatchRequest): MaybePromise<DispatchResult>;
277
+ projectStatic(): BoardStaticProjection | null;
278
+ projectSeatsDynamic(input: ProjectSeatsDynamicRequest): SeatProjectionBundle;
279
+ }
280
+
281
+ export { type MaybePromise as M, type ReducerBundleContract as R, type ReducerSessionState as a, wire as w };
@@ -0,0 +1,13 @@
1
+ interface ViewCard<CardIdValue extends string = string, CardTypeValue extends string = string, Properties extends Record<string, unknown> = Record<string, unknown>> {
2
+ id: CardIdValue;
3
+ cardType: CardTypeValue;
4
+ name?: string;
5
+ text?: string;
6
+ properties: Properties;
7
+ }
8
+ interface CardCollection<CardIdValue extends string = string, Card extends ViewCard<CardIdValue> = ViewCard<CardIdValue>> {
9
+ cardIds: readonly CardIdValue[];
10
+ cardsById: Readonly<Record<CardIdValue, Card | undefined>>;
11
+ }
12
+
13
+ export type { CardCollection as C, ViewCard as V };