@dreamboard-games/sdk 0.2.1-alpha.0 → 0.3.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/dist/{HandView-ncJIVLhN.d.ts → HandView-PYDmehVD.d.ts} +1 -1
  2. package/dist/{ResourceCounter-CTREyF73.d.ts → ResourceCounter-BTXklCEZ.d.ts} +1 -1
  3. package/dist/{ThemeProvider-fy0_QzgO.d.ts → ThemeProvider-DvMl17Ny.d.ts} +1 -1
  4. package/dist/attributes-BeRyboMS.d.ts +279 -0
  5. package/dist/browser-interaction.d.ts +708 -0
  6. package/dist/browser-interaction.js +106 -0
  7. package/dist/{chunk-KAELH4KC.js → chunk-3RQEICD3.js} +2 -2
  8. package/dist/{chunk-TDSWKVZ4.js → chunk-ADYH6PVT.js} +2457 -1265
  9. package/dist/chunk-ADYH6PVT.js.map +1 -0
  10. package/dist/{chunk-YFY3RL52.js → chunk-P7VMTJ5D.js} +2 -2
  11. package/dist/{chunk-YFY3RL52.js.map → chunk-P7VMTJ5D.js.map} +1 -1
  12. package/dist/chunk-QLG6VEMW.js +1691 -0
  13. package/dist/chunk-QLG6VEMW.js.map +1 -0
  14. package/dist/{chunk-WYPQ3GG5.js → chunk-QZ6X4B5P.js} +1177 -1106
  15. package/dist/chunk-QZ6X4B5P.js.map +1 -0
  16. package/dist/{chunk-GKKBPPSW.js → chunk-TXXLS3OI.js} +405 -309
  17. package/dist/chunk-TXXLS3OI.js.map +1 -0
  18. package/dist/{chunk-FDNZTDD6.js → chunk-W6SGFWXH.js} +48 -44
  19. package/dist/chunk-W6SGFWXH.js.map +1 -0
  20. package/dist/{chunk-MKXPVOUT.js → chunk-Y2AFYBMB.js} +48 -4
  21. package/dist/chunk-Y2AFYBMB.js.map +1 -0
  22. package/dist/{index-BwqPQtBu.d.ts → codegen.d.ts} +57 -565
  23. package/dist/{infrastructure/workspace-codegen.js → codegen.js} +3 -3
  24. package/dist/{components-D5ZRE2Hl.d.ts → components-DaIqi9QM.d.ts} +48 -37
  25. package/dist/{hex-board-view-D_07hO6O.d.ts → hex-board-view-UCUjMALd.d.ts} +3 -2
  26. package/dist/{infrastructure/reducer-bundle-abi.d.ts → index.d-BGqVifr_.d.ts} +289 -10
  27. package/dist/index.js +1 -1
  28. package/dist/package-set.d.ts +2 -2
  29. package/dist/package-set.js +1 -1
  30. package/dist/primitive-props-BNHDkgd7.d.ts +16 -0
  31. package/dist/reducer-contract.d.ts +3 -0
  32. package/dist/{infrastructure/reducer-bundle-abi.js → reducer-contract.js} +4 -4
  33. package/dist/reducer.d.ts +185 -179
  34. package/dist/reducer.js +1637 -1353
  35. package/dist/reducer.js.map +1 -1
  36. package/dist/runtime/primitives.d.ts +10 -9
  37. package/dist/runtime/primitives.js +8 -7
  38. package/dist/runtime/runtime-api.d.ts +2 -0
  39. package/dist/runtime/runtime-api.js +1 -0
  40. package/dist/runtime/workspace-contract.d.ts +63 -17
  41. package/dist/runtime/workspace-contract.js +5 -5
  42. package/dist/{runtime-api-DWxvTr-O.d.ts → runtime-api-tGL3ArsB.d.ts} +109 -4
  43. package/dist/runtime.d.ts +12 -57
  44. package/dist/runtime.js +487 -7
  45. package/dist/runtime.js.map +1 -1
  46. package/dist/testing.d.ts +4 -4
  47. package/dist/testing.js.map +1 -1
  48. package/dist/types.d.ts +1531 -85
  49. package/dist/types.js +1 -3
  50. package/dist/types.js.map +1 -1
  51. package/dist/ui/components.d.ts +7 -8
  52. package/dist/ui/components.js +1 -1
  53. package/dist/ui/defaults.d.ts +1 -1
  54. package/dist/ui/{types/player-state.d.ts → player-state.d.ts} +2 -2
  55. package/dist/{ui-contract-iQfTtUSL.d.ts → ui-contract-SctM4ibF.d.ts} +157 -150
  56. package/dist/ui.d.ts +10 -11
  57. package/dist/ui.js +2 -2
  58. package/package.json +35 -74
  59. package/dist/bundle-CDd5FKeD.d.ts +0 -283
  60. package/dist/cards-Sl3b40Mv.d.ts +0 -13
  61. package/dist/chunk-7YAHLYBR.js +0 -481
  62. package/dist/chunk-7YAHLYBR.js.map +0 -1
  63. package/dist/chunk-FDNZTDD6.js.map +0 -1
  64. package/dist/chunk-GKKBPPSW.js.map +0 -1
  65. package/dist/chunk-I46YJSOD.js +0 -1
  66. package/dist/chunk-MKXPVOUT.js.map +0 -1
  67. package/dist/chunk-T52J5RMF.js +0 -1
  68. package/dist/chunk-TDSWKVZ4.js.map +0 -1
  69. package/dist/chunk-U5C6BONG.js +0 -34
  70. package/dist/chunk-U5C6BONG.js.map +0 -1
  71. package/dist/chunk-WYPQ3GG5.js.map +0 -1
  72. package/dist/generated/runtime/primitives.d.ts +0 -12
  73. package/dist/generated/runtime/primitives.js +0 -180
  74. package/dist/generated/runtime/primitives.js.map +0 -1
  75. package/dist/generated/runtime-api.d.ts +0 -3
  76. package/dist/generated/runtime-api.js +0 -2
  77. package/dist/generated/runtime.d.ts +0 -14
  78. package/dist/generated/runtime.js +0 -18
  79. package/dist/generated/runtime.js.map +0 -1
  80. package/dist/generated/workspace-contract.d.ts +0 -14
  81. package/dist/generated/workspace-contract.js +0 -14
  82. package/dist/generated/workspace-contract.js.map +0 -1
  83. package/dist/infrastructure/reducer-bundle-abi.js.map +0 -1
  84. package/dist/infrastructure/workspace-codegen.d.ts +0 -53
  85. package/dist/infrastructure/workspace-codegen.js.map +0 -1
  86. package/dist/manifest-contract-BNHVGFtU.d.ts +0 -9
  87. package/dist/primitive-props-DpKs-GCr.d.ts +0 -11
  88. package/dist/runtime/types/runtime-api.d.ts +0 -1
  89. package/dist/runtime/types/runtime-api.js +0 -2
  90. package/dist/runtime-api-3dshj6kK.d.ts +0 -101
  91. package/dist/slots-1GPGihk8.d.ts +0 -8
  92. package/src/generated/reducer-contract/builders.ts +0 -90
  93. package/src/generated/reducer-contract/version.ts +0 -9
  94. package/src/generated/reducer-contract/wire.ts +0 -100
  95. package/src/generated/reducer-contract/zod.ts +0 -103
  96. package/src/generated/runtime/primitives.ts +0 -2
  97. package/src/generated/runtime-api.ts +0 -5
  98. package/src/generated/runtime.ts +0 -35
  99. package/src/generated/workspace-contract.ts +0 -2
  100. package/src/index.ts +0 -7
  101. package/src/infrastructure/reducer-bundle-abi.ts +0 -8
  102. package/src/infrastructure/reducer-contract/bundle.ts +0 -37
  103. package/src/infrastructure/workspace-codegen/hex-geometry.ts +0 -69
  104. package/src/infrastructure/workspace-codegen/index.ts +0 -64
  105. package/src/infrastructure/workspace-codegen/manifest-contract.ts +0 -6632
  106. package/src/infrastructure/workspace-codegen/manifest-validation.ts +0 -795
  107. package/src/infrastructure/workspace-codegen/ownership.ts +0 -131
  108. package/src/infrastructure/workspace-codegen/preset-card-sets.ts +0 -169
  109. package/src/infrastructure/workspace-codegen/seeds.ts +0 -1705
  110. package/src/infrastructure/workspace-codegen.ts +0 -1
  111. package/src/package-set.ts +0 -19
  112. package/src/reducer/authoring/contract.ts +0 -157
  113. package/src/reducer/authoring/effect.ts +0 -224
  114. package/src/reducer/authoring/game.ts +0 -23
  115. package/src/reducer/authoring/interaction.ts +0 -98
  116. package/src/reducer/authoring/phase.ts +0 -300
  117. package/src/reducer/authoring/types.ts +0 -70
  118. package/src/reducer/authoring/validation.ts +0 -382
  119. package/src/reducer/authoring/view-stage.ts +0 -68
  120. package/src/reducer/authoring.ts +0 -29
  121. package/src/reducer/bundle/ingress-bundle.ts +0 -491
  122. package/src/reducer/bundle/trusted/engine-instruction-resolver.ts +0 -254
  123. package/src/reducer/bundle/trusted/flow-instruction-resolver.ts +0 -73
  124. package/src/reducer/bundle/trusted/instruction-runner.ts +0 -414
  125. package/src/reducer/bundle/trusted/interaction-authorization.ts +0 -137
  126. package/src/reducer/bundle/trusted/interaction-collectors.ts +0 -859
  127. package/src/reducer/bundle/trusted/interaction-decision.ts +0 -747
  128. package/src/reducer/bundle/trusted/interaction-resolver.ts +0 -95
  129. package/src/reducer/bundle/trusted/interaction-types.ts +0 -171
  130. package/src/reducer/bundle/trusted/lifecycle-runner.ts +0 -427
  131. package/src/reducer/bundle/trusted/projection-builder.ts +0 -356
  132. package/src/reducer/bundle/trusted/projection-context.ts +0 -39
  133. package/src/reducer/bundle/trusted/rng-sampler.ts +0 -150
  134. package/src/reducer/bundle/trusted/runtime-registry.ts +0 -120
  135. package/src/reducer/bundle/trusted/runtime-scope.ts +0 -336
  136. package/src/reducer/bundle/trusted/simultaneous-player.ts +0 -97
  137. package/src/reducer/bundle/trusted/stage-resolver.ts +0 -87
  138. package/src/reducer/bundle/trusted/static-projection.ts +0 -116
  139. package/src/reducer/bundle/trusted/trusted-runtime-args.ts +0 -97
  140. package/src/reducer/bundle/trusted/trusted-runtime-result.ts +0 -39
  141. package/src/reducer/bundle/trusted/trusted-setup-profiles.ts +0 -43
  142. package/src/reducer/bundle/trusted/trusted-state-codec.ts +0 -48
  143. package/src/reducer/bundle/trusted-bundle.ts +0 -97
  144. package/src/reducer/bundle/types.ts +0 -171
  145. package/src/reducer/bundle.ts +0 -2
  146. package/src/reducer/client-param-schemas.ts +0 -57
  147. package/src/reducer/compose.ts +0 -34
  148. package/src/reducer/core/runtime-input.ts +0 -30
  149. package/src/reducer/core/runtime-instruction.ts +0 -59
  150. package/src/reducer/core/types.ts +0 -62
  151. package/src/reducer/definition-index.ts +0 -277
  152. package/src/reducer/derived.ts +0 -106
  153. package/src/reducer/effects.ts +0 -92
  154. package/src/reducer/engine/runtime-instruction-engine.ts +0 -155
  155. package/src/reducer/ingress/decode-runtime-input.ts +0 -7
  156. package/src/reducer/ingress/decode-session-state.ts +0 -9
  157. package/src/reducer/ingress/encode-session-state.ts +0 -6
  158. package/src/reducer/ingress/input-codec.ts +0 -18
  159. package/src/reducer/ingress/phase-schemas.ts +0 -62
  160. package/src/reducer/ingress/raw-types.ts +0 -107
  161. package/src/reducer/ingress/runtime-codec.ts +0 -14
  162. package/src/reducer/ingress/runtime-payload.ts +0 -13
  163. package/src/reducer/ingress/session-codec.ts +0 -392
  164. package/src/reducer/ingress/types.ts +0 -6
  165. package/src/reducer/inputs/boardInput.ts +0 -217
  166. package/src/reducer/inputs/boardTarget.ts +0 -190
  167. package/src/reducer/inputs/cardInput.ts +0 -86
  168. package/src/reducer/inputs/cardTarget.ts +0 -101
  169. package/src/reducer/inputs/choiceTarget.ts +0 -104
  170. package/src/reducer/inputs/defineInputs.ts +0 -71
  171. package/src/reducer/inputs/formInput.ts +0 -809
  172. package/src/reducer/inputs/many.ts +0 -120
  173. package/src/reducer/inputs/promptInput.ts +0 -87
  174. package/src/reducer/inputs/rngInput.ts +0 -58
  175. package/src/reducer/inputs/targetRule.ts +0 -123
  176. package/src/reducer/inputs.ts +0 -41
  177. package/src/reducer/model/definition.ts +0 -1072
  178. package/src/reducer/model/extract.ts +0 -745
  179. package/src/reducer/model/manifest.ts +0 -570
  180. package/src/reducer/model/queries.ts +0 -641
  181. package/src/reducer/model/runtime.ts +0 -264
  182. package/src/reducer/model/spec.ts +0 -1386
  183. package/src/reducer/model/table.ts +0 -260
  184. package/src/reducer/model.ts +0 -7
  185. package/src/reducer/ops.ts +0 -1034
  186. package/src/reducer/parse-utils.ts +0 -28
  187. package/src/reducer/per-player.ts +0 -422
  188. package/src/reducer/rng.ts +0 -69
  189. package/src/reducer/schema-helpers.ts +0 -185
  190. package/src/reducer/setup-bootstrap-helpers.ts +0 -171
  191. package/src/reducer/setup-bootstrap.ts +0 -481
  192. package/src/reducer/table-ops.ts +0 -2671
  193. package/src/reducer/table-queries.ts +0 -372
  194. package/src/reducer/transaction.ts +0 -120
  195. package/src/reducer.ts +0 -314
  196. package/src/runtime/primitives.ts +0 -1
  197. package/src/runtime/types/runtime-api.ts +0 -1
  198. package/src/runtime/workspace-contract.ts +0 -32
  199. package/src/runtime-internal/components/InteractionForm.tsx +0 -1309
  200. package/src/runtime-internal/components/PluginRuntime.tsx +0 -103
  201. package/src/runtime-internal/components/board/target-layer.ts +0 -70
  202. package/src/runtime-internal/context/ClientParamSchemaContext.tsx +0 -44
  203. package/src/runtime-internal/context/InteractionDraftContext.tsx +0 -279
  204. package/src/runtime-internal/context/PluginSessionContext.tsx +0 -47
  205. package/src/runtime-internal/context/PluginStateContext.tsx +0 -262
  206. package/src/runtime-internal/context/RuntimeContext.tsx +0 -96
  207. package/src/runtime-internal/defaults/components.tsx +0 -409
  208. package/src/runtime-internal/defaults/index.ts +0 -11
  209. package/src/runtime-internal/errors/ValidationError.ts +0 -29
  210. package/src/runtime-internal/hooks/useActivePlayers.ts +0 -33
  211. package/src/runtime-internal/hooks/useBoardInteractions.ts +0 -665
  212. package/src/runtime-internal/hooks/useGameSelector.ts +0 -105
  213. package/src/runtime-internal/hooks/useGameView.ts +0 -9
  214. package/src/runtime-internal/hooks/useInteractionByKey.ts +0 -354
  215. package/src/runtime-internal/hooks/useInteractionHandle.ts +0 -438
  216. package/src/runtime-internal/hooks/useIsMyTurn.ts +0 -20
  217. package/src/runtime-internal/hooks/useLobby.ts +0 -76
  218. package/src/runtime-internal/hooks/useMe.ts +0 -48
  219. package/src/runtime-internal/hooks/usePlayerInfo.ts +0 -28
  220. package/src/runtime-internal/hooks/usePlayerTurnOrder.ts +0 -23
  221. package/src/runtime-internal/hooks/usePluginRuntime.ts +0 -147
  222. package/src/runtime-internal/hooks/useSeatInbox.ts +0 -61
  223. package/src/runtime-internal/hooks/useSimultaneousPhase.ts +0 -10
  224. package/src/runtime-internal/index.ts +0 -42
  225. package/src/runtime-internal/internal.ts +0 -43
  226. package/src/runtime-internal/plugin-styles.css +0 -250
  227. package/src/runtime-internal/primitives/board.tsx +0 -459
  228. package/src/runtime-internal/primitives/dialog-lifecycle.ts +0 -58
  229. package/src/runtime-internal/primitives/dice.tsx +0 -79
  230. package/src/runtime-internal/primitives/game-ui-provider.tsx +0 -35
  231. package/src/runtime-internal/primitives/game.tsx +0 -387
  232. package/src/runtime-internal/primitives/hand-intent-adapter.ts +0 -147
  233. package/src/runtime-internal/primitives/hand-surface.tsx +0 -594
  234. package/src/runtime-internal/primitives/index.ts +0 -196
  235. package/src/runtime-internal/primitives/interaction-form-binding.tsx +0 -56
  236. package/src/runtime-internal/primitives/interaction-submit.ts +0 -90
  237. package/src/runtime-internal/primitives/interaction.tsx +0 -987
  238. package/src/runtime-internal/primitives/phase.tsx +0 -43
  239. package/src/runtime-internal/primitives/player-roster.tsx +0 -302
  240. package/src/runtime-internal/primitives/primitive-props.tsx +0 -101
  241. package/src/runtime-internal/primitives/prompt.tsx +0 -255
  242. package/src/runtime-internal/primitives/ui.tsx +0 -60
  243. package/src/runtime-internal/primitives/zone.tsx +0 -791
  244. package/src/runtime-internal/reducer.ts +0 -30
  245. package/src/runtime-internal/runtime/createPluginRuntimeAPI.ts +0 -605
  246. package/src/runtime-internal/types/plugin-state.ts +0 -508
  247. package/src/runtime-internal/types/reducer-state.ts +0 -24
  248. package/src/runtime-internal/types/runtime-api.ts +0 -114
  249. package/src/runtime-internal/ui-contract.ts +0 -519
  250. package/src/runtime-internal/utils/card-intent-adapter.ts +0 -546
  251. package/src/runtime-internal/utils/interaction-inputs.ts +0 -492
  252. package/src/runtime-internal/utils/interaction-labels.ts +0 -23
  253. package/src/runtime-internal/utils/interaction-router.ts +0 -273
  254. package/src/runtime-internal/utils/interaction-status.ts +0 -74
  255. package/src/runtime-internal/workspace-contract.ts +0 -1170
  256. package/src/runtime.ts +0 -34
  257. package/src/testing/create-expect-api.ts +0 -352
  258. package/src/testing/create-test-runtime.ts +0 -381
  259. package/src/testing/definitions.ts +0 -127
  260. package/src/testing/index.ts +0 -3
  261. package/src/testing.ts +0 -1
  262. package/src/type-stubs/manifest-contract.d.ts +0 -42
  263. package/src/type-stubs/manifest-contract.js +0 -72
  264. package/src/type-stubs/ui-contract.d.ts +0 -5
  265. package/src/type-stubs/ui-contract.js +0 -1
  266. package/src/types/authoring-card-properties.type-test.ts +0 -266
  267. package/src/types/authoring.ts +0 -1282
  268. package/src/types/cards.ts +0 -19
  269. package/src/types/contracts.ts +0 -1550
  270. package/src/types/generated-helpers.ts +0 -35
  271. package/src/types/index.ts +0 -147
  272. package/src/types/slots.ts +0 -11
  273. package/src/types.ts +0 -1
  274. package/src/ui/components/ActionButton.tsx +0 -97
  275. package/src/ui/components/ActionPanel.tsx +0 -315
  276. package/src/ui/components/Card.tsx +0 -378
  277. package/src/ui/components/CardDragSurface.tsx +0 -1076
  278. package/src/ui/components/ChromeSuppressionContext.tsx +0 -70
  279. package/src/ui/components/CostDisplay.tsx +0 -145
  280. package/src/ui/components/DiceRoller.tsx +0 -581
  281. package/src/ui/components/Drawer.tsx +0 -180
  282. package/src/ui/components/ErrorBoundary.tsx +0 -275
  283. package/src/ui/components/GameEndDisplay.tsx +0 -398
  284. package/src/ui/components/GameSkeleton.tsx +0 -260
  285. package/src/ui/components/Hand.tsx +0 -468
  286. package/src/ui/components/HandDock.tsx +0 -299
  287. package/src/ui/components/HandView.tsx +0 -441
  288. package/src/ui/components/MobileHandTray.tsx +0 -381
  289. package/src/ui/components/MoreActions.tsx +0 -143
  290. package/src/ui/components/PhaseIndicator.tsx +0 -341
  291. package/src/ui/components/PlayArea.tsx +0 -146
  292. package/src/ui/components/PrimaryActionButton.tsx +0 -336
  293. package/src/ui/components/PrimaryButton.tsx +0 -45
  294. package/src/ui/components/ResourceCounter.tsx +0 -270
  295. package/src/ui/components/StagingZone.tsx +0 -134
  296. package/src/ui/components/ThemedButton.tsx +0 -113
  297. package/src/ui/components/Toast.tsx +0 -264
  298. package/src/ui/components/board/HexGrid.tsx +0 -1294
  299. package/src/ui/components/board/NetworkGraph.tsx +0 -476
  300. package/src/ui/components/board/SlotSystem.tsx +0 -388
  301. package/src/ui/components/board/SquareGrid.tsx +0 -1165
  302. package/src/ui/components/board/TrackBoard.tsx +0 -496
  303. package/src/ui/components/board/ZoneMap.tsx +0 -448
  304. package/src/ui/components/board/hex-board-view.ts +0 -123
  305. package/src/ui/components/board/index.ts +0 -142
  306. package/src/ui/components/board/interaction-accessibility.ts +0 -21
  307. package/src/ui/components/board/target-layer.ts +0 -66
  308. package/src/ui/components/card-render-content.type-test.ts +0 -27
  309. package/src/ui/components/hand-layout-math.ts +0 -163
  310. package/src/ui/components/hand-pointer-engine.ts +0 -413
  311. package/src/ui/components/index.ts +0 -245
  312. package/src/ui/components.ts +0 -1
  313. package/src/ui/defaults/components.tsx +0 -106
  314. package/src/ui/defaults/index.ts +0 -8
  315. package/src/ui/defaults.ts +0 -1
  316. package/src/ui/errors/ValidationError.ts +0 -29
  317. package/src/ui/helpers/cards.ts +0 -19
  318. package/src/ui/helpers/track-board.ts +0 -211
  319. package/src/ui/hooks/useBoardTopology.ts +0 -316
  320. package/src/ui/hooks/useCards.ts +0 -10
  321. package/src/ui/hooks/useHandCardPointer.ts +0 -381
  322. package/src/ui/hooks/useHandLayout.ts +0 -378
  323. package/src/ui/hooks/useHandPresentation.ts +0 -121
  324. package/src/ui/hooks/useHexBoard.ts +0 -74
  325. package/src/ui/hooks/useHexGrid.ts +0 -185
  326. package/src/ui/hooks/useIsMobile.ts +0 -35
  327. package/src/ui/hooks/usePanZoom.ts +0 -278
  328. package/src/ui/hooks/useSquareBoard.ts +0 -124
  329. package/src/ui/hooks/useSquareGrid.ts +0 -328
  330. package/src/ui/index.ts +0 -98
  331. package/src/ui/internal/ui/alert.tsx +0 -51
  332. package/src/ui/internal/ui/button.tsx +0 -58
  333. package/src/ui/internal/ui/dialog.tsx +0 -134
  334. package/src/ui/internal/ui/input.tsx +0 -21
  335. package/src/ui/internal/ui/label.tsx +0 -21
  336. package/src/ui/internal/ui/select.tsx +0 -129
  337. package/src/ui/internal/ui/tooltip.tsx +0 -54
  338. package/src/ui/internal/ui/utils.ts +0 -5
  339. package/src/ui/plugin-styles.css +0 -250
  340. package/src/ui/primitives/dialog-lifecycle.ts +0 -58
  341. package/src/ui/primitives/dice.tsx +0 -79
  342. package/src/ui/primitives/primitive-props.tsx +0 -101
  343. package/src/ui/theme/ThemeProvider.tsx +0 -252
  344. package/src/ui/theme/board.ts +0 -61
  345. package/src/ui/theme/css-vars.ts +0 -105
  346. package/src/ui/theme/derive.ts +0 -240
  347. package/src/ui/theme/index.ts +0 -61
  348. package/src/ui/theme/presets/arcade.ts +0 -261
  349. package/src/ui/theme/presets/studio.ts +0 -261
  350. package/src/ui/theme/presets/tabletop.ts +0 -266
  351. package/src/ui/theme/tokens.ts +0 -392
  352. package/src/ui/types/hex-color.ts +0 -20
  353. package/src/ui/types/player-state.ts +0 -463
  354. package/src/ui/types/tiled-board.ts +0 -785
  355. package/src/ui/types/visual-state.ts +0 -137
  356. package/src/ui.ts +0 -1
  357. /package/dist/{chunk-I46YJSOD.js.map → browser-interaction.js.map} +0 -0
  358. /package/dist/{chunk-KAELH4KC.js.map → chunk-3RQEICD3.js.map} +0 -0
  359. /package/dist/{chunk-T52J5RMF.js.map → codegen.js.map} +0 -0
  360. /package/dist/{generated/runtime-api.js.map → reducer-contract.js.map} +0 -0
  361. /package/dist/runtime/{types/runtime-api.js.map → runtime-api.js.map} +0 -0
  362. /package/dist/ui/{types/player-state.js → player-state.js} +0 -0
  363. /package/dist/ui/{types/player-state.js.map → player-state.js.map} +0 -0
@@ -1,745 +0,0 @@
1
- import type { StringKeyOf } from "./table";
2
- import type {
3
- GeneratedManifestContractLike,
4
- ManifestContract,
5
- StateDefinition,
6
- } from "./manifest";
7
- import type { z } from "zod";
8
- import type { SchemaLike } from "./table";
9
-
10
- export type TableOfState<State> = State extends { table: infer Table }
11
- ? Table
12
- : never;
13
- export type TableOfManifest<Manifest> =
14
- Manifest extends GeneratedManifestContractLike<infer Table> ? Table : never;
15
- export type PhaseNameOfState<State> = State extends {
16
- flow: { currentPhase: infer PhaseName };
17
- }
18
- ? Extract<PhaseName, string>
19
- : never;
20
- export type PhaseNameOfManifest<Manifest> = Manifest extends {
21
- literals: { phaseNames: readonly (infer PhaseName)[] };
22
- }
23
- ? Extract<PhaseName, string>
24
- : never;
25
- export type PlayerIdOfTable<Table> = Table extends {
26
- playerOrder: readonly (infer PlayerId)[];
27
- }
28
- ? Extract<PlayerId, string>
29
- : never;
30
- export type PlayerIdOfManifest<Manifest> = Manifest extends {
31
- literals: { playerIds: readonly (infer PlayerId)[] };
32
- }
33
- ? Extract<PlayerId, string>
34
- : string;
35
- export type PlayerIdOfState<State> = PlayerIdOfTable<TableOfState<State>>;
36
- /**
37
- * Manifest-declared resource id union for a runtime table.
38
- *
39
- * Derived from the shape of `table.resources`, which the generated
40
- * manifest contract seeds as `PerPlayer<Record<ResourceId, number>>`.
41
- * The helper peeks inside the `PerPlayer` wrapper to surface the
42
- * resource-id keys without forcing callers to remember the wrapper.
43
- */
44
- export type ResourceIdOfTable<Table> = Table extends {
45
- resources: infer Resources;
46
- }
47
- ? ValueOfPerPlayer<Resources> extends infer PerPlayerValue
48
- ? PerPlayerValue extends Record<string, unknown>
49
- ? StringKeyOf<PerPlayerValue>
50
- : never
51
- : never
52
- : never;
53
- export type ResourceIdOfState<State> = ResourceIdOfTable<TableOfState<State>>;
54
- /**
55
- * Per-player balance shape for a runtime table. Strips the `PerPlayer`
56
- * wrapper around `table.resources` so callers receive the manifest-typed
57
- * record directly (e.g. `Record<ResourceId, number>`).
58
- */
59
- export type ResourceBalancesOfTable<Table> = Table extends {
60
- resources: infer Resources;
61
- }
62
- ? ValueOfPerPlayer<Resources> extends infer PerPlayerValue
63
- ? PerPlayerValue extends Record<string, unknown>
64
- ? PerPlayerValue
65
- : never
66
- : never
67
- : never;
68
- export type ResourceBalancesOfState<State> = ResourceBalancesOfTable<
69
- TableOfState<State>
70
- >;
71
- export type ResourceIdOfManifest<Manifest> = Manifest extends {
72
- literals: { resourceIds: readonly (infer ResourceId)[] };
73
- }
74
- ? Extract<ResourceId, string>
75
- : string;
76
- /**
77
- * Per-player resource counts: a partial `Record<ResourceId, number>`.
78
- *
79
- * Used as the input shape for {@link ReducerOps.addResources},
80
- * {@link ReducerOps.spendResources}, and {@link ReducerOps.transferResources}.
81
- */
82
- export type ResourceAmountsOfTable<Table> = Partial<
83
- Record<ResourceIdOfTable<Table>, number>
84
- >;
85
- export type PhaseStateOfState<State> = State extends { phase: infer PhaseState }
86
- ? PhaseState
87
- : never;
88
- export type PhaseStepOfState<State> =
89
- PhaseStateOfState<State> extends {
90
- step?: infer Step;
91
- }
92
- ? Extract<NonNullable<Step>, string>
93
- : never;
94
- export type PhaseMapOfState<State> = PhaseStateOfState<State>;
95
- export type PublicStateOfState<State> = State extends {
96
- publicState: infer PublicState;
97
- }
98
- ? PublicState
99
- : never;
100
- export type HiddenStateOfState<State> = State extends {
101
- hiddenState: infer HiddenState;
102
- }
103
- ? HiddenState
104
- : never;
105
- export type PrivateStateOfState<State> = State extends {
106
- privateState: Record<string, infer PrivateState>;
107
- }
108
- ? PrivateState
109
- : never;
110
- export type DeckIdOfTable<Table> = Table extends { decks: infer Decks }
111
- ? StringKeyOf<Decks>
112
- : never;
113
- export type HandIdOfTable<Table> = Table extends { hands: infer Hands }
114
- ? StringKeyOf<Hands>
115
- : never;
116
- export type CardIdOfTable<Table> = Table extends { cards: infer Cards }
117
- ? StringKeyOf<Cards>
118
- : never;
119
- export type CardTypeOfTable<Table> = Table extends {
120
- cards: Record<string, { cardType: infer CardType }>;
121
- }
122
- ? Extract<CardType, string>
123
- : string;
124
- export type DeckIdOfState<State> = DeckIdOfTable<TableOfState<State>>;
125
- export type HandIdOfState<State> = HandIdOfTable<TableOfState<State>>;
126
- export type CardIdOfState<State> = CardIdOfTable<TableOfState<State>>;
127
- export type CardTypeOfState<State> = CardTypeOfTable<TableOfState<State>>;
128
- export type CardIdOfManifest<Manifest> = Manifest extends {
129
- literals: { cardIds: readonly (infer CardId)[] };
130
- }
131
- ? Extract<CardId, string>
132
- : string;
133
- export type SharedZoneIdOfTable<Table> = DeckIdOfTable<Table>;
134
- export type PlayerZoneIdOfTable<Table> = HandIdOfTable<Table>;
135
- export type BoardMapOfTable<Table> = Table extends {
136
- boards: { byId: infer Boards };
137
- }
138
- ? Boards
139
- : never;
140
- export type BoardIdOfTable<Table> = StringKeyOf<BoardMapOfTable<Table>>;
141
- export type BoardStateOfTable<
142
- Table,
143
- BoardId extends BoardIdOfTable<Table>,
144
- > = BoardMapOfTable<Table>[BoardId];
145
- export type BoardTypeIdOfTable<Table> =
146
- BoardStateOfTable<Table, BoardIdOfTable<Table>> extends {
147
- typeId?: infer BoardTypeId | null;
148
- }
149
- ? Extract<BoardTypeId, string>
150
- : never;
151
- export type TiledBoardIdOfTable<Table> = {
152
- [BoardId in BoardIdOfTable<Table>]: BoardStateOfTable<
153
- Table,
154
- BoardId
155
- > extends { layout: "hex" | "square" }
156
- ? BoardId
157
- : never;
158
- }[BoardIdOfTable<Table>];
159
- export type TiledBoardStateOfTable<
160
- Table,
161
- BoardId extends TiledBoardIdOfTable<Table>,
162
- > =
163
- BoardStateOfTable<Table, BoardId> extends infer BoardState
164
- ? BoardState extends {
165
- layout: "hex" | "square";
166
- spaces: Record<string, unknown>;
167
- edges: readonly { id: string }[];
168
- vertices: readonly { id: string }[];
169
- }
170
- ? BoardState
171
- : never
172
- : never;
173
- export type HexBoardIdOfTable<Table> = {
174
- [BoardId in BoardIdOfTable<Table>]: BoardStateOfTable<
175
- Table,
176
- BoardId
177
- > extends { layout: "hex" }
178
- ? BoardId
179
- : never;
180
- }[BoardIdOfTable<Table>];
181
- export type HexBoardStateOfTable<
182
- Table,
183
- BoardId extends HexBoardIdOfTable<Table>,
184
- > =
185
- BoardStateOfTable<Table, BoardId> extends infer BoardState
186
- ? BoardState extends {
187
- layout: "hex";
188
- spaces: Record<string, unknown>;
189
- edges: readonly { id: string }[];
190
- vertices: readonly { id: string }[];
191
- }
192
- ? BoardState
193
- : never
194
- : never;
195
- export type SquareBoardIdOfTable<Table> = {
196
- [BoardId in BoardIdOfTable<Table>]: BoardStateOfTable<
197
- Table,
198
- BoardId
199
- > extends { layout: "square" }
200
- ? BoardId
201
- : never;
202
- }[BoardIdOfTable<Table>];
203
- export type SquareBoardStateOfTable<
204
- Table,
205
- BoardId extends SquareBoardIdOfTable<Table>,
206
- > =
207
- BoardStateOfTable<Table, BoardId> extends infer BoardState
208
- ? BoardState extends {
209
- layout: "square";
210
- spaces: Record<string, unknown>;
211
- edges: readonly { id: string }[];
212
- vertices: readonly { id: string }[];
213
- }
214
- ? BoardState
215
- : never
216
- : never;
217
- export type SpaceIdOfTable<Table, BoardId extends BoardIdOfTable<Table>> =
218
- BoardStateOfTable<Table, BoardId> extends { spaces: infer Spaces }
219
- ? StringKeyOf<Spaces>
220
- : never;
221
- export type SpaceTypeIdOfTable<Table, BoardId extends BoardIdOfTable<Table>> =
222
- BoardStateOfTable<Table, BoardId> extends {
223
- spaces: infer Spaces extends Record<string, unknown>;
224
- }
225
- ? Spaces[StringKeyOf<Spaces>] extends { typeId?: infer SpaceTypeId | null }
226
- ? Extract<SpaceTypeId, string>
227
- : never
228
- : never;
229
- export type BoardContainerIdOfTable<
230
- Table,
231
- BoardId extends BoardIdOfTable<Table>,
232
- > =
233
- BoardStateOfTable<Table, BoardId> extends { containers: infer Containers }
234
- ? StringKeyOf<Containers>
235
- : never;
236
- export type RelationTypeIdOfTable<
237
- Table,
238
- BoardId extends BoardIdOfTable<Table>,
239
- > =
240
- BoardStateOfTable<Table, BoardId> extends {
241
- relations: readonly (infer Relation)[];
242
- }
243
- ? Relation extends { typeId: infer RelationTypeId }
244
- ? Extract<RelationTypeId, string>
245
- : never
246
- : never;
247
- export type TiledSpaceIdOfTable<
248
- Table,
249
- BoardId extends TiledBoardIdOfTable<Table>,
250
- > =
251
- TiledBoardStateOfTable<Table, BoardId> extends { spaces: infer Spaces }
252
- ? StringKeyOf<Spaces>
253
- : never;
254
- export type HexSpaceIdOfTable<Table, BoardId extends HexBoardIdOfTable<Table>> =
255
- HexBoardStateOfTable<Table, BoardId> extends { spaces: infer Spaces }
256
- ? StringKeyOf<Spaces>
257
- : never;
258
- export type SquareSpaceIdOfTable<
259
- Table,
260
- BoardId extends SquareBoardIdOfTable<Table>,
261
- > =
262
- SquareBoardStateOfTable<Table, BoardId> extends { spaces: infer Spaces }
263
- ? StringKeyOf<Spaces>
264
- : never;
265
- export type HexSpaceTypeIdOfTable<
266
- Table,
267
- BoardId extends HexBoardIdOfTable<Table>,
268
- > =
269
- HexBoardStateOfTable<Table, BoardId> extends {
270
- spaces: infer Spaces extends Record<string, unknown>;
271
- }
272
- ? Spaces[StringKeyOf<Spaces>] extends { typeId?: infer SpaceTypeId | null }
273
- ? Extract<SpaceTypeId, string>
274
- : never
275
- : never;
276
- export type SquareSpaceTypeIdOfTable<
277
- Table,
278
- BoardId extends SquareBoardIdOfTable<Table>,
279
- > =
280
- SquareBoardStateOfTable<Table, BoardId> extends {
281
- spaces: infer Spaces extends Record<string, unknown>;
282
- }
283
- ? Spaces[StringKeyOf<Spaces>] extends { typeId?: infer SpaceTypeId | null }
284
- ? Extract<SpaceTypeId, string>
285
- : never
286
- : never;
287
- export type TiledEdgeIdOfTable<
288
- Table,
289
- BoardId extends TiledBoardIdOfTable<Table>,
290
- > =
291
- TiledBoardStateOfTable<Table, BoardId> extends {
292
- edges: readonly (infer Edge)[];
293
- }
294
- ? Edge extends { id: infer EdgeId }
295
- ? Extract<EdgeId, string>
296
- : never
297
- : never;
298
- export type HexEdgeIdOfTable<Table, BoardId extends HexBoardIdOfTable<Table>> =
299
- HexBoardStateOfTable<Table, BoardId> extends {
300
- edges: readonly (infer Edge)[];
301
- }
302
- ? Edge extends { id: infer EdgeId }
303
- ? Extract<EdgeId, string>
304
- : never
305
- : never;
306
- export type SquareEdgeIdOfTable<
307
- Table,
308
- BoardId extends SquareBoardIdOfTable<Table>,
309
- > =
310
- SquareBoardStateOfTable<Table, BoardId> extends {
311
- edges: readonly (infer Edge)[];
312
- }
313
- ? Edge extends { id: infer EdgeId }
314
- ? Extract<EdgeId, string>
315
- : never
316
- : never;
317
- /**
318
- * Edge record on a tiled board narrowed to a specific `EdgeId` literal.
319
- *
320
- * The generated board state stores edges as a single array element type
321
- * `{ id: <union-of-edge-ids>, spaceIds, typeId, fields, ... }`. Looking up an
322
- * edge by id should return a record whose `id` is narrowed to the literal
323
- * that was requested, not the entire edge-id union.
324
- */
325
- export type TiledEdgeStateOfTable<
326
- Table,
327
- BoardId extends TiledBoardIdOfTable<Table>,
328
- EdgeId extends TiledEdgeIdOfTable<Table, BoardId>,
329
- > =
330
- TiledBoardStateOfTable<Table, BoardId> extends {
331
- edges: readonly (infer Edge)[];
332
- }
333
- ? Edge extends { id: string }
334
- ? Omit<Edge, "id"> & { id: EdgeId }
335
- : never
336
- : never;
337
-
338
- export type HexEdgeStateOfTable<
339
- Table,
340
- BoardId extends HexBoardIdOfTable<Table>,
341
- EdgeId extends HexEdgeIdOfTable<Table, BoardId>,
342
- > =
343
- HexBoardStateOfTable<Table, BoardId> extends {
344
- edges: readonly (infer Edge)[];
345
- }
346
- ? Edge extends { id: string }
347
- ? Omit<Edge, "id"> & { id: EdgeId }
348
- : never
349
- : never;
350
-
351
- export type SquareEdgeStateOfTable<
352
- Table,
353
- BoardId extends SquareBoardIdOfTable<Table>,
354
- EdgeId extends SquareEdgeIdOfTable<Table, BoardId>,
355
- > =
356
- SquareBoardStateOfTable<Table, BoardId> extends {
357
- edges: readonly (infer Edge)[];
358
- }
359
- ? Edge extends { id: string }
360
- ? Omit<Edge, "id"> & { id: EdgeId }
361
- : never
362
- : never;
363
-
364
- export type TiledEdgeTypeIdOfTable<
365
- Table,
366
- BoardId extends TiledBoardIdOfTable<Table>,
367
- > =
368
- TiledBoardStateOfTable<Table, BoardId> extends {
369
- edges: readonly (infer Edge)[];
370
- }
371
- ? Edge extends { typeId?: infer EdgeTypeId | null }
372
- ? Extract<EdgeTypeId, string>
373
- : never
374
- : never;
375
- export type HexEdgeTypeIdOfTable<
376
- Table,
377
- BoardId extends HexBoardIdOfTable<Table>,
378
- > =
379
- HexBoardStateOfTable<Table, BoardId> extends {
380
- edges: readonly (infer Edge)[];
381
- }
382
- ? Edge extends { typeId?: infer EdgeTypeId | null }
383
- ? Extract<EdgeTypeId, string>
384
- : never
385
- : never;
386
- export type SquareEdgeTypeIdOfTable<
387
- Table,
388
- BoardId extends SquareBoardIdOfTable<Table>,
389
- > =
390
- SquareBoardStateOfTable<Table, BoardId> extends {
391
- edges: readonly (infer Edge)[];
392
- }
393
- ? Edge extends { typeId?: infer EdgeTypeId | null }
394
- ? Extract<EdgeTypeId, string>
395
- : never
396
- : never;
397
- export type TiledVertexIdOfTable<
398
- Table,
399
- BoardId extends TiledBoardIdOfTable<Table>,
400
- > =
401
- TiledBoardStateOfTable<Table, BoardId> extends {
402
- vertices: readonly (infer Vertex)[];
403
- }
404
- ? Vertex extends { id: infer VertexId }
405
- ? Extract<VertexId, string>
406
- : never
407
- : never;
408
- export type HexVertexIdOfTable<
409
- Table,
410
- BoardId extends HexBoardIdOfTable<Table>,
411
- > =
412
- HexBoardStateOfTable<Table, BoardId> extends {
413
- vertices: readonly (infer Vertex)[];
414
- }
415
- ? Vertex extends { id: infer VertexId }
416
- ? Extract<VertexId, string>
417
- : never
418
- : never;
419
- export type SquareVertexIdOfTable<
420
- Table,
421
- BoardId extends SquareBoardIdOfTable<Table>,
422
- > =
423
- SquareBoardStateOfTable<Table, BoardId> extends {
424
- vertices: readonly (infer Vertex)[];
425
- }
426
- ? Vertex extends { id: infer VertexId }
427
- ? Extract<VertexId, string>
428
- : never
429
- : never;
430
- /**
431
- * Vertex record on a tiled board narrowed to a specific `VertexId` literal.
432
- * See {@link TiledEdgeStateOfTable} for rationale.
433
- */
434
- export type TiledVertexStateOfTable<
435
- Table,
436
- BoardId extends TiledBoardIdOfTable<Table>,
437
- VertexId extends TiledVertexIdOfTable<Table, BoardId>,
438
- > =
439
- TiledBoardStateOfTable<Table, BoardId> extends {
440
- vertices: readonly (infer Vertex)[];
441
- }
442
- ? Vertex extends { id: string }
443
- ? Omit<Vertex, "id"> & { id: VertexId }
444
- : never
445
- : never;
446
-
447
- export type HexVertexStateOfTable<
448
- Table,
449
- BoardId extends HexBoardIdOfTable<Table>,
450
- VertexId extends HexVertexIdOfTable<Table, BoardId>,
451
- > =
452
- HexBoardStateOfTable<Table, BoardId> extends {
453
- vertices: readonly (infer Vertex)[];
454
- }
455
- ? Vertex extends { id: string }
456
- ? Omit<Vertex, "id"> & { id: VertexId }
457
- : never
458
- : never;
459
-
460
- export type SquareVertexStateOfTable<
461
- Table,
462
- BoardId extends SquareBoardIdOfTable<Table>,
463
- VertexId extends SquareVertexIdOfTable<Table, BoardId>,
464
- > =
465
- SquareBoardStateOfTable<Table, BoardId> extends {
466
- vertices: readonly (infer Vertex)[];
467
- }
468
- ? Vertex extends { id: string }
469
- ? Omit<Vertex, "id"> & { id: VertexId }
470
- : never
471
- : never;
472
-
473
- export type TiledVertexTypeIdOfTable<
474
- Table,
475
- BoardId extends TiledBoardIdOfTable<Table>,
476
- > =
477
- TiledBoardStateOfTable<Table, BoardId> extends {
478
- vertices: readonly (infer Vertex)[];
479
- }
480
- ? Vertex extends { typeId?: infer VertexTypeId | null }
481
- ? Extract<VertexTypeId, string>
482
- : never
483
- : never;
484
- export type HexVertexTypeIdOfTable<
485
- Table,
486
- BoardId extends HexBoardIdOfTable<Table>,
487
- > =
488
- HexBoardStateOfTable<Table, BoardId> extends {
489
- vertices: readonly (infer Vertex)[];
490
- }
491
- ? Vertex extends { typeId?: infer VertexTypeId | null }
492
- ? Extract<VertexTypeId, string>
493
- : never
494
- : never;
495
- export type SquareVertexTypeIdOfTable<
496
- Table,
497
- BoardId extends SquareBoardIdOfTable<Table>,
498
- > =
499
- SquareBoardStateOfTable<Table, BoardId> extends {
500
- vertices: readonly (infer Vertex)[];
501
- }
502
- ? Vertex extends { typeId?: infer VertexTypeId | null }
503
- ? Extract<VertexTypeId, string>
504
- : never
505
- : never;
506
- export type TiledSpaceMap<
507
- Table,
508
- BoardId extends TiledBoardIdOfTable<Table>,
509
- Value,
510
- > = Partial<Record<TiledSpaceIdOfTable<Table, BoardId>, Value>>;
511
- export type TiledEdgeMap<
512
- Table,
513
- BoardId extends TiledBoardIdOfTable<Table>,
514
- Value,
515
- > = Partial<Record<TiledEdgeIdOfTable<Table, BoardId>, Value>>;
516
- export type TiledVertexMap<
517
- Table,
518
- BoardId extends TiledBoardIdOfTable<Table>,
519
- Value,
520
- > = Partial<Record<TiledVertexIdOfTable<Table, BoardId>, Value>>;
521
- export type ComponentIdOfTable<Table> = Table extends {
522
- componentLocations: infer ComponentLocations;
523
- }
524
- ? StringKeyOf<ComponentLocations>
525
- : never;
526
- export type SharedZoneIdOfManifest<Manifest> = Manifest extends {
527
- literals: { sharedZoneIds: readonly (infer ZoneId)[] };
528
- }
529
- ? Extract<ZoneId, string>
530
- : string;
531
- export type PlayerZoneIdOfManifest<Manifest> = Manifest extends {
532
- literals: { playerZoneIds: readonly (infer ZoneId)[] };
533
- }
534
- ? Extract<ZoneId, string>
535
- : string;
536
- export type SharedZoneIdOfState<State> = DeckIdOfState<State>;
537
- export type PlayerZoneIdOfState<State> = HandIdOfState<State>;
538
- export type BoardIdOfManifest<Manifest> = Manifest extends {
539
- literals: { boardIds: readonly (infer BoardId)[] };
540
- }
541
- ? Extract<BoardId, string>
542
- : string;
543
- export type BoardLayoutOfManifest<Manifest> = Manifest extends {
544
- literals: { boardLayouts: readonly (infer BoardLayout)[] };
545
- }
546
- ? Extract<BoardLayout, string>
547
- : "generic" | "hex" | "square";
548
- export type BoardTypeIdOfManifest<Manifest> = Manifest extends {
549
- literals: { boardTypeIds: readonly (infer BoardTypeId)[] };
550
- }
551
- ? Extract<BoardTypeId, string>
552
- : string;
553
- export type BoardBaseIdOfManifest<Manifest> = Manifest extends {
554
- literals: { boardBaseIds: readonly (infer BoardBaseId)[] };
555
- }
556
- ? Extract<BoardBaseId, string>
557
- : string;
558
- export type RelationTypeIdOfManifest<Manifest> = Manifest extends {
559
- literals: { relationTypeIds: readonly (infer RelationTypeId)[] };
560
- }
561
- ? Extract<RelationTypeId, string>
562
- : string;
563
- export type BoardContainerIdOfManifest<Manifest> = Manifest extends {
564
- literals: { boardContainerIds: readonly (infer ContainerId)[] };
565
- }
566
- ? Extract<ContainerId, string>
567
- : string;
568
- export type EdgeTypeIdOfManifest<Manifest> = Manifest extends {
569
- literals: { edgeTypeIds: readonly (infer EdgeTypeId)[] };
570
- }
571
- ? Extract<EdgeTypeId, string>
572
- : string;
573
- export type VertexTypeIdOfManifest<Manifest> = Manifest extends {
574
- literals: { vertexTypeIds: readonly (infer VertexTypeId)[] };
575
- }
576
- ? Extract<VertexTypeId, string>
577
- : string;
578
- export type SpaceIdOfManifest<Manifest> = Manifest extends {
579
- literals: { spaceIds: readonly (infer SpaceId)[] };
580
- }
581
- ? Extract<SpaceId, string>
582
- : string;
583
- export type SpaceTypeIdOfManifest<Manifest> = Manifest extends {
584
- literals: { spaceTypeIds: readonly (infer SpaceTypeId)[] };
585
- }
586
- ? Extract<SpaceTypeId, string>
587
- : string;
588
- export type PieceIdOfManifest<Manifest> = Manifest extends {
589
- literals: { pieceIds: readonly (infer PieceId)[] };
590
- }
591
- ? Extract<PieceId, string>
592
- : string;
593
- export type DieIdOfManifest<Manifest> = Manifest extends {
594
- literals: { dieIds: readonly (infer DieId)[] };
595
- }
596
- ? Extract<DieId, string>
597
- : string;
598
- export type ManifestOf<Source> = Source extends { contract: infer Contract }
599
- ? ManifestOf<Contract>
600
- : Source extends { manifest: infer Manifest }
601
- ? Manifest
602
- : never;
603
- export type SetupOptionIdOfManifest<Manifest> = Manifest extends {
604
- literals: { setupOptionIds: readonly (infer SetupOptionId)[] };
605
- }
606
- ? Extract<SetupOptionId, string>
607
- : string;
608
- export type SetupProfileIdOfManifest<Manifest> = Manifest extends {
609
- literals: { setupProfileIds: readonly (infer SetupProfileId)[] };
610
- }
611
- ? Extract<SetupProfileId, string>
612
- : string;
613
- export type SetupSelectionInputOfManifest<Manifest> = {
614
- profileId: SetupProfileIdOfManifest<Manifest>;
615
- optionValues?: Partial<Record<SetupOptionIdOfManifest<Manifest>, string>>;
616
- };
617
- export type SetupSelectionOfManifest<Manifest> = {
618
- profileId: SetupProfileIdOfManifest<Manifest>;
619
- optionValues: Record<SetupOptionIdOfManifest<Manifest>, string | null>;
620
- };
621
- export type RuntimeSetupSelectionInput<
622
- Manifest extends GeneratedManifestContractLike =
623
- GeneratedManifestContractLike,
624
- > = SetupSelectionInputOfManifest<Manifest>;
625
- export type RuntimeSetupSelection<
626
- Manifest extends GeneratedManifestContractLike =
627
- GeneratedManifestContractLike,
628
- > = SetupSelectionOfManifest<Manifest>;
629
- export type RuntimeSetupSelectionOverride<
630
- Manifest extends GeneratedManifestContractLike =
631
- GeneratedManifestContractLike,
632
- > = SetupSelectionInputOfManifest<Manifest>;
633
- export type StateDefinitionOfContract<Contract> = Contract extends {
634
- state: infer StateDefinitionValue;
635
- }
636
- ? StateDefinitionValue
637
- : never;
638
- export type PhaseSchemasOfContract<Contract> = Contract extends {
639
- phases: infer Phases extends Record<string, SchemaLike<object>>;
640
- }
641
- ? Phases
642
- : Record<PhaseNameOfManifest<ManifestOf<Contract>>, SchemaLike<object>>;
643
- export type PhaseStateMapOfContract<Contract> = {
644
- [Name in keyof PhaseSchemasOfContract<Contract> & string]: z.infer<
645
- PhaseSchemasOfContract<Contract>[Name]
646
- >;
647
- };
648
- export type PublicSchemaOfContract<Contract> =
649
- StateDefinitionOfContract<Contract> extends StateDefinition<
650
- infer PublicSchema,
651
- infer _PrivateSchema,
652
- infer _HiddenSchema
653
- >
654
- ? PublicSchema
655
- : never;
656
- export type PrivateSchemaOfContract<Contract> =
657
- StateDefinitionOfContract<Contract> extends StateDefinition<
658
- infer _PublicSchema,
659
- infer PrivateSchema,
660
- infer _HiddenSchema
661
- >
662
- ? PrivateSchema
663
- : never;
664
- export type HiddenSchemaOfContract<Contract> =
665
- StateDefinitionOfContract<Contract> extends StateDefinition<
666
- infer _PublicSchema,
667
- infer _PrivateSchema,
668
- infer HiddenSchema
669
- >
670
- ? HiddenSchema
671
- : never;
672
- export type PhaseNameOfContract<Contract> =
673
- keyof PhaseSchemasOfContract<Contract> extends string
674
- ? keyof PhaseSchemasOfContract<Contract> & string
675
- : PhaseNameOfManifest<ManifestOf<Contract>>;
676
- export type ManifestContractOf<Contract> = ManifestContract<
677
- TableOfManifest<ManifestOf<Contract>>
678
- >;
679
- export type ExactManifestContractOf<Contract> = ManifestOf<Contract> &
680
- GeneratedManifestContractLike<TableOfManifest<ManifestOf<Contract>>>;
681
- export type PhaseNameOf<Source> = Source extends {
682
- flow: { currentPhase: infer PhaseName };
683
- }
684
- ? Extract<PhaseName, string>
685
- : PhaseNameOfContract<Source>;
686
- export type DeckCardsOfTable<
687
- Table,
688
- DeckId extends DeckIdOfTable<Table>,
689
- > = Table extends {
690
- decks: infer Decks extends Record<string, readonly unknown[]>;
691
- }
692
- ? Decks[DeckId]
693
- : never;
694
- // `hands` is a `Record<string, PerPlayer<string[]>>`-shaped map. Extracting the
695
- // per-player cards type through the `PerPlayer<Value>` wrapper requires
696
- // digging into the `entries` tuple. This intermediate helper resolves the
697
- // tuple-value type even when `PerPlayer` is generic.
698
- type ValueOfPerPlayer<T> = T extends {
699
- readonly entries: ReadonlyArray<readonly [unknown, infer Value]>;
700
- }
701
- ? Value
702
- : never;
703
- export type HandCardsOfTable<
704
- Table,
705
- HandId extends HandIdOfTable<Table>,
706
- > = Table extends {
707
- hands: infer Hands extends Record<string, unknown>;
708
- }
709
- ? HandId extends keyof Hands
710
- ? ValueOfPerPlayer<Hands[HandId]> extends infer Value
711
- ? Value extends readonly unknown[]
712
- ? Value
713
- : never
714
- : never
715
- : never
716
- : never;
717
- export type CardIdOfDeck<
718
- Table,
719
- DeckId extends DeckIdOfTable<Table>,
720
- > = DeckCardsOfTable<Table, DeckId>[number];
721
- export type CardIdOfHand<
722
- Table,
723
- HandId extends HandIdOfTable<Table>,
724
- > = HandCardsOfTable<Table, HandId>[number];
725
- export type CompatibleHandIdForDeck<
726
- Table,
727
- DeckId extends DeckIdOfTable<Table>,
728
- > = {
729
- [CandidateHandId in HandIdOfTable<Table>]: Extract<
730
- CardIdOfDeck<Table, DeckId>,
731
- CardIdOfHand<Table, CandidateHandId>
732
- > extends never
733
- ? never
734
- : CandidateHandId;
735
- }[HandIdOfTable<Table>];
736
- export type CompatibleCardIdForHandAndDeck<
737
- Table,
738
- HandId extends HandIdOfTable<Table>,
739
- DeckId extends DeckIdOfTable<Table>,
740
- > = Extract<CardIdOfHand<Table, HandId>, CardIdOfDeck<Table, DeckId>>;
741
- export type CompatibleCardIdForTwoPlayerZones<
742
- Table,
743
- FromZoneId extends HandIdOfTable<Table>,
744
- ToZoneId extends HandIdOfTable<Table>,
745
- > = Extract<CardIdOfHand<Table, FromZoneId>, CardIdOfHand<Table, ToZoneId>>;