@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.
- package/dist/{HandView-ncJIVLhN.d.ts → HandView-PYDmehVD.d.ts} +1 -1
- package/dist/{ResourceCounter-CTREyF73.d.ts → ResourceCounter-BTXklCEZ.d.ts} +1 -1
- package/dist/{ThemeProvider-BBMVT3KG.d.ts → ThemeProvider-DvMl17Ny.d.ts} +1 -1
- package/dist/{chunk-NKCRKGR2.js → chunk-3RQEICD3.js} +2 -2
- package/dist/{chunk-ZABVH7AO.js → chunk-ADYH6PVT.js} +1336 -1363
- package/dist/chunk-ADYH6PVT.js.map +1 -0
- package/dist/{chunk-PEI3FIL2.js → chunk-P7VMTJ5D.js} +2 -2
- package/dist/{chunk-PEI3FIL2.js.map → chunk-P7VMTJ5D.js.map} +1 -1
- package/dist/{chunk-WG4JQL3S.js → chunk-QZ6X4B5P.js} +1177 -1109
- package/dist/chunk-QZ6X4B5P.js.map +1 -0
- package/dist/{chunk-MZNVHMJ5.js → chunk-TXXLS3OI.js} +405 -309
- package/dist/chunk-TXXLS3OI.js.map +1 -0
- package/dist/{chunk-FDNZTDD6.js → chunk-W6SGFWXH.js} +48 -44
- package/dist/chunk-W6SGFWXH.js.map +1 -0
- package/dist/{chunk-MKXPVOUT.js → chunk-Y2AFYBMB.js} +48 -4
- package/dist/chunk-Y2AFYBMB.js.map +1 -0
- package/dist/{index-BwqPQtBu.d.ts → codegen.d.ts} +57 -565
- package/dist/{infrastructure/workspace-codegen.js → codegen.js} +3 -3
- package/dist/{components-BoiVSYqx.d.ts → components-DaIqi9QM.d.ts} +48 -37
- package/dist/{hex-board-view-1iAyJRFn.d.ts → hex-board-view-UCUjMALd.d.ts} +2 -2
- package/dist/{infrastructure/reducer-bundle-abi.d.ts → index.d-BGqVifr_.d.ts} +289 -10
- package/dist/index.js +1 -1
- package/dist/package-set.d.ts +2 -2
- package/dist/package-set.js +1 -1
- package/dist/primitive-props-BNHDkgd7.d.ts +16 -0
- package/dist/reducer-contract.d.ts +3 -0
- package/dist/{infrastructure/reducer-bundle-abi.js → reducer-contract.js} +4 -4
- package/dist/reducer.d.ts +185 -179
- package/dist/reducer.js +1363 -1372
- package/dist/reducer.js.map +1 -1
- package/dist/runtime/primitives.d.ts +9 -9
- package/dist/runtime/primitives.js +7 -7
- package/dist/runtime/runtime-api.d.ts +2 -0
- package/dist/runtime/runtime-api.js +1 -0
- package/dist/runtime/workspace-contract.d.ts +62 -17
- package/dist/runtime/workspace-contract.js +5 -6
- package/dist/{runtime-api-CPLm_XDG.d.ts → runtime-api-tGL3ArsB.d.ts} +103 -4
- package/dist/runtime.d.ts +11 -57
- package/dist/runtime.js +487 -8
- package/dist/runtime.js.map +1 -1
- package/dist/testing.d.ts +4 -4
- package/dist/testing.js.map +1 -1
- package/dist/types.d.ts +1531 -85
- package/dist/types.js +1 -3
- package/dist/types.js.map +1 -1
- package/dist/ui/components.d.ts +7 -8
- package/dist/ui/components.js +1 -1
- package/dist/ui/defaults.d.ts +1 -1
- package/dist/ui/{types/player-state.d.ts → player-state.d.ts} +2 -2
- package/dist/{ui-contract-rzKBwOLC.d.ts → ui-contract-SctM4ibF.d.ts} +155 -150
- package/dist/ui.d.ts +10 -11
- package/dist/ui.js +2 -2
- package/package.json +30 -75
- package/dist/bundle-CDd5FKeD.d.ts +0 -283
- package/dist/cards-Sl3b40Mv.d.ts +0 -13
- package/dist/chunk-326PGVAA.js +0 -34
- package/dist/chunk-326PGVAA.js.map +0 -1
- package/dist/chunk-FDNZTDD6.js.map +0 -1
- package/dist/chunk-I46YJSOD.js +0 -1
- package/dist/chunk-MKXPVOUT.js.map +0 -1
- package/dist/chunk-MZNVHMJ5.js.map +0 -1
- package/dist/chunk-T52J5RMF.js +0 -1
- package/dist/chunk-WG4JQL3S.js.map +0 -1
- package/dist/chunk-XV6D3ET4.js +0 -485
- package/dist/chunk-XV6D3ET4.js.map +0 -1
- package/dist/chunk-ZABVH7AO.js.map +0 -1
- package/dist/generated/runtime/primitives.d.ts +0 -13
- package/dist/generated/runtime/primitives.js +0 -181
- package/dist/generated/runtime/primitives.js.map +0 -1
- package/dist/generated/runtime-api.d.ts +0 -3
- package/dist/generated/runtime-api.js +0 -2
- package/dist/generated/runtime.d.ts +0 -15
- package/dist/generated/runtime.js +0 -19
- package/dist/generated/runtime.js.map +0 -1
- package/dist/generated/workspace-contract.d.ts +0 -15
- package/dist/generated/workspace-contract.js +0 -15
- package/dist/generated/workspace-contract.js.map +0 -1
- package/dist/infrastructure/reducer-bundle-abi.js.map +0 -1
- package/dist/infrastructure/workspace-codegen.d.ts +0 -53
- package/dist/infrastructure/workspace-codegen.js.map +0 -1
- package/dist/manifest-contract-BNHVGFtU.d.ts +0 -9
- package/dist/primitive-props-DpKs-GCr.d.ts +0 -11
- package/dist/runtime/types/runtime-api.d.ts +0 -1
- package/dist/runtime/types/runtime-api.js +0 -2
- package/dist/runtime/types/runtime-api.js.map +0 -1
- package/dist/runtime-api-3dshj6kK.d.ts +0 -101
- package/dist/slots-1GPGihk8.d.ts +0 -8
- package/src/browser-interaction/attributes.ts +0 -211
- package/src/browser-interaction/canonical.ts +0 -77
- package/src/browser-interaction/constants.ts +0 -77
- package/src/browser-interaction/effects.ts +0 -176
- package/src/browser-interaction/index.ts +0 -111
- package/src/browser-interaction/normalize.ts +0 -997
- package/src/browser-interaction/registry.ts +0 -70
- package/src/browser-interaction/resolve.ts +0 -596
- package/src/browser-interaction/schemas.ts +0 -152
- package/src/browser-interaction/types.ts +0 -304
- package/src/browser-interaction.ts +0 -1
- package/src/generated/reducer-contract/builders.ts +0 -90
- package/src/generated/reducer-contract/version.ts +0 -9
- package/src/generated/reducer-contract/wire.ts +0 -100
- package/src/generated/reducer-contract/zod.ts +0 -103
- package/src/generated/runtime/primitives.ts +0 -2
- package/src/generated/runtime-api.ts +0 -5
- package/src/generated/runtime.ts +0 -35
- package/src/generated/workspace-contract.ts +0 -2
- package/src/index.ts +0 -7
- package/src/infrastructure/reducer-bundle-abi.ts +0 -8
- package/src/infrastructure/reducer-contract/bundle.ts +0 -37
- package/src/infrastructure/workspace-codegen/hex-geometry.ts +0 -69
- package/src/infrastructure/workspace-codegen/index.ts +0 -64
- package/src/infrastructure/workspace-codegen/manifest-contract.ts +0 -6632
- package/src/infrastructure/workspace-codegen/manifest-validation.ts +0 -795
- package/src/infrastructure/workspace-codegen/ownership.ts +0 -131
- package/src/infrastructure/workspace-codegen/preset-card-sets.ts +0 -169
- package/src/infrastructure/workspace-codegen/seeds.ts +0 -1705
- package/src/infrastructure/workspace-codegen.ts +0 -1
- package/src/package-set.ts +0 -19
- package/src/reducer/authoring/contract.ts +0 -157
- package/src/reducer/authoring/effect.ts +0 -224
- package/src/reducer/authoring/game.ts +0 -23
- package/src/reducer/authoring/interaction.ts +0 -98
- package/src/reducer/authoring/phase.ts +0 -300
- package/src/reducer/authoring/types.ts +0 -70
- package/src/reducer/authoring/validation.ts +0 -382
- package/src/reducer/authoring/view-stage.ts +0 -68
- package/src/reducer/authoring.ts +0 -29
- package/src/reducer/bundle/ingress-bundle.ts +0 -491
- package/src/reducer/bundle/trusted/engine-instruction-resolver.ts +0 -254
- package/src/reducer/bundle/trusted/flow-instruction-resolver.ts +0 -73
- package/src/reducer/bundle/trusted/instruction-runner.ts +0 -414
- package/src/reducer/bundle/trusted/interaction-authorization.ts +0 -137
- package/src/reducer/bundle/trusted/interaction-collectors.ts +0 -859
- package/src/reducer/bundle/trusted/interaction-decision.ts +0 -747
- package/src/reducer/bundle/trusted/interaction-resolver.ts +0 -95
- package/src/reducer/bundle/trusted/interaction-types.ts +0 -174
- package/src/reducer/bundle/trusted/lifecycle-runner.ts +0 -427
- package/src/reducer/bundle/trusted/projection-builder.ts +0 -680
- package/src/reducer/bundle/trusted/projection-context.ts +0 -39
- package/src/reducer/bundle/trusted/rng-sampler.ts +0 -150
- package/src/reducer/bundle/trusted/runtime-registry.ts +0 -120
- package/src/reducer/bundle/trusted/runtime-scope.ts +0 -336
- package/src/reducer/bundle/trusted/simultaneous-player.ts +0 -97
- package/src/reducer/bundle/trusted/stage-resolver.ts +0 -87
- package/src/reducer/bundle/trusted/static-projection.ts +0 -116
- package/src/reducer/bundle/trusted/trusted-runtime-args.ts +0 -97
- package/src/reducer/bundle/trusted/trusted-runtime-result.ts +0 -39
- package/src/reducer/bundle/trusted/trusted-setup-profiles.ts +0 -43
- package/src/reducer/bundle/trusted/trusted-state-codec.ts +0 -48
- package/src/reducer/bundle/trusted-bundle.ts +0 -97
- package/src/reducer/bundle/types.ts +0 -171
- package/src/reducer/bundle.ts +0 -2
- package/src/reducer/client-param-schemas.ts +0 -57
- package/src/reducer/compose.ts +0 -34
- package/src/reducer/core/runtime-input.ts +0 -30
- package/src/reducer/core/runtime-instruction.ts +0 -59
- package/src/reducer/core/types.ts +0 -62
- package/src/reducer/definition-index.ts +0 -277
- package/src/reducer/derived.ts +0 -106
- package/src/reducer/effects.ts +0 -92
- package/src/reducer/engine/runtime-instruction-engine.ts +0 -155
- package/src/reducer/ingress/decode-runtime-input.ts +0 -7
- package/src/reducer/ingress/decode-session-state.ts +0 -9
- package/src/reducer/ingress/encode-session-state.ts +0 -6
- package/src/reducer/ingress/input-codec.ts +0 -18
- package/src/reducer/ingress/phase-schemas.ts +0 -62
- package/src/reducer/ingress/raw-types.ts +0 -107
- package/src/reducer/ingress/runtime-codec.ts +0 -14
- package/src/reducer/ingress/runtime-payload.ts +0 -13
- package/src/reducer/ingress/session-codec.ts +0 -392
- package/src/reducer/ingress/types.ts +0 -6
- package/src/reducer/inputs/boardInput.ts +0 -217
- package/src/reducer/inputs/boardTarget.ts +0 -190
- package/src/reducer/inputs/cardInput.ts +0 -86
- package/src/reducer/inputs/cardTarget.ts +0 -101
- package/src/reducer/inputs/choiceTarget.ts +0 -104
- package/src/reducer/inputs/defineInputs.ts +0 -71
- package/src/reducer/inputs/formInput.ts +0 -809
- package/src/reducer/inputs/many.ts +0 -120
- package/src/reducer/inputs/promptInput.ts +0 -87
- package/src/reducer/inputs/rngInput.ts +0 -58
- package/src/reducer/inputs/targetRule.ts +0 -123
- package/src/reducer/inputs.ts +0 -41
- package/src/reducer/model/definition.ts +0 -1072
- package/src/reducer/model/extract.ts +0 -745
- package/src/reducer/model/manifest.ts +0 -570
- package/src/reducer/model/queries.ts +0 -641
- package/src/reducer/model/runtime.ts +0 -264
- package/src/reducer/model/spec.ts +0 -1386
- package/src/reducer/model/table.ts +0 -260
- package/src/reducer/model.ts +0 -7
- package/src/reducer/ops.ts +0 -1034
- package/src/reducer/parse-utils.ts +0 -28
- package/src/reducer/per-player.ts +0 -422
- package/src/reducer/rng.ts +0 -69
- package/src/reducer/schema-helpers.ts +0 -185
- package/src/reducer/setup-bootstrap-helpers.ts +0 -171
- package/src/reducer/setup-bootstrap.ts +0 -481
- package/src/reducer/table-ops.ts +0 -2671
- package/src/reducer/table-queries.ts +0 -372
- package/src/reducer/transaction.ts +0 -120
- package/src/reducer.ts +0 -314
- package/src/runtime/primitives.ts +0 -1
- package/src/runtime/types/runtime-api.ts +0 -1
- package/src/runtime/workspace-contract.ts +0 -32
- package/src/runtime-internal/components/InteractionForm.tsx +0 -1647
- package/src/runtime-internal/components/PluginRuntime.tsx +0 -105
- package/src/runtime-internal/components/board/target-layer.ts +0 -72
- package/src/runtime-internal/context/ClientParamSchemaContext.tsx +0 -44
- package/src/runtime-internal/context/InteractionDraftContext.tsx +0 -279
- package/src/runtime-internal/context/PluginSessionContext.tsx +0 -47
- package/src/runtime-internal/context/PluginStateContext.tsx +0 -303
- package/src/runtime-internal/context/RuntimeContext.tsx +0 -96
- package/src/runtime-internal/defaults/components.tsx +0 -409
- package/src/runtime-internal/defaults/index.ts +0 -11
- package/src/runtime-internal/errors/ValidationError.ts +0 -29
- package/src/runtime-internal/hooks/useActivePlayers.ts +0 -33
- package/src/runtime-internal/hooks/useBoardInteractions.ts +0 -727
- package/src/runtime-internal/hooks/useGameSelector.ts +0 -105
- package/src/runtime-internal/hooks/useGameView.ts +0 -9
- package/src/runtime-internal/hooks/useInteractionByKey.ts +0 -354
- package/src/runtime-internal/hooks/useInteractionHandle.ts +0 -438
- package/src/runtime-internal/hooks/useIsMyTurn.ts +0 -20
- package/src/runtime-internal/hooks/useLobby.ts +0 -76
- package/src/runtime-internal/hooks/useMe.ts +0 -48
- package/src/runtime-internal/hooks/usePlayerInfo.ts +0 -28
- package/src/runtime-internal/hooks/usePlayerTurnOrder.ts +0 -23
- package/src/runtime-internal/hooks/usePluginRuntime.ts +0 -147
- package/src/runtime-internal/hooks/useSeatInbox.ts +0 -61
- package/src/runtime-internal/hooks/useSimultaneousPhase.ts +0 -10
- package/src/runtime-internal/index.ts +0 -42
- package/src/runtime-internal/internal.ts +0 -43
- package/src/runtime-internal/plugin-styles.css +0 -250
- package/src/runtime-internal/primitives/board.tsx +0 -530
- package/src/runtime-internal/primitives/dialog-lifecycle.ts +0 -58
- package/src/runtime-internal/primitives/dice.tsx +0 -79
- package/src/runtime-internal/primitives/game-ui-provider.tsx +0 -35
- package/src/runtime-internal/primitives/game.tsx +0 -387
- package/src/runtime-internal/primitives/hand-intent-adapter.ts +0 -147
- package/src/runtime-internal/primitives/hand-surface.tsx +0 -594
- package/src/runtime-internal/primitives/index.ts +0 -196
- package/src/runtime-internal/primitives/interaction-form-binding.tsx +0 -56
- package/src/runtime-internal/primitives/interaction-submit.ts +0 -90
- package/src/runtime-internal/primitives/interaction.tsx +0 -1146
- package/src/runtime-internal/primitives/phase.tsx +0 -43
- package/src/runtime-internal/primitives/player-roster.tsx +0 -302
- package/src/runtime-internal/primitives/primitive-props.tsx +0 -101
- package/src/runtime-internal/primitives/prompt.tsx +0 -255
- package/src/runtime-internal/primitives/ui.tsx +0 -60
- package/src/runtime-internal/primitives/zone.tsx +0 -791
- package/src/runtime-internal/reducer.ts +0 -30
- package/src/runtime-internal/runtime/createPluginRuntimeAPI.ts +0 -605
- package/src/runtime-internal/types/plugin-state.ts +0 -514
- package/src/runtime-internal/types/reducer-state.ts +0 -24
- package/src/runtime-internal/types/runtime-api.ts +0 -114
- package/src/runtime-internal/ui-contract.ts +0 -519
- package/src/runtime-internal/utils/browser-interaction-effects.ts +0 -240
- package/src/runtime-internal/utils/card-intent-adapter.ts +0 -546
- package/src/runtime-internal/utils/interaction-draft-digest.ts +0 -252
- package/src/runtime-internal/utils/interaction-inputs.ts +0 -492
- package/src/runtime-internal/utils/interaction-labels.ts +0 -23
- package/src/runtime-internal/utils/interaction-router.ts +0 -273
- package/src/runtime-internal/utils/interaction-status.ts +0 -74
- package/src/runtime-internal/utils/semantic-projection-digest.ts +0 -407
- package/src/runtime-internal/workspace-contract.ts +0 -1170
- package/src/runtime.ts +0 -34
- package/src/testing/create-expect-api.ts +0 -352
- package/src/testing/create-test-runtime.ts +0 -381
- package/src/testing/definitions.ts +0 -127
- package/src/testing/index.ts +0 -3
- package/src/testing.ts +0 -1
- package/src/type-stubs/manifest-contract.d.ts +0 -42
- package/src/type-stubs/manifest-contract.js +0 -72
- package/src/type-stubs/ui-contract.d.ts +0 -5
- package/src/type-stubs/ui-contract.js +0 -1
- package/src/types/authoring-card-properties.type-test.ts +0 -266
- package/src/types/authoring.ts +0 -1282
- package/src/types/cards.ts +0 -19
- package/src/types/contracts.ts +0 -1550
- package/src/types/generated-helpers.ts +0 -35
- package/src/types/index.ts +0 -147
- package/src/types/slots.ts +0 -11
- package/src/types.ts +0 -1
- package/src/ui/components/ActionButton.tsx +0 -97
- package/src/ui/components/ActionPanel.tsx +0 -315
- package/src/ui/components/Card.tsx +0 -378
- package/src/ui/components/CardDragSurface.tsx +0 -1076
- package/src/ui/components/ChromeSuppressionContext.tsx +0 -70
- package/src/ui/components/CostDisplay.tsx +0 -145
- package/src/ui/components/DiceRoller.tsx +0 -581
- package/src/ui/components/Drawer.tsx +0 -180
- package/src/ui/components/ErrorBoundary.tsx +0 -275
- package/src/ui/components/GameEndDisplay.tsx +0 -398
- package/src/ui/components/GameSkeleton.tsx +0 -260
- package/src/ui/components/Hand.tsx +0 -468
- package/src/ui/components/HandDock.tsx +0 -299
- package/src/ui/components/HandView.tsx +0 -441
- package/src/ui/components/MobileHandTray.tsx +0 -381
- package/src/ui/components/MoreActions.tsx +0 -143
- package/src/ui/components/PhaseIndicator.tsx +0 -341
- package/src/ui/components/PlayArea.tsx +0 -146
- package/src/ui/components/PrimaryActionButton.tsx +0 -336
- package/src/ui/components/PrimaryButton.tsx +0 -45
- package/src/ui/components/ResourceCounter.tsx +0 -270
- package/src/ui/components/StagingZone.tsx +0 -134
- package/src/ui/components/ThemedButton.tsx +0 -113
- package/src/ui/components/Toast.tsx +0 -264
- package/src/ui/components/board/HexGrid.tsx +0 -1297
- package/src/ui/components/board/NetworkGraph.tsx +0 -476
- package/src/ui/components/board/SlotSystem.tsx +0 -388
- package/src/ui/components/board/SquareGrid.tsx +0 -1165
- package/src/ui/components/board/TrackBoard.tsx +0 -496
- package/src/ui/components/board/ZoneMap.tsx +0 -448
- package/src/ui/components/board/hex-board-view.ts +0 -123
- package/src/ui/components/board/index.ts +0 -142
- package/src/ui/components/board/interaction-accessibility.ts +0 -21
- package/src/ui/components/board/target-layer.ts +0 -67
- package/src/ui/components/card-render-content.type-test.ts +0 -27
- package/src/ui/components/hand-layout-math.ts +0 -163
- package/src/ui/components/hand-pointer-engine.ts +0 -413
- package/src/ui/components/index.ts +0 -245
- package/src/ui/components.ts +0 -1
- package/src/ui/defaults/components.tsx +0 -106
- package/src/ui/defaults/index.ts +0 -8
- package/src/ui/defaults.ts +0 -1
- package/src/ui/errors/ValidationError.ts +0 -29
- package/src/ui/helpers/cards.ts +0 -19
- package/src/ui/helpers/track-board.ts +0 -211
- package/src/ui/hooks/useBoardTopology.ts +0 -316
- package/src/ui/hooks/useCards.ts +0 -10
- package/src/ui/hooks/useHandCardPointer.ts +0 -381
- package/src/ui/hooks/useHandLayout.ts +0 -378
- package/src/ui/hooks/useHandPresentation.ts +0 -121
- package/src/ui/hooks/useHexBoard.ts +0 -74
- package/src/ui/hooks/useHexGrid.ts +0 -185
- package/src/ui/hooks/useIsMobile.ts +0 -35
- package/src/ui/hooks/usePanZoom.ts +0 -278
- package/src/ui/hooks/useSquareBoard.ts +0 -124
- package/src/ui/hooks/useSquareGrid.ts +0 -328
- package/src/ui/index.ts +0 -98
- package/src/ui/internal/ui/alert.tsx +0 -51
- package/src/ui/internal/ui/button.tsx +0 -58
- package/src/ui/internal/ui/dialog.tsx +0 -134
- package/src/ui/internal/ui/input.tsx +0 -21
- package/src/ui/internal/ui/label.tsx +0 -21
- package/src/ui/internal/ui/select.tsx +0 -129
- package/src/ui/internal/ui/tooltip.tsx +0 -54
- package/src/ui/internal/ui/utils.ts +0 -5
- package/src/ui/plugin-styles.css +0 -250
- package/src/ui/primitives/dialog-lifecycle.ts +0 -58
- package/src/ui/primitives/dice.tsx +0 -79
- package/src/ui/primitives/primitive-props.tsx +0 -101
- package/src/ui/theme/ThemeProvider.tsx +0 -252
- package/src/ui/theme/board.ts +0 -61
- package/src/ui/theme/css-vars.ts +0 -105
- package/src/ui/theme/derive.ts +0 -240
- package/src/ui/theme/index.ts +0 -61
- package/src/ui/theme/presets/arcade.ts +0 -261
- package/src/ui/theme/presets/studio.ts +0 -261
- package/src/ui/theme/presets/tabletop.ts +0 -266
- package/src/ui/theme/tokens.ts +0 -392
- package/src/ui/types/hex-color.ts +0 -20
- package/src/ui/types/player-state.ts +0 -463
- package/src/ui/types/tiled-board.ts +0 -785
- package/src/ui/types/visual-state.ts +0 -137
- package/src/ui.ts +0 -1
- /package/dist/{chunk-NKCRKGR2.js.map → chunk-3RQEICD3.js.map} +0 -0
- /package/dist/{chunk-I46YJSOD.js.map → codegen.js.map} +0 -0
- /package/dist/{chunk-T52J5RMF.js.map → reducer-contract.js.map} +0 -0
- /package/dist/{generated → runtime}/runtime-api.js.map +0 -0
- /package/dist/ui/{types/player-state.js → player-state.js} +0 -0
- /package/dist/ui/{types/player-state.js.map → player-state.js.map} +0 -0
package/dist/types.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import "./chunk-PZ5AY32C.js";
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// ../sdk-types/dist/index.js
|
|
4
4
|
function defineTopologyManifest(manifest) {
|
|
5
5
|
return manifest;
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
// src/types/generated-helpers.ts
|
|
9
7
|
function buildTypedRecord(ids, initial) {
|
|
10
8
|
const createValue = typeof initial === "function" ? initial : () => initial;
|
|
11
9
|
return Object.fromEntries(ids.map((id) => [id, createValue(id)]));
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/authoring.ts","../src/types/generated-helpers.ts"],"sourcesContent":["import type {\n BoardEdgeRef,\n BoardVertexRef,\n DieTypeSpec as ApiDieTypeSpec,\n GameTopologyManifest as ApiGameTopologyManifest,\n JsonValue,\n PropertySchema,\n} from \"./contracts.js\";\n\ntype DieTypeSpec = Omit<ApiDieTypeSpec, \"sides\"> & {\n sides?: ApiDieTypeSpec[\"sides\"];\n};\n\ntype DeepReadonly<T> = T extends (...args: readonly unknown[]) => unknown\n ? T\n : T extends readonly (infer Item)[]\n ? ReadonlyArray<DeepReadonly<Item>>\n : T extends object\n ? { readonly [Key in keyof T]: DeepReadonly<T[Key]> }\n : T;\n\ntype GameTopologyManifest = DeepReadonly<\n Omit<ApiGameTopologyManifest, \"dieTypes\"> & {\n dieTypes?: readonly DieTypeSpec[];\n }\n>;\n\ntype ArrayItem<T> = T extends readonly (infer Item)[] ? Item : never;\ntype EntryId<T> = T extends { id: infer Id extends string } ? Id : never;\ntype IdsOf<T> = EntryId<ArrayItem<NonNullable<T>>>;\ntype RuntimeRecord = Record<string, JsonValue>;\n\ntype CardSetId<Manifest extends GameTopologyManifest> = IdsOf<\n Manifest[\"cardSets\"]\n>;\ntype ZoneId<Manifest extends GameTopologyManifest> = IdsOf<Manifest[\"zones\"]>;\ntype BoardId<Manifest extends GameTopologyManifest> = IdsOf<Manifest[\"boards\"]>;\ntype PerPlayerZoneId<Manifest extends GameTopologyManifest> = EntryId<\n Extract<ArrayItem<NonNullable<Manifest[\"zones\"]>>, { scope: \"perPlayer\" }>\n>;\ntype SharedZoneId<Manifest extends GameTopologyManifest> = Exclude<\n ZoneId<Manifest>,\n PerPlayerZoneId<Manifest>\n>;\ntype PerPlayerBoardId<Manifest extends GameTopologyManifest> = EntryId<\n Extract<ArrayItem<NonNullable<Manifest[\"boards\"]>>, { scope: \"perPlayer\" }>\n>;\ntype SharedBoardId<Manifest extends GameTopologyManifest> = Exclude<\n BoardId<Manifest>,\n PerPlayerBoardId<Manifest>\n>;\ntype ResourceId<Manifest extends GameTopologyManifest> = IdsOf<\n Manifest[\"resources\"]\n>;\ntype PieceTypeId<Manifest extends GameTopologyManifest> = IdsOf<\n Manifest[\"pieceTypes\"]\n>;\ntype DieTypeId<Manifest extends GameTopologyManifest> = IdsOf<\n Manifest[\"dieTypes\"]\n>;\ntype PieceSeedOf<Manifest extends GameTopologyManifest> = ArrayItem<\n NonNullable<Manifest[\"pieceSeeds\"]>\n>;\ntype DieSeedOf<Manifest extends GameTopologyManifest> = ArrayItem<\n NonNullable<Manifest[\"dieSeeds\"]>\n>;\ntype SetupOptionId<Manifest extends GameTopologyManifest> = IdsOf<\n Manifest[\"setupOptions\"]\n>;\ntype ManualCardSetOf<Manifest extends GameTopologyManifest> = Extract<\n ArrayItem<NonNullable<Manifest[\"cardSets\"]>>,\n { type: \"manual\" }\n>;\ntype CardOf<Manifest extends GameTopologyManifest> =\n ManualCardSetOf<Manifest> extends infer CardSet\n ? CardSet extends { cards: infer Cards extends readonly unknown[] }\n ? ArrayItem<Cards>\n : never\n : never;\n\ntype BoardOf<\n Manifest extends GameTopologyManifest,\n CurrentBoardId extends BoardId<Manifest>,\n> = Extract<ArrayItem<NonNullable<Manifest[\"boards\"]>>, { id: CurrentBoardId }>;\ntype BoardTemplateOf<\n Manifest extends GameTopologyManifest,\n CurrentTemplateId extends string,\n> = Extract<\n ArrayItem<NonNullable<Manifest[\"boardTemplates\"]>>,\n { id: CurrentTemplateId }\n>;\ntype ResolvedBoardLikeOf<\n Manifest extends GameTopologyManifest,\n CurrentBoardId extends BoardId<Manifest>,\n> =\n | BoardOf<Manifest, CurrentBoardId>\n | (BoardOf<Manifest, CurrentBoardId> extends {\n templateId: infer CurrentTemplateId extends string;\n }\n ? BoardTemplateOf<Manifest, CurrentTemplateId>\n : never);\n\ntype SpaceIdOf<BoardLike> = IdsOf<\n BoardLike extends { spaces?: infer Spaces } ? Spaces : never\n>;\ntype ContainerIdOf<BoardLike> = IdsOf<\n BoardLike extends { containers?: infer Containers } ? Containers : never\n>;\ntype SpaceOf<BoardLike> = ArrayItem<\n NonNullable<BoardLike extends { spaces?: infer Spaces } ? Spaces : never>\n>;\ntype SquareSpaceOf<BoardLike> = Extract<\n SpaceOf<BoardLike>,\n { row: number; col: number }\n>;\ntype HexSpaceOf<BoardLike> = Extract<\n SpaceOf<BoardLike>,\n { q: number; r: number }\n>;\ntype BoardEntryOf<Manifest extends GameTopologyManifest> = ArrayItem<\n NonNullable<Manifest[\"boards\"]>\n>;\ntype TemplateForBoardEntry<\n Manifest extends GameTopologyManifest,\n Entry,\n> = Entry extends {\n templateId: infer TemplateId extends string;\n layout: infer Layout;\n}\n ? Extract<BoardTemplateOf<Manifest, TemplateId>, { layout: Layout }>\n : never;\ntype BoardLikeForEntry<Manifest extends GameTopologyManifest, Entry> =\n Entry extends BoardEntryOf<Manifest>\n ? Entry extends { id: infer CurrentBoardId extends BoardId<Manifest> }\n ? ResolvedBoardLikeOf<Manifest, CurrentBoardId>\n : Entry\n : Entry;\n\ntype SpaceIdForBoard<\n Manifest extends GameTopologyManifest,\n CurrentBoardId extends BoardId<Manifest>,\n> = SpaceIdOf<ResolvedBoardLikeOf<Manifest, CurrentBoardId>>;\ntype ContainerIdForBoard<\n Manifest extends GameTopologyManifest,\n CurrentBoardId extends BoardId<Manifest>,\n> = ContainerIdOf<ResolvedBoardLikeOf<Manifest, CurrentBoardId>>;\n\ntype RuntimeIdsFromCount<BaseId extends string, Count> = Count extends number\n ? number extends Count\n ? BaseId | `${BaseId}-${number}`\n : Count extends 1\n ? BaseId\n : `${BaseId}-${OneTo<Count>}`\n : BaseId;\n\ntype CardRuntimeId<Card> = Card extends { type: infer TypeId extends string }\n ? RuntimeIdsFromCount<\n TypeId,\n Card extends { count: infer Count extends number } ? Count : never\n >\n : never;\ntype SeedRuntimeId<Seed> = Seed extends { typeId: infer TypeId extends string }\n ? RuntimeIdsFromCount<\n Seed extends { id: infer Id extends string } ? Id : TypeId,\n Seed extends { count: infer Count extends number } ? Count : never\n >\n : never;\ntype CardId<Manifest extends GameTopologyManifest> = CardRuntimeId<\n CardOf<Manifest>\n>;\ntype PieceId<Manifest extends GameTopologyManifest> = SeedRuntimeId<\n PieceSeedOf<Manifest>\n>;\ntype DieId<Manifest extends GameTopologyManifest> = SeedRuntimeId<\n DieSeedOf<Manifest>\n>;\n\ntype PieceTypeOf<\n Manifest extends GameTopologyManifest,\n CurrentTypeId extends PieceTypeId<Manifest>,\n> = Extract<\n ArrayItem<NonNullable<Manifest[\"pieceTypes\"]>>,\n { id: CurrentTypeId }\n>;\ntype DieTypeOf<\n Manifest extends GameTopologyManifest,\n CurrentTypeId extends DieTypeId<Manifest>,\n> = Extract<\n ArrayItem<NonNullable<Manifest[\"dieTypes\"]>>,\n { id: CurrentTypeId }\n>;\ntype SlotIdOf<TypeSpec> = IdsOf<\n TypeSpec extends { slots?: infer Slots } ? Slots : never\n>;\ntype SlotIdForPieceType<\n Manifest extends GameTopologyManifest,\n CurrentTypeId extends PieceTypeId<Manifest>,\n> = SlotIdOf<PieceTypeOf<Manifest, CurrentTypeId>>;\ntype SlotIdForDieType<\n Manifest extends GameTopologyManifest,\n CurrentTypeId extends DieTypeId<Manifest>,\n> = SlotIdOf<DieTypeOf<Manifest, CurrentTypeId>>;\n\ntype SingletonExplicitSeed<Seed> = Seed extends { id: infer _Id extends string }\n ? Seed extends { count: infer Count extends number }\n ? Count extends 1\n ? Seed\n : never\n : Seed\n : never;\ntype TypedPieceSlotHostSeed<Manifest extends GameTopologyManifest> =\n SingletonExplicitSeed<PieceSeedOf<Manifest>> extends infer Seed\n ? Seed extends { typeId: infer CurrentTypeId extends PieceTypeId<Manifest> }\n ? [SlotIdForPieceType<Manifest, CurrentTypeId>] extends [never]\n ? never\n : Seed\n : never\n : never;\ntype TypedDieSlotHostSeed<Manifest extends GameTopologyManifest> =\n SingletonExplicitSeed<DieSeedOf<Manifest>> extends infer Seed\n ? Seed extends { typeId: infer CurrentTypeId extends DieTypeId<Manifest> }\n ? [SlotIdForDieType<Manifest, CurrentTypeId>] extends [never]\n ? never\n : Seed\n : never\n : never;\n\ntype TypedPieceSlotHomeSpec<Manifest extends GameTopologyManifest> =\n TypedPieceSlotHostSeed<Manifest> extends infer Seed\n ? Seed extends {\n id: infer HostId extends string;\n typeId: infer CurrentTypeId extends PieceTypeId<Manifest>;\n }\n ? {\n type: \"slot\";\n host: {\n kind: \"piece\";\n id: HostId;\n };\n slotId: SlotIdForPieceType<Manifest, CurrentTypeId>;\n }\n : never\n : never;\ntype TypedDieSlotHomeSpec<Manifest extends GameTopologyManifest> =\n TypedDieSlotHostSeed<Manifest> extends infer Seed\n ? Seed extends {\n id: infer HostId extends string;\n typeId: infer CurrentTypeId extends DieTypeId<Manifest>;\n }\n ? {\n type: \"slot\";\n host: {\n kind: \"die\";\n id: HostId;\n };\n slotId: SlotIdForDieType<Manifest, CurrentTypeId>;\n }\n : never\n : never;\n\ntype RequiredSchemaKeys<Properties extends Readonly<Record<string, unknown>>> =\n {\n [Key in keyof Properties]: Properties[Key] extends { optional: true }\n ? never\n : Properties[Key] extends { default: unknown }\n ? never\n : Key;\n }[keyof Properties];\ntype OptionalSchemaKeys<Properties extends Readonly<Record<string, unknown>>> =\n {\n [Key in keyof Properties]: Properties[Key] extends { optional: true }\n ? Key\n : Properties[Key] extends { default: unknown }\n ? Key\n : never;\n }[keyof Properties];\n\ntype SchemaValueFromObjectProperties<\n Properties extends Readonly<Record<string, unknown>>,\n Manifest extends GameTopologyManifest,\n BoardLike = never,\n> = keyof Properties extends never\n ? RuntimeRecord\n : {\n [Key in RequiredSchemaKeys<Properties>]: SchemaValueForProperty<\n Properties[Key],\n Manifest,\n BoardLike\n >;\n } & {\n [Key in OptionalSchemaKeys<Properties>]?: SchemaValueForProperty<\n Properties[Key],\n Manifest,\n BoardLike\n >;\n };\n\ntype SchemaValueForObjectSchema<\n Schema,\n Manifest extends GameTopologyManifest,\n BoardLike = never,\n> = Schema extends {\n properties: infer Properties extends Readonly<Record<string, unknown>>;\n}\n ? SchemaValueFromObjectProperties<Properties, Manifest, BoardLike>\n : RuntimeRecord;\n\ntype MergeSharedProperties<Variant, Shared> = Variant extends {\n properties: infer VariantProperties extends Readonly<Record<string, unknown>>;\n}\n ? {\n properties: Shared extends Readonly<Record<string, unknown>>\n ? Omit<Shared, keyof VariantProperties> & VariantProperties\n : VariantProperties;\n }\n : Variant;\n\ntype BaseSchemaValueForProperty<\n Schema,\n Manifest extends GameTopologyManifest,\n BoardLike = never,\n> = Schema extends { type: \"string\" }\n ? string\n : Schema extends { type: \"integer\" | \"number\" }\n ? number\n : Schema extends { type: \"boolean\" }\n ? boolean\n : Schema extends { type: \"zoneId\" }\n ? ZoneId<Manifest>\n : Schema extends { type: \"cardId\" }\n ? CardId<Manifest>\n : Schema extends { type: \"playerId\" }\n ? PlayerId<Manifest>\n : Schema extends { type: \"boardId\" }\n ? BoardId<Manifest>\n : Schema extends { type: \"spaceId\" }\n ? [BoardLike] extends [never]\n ? string\n : SpaceIdOf<BoardLike>\n : Schema extends { type: \"edgeId\" }\n ? [BoardLike] extends [never]\n ? string\n : DerivedEdgeIdOf<BoardLike>\n : Schema extends { type: \"vertexId\" }\n ? [BoardLike] extends [never]\n ? string\n : DerivedVertexIdOf<BoardLike>\n : Schema extends { type: \"pieceId\" }\n ? PieceId<Manifest>\n : Schema extends { type: \"dieId\" }\n ? DieId<Manifest>\n : Schema extends { type: \"resourceId\" }\n ? ResourceId<Manifest>\n : Schema extends { type: \"enum\" }\n ? Schema extends {\n enums: infer Values extends readonly string[];\n }\n ? Values[number]\n : string\n : Schema extends { type: \"array\" }\n ? ReadonlyArray<\n SchemaValueForProperty<\n Schema extends {\n items?: infer Items;\n }\n ? Items\n : undefined,\n Manifest,\n BoardLike\n >\n >\n : Schema extends { type: \"object\" }\n ? SchemaValueForObjectSchema<\n Schema extends {\n properties?: infer Properties extends\n Record<string, unknown>;\n }\n ? {\n properties: Properties;\n }\n : undefined,\n Manifest,\n BoardLike\n >\n : Schema extends { type: \"record\" }\n ? Record<\n string,\n SchemaValueForProperty<\n Schema extends {\n values?: infer Values;\n }\n ? Values\n : undefined,\n Manifest,\n BoardLike\n >\n >\n : RuntimeRecord;\n\ntype SchemaValueForProperty<\n Schema,\n Manifest extends GameTopologyManifest,\n BoardLike = never,\n> = Schema extends { nullable: true }\n ? BaseSchemaValueForProperty<Schema, Manifest, BoardLike> | null\n : BaseSchemaValueForProperty<Schema, Manifest, BoardLike>;\n\ntype BuildTuple<\n Length extends number,\n Accumulator extends unknown[] = [],\n> = Accumulator[\"length\"] extends Length\n ? Accumulator\n : BuildTuple<Length, [...Accumulator, unknown]>;\n\ntype EnumerateInternal<\n Length extends number,\n Accumulator extends number[] = [],\n> = Accumulator[\"length\"] extends Length\n ? Accumulator[number]\n : EnumerateInternal<Length, [...Accumulator, Accumulator[\"length\"]]>;\n\ntype AddOne<Count extends number> = [...BuildTuple<Count>, unknown][\"length\"] &\n number;\ntype OneTo<Count extends number> = Exclude<EnumerateInternal<AddOne<Count>>, 0>;\ntype PlayerId<Manifest extends GameTopologyManifest> =\n Manifest[\"players\"][\"maxPlayers\"] extends infer MaxPlayers extends number\n ? `player-${OneTo<MaxPlayers>}`\n : `player-${number}`;\n\ntype ToNumber<Input extends string> =\n Input extends `${infer Value extends number}` ? Value : never;\ntype AbsoluteNumber<Count extends number> =\n `${Count}` extends `-${infer Value extends number}` ? Value : Count;\ntype IsNegative<Count extends number> = `${Count}` extends `-${string}`\n ? true\n : false;\ntype Negate<Count extends number> = Count extends 0\n ? 0\n : ToNumber<`${`${Count}` extends `-${infer Value extends number}`\n ? Value\n : `-${Count}`}`>;\ntype AddPositive<Left extends number, Right extends number> = number extends\n | Left\n | Right\n ? number\n : [...BuildTuple<Left>, ...BuildTuple<Right>][\"length\"] & number;\ntype ComparePositive<\n Left extends number,\n Right extends number,\n> = Left extends Right\n ? \"equal\"\n : number extends Left | Right\n ? \"unknown\"\n : BuildTuple<Left> extends [...BuildTuple<Right>, ...infer Rest]\n ? Rest extends []\n ? \"equal\"\n : \"greater\"\n : \"less\";\ntype SubtractPositive<\n Left extends number,\n Right extends number,\n> = number extends Left | Right\n ? number\n : BuildTuple<Left> extends [...BuildTuple<Right>, ...infer Rest]\n ? Rest[\"length\"] & number\n : never;\ntype AddSigned<Left extends number, Right extends number> = number extends\n | Left\n | Right\n ? number\n : IsNegative<Left> extends IsNegative<Right>\n ? IsNegative<Left> extends true\n ? Negate<AddPositive<AbsoluteNumber<Left>, AbsoluteNumber<Right>>>\n : AddPositive<AbsoluteNumber<Left>, AbsoluteNumber<Right>>\n : ComparePositive<\n AbsoluteNumber<Left>,\n AbsoluteNumber<Right>\n > extends \"equal\"\n ? 0\n : ComparePositive<\n AbsoluteNumber<Left>,\n AbsoluteNumber<Right>\n > extends \"greater\"\n ? IsNegative<Left> extends true\n ? Negate<\n SubtractPositive<AbsoluteNumber<Left>, AbsoluteNumber<Right>>\n >\n : SubtractPositive<AbsoluteNumber<Left>, AbsoluteNumber<Right>>\n : IsNegative<Right> extends true\n ? Negate<\n SubtractPositive<AbsoluteNumber<Right>, AbsoluteNumber<Left>>\n >\n : SubtractPositive<AbsoluteNumber<Right>, AbsoluteNumber<Left>>;\ntype MultiplyByThree<Count extends number> = AddSigned<\n Count,\n AddSigned<Count, Count>\n>;\ntype CharRank<Character extends string> = Character extends \",\"\n ? 0\n : Character extends \"-\"\n ? 1\n : Character extends \"0\"\n ? 2\n : Character extends \"1\"\n ? 3\n : Character extends \"2\"\n ? 4\n : Character extends \"3\"\n ? 5\n : Character extends \"4\"\n ? 6\n : Character extends \"5\"\n ? 7\n : Character extends \"6\"\n ? 8\n : Character extends \"7\"\n ? 9\n : Character extends \"8\"\n ? 10\n : Character extends \"9\"\n ? 11\n : never;\ntype CompareCharacters<\n Left extends string,\n Right extends string,\n> = Left extends Right\n ? \"equal\"\n : ComparePositive<CharRank<Left>, CharRank<Right>> extends \"less\"\n ? \"less\"\n : \"greater\";\ntype CompareStrings<\n Left extends string,\n Right extends string,\n> = Left extends `${infer LeftHead}${infer LeftTail}`\n ? Right extends `${infer RightHead}${infer RightTail}`\n ? LeftHead extends RightHead\n ? CompareStrings<LeftTail, RightTail>\n : CompareCharacters<LeftHead, RightHead>\n : \"greater\"\n : Right extends \"\"\n ? \"equal\"\n : \"less\";\ntype SortPair<Left extends string, Right extends string> =\n CompareStrings<Left, Right> extends \"greater\"\n ? `${Right}::${Left}`\n : `${Left}::${Right}`;\ntype SquareCornerGeometryKey<\n Space extends { row: number; col: number },\n Corner extends \"nw\" | \"ne\" | \"se\" | \"sw\",\n> = Corner extends \"nw\"\n ? `${Space[\"col\"]},${Space[\"row\"]}`\n : Corner extends \"ne\"\n ? `${AddSigned<Space[\"col\"], 1>},${Space[\"row\"]}`\n : Corner extends \"se\"\n ? `${AddSigned<Space[\"col\"], 1>},${AddSigned<Space[\"row\"], 1>}`\n : `${Space[\"col\"]},${AddSigned<Space[\"row\"], 1>}`;\ntype SquareEdgeGeometryKey<\n Space extends { row: number; col: number },\n Side extends \"north\" | \"east\" | \"south\" | \"west\",\n> = Side extends \"north\"\n ? `${Space[\"col\"]},${Space[\"row\"]}::${AddSigned<Space[\"col\"], 1>},${Space[\"row\"]}`\n : Side extends \"east\"\n ? `${AddSigned<Space[\"col\"], 1>},${Space[\"row\"]}::${AddSigned<\n Space[\"col\"],\n 1\n >},${AddSigned<Space[\"row\"], 1>}`\n : Side extends \"south\"\n ? `${Space[\"col\"]},${AddSigned<Space[\"row\"], 1>}::${AddSigned<\n Space[\"col\"],\n 1\n >},${AddSigned<Space[\"row\"], 1>}`\n : `${Space[\"col\"]},${Space[\"row\"]}::${Space[\"col\"]},${AddSigned<\n Space[\"row\"],\n 1\n >}`;\ntype HexCornerGeometryKey<\n Space extends { q: number; r: number },\n Corner extends \"ne-e\" | \"e-se\" | \"se-sw\" | \"sw-w\" | \"w-nw\" | \"nw-ne\",\n> = `${AddSigned<\n MultiplyByThree<Space[\"q\"]>,\n Corner extends \"ne-e\"\n ? 2\n : Corner extends \"e-se\"\n ? 1\n : Corner extends \"se-sw\"\n ? -1\n : Corner extends \"sw-w\"\n ? -2\n : Corner extends \"w-nw\"\n ? -1\n : 1\n>},${AddSigned<\n MultiplyByThree<Negate<AddSigned<Space[\"q\"], Space[\"r\"]>>>,\n Corner extends \"ne-e\"\n ? -1\n : Corner extends \"e-se\"\n ? -2\n : Corner extends \"se-sw\"\n ? -1\n : Corner extends \"sw-w\"\n ? 1\n : Corner extends \"w-nw\"\n ? 2\n : 1\n>},${AddSigned<\n MultiplyByThree<Space[\"r\"]>,\n Corner extends \"ne-e\"\n ? -1\n : Corner extends \"e-se\"\n ? 1\n : Corner extends \"se-sw\"\n ? 2\n : Corner extends \"sw-w\"\n ? 1\n : Corner extends \"w-nw\"\n ? -1\n : -2\n>}`;\ntype HexEdgeGeometryKey<\n Space extends { q: number; r: number },\n Side extends \"e\" | \"ne\" | \"nw\" | \"w\" | \"sw\" | \"se\",\n> = SortPair<\n HexCornerGeometryKey<\n Space,\n Side extends \"e\"\n ? \"ne-e\"\n : Side extends \"ne\"\n ? \"nw-ne\"\n : Side extends \"nw\"\n ? \"w-nw\"\n : Side extends \"w\"\n ? \"sw-w\"\n : Side extends \"sw\"\n ? \"se-sw\"\n : \"e-se\"\n >,\n HexCornerGeometryKey<\n Space,\n Side extends \"e\"\n ? \"e-se\"\n : Side extends \"ne\"\n ? \"ne-e\"\n : Side extends \"nw\"\n ? \"nw-ne\"\n : Side extends \"w\"\n ? \"w-nw\"\n : Side extends \"sw\"\n ? \"sw-w\"\n : \"se-sw\"\n >\n>;\ntype DerivedSquareEdgeIdOf<BoardLike> =\n SquareSpaceOf<BoardLike> extends infer Space\n ? Space extends { row: number; col: number }\n ?\n | `square-edge:${SquareEdgeGeometryKey<Space, \"north\">}`\n | `square-edge:${SquareEdgeGeometryKey<Space, \"east\">}`\n | `square-edge:${SquareEdgeGeometryKey<Space, \"south\">}`\n | `square-edge:${SquareEdgeGeometryKey<Space, \"west\">}`\n : never\n : never;\ntype DerivedSquareVertexIdOf<BoardLike> =\n SquareSpaceOf<BoardLike> extends infer Space\n ? Space extends { row: number; col: number }\n ?\n | `square-vertex:${SquareCornerGeometryKey<Space, \"nw\">}`\n | `square-vertex:${SquareCornerGeometryKey<Space, \"ne\">}`\n | `square-vertex:${SquareCornerGeometryKey<Space, \"se\">}`\n | `square-vertex:${SquareCornerGeometryKey<Space, \"sw\">}`\n : never\n : never;\ntype DerivedHexEdgeIdOf<BoardLike> =\n HexSpaceOf<BoardLike> extends infer Space\n ? Space extends { q: number; r: number }\n ?\n | `hex-edge:${HexEdgeGeometryKey<Space, \"e\">}`\n | `hex-edge:${HexEdgeGeometryKey<Space, \"ne\">}`\n | `hex-edge:${HexEdgeGeometryKey<Space, \"nw\">}`\n | `hex-edge:${HexEdgeGeometryKey<Space, \"w\">}`\n | `hex-edge:${HexEdgeGeometryKey<Space, \"sw\">}`\n | `hex-edge:${HexEdgeGeometryKey<Space, \"se\">}`\n : never\n : never;\ntype DerivedHexVertexIdOf<BoardLike> =\n HexSpaceOf<BoardLike> extends infer Space\n ? Space extends { q: number; r: number }\n ?\n | `hex-vertex:${HexCornerGeometryKey<Space, \"ne-e\">}`\n | `hex-vertex:${HexCornerGeometryKey<Space, \"e-se\">}`\n | `hex-vertex:${HexCornerGeometryKey<Space, \"se-sw\">}`\n | `hex-vertex:${HexCornerGeometryKey<Space, \"sw-w\">}`\n | `hex-vertex:${HexCornerGeometryKey<Space, \"w-nw\">}`\n | `hex-vertex:${HexCornerGeometryKey<Space, \"nw-ne\">}`\n : never\n : never;\ntype DerivedEdgeIdOf<BoardLike> = BoardLike extends { layout: \"square\" }\n ? DerivedSquareEdgeIdOf<BoardLike>\n : BoardLike extends { layout: \"hex\" }\n ? DerivedHexEdgeIdOf<BoardLike>\n : never;\ntype DerivedVertexIdOf<BoardLike> = BoardLike extends { layout: \"square\" }\n ? DerivedSquareVertexIdOf<BoardLike>\n : BoardLike extends { layout: \"hex\" }\n ? DerivedHexVertexIdOf<BoardLike>\n : never;\n\ntype SetupOptionChoiceId<Option> = IdsOf<\n Option extends { choices?: infer Choices } ? Choices : never\n>;\ntype SetupOptionOf<Manifest extends GameTopologyManifest> = ArrayItem<\n NonNullable<Manifest[\"setupOptions\"]>\n>;\ntype SetupOptionChoiceIdFor<\n Manifest extends GameTopologyManifest,\n OptionId extends SetupOptionId<Manifest>,\n> = SetupOptionChoiceId<Extract<SetupOptionOf<Manifest>, { id: OptionId }>>;\n\ntype TypedSharedSpaceHomeSpec<Manifest extends GameTopologyManifest> = {\n [CurrentBoardId in SharedBoardId<Manifest>]: {\n type: \"space\";\n boardId: CurrentBoardId;\n spaceId: SpaceIdForBoard<Manifest, CurrentBoardId>;\n };\n}[SharedBoardId<Manifest>];\n\ntype TypedPerPlayerSpaceHomeSpec<Manifest extends GameTopologyManifest> = {\n [CurrentBoardId in PerPlayerBoardId<Manifest>]: {\n type: \"space\";\n boardId: CurrentBoardId;\n spaceId: SpaceIdForBoard<Manifest, CurrentBoardId>;\n };\n}[PerPlayerBoardId<Manifest>];\n\ntype TypedSharedContainerHomeSpec<Manifest extends GameTopologyManifest> = {\n [CurrentBoardId in SharedBoardId<Manifest>]: {\n type: \"container\";\n boardId: CurrentBoardId;\n containerId: ContainerIdForBoard<Manifest, CurrentBoardId>;\n };\n}[SharedBoardId<Manifest>];\n\ntype TypedPerPlayerContainerHomeSpec<Manifest extends GameTopologyManifest> = {\n [CurrentBoardId in PerPlayerBoardId<Manifest>]: {\n type: \"container\";\n boardId: CurrentBoardId;\n containerId: ContainerIdForBoard<Manifest, CurrentBoardId>;\n };\n}[PerPlayerBoardId<Manifest>];\n\ntype TypedSharedEdgeHomeSpec<Manifest extends GameTopologyManifest> = {\n [CurrentBoardId in SharedBoardId<Manifest>]: {\n type: \"edge\";\n boardId: CurrentBoardId;\n ref: BoardEdgeRef;\n };\n}[SharedBoardId<Manifest>];\n\ntype TypedPerPlayerEdgeHomeSpec<Manifest extends GameTopologyManifest> = {\n [CurrentBoardId in PerPlayerBoardId<Manifest>]: {\n type: \"edge\";\n boardId: CurrentBoardId;\n ref: BoardEdgeRef;\n };\n}[PerPlayerBoardId<Manifest>];\n\ntype TypedSharedVertexHomeSpec<Manifest extends GameTopologyManifest> = {\n [CurrentBoardId in SharedBoardId<Manifest>]: {\n type: \"vertex\";\n boardId: CurrentBoardId;\n ref: BoardVertexRef;\n };\n}[SharedBoardId<Manifest>];\n\ntype TypedPerPlayerVertexHomeSpec<Manifest extends GameTopologyManifest> = {\n [CurrentBoardId in PerPlayerBoardId<Manifest>]: {\n type: \"vertex\";\n boardId: CurrentBoardId;\n ref: BoardVertexRef;\n };\n}[PerPlayerBoardId<Manifest>];\n\ntype TypedSharedZoneHomeSpec<Manifest extends GameTopologyManifest> = {\n type: \"zone\";\n zoneId: SharedZoneId<Manifest>;\n};\n\ntype TypedPerPlayerZoneHomeSpec<Manifest extends GameTopologyManifest> = {\n type: \"zone\";\n zoneId: PerPlayerZoneId<Manifest>;\n};\n\ntype TypedPlayerScopedComponentHomeSpec<Manifest extends GameTopologyManifest> =\n\n | TypedPerPlayerZoneHomeSpec<Manifest>\n | TypedPerPlayerSpaceHomeSpec<Manifest>\n | TypedPerPlayerContainerHomeSpec<Manifest>\n | TypedPerPlayerEdgeHomeSpec<Manifest>\n | TypedPerPlayerVertexHomeSpec<Manifest>;\n\ntype TypedSharedComponentHomeSpec<Manifest extends GameTopologyManifest> =\n | { type: \"detached\" }\n | TypedSharedZoneHomeSpec<Manifest>\n | TypedSharedSpaceHomeSpec<Manifest>\n | TypedSharedContainerHomeSpec<Manifest>\n | TypedSharedEdgeHomeSpec<Manifest>\n | TypedSharedVertexHomeSpec<Manifest>\n | TypedPieceSlotHomeSpec<Manifest>\n | TypedDieSlotHomeSpec<Manifest>;\n\ntype TypedComponentHomeSpec<Manifest extends GameTopologyManifest> =\n | TypedSharedComponentHomeSpec<Manifest>\n | TypedPlayerScopedComponentHomeSpec<Manifest>;\n\ntype TypedSeedLocationSpec<\n Seed,\n Manifest extends GameTopologyManifest,\n> = Seed extends { home: infer Home }\n ? Home extends TypedPlayerScopedComponentHomeSpec<Manifest>\n ? Omit<Seed, \"ownerId\" | \"home\"> & {\n ownerId: PlayerId<Manifest>;\n home: TypedPlayerScopedComponentHomeSpec<Manifest>;\n }\n : Omit<Seed, \"ownerId\" | \"home\"> & {\n ownerId?: PlayerId<Manifest>;\n home?: TypedComponentHomeSpec<Manifest>;\n }\n : Omit<Seed, \"ownerId\" | \"home\"> & {\n ownerId?: PlayerId<Manifest>;\n home?: TypedComponentHomeSpec<Manifest>;\n };\n\ntype TypedVisibilitySpec<Manifest extends GameTopologyManifest> = {\n faceUp?: boolean;\n visibleTo?: readonly PlayerId<Manifest>[];\n};\ntype TypedVisibility<T, Manifest extends GameTopologyManifest> = T extends {\n visibility?: unknown;\n}\n ? Omit<T, \"visibility\"> & {\n visibility?: TypedVisibilitySpec<Manifest>;\n }\n : T;\ntype TypedFields<\n T,\n Schema,\n Manifest extends GameTopologyManifest,\n BoardLike = never,\n> = T extends { fields?: unknown }\n ? Omit<T, \"fields\"> & {\n fields?: SchemaValueForObjectSchema<Schema, Manifest, BoardLike>;\n }\n : T;\ntype TypedBoardContainerHost<Host, BoardLike> = Host extends {\n type: \"space\";\n spaceId: string;\n}\n ? Omit<Host, \"spaceId\"> & {\n spaceId: SpaceIdOf<BoardLike>;\n }\n : Host;\ntype TypedBoardContainer<\n Container,\n Manifest extends GameTopologyManifest,\n BoardLike,\n ContainerSchema,\n> = Container extends { host: infer Host }\n ? Omit<\n TypedFields<\n TypedAllowedCardSetIds<Container, Manifest>,\n ContainerSchema,\n Manifest,\n BoardLike\n >,\n \"host\"\n > & {\n host: TypedBoardContainerHost<Host, BoardLike>;\n }\n : TypedFields<\n TypedAllowedCardSetIds<Container, Manifest>,\n ContainerSchema,\n Manifest,\n BoardLike\n >;\ntype TypedBoardRelation<\n Relation,\n Manifest extends GameTopologyManifest,\n BoardLike,\n RelationSchema,\n> = Relation extends object\n ? Omit<\n TypedFields<Relation, RelationSchema, Manifest, BoardLike>,\n \"fromSpaceId\" | \"toSpaceId\"\n > & {\n fromSpaceId: SpaceIdOf<BoardLike>;\n toSpaceId: SpaceIdOf<BoardLike>;\n }\n : Relation;\ntype TypedOptionalArray<\n Base,\n Source,\n Key extends string,\n Item,\n> = Source extends { [Property in Key]?: readonly unknown[] }\n ? Base & {\n [Property in Key]?: ReadonlyArray<Item>;\n }\n : Base;\ntype EffectiveSchemaForEntry<\n Manifest extends GameTopologyManifest,\n Entry,\n Key extends string,\n> = Key extends keyof Entry\n ? Entry[Key]\n : TemplateForBoardEntry<Manifest, Entry> extends infer Template\n ? Key extends keyof Template\n ? Template[Key]\n : undefined\n : undefined;\ntype TypedGenericBoardLike<\n Entry,\n Manifest extends GameTopologyManifest,\n BoardLike,\n> = TypedOptionalArray<\n TypedOptionalArray<\n TypedOptionalArray<\n TypedFields<\n Omit<Entry, \"spaces\" | \"relations\" | \"containers\">,\n EffectiveSchemaForEntry<Manifest, Entry, \"boardFieldsSchema\">,\n Manifest,\n BoardLike\n >,\n Entry,\n \"spaces\",\n TypedFields<\n ArrayItem<\n NonNullable<Entry extends { spaces?: infer Spaces } ? Spaces : never>\n >,\n EffectiveSchemaForEntry<Manifest, Entry, \"spaceFieldsSchema\">,\n Manifest,\n BoardLike\n >\n >,\n Entry,\n \"relations\",\n TypedBoardRelation<\n ArrayItem<\n NonNullable<\n Entry extends { relations?: infer Relations } ? Relations : never\n >\n >,\n Manifest,\n BoardLike,\n EffectiveSchemaForEntry<Manifest, Entry, \"relationFieldsSchema\">\n >\n >,\n Entry,\n \"containers\",\n TypedBoardContainer<\n ArrayItem<\n NonNullable<\n Entry extends { containers?: infer Containers } ? Containers : never\n >\n >,\n Manifest,\n BoardLike,\n EffectiveSchemaForEntry<Manifest, Entry, \"containerFieldsSchema\">\n >\n>;\ntype TypedHexBoardLike<\n Entry,\n Manifest extends GameTopologyManifest,\n BoardLike,\n> = TypedOptionalArray<\n TypedOptionalArray<\n TypedOptionalArray<\n TypedFields<\n Omit<Entry, \"spaces\" | \"edges\" | \"vertices\">,\n EffectiveSchemaForEntry<Manifest, Entry, \"boardFieldsSchema\">,\n Manifest,\n BoardLike\n >,\n Entry,\n \"spaces\",\n TypedFields<\n ArrayItem<\n NonNullable<Entry extends { spaces?: infer Spaces } ? Spaces : never>\n >,\n EffectiveSchemaForEntry<Manifest, Entry, \"spaceFieldsSchema\">,\n Manifest,\n BoardLike\n >\n >,\n Entry,\n \"edges\",\n TypedFields<\n ArrayItem<\n NonNullable<Entry extends { edges?: infer Edges } ? Edges : never>\n >,\n EffectiveSchemaForEntry<Manifest, Entry, \"edgeFieldsSchema\">,\n Manifest,\n BoardLike\n >\n >,\n Entry,\n \"vertices\",\n TypedFields<\n ArrayItem<\n NonNullable<\n Entry extends { vertices?: infer Vertices } ? Vertices : never\n >\n >,\n EffectiveSchemaForEntry<Manifest, Entry, \"vertexFieldsSchema\">,\n Manifest,\n BoardLike\n >\n>;\ntype TypedSquareBoardLike<\n Entry,\n Manifest extends GameTopologyManifest,\n BoardLike,\n> = TypedOptionalArray<\n TypedOptionalArray<\n TypedOptionalArray<\n TypedOptionalArray<\n TypedOptionalArray<\n TypedFields<\n Omit<\n Entry,\n \"spaces\" | \"relations\" | \"containers\" | \"edges\" | \"vertices\"\n >,\n EffectiveSchemaForEntry<Manifest, Entry, \"boardFieldsSchema\">,\n Manifest,\n BoardLike\n >,\n Entry,\n \"spaces\",\n TypedFields<\n ArrayItem<\n NonNullable<\n Entry extends { spaces?: infer Spaces } ? Spaces : never\n >\n >,\n EffectiveSchemaForEntry<Manifest, Entry, \"spaceFieldsSchema\">,\n Manifest,\n BoardLike\n >\n >,\n Entry,\n \"relations\",\n TypedBoardRelation<\n ArrayItem<\n NonNullable<\n Entry extends { relations?: infer Relations } ? Relations : never\n >\n >,\n Manifest,\n BoardLike,\n EffectiveSchemaForEntry<Manifest, Entry, \"relationFieldsSchema\">\n >\n >,\n Entry,\n \"containers\",\n TypedBoardContainer<\n ArrayItem<\n NonNullable<\n Entry extends { containers?: infer Containers } ? Containers : never\n >\n >,\n Manifest,\n BoardLike,\n EffectiveSchemaForEntry<Manifest, Entry, \"containerFieldsSchema\">\n >\n >,\n Entry,\n \"edges\",\n TypedFields<\n ArrayItem<\n NonNullable<Entry extends { edges?: infer Edges } ? Edges : never>\n >,\n EffectiveSchemaForEntry<Manifest, Entry, \"edgeFieldsSchema\">,\n Manifest,\n BoardLike\n >\n >,\n Entry,\n \"vertices\",\n TypedFields<\n ArrayItem<\n NonNullable<\n Entry extends { vertices?: infer Vertices } ? Vertices : never\n >\n >,\n EffectiveSchemaForEntry<Manifest, Entry, \"vertexFieldsSchema\">,\n Manifest,\n BoardLike\n >\n>;\ntype TypedBoardLikeEntry<\n Entry,\n Manifest extends GameTopologyManifest,\n> = Entry extends { layout: \"generic\" }\n ? TypedGenericBoardLike<Entry, Manifest, BoardLikeForEntry<Manifest, Entry>>\n : Entry extends { layout: \"hex\" }\n ? TypedHexBoardLike<Entry, Manifest, BoardLikeForEntry<Manifest, Entry>>\n : Entry extends { layout: \"square\" }\n ? TypedSquareBoardLike<\n Entry,\n Manifest,\n BoardLikeForEntry<Manifest, Entry>\n >\n : Entry;\n\ntype TypedCard<\n Card,\n Manifest extends GameTopologyManifest,\n CardSchema,\n> = Card extends { type: infer CardType extends string }\n ? Omit<TypedVisibility<Card, Manifest>, \"home\" | \"properties\"> & {\n home?: TypedComponentHomeSpec<Manifest>;\n properties: CardSchema extends {\n variants: infer Variants extends Record<string, unknown>;\n shared?: infer Shared;\n }\n ? CardType extends keyof Variants\n ? SchemaValueForObjectSchema<\n MergeSharedProperties<Variants[CardType], Shared>,\n Manifest\n >\n : never\n : SchemaValueForObjectSchema<CardSchema, Manifest>;\n }\n : Card;\n\ntype TypedCardSet<\n CardSet,\n Manifest extends GameTopologyManifest,\n> = CardSet extends {\n type: \"manual\";\n cardSchema: infer CardSchema;\n cards: infer Cards extends readonly unknown[];\n}\n ? Omit<CardSet, \"cards\"> & {\n cards: ReadonlyArray<TypedCard<ArrayItem<Cards>, Manifest, CardSchema>>;\n }\n : CardSet;\n\ntype TypedAllowedCardSetIds<\n T,\n Manifest extends GameTopologyManifest,\n> = T extends object\n ? Omit<T, \"allowedCardSetIds\"> & {\n allowedCardSetIds?: readonly CardSetId<Manifest>[];\n }\n : T;\n\ntype TypedZone<\n Zone,\n Manifest extends GameTopologyManifest,\n> = TypedAllowedCardSetIds<Zone, Manifest>;\n\ntype TypedPieceSeed<\n Seed,\n Manifest extends GameTopologyManifest,\n> = Seed extends { typeId: infer CurrentTypeId }\n ? CurrentTypeId extends PieceTypeId<Manifest>\n ? Omit<\n TypedSeedLocationSpec<TypedVisibility<Seed, Manifest>, Manifest>,\n \"typeId\" | \"ownerId\" | \"home\" | \"fields\"\n > & {\n typeId: CurrentTypeId;\n fields?: SchemaValueForObjectSchema<\n PieceTypeOf<Manifest, CurrentTypeId> extends {\n fieldsSchema?: infer FieldsSchema;\n }\n ? FieldsSchema\n : undefined,\n Manifest\n >;\n } & Pick<\n TypedSeedLocationSpec<TypedVisibility<Seed, Manifest>, Manifest>,\n \"ownerId\" | \"home\"\n >\n : Omit<Seed, \"typeId\"> & {\n typeId: PieceTypeId<Manifest>;\n }\n : never;\n\ntype TypedDieSeed<Seed, Manifest extends GameTopologyManifest> = Seed extends {\n typeId: infer CurrentTypeId;\n}\n ? CurrentTypeId extends DieTypeId<Manifest>\n ? Omit<\n TypedSeedLocationSpec<TypedVisibility<Seed, Manifest>, Manifest>,\n \"typeId\" | \"ownerId\" | \"home\" | \"fields\"\n > & {\n typeId: CurrentTypeId;\n fields?: SchemaValueForObjectSchema<\n DieTypeOf<Manifest, CurrentTypeId> extends {\n fieldsSchema?: infer FieldsSchema;\n }\n ? FieldsSchema\n : undefined,\n Manifest\n >;\n } & Pick<\n TypedSeedLocationSpec<TypedVisibility<Seed, Manifest>, Manifest>,\n \"ownerId\" | \"home\"\n >\n : Omit<Seed, \"typeId\"> & {\n typeId: DieTypeId<Manifest>;\n }\n : never;\n\ntype TypedSetupOptionValues<Manifest extends GameTopologyManifest> = Partial<{\n [OptionId in SetupOptionId<Manifest>]: SetupOptionChoiceIdFor<\n Manifest,\n OptionId\n >;\n}>;\n\ntype TypedSetupProfile<\n Profile,\n Manifest extends GameTopologyManifest,\n> = Profile extends object\n ? Omit<Profile, \"optionValues\"> & {\n optionValues?: TypedSetupOptionValues<Manifest>;\n }\n : Profile;\n\nexport type TypedTopologyManifest<Manifest extends GameTopologyManifest> = Omit<\n Manifest,\n | \"cardSets\"\n | \"zones\"\n | \"boardTemplates\"\n | \"boards\"\n | \"pieceSeeds\"\n | \"dieSeeds\"\n | \"setupProfiles\"\n> & {\n cardSets: ReadonlyArray<\n TypedCardSet<ArrayItem<Manifest[\"cardSets\"]>, Manifest>\n >;\n zones?: Manifest[\"zones\"] extends readonly unknown[]\n ? ReadonlyArray<TypedZone<ArrayItem<Manifest[\"zones\"]>, Manifest>>\n : Manifest[\"zones\"];\n boardTemplates?: Manifest[\"boardTemplates\"] extends readonly unknown[]\n ? ReadonlyArray<\n TypedBoardLikeEntry<ArrayItem<Manifest[\"boardTemplates\"]>, Manifest>\n >\n : Manifest[\"boardTemplates\"];\n boards: Manifest[\"boards\"] extends readonly unknown[]\n ? ReadonlyArray<\n TypedBoardLikeEntry<ArrayItem<Manifest[\"boards\"]>, Manifest>\n >\n : Manifest[\"boards\"];\n pieceSeeds?: Manifest[\"pieceSeeds\"] extends readonly unknown[]\n ? ReadonlyArray<TypedPieceSeed<ArrayItem<Manifest[\"pieceSeeds\"]>, Manifest>>\n : Manifest[\"pieceSeeds\"];\n dieSeeds?: Manifest[\"dieSeeds\"] extends readonly unknown[]\n ? ReadonlyArray<TypedDieSeed<ArrayItem<Manifest[\"dieSeeds\"]>, Manifest>>\n : Manifest[\"dieSeeds\"];\n setupProfiles?: Manifest[\"setupProfiles\"] extends readonly unknown[]\n ? ReadonlyArray<\n TypedSetupProfile<ArrayItem<Manifest[\"setupProfiles\"]>, Manifest>\n >\n : Manifest[\"setupProfiles\"];\n};\n\ntype TopologyManifestValidation<Manifest> =\n Manifest extends GameTopologyManifest\n ? TypedTopologyManifest<Manifest>\n : GameTopologyManifest;\n\ntype DefinedTopologyManifest<Manifest> = Manifest extends GameTopologyManifest\n ? Manifest\n : GameTopologyManifest;\n\nexport function defineTopologyManifest<const Manifest>(\n manifest: Manifest & TopologyManifestValidation<NoInfer<Manifest>>,\n): DefinedTopologyManifest<Manifest> {\n return manifest as DefinedTopologyManifest<Manifest>;\n}\n","type RecordInitializer<Id extends string, Value> = Value | ((id: Id) => Value);\n\nexport function buildTypedRecord<Id extends string, Value>(\n ids: readonly Id[],\n initial: RecordInitializer<Id, Value>,\n): Record<Id, Value> {\n const createValue =\n typeof initial === \"function\"\n ? (initial as (id: Id) => Value)\n : () => initial;\n\n return Object.fromEntries(ids.map((id) => [id, createValue(id)])) as Record<\n Id,\n Value\n >;\n}\n\nexport function isTypedId<Id extends string>(\n ids: readonly Id[],\n value: string,\n): value is Id {\n return (ids as readonly string[]).includes(value);\n}\n\nexport function expectTypedId<Id extends string>(\n ids: readonly Id[],\n value: string,\n description: string,\n): Id {\n if (isTypedId(ids, value)) {\n return value;\n }\n\n throw new Error(`Unknown ${description} '${value}'.`);\n}\n"],"mappings":";;;AA6vCO,SAAS,uBACd,UACmC;AACnC,SAAO;AACT;;;AC/vCO,SAAS,iBACd,KACA,SACmB;AACnB,QAAM,cACJ,OAAO,YAAY,aACd,UACD,MAAM;AAEZ,SAAO,OAAO,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC;AAIlE;AAEO,SAAS,UACd,KACA,OACa;AACb,SAAQ,IAA0B,SAAS,KAAK;AAClD;AAEO,SAAS,cACd,KACA,OACA,aACI;AACJ,MAAI,UAAU,KAAK,KAAK,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,IAAI,MAAM,WAAW,WAAW,KAAK,KAAK,IAAI;AACtD;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../sdk-types/dist/index.js"],"sourcesContent":["// src/authoring.ts\nfunction defineTopologyManifest(manifest) {\n return manifest;\n}\n\n// src/generated-helpers.ts\nfunction buildTypedRecord(ids, initial) {\n const createValue = typeof initial === \"function\" ? initial : () => initial;\n return Object.fromEntries(ids.map((id) => [id, createValue(id)]));\n}\nfunction isTypedId(ids, value) {\n return ids.includes(value);\n}\nfunction expectTypedId(ids, value, description) {\n if (isTypedId(ids, value)) {\n return value;\n }\n throw new Error(`Unknown ${description} '${value}'.`);\n}\nexport {\n buildTypedRecord,\n defineTopologyManifest,\n expectTypedId,\n isTypedId\n};\n"],"mappings":";;;AACA,SAAS,uBAAuB,UAAU;AACxC,SAAO;AACT;AAGA,SAAS,iBAAiB,KAAK,SAAS;AACtC,QAAM,cAAc,OAAO,YAAY,aAAa,UAAU,MAAM;AACpE,SAAO,OAAO,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC;AAClE;AACA,SAAS,UAAU,KAAK,OAAO;AAC7B,SAAO,IAAI,SAAS,KAAK;AAC3B;AACA,SAAS,cAAc,KAAK,OAAO,aAAa;AAC9C,MAAI,UAAU,KAAK,KAAK,GAAG;AACzB,WAAO;AAAA,EACT;AACA,QAAM,IAAI,MAAM,WAAW,WAAW,KAAK,KAAK,IAAI;AACtD;","names":[]}
|
package/dist/ui/components.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
export { A as ActionButton, a as ActionButtonProps, b as ActionGroup, c as ActionGroupProps, d as ActionPanel, e as ActionPanelProps, C as CardDragSurface, g as CardDragSurfaceContextValue, h as CardDragSurfaceController, i as CardDragSurfaceProps, j as CardDropTargetView, k as CardDropTargetViewProps, l as CardFace, m as CardFaceProps, 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, 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, bl as TrackPiece, bm as TrackSpace, bp as ZoneDefinition, bq as ZoneHighlightType, br as ZoneMap, bs as ZoneMapProps, bt as ZonePiece, bu as ZoneShape, bB as toAlgebraic, bC as toNumeric, bD as useCardDragSurface, bE as useChromeSuppression } from '../components-
|
|
2
|
-
export { H as HandInteractionPolicy, b as HandLayoutKind, c as HandLayoutPolicy, d as HandView, e as HandViewProps } from '../HandView-
|
|
3
|
-
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-
|
|
4
|
-
export { D as DefaultHexEdge, g as DefaultHexEdgeProps, h as DefaultHexTile, i as DefaultHexTileProps, j as DefaultHexVertex, k as DefaultHexVertexProps, E as EdgePosition, r as HexBoardView, s as HexBoardViewTile, t as HexGrid, u as HexGridBoardProps, v as HexGridProps, w as HexOrientation, x as HexTileGeometry, y as InteractiveHexEdge, z as InteractiveHexVertex, J as InteractiveTargetLayer, K as InteractiveTargetRenderState,
|
|
5
|
-
export { HexEdgeState, HexTileState, HexVertexState, SquareCellState, SquareEdgeState, SquarePieceState, SquareVertexState } from './
|
|
6
|
-
export {
|
|
7
|
-
export { V as ViewSlotOccupant } from '../slots-1GPGihk8.js';
|
|
1
|
+
export { A as ActionButton, a as ActionButtonProps, b as ActionGroup, c as ActionGroupProps, d as ActionPanel, e as ActionPanelProps, C as CardDragSurface, g as CardDragSurfaceContextValue, h as CardDragSurfaceController, i as CardDragSurfaceProps, j as CardDropTargetView, k as CardDropTargetViewProps, l as CardFace, m as CardFaceProps, 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, 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, bl as TrackPiece, bm as TrackSpace, bp as ZoneDefinition, bq as ZoneHighlightType, br as ZoneMap, bs as ZoneMapProps, bt as ZonePiece, bu as ZoneShape, bB as toAlgebraic, bC as toNumeric, bD as useCardDragSurface, bE as useChromeSuppression } from '../components-DaIqi9QM.js';
|
|
2
|
+
export { H as HandInteractionPolicy, b as HandLayoutKind, c as HandLayoutPolicy, d as HandView, e as HandViewProps } from '../HandView-PYDmehVD.js';
|
|
3
|
+
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';
|
|
4
|
+
export { D as DefaultHexEdge, g as DefaultHexEdgeProps, h as DefaultHexTile, i as DefaultHexTileProps, j as DefaultHexVertex, k as DefaultHexVertexProps, E as EdgePosition, r as HexBoardView, s as HexBoardViewTile, t as HexGrid, u as HexGridBoardProps, v as HexGridProps, w as HexOrientation, x as HexTileGeometry, y as InteractiveHexEdge, z as InteractiveHexVertex, J as InteractiveTargetLayer, K as InteractiveTargetRenderState, a3 as createHexBoardView, a4 as hexUtils } from '../hex-board-view-UCUjMALd.js';
|
|
5
|
+
export { HexEdgeState, HexTileState, HexVertexState, SquareCellState, SquareEdgeState, SquarePieceState, SquareVertexState } from './player-state.js';
|
|
6
|
+
export { CardCollection, ViewCard, ViewSlotOccupant } from '../types.js';
|
|
8
7
|
import 'react/jsx-runtime';
|
|
9
8
|
import 'react';
|
|
10
9
|
import 'framer-motion';
|
|
@@ -12,5 +11,5 @@ import 'vaul';
|
|
|
12
11
|
import '@radix-ui/react-dialog';
|
|
13
12
|
import '@radix-ui/react-label';
|
|
14
13
|
import '@radix-ui/react-select';
|
|
15
|
-
import '../primitive-props-
|
|
14
|
+
import '../primitive-props-BNHDkgd7.js';
|
|
16
15
|
import '../hex-color-MhOyuY-o.js';
|
package/dist/ui/components.js
CHANGED
package/dist/ui/defaults.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { HTMLAttributes } from 'react';
|
|
3
|
-
import { P as PrimitiveCommonProps } from '../primitive-props-
|
|
3
|
+
import { P as PrimitiveCommonProps } from '../primitive-props-BNHDkgd7.js';
|
|
4
4
|
|
|
5
5
|
type LayoutPrimitiveProps = PrimitiveCommonProps & HTMLAttributes<HTMLElement>;
|
|
6
6
|
declare function GameLayoutRoot({ children, style, ...props }: LayoutPrimitiveProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { H as HexColor } from '
|
|
1
|
+
import { ViewCard } from '../types.js';
|
|
2
|
+
import { H as HexColor } from '../hex-color-MhOyuY-o.js';
|
|
3
3
|
|
|
4
4
|
type PlayerId = string;
|
|
5
5
|
type CardId = string;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { CSSProperties, ReactNode,
|
|
2
|
+
import { CSSProperties, ReactNode, HTMLAttributes, ButtonHTMLAttributes, InputHTMLAttributes, ReactElement } from 'react';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
import {
|
|
5
|
-
import { a as ThemePresetId } from './ThemeProvider-
|
|
6
|
-
import { a as InteractionDescriptor, Z as ZoneHandlesSnapshot, I as InputDomain, b as InteractionInputDescriptor } from './runtime-api-
|
|
7
|
-
import {
|
|
4
|
+
import { $ as Theme, a1 as ThemeOverride, L as InteractiveTargetState$1, A as AnyHexBoardInput, d as BoardSpaceIdOf, u as HexGridBoardProps, r as HexBoardView } from './hex-board-view-UCUjMALd.js';
|
|
5
|
+
import { a as ThemePresetId } from './ThemeProvider-DvMl17Ny.js';
|
|
6
|
+
import { a as InteractionDescriptor, Z as ZoneHandlesSnapshot, c as PluginSessionState, P as PlayerId, I as InputDomain, b as InteractionInputDescriptor } from './runtime-api-tGL3ArsB.js';
|
|
7
|
+
import { ViewCard } from './types.js';
|
|
8
|
+
import { P as PrimitiveCommonProps } from './primitive-props-BNHDkgd7.js';
|
|
8
9
|
import { j as BrowserInteractionAttributeMap } from './attributes-BeRyboMS.js';
|
|
9
|
-
import {
|
|
10
|
-
import { Player } from './ui/types/player-state.js';
|
|
10
|
+
import { Player } from './ui/player-state.js';
|
|
11
11
|
import { H as HexColor } from './hex-color-MhOyuY-o.js';
|
|
12
12
|
|
|
13
13
|
interface UIRootProps {
|
|
@@ -39,19 +39,6 @@ declare const UI: {
|
|
|
39
39
|
Root: typeof UIRoot;
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
type PrimitiveDataAttributes = Record<`data-${string}`, string | boolean | number | undefined>;
|
|
43
|
-
type PrimitiveCommonProps = {
|
|
44
|
-
asChild?: boolean;
|
|
45
|
-
children?: ReactNode;
|
|
46
|
-
className?: string;
|
|
47
|
-
style?: CSSProperties;
|
|
48
|
-
} & AriaAttributes & PrimitiveDataAttributes;
|
|
49
|
-
type EventHandler<Event> = (event: Event) => void;
|
|
50
|
-
declare function composeEventHandlers<Event extends {
|
|
51
|
-
defaultPrevented: boolean;
|
|
52
|
-
}>(authorHandler: EventHandler<Event> | undefined, primitiveHandler: EventHandler<Event> | undefined): EventHandler<Event> | undefined;
|
|
53
|
-
declare function renderPrimitive<ElementProps extends HTMLAttributes<HTMLElement>>(tagName: keyof JSX.IntrinsicElements, props: ElementProps & PrimitiveCommonProps): ReactElement;
|
|
54
|
-
|
|
55
42
|
interface ZoneContextValue {
|
|
56
43
|
zone: string;
|
|
57
44
|
snapshot: ZoneHandlesSnapshot | null;
|
|
@@ -197,21 +184,21 @@ declare const Zone: {
|
|
|
197
184
|
|
|
198
185
|
type BoardTargetKind = "edge" | "vertex" | "space" | "tile";
|
|
199
186
|
|
|
200
|
-
|
|
187
|
+
/**
|
|
188
|
+
* Runtime extension of the ui target-layer types. The base shapes and the
|
|
189
|
+
* render-state computation live in `src/ui/components/board/target-layer.ts`;
|
|
190
|
+
* this module only widens the per-target state with the interaction metadata
|
|
191
|
+
* the runtime layer attaches (interaction keys, conflict tracking, gameplay
|
|
192
|
+
* browser attributes).
|
|
193
|
+
*/
|
|
194
|
+
|
|
195
|
+
interface InteractiveTargetState extends InteractiveTargetState$1 {
|
|
201
196
|
kind?: BoardTargetKind;
|
|
202
|
-
id: string;
|
|
203
|
-
eligible: boolean;
|
|
204
|
-
selectable: boolean;
|
|
205
|
-
hovered: boolean;
|
|
206
197
|
interactionKey?: string;
|
|
207
198
|
interactionId?: string;
|
|
208
199
|
inputKey?: string;
|
|
209
|
-
pending: boolean;
|
|
210
|
-
conflict: boolean;
|
|
211
200
|
conflictInteractionKeys?: readonly string[];
|
|
212
|
-
unavailableReason?: string;
|
|
213
201
|
browserAttributes?: BrowserInteractionAttributeMap;
|
|
214
|
-
select?: () => unknown | Promise<unknown>;
|
|
215
202
|
}
|
|
216
203
|
interface InteractiveTargetLayer {
|
|
217
204
|
enabled?: boolean;
|
|
@@ -576,6 +563,122 @@ interface InteractionHandle<Params extends InteractionParamsShape = InteractionP
|
|
|
576
563
|
*/
|
|
577
564
|
declare function useInteractionHandle<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never>(descriptor: InteractionDescriptor): InteractionHandle<Params, DefaultedKeys>;
|
|
578
565
|
|
|
566
|
+
interface InteractionContextValue {
|
|
567
|
+
interaction: string;
|
|
568
|
+
descriptor: InteractionDescriptor | null;
|
|
569
|
+
handle: ReturnType<typeof useInteractionHandle> | null;
|
|
570
|
+
}
|
|
571
|
+
declare function useInteractionPrimitiveContext(): InteractionContextValue;
|
|
572
|
+
/**
|
|
573
|
+
* Live draft value for the active interaction's card-target input, resolved
|
|
574
|
+
* from the surrounding `<Interaction.Root>`. Returns the selected card-id array
|
|
575
|
+
* for `selection: "many"` inputs and the single id for `selection: "one"`.
|
|
576
|
+
* Returns `undefined` when there is no interaction context or no card-target
|
|
577
|
+
* input (so it is safe to render outside a root). Reactive: `handle.values`
|
|
578
|
+
* updates as the draft changes. Backs the card surface `slot.card.Value`.
|
|
579
|
+
*/
|
|
580
|
+
declare function useResolvedCardTargetValue(): unknown;
|
|
581
|
+
interface InteractionRootProps<Interaction extends string = InteractionKey> {
|
|
582
|
+
interaction: Interaction;
|
|
583
|
+
children: ReactNode;
|
|
584
|
+
unavailable?: "render" | "hide";
|
|
585
|
+
}
|
|
586
|
+
declare function InteractionRoot<Interaction extends string = InteractionKey>({ interaction, children, unavailable, }: InteractionRootProps<Interaction>): react_jsx_runtime.JSX.Element | null;
|
|
587
|
+
|
|
588
|
+
interface InteractionStateSnapshot<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never> {
|
|
589
|
+
interaction: string;
|
|
590
|
+
descriptor: InteractionDescriptor;
|
|
591
|
+
handle: InteractionHandle<Params, DefaultedKeys>;
|
|
592
|
+
draft: InteractionHandle<Params, DefaultedKeys>["draft"];
|
|
593
|
+
values: InteractionHandle<Params, DefaultedKeys>["values"];
|
|
594
|
+
status: InteractionHandle<Params, DefaultedKeys>["status"];
|
|
595
|
+
available: boolean;
|
|
596
|
+
isReady: boolean;
|
|
597
|
+
isArmed: boolean;
|
|
598
|
+
inputKeys: readonly string[];
|
|
599
|
+
missingInputs: readonly string[];
|
|
600
|
+
readyFrontier: readonly string[];
|
|
601
|
+
blockedInputs: readonly string[];
|
|
602
|
+
hasInputs: boolean;
|
|
603
|
+
}
|
|
604
|
+
interface InteractionStateProps<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never> {
|
|
605
|
+
unavailable: ReactNode;
|
|
606
|
+
children: (state: InteractionStateSnapshot<Params, DefaultedKeys>) => ReactNode;
|
|
607
|
+
}
|
|
608
|
+
declare function InteractionState<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never>({ children, unavailable }: InteractionStateProps<Params, DefaultedKeys>): react_jsx_runtime.JSX.Element;
|
|
609
|
+
|
|
610
|
+
interface InteractionSwitchRenderState<Interaction extends string = InteractionKey> {
|
|
611
|
+
interaction: Interaction;
|
|
612
|
+
descriptor: InteractionDescriptor<Interaction>;
|
|
613
|
+
}
|
|
614
|
+
type InteractionSwitchRouteMap<Interaction extends string = InteractionKey> = {
|
|
615
|
+
[Key in Interaction]?: (state: InteractionSwitchRenderState<Key>) => ReactNode;
|
|
616
|
+
};
|
|
617
|
+
interface InteractionRoute {
|
|
618
|
+
readonly collect: Record<string, unknown>;
|
|
619
|
+
}
|
|
620
|
+
type InteractionRoutesMap<Interaction extends string = InteractionKey> = {
|
|
621
|
+
[Key in Interaction]: InteractionRoute;
|
|
622
|
+
};
|
|
623
|
+
interface InteractionSwitchProps<Interaction extends string = InteractionKey> {
|
|
624
|
+
interaction?: Interaction;
|
|
625
|
+
routes: InteractionSwitchRouteMap<Interaction>;
|
|
626
|
+
fallback?: ReactNode;
|
|
627
|
+
}
|
|
628
|
+
declare function InteractionSwitch<Interaction extends string = InteractionKey>({ interaction, routes, fallback, }: InteractionSwitchProps<Interaction>): react_jsx_runtime.JSX.Element;
|
|
629
|
+
interface InteractionRoutesProps<Interaction extends string = InteractionKey> {
|
|
630
|
+
routes: InteractionRoutesMap<Interaction>;
|
|
631
|
+
fallback?: ReactNode;
|
|
632
|
+
includeUnavailable?: boolean | null;
|
|
633
|
+
}
|
|
634
|
+
declare function InteractionRoutes<Interaction extends string = InteractionKey>({ routes, fallback, includeUnavailable, }: InteractionRoutesProps<Interaction>): react_jsx_runtime.JSX.Element | null;
|
|
635
|
+
|
|
636
|
+
type DialogLifecycleState = "open" | "minimized" | "dismissed";
|
|
637
|
+
|
|
638
|
+
type InteractionDialogState = DialogLifecycleState;
|
|
639
|
+
interface InteractionDialogRenderState<Interaction extends string = InteractionKey> {
|
|
640
|
+
interaction: Interaction;
|
|
641
|
+
state: InteractionDialogState;
|
|
642
|
+
open: boolean;
|
|
643
|
+
minimized: boolean;
|
|
644
|
+
dismissed: boolean;
|
|
645
|
+
setOpen: (open: boolean) => void;
|
|
646
|
+
restore: () => void;
|
|
647
|
+
minimize: () => void;
|
|
648
|
+
dismiss: () => void;
|
|
649
|
+
}
|
|
650
|
+
interface InteractionDialogProps<Interaction extends string = InteractionKey> {
|
|
651
|
+
defaultOpen?: boolean;
|
|
652
|
+
onStateChange?: (state: InteractionDialogState) => void;
|
|
653
|
+
children: (state: InteractionDialogRenderState<Interaction>) => ReactNode;
|
|
654
|
+
}
|
|
655
|
+
declare function InteractionDialog<Interaction extends string = InteractionKey>({ defaultOpen, onStateChange, children, }: InteractionDialogProps<Interaction>): react_jsx_runtime.JSX.Element;
|
|
656
|
+
|
|
657
|
+
interface InteractionSubmitCallbacks {
|
|
658
|
+
onSubmitSuccess?: () => void;
|
|
659
|
+
onSubmitError?: (error: unknown) => void;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
type InteractionTriggerProps = PrimitiveCommonProps & ButtonHTMLAttributes<HTMLButtonElement>;
|
|
663
|
+
declare function InteractionTrigger({ disabled, onClick, ...props }: InteractionTriggerProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
664
|
+
type InteractionSubmitProps = PrimitiveCommonProps & ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
665
|
+
params?: InteractionParamsShape | (() => InteractionParamsShape | null | undefined);
|
|
666
|
+
onSubmitSuccess?: InteractionSubmitCallbacks["onSubmitSuccess"];
|
|
667
|
+
onSubmitError?: InteractionSubmitCallbacks["onSubmitError"];
|
|
668
|
+
};
|
|
669
|
+
declare function InteractionSubmit({ disabled, onClick, params, onSubmitSuccess, onSubmitError, ...props }: InteractionSubmitProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
670
|
+
type InteractionInputProps = PrimitiveCommonProps & Omit<InputHTMLAttributes<HTMLInputElement>, "name"> & {
|
|
671
|
+
name: string;
|
|
672
|
+
parse?: (value: string) => unknown;
|
|
673
|
+
};
|
|
674
|
+
declare function InteractionInput({ name, parse, onChange, disabled, ...props }: InteractionInputProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
675
|
+
|
|
676
|
+
type InteractionPartProps = PrimitiveCommonProps & HTMLAttributes<HTMLElement>;
|
|
677
|
+
declare function InteractionLabel({ children, ...props }: InteractionPartProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
678
|
+
declare function InteractionDescription({ children, ...props }: InteractionPartProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
|
|
679
|
+
declare function InteractionUnavailableMessage({ children, ...props }: InteractionPartProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
|
|
680
|
+
declare function InteractionValidationMessage({ children, ...props }: InteractionPartProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
|
|
681
|
+
|
|
579
682
|
interface InteractionFieldRenderProps<Params extends InteractionParamsShape = InteractionParamsShape, Key extends keyof Params & string = keyof Params & string> {
|
|
580
683
|
descriptor: InteractionDescriptor;
|
|
581
684
|
input: InteractionInputDescriptor & {
|
|
@@ -592,6 +695,25 @@ interface InteractionFieldRenderProps<Params extends InteractionParamsShape = In
|
|
|
592
695
|
type InteractionFieldRenderMap<Params extends InteractionParamsShape = InteractionParamsShape> = Partial<{
|
|
593
696
|
[K in keyof Params & string]: (props: InteractionFieldRenderProps<Params, K>) => ReactNode;
|
|
594
697
|
}>;
|
|
698
|
+
interface InteractionFieldProps<Params extends InteractionParamsShape = InteractionParamsShape, Key extends keyof Params & string = keyof Params & string> {
|
|
699
|
+
descriptor: InteractionDescriptor;
|
|
700
|
+
inputKey: Key;
|
|
701
|
+
handle: InteractionHandle<Params>;
|
|
702
|
+
errors?: readonly string[];
|
|
703
|
+
missing?: boolean;
|
|
704
|
+
disabled?: boolean;
|
|
705
|
+
render?: InteractionFieldRenderMap<Params>[Key];
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
/**
|
|
709
|
+
* Headless input-slot factory for the interaction form: the slot prop types
|
|
710
|
+
* and `createInteractionInputSlot`, which builds the
|
|
711
|
+
* `Field`/`Default`/`Target`/`Card`/`Cards`/`Options`/`Value`/`Label`/`Message`
|
|
712
|
+
* render surface (plus its shared `targetButton` helper) for a single input.
|
|
713
|
+
*
|
|
714
|
+
* Moved verbatim from `../InteractionForm.tsx`.
|
|
715
|
+
*/
|
|
716
|
+
|
|
595
717
|
interface InteractionSlotComponentProps {
|
|
596
718
|
children?: ReactNode;
|
|
597
719
|
}
|
|
@@ -629,15 +751,7 @@ type InteractionInputRenderMap = Record<string, (slot: InteractionInputSlot) =>
|
|
|
629
751
|
interface InteractionSubmitSlot {
|
|
630
752
|
Button: (props: InteractionButtonSlotProps) => ReactNode;
|
|
631
753
|
}
|
|
632
|
-
|
|
633
|
-
descriptor: InteractionDescriptor;
|
|
634
|
-
inputKey: Key;
|
|
635
|
-
handle: InteractionHandle<Params>;
|
|
636
|
-
errors?: readonly string[];
|
|
637
|
-
missing?: boolean;
|
|
638
|
-
disabled?: boolean;
|
|
639
|
-
render?: InteractionFieldRenderMap<Params>[Key];
|
|
640
|
-
}
|
|
754
|
+
|
|
641
755
|
interface InteractionFormProps<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never> {
|
|
642
756
|
descriptor: InteractionDescriptor;
|
|
643
757
|
handle: InteractionHandle<Params, DefaultedKeys>;
|
|
@@ -659,123 +773,13 @@ interface InteractionFormProps<Params extends InteractionParamsShape = Interacti
|
|
|
659
773
|
}
|
|
660
774
|
|
|
661
775
|
type BoundInteractionFormProps<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never> = Omit<InteractionFormProps<Params, DefaultedKeys>, "descriptor" | "handle">;
|
|
662
|
-
|
|
663
|
-
interface InteractionSubmitCallbacks {
|
|
664
|
-
onSubmitSuccess?: () => void;
|
|
665
|
-
onSubmitError?: (error: unknown) => void;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
type DialogLifecycleState = "open" | "minimized" | "dismissed";
|
|
669
|
-
|
|
670
|
-
interface InteractionContextValue {
|
|
671
|
-
interaction: string;
|
|
672
|
-
descriptor: InteractionDescriptor | null;
|
|
673
|
-
handle: ReturnType<typeof useInteractionHandle> | null;
|
|
674
|
-
}
|
|
675
|
-
declare function useInteractionPrimitiveContext(): InteractionContextValue;
|
|
676
|
-
/**
|
|
677
|
-
* Live draft value for the active interaction's card-target input, resolved
|
|
678
|
-
* from the surrounding `<Interaction.Root>`. Returns the selected card-id array
|
|
679
|
-
* for `selection: "many"` inputs and the single id for `selection: "one"`.
|
|
680
|
-
* Returns `undefined` when there is no interaction context or no card-target
|
|
681
|
-
* input (so it is safe to render outside a root). Reactive: `handle.values`
|
|
682
|
-
* updates as the draft changes. Backs the card surface `slot.card.Value`.
|
|
683
|
-
*/
|
|
684
|
-
declare function useResolvedCardTargetValue(): unknown;
|
|
685
|
-
interface InteractionRootProps<Interaction extends string = InteractionKey> {
|
|
686
|
-
interaction: Interaction;
|
|
687
|
-
children: ReactNode;
|
|
688
|
-
unavailable?: "render" | "hide";
|
|
689
|
-
}
|
|
690
|
-
declare function InteractionRoot<Interaction extends string = InteractionKey>({ interaction, children, unavailable, }: InteractionRootProps<Interaction>): react_jsx_runtime.JSX.Element | null;
|
|
691
|
-
type InteractionDialogState = DialogLifecycleState;
|
|
692
|
-
interface InteractionDialogRenderState<Interaction extends string = InteractionKey> {
|
|
693
|
-
interaction: Interaction;
|
|
694
|
-
state: InteractionDialogState;
|
|
695
|
-
open: boolean;
|
|
696
|
-
minimized: boolean;
|
|
697
|
-
dismissed: boolean;
|
|
698
|
-
setOpen: (open: boolean) => void;
|
|
699
|
-
restore: () => void;
|
|
700
|
-
minimize: () => void;
|
|
701
|
-
dismiss: () => void;
|
|
702
|
-
}
|
|
703
|
-
interface InteractionDialogProps<Interaction extends string = InteractionKey> {
|
|
704
|
-
defaultOpen?: boolean;
|
|
705
|
-
onStateChange?: (state: InteractionDialogState) => void;
|
|
706
|
-
children: (state: InteractionDialogRenderState<Interaction>) => ReactNode;
|
|
707
|
-
}
|
|
708
|
-
declare function InteractionDialog<Interaction extends string = InteractionKey>({ defaultOpen, onStateChange, children, }: InteractionDialogProps<Interaction>): react_jsx_runtime.JSX.Element;
|
|
709
|
-
interface InteractionSwitchRenderState<Interaction extends string = InteractionKey> {
|
|
710
|
-
interaction: Interaction;
|
|
711
|
-
descriptor: InteractionDescriptor<Interaction>;
|
|
712
|
-
}
|
|
713
|
-
type InteractionSwitchRouteMap<Interaction extends string = InteractionKey> = {
|
|
714
|
-
[Key in Interaction]?: (state: InteractionSwitchRenderState<Key>) => ReactNode;
|
|
715
|
-
};
|
|
716
|
-
interface InteractionRoute {
|
|
717
|
-
readonly collect: Record<string, unknown>;
|
|
718
|
-
}
|
|
719
|
-
type InteractionRoutesMap<Interaction extends string = InteractionKey> = {
|
|
720
|
-
[Key in Interaction]: InteractionRoute;
|
|
721
|
-
};
|
|
722
|
-
interface InteractionSwitchProps<Interaction extends string = InteractionKey> {
|
|
723
|
-
interaction?: Interaction;
|
|
724
|
-
routes: InteractionSwitchRouteMap<Interaction>;
|
|
725
|
-
fallback?: ReactNode;
|
|
726
|
-
}
|
|
727
|
-
declare function InteractionSwitch<Interaction extends string = InteractionKey>({ interaction, routes, fallback, }: InteractionSwitchProps<Interaction>): react_jsx_runtime.JSX.Element;
|
|
728
|
-
interface InteractionRoutesProps<Interaction extends string = InteractionKey> {
|
|
729
|
-
routes: InteractionRoutesMap<Interaction>;
|
|
730
|
-
fallback?: ReactNode;
|
|
731
|
-
includeUnavailable?: boolean | null;
|
|
732
|
-
}
|
|
733
|
-
declare function InteractionRoutes<Interaction extends string = InteractionKey>({ routes, fallback, includeUnavailable, }: InteractionRoutesProps<Interaction>): react_jsx_runtime.JSX.Element | null;
|
|
734
|
-
type InteractionPartProps = PrimitiveCommonProps & HTMLAttributes<HTMLElement>;
|
|
735
|
-
declare function InteractionLabel({ children, ...props }: InteractionPartProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
736
|
-
declare function InteractionDescription({ children, ...props }: InteractionPartProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
|
|
737
|
-
declare function InteractionUnavailableMessage({ children, ...props }: InteractionPartProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
|
|
738
|
-
declare function InteractionValidationMessage({ children, ...props }: InteractionPartProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
|
|
739
|
-
type InteractionTriggerProps = PrimitiveCommonProps & ButtonHTMLAttributes<HTMLButtonElement>;
|
|
740
|
-
declare function InteractionTrigger({ disabled, onClick, ...props }: InteractionTriggerProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
741
|
-
interface InteractionStateSnapshot<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never> {
|
|
742
|
-
interaction: string;
|
|
743
|
-
descriptor: InteractionDescriptor;
|
|
744
|
-
handle: InteractionHandle<Params, DefaultedKeys>;
|
|
745
|
-
draft: InteractionHandle<Params, DefaultedKeys>["draft"];
|
|
746
|
-
values: InteractionHandle<Params, DefaultedKeys>["values"];
|
|
747
|
-
status: InteractionHandle<Params, DefaultedKeys>["status"];
|
|
748
|
-
available: boolean;
|
|
749
|
-
isReady: boolean;
|
|
750
|
-
isArmed: boolean;
|
|
751
|
-
inputKeys: readonly string[];
|
|
752
|
-
missingInputs: readonly string[];
|
|
753
|
-
readyFrontier: readonly string[];
|
|
754
|
-
blockedInputs: readonly string[];
|
|
755
|
-
hasInputs: boolean;
|
|
756
|
-
}
|
|
757
|
-
interface InteractionStateProps<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never> {
|
|
758
|
-
unavailable: ReactNode;
|
|
759
|
-
children: (state: InteractionStateSnapshot<Params, DefaultedKeys>) => ReactNode;
|
|
760
|
-
}
|
|
761
|
-
declare function InteractionState<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never>({ children, unavailable }: InteractionStateProps<Params, DefaultedKeys>): react_jsx_runtime.JSX.Element;
|
|
762
776
|
type InteractionFormPrimitiveProps<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never> = BoundInteractionFormProps<Params, DefaultedKeys>;
|
|
763
777
|
declare function InteractionFormPrimitive<Params extends InteractionParamsShape = InteractionParamsShape, DefaultedKeys extends keyof Params & string = never>(props: InteractionFormPrimitiveProps<Params, DefaultedKeys>): react_jsx_runtime.JSX.Element | null;
|
|
764
778
|
type InteractionFieldPrimitiveProps<Params extends InteractionParamsShape = InteractionParamsShape, Input extends keyof Params & string = keyof Params & string> = Omit<InteractionFieldProps<Params, Input>, "descriptor" | "handle" | "inputKey"> & {
|
|
765
779
|
input: Input;
|
|
766
780
|
};
|
|
767
781
|
declare function InteractionFieldPrimitive<Params extends InteractionParamsShape = InteractionParamsShape, Input extends keyof Params & string = keyof Params & string>({ input, ...props }: InteractionFieldPrimitiveProps<Params, Input>): react_jsx_runtime.JSX.Element | null;
|
|
768
|
-
|
|
769
|
-
params?: InteractionParamsShape | (() => InteractionParamsShape | null | undefined);
|
|
770
|
-
onSubmitSuccess?: InteractionSubmitCallbacks["onSubmitSuccess"];
|
|
771
|
-
onSubmitError?: InteractionSubmitCallbacks["onSubmitError"];
|
|
772
|
-
};
|
|
773
|
-
declare function InteractionSubmit({ disabled, onClick, params, onSubmitSuccess, onSubmitError, ...props }: InteractionSubmitProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
774
|
-
type InteractionInputProps = PrimitiveCommonProps & Omit<InputHTMLAttributes<HTMLInputElement>, "name"> & {
|
|
775
|
-
name: string;
|
|
776
|
-
parse?: (value: string) => unknown;
|
|
777
|
-
};
|
|
778
|
-
declare function InteractionInput({ name, parse, onChange, disabled, ...props }: InteractionInputProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
782
|
+
|
|
779
783
|
type InteractionCardInputProps<Input extends string = InteractionInputKey> = PrimitiveCommonProps & Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
|
|
780
784
|
input: Input;
|
|
781
785
|
unsafeCardId?: string;
|
|
@@ -795,6 +799,7 @@ interface InteractionCardInputRenderState {
|
|
|
795
799
|
invalid: boolean;
|
|
796
800
|
}
|
|
797
801
|
declare function InteractionCardInput<Input extends string = InteractionInputKey>({ input, unsafeCardId, selected, onSelectedChange, onClick, disabled, children, ...props }: InteractionCardInputProps<Input>): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
802
|
+
|
|
798
803
|
declare const Interaction: {
|
|
799
804
|
Root: typeof InteractionRoot;
|
|
800
805
|
State: typeof InteractionState;
|
|
@@ -1160,4 +1165,4 @@ interface DreamboardUI<Contract extends UIContract = RegisteredUI> {
|
|
|
1160
1165
|
readonly Board: TypedBoard<Contract>;
|
|
1161
1166
|
}
|
|
1162
1167
|
|
|
1163
|
-
export { InteractionFormPrimitive as $, type DreamboardUI as A, Board as B, type GameActiveActionState as C, Dice as D, GameChrome as E, type GameChromeProps as F, Game as G, type GameChromeState as H, type GameMeState as I, type GamePendingInputState as J, type GamePlayer as K, type GamePlayerEntry as L, type GamePlayersState as M, type GameRenderState as N, GameRoot as O, type GameRootProps as P, type GameTurnState as Q, Interaction as R, InteractionCardInput as S, type InteractionCardInputProps as T, type InteractionCardInputRenderState as U, InteractionDescription as V, InteractionDialog as W, type InteractionDialogProps as X, type InteractionDialogRenderState as Y, type InteractionDialogState as Z, type InteractionFieldPrimitiveProps as _, BoardEdgeTarget as a, type
|
|
1168
|
+
export { InteractionFormPrimitive as $, type DreamboardUI as A, Board as B, type GameActiveActionState as C, Dice as D, GameChrome as E, type GameChromeProps as F, Game as G, type GameChromeState as H, type GameMeState as I, type GamePendingInputState as J, type GamePlayer as K, type GamePlayerEntry as L, type GamePlayersState as M, type GameRenderState as N, GameRoot as O, type GameRootProps as P, type GameTurnState as Q, Interaction as R, InteractionCardInput as S, type InteractionCardInputProps as T, type InteractionCardInputRenderState as U, InteractionDescription as V, InteractionDialog as W, type InteractionDialogProps as X, type InteractionDialogRenderState as Y, type InteractionDialogState as Z, type InteractionFieldPrimitiveProps as _, BoardEdgeTarget as a, type TypedGame as a$, type InteractionFormPrimitiveProps as a0, InteractionInput as a1, type InteractionInputProps as a2, InteractionLabel as a3, type InteractionPartProps as a4, InteractionRoot as a5, type InteractionRootProps as a6, type InteractionRoute as a7, InteractionRoutes as a8, type InteractionRoutesMap as a9, type PlayerRosterListProps as aA, PlayerRosterName as aB, type PlayerRosterPartProps as aC, PlayerRosterRoot as aD, type PlayerRosterRootProps as aE, PlayerRosterScore as aF, PlayerRosterSwitchButton as aG, type PlayerRosterSwitchButtonProps as aH, Prompt as aI, PromptDialog as aJ, type PromptDialogProps as aK, type PromptDialogRenderState as aL, type PromptDialogState as aM, PromptInbox as aN, PromptInboxEmpty as aO, PromptInboxItems as aP, type PromptInboxItemsProps as aQ, PromptInboxRoot as aR, PromptMessage as aS, PromptOption as aT, type PromptOptionProps as aU, type PromptOptionRenderItem as aV, PromptOptions as aW, type PromptOptionsProps as aX, PromptRoot as aY, type PromptRootProps as aZ, PromptTitle as a_, type InteractionRoutesProps as aa, InteractionState as ab, type InteractionStateProps as ac, type InteractionStateSnapshot as ad, InteractionSubmit as ae, type InteractionSubmitProps as af, InteractionSwitch as ag, type InteractionSwitchProps as ah, type InteractionSwitchRenderState as ai, type InteractionSwitchRouteMap as aj, InteractionTrigger as ak, type InteractionTriggerProps as al, InteractionUnavailableMessage as am, InteractionValidationMessage as an, Phase as ao, type PhaseFallback as ap, type PhaseRouteMap as aq, PhaseSwitch as ar, type PhaseSwitchProps as as, PlayerRoster as at, type PlayerRosterBadge as au, PlayerRosterBadges as av, type PlayerRosterComponents as aw, PlayerRosterEmpty as ax, type PlayerRosterEntry as ay, PlayerRosterList as az, type BoardEdgeTargetProps as b, UI as b0, type UIContract as b1, UIRoot as b2, type UIRootProps as b3, type UseZoneCardsOptions as b4, type UseZoneCardsResult as b5, Zone as b6, ZoneCardAction as b7, type ZoneCardActionExtraInputs as b8, type ZoneCardActionProps as b9, normalizeDiceState as bA, useBoardPrimitiveContext as bB, useDicePrimitiveContext as bC, useGameActionError as bD, useInteractionPrimitiveContext as bE, useOptionalZonePrimitiveContext as bF, useResolvedCardTargetValue as bG, useZoneCardContext as bH, useZoneCards as bI, useZonePileContext as bJ, useZonePrimitiveContext as bK, type ZoneCardActionResult as ba, ZoneCardAt as bb, type ZoneCardAtProps as bc, type ZoneCardRenderItem as bd, ZoneItem as be, type ZoneItemProps as bf, ZoneList as bg, type ZoneListProps as bh, ZonePileCards as bi, type ZonePileCardsProps as bj, type ZonePileContextValue as bk, ZonePileCount as bl, type ZonePileCountProps as bm, ZonePileDescription as bn, type ZonePileDescriptionProps as bo, ZonePileLabel as bp, type ZonePileLabelProps as bq, ZonePileRoot as br, type ZonePileRootProps as bs, ZonePileTrigger as bt, type ZonePileTriggerProps as bu, ZoneRoot as bv, type ZoneRootProps as bw, ZoneTopCard as bx, type ZoneTopCardProps as by, createZoneCardRenderItem as bz, BoardHexGrid as c, type BoardHexGridInteractionFilter as d, type BoardHexGridInteractions as e, type BoardHexGridProps as f, BoardHexView as g, type BoardHexViewProps as h, BoardRoot as i, type BoardRootProps as j, BoardSpaceTarget as k, type BoardSpaceTargetProps as l, BoardState as m, type BoardStateProps as n, BoardTarget as o, type BoardTargetExtraInputs as p, type BoardTargetProps as q, BoardVertexTarget as r, type BoardVertexTargetProps as s, type DiceComponents as t, DiceRoot as u, type DiceRootProps as v, type DiceState as w, type DiceValue as x, DiceValues as y, type DiceValuesProps as z };
|