@dreamboard-games/sdk 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +96 -0
- package/README.md +12 -0
- package/dist/HandView-ncJIVLhN.d.ts +193 -0
- package/dist/ResourceCounter-CTREyF73.d.ts +102 -0
- package/dist/ThemeProvider-fy0_QzgO.d.ts +99 -0
- package/dist/bundle-TIZcw8LB.d.ts +281 -0
- package/dist/cards-Sl3b40Mv.d.ts +13 -0
- package/dist/chunk-7YAHLYBR.js +481 -0
- package/dist/chunk-7YAHLYBR.js.map +1 -0
- package/dist/chunk-FDNZTDD6.js +8085 -0
- package/dist/chunk-FDNZTDD6.js.map +1 -0
- package/dist/chunk-GKKBPPSW.js +598 -0
- package/dist/chunk-GKKBPPSW.js.map +1 -0
- package/dist/chunk-I46YJSOD.js +1 -0
- package/dist/chunk-I46YJSOD.js.map +1 -0
- package/dist/chunk-KAELH4KC.js +104 -0
- package/dist/chunk-KAELH4KC.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/chunk-T3ZKNUZ7.js +1 -0
- package/dist/chunk-T3ZKNUZ7.js.map +1 -0
- package/dist/chunk-T52J5RMF.js +1 -0
- package/dist/chunk-T52J5RMF.js.map +1 -0
- package/dist/chunk-TDSWKVZ4.js +5401 -0
- package/dist/chunk-TDSWKVZ4.js.map +1 -0
- package/dist/chunk-U5C6BONG.js +34 -0
- package/dist/chunk-U5C6BONG.js.map +1 -0
- package/dist/chunk-VDXOF4FW.js +69 -0
- package/dist/chunk-VDXOF4FW.js.map +1 -0
- package/dist/chunk-VFTAA4WO.js +115 -0
- package/dist/chunk-VFTAA4WO.js.map +1 -0
- package/dist/chunk-WN74KVNY.js +17 -0
- package/dist/chunk-WN74KVNY.js.map +1 -0
- package/dist/chunk-WYPQ3GG5.js +10990 -0
- package/dist/chunk-WYPQ3GG5.js.map +1 -0
- package/dist/components-D5ZRE2Hl.d.ts +1451 -0
- package/dist/generated/runtime/primitives.d.ts +12 -0
- package/dist/generated/runtime/primitives.js +180 -0
- package/dist/generated/runtime/primitives.js.map +1 -0
- package/dist/generated/runtime-api.d.ts +3 -0
- package/dist/generated/runtime-api.js +2 -0
- package/dist/generated/runtime-api.js.map +1 -0
- package/dist/generated/runtime.d.ts +14 -0
- package/dist/generated/runtime.js +18 -0
- package/dist/generated/runtime.js.map +1 -0
- package/dist/generated/workspace-contract.d.ts +14 -0
- package/dist/generated/workspace-contract.js +14 -0
- package/dist/generated/workspace-contract.js.map +1 -0
- package/dist/hex-board-view-D_07hO6O.d.ts +933 -0
- package/dist/hex-color-MhOyuY-o.d.ts +8 -0
- package/dist/index-BwqPQtBu.d.ts +1433 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/reducer-bundle-abi.d.ts +1083 -0
- package/dist/infrastructure/reducer-bundle-abi.js +14 -0
- package/dist/infrastructure/reducer-bundle-abi.js.map +1 -0
- package/dist/infrastructure/workspace-codegen.d.ts +53 -0
- package/dist/infrastructure/workspace-codegen.js +44 -0
- package/dist/infrastructure/workspace-codegen.js.map +1 -0
- package/dist/manifest-contract-BNHVGFtU.d.ts +9 -0
- package/dist/package-set.d.ts +13 -0
- package/dist/package-set.js +12 -0
- package/dist/package-set.js.map +1 -0
- package/dist/primitive-props-DpKs-GCr.d.ts +11 -0
- package/dist/reducer.d.ts +3786 -0
- package/dist/reducer.js +8131 -0
- package/dist/reducer.js.map +1 -0
- package/dist/runtime/primitives.d.ts +226 -0
- package/dist/runtime/primitives.js +180 -0
- package/dist/runtime/primitives.js.map +1 -0
- package/dist/runtime/types/runtime-api.d.ts +1 -0
- package/dist/runtime/types/runtime-api.js +2 -0
- package/dist/runtime/types/runtime-api.js.map +1 -0
- package/dist/runtime/workspace-contract.d.ts +172 -0
- package/dist/runtime/workspace-contract.js +14 -0
- package/dist/runtime/workspace-contract.js.map +1 -0
- package/dist/runtime-api-3dshj6kK.d.ts +101 -0
- package/dist/runtime-api-DWxvTr-O.d.ts +379 -0
- package/dist/runtime.d.ts +58 -0
- package/dist/runtime.js +13 -0
- package/dist/runtime.js.map +1 -0
- package/dist/slots-1GPGihk8.d.ts +8 -0
- package/dist/testing.d.ts +149 -0
- package/dist/testing.js +513 -0
- package/dist/testing.js.map +1 -0
- package/dist/types.d.ts +496 -0
- package/dist/types.js +28 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/components.d.ts +16 -0
- package/dist/ui/components.js +192 -0
- package/dist/ui/components.js.map +1 -0
- package/dist/ui/defaults.d.ts +19 -0
- package/dist/ui/defaults.js +104 -0
- package/dist/ui/defaults.js.map +1 -0
- package/dist/ui/plugin-styles.css +250 -0
- package/dist/ui/types/player-state.d.ts +365 -0
- package/dist/ui/types/player-state.js +1 -0
- package/dist/ui/types/player-state.js.map +1 -0
- package/dist/ui-contract-iQfTtUSL.d.ts +1161 -0
- package/dist/ui.d.ts +320 -0
- package/dist/ui.js +253 -0
- package/dist/ui.js.map +1 -0
- package/package.json +199 -0
- package/src/generated/reducer-contract/builders.ts +90 -0
- package/src/generated/reducer-contract/version.ts +9 -0
- package/src/generated/reducer-contract/wire.ts +100 -0
- package/src/generated/reducer-contract/zod.ts +101 -0
- package/src/generated/runtime/primitives.ts +2 -0
- package/src/generated/runtime-api.ts +5 -0
- package/src/generated/runtime.ts +35 -0
- package/src/generated/workspace-contract.ts +2 -0
- package/src/index.ts +7 -0
- package/src/infrastructure/reducer-bundle-abi.ts +8 -0
- package/src/infrastructure/reducer-contract/bundle.ts +37 -0
- package/src/infrastructure/workspace-codegen/hex-geometry.ts +69 -0
- package/src/infrastructure/workspace-codegen/index.ts +64 -0
- package/src/infrastructure/workspace-codegen/manifest-contract.ts +6632 -0
- package/src/infrastructure/workspace-codegen/manifest-validation.ts +795 -0
- package/src/infrastructure/workspace-codegen/ownership.ts +131 -0
- package/src/infrastructure/workspace-codegen/preset-card-sets.ts +169 -0
- package/src/infrastructure/workspace-codegen/seeds.ts +1705 -0
- package/src/infrastructure/workspace-codegen.ts +1 -0
- package/src/package-set.ts +19 -0
- package/src/reducer/authoring/contract.ts +157 -0
- package/src/reducer/authoring/effect.ts +224 -0
- package/src/reducer/authoring/game.ts +23 -0
- package/src/reducer/authoring/interaction.ts +98 -0
- package/src/reducer/authoring/phase.ts +300 -0
- package/src/reducer/authoring/types.ts +70 -0
- package/src/reducer/authoring/validation.ts +382 -0
- package/src/reducer/authoring/view-stage.ts +68 -0
- package/src/reducer/authoring.ts +29 -0
- package/src/reducer/bundle/ingress-bundle.ts +491 -0
- package/src/reducer/bundle/trusted/engine-instruction-resolver.ts +254 -0
- package/src/reducer/bundle/trusted/flow-instruction-resolver.ts +73 -0
- package/src/reducer/bundle/trusted/instruction-runner.ts +414 -0
- package/src/reducer/bundle/trusted/interaction-authorization.ts +137 -0
- package/src/reducer/bundle/trusted/interaction-collectors.ts +859 -0
- package/src/reducer/bundle/trusted/interaction-decision.ts +747 -0
- package/src/reducer/bundle/trusted/interaction-resolver.ts +95 -0
- package/src/reducer/bundle/trusted/interaction-types.ts +171 -0
- package/src/reducer/bundle/trusted/lifecycle-runner.ts +427 -0
- package/src/reducer/bundle/trusted/projection-builder.ts +356 -0
- package/src/reducer/bundle/trusted/projection-context.ts +39 -0
- package/src/reducer/bundle/trusted/rng-sampler.ts +150 -0
- package/src/reducer/bundle/trusted/runtime-registry.ts +120 -0
- package/src/reducer/bundle/trusted/runtime-scope.ts +336 -0
- package/src/reducer/bundle/trusted/simultaneous-player.ts +97 -0
- package/src/reducer/bundle/trusted/stage-resolver.ts +87 -0
- package/src/reducer/bundle/trusted/static-projection.ts +116 -0
- package/src/reducer/bundle/trusted/trusted-runtime-args.ts +97 -0
- package/src/reducer/bundle/trusted/trusted-runtime-result.ts +39 -0
- package/src/reducer/bundle/trusted/trusted-setup-profiles.ts +43 -0
- package/src/reducer/bundle/trusted/trusted-state-codec.ts +48 -0
- package/src/reducer/bundle/trusted-bundle.ts +97 -0
- package/src/reducer/bundle/types.ts +171 -0
- package/src/reducer/bundle.ts +2 -0
- package/src/reducer/client-param-schemas.ts +57 -0
- package/src/reducer/compose.ts +34 -0
- package/src/reducer/core/runtime-input.ts +30 -0
- package/src/reducer/core/runtime-instruction.ts +59 -0
- package/src/reducer/core/types.ts +62 -0
- package/src/reducer/definition-index.ts +277 -0
- package/src/reducer/derived.ts +106 -0
- package/src/reducer/effects.ts +92 -0
- package/src/reducer/engine/runtime-instruction-engine.ts +155 -0
- package/src/reducer/ingress/decode-runtime-input.ts +7 -0
- package/src/reducer/ingress/decode-session-state.ts +9 -0
- package/src/reducer/ingress/encode-session-state.ts +6 -0
- package/src/reducer/ingress/input-codec.ts +18 -0
- package/src/reducer/ingress/phase-schemas.ts +62 -0
- package/src/reducer/ingress/raw-types.ts +107 -0
- package/src/reducer/ingress/runtime-codec.ts +14 -0
- package/src/reducer/ingress/runtime-payload.ts +13 -0
- package/src/reducer/ingress/session-codec.ts +392 -0
- package/src/reducer/ingress/types.ts +6 -0
- package/src/reducer/inputs/boardInput.ts +217 -0
- package/src/reducer/inputs/boardTarget.ts +190 -0
- package/src/reducer/inputs/cardInput.ts +86 -0
- package/src/reducer/inputs/cardTarget.ts +101 -0
- package/src/reducer/inputs/choiceTarget.ts +104 -0
- package/src/reducer/inputs/defineInputs.ts +71 -0
- package/src/reducer/inputs/formInput.ts +809 -0
- package/src/reducer/inputs/many.ts +120 -0
- package/src/reducer/inputs/promptInput.ts +87 -0
- package/src/reducer/inputs/rngInput.ts +58 -0
- package/src/reducer/inputs/targetRule.ts +123 -0
- package/src/reducer/inputs.ts +41 -0
- package/src/reducer/model/definition.ts +1072 -0
- package/src/reducer/model/extract.ts +745 -0
- package/src/reducer/model/manifest.ts +570 -0
- package/src/reducer/model/queries.ts +641 -0
- package/src/reducer/model/runtime.ts +264 -0
- package/src/reducer/model/spec.ts +1386 -0
- package/src/reducer/model/table.ts +260 -0
- package/src/reducer/model.ts +7 -0
- package/src/reducer/ops.ts +1034 -0
- package/src/reducer/parse-utils.ts +28 -0
- package/src/reducer/per-player.ts +422 -0
- package/src/reducer/rng.ts +69 -0
- package/src/reducer/schema-helpers.ts +185 -0
- package/src/reducer/setup-bootstrap-helpers.ts +171 -0
- package/src/reducer/setup-bootstrap.ts +481 -0
- package/src/reducer/table-ops.ts +2671 -0
- package/src/reducer/table-queries.ts +372 -0
- package/src/reducer/transaction.ts +120 -0
- package/src/reducer.ts +314 -0
- package/src/runtime/primitives.ts +1 -0
- package/src/runtime/types/runtime-api.ts +1 -0
- package/src/runtime/workspace-contract.ts +32 -0
- package/src/runtime-internal/components/InteractionForm.tsx +1309 -0
- package/src/runtime-internal/components/PluginRuntime.tsx +103 -0
- package/src/runtime-internal/components/board/target-layer.ts +70 -0
- package/src/runtime-internal/context/ClientParamSchemaContext.tsx +44 -0
- package/src/runtime-internal/context/InteractionDraftContext.tsx +279 -0
- package/src/runtime-internal/context/PluginSessionContext.tsx +47 -0
- package/src/runtime-internal/context/PluginStateContext.tsx +262 -0
- package/src/runtime-internal/context/RuntimeContext.tsx +96 -0
- package/src/runtime-internal/defaults/components.tsx +409 -0
- package/src/runtime-internal/defaults/index.ts +11 -0
- package/src/runtime-internal/errors/ValidationError.ts +29 -0
- package/src/runtime-internal/hooks/useActivePlayers.ts +33 -0
- package/src/runtime-internal/hooks/useBoardInteractions.ts +665 -0
- package/src/runtime-internal/hooks/useGameSelector.ts +105 -0
- package/src/runtime-internal/hooks/useGameView.ts +9 -0
- package/src/runtime-internal/hooks/useInteractionByKey.ts +354 -0
- package/src/runtime-internal/hooks/useInteractionHandle.ts +438 -0
- package/src/runtime-internal/hooks/useIsMyTurn.ts +20 -0
- package/src/runtime-internal/hooks/useLobby.ts +76 -0
- package/src/runtime-internal/hooks/useMe.ts +48 -0
- package/src/runtime-internal/hooks/usePlayerInfo.ts +28 -0
- package/src/runtime-internal/hooks/usePlayerTurnOrder.ts +23 -0
- package/src/runtime-internal/hooks/usePluginRuntime.ts +147 -0
- package/src/runtime-internal/hooks/useSeatInbox.ts +61 -0
- package/src/runtime-internal/hooks/useSimultaneousPhase.ts +10 -0
- package/src/runtime-internal/index.ts +42 -0
- package/src/runtime-internal/internal.ts +43 -0
- package/src/runtime-internal/plugin-styles.css +250 -0
- package/src/runtime-internal/primitives/board.tsx +459 -0
- package/src/runtime-internal/primitives/dialog-lifecycle.ts +58 -0
- package/src/runtime-internal/primitives/dice.tsx +79 -0
- package/src/runtime-internal/primitives/game-ui-provider.tsx +35 -0
- package/src/runtime-internal/primitives/game.tsx +387 -0
- package/src/runtime-internal/primitives/hand-intent-adapter.ts +147 -0
- package/src/runtime-internal/primitives/hand-surface.tsx +594 -0
- package/src/runtime-internal/primitives/index.ts +196 -0
- package/src/runtime-internal/primitives/interaction-form-binding.tsx +56 -0
- package/src/runtime-internal/primitives/interaction-submit.ts +90 -0
- package/src/runtime-internal/primitives/interaction.tsx +987 -0
- package/src/runtime-internal/primitives/phase.tsx +43 -0
- package/src/runtime-internal/primitives/player-roster.tsx +302 -0
- package/src/runtime-internal/primitives/primitive-props.tsx +101 -0
- package/src/runtime-internal/primitives/prompt.tsx +255 -0
- package/src/runtime-internal/primitives/ui.tsx +60 -0
- package/src/runtime-internal/primitives/zone.tsx +791 -0
- package/src/runtime-internal/reducer.ts +30 -0
- package/src/runtime-internal/runtime/createPluginRuntimeAPI.ts +605 -0
- package/src/runtime-internal/types/plugin-state.ts +508 -0
- package/src/runtime-internal/types/reducer-state.ts +24 -0
- package/src/runtime-internal/types/runtime-api.ts +114 -0
- package/src/runtime-internal/ui-contract.ts +519 -0
- package/src/runtime-internal/utils/card-intent-adapter.ts +546 -0
- package/src/runtime-internal/utils/interaction-inputs.ts +492 -0
- package/src/runtime-internal/utils/interaction-labels.ts +23 -0
- package/src/runtime-internal/utils/interaction-router.ts +273 -0
- package/src/runtime-internal/utils/interaction-status.ts +74 -0
- package/src/runtime-internal/workspace-contract.ts +1170 -0
- package/src/runtime.ts +34 -0
- package/src/testing/create-expect-api.ts +352 -0
- package/src/testing/create-test-runtime.ts +381 -0
- package/src/testing/definitions.ts +127 -0
- package/src/testing/index.ts +3 -0
- package/src/testing.ts +1 -0
- package/src/type-stubs/manifest-contract.d.ts +42 -0
- package/src/type-stubs/manifest-contract.js +72 -0
- package/src/type-stubs/ui-contract.d.ts +5 -0
- package/src/type-stubs/ui-contract.js +1 -0
- package/src/types/authoring-card-properties.type-test.ts +266 -0
- package/src/types/authoring.ts +1282 -0
- package/src/types/cards.ts +19 -0
- package/src/types/contracts.ts +1550 -0
- package/src/types/generated-helpers.ts +35 -0
- package/src/types/index.ts +147 -0
- package/src/types/slots.ts +11 -0
- package/src/types.ts +1 -0
- package/src/ui/components/ActionButton.tsx +97 -0
- package/src/ui/components/ActionPanel.tsx +315 -0
- package/src/ui/components/Card.tsx +378 -0
- package/src/ui/components/CardDragSurface.tsx +1076 -0
- package/src/ui/components/ChromeSuppressionContext.tsx +70 -0
- package/src/ui/components/CostDisplay.tsx +145 -0
- package/src/ui/components/DiceRoller.tsx +581 -0
- package/src/ui/components/Drawer.tsx +180 -0
- package/src/ui/components/ErrorBoundary.tsx +275 -0
- package/src/ui/components/GameEndDisplay.tsx +398 -0
- package/src/ui/components/GameSkeleton.tsx +260 -0
- package/src/ui/components/Hand.tsx +468 -0
- package/src/ui/components/HandDock.tsx +299 -0
- package/src/ui/components/HandView.tsx +441 -0
- package/src/ui/components/MobileHandTray.tsx +381 -0
- package/src/ui/components/MoreActions.tsx +143 -0
- package/src/ui/components/PhaseIndicator.tsx +341 -0
- package/src/ui/components/PlayArea.tsx +146 -0
- package/src/ui/components/PrimaryActionButton.tsx +336 -0
- package/src/ui/components/PrimaryButton.tsx +45 -0
- package/src/ui/components/ResourceCounter.tsx +270 -0
- package/src/ui/components/StagingZone.tsx +134 -0
- package/src/ui/components/ThemedButton.tsx +113 -0
- package/src/ui/components/Toast.tsx +264 -0
- package/src/ui/components/board/HexGrid.tsx +1294 -0
- package/src/ui/components/board/NetworkGraph.tsx +476 -0
- package/src/ui/components/board/SlotSystem.tsx +388 -0
- package/src/ui/components/board/SquareGrid.tsx +1165 -0
- package/src/ui/components/board/TrackBoard.tsx +496 -0
- package/src/ui/components/board/ZoneMap.tsx +448 -0
- package/src/ui/components/board/hex-board-view.ts +123 -0
- package/src/ui/components/board/index.ts +142 -0
- package/src/ui/components/board/interaction-accessibility.ts +21 -0
- package/src/ui/components/board/target-layer.ts +66 -0
- package/src/ui/components/card-render-content.type-test.ts +27 -0
- package/src/ui/components/hand-layout-math.ts +163 -0
- package/src/ui/components/hand-pointer-engine.ts +413 -0
- package/src/ui/components/index.ts +245 -0
- package/src/ui/components.ts +1 -0
- package/src/ui/defaults/components.tsx +106 -0
- package/src/ui/defaults/index.ts +8 -0
- package/src/ui/defaults.ts +1 -0
- package/src/ui/errors/ValidationError.ts +29 -0
- package/src/ui/helpers/cards.ts +19 -0
- package/src/ui/helpers/track-board.ts +211 -0
- package/src/ui/hooks/useBoardTopology.ts +316 -0
- package/src/ui/hooks/useCards.ts +10 -0
- package/src/ui/hooks/useHandCardPointer.ts +381 -0
- package/src/ui/hooks/useHandLayout.ts +378 -0
- package/src/ui/hooks/useHandPresentation.ts +121 -0
- package/src/ui/hooks/useHexBoard.ts +74 -0
- package/src/ui/hooks/useHexGrid.ts +185 -0
- package/src/ui/hooks/useIsMobile.ts +35 -0
- package/src/ui/hooks/usePanZoom.ts +278 -0
- package/src/ui/hooks/useSquareBoard.ts +124 -0
- package/src/ui/hooks/useSquareGrid.ts +328 -0
- package/src/ui/index.ts +98 -0
- package/src/ui/internal/ui/alert.tsx +51 -0
- package/src/ui/internal/ui/button.tsx +58 -0
- package/src/ui/internal/ui/dialog.tsx +134 -0
- package/src/ui/internal/ui/input.tsx +21 -0
- package/src/ui/internal/ui/label.tsx +21 -0
- package/src/ui/internal/ui/select.tsx +129 -0
- package/src/ui/internal/ui/tooltip.tsx +54 -0
- package/src/ui/internal/ui/utils.ts +5 -0
- package/src/ui/plugin-styles.css +250 -0
- package/src/ui/primitives/dialog-lifecycle.ts +58 -0
- package/src/ui/primitives/dice.tsx +79 -0
- package/src/ui/primitives/primitive-props.tsx +101 -0
- package/src/ui/theme/ThemeProvider.tsx +252 -0
- package/src/ui/theme/board.ts +61 -0
- package/src/ui/theme/css-vars.ts +105 -0
- package/src/ui/theme/derive.ts +240 -0
- package/src/ui/theme/index.ts +61 -0
- package/src/ui/theme/presets/arcade.ts +261 -0
- package/src/ui/theme/presets/studio.ts +261 -0
- package/src/ui/theme/presets/tabletop.ts +266 -0
- package/src/ui/theme/tokens.ts +392 -0
- package/src/ui/types/hex-color.ts +20 -0
- package/src/ui/types/player-state.ts +463 -0
- package/src/ui/types/tiled-board.ts +785 -0
- package/src/ui/types/visual-state.ts +137 -0
- package/src/ui.ts +1 -0
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
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-D5ZRE2Hl.js';
|
|
2
|
+
export { H as HandInteractionPolicy, b as HandLayoutKind, c as HandLayoutPolicy, d as HandView, e as HandViewProps } from '../HandView-ncJIVLhN.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-CTREyF73.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, a2 as createHexBoardView, a3 as hexUtils } from '../hex-board-view-D_07hO6O.js';
|
|
5
|
+
export { HexEdgeState, HexTileState, HexVertexState, SquareCellState, SquareEdgeState, SquarePieceState, SquareVertexState } from './types/player-state.js';
|
|
6
|
+
export { C as CardCollection, V as ViewCard } from '../cards-Sl3b40Mv.js';
|
|
7
|
+
export { V as ViewSlotOccupant } from '../slots-1GPGihk8.js';
|
|
8
|
+
import 'react/jsx-runtime';
|
|
9
|
+
import 'react';
|
|
10
|
+
import 'framer-motion';
|
|
11
|
+
import 'vaul';
|
|
12
|
+
import '@radix-ui/react-dialog';
|
|
13
|
+
import '@radix-ui/react-label';
|
|
14
|
+
import '@radix-ui/react-select';
|
|
15
|
+
import '../primitive-props-DpKs-GCr.js';
|
|
16
|
+
import '../hex-color-MhOyuY-o.js';
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import "../chunk-T3ZKNUZ7.js";
|
|
2
|
+
import {
|
|
3
|
+
ActionButton,
|
|
4
|
+
ActionGroup,
|
|
5
|
+
ActionPanel,
|
|
6
|
+
CardDragSurface,
|
|
7
|
+
CardDropTargetView,
|
|
8
|
+
CardFace,
|
|
9
|
+
ChromeSuppressionProvider,
|
|
10
|
+
CostDisplay,
|
|
11
|
+
DefaultChessPiece,
|
|
12
|
+
DefaultEmptySlot,
|
|
13
|
+
DefaultGridCell,
|
|
14
|
+
DefaultGridPiece,
|
|
15
|
+
DefaultHexEdge,
|
|
16
|
+
DefaultHexTile,
|
|
17
|
+
DefaultHexVertex,
|
|
18
|
+
DefaultNetworkEdge,
|
|
19
|
+
DefaultNetworkNode,
|
|
20
|
+
DefaultNetworkPiece,
|
|
21
|
+
DefaultSlotItem,
|
|
22
|
+
DefaultSlotOccupant,
|
|
23
|
+
DefaultTrackConnection,
|
|
24
|
+
DefaultTrackJump,
|
|
25
|
+
DefaultTrackPiece,
|
|
26
|
+
DefaultTrackSpace,
|
|
27
|
+
DefaultZone,
|
|
28
|
+
DefaultZonePiece,
|
|
29
|
+
DefaultZonePieces,
|
|
30
|
+
Dialog,
|
|
31
|
+
DialogClose,
|
|
32
|
+
DialogContent,
|
|
33
|
+
DialogDescription,
|
|
34
|
+
DialogFooter,
|
|
35
|
+
DialogHeader,
|
|
36
|
+
DialogOverlay,
|
|
37
|
+
DialogPortal,
|
|
38
|
+
DialogTitle,
|
|
39
|
+
DialogTrigger,
|
|
40
|
+
DiceRoller,
|
|
41
|
+
Drawer,
|
|
42
|
+
DrawerClose,
|
|
43
|
+
DrawerContent,
|
|
44
|
+
DrawerDescription,
|
|
45
|
+
DrawerFooter,
|
|
46
|
+
DrawerHeader,
|
|
47
|
+
DrawerOverlay,
|
|
48
|
+
DrawerPortal,
|
|
49
|
+
DrawerTitle,
|
|
50
|
+
DrawerTrigger,
|
|
51
|
+
ErrorBoundary,
|
|
52
|
+
GameEndDisplay,
|
|
53
|
+
GameSkeleton,
|
|
54
|
+
Hand,
|
|
55
|
+
HandDock,
|
|
56
|
+
HandView,
|
|
57
|
+
HexGrid,
|
|
58
|
+
Input,
|
|
59
|
+
Label,
|
|
60
|
+
MobileHandTrayProvider,
|
|
61
|
+
MoreActions,
|
|
62
|
+
NetworkGraph,
|
|
63
|
+
PhaseIndicator,
|
|
64
|
+
PlayArea,
|
|
65
|
+
PrimaryActionButton,
|
|
66
|
+
PrimaryButton,
|
|
67
|
+
ResourceCounter,
|
|
68
|
+
ResourceCounterCount,
|
|
69
|
+
ResourceCounterIcon,
|
|
70
|
+
ResourceCounterItem,
|
|
71
|
+
ResourceCounterLabel,
|
|
72
|
+
ResourceCounterRoot,
|
|
73
|
+
Select,
|
|
74
|
+
SelectContent,
|
|
75
|
+
SelectItem,
|
|
76
|
+
SelectTrigger,
|
|
77
|
+
SlotSystem,
|
|
78
|
+
SquareGrid,
|
|
79
|
+
StagingZone,
|
|
80
|
+
ThemedButton,
|
|
81
|
+
Toast,
|
|
82
|
+
ToastActions,
|
|
83
|
+
ToastProvider,
|
|
84
|
+
TrackBoard,
|
|
85
|
+
ZoneMap,
|
|
86
|
+
createHexBoardView,
|
|
87
|
+
createResourceCounter,
|
|
88
|
+
hexUtils,
|
|
89
|
+
toAlgebraic,
|
|
90
|
+
toNumeric,
|
|
91
|
+
useCardDragSurface,
|
|
92
|
+
useChromeSuppression,
|
|
93
|
+
useMobileHandTrayActive,
|
|
94
|
+
useRegisterMobileHand
|
|
95
|
+
} from "../chunk-WYPQ3GG5.js";
|
|
96
|
+
import "../chunk-VDXOF4FW.js";
|
|
97
|
+
import "../chunk-PZ5AY32C.js";
|
|
98
|
+
export {
|
|
99
|
+
ActionButton,
|
|
100
|
+
ActionGroup,
|
|
101
|
+
ActionPanel,
|
|
102
|
+
CardDragSurface,
|
|
103
|
+
CardDropTargetView,
|
|
104
|
+
CardFace,
|
|
105
|
+
ChromeSuppressionProvider,
|
|
106
|
+
CostDisplay,
|
|
107
|
+
DefaultChessPiece,
|
|
108
|
+
DefaultEmptySlot,
|
|
109
|
+
DefaultGridCell,
|
|
110
|
+
DefaultGridPiece,
|
|
111
|
+
DefaultHexEdge,
|
|
112
|
+
DefaultHexTile,
|
|
113
|
+
DefaultHexVertex,
|
|
114
|
+
DefaultNetworkEdge,
|
|
115
|
+
DefaultNetworkNode,
|
|
116
|
+
DefaultNetworkPiece,
|
|
117
|
+
DefaultSlotItem,
|
|
118
|
+
DefaultSlotOccupant,
|
|
119
|
+
DefaultTrackConnection,
|
|
120
|
+
DefaultTrackJump,
|
|
121
|
+
DefaultTrackPiece,
|
|
122
|
+
DefaultTrackSpace,
|
|
123
|
+
DefaultZone,
|
|
124
|
+
DefaultZonePiece,
|
|
125
|
+
DefaultZonePieces,
|
|
126
|
+
Dialog,
|
|
127
|
+
DialogClose,
|
|
128
|
+
DialogContent,
|
|
129
|
+
DialogDescription,
|
|
130
|
+
DialogFooter,
|
|
131
|
+
DialogHeader,
|
|
132
|
+
DialogOverlay,
|
|
133
|
+
DialogPortal,
|
|
134
|
+
DialogTitle,
|
|
135
|
+
DialogTrigger,
|
|
136
|
+
DiceRoller,
|
|
137
|
+
Drawer,
|
|
138
|
+
DrawerClose,
|
|
139
|
+
DrawerContent,
|
|
140
|
+
DrawerDescription,
|
|
141
|
+
DrawerFooter,
|
|
142
|
+
DrawerHeader,
|
|
143
|
+
DrawerOverlay,
|
|
144
|
+
DrawerPortal,
|
|
145
|
+
DrawerTitle,
|
|
146
|
+
DrawerTrigger,
|
|
147
|
+
ErrorBoundary,
|
|
148
|
+
GameEndDisplay,
|
|
149
|
+
GameSkeleton,
|
|
150
|
+
Hand,
|
|
151
|
+
HandDock,
|
|
152
|
+
HandView,
|
|
153
|
+
HexGrid,
|
|
154
|
+
Input,
|
|
155
|
+
Label,
|
|
156
|
+
MobileHandTrayProvider,
|
|
157
|
+
MoreActions,
|
|
158
|
+
NetworkGraph,
|
|
159
|
+
PhaseIndicator,
|
|
160
|
+
PlayArea,
|
|
161
|
+
PrimaryActionButton,
|
|
162
|
+
PrimaryButton,
|
|
163
|
+
ResourceCounter,
|
|
164
|
+
ResourceCounterCount,
|
|
165
|
+
ResourceCounterIcon,
|
|
166
|
+
ResourceCounterItem,
|
|
167
|
+
ResourceCounterLabel,
|
|
168
|
+
ResourceCounterRoot,
|
|
169
|
+
Select,
|
|
170
|
+
SelectContent,
|
|
171
|
+
SelectItem,
|
|
172
|
+
SelectTrigger,
|
|
173
|
+
SlotSystem,
|
|
174
|
+
SquareGrid,
|
|
175
|
+
StagingZone,
|
|
176
|
+
ThemedButton,
|
|
177
|
+
Toast,
|
|
178
|
+
ToastActions,
|
|
179
|
+
ToastProvider,
|
|
180
|
+
TrackBoard,
|
|
181
|
+
ZoneMap,
|
|
182
|
+
createHexBoardView,
|
|
183
|
+
createResourceCounter,
|
|
184
|
+
hexUtils,
|
|
185
|
+
toAlgebraic,
|
|
186
|
+
toNumeric,
|
|
187
|
+
useCardDragSurface,
|
|
188
|
+
useChromeSuppression,
|
|
189
|
+
useMobileHandTrayActive,
|
|
190
|
+
useRegisterMobileHand
|
|
191
|
+
};
|
|
192
|
+
//# sourceMappingURL=components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { HTMLAttributes } from 'react';
|
|
3
|
+
import { P as PrimitiveCommonProps } from '../primitive-props-DpKs-GCr.js';
|
|
4
|
+
|
|
5
|
+
type LayoutPrimitiveProps = PrimitiveCommonProps & HTMLAttributes<HTMLElement>;
|
|
6
|
+
declare function GameLayoutRoot({ children, style, ...props }: LayoutPrimitiveProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
7
|
+
declare function GameLayoutHeader({ children, style, ...props }: LayoutPrimitiveProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
8
|
+
declare function GameLayoutBoard({ children, style, ...props }: LayoutPrimitiveProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
9
|
+
declare function GameLayoutSidebar({ children, style, ...props }: LayoutPrimitiveProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
10
|
+
declare function GameLayoutBottom({ children, style, ...props }: LayoutPrimitiveProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
11
|
+
declare const GameLayout: {
|
|
12
|
+
Root: typeof GameLayoutRoot;
|
|
13
|
+
Header: typeof GameLayoutHeader;
|
|
14
|
+
Board: typeof GameLayoutBoard;
|
|
15
|
+
Sidebar: typeof GameLayoutSidebar;
|
|
16
|
+
Bottom: typeof GameLayoutBottom;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { GameLayout, GameLayoutBoard, GameLayoutBottom, GameLayoutHeader, GameLayoutRoot, GameLayoutSidebar };
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import {
|
|
2
|
+
renderPrimitive
|
|
3
|
+
} from "../chunk-VDXOF4FW.js";
|
|
4
|
+
import "../chunk-PZ5AY32C.js";
|
|
5
|
+
|
|
6
|
+
// src/ui/defaults/components.tsx
|
|
7
|
+
function layoutStyle(base, style) {
|
|
8
|
+
return style ? { ...base, ...style } : base;
|
|
9
|
+
}
|
|
10
|
+
function GameLayoutRoot({
|
|
11
|
+
children,
|
|
12
|
+
style,
|
|
13
|
+
...props
|
|
14
|
+
}) {
|
|
15
|
+
return renderPrimitive("div", {
|
|
16
|
+
...props,
|
|
17
|
+
"data-dreamboard-game-layout": "",
|
|
18
|
+
style: layoutStyle(
|
|
19
|
+
{
|
|
20
|
+
display: "grid",
|
|
21
|
+
gridTemplateColumns: "minmax(0, 1fr) minmax(18rem, 24rem)",
|
|
22
|
+
gridTemplateRows: "auto minmax(0, 1fr) auto",
|
|
23
|
+
gridTemplateAreas: `"header header" "board sidebar" "bottom sidebar"`,
|
|
24
|
+
minHeight: "100%",
|
|
25
|
+
gap: "1rem"
|
|
26
|
+
},
|
|
27
|
+
style
|
|
28
|
+
),
|
|
29
|
+
children
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function GameLayoutHeader({
|
|
33
|
+
children,
|
|
34
|
+
style,
|
|
35
|
+
...props
|
|
36
|
+
}) {
|
|
37
|
+
return renderPrimitive("header", {
|
|
38
|
+
...props,
|
|
39
|
+
"data-dreamboard-game-layout-header": "",
|
|
40
|
+
style: layoutStyle({ gridArea: "header" }, style),
|
|
41
|
+
children
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function GameLayoutBoard({
|
|
45
|
+
children,
|
|
46
|
+
style,
|
|
47
|
+
...props
|
|
48
|
+
}) {
|
|
49
|
+
return renderPrimitive("section", {
|
|
50
|
+
...props,
|
|
51
|
+
"data-dreamboard-game-layout-board": "",
|
|
52
|
+
style: layoutStyle({ gridArea: "board", minWidth: 0 }, style),
|
|
53
|
+
children
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function GameLayoutSidebar({
|
|
57
|
+
children,
|
|
58
|
+
style,
|
|
59
|
+
...props
|
|
60
|
+
}) {
|
|
61
|
+
return renderPrimitive("aside", {
|
|
62
|
+
...props,
|
|
63
|
+
"data-dreamboard-game-layout-sidebar": "",
|
|
64
|
+
style: layoutStyle(
|
|
65
|
+
{
|
|
66
|
+
gridArea: "sidebar",
|
|
67
|
+
minWidth: 0,
|
|
68
|
+
display: "flex",
|
|
69
|
+
flexDirection: "column",
|
|
70
|
+
gap: "0.75rem"
|
|
71
|
+
},
|
|
72
|
+
style
|
|
73
|
+
),
|
|
74
|
+
children
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function GameLayoutBottom({
|
|
78
|
+
children,
|
|
79
|
+
style,
|
|
80
|
+
...props
|
|
81
|
+
}) {
|
|
82
|
+
return renderPrimitive("section", {
|
|
83
|
+
...props,
|
|
84
|
+
"data-dreamboard-game-layout-bottom": "",
|
|
85
|
+
style: layoutStyle({ gridArea: "bottom", minWidth: 0 }, style),
|
|
86
|
+
children
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
var GameLayout = {
|
|
90
|
+
Root: GameLayoutRoot,
|
|
91
|
+
Header: GameLayoutHeader,
|
|
92
|
+
Board: GameLayoutBoard,
|
|
93
|
+
Sidebar: GameLayoutSidebar,
|
|
94
|
+
Bottom: GameLayoutBottom
|
|
95
|
+
};
|
|
96
|
+
export {
|
|
97
|
+
GameLayout,
|
|
98
|
+
GameLayoutBoard,
|
|
99
|
+
GameLayoutBottom,
|
|
100
|
+
GameLayoutHeader,
|
|
101
|
+
GameLayoutRoot,
|
|
102
|
+
GameLayoutSidebar
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ui/defaults/components.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes } from \"react\";\nimport {\n renderPrimitive,\n type PrimitiveCommonProps,\n} from \"../primitives/primitive-props.js\";\n\ntype LayoutPrimitiveProps = PrimitiveCommonProps & HTMLAttributes<HTMLElement>;\n\nfunction layoutStyle(\n base: CSSProperties,\n style: CSSProperties | undefined,\n): CSSProperties {\n return style ? { ...base, ...style } : base;\n}\n\nexport function GameLayoutRoot({\n children,\n style,\n ...props\n}: LayoutPrimitiveProps) {\n return renderPrimitive(\"div\", {\n ...props,\n \"data-dreamboard-game-layout\": \"\",\n style: layoutStyle(\n {\n display: \"grid\",\n gridTemplateColumns: \"minmax(0, 1fr) minmax(18rem, 24rem)\",\n gridTemplateRows: \"auto minmax(0, 1fr) auto\",\n gridTemplateAreas: `\"header header\" \"board sidebar\" \"bottom sidebar\"`,\n minHeight: \"100%\",\n gap: \"1rem\",\n },\n style,\n ),\n children,\n });\n}\n\nexport function GameLayoutHeader({\n children,\n style,\n ...props\n}: LayoutPrimitiveProps) {\n return renderPrimitive(\"header\", {\n ...props,\n \"data-dreamboard-game-layout-header\": \"\",\n style: layoutStyle({ gridArea: \"header\" }, style),\n children,\n });\n}\n\nexport function GameLayoutBoard({\n children,\n style,\n ...props\n}: LayoutPrimitiveProps) {\n return renderPrimitive(\"section\", {\n ...props,\n \"data-dreamboard-game-layout-board\": \"\",\n style: layoutStyle({ gridArea: \"board\", minWidth: 0 }, style),\n children,\n });\n}\n\nexport function GameLayoutSidebar({\n children,\n style,\n ...props\n}: LayoutPrimitiveProps) {\n return renderPrimitive(\"aside\", {\n ...props,\n \"data-dreamboard-game-layout-sidebar\": \"\",\n style: layoutStyle(\n {\n gridArea: \"sidebar\",\n minWidth: 0,\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"0.75rem\",\n },\n style,\n ),\n children,\n });\n}\n\nexport function GameLayoutBottom({\n children,\n style,\n ...props\n}: LayoutPrimitiveProps) {\n return renderPrimitive(\"section\", {\n ...props,\n \"data-dreamboard-game-layout-bottom\": \"\",\n style: layoutStyle({ gridArea: \"bottom\", minWidth: 0 }, style),\n children,\n });\n}\n\nexport const GameLayout = {\n Root: GameLayoutRoot,\n Header: GameLayoutHeader,\n Board: GameLayoutBoard,\n Sidebar: GameLayoutSidebar,\n Bottom: GameLayoutBottom,\n};\n"],"mappings":";;;;;;AAQA,SAAS,YACP,MACA,OACe;AACf,SAAO,QAAQ,EAAE,GAAG,MAAM,GAAG,MAAM,IAAI;AACzC;AAEO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,SAAO,gBAAgB,OAAO;AAAA,IAC5B,GAAG;AAAA,IACH,+BAA+B;AAAA,IAC/B,OAAO;AAAA,MACL;AAAA,QACE,SAAS;AAAA,QACT,qBAAqB;AAAA,QACrB,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,WAAW;AAAA,QACX,KAAK;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAEO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,SAAO,gBAAgB,UAAU;AAAA,IAC/B,GAAG;AAAA,IACH,sCAAsC;AAAA,IACtC,OAAO,YAAY,EAAE,UAAU,SAAS,GAAG,KAAK;AAAA,IAChD;AAAA,EACF,CAAC;AACH;AAEO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,SAAO,gBAAgB,WAAW;AAAA,IAChC,GAAG;AAAA,IACH,qCAAqC;AAAA,IACrC,OAAO,YAAY,EAAE,UAAU,SAAS,UAAU,EAAE,GAAG,KAAK;AAAA,IAC5D;AAAA,EACF,CAAC;AACH;AAEO,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,SAAO,gBAAgB,SAAS;AAAA,IAC9B,GAAG;AAAA,IACH,uCAAuC;AAAA,IACvC,OAAO;AAAA,MACL;AAAA,QACE,UAAU;AAAA,QACV,UAAU;AAAA,QACV,SAAS;AAAA,QACT,eAAe;AAAA,QACf,KAAK;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAEO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,SAAO,gBAAgB,WAAW;AAAA,IAChC,GAAG;AAAA,IACH,sCAAsC;AAAA,IACtC,OAAO,YAAY,EAAE,UAAU,UAAU,UAAU,EAAE,GAAG,KAAK;AAAA,IAC7D;AAAA,EACF,CAAC;AACH;AAEO,IAAM,aAAa;AAAA,EACxB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AACV;","names":[]}
|