@dreamboard-games/sdk 0.2.1-alpha.1 → 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 (372) 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-BBMVT3KG.d.ts → ThemeProvider-DvMl17Ny.d.ts} +1 -1
  4. package/dist/{chunk-NKCRKGR2.js → chunk-3RQEICD3.js} +2 -2
  5. package/dist/{chunk-ZABVH7AO.js → chunk-ADYH6PVT.js} +1336 -1363
  6. package/dist/chunk-ADYH6PVT.js.map +1 -0
  7. package/dist/{chunk-PEI3FIL2.js → chunk-P7VMTJ5D.js} +2 -2
  8. package/dist/{chunk-PEI3FIL2.js.map → chunk-P7VMTJ5D.js.map} +1 -1
  9. package/dist/{chunk-WG4JQL3S.js → chunk-QZ6X4B5P.js} +1177 -1109
  10. package/dist/chunk-QZ6X4B5P.js.map +1 -0
  11. package/dist/{chunk-MZNVHMJ5.js → chunk-TXXLS3OI.js} +405 -309
  12. package/dist/chunk-TXXLS3OI.js.map +1 -0
  13. package/dist/{chunk-FDNZTDD6.js → chunk-W6SGFWXH.js} +48 -44
  14. package/dist/chunk-W6SGFWXH.js.map +1 -0
  15. package/dist/{chunk-MKXPVOUT.js → chunk-Y2AFYBMB.js} +48 -4
  16. package/dist/chunk-Y2AFYBMB.js.map +1 -0
  17. package/dist/{index-BwqPQtBu.d.ts → codegen.d.ts} +57 -565
  18. package/dist/{infrastructure/workspace-codegen.js → codegen.js} +3 -3
  19. package/dist/{components-BoiVSYqx.d.ts → components-DaIqi9QM.d.ts} +48 -37
  20. package/dist/{hex-board-view-1iAyJRFn.d.ts → hex-board-view-UCUjMALd.d.ts} +2 -2
  21. package/dist/{infrastructure/reducer-bundle-abi.d.ts → index.d-BGqVifr_.d.ts} +289 -10
  22. package/dist/index.js +1 -1
  23. package/dist/package-set.d.ts +2 -2
  24. package/dist/package-set.js +1 -1
  25. package/dist/primitive-props-BNHDkgd7.d.ts +16 -0
  26. package/dist/reducer-contract.d.ts +3 -0
  27. package/dist/{infrastructure/reducer-bundle-abi.js → reducer-contract.js} +4 -4
  28. package/dist/reducer.d.ts +185 -179
  29. package/dist/reducer.js +1363 -1372
  30. package/dist/reducer.js.map +1 -1
  31. package/dist/runtime/primitives.d.ts +9 -9
  32. package/dist/runtime/primitives.js +7 -7
  33. package/dist/runtime/runtime-api.d.ts +2 -0
  34. package/dist/runtime/runtime-api.js +1 -0
  35. package/dist/runtime/workspace-contract.d.ts +62 -17
  36. package/dist/runtime/workspace-contract.js +5 -6
  37. package/dist/{runtime-api-CPLm_XDG.d.ts → runtime-api-tGL3ArsB.d.ts} +103 -4
  38. package/dist/runtime.d.ts +11 -57
  39. package/dist/runtime.js +487 -8
  40. package/dist/runtime.js.map +1 -1
  41. package/dist/testing.d.ts +4 -4
  42. package/dist/testing.js.map +1 -1
  43. package/dist/types.d.ts +1531 -85
  44. package/dist/types.js +1 -3
  45. package/dist/types.js.map +1 -1
  46. package/dist/ui/components.d.ts +7 -8
  47. package/dist/ui/components.js +1 -1
  48. package/dist/ui/defaults.d.ts +1 -1
  49. package/dist/ui/{types/player-state.d.ts → player-state.d.ts} +2 -2
  50. package/dist/{ui-contract-rzKBwOLC.d.ts → ui-contract-SctM4ibF.d.ts} +155 -150
  51. package/dist/ui.d.ts +10 -11
  52. package/dist/ui.js +2 -2
  53. package/package.json +30 -75
  54. package/dist/bundle-CDd5FKeD.d.ts +0 -283
  55. package/dist/cards-Sl3b40Mv.d.ts +0 -13
  56. package/dist/chunk-326PGVAA.js +0 -34
  57. package/dist/chunk-326PGVAA.js.map +0 -1
  58. package/dist/chunk-FDNZTDD6.js.map +0 -1
  59. package/dist/chunk-I46YJSOD.js +0 -1
  60. package/dist/chunk-MKXPVOUT.js.map +0 -1
  61. package/dist/chunk-MZNVHMJ5.js.map +0 -1
  62. package/dist/chunk-T52J5RMF.js +0 -1
  63. package/dist/chunk-WG4JQL3S.js.map +0 -1
  64. package/dist/chunk-XV6D3ET4.js +0 -485
  65. package/dist/chunk-XV6D3ET4.js.map +0 -1
  66. package/dist/chunk-ZABVH7AO.js.map +0 -1
  67. package/dist/generated/runtime/primitives.d.ts +0 -13
  68. package/dist/generated/runtime/primitives.js +0 -181
  69. package/dist/generated/runtime/primitives.js.map +0 -1
  70. package/dist/generated/runtime-api.d.ts +0 -3
  71. package/dist/generated/runtime-api.js +0 -2
  72. package/dist/generated/runtime.d.ts +0 -15
  73. package/dist/generated/runtime.js +0 -19
  74. package/dist/generated/runtime.js.map +0 -1
  75. package/dist/generated/workspace-contract.d.ts +0 -15
  76. package/dist/generated/workspace-contract.js +0 -15
  77. package/dist/generated/workspace-contract.js.map +0 -1
  78. package/dist/infrastructure/reducer-bundle-abi.js.map +0 -1
  79. package/dist/infrastructure/workspace-codegen.d.ts +0 -53
  80. package/dist/infrastructure/workspace-codegen.js.map +0 -1
  81. package/dist/manifest-contract-BNHVGFtU.d.ts +0 -9
  82. package/dist/primitive-props-DpKs-GCr.d.ts +0 -11
  83. package/dist/runtime/types/runtime-api.d.ts +0 -1
  84. package/dist/runtime/types/runtime-api.js +0 -2
  85. package/dist/runtime/types/runtime-api.js.map +0 -1
  86. package/dist/runtime-api-3dshj6kK.d.ts +0 -101
  87. package/dist/slots-1GPGihk8.d.ts +0 -8
  88. package/src/browser-interaction/attributes.ts +0 -211
  89. package/src/browser-interaction/canonical.ts +0 -77
  90. package/src/browser-interaction/constants.ts +0 -77
  91. package/src/browser-interaction/effects.ts +0 -176
  92. package/src/browser-interaction/index.ts +0 -111
  93. package/src/browser-interaction/normalize.ts +0 -997
  94. package/src/browser-interaction/registry.ts +0 -70
  95. package/src/browser-interaction/resolve.ts +0 -596
  96. package/src/browser-interaction/schemas.ts +0 -152
  97. package/src/browser-interaction/types.ts +0 -304
  98. package/src/browser-interaction.ts +0 -1
  99. package/src/generated/reducer-contract/builders.ts +0 -90
  100. package/src/generated/reducer-contract/version.ts +0 -9
  101. package/src/generated/reducer-contract/wire.ts +0 -100
  102. package/src/generated/reducer-contract/zod.ts +0 -103
  103. package/src/generated/runtime/primitives.ts +0 -2
  104. package/src/generated/runtime-api.ts +0 -5
  105. package/src/generated/runtime.ts +0 -35
  106. package/src/generated/workspace-contract.ts +0 -2
  107. package/src/index.ts +0 -7
  108. package/src/infrastructure/reducer-bundle-abi.ts +0 -8
  109. package/src/infrastructure/reducer-contract/bundle.ts +0 -37
  110. package/src/infrastructure/workspace-codegen/hex-geometry.ts +0 -69
  111. package/src/infrastructure/workspace-codegen/index.ts +0 -64
  112. package/src/infrastructure/workspace-codegen/manifest-contract.ts +0 -6632
  113. package/src/infrastructure/workspace-codegen/manifest-validation.ts +0 -795
  114. package/src/infrastructure/workspace-codegen/ownership.ts +0 -131
  115. package/src/infrastructure/workspace-codegen/preset-card-sets.ts +0 -169
  116. package/src/infrastructure/workspace-codegen/seeds.ts +0 -1705
  117. package/src/infrastructure/workspace-codegen.ts +0 -1
  118. package/src/package-set.ts +0 -19
  119. package/src/reducer/authoring/contract.ts +0 -157
  120. package/src/reducer/authoring/effect.ts +0 -224
  121. package/src/reducer/authoring/game.ts +0 -23
  122. package/src/reducer/authoring/interaction.ts +0 -98
  123. package/src/reducer/authoring/phase.ts +0 -300
  124. package/src/reducer/authoring/types.ts +0 -70
  125. package/src/reducer/authoring/validation.ts +0 -382
  126. package/src/reducer/authoring/view-stage.ts +0 -68
  127. package/src/reducer/authoring.ts +0 -29
  128. package/src/reducer/bundle/ingress-bundle.ts +0 -491
  129. package/src/reducer/bundle/trusted/engine-instruction-resolver.ts +0 -254
  130. package/src/reducer/bundle/trusted/flow-instruction-resolver.ts +0 -73
  131. package/src/reducer/bundle/trusted/instruction-runner.ts +0 -414
  132. package/src/reducer/bundle/trusted/interaction-authorization.ts +0 -137
  133. package/src/reducer/bundle/trusted/interaction-collectors.ts +0 -859
  134. package/src/reducer/bundle/trusted/interaction-decision.ts +0 -747
  135. package/src/reducer/bundle/trusted/interaction-resolver.ts +0 -95
  136. package/src/reducer/bundle/trusted/interaction-types.ts +0 -174
  137. package/src/reducer/bundle/trusted/lifecycle-runner.ts +0 -427
  138. package/src/reducer/bundle/trusted/projection-builder.ts +0 -680
  139. package/src/reducer/bundle/trusted/projection-context.ts +0 -39
  140. package/src/reducer/bundle/trusted/rng-sampler.ts +0 -150
  141. package/src/reducer/bundle/trusted/runtime-registry.ts +0 -120
  142. package/src/reducer/bundle/trusted/runtime-scope.ts +0 -336
  143. package/src/reducer/bundle/trusted/simultaneous-player.ts +0 -97
  144. package/src/reducer/bundle/trusted/stage-resolver.ts +0 -87
  145. package/src/reducer/bundle/trusted/static-projection.ts +0 -116
  146. package/src/reducer/bundle/trusted/trusted-runtime-args.ts +0 -97
  147. package/src/reducer/bundle/trusted/trusted-runtime-result.ts +0 -39
  148. package/src/reducer/bundle/trusted/trusted-setup-profiles.ts +0 -43
  149. package/src/reducer/bundle/trusted/trusted-state-codec.ts +0 -48
  150. package/src/reducer/bundle/trusted-bundle.ts +0 -97
  151. package/src/reducer/bundle/types.ts +0 -171
  152. package/src/reducer/bundle.ts +0 -2
  153. package/src/reducer/client-param-schemas.ts +0 -57
  154. package/src/reducer/compose.ts +0 -34
  155. package/src/reducer/core/runtime-input.ts +0 -30
  156. package/src/reducer/core/runtime-instruction.ts +0 -59
  157. package/src/reducer/core/types.ts +0 -62
  158. package/src/reducer/definition-index.ts +0 -277
  159. package/src/reducer/derived.ts +0 -106
  160. package/src/reducer/effects.ts +0 -92
  161. package/src/reducer/engine/runtime-instruction-engine.ts +0 -155
  162. package/src/reducer/ingress/decode-runtime-input.ts +0 -7
  163. package/src/reducer/ingress/decode-session-state.ts +0 -9
  164. package/src/reducer/ingress/encode-session-state.ts +0 -6
  165. package/src/reducer/ingress/input-codec.ts +0 -18
  166. package/src/reducer/ingress/phase-schemas.ts +0 -62
  167. package/src/reducer/ingress/raw-types.ts +0 -107
  168. package/src/reducer/ingress/runtime-codec.ts +0 -14
  169. package/src/reducer/ingress/runtime-payload.ts +0 -13
  170. package/src/reducer/ingress/session-codec.ts +0 -392
  171. package/src/reducer/ingress/types.ts +0 -6
  172. package/src/reducer/inputs/boardInput.ts +0 -217
  173. package/src/reducer/inputs/boardTarget.ts +0 -190
  174. package/src/reducer/inputs/cardInput.ts +0 -86
  175. package/src/reducer/inputs/cardTarget.ts +0 -101
  176. package/src/reducer/inputs/choiceTarget.ts +0 -104
  177. package/src/reducer/inputs/defineInputs.ts +0 -71
  178. package/src/reducer/inputs/formInput.ts +0 -809
  179. package/src/reducer/inputs/many.ts +0 -120
  180. package/src/reducer/inputs/promptInput.ts +0 -87
  181. package/src/reducer/inputs/rngInput.ts +0 -58
  182. package/src/reducer/inputs/targetRule.ts +0 -123
  183. package/src/reducer/inputs.ts +0 -41
  184. package/src/reducer/model/definition.ts +0 -1072
  185. package/src/reducer/model/extract.ts +0 -745
  186. package/src/reducer/model/manifest.ts +0 -570
  187. package/src/reducer/model/queries.ts +0 -641
  188. package/src/reducer/model/runtime.ts +0 -264
  189. package/src/reducer/model/spec.ts +0 -1386
  190. package/src/reducer/model/table.ts +0 -260
  191. package/src/reducer/model.ts +0 -7
  192. package/src/reducer/ops.ts +0 -1034
  193. package/src/reducer/parse-utils.ts +0 -28
  194. package/src/reducer/per-player.ts +0 -422
  195. package/src/reducer/rng.ts +0 -69
  196. package/src/reducer/schema-helpers.ts +0 -185
  197. package/src/reducer/setup-bootstrap-helpers.ts +0 -171
  198. package/src/reducer/setup-bootstrap.ts +0 -481
  199. package/src/reducer/table-ops.ts +0 -2671
  200. package/src/reducer/table-queries.ts +0 -372
  201. package/src/reducer/transaction.ts +0 -120
  202. package/src/reducer.ts +0 -314
  203. package/src/runtime/primitives.ts +0 -1
  204. package/src/runtime/types/runtime-api.ts +0 -1
  205. package/src/runtime/workspace-contract.ts +0 -32
  206. package/src/runtime-internal/components/InteractionForm.tsx +0 -1647
  207. package/src/runtime-internal/components/PluginRuntime.tsx +0 -105
  208. package/src/runtime-internal/components/board/target-layer.ts +0 -72
  209. package/src/runtime-internal/context/ClientParamSchemaContext.tsx +0 -44
  210. package/src/runtime-internal/context/InteractionDraftContext.tsx +0 -279
  211. package/src/runtime-internal/context/PluginSessionContext.tsx +0 -47
  212. package/src/runtime-internal/context/PluginStateContext.tsx +0 -303
  213. package/src/runtime-internal/context/RuntimeContext.tsx +0 -96
  214. package/src/runtime-internal/defaults/components.tsx +0 -409
  215. package/src/runtime-internal/defaults/index.ts +0 -11
  216. package/src/runtime-internal/errors/ValidationError.ts +0 -29
  217. package/src/runtime-internal/hooks/useActivePlayers.ts +0 -33
  218. package/src/runtime-internal/hooks/useBoardInteractions.ts +0 -727
  219. package/src/runtime-internal/hooks/useGameSelector.ts +0 -105
  220. package/src/runtime-internal/hooks/useGameView.ts +0 -9
  221. package/src/runtime-internal/hooks/useInteractionByKey.ts +0 -354
  222. package/src/runtime-internal/hooks/useInteractionHandle.ts +0 -438
  223. package/src/runtime-internal/hooks/useIsMyTurn.ts +0 -20
  224. package/src/runtime-internal/hooks/useLobby.ts +0 -76
  225. package/src/runtime-internal/hooks/useMe.ts +0 -48
  226. package/src/runtime-internal/hooks/usePlayerInfo.ts +0 -28
  227. package/src/runtime-internal/hooks/usePlayerTurnOrder.ts +0 -23
  228. package/src/runtime-internal/hooks/usePluginRuntime.ts +0 -147
  229. package/src/runtime-internal/hooks/useSeatInbox.ts +0 -61
  230. package/src/runtime-internal/hooks/useSimultaneousPhase.ts +0 -10
  231. package/src/runtime-internal/index.ts +0 -42
  232. package/src/runtime-internal/internal.ts +0 -43
  233. package/src/runtime-internal/plugin-styles.css +0 -250
  234. package/src/runtime-internal/primitives/board.tsx +0 -530
  235. package/src/runtime-internal/primitives/dialog-lifecycle.ts +0 -58
  236. package/src/runtime-internal/primitives/dice.tsx +0 -79
  237. package/src/runtime-internal/primitives/game-ui-provider.tsx +0 -35
  238. package/src/runtime-internal/primitives/game.tsx +0 -387
  239. package/src/runtime-internal/primitives/hand-intent-adapter.ts +0 -147
  240. package/src/runtime-internal/primitives/hand-surface.tsx +0 -594
  241. package/src/runtime-internal/primitives/index.ts +0 -196
  242. package/src/runtime-internal/primitives/interaction-form-binding.tsx +0 -56
  243. package/src/runtime-internal/primitives/interaction-submit.ts +0 -90
  244. package/src/runtime-internal/primitives/interaction.tsx +0 -1146
  245. package/src/runtime-internal/primitives/phase.tsx +0 -43
  246. package/src/runtime-internal/primitives/player-roster.tsx +0 -302
  247. package/src/runtime-internal/primitives/primitive-props.tsx +0 -101
  248. package/src/runtime-internal/primitives/prompt.tsx +0 -255
  249. package/src/runtime-internal/primitives/ui.tsx +0 -60
  250. package/src/runtime-internal/primitives/zone.tsx +0 -791
  251. package/src/runtime-internal/reducer.ts +0 -30
  252. package/src/runtime-internal/runtime/createPluginRuntimeAPI.ts +0 -605
  253. package/src/runtime-internal/types/plugin-state.ts +0 -514
  254. package/src/runtime-internal/types/reducer-state.ts +0 -24
  255. package/src/runtime-internal/types/runtime-api.ts +0 -114
  256. package/src/runtime-internal/ui-contract.ts +0 -519
  257. package/src/runtime-internal/utils/browser-interaction-effects.ts +0 -240
  258. package/src/runtime-internal/utils/card-intent-adapter.ts +0 -546
  259. package/src/runtime-internal/utils/interaction-draft-digest.ts +0 -252
  260. package/src/runtime-internal/utils/interaction-inputs.ts +0 -492
  261. package/src/runtime-internal/utils/interaction-labels.ts +0 -23
  262. package/src/runtime-internal/utils/interaction-router.ts +0 -273
  263. package/src/runtime-internal/utils/interaction-status.ts +0 -74
  264. package/src/runtime-internal/utils/semantic-projection-digest.ts +0 -407
  265. package/src/runtime-internal/workspace-contract.ts +0 -1170
  266. package/src/runtime.ts +0 -34
  267. package/src/testing/create-expect-api.ts +0 -352
  268. package/src/testing/create-test-runtime.ts +0 -381
  269. package/src/testing/definitions.ts +0 -127
  270. package/src/testing/index.ts +0 -3
  271. package/src/testing.ts +0 -1
  272. package/src/type-stubs/manifest-contract.d.ts +0 -42
  273. package/src/type-stubs/manifest-contract.js +0 -72
  274. package/src/type-stubs/ui-contract.d.ts +0 -5
  275. package/src/type-stubs/ui-contract.js +0 -1
  276. package/src/types/authoring-card-properties.type-test.ts +0 -266
  277. package/src/types/authoring.ts +0 -1282
  278. package/src/types/cards.ts +0 -19
  279. package/src/types/contracts.ts +0 -1550
  280. package/src/types/generated-helpers.ts +0 -35
  281. package/src/types/index.ts +0 -147
  282. package/src/types/slots.ts +0 -11
  283. package/src/types.ts +0 -1
  284. package/src/ui/components/ActionButton.tsx +0 -97
  285. package/src/ui/components/ActionPanel.tsx +0 -315
  286. package/src/ui/components/Card.tsx +0 -378
  287. package/src/ui/components/CardDragSurface.tsx +0 -1076
  288. package/src/ui/components/ChromeSuppressionContext.tsx +0 -70
  289. package/src/ui/components/CostDisplay.tsx +0 -145
  290. package/src/ui/components/DiceRoller.tsx +0 -581
  291. package/src/ui/components/Drawer.tsx +0 -180
  292. package/src/ui/components/ErrorBoundary.tsx +0 -275
  293. package/src/ui/components/GameEndDisplay.tsx +0 -398
  294. package/src/ui/components/GameSkeleton.tsx +0 -260
  295. package/src/ui/components/Hand.tsx +0 -468
  296. package/src/ui/components/HandDock.tsx +0 -299
  297. package/src/ui/components/HandView.tsx +0 -441
  298. package/src/ui/components/MobileHandTray.tsx +0 -381
  299. package/src/ui/components/MoreActions.tsx +0 -143
  300. package/src/ui/components/PhaseIndicator.tsx +0 -341
  301. package/src/ui/components/PlayArea.tsx +0 -146
  302. package/src/ui/components/PrimaryActionButton.tsx +0 -336
  303. package/src/ui/components/PrimaryButton.tsx +0 -45
  304. package/src/ui/components/ResourceCounter.tsx +0 -270
  305. package/src/ui/components/StagingZone.tsx +0 -134
  306. package/src/ui/components/ThemedButton.tsx +0 -113
  307. package/src/ui/components/Toast.tsx +0 -264
  308. package/src/ui/components/board/HexGrid.tsx +0 -1297
  309. package/src/ui/components/board/NetworkGraph.tsx +0 -476
  310. package/src/ui/components/board/SlotSystem.tsx +0 -388
  311. package/src/ui/components/board/SquareGrid.tsx +0 -1165
  312. package/src/ui/components/board/TrackBoard.tsx +0 -496
  313. package/src/ui/components/board/ZoneMap.tsx +0 -448
  314. package/src/ui/components/board/hex-board-view.ts +0 -123
  315. package/src/ui/components/board/index.ts +0 -142
  316. package/src/ui/components/board/interaction-accessibility.ts +0 -21
  317. package/src/ui/components/board/target-layer.ts +0 -67
  318. package/src/ui/components/card-render-content.type-test.ts +0 -27
  319. package/src/ui/components/hand-layout-math.ts +0 -163
  320. package/src/ui/components/hand-pointer-engine.ts +0 -413
  321. package/src/ui/components/index.ts +0 -245
  322. package/src/ui/components.ts +0 -1
  323. package/src/ui/defaults/components.tsx +0 -106
  324. package/src/ui/defaults/index.ts +0 -8
  325. package/src/ui/defaults.ts +0 -1
  326. package/src/ui/errors/ValidationError.ts +0 -29
  327. package/src/ui/helpers/cards.ts +0 -19
  328. package/src/ui/helpers/track-board.ts +0 -211
  329. package/src/ui/hooks/useBoardTopology.ts +0 -316
  330. package/src/ui/hooks/useCards.ts +0 -10
  331. package/src/ui/hooks/useHandCardPointer.ts +0 -381
  332. package/src/ui/hooks/useHandLayout.ts +0 -378
  333. package/src/ui/hooks/useHandPresentation.ts +0 -121
  334. package/src/ui/hooks/useHexBoard.ts +0 -74
  335. package/src/ui/hooks/useHexGrid.ts +0 -185
  336. package/src/ui/hooks/useIsMobile.ts +0 -35
  337. package/src/ui/hooks/usePanZoom.ts +0 -278
  338. package/src/ui/hooks/useSquareBoard.ts +0 -124
  339. package/src/ui/hooks/useSquareGrid.ts +0 -328
  340. package/src/ui/index.ts +0 -98
  341. package/src/ui/internal/ui/alert.tsx +0 -51
  342. package/src/ui/internal/ui/button.tsx +0 -58
  343. package/src/ui/internal/ui/dialog.tsx +0 -134
  344. package/src/ui/internal/ui/input.tsx +0 -21
  345. package/src/ui/internal/ui/label.tsx +0 -21
  346. package/src/ui/internal/ui/select.tsx +0 -129
  347. package/src/ui/internal/ui/tooltip.tsx +0 -54
  348. package/src/ui/internal/ui/utils.ts +0 -5
  349. package/src/ui/plugin-styles.css +0 -250
  350. package/src/ui/primitives/dialog-lifecycle.ts +0 -58
  351. package/src/ui/primitives/dice.tsx +0 -79
  352. package/src/ui/primitives/primitive-props.tsx +0 -101
  353. package/src/ui/theme/ThemeProvider.tsx +0 -252
  354. package/src/ui/theme/board.ts +0 -61
  355. package/src/ui/theme/css-vars.ts +0 -105
  356. package/src/ui/theme/derive.ts +0 -240
  357. package/src/ui/theme/index.ts +0 -61
  358. package/src/ui/theme/presets/arcade.ts +0 -261
  359. package/src/ui/theme/presets/studio.ts +0 -261
  360. package/src/ui/theme/presets/tabletop.ts +0 -266
  361. package/src/ui/theme/tokens.ts +0 -392
  362. package/src/ui/types/hex-color.ts +0 -20
  363. package/src/ui/types/player-state.ts +0 -463
  364. package/src/ui/types/tiled-board.ts +0 -785
  365. package/src/ui/types/visual-state.ts +0 -137
  366. package/src/ui.ts +0 -1
  367. /package/dist/{chunk-NKCRKGR2.js.map → chunk-3RQEICD3.js.map} +0 -0
  368. /package/dist/{chunk-I46YJSOD.js.map → codegen.js.map} +0 -0
  369. /package/dist/{chunk-T52J5RMF.js.map → reducer-contract.js.map} +0 -0
  370. /package/dist/{generated → runtime}/runtime-api.js.map +0 -0
  371. /package/dist/ui/{types/player-state.js → player-state.js} +0 -0
  372. /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>>;