@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
package/dist/ui.d.ts CHANGED
@@ -1,14 +1,13 @@
1
- import { bm as TrackSpace, bl as TrackPiece } from './components-BoiVSYqx.js';
2
- export { A as ActionButton, a as ActionButtonProps, b as ActionGroup, c as ActionGroupProps, d as ActionPanel, e as ActionPanelProps, B as ButtonSize, f as ButtonVariant, C as CardDragSurface, g as CardDragSurfaceContextValue, h as CardDragSurfaceController, i as CardDragSurfaceProps, j as CardDropTargetView, k as CardDropTargetViewProps, l as CardFace, m as CardFaceProps, n as CardPositionProps, o as CardSize, p as ChromeSuppressionProvider, q as CostDisplay, r as CostDisplayProps, D as DefaultChessPiece, s as DefaultChessPieceProps, t as DefaultEmptySlot, u as DefaultEmptySlotProps, v as DefaultGridCell, w as DefaultGridCellProps, x as DefaultGridPiece, y as DefaultGridPieceProps, z as DefaultNetworkEdge, E as DefaultNetworkEdgeProps, F as DefaultNetworkNode, G as DefaultNetworkNodeProps, H as DefaultNetworkPiece, I as DefaultNetworkPieceProps, J as DefaultSlotItem, K as DefaultSlotItemProps, L as DefaultSlotOccupant, M as DefaultSlotOccupantProps, N as DefaultTrackConnection, O as DefaultTrackConnectionProps, P as DefaultTrackJump, Q as DefaultTrackJumpProps, R as DefaultTrackPiece, S as DefaultTrackPieceProps, T as DefaultTrackSpace, U as DefaultTrackSpaceProps, V as DefaultZone, W as DefaultZonePiece, X as DefaultZonePieceProps, Y as DefaultZonePieces, Z as DefaultZonePiecesProps, _ as DefaultZoneProps, $ as Dialog, a0 as DialogClose, a1 as DialogContent, a2 as DialogDescription, a3 as DialogFooter, a4 as DialogHeader, a5 as DialogOverlay, a6 as DialogPortal, a7 as DialogTitle, a8 as DialogTrigger, a9 as DiceRoller, aa as DiceRollerProps, ab as DragPhase, ac as Drawer, ad as DrawerClose, ae as DrawerContent, af as DrawerDescription, ag as DrawerFooter, ah as DrawerHeader, ai as DrawerOverlay, aj as DrawerPortal, ak as DrawerTitle, al as DrawerTrigger, am as ErrorBoundary, an as ErrorBoundaryProps, ao as GameEndDisplay, ap as GameEndDisplayProps, aq as GameSkeleton, ar as GameSkeletonProps, as as Hand, at as HandDock, au as HandDockMode, av as HandDockPlacement, aw as HandDockPresentation, ax as HandDockProps, ay as HandDockToggleContext, az as HandLayout, aA as HandProps, aB as Input, aC as InteractiveSquareEdge, aD as InteractiveSquareVertex, aE as Label, aF as MoreActions, aG as MoreActionsProps, aH as NetworkEdge, aI as NetworkGraph, aJ as NetworkGraphProps, aK as NetworkNode, aL as NetworkPiece, aM as PhaseIndicator, aN as PhaseIndicatorProps, aO as PlayArea, aP as PlayAreaProps, aQ as PlayerScore, aR as PrimaryActionAttention, aS as PrimaryActionButton, aT as PrimaryActionButtonProps, aU as PrimaryButton, aV as PrimaryButtonProps, aW as ResourceDefinition, aX as Select, aY as SelectContent, aZ as SelectItem, a_ as SelectTrigger, a$ as SlotDefinition, b0 as SlotOccupant, b1 as SlotSystem, b2 as SlotSystemProps, b3 as SquareEdgePosition, b4 as SquareGrid, b5 as SquareGridBoardProps, b6 as SquareGridProps, b7 as SquareVertexPosition, b8 as StagingZone, b9 as StagingZoneProps, ba as ThemedButton, bb as ThemedButtonProps, bc as Toast, bd as ToastActions, be as ToastActionsProps, bf as ToastActionsValue, bg as ToastNotification, bh as ToastProvider, bi as ToastType, bj as TrackBoard, bk as TrackBoardProps, bn as UseHandLayoutOptions, bo as UseHandLayoutReturn, bp as ZoneDefinition, bq as ZoneHighlightType, br as ZoneMap, bs as ZoneMapProps, bt as ZonePiece, bu as ZoneShape, bv as buttonStyle, bw as chipStyle, bx as intentForVariant, by as motionDuration, bz as playerColor, bA as surfaceStyle, bB as toAlgebraic, bC as toNumeric, bD as useCardDragSurface, bE as useChromeSuppression, bF as useHandLayout } from './components-BoiVSYqx.js';
3
- import { _ as Theme } from './hex-board-view-1iAyJRFn.js';
4
- export { A as AnyHexBoardInput, a as AnySquareBoardInput, b as AuthoredHexBoardInput, c as AuthoredSquareBoardInput, B as BoardEdgeIdOf, d as BoardSpaceIdOf, e as BoardVertexIdOf, C as ColorRamp, f as ComponentTokens, D as DefaultHexEdge, g as DefaultHexEdgeProps, h as DefaultHexTile, i as DefaultHexTileProps, j as DefaultHexVertex, k as DefaultHexVertexProps, E as EdgePosition, l as Elevation, F as FoundationColor, G as GeneratedHexBoardInput, m as GeneratedHexSpaceStateLike, n as GeneratedSquareBoardInput, o as GeneratedSquareSpaceStateLike, p as GeneratedTiledEdgeStateLike, q as GeneratedTiledVertexStateLike, H as HexBoardInput, r as HexBoardView, s as HexBoardViewTile, t as HexGrid, u as HexGridBoardProps, v as HexGridProps, w as HexOrientation, x as HexTileGeometry, I as IntentColor, y as InteractiveHexEdge, z as InteractiveHexVertex, J as InteractiveTargetLayer, K as InteractiveTargetRenderState, M as Motion, N as NormalizedHexBoard, L as NormalizedHexEdgeOf, O as NormalizedHexTileOf, P as NormalizedHexVertexOf, Q as NormalizedSquareBoard, R as NormalizedSquareCellOf, S as NormalizedSquareEdgeOf, T as NormalizedSquarePieceOf, U as NormalizedSquareVertexOf, V as PlayerColor, W as Radius, X as SemanticColor, Y as Space, Z as SquareBoardInput, $ as ThemeMeta, a0 as ThemeOverride, a1 as Typography, a2 as createHexBoardView, a3 as hexUtils, a4 as mergeTheme, a5 as normalizeHexBoardInput, a6 as normalizeSquareBoardInput } from './hex-board-view-1iAyJRFn.js';
5
- export { T as ThemeContextValue, a as ThemePresetId, b as ThemeProvider, c as ThemeProviderProps, g as getThemePreset, r as resolveTheme, u as useTheme, d as useThemeCssVars } from './ThemeProvider-BBMVT3KG.js';
1
+ import { bm as TrackSpace, bl as TrackPiece } from './components-DaIqi9QM.js';
2
+ export { A as ActionButton, a as ActionButtonProps, b as ActionGroup, c as ActionGroupProps, d as ActionPanel, e as ActionPanelProps, B as ButtonSize, f as ButtonVariant, C as CardDragSurface, g as CardDragSurfaceContextValue, h as CardDragSurfaceController, i as CardDragSurfaceProps, j as CardDropTargetView, k as CardDropTargetViewProps, l as CardFace, m as CardFaceProps, n as CardPositionProps, o as CardSize, p as ChromeSuppressionProvider, q as CostDisplay, r as CostDisplayProps, D as DefaultChessPiece, s as DefaultChessPieceProps, t as DefaultEmptySlot, u as DefaultEmptySlotProps, v as DefaultGridCell, w as DefaultGridCellProps, x as DefaultGridPiece, y as DefaultGridPieceProps, z as DefaultNetworkEdge, E as DefaultNetworkEdgeProps, F as DefaultNetworkNode, G as DefaultNetworkNodeProps, H as DefaultNetworkPiece, I as DefaultNetworkPieceProps, J as DefaultSlotItem, K as DefaultSlotItemProps, L as DefaultSlotOccupant, M as DefaultSlotOccupantProps, N as DefaultTrackConnection, O as DefaultTrackConnectionProps, P as DefaultTrackJump, Q as DefaultTrackJumpProps, R as DefaultTrackPiece, S as DefaultTrackPieceProps, T as DefaultTrackSpace, U as DefaultTrackSpaceProps, V as DefaultZone, W as DefaultZonePiece, X as DefaultZonePieceProps, Y as DefaultZonePieces, Z as DefaultZonePiecesProps, _ as DefaultZoneProps, $ as Dialog, a0 as DialogClose, a1 as DialogContent, a2 as DialogDescription, a3 as DialogFooter, a4 as DialogHeader, a5 as DialogOverlay, a6 as DialogPortal, a7 as DialogTitle, a8 as DialogTrigger, a9 as DiceRoller, aa as DiceRollerProps, ab as DragPhase, ac as Drawer, ad as DrawerClose, ae as DrawerContent, af as DrawerDescription, ag as DrawerFooter, ah as DrawerHeader, ai as DrawerOverlay, aj as DrawerPortal, ak as DrawerTitle, al as DrawerTrigger, am as ErrorBoundary, an as ErrorBoundaryProps, ao as GameEndDisplay, ap as GameEndDisplayProps, aq as GameSkeleton, ar as GameSkeletonProps, as as Hand, at as HandDock, au as HandDockMode, av as HandDockPlacement, aw as HandDockPresentation, ax as HandDockProps, ay as HandDockToggleContext, az as HandLayout, aA as HandProps, aB as Input, aC as InteractiveSquareEdge, aD as InteractiveSquareVertex, aE as Label, aF as MoreActions, aG as MoreActionsProps, aH as NetworkEdge, aI as NetworkGraph, aJ as NetworkGraphProps, aK as NetworkNode, aL as NetworkPiece, aM as PhaseIndicator, aN as PhaseIndicatorProps, aO as PlayArea, aP as PlayAreaProps, aQ as PlayerScore, aR as PrimaryActionAttention, aS as PrimaryActionButton, aT as PrimaryActionButtonProps, aU as PrimaryButton, aV as PrimaryButtonProps, aW as ResourceDefinition, aX as Select, aY as SelectContent, aZ as SelectItem, a_ as SelectTrigger, a$ as SlotDefinition, b0 as SlotOccupant, b1 as SlotSystem, b2 as SlotSystemProps, b3 as SquareEdgePosition, b4 as SquareGrid, b5 as SquareGridBoardProps, b6 as SquareGridProps, b7 as SquareVertexPosition, b8 as StagingZone, b9 as StagingZoneProps, ba as ThemedButton, bb as ThemedButtonProps, bc as Toast, bd as ToastActions, be as ToastActionsProps, bf as ToastActionsValue, bg as ToastNotification, bh as ToastProvider, bi as ToastType, bj as TrackBoard, bk as TrackBoardProps, bn as UseHandLayoutOptions, bo as UseHandLayoutReturn, bp as ZoneDefinition, bq as ZoneHighlightType, br as ZoneMap, bs as ZoneMapProps, bt as ZonePiece, bu as ZoneShape, bv as buttonStyle, bw as chipStyle, bx as intentForVariant, by as motionDuration, bz as playerColor, bA as surfaceStyle, bB as toAlgebraic, bC as toNumeric, bD as useCardDragSurface, bE as useChromeSuppression, bF as useHandLayout } from './components-DaIqi9QM.js';
3
+ import { $ as Theme } from './hex-board-view-UCUjMALd.js';
4
+ export { A as AnyHexBoardInput, a as AnySquareBoardInput, b as AuthoredHexBoardInput, c as AuthoredSquareBoardInput, B as BoardEdgeIdOf, d as BoardSpaceIdOf, e as BoardVertexIdOf, C as ColorRamp, f as ComponentTokens, D as DefaultHexEdge, g as DefaultHexEdgeProps, h as DefaultHexTile, i as DefaultHexTileProps, j as DefaultHexVertex, k as DefaultHexVertexProps, E as EdgePosition, l as Elevation, F as FoundationColor, G as GeneratedHexBoardInput, m as GeneratedHexSpaceStateLike, n as GeneratedSquareBoardInput, o as GeneratedSquareSpaceStateLike, p as GeneratedTiledEdgeStateLike, q as GeneratedTiledVertexStateLike, H as HexBoardInput, r as HexBoardView, s as HexBoardViewTile, t as HexGrid, u as HexGridBoardProps, v as HexGridProps, w as HexOrientation, x as HexTileGeometry, I as IntentColor, y as InteractiveHexEdge, z as InteractiveHexVertex, J as InteractiveTargetLayer, K as InteractiveTargetRenderState, M as Motion, N as NormalizedHexBoard, O as NormalizedHexEdgeOf, P as NormalizedHexTileOf, Q as NormalizedHexVertexOf, R as NormalizedSquareBoard, S as NormalizedSquareCellOf, T as NormalizedSquareEdgeOf, U as NormalizedSquarePieceOf, V as NormalizedSquareVertexOf, W as PlayerColor, X as Radius, Y as SemanticColor, Z as Space, _ as SquareBoardInput, a0 as ThemeMeta, a1 as ThemeOverride, a2 as Typography, a3 as createHexBoardView, a4 as hexUtils, a5 as mergeTheme, a6 as normalizeHexBoardInput, a7 as normalizeSquareBoardInput } from './hex-board-view-UCUjMALd.js';
5
+ export { T as ThemeContextValue, a as ThemePresetId, b as ThemeProvider, c as ThemeProviderProps, g as getThemePreset, r as resolveTheme, u as useTheme, d as useThemeCssVars } from './ThemeProvider-DvMl17Ny.js';
6
6
  import { CSSProperties } from 'react';
7
- export { C as CardDropTargetVisualState, a as CardIntent, H as HandInteractionPolicy, b as HandLayoutKind, c as HandLayoutPolicy, d as HandView, e as HandViewProps, I as InteractionVisualState, T as TargetIntent, f as dropTargetVisualStateDataAttributes, v as visualStateDataAttributes } from './HandView-ncJIVLhN.js';
8
- export { B as BoundResourceCounterRootProps, H as HandRole, M as MobileHandRegistration, a as MobileHandTrayProvider, R as ResourceCounter, b as ResourceCounterComponents, c as ResourceCounterCount, d as ResourceCounterIcon, e as ResourceCounterItem, f as ResourceCounterItemState, g as ResourceCounterLabel, h as ResourceCounterPartProps, i as ResourceCounterProps, j as ResourceCounterRoot, k as ResourceCounterRootProps, l as ResourceDisplayConfig, m as ResourceIconProps, n as createResourceCounter, u as useMobileHandTrayActive, o as useRegisterMobileHand } from './ResourceCounter-CTREyF73.js';
9
- export { BoardBaseId, BoardId, BoardKindStates, BoardRef, BoardStates, CardId, CardIdsByDeckId, CardProperties, DeckId, DiceStates, DieId, DieState, EdgeTypeId, GameState, HexBoardState, HexEdgeState, HexTileState, HexVertexState, NetworkBoardState, NetworkEdgeState, NetworkNodeState, NetworkPieceState, PerPlayer, PerPlayerBoardRef, PieceId, PieceTypeId, Player, PlayerId, SharedBoardRef, SpaceId, SpaceTypeId, SquareBoardState, SquareCellState, SquareEdgeState, SquarePieceState, SquareVertexState, TrackBoardState, TrackPieceState, TrackSpaceState, VertexTypeId } from './ui/types/player-state.js';
10
- export { C as CardCollection, V as ViewCard } from './cards-Sl3b40Mv.js';
11
- export { V as ViewSlotOccupant } from './slots-1GPGihk8.js';
7
+ export { C as CardDropTargetVisualState, a as CardIntent, H as HandInteractionPolicy, b as HandLayoutKind, c as HandLayoutPolicy, d as HandView, e as HandViewProps, I as InteractionVisualState, T as TargetIntent, f as dropTargetVisualStateDataAttributes, v as visualStateDataAttributes } from './HandView-PYDmehVD.js';
8
+ export { B as BoundResourceCounterRootProps, H as HandRole, M as MobileHandRegistration, a as MobileHandTrayProvider, R as ResourceCounter, b as ResourceCounterComponents, c as ResourceCounterCount, d as ResourceCounterIcon, e as ResourceCounterItem, f as ResourceCounterItemState, g as ResourceCounterLabel, h as ResourceCounterPartProps, i as ResourceCounterProps, j as ResourceCounterRoot, k as ResourceCounterRootProps, l as ResourceDisplayConfig, m as ResourceIconProps, n as createResourceCounter, u as useMobileHandTrayActive, o as useRegisterMobileHand } from './ResourceCounter-BTXklCEZ.js';
9
+ export { BoardBaseId, BoardId, BoardKindStates, BoardRef, BoardStates, CardId, CardIdsByDeckId, CardProperties, DeckId, DiceStates, DieId, DieState, EdgeTypeId, GameState, HexBoardState, HexEdgeState, HexTileState, HexVertexState, NetworkBoardState, NetworkEdgeState, NetworkNodeState, NetworkPieceState, PerPlayer, PerPlayerBoardRef, PieceId, PieceTypeId, Player, PlayerId, SharedBoardRef, SpaceId, SpaceTypeId, SquareBoardState, SquareCellState, SquareEdgeState, SquarePieceState, SquareVertexState, TrackBoardState, TrackPieceState, TrackSpaceState, VertexTypeId } from './ui/player-state.js';
10
+ export { CardCollection, ViewCard, ViewSlotOccupant } from './types.js';
12
11
  export { H as HexColor, h as hexColor, i as isHexColor, p as parseHexColor } from './hex-color-MhOyuY-o.js';
13
12
  import 'react/jsx-runtime';
14
13
  import 'framer-motion';
@@ -16,7 +15,7 @@ import 'vaul';
16
15
  import '@radix-ui/react-dialog';
17
16
  import '@radix-ui/react-label';
18
17
  import '@radix-ui/react-select';
19
- import './primitive-props-DpKs-GCr.js';
18
+ import './primitive-props-BNHDkgd7.js';
20
19
 
21
20
  /**
22
21
  * usePanZoom hook - Unified pan and zoom gestures using @use-gesture/react
package/dist/ui.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  parseHexColor,
6
6
  toTrackBoardData,
7
7
  useBoardTheme
8
- } from "./chunk-NKCRKGR2.js";
8
+ } from "./chunk-3RQEICD3.js";
9
9
  import {
10
10
  ActionButton,
11
11
  ActionGroup,
@@ -123,7 +123,7 @@ import {
123
123
  useTheme,
124
124
  useThemeCssVars,
125
125
  visualStateDataAttributes
126
- } from "./chunk-WG4JQL3S.js";
126
+ } from "./chunk-QZ6X4B5P.js";
127
127
  import "./chunk-VDXOF4FW.js";
128
128
  import "./chunk-PZ5AY32C.js";
129
129
  export {
package/package.json CHANGED
@@ -1,130 +1,90 @@
1
1
  {
2
2
  "name": "@dreamboard-games/sdk",
3
- "version": "0.2.1-alpha.1",
3
+ "version": "0.3.0-alpha.1",
4
4
  "description": "Dreamboard SDK package set metadata and public facade",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
- "bun": "./src/index.ts",
11
10
  "types": "./dist/index.d.ts",
12
11
  "import": "./dist/index.js",
13
12
  "default": "./dist/index.js"
14
13
  },
15
14
  "./package-set": {
16
- "bun": "./src/package-set.ts",
17
15
  "types": "./dist/package-set.d.ts",
18
16
  "import": "./dist/package-set.js",
19
17
  "default": "./dist/package-set.js"
20
18
  },
21
19
  "./types": {
22
- "bun": "./src/types.ts",
23
20
  "types": "./dist/types.d.ts",
24
21
  "import": "./dist/types.js",
25
22
  "default": "./dist/types.js"
26
23
  },
27
24
  "./reducer": {
28
- "bun": "./src/reducer.ts",
29
25
  "types": "./dist/reducer.d.ts",
30
26
  "import": "./dist/reducer.js",
31
27
  "default": "./dist/reducer.js"
32
28
  },
33
29
  "./ui": {
34
- "bun": "./src/ui.ts",
35
30
  "types": "./dist/ui.d.ts",
36
31
  "import": "./dist/ui.js",
37
32
  "default": "./dist/ui.js"
38
33
  },
39
34
  "./ui/components": {
40
- "bun": "./src/ui/components.ts",
41
35
  "types": "./dist/ui/components.d.ts",
42
36
  "import": "./dist/ui/components.js",
43
37
  "default": "./dist/ui/components.js"
44
38
  },
45
39
  "./ui/defaults": {
46
- "bun": "./src/ui/defaults.ts",
47
40
  "types": "./dist/ui/defaults.d.ts",
48
41
  "import": "./dist/ui/defaults.js",
49
42
  "default": "./dist/ui/defaults.js"
50
43
  },
51
- "./ui/types/player-state": {
52
- "bun": "./src/ui/types/player-state.ts",
53
- "types": "./dist/ui/types/player-state.d.ts",
54
- "import": "./dist/ui/types/player-state.js",
55
- "default": "./dist/ui/types/player-state.js"
44
+ "./ui/player-state": {
45
+ "types": "./dist/ui/player-state.d.ts",
46
+ "import": "./dist/ui/player-state.js",
47
+ "default": "./dist/ui/player-state.js"
56
48
  },
57
49
  "./ui/plugin-styles.css": {
58
50
  "default": "./dist/ui/plugin-styles.css"
59
51
  },
60
52
  "./runtime": {
61
- "bun": "./src/runtime.ts",
62
53
  "types": "./dist/runtime.d.ts",
63
54
  "import": "./dist/runtime.js",
64
55
  "default": "./dist/runtime.js"
65
56
  },
66
57
  "./runtime/primitives": {
67
- "bun": "./src/runtime/primitives.ts",
68
58
  "types": "./dist/runtime/primitives.d.ts",
69
59
  "import": "./dist/runtime/primitives.js",
70
60
  "default": "./dist/runtime/primitives.js"
71
61
  },
72
62
  "./runtime/workspace-contract": {
73
- "bun": "./src/runtime/workspace-contract.ts",
74
63
  "types": "./dist/runtime/workspace-contract.d.ts",
75
64
  "import": "./dist/runtime/workspace-contract.js",
76
65
  "default": "./dist/runtime/workspace-contract.js"
77
66
  },
78
- "./runtime/types/runtime-api": {
79
- "bun": "./src/runtime/types/runtime-api.ts",
80
- "types": "./dist/runtime/types/runtime-api.d.ts",
81
- "import": "./dist/runtime/types/runtime-api.js",
82
- "default": "./dist/runtime/types/runtime-api.js"
83
- },
84
- "./generated/runtime": {
85
- "bun": "./src/generated/runtime.ts",
86
- "types": "./dist/generated/runtime.d.ts",
87
- "import": "./dist/generated/runtime.js",
88
- "default": "./dist/generated/runtime.js"
89
- },
90
- "./generated/runtime-api": {
91
- "bun": "./src/generated/runtime-api.ts",
92
- "types": "./dist/generated/runtime-api.d.ts",
93
- "import": "./dist/generated/runtime-api.js",
94
- "default": "./dist/generated/runtime-api.js"
95
- },
96
- "./generated/runtime/primitives": {
97
- "bun": "./src/generated/runtime/primitives.ts",
98
- "types": "./dist/generated/runtime/primitives.d.ts",
99
- "import": "./dist/generated/runtime/primitives.js",
100
- "default": "./dist/generated/runtime/primitives.js"
101
- },
102
- "./generated/workspace-contract": {
103
- "bun": "./src/generated/workspace-contract.ts",
104
- "types": "./dist/generated/workspace-contract.d.ts",
105
- "import": "./dist/generated/workspace-contract.js",
106
- "default": "./dist/generated/workspace-contract.js"
107
- },
108
- "./infrastructure/reducer-bundle-abi": {
109
- "bun": "./src/infrastructure/reducer-bundle-abi.ts",
110
- "types": "./dist/infrastructure/reducer-bundle-abi.d.ts",
111
- "import": "./dist/infrastructure/reducer-bundle-abi.js",
112
- "default": "./dist/infrastructure/reducer-bundle-abi.js"
113
- },
114
- "./infrastructure/workspace-codegen": {
115
- "bun": "./src/infrastructure/workspace-codegen.ts",
116
- "types": "./dist/infrastructure/workspace-codegen.d.ts",
117
- "import": "./dist/infrastructure/workspace-codegen.js",
118
- "default": "./dist/infrastructure/workspace-codegen.js"
67
+ "./runtime/runtime-api": {
68
+ "types": "./dist/runtime/runtime-api.d.ts",
69
+ "import": "./dist/runtime/runtime-api.js",
70
+ "default": "./dist/runtime/runtime-api.js"
71
+ },
72
+ "./codegen": {
73
+ "types": "./dist/codegen.d.ts",
74
+ "import": "./dist/codegen.js",
75
+ "default": "./dist/codegen.js"
76
+ },
77
+ "./reducer-contract": {
78
+ "types": "./dist/reducer-contract.d.ts",
79
+ "import": "./dist/reducer-contract.js",
80
+ "default": "./dist/reducer-contract.js"
119
81
  },
120
82
  "./testing": {
121
- "bun": "./src/testing.ts",
122
83
  "types": "./dist/testing.d.ts",
123
84
  "import": "./dist/testing.js",
124
85
  "default": "./dist/testing.js"
125
86
  },
126
87
  "./browser-interaction": {
127
- "bun": "./src/browser-interaction.ts",
128
88
  "types": "./dist/browser-interaction.d.ts",
129
89
  "import": "./dist/browser-interaction.js",
130
90
  "default": "./dist/browser-interaction.js"
@@ -134,18 +94,16 @@
134
94
  "files": [
135
95
  "LICENSE.md",
136
96
  "dist",
137
- "src",
138
97
  "README.md",
139
- "!src/**/*.test.ts",
140
- "!src/**/*.test.tsx",
141
- "!src/**/__fixtures__/**",
142
- "!src/**/*.stories.ts",
143
- "!src/**/*.stories.tsx",
144
- "!src/stories/**",
145
- "!visual/**",
146
98
  "!.turbo/**",
147
99
  "!tsconfig.tsbuildinfo"
148
100
  ],
101
+ "scripts": {
102
+ "build": "tsup && mkdir -p dist/ui && cp src/ui/plugin-styles.css dist/ui/plugin-styles.css",
103
+ "typecheck": "tsc --noEmit",
104
+ "lint": "eslint 'src/**/*.ts'",
105
+ "test": "bun test"
106
+ },
149
107
  "dependencies": {
150
108
  "@radix-ui/react-dialog": "^1.1.14",
151
109
  "@radix-ui/react-accordion": "^1.2.12",
@@ -165,6 +123,9 @@
165
123
  "zustand": "^5.0.4"
166
124
  },
167
125
  "devDependencies": {
126
+ "@dreamboard-games/reducer-contract": "workspace:*",
127
+ "@dreamboard-games/sdk-types": "workspace:*",
128
+ "@dreamboard-games/workspace-codegen": "workspace:*",
168
129
  "@happy-dom/global-registrator": "^20.9.0",
169
130
  "@types/node": "^24.5.2",
170
131
  "@types/react": "^19.0.0",
@@ -195,11 +156,5 @@
195
156
  "sdk",
196
157
  "package-set"
197
158
  ],
198
- "license": "SEE LICENSE IN LICENSE.md",
199
- "scripts": {
200
- "build": "tsup && mkdir -p dist/ui && cp src/ui/plugin-styles.css dist/ui/plugin-styles.css",
201
- "typecheck": "tsc --noEmit",
202
- "lint": "eslint 'src/**/*.ts'",
203
- "test": "bun test"
204
- }
205
- }
159
+ "license": "SEE LICENSE IN LICENSE.md"
160
+ }
@@ -1,283 +0,0 @@
1
- type ReducerContractVersion = string;
2
- type EffectId = string;
3
- type ContinuationToken = {
4
- "id": string;
5
- "data": JsonValue;
6
- };
7
- type ContinuationMap = Record<string, ContinuationToken>;
8
- type JsonValue = string | number | boolean | null | JsonValue[] | {
9
- [key: string]: JsonValue;
10
- };
11
- type ReducerSetupSelection = {
12
- "profileId": string;
13
- "optionValues": Record<string, string | null>;
14
- };
15
- type RngState = {
16
- "seed": number | null;
17
- "cursor": number;
18
- "trace": Array<string>;
19
- };
20
- type ReducerFlowState = {
21
- "currentPhase": string;
22
- "turn": number;
23
- "round": number;
24
- "activePlayers": Array<string>;
25
- };
26
- type RuntimeSimultaneousSubmission = {
27
- "interactionId": string;
28
- "params": JsonValue;
29
- };
30
- type RuntimeSimultaneousCurrent = {
31
- "phaseName": string;
32
- "actors": Array<string>;
33
- "submissions": Record<string, RuntimeSimultaneousSubmission>;
34
- };
35
- type RuntimeSimultaneousState = {
36
- "current": RuntimeSimultaneousCurrent | null;
37
- };
38
- type TransitionRecord = {
39
- "from": string;
40
- "to": string;
41
- };
42
- type ReducerRuntimeState = {
43
- "rng": RngState;
44
- "setup": ReducerSetupSelection | null;
45
- "simultaneous": RuntimeSimultaneousState;
46
- "lastTransition": TransitionRecord | null;
47
- };
48
- type ReducerDomainState = {
49
- "table": JsonValue;
50
- "publicState": JsonValue;
51
- "privateState": Record<string, JsonValue>;
52
- "hiddenState": JsonValue;
53
- "flow": ReducerFlowState;
54
- "phase": JsonValue;
55
- };
56
- type ReducerSessionState = {
57
- "domain": ReducerDomainState;
58
- "runtime": ReducerRuntimeState;
59
- };
60
- type GameInput = GameInputInteraction;
61
- type GameInputInteraction = {
62
- "kind": "interaction";
63
- "playerId": string;
64
- "interactionId": string;
65
- "params": JsonValue;
66
- };
67
- type Effect = EffectTransition | EffectRollDie | EffectShuffleSharedZone | EffectShufflePlayerZone;
68
- type EffectTransition = {
69
- "effectId": EffectId;
70
- "type": "transition";
71
- "to": string;
72
- };
73
- type EffectRollDie = {
74
- "effectId": EffectId;
75
- "type": "rollDie";
76
- "dieId": string;
77
- };
78
- type EffectShuffleSharedZone = {
79
- "effectId": EffectId;
80
- "type": "shuffleSharedZone";
81
- "zoneId": string;
82
- };
83
- type EffectShufflePlayerZone = {
84
- "effectId": EffectId;
85
- "type": "shufflePlayerZone";
86
- "zoneId": string;
87
- "playerId": string;
88
- };
89
- type ReducerInputValidationResult = {
90
- "valid": boolean;
91
- "errorCode"?: string;
92
- "message"?: string;
93
- };
94
- type InitializeRequest = {
95
- "table": JsonValue;
96
- "playerIds": Array<string>;
97
- "rngSeed"?: number | null;
98
- "setup"?: ReducerSetupSelection | null;
99
- };
100
- type InitializePhaseRequest = {
101
- "state": ReducerSessionState;
102
- "to": string;
103
- };
104
- type ValidateInputRequest = {
105
- "state": ReducerSessionState;
106
- "input": GameInput;
107
- };
108
- type ReduceRequest = {
109
- "state": ReducerSessionState;
110
- "input": GameInput;
111
- };
112
- type DispatchRequest = {
113
- "state": ReducerSessionState;
114
- "input": GameInput;
115
- };
116
- type ReduceResult = ReduceResultReject | ReduceResultAccept;
117
- type ReduceResultReject = {
118
- "kind": "reject";
119
- "errorCode": string;
120
- "message"?: string;
121
- };
122
- type ReduceResultAccept = {
123
- "kind": "accept";
124
- "state": ReducerSessionState;
125
- "effects": Array<Effect>;
126
- "continuations": ContinuationMap;
127
- };
128
- type DispatchTrace = DispatchTraceAcceptedClientInput | DispatchTraceAppliedEffect | DispatchTraceRngConsumption;
129
- type DispatchTraceAcceptedClientInput = {
130
- "kind": "acceptedClientInput";
131
- "input": GameInput;
132
- };
133
- type DispatchTraceAppliedEffect = {
134
- "kind": "appliedEffect";
135
- "effect": Effect;
136
- "continuation"?: ContinuationToken;
137
- };
138
- type DispatchTraceRngConsumption = {
139
- "kind": "rngConsumption";
140
- "operation": string;
141
- "traceEntry": string;
142
- };
143
- type DispatchResult = DispatchResultReject | DispatchResultAccept;
144
- type DispatchResultReject = {
145
- "kind": "reject";
146
- "errorCode": string;
147
- "message"?: string;
148
- };
149
- type DispatchResultAccept = {
150
- "kind": "accept";
151
- "state": ReducerSessionState;
152
- "trace": Array<DispatchTrace>;
153
- };
154
- type ReducerRuntimeLogEntry = ReducerRuntimeLogEntryAcceptedClientInput | ReducerRuntimeLogEntryAppliedEffect | ReducerRuntimeLogEntryRngConsumption | ReducerRuntimeLogEntryStateCommit;
155
- type ReducerRuntimeLogEntryAcceptedClientInput = {
156
- "kind": "acceptedClientInput";
157
- "version": number;
158
- "input": GameInput;
159
- };
160
- type ReducerRuntimeLogEntryAppliedEffect = {
161
- "kind": "appliedEffect";
162
- "version": number;
163
- "effect": Effect;
164
- "continuation": ContinuationToken | null;
165
- };
166
- type ReducerRuntimeLogEntryRngConsumption = {
167
- "kind": "rngConsumption";
168
- "version": number;
169
- "operation": string;
170
- "traceEntry": string;
171
- };
172
- type ReducerRuntimeLogEntryStateCommit = {
173
- "kind": "stateCommit";
174
- "version": number;
175
- "state": ReducerSessionState;
176
- };
177
- type SeatProjection = {
178
- "view"?: JsonValue;
179
- "availableInteractionRefs"?: JsonValue;
180
- "zones"?: JsonValue;
181
- };
182
- type SimultaneousPhaseProjection = {
183
- "phaseName": string;
184
- "interactionId": string;
185
- "actorIds": Array<string>;
186
- "sealedPlayerIds": Array<string>;
187
- "pendingPlayerIds": Array<string>;
188
- };
189
- type SeatProjectionBundle = {
190
- "currentStage"?: string | null;
191
- "stageSeats"?: Array<string>;
192
- "simultaneousPhase"?: SimultaneousPhaseProjection | null;
193
- "interactionsByRef"?: JsonValue;
194
- "seats": Record<string, SeatProjection>;
195
- };
196
- type ProjectSeatsDynamicRequest = {
197
- "state": ReducerSessionState;
198
- "playerIds": Array<string>;
199
- "viewId"?: string;
200
- "projectionMode"?: "full" | "actionsOnly" | null;
201
- };
202
- type BoardStaticProjection = {
203
- "view": JsonValue;
204
- "hash": string;
205
- "manifestVersion": string;
206
- };
207
-
208
- type wire_BoardStaticProjection = BoardStaticProjection;
209
- type wire_ContinuationMap = ContinuationMap;
210
- type wire_ContinuationToken = ContinuationToken;
211
- type wire_DispatchRequest = DispatchRequest;
212
- type wire_DispatchResult = DispatchResult;
213
- type wire_DispatchResultAccept = DispatchResultAccept;
214
- type wire_DispatchResultReject = DispatchResultReject;
215
- type wire_DispatchTrace = DispatchTrace;
216
- type wire_DispatchTraceAcceptedClientInput = DispatchTraceAcceptedClientInput;
217
- type wire_DispatchTraceAppliedEffect = DispatchTraceAppliedEffect;
218
- type wire_DispatchTraceRngConsumption = DispatchTraceRngConsumption;
219
- type wire_Effect = Effect;
220
- type wire_EffectId = EffectId;
221
- type wire_EffectRollDie = EffectRollDie;
222
- type wire_EffectShufflePlayerZone = EffectShufflePlayerZone;
223
- type wire_EffectShuffleSharedZone = EffectShuffleSharedZone;
224
- type wire_EffectTransition = EffectTransition;
225
- type wire_GameInput = GameInput;
226
- type wire_GameInputInteraction = GameInputInteraction;
227
- type wire_InitializePhaseRequest = InitializePhaseRequest;
228
- type wire_InitializeRequest = InitializeRequest;
229
- type wire_JsonValue = JsonValue;
230
- type wire_ProjectSeatsDynamicRequest = ProjectSeatsDynamicRequest;
231
- type wire_ReduceRequest = ReduceRequest;
232
- type wire_ReduceResult = ReduceResult;
233
- type wire_ReduceResultAccept = ReduceResultAccept;
234
- type wire_ReduceResultReject = ReduceResultReject;
235
- type wire_ReducerContractVersion = ReducerContractVersion;
236
- type wire_ReducerDomainState = ReducerDomainState;
237
- type wire_ReducerFlowState = ReducerFlowState;
238
- type wire_ReducerInputValidationResult = ReducerInputValidationResult;
239
- type wire_ReducerRuntimeLogEntry = ReducerRuntimeLogEntry;
240
- type wire_ReducerRuntimeLogEntryAcceptedClientInput = ReducerRuntimeLogEntryAcceptedClientInput;
241
- type wire_ReducerRuntimeLogEntryAppliedEffect = ReducerRuntimeLogEntryAppliedEffect;
242
- type wire_ReducerRuntimeLogEntryRngConsumption = ReducerRuntimeLogEntryRngConsumption;
243
- type wire_ReducerRuntimeLogEntryStateCommit = ReducerRuntimeLogEntryStateCommit;
244
- type wire_ReducerRuntimeState = ReducerRuntimeState;
245
- type wire_ReducerSessionState = ReducerSessionState;
246
- type wire_ReducerSetupSelection = ReducerSetupSelection;
247
- type wire_RngState = RngState;
248
- type wire_RuntimeSimultaneousCurrent = RuntimeSimultaneousCurrent;
249
- type wire_RuntimeSimultaneousState = RuntimeSimultaneousState;
250
- type wire_RuntimeSimultaneousSubmission = RuntimeSimultaneousSubmission;
251
- type wire_SeatProjection = SeatProjection;
252
- type wire_SeatProjectionBundle = SeatProjectionBundle;
253
- type wire_SimultaneousPhaseProjection = SimultaneousPhaseProjection;
254
- type wire_TransitionRecord = TransitionRecord;
255
- type wire_ValidateInputRequest = ValidateInputRequest;
256
- declare namespace wire {
257
- export type { wire_BoardStaticProjection as BoardStaticProjection, wire_ContinuationMap as ContinuationMap, wire_ContinuationToken as ContinuationToken, wire_DispatchRequest as DispatchRequest, wire_DispatchResult as DispatchResult, wire_DispatchResultAccept as DispatchResultAccept, wire_DispatchResultReject as DispatchResultReject, wire_DispatchTrace as DispatchTrace, wire_DispatchTraceAcceptedClientInput as DispatchTraceAcceptedClientInput, wire_DispatchTraceAppliedEffect as DispatchTraceAppliedEffect, wire_DispatchTraceRngConsumption as DispatchTraceRngConsumption, wire_Effect as Effect, wire_EffectId as EffectId, wire_EffectRollDie as EffectRollDie, wire_EffectShufflePlayerZone as EffectShufflePlayerZone, wire_EffectShuffleSharedZone as EffectShuffleSharedZone, wire_EffectTransition as EffectTransition, wire_GameInput as GameInput, wire_GameInputInteraction as GameInputInteraction, wire_InitializePhaseRequest as InitializePhaseRequest, wire_InitializeRequest as InitializeRequest, wire_JsonValue as JsonValue, wire_ProjectSeatsDynamicRequest as ProjectSeatsDynamicRequest, wire_ReduceRequest as ReduceRequest, wire_ReduceResult as ReduceResult, wire_ReduceResultAccept as ReduceResultAccept, wire_ReduceResultReject as ReduceResultReject, wire_ReducerContractVersion as ReducerContractVersion, wire_ReducerDomainState as ReducerDomainState, wire_ReducerFlowState as ReducerFlowState, wire_ReducerInputValidationResult as ReducerInputValidationResult, wire_ReducerRuntimeLogEntry as ReducerRuntimeLogEntry, wire_ReducerRuntimeLogEntryAcceptedClientInput as ReducerRuntimeLogEntryAcceptedClientInput, wire_ReducerRuntimeLogEntryAppliedEffect as ReducerRuntimeLogEntryAppliedEffect, wire_ReducerRuntimeLogEntryRngConsumption as ReducerRuntimeLogEntryRngConsumption, wire_ReducerRuntimeLogEntryStateCommit as ReducerRuntimeLogEntryStateCommit, wire_ReducerRuntimeState as ReducerRuntimeState, wire_ReducerSessionState as ReducerSessionState, wire_ReducerSetupSelection as ReducerSetupSelection, wire_RngState as RngState, wire_RuntimeSimultaneousCurrent as RuntimeSimultaneousCurrent, wire_RuntimeSimultaneousState as RuntimeSimultaneousState, wire_RuntimeSimultaneousSubmission as RuntimeSimultaneousSubmission, wire_SeatProjection as SeatProjection, wire_SeatProjectionBundle as SeatProjectionBundle, wire_SimultaneousPhaseProjection as SimultaneousPhaseProjection, wire_TransitionRecord as TransitionRecord, wire_ValidateInputRequest as ValidateInputRequest };
258
- }
259
-
260
- type MaybePromise<T> = T | Promise<T>;
261
- /**
262
- * Canonical erased reducer boundary for `createReducerBundle(...)`.
263
- *
264
- * The callable method list is generated from
265
- * `schema/reducer-runtime.operations.json`; payload DTOs come from
266
- * `schema/reducer-runtime.schema.json`.
267
- *
268
- * This interface models the host/guest surface only. The concrete
269
- * authored bundle stays strongly typed in `@dreamboard-games/sdk/reducer`, but every
270
- * cross-runtime caller should agree on this shape.
271
- */
272
- interface ReducerBundleContract {
273
- readonly reducerContractVersion: ReducerContractVersion;
274
- initialize(input: InitializeRequest): MaybePromise<ReducerSessionState>;
275
- initializePhase(input: InitializePhaseRequest): MaybePromise<ReducerSessionState>;
276
- validateInput(input: ValidateInputRequest): MaybePromise<ReducerInputValidationResult>;
277
- reduce(input: ReduceRequest): MaybePromise<ReduceResult>;
278
- dispatch(input: DispatchRequest): MaybePromise<DispatchResult>;
279
- projectStatic(): BoardStaticProjection | null;
280
- projectSeatsDynamic(input: ProjectSeatsDynamicRequest): SeatProjectionBundle;
281
- }
282
-
283
- export { type MaybePromise as M, type ReducerBundleContract as R, type ReducerSessionState as a, wire as w };
@@ -1,13 +0,0 @@
1
- interface ViewCard<CardIdValue extends string = string, CardTypeValue extends string = string, Properties extends Record<string, unknown> = Record<string, unknown>> {
2
- id: CardIdValue;
3
- cardType: CardTypeValue;
4
- name?: string;
5
- text?: string;
6
- properties: Properties;
7
- }
8
- interface CardCollection<CardIdValue extends string = string, Card extends ViewCard<CardIdValue> = ViewCard<CardIdValue>> {
9
- cardIds: readonly CardIdValue[];
10
- cardsById: Readonly<Record<CardIdValue, Card | undefined>>;
11
- }
12
-
13
- export type { CardCollection as C, ViewCard as V };
@@ -1,34 +0,0 @@
1
- import {
2
- Board,
3
- Dice,
4
- Game,
5
- Interaction,
6
- Phase,
7
- PlayerRoster,
8
- Prompt,
9
- PromptInbox,
10
- UI,
11
- Zone
12
- } from "./chunk-ZABVH7AO.js";
13
-
14
- // src/runtime-internal/ui-contract.ts
15
- function createDreamboardUI(contract) {
16
- return {
17
- contract,
18
- Root: UI.Root,
19
- Game,
20
- Interaction,
21
- Prompt,
22
- PromptInbox,
23
- PlayerRoster,
24
- Dice,
25
- Phase,
26
- Zone,
27
- Board
28
- };
29
- }
30
-
31
- export {
32
- createDreamboardUI
33
- };
34
- //# sourceMappingURL=chunk-326PGVAA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/runtime-internal/ui-contract.ts"],"sourcesContent":["import type {\n ButtonHTMLAttributes,\n ComponentType,\n ReactElement,\n ReactNode,\n} from \"react\";\nimport {\n Board as BoardPrimitive,\n Dice as DicePrimitive,\n Game as GamePrimitive,\n Interaction as InteractionPrimitive,\n Phase as PhasePrimitive,\n PlayerRoster as PlayerRosterPrimitive,\n Prompt as PromptPrimitive,\n PromptInbox as PromptInboxPrimitive,\n UI as UIPrimitive,\n Zone as ZonePrimitive,\n type BoardHexGridProps,\n type BoardHexGridInteractionFilter,\n type BoardTargetProps,\n type BoardSpaceTargetProps,\n type BoardEdgeTargetProps,\n type BoardVertexTargetProps,\n type GameChromeProps,\n type DiceComponents,\n type GameRootProps,\n type InteractionCardInputProps,\n type InteractionDialogProps,\n type InteractionFieldPrimitiveProps,\n type InteractionFormPrimitiveProps,\n type InteractionRoutesMap,\n type InteractionRoutesProps,\n type InteractionRootProps,\n type InteractionSwitchRouteMap,\n type InteractionSwitchProps,\n type PhaseSwitchProps,\n type PlayerRosterComponents,\n type PlayerRosterBadge,\n type PlayerRosterEntry,\n type PlayerRosterListProps,\n type PlayerRosterPartProps,\n type PlayerRosterRootProps,\n type PlayerRosterSwitchButtonProps,\n type PromptDialogProps,\n type PromptInboxItemsProps,\n type PromptOptionRenderItem,\n type PromptOptionProps,\n type PromptOptionsProps,\n type PromptRootProps,\n type UIRootProps,\n type ZoneItemProps,\n type ZoneCardAtProps,\n type ZoneCardActionProps,\n type ZoneCardRenderItem,\n type ZoneListProps,\n type ZonePileCardsProps,\n type ZonePileRootProps,\n type ZoneRootProps,\n} from \"./primitives/index.js\";\nimport type { InteractionDescriptor } from \"./types/plugin-state.js\";\nimport type { AnyHexBoardInput, BoardSpaceIdOf } from \"../ui.js\";\n\n/**\n * Workspace-aware UI typing extension point.\n *\n * Generated workspaces will augment this interface with their concrete UI\n * contract. The unregistered SDK keeps all public keys string-compatible so\n * package-local tests and generic consumers can still import ui-sdk directly.\n */\nexport interface DreamboardUIRegister {}\n\nexport type UIContractBucket = Record<string, unknown>;\n\nexport interface UIContract {\n interactions?: UIContractBucket;\n inputs?: UIContractBucket;\n prompts?: UIContractBucket;\n promptOptions?: UIContractBucket;\n players?: UIContractBucket;\n zones?: UIContractBucket;\n cards?: UIContractBucket;\n phases?: UIContractBucket;\n boardTargets?: UIContractBucket;\n}\n\ntype RegisteredUIContract = DreamboardUIRegister extends {\n ui: infer Registered extends UIContract;\n}\n ? Registered\n : UIContract;\n\ntype BucketOf<Contract extends UIContract, Key extends keyof UIContract> =\n NonNullable<Contract[Key]> extends UIContractBucket\n ? NonNullable<Contract[Key]>\n : UIContractBucket;\n\ntype StringKeyOf<Bucket extends UIContractBucket> = Extract<\n keyof Bucket,\n string\n>;\n\ntype StringKeysOrFallback<Bucket extends UIContractBucket> = [\n StringKeyOf<Bucket>,\n] extends [never]\n ? string\n : string extends StringKeyOf<Bucket>\n ? string\n : StringKeyOf<Bucket>;\n\nexport type RegisteredUI = RegisteredUIContract;\n\nexport type InteractionKey<Contract extends UIContract = RegisteredUI> =\n StringKeysOrFallback<BucketOf<Contract, \"interactions\">>;\n\nexport type InteractionInputKey<Contract extends UIContract = RegisteredUI> =\n StringKeysOrFallback<BucketOf<Contract, \"inputs\">>;\n\nexport type PromptKey<Contract extends UIContract = RegisteredUI> =\n StringKeysOrFallback<BucketOf<Contract, \"prompts\">>;\n\nexport type PromptOptionKey<Contract extends UIContract = RegisteredUI> =\n StringKeysOrFallback<BucketOf<Contract, \"promptOptions\">>;\n\nexport type PlayerKey<Contract extends UIContract = RegisteredUI> =\n StringKeysOrFallback<BucketOf<Contract, \"players\">>;\n\nexport type ZoneKey<Contract extends UIContract = RegisteredUI> =\n StringKeysOrFallback<BucketOf<Contract, \"zones\">>;\n\nexport type CardKey<Contract extends UIContract = RegisteredUI> =\n StringKeysOrFallback<BucketOf<Contract, \"cards\">>;\n\nexport type PhaseKey<Contract extends UIContract = RegisteredUI> =\n StringKeysOrFallback<BucketOf<Contract, \"phases\">>;\n\nexport type BoardTargetKey<Contract extends UIContract = RegisteredUI> =\n StringKeysOrFallback<BucketOf<Contract, \"boardTargets\">>;\n\ntype TypedZoneCardRenderItem<Contract extends UIContract> =\n ZoneCardRenderItem<CardKey<Contract> & string> extends infer Item\n ? Item extends { id: string; zone: string }\n ? Omit<Item, \"id\" | \"zone\"> & {\n id: CardKey<Contract>;\n zone: ZoneKey<Contract>;\n }\n : never\n : never;\n\nexport type TypedInteraction<Contract extends UIContract> = Omit<\n typeof InteractionPrimitive,\n \"Root\" | \"CardInput\" | \"Dialog\" | \"Field\" | \"Form\" | \"Switch\"\n> & {\n Root<Interaction extends InteractionKey<Contract>>(\n props: InteractionRootProps<Interaction>,\n ): ReactElement | null;\n Switch(\n props: Omit<InteractionSwitchProps<InteractionKey<Contract>>, \"routes\"> & {\n routes: InteractionSwitchRouteMap<InteractionKey<Contract>>;\n },\n ): ReactElement;\n Routes(\n props: Omit<InteractionRoutesProps<InteractionKey<Contract>>, \"routes\"> & {\n routes: InteractionRoutesMap<InteractionKey<Contract>>;\n },\n ): ReactElement;\n CardInput<Input extends InteractionInputKey<Contract>>(\n props: Omit<InteractionCardInputProps, \"input\" | \"unsafeCardId\"> & {\n input: Input;\n unsafeCardId?: CardKey<Contract>;\n },\n ): ReactElement;\n Dialog<Interaction extends InteractionKey<Contract>>(\n props: InteractionDialogProps<Interaction>,\n ): ReactElement;\n Field<Input extends InteractionInputKey<Contract>>(\n props: Omit<InteractionFieldPrimitiveProps, \"input\"> & { input: Input },\n ): ReactElement | null;\n Form(props: InteractionFormPrimitiveProps): ReactElement | null;\n};\n\nexport type InteractionSlotComponent<Props = object> = ComponentType<\n Props extends { children: unknown } ? Props : Props & { children?: ReactNode }\n>;\n\nexport interface InteractionDefaultInputSlot {\n readonly Default: InteractionSlotComponent;\n}\n\nexport interface InteractionValueInputSlot<Value = unknown> {\n readonly Value: InteractionSlotComponent<{\n children: (value: Value | undefined) => ReactNode;\n }>;\n}\n\nexport interface InteractionChoiceInputSlot<Value = unknown> {\n readonly Field: InteractionSlotComponent;\n readonly Options: InteractionSlotComponent<{\n children: (option: { value: Value; label: string }) => ReactNode;\n }>;\n}\n\nexport interface InteractionChoiceListInputSlot<Value = unknown> {\n readonly Field: InteractionSlotComponent;\n readonly Options: InteractionSlotComponent<{\n children: (option: { value: Value; label: string }) => ReactNode;\n }>;\n}\n\nexport interface InteractionNumberInputSlot {\n readonly Field: InteractionSlotComponent;\n}\n\nexport interface InteractionResourceMapInputSlot<\n Resource extends string = string,\n> {\n readonly Field: InteractionSlotComponent;\n readonly Resource: InteractionSlotComponent<{ value: Resource }>;\n}\n\nexport type InteractionFormInputSlot<Value = unknown> =\n | InteractionChoiceInputSlot<Value>\n | InteractionChoiceListInputSlot<Value>\n | InteractionNumberInputSlot\n | InteractionResourceMapInputSlot;\n\nexport interface InteractionCardTargetInputSlot<Card extends string = string> {\n readonly Card: InteractionSlotComponent<\n { value: Card } & Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n | \"children\"\n | \"disabled\"\n | \"aria-disabled\"\n | \"aria-pressed\"\n | \"onClick\"\n | \"type\"\n | \"value\"\n >\n >;\n readonly Cards: InteractionSlotComponent<{\n children: (card: { id: Card }) => ReactNode;\n }>;\n}\n\nexport interface InteractionBoardTargetInputSlot<\n Target extends string = string,\n> {\n readonly Target: InteractionSlotComponent<\n { value: Target } & Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n | \"children\"\n | \"disabled\"\n | \"aria-disabled\"\n | \"aria-pressed\"\n | \"onClick\"\n | \"type\"\n | \"value\"\n >\n >;\n}\n\nexport type InteractionBoardSpaceTargetInputSlot<\n Space extends string = string,\n> = InteractionBoardTargetInputSlot<Space>;\n\nexport type InteractionBoardEdgeTargetInputSlot<Edge extends string = string> =\n InteractionBoardTargetInputSlot<Edge>;\n\nexport type InteractionBoardVertexTargetInputSlot<\n Vertex extends string = string,\n> = InteractionBoardTargetInputSlot<Vertex>;\n\nexport type InteractionBoardTileTargetInputSlot<Tile extends string = string> =\n InteractionBoardTargetInputSlot<Tile>;\n\nexport interface InteractionSubmitSlot {\n readonly Button: InteractionSlotComponent<\n Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\" | \"disabled\" | \"type\" | \"value\"\n >\n >;\n}\n\nexport type TypedPrompt<Contract extends UIContract> = Omit<\n typeof PromptPrimitive,\n \"Root\" | \"Option\" | \"Options\" | \"Dialog\"\n> & {\n Root<Prompt extends PromptKey<Contract>>(\n props: PromptRootProps<Prompt>,\n ): ReactElement | null;\n Option<Option extends PromptOptionKey<Contract>>(\n props: Omit<PromptOptionProps, \"value\"> & { value: Option },\n ): ReactElement;\n Options(\n props: Omit<PromptOptionsProps, \"children\"> & {\n children: (\n option: Omit<PromptOptionRenderItem, \"id\"> & {\n id: PromptOptionKey<Contract>;\n },\n ) => ReactNode;\n },\n ): ReactElement;\n Dialog<Prompt extends PromptKey<Contract>>(\n props: PromptDialogProps<Prompt>,\n ): ReactElement;\n};\n\nexport type TypedPromptInbox<Contract extends UIContract> = Omit<\n typeof PromptInboxPrimitive,\n \"Items\"\n> & {\n Items(\n props: Omit<PromptInboxItemsProps, \"children\"> & {\n children: (\n prompt: Omit<InteractionDescriptor, \"interactionKey\"> & {\n interactionKey: PromptKey<Contract>;\n },\n ) => ReactNode;\n },\n ): ReactElement;\n};\n\ntype TypedPlayerRosterEntry<Player extends string> = Omit<\n PlayerRosterEntry,\n \"playerId\"\n> & {\n playerId: Player;\n};\n\ntype TypedPlayerRosterRootProps<Player extends string> = Omit<\n PlayerRosterRootProps,\n \"score\" | \"scoreLabel\" | \"badges\" | \"metadata\"\n> & {\n score?: (playerId: Player) => number | undefined;\n scoreLabel?: string | ((playerId: Player) => string | undefined);\n badges?: (\n playerId: Player,\n ) => ReadonlyArray<PlayerRosterBadge | null | false | undefined>;\n metadata?: (playerId: Player) => Record<string, unknown> | undefined;\n};\n\ntype TypedPlayerRosterListProps<Player extends string> = Omit<\n PlayerRosterListProps,\n \"children\"\n> & {\n children?: (player: TypedPlayerRosterEntry<Player>) => ReactNode;\n};\n\ntype TypedPlayerRosterPartProps<Player extends string> = Omit<\n PlayerRosterPartProps,\n \"player\"\n> & {\n player: TypedPlayerRosterEntry<Player>;\n};\n\ntype TypedPlayerRosterSwitchButtonProps<Player extends string> = Omit<\n PlayerRosterSwitchButtonProps,\n \"player\"\n> & {\n player: TypedPlayerRosterEntry<Player>;\n};\n\nexport type TypedPlayerRoster<Contract extends UIContract> = Omit<\n PlayerRosterComponents,\n \"Root\" | \"List\" | \"SwitchButton\" | \"Name\" | \"Score\" | \"Badges\"\n> & {\n Root(\n props: TypedPlayerRosterRootProps<PlayerKey<Contract>>,\n ): ReactElement | null;\n List(props: TypedPlayerRosterListProps<PlayerKey<Contract>>): ReactElement;\n SwitchButton(\n props: TypedPlayerRosterSwitchButtonProps<PlayerKey<Contract>>,\n ): ReactElement;\n Name(props: TypedPlayerRosterPartProps<PlayerKey<Contract>>): ReactElement;\n Score(\n props: TypedPlayerRosterPartProps<PlayerKey<Contract>>,\n ): ReactElement | null;\n Badges(\n props: TypedPlayerRosterPartProps<PlayerKey<Contract>>,\n ): ReactElement | null;\n};\n\nexport type TypedPhase<Contract extends UIContract> = Omit<\n typeof PhasePrimitive,\n \"Switch\"\n> & {\n Switch(props: PhaseSwitchProps<PhaseKey<Contract>>): ReactElement | null;\n};\n\nexport type TypedZone<Contract extends UIContract> = Omit<\n typeof ZonePrimitive,\n | \"Root\"\n | \"Item\"\n | \"CardAt\"\n | \"TopCard\"\n | \"CardAction\"\n | \"List\"\n | \"PileRoot\"\n | \"PileCards\"\n> & {\n Root<Zone extends ZoneKey<Contract>>(\n props: Omit<ZoneRootProps, \"zone\"> & { zone: Zone },\n ): ReactElement;\n Item<Card extends CardKey<Contract>>(\n props: Omit<ZoneItemProps, \"card\"> & { card: Card },\n ): ReactElement;\n CardAction<Card extends CardKey<Contract>>(\n props: Omit<ZoneCardActionProps, \"card\"> & { card?: Card },\n ): ReactElement;\n CardAt<Zone extends ZoneKey<Contract>>(\n props: Omit<ZoneCardAtProps<Zone>, \"zone\" | \"children\"> & {\n zone?: Zone;\n children?:\n | ReactNode\n | ((card: TypedZoneCardRenderItem<Contract>) => ReactNode);\n },\n ): ReactElement | null;\n TopCard<Zone extends ZoneKey<Contract>>(\n props: Omit<ZoneCardAtProps<Zone>, \"zone\" | \"index\" | \"children\"> & {\n zone?: Zone;\n children?:\n | ReactNode\n | ((card: TypedZoneCardRenderItem<Contract>) => ReactNode);\n },\n ): ReactElement | null;\n List(\n props: Omit<ZoneListProps, \"children\"> & {\n children?:\n | ReactNode\n | ((card: TypedZoneCardRenderItem<Contract>) => ReactNode);\n },\n ): ReactElement;\n PileRoot<Zone extends ZoneKey<Contract>>(\n props: Omit<ZonePileRootProps<Zone>, \"zone\"> & {\n zone: Zone;\n },\n ): ReactElement;\n PileCards(\n props: Omit<ZonePileCardsProps, \"renderCard\"> & {\n renderCard: (card: TypedZoneCardRenderItem<Contract>) => ReactNode;\n },\n ): ReactElement | null;\n};\n\nexport type TypedBoard<Contract extends UIContract> = Omit<\n typeof BoardPrimitive,\n \"Target\" | \"SpaceTarget\" | \"EdgeTarget\" | \"VertexTarget\" | \"HexGrid\"\n> & {\n Target<Target extends BoardTargetKey<Contract>>(\n props: Omit<BoardTargetProps, \"value\"> & { value: Target },\n ): ReactElement;\n SpaceTarget<Target extends BoardTargetKey<Contract>>(\n props: Omit<BoardSpaceTargetProps, \"value\"> & { value: Target },\n ): ReactElement;\n EdgeTarget<Target extends BoardTargetKey<Contract>>(\n props: Omit<BoardEdgeTargetProps, \"value\"> & { value: Target },\n ): ReactElement;\n VertexTarget<Target extends BoardTargetKey<Contract>>(\n props: Omit<BoardVertexTargetProps, \"value\"> & { value: Target },\n ): ReactElement;\n HexGrid<\n TBoard extends AnyHexBoardInput,\n TSpaceView extends { id: BoardSpaceIdOf<TBoard> },\n >(\n props: Omit<BoardHexGridProps<TBoard, TSpaceView>, \"interactions\"> & {\n interactions?:\n | Exclude<BoardHexGridInteractionFilter, object>\n | {\n edge?: ReadonlyArray<InteractionKey<Contract>>;\n vertex?: ReadonlyArray<InteractionKey<Contract>>;\n space?: ReadonlyArray<InteractionKey<Contract>>;\n };\n },\n ): ReactElement;\n};\n\nexport type TypedGame<\n _Contract extends UIContract,\n View = unknown,\n Player extends string = PlayerKey<_Contract>,\n Phase extends string = PhaseKey<_Contract>,\n> = Omit<typeof GamePrimitive, \"Root\"> & {\n Root(props: GameRootProps<View, Player, Phase>): ReactElement;\n Chrome(\n props: GameChromeProps<View, Player, Phase, InteractionKey<_Contract>>,\n ): ReactElement;\n};\n\nexport interface DreamboardUI<Contract extends UIContract = RegisteredUI> {\n readonly contract: Contract;\n Root(props: UIRootProps): ReactElement;\n readonly Game: TypedGame<Contract>;\n readonly Interaction: TypedInteraction<Contract>;\n readonly Prompt: TypedPrompt<Contract>;\n readonly PromptInbox: TypedPromptInbox<Contract>;\n readonly PlayerRoster: TypedPlayerRoster<Contract>;\n readonly Dice: DiceComponents;\n readonly Phase: TypedPhase<Contract>;\n readonly Zone: TypedZone<Contract>;\n readonly Board: TypedBoard<Contract>;\n}\n\nexport function createDreamboardUI<const Contract extends UIContract>(\n contract: Contract,\n): DreamboardUI<Contract> {\n return {\n contract,\n Root: UIPrimitive.Root,\n Game: GamePrimitive,\n Interaction: InteractionPrimitive,\n Prompt: PromptPrimitive,\n PromptInbox: PromptInboxPrimitive,\n PlayerRoster: PlayerRosterPrimitive,\n Dice: DicePrimitive,\n Phase: PhasePrimitive,\n Zone: ZonePrimitive,\n Board: BoardPrimitive,\n } as DreamboardUI<Contract>;\n}\n"],"mappings":";;;;;;;;;;;;;;AAsfO,SAAS,mBACd,UACwB;AACxB,SAAO;AAAA,IACL;AAAA,IACA,MAAM,GAAY;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}