@dreamboard-games/sdk 0.4.0-alpha.5 → 0.4.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/REFERENCE.md +1085 -119
  2. package/dist/{HandView-x8MhbhFl.d.ts → HandView-Bi2lxzQP.d.ts} +3 -3
  3. package/dist/{ThemeProvider-DRalAWzY.d.ts → ThemeProvider-CElaL2ik.d.ts} +1 -1
  4. package/dist/authoring/index.js +2 -2
  5. package/dist/browser-interaction.js +1 -1
  6. package/dist/{chunk-E3X552YM.js → chunk-2TRZSZGD.js} +1061 -425
  7. package/dist/chunk-2TRZSZGD.js.map +1 -0
  8. package/dist/{chunk-KHY3RJLT.js → chunk-52DH7VQF.js} +62 -13
  9. package/dist/chunk-52DH7VQF.js.map +1 -0
  10. package/dist/{chunk-N6ZDIMRB.js → chunk-B2YBS3SG.js} +1 -1
  11. package/dist/chunk-B2YBS3SG.js.map +1 -0
  12. package/dist/{chunk-AQMEN3AT.js → chunk-DDST4U2P.js} +2 -2
  13. package/dist/{chunk-FXQPZZXC.js → chunk-HK3WN4U7.js} +2 -2
  14. package/dist/{chunk-FXQPZZXC.js.map → chunk-HK3WN4U7.js.map} +1 -1
  15. package/dist/{chunk-QOFFRHZR.js → chunk-OV6JC2BM.js} +64 -28
  16. package/dist/chunk-OV6JC2BM.js.map +1 -0
  17. package/dist/{chunk-K5ZRJTZZ.js → chunk-PAPIAMYX.js} +6 -3
  18. package/dist/chunk-PAPIAMYX.js.map +1 -0
  19. package/dist/{chunk-TTISZQNI.js → chunk-SOBNI363.js} +39 -28
  20. package/dist/chunk-SOBNI363.js.map +1 -0
  21. package/dist/{chunk-Y6Y2YABD.js → chunk-TGMXBRKY.js} +22 -6
  22. package/dist/chunk-TGMXBRKY.js.map +1 -0
  23. package/dist/{chunk-XZ667T4K.js → chunk-UC2UXAC6.js} +2 -2
  24. package/dist/{chunk-O6M6PN4E.js → chunk-UUQNOGZV.js} +94 -53
  25. package/dist/chunk-UUQNOGZV.js.map +1 -0
  26. package/dist/{chunk-WUIVY2KE.js → chunk-WHR5UW3F.js} +1 -1
  27. package/dist/chunk-WHR5UW3F.js.map +1 -0
  28. package/dist/codegen.d.ts +13 -0
  29. package/dist/codegen.js +1 -1
  30. package/dist/{components-B7hFaEn_.d.ts → components-BTwSIjXj.d.ts} +77 -206
  31. package/dist/{hex-board-view-BFlWDb9k.d.ts → hex-board-view-aKkblDp6.d.ts} +180 -1
  32. package/dist/{index-gjxQichK.d.ts → index-CFTjJIXd.d.ts} +5 -4
  33. package/dist/{index.d-BL3bT5lt.d.ts → index.d-DMASeF6M.d.ts} +294 -27
  34. package/dist/index.js +2 -2
  35. package/dist/package-set.d.ts +2 -2
  36. package/dist/package-set.js +2 -2
  37. package/dist/{runtime-api-BJharVaj.d.ts → plugin-state-BRH3UiUp.d.ts} +19 -3
  38. package/dist/{protocol-BP193lva.d.ts → protocol-835hEGne.d.ts} +42 -1
  39. package/dist/reducer/advanced.d.ts +4 -2
  40. package/dist/reducer/advanced.js +1 -1
  41. package/dist/reducer-contract.d.ts +1 -1
  42. package/dist/reducer-contract.js +2 -2
  43. package/dist/reducer.d.ts +10 -4
  44. package/dist/reducer.js +317 -15
  45. package/dist/reducer.js.map +1 -1
  46. package/dist/runtime/primitives.d.ts +32 -7
  47. package/dist/runtime/primitives.js +9 -5
  48. package/dist/runtime/runtime-api.d.ts +1 -1
  49. package/dist/runtime/workspace-contract.d.ts +7 -7
  50. package/dist/runtime/workspace-contract.js +6 -6
  51. package/dist/runtime-Dkfm1x2r.d.ts +1670 -0
  52. package/dist/runtime.d.ts +10 -9
  53. package/dist/runtime.js +240 -16
  54. package/dist/runtime.js.map +1 -1
  55. package/dist/testing.d.ts +78 -15
  56. package/dist/testing.js +69 -8
  57. package/dist/testing.js.map +1 -1
  58. package/dist/{types-CYeN0wLK.d.ts → types-aI4V9CWe.d.ts} +5 -5
  59. package/dist/types.d.ts +13 -0
  60. package/dist/ui/components.d.ts +6 -3
  61. package/dist/ui/components.js +15 -3
  62. package/dist/ui/plugin-styles.css +2 -2
  63. package/dist/{ui-contract-B4NjRlvC.d.ts → ui-contract-Ue6SywvO.d.ts} +24 -10
  64. package/dist/ui.d.ts +9 -6
  65. package/dist/ui.js +16 -4
  66. package/dist/views-32rSsfeU.d.ts +1559 -0
  67. package/package.json +21 -20
  68. package/dist/chunk-E3X552YM.js.map +0 -1
  69. package/dist/chunk-K5ZRJTZZ.js.map +0 -1
  70. package/dist/chunk-KHY3RJLT.js.map +0 -1
  71. package/dist/chunk-N6ZDIMRB.js.map +0 -1
  72. package/dist/chunk-O6M6PN4E.js.map +0 -1
  73. package/dist/chunk-QOFFRHZR.js.map +0 -1
  74. package/dist/chunk-TTISZQNI.js.map +0 -1
  75. package/dist/chunk-WUIVY2KE.js.map +0 -1
  76. package/dist/chunk-Y6Y2YABD.js.map +0 -1
  77. package/dist/views-fn2RuXOx.d.ts +0 -3168
  78. /package/dist/{chunk-AQMEN3AT.js.map → chunk-DDST4U2P.js.map} +0 -0
  79. /package/dist/{chunk-XZ667T4K.js.map → chunk-UC2UXAC6.js.map} +0 -0
package/REFERENCE.md CHANGED
@@ -1522,6 +1522,10 @@ type SetupProfileSpec = {
1522
1522
  optionValues?: {
1523
1523
  [key: string]: string;
1524
1524
  };
1525
+ guidance?: {
1526
+ summary?: string;
1527
+ steps?: ReadonlyArray<SetupGuidanceStep>;
1528
+ };
1525
1529
  };
1526
1530
  ```
1527
1531
 
@@ -2480,6 +2484,49 @@ const FrameworkErrorCodes: {
2480
2484
 
2481
2485
  _No JSDoc summary is available yet._
2482
2486
 
2487
+ ### gameEvent
2488
+
2489
+ ```ts
2490
+ const gameEvent: {
2491
+ systemAction(event: Omit<SystemActionEvent, "kind">): SystemActionEvent;
2492
+ };
2493
+ ```
2494
+
2495
+ _No JSDoc summary is available yet._
2496
+
2497
+ ### GameEvent
2498
+
2499
+ ```ts
2500
+ type GameEvent = SystemActionEvent;
2501
+ ```
2502
+
2503
+ _No JSDoc summary is available yet._
2504
+
2505
+ ### GameEventDetail
2506
+
2507
+ ```ts
2508
+ type GameEventDetail = {
2509
+ label: string;
2510
+ value: string | number | boolean;
2511
+ };
2512
+ ```
2513
+
2514
+ _No JSDoc summary is available yet._
2515
+
2516
+ ### GameOutcome
2517
+
2518
+ ```ts
2519
+ type GameOutcome<PlayerId extends string = string> = {
2520
+ reason: {
2521
+ code: string;
2522
+ message?: string;
2523
+ };
2524
+ standings: readonly OutcomeStanding<PlayerId>[];
2525
+ };
2526
+ ```
2527
+
2528
+ _No JSDoc summary is available yet._
2529
+
2483
2530
  ### GameStateOf
2484
2531
 
2485
2532
  ```ts
@@ -2635,6 +2682,53 @@ type Op<State> = <S extends State>(state: S) => S;
2635
2682
 
2636
2683
  A state-preserving transformation.
2637
2684
 
2685
+ ### OutcomeResult
2686
+
2687
+ ```ts
2688
+ type OutcomeResult = "win" | "draw" | "loss" | "eliminated";
2689
+ ```
2690
+
2691
+ _No JSDoc summary is available yet._
2692
+
2693
+ ### OutcomeScoreComponent
2694
+
2695
+ ```ts
2696
+ type OutcomeScoreComponent = {
2697
+ id: string;
2698
+ label: string;
2699
+ value: number;
2700
+ };
2701
+ ```
2702
+
2703
+ _No JSDoc summary is available yet._
2704
+
2705
+ ### OutcomeStanding
2706
+
2707
+ ```ts
2708
+ type OutcomeStanding<PlayerId extends string = string> = {
2709
+ playerId: PlayerId;
2710
+ rank: number;
2711
+ result: OutcomeResult;
2712
+ score?: number;
2713
+ scoreBreakdown?: readonly OutcomeScoreComponent[];
2714
+ tieBreaks?: readonly OutcomeTieBreak[];
2715
+ };
2716
+ ```
2717
+
2718
+ _No JSDoc summary is available yet._
2719
+
2720
+ ### OutcomeTieBreak
2721
+
2722
+ ```ts
2723
+ type OutcomeTieBreak = {
2724
+ id: string;
2725
+ label: string;
2726
+ value: number | string;
2727
+ };
2728
+ ```
2729
+
2730
+ _No JSDoc summary is available yet._
2731
+
2638
2732
  ### parseBoardRefKey
2639
2733
 
2640
2734
  ```ts
@@ -2875,8 +2969,20 @@ function promptInput<
2875
2969
  type ReducerAccept<State> = {
2876
2970
  type: "accept";
2877
2971
  state: State;
2878
- instructions?: RuntimeInstructionForState<State>[];
2879
- terminal?: TerminalOutcome<PlayerIdOfState<State>>;
2972
+ instructions?: readonly RuntimeInstructionForState<State>[];
2973
+ events?: readonly GameEvent[];
2974
+ terminal?: GameOutcome<PlayerIdOfState<State>>;
2975
+ };
2976
+ ```
2977
+
2978
+ _No JSDoc summary is available yet._
2979
+
2980
+ ### ReducerAcceptOptions
2981
+
2982
+ ```ts
2983
+ type ReducerAcceptOptions<State> = {
2984
+ instructions?: readonly RuntimeInstructionForState<State>[];
2985
+ events?: readonly GameEvent[];
2880
2986
  };
2881
2987
  ```
2882
2988
 
@@ -3157,6 +3263,20 @@ type StaleContractArtifactKind = "base-states" | "session-state";
3157
3263
 
3158
3264
  _No JSDoc summary is available yet._
3159
3265
 
3266
+ ### SystemActionEvent
3267
+
3268
+ ```ts
3269
+ type SystemActionEvent = {
3270
+ kind: "systemAction";
3271
+ procedureId: string;
3272
+ title: string;
3273
+ summary?: string;
3274
+ details?: readonly GameEventDetail[];
3275
+ };
3276
+ ```
3277
+
3278
+ _No JSDoc summary is available yet._
3279
+
3160
3280
  ### TableQueries
3161
3281
 
3162
3282
  ```ts
@@ -3250,21 +3370,6 @@ type TargetRuleBuilder<
3250
3370
 
3251
3371
  _No JSDoc summary is available yet._
3252
3372
 
3253
- ### TerminalOutcome
3254
-
3255
- ```ts
3256
- type TerminalOutcome<
3257
- PlayerId extends string = string,
3258
- Score extends number = number,
3259
- > = {
3260
- winnerPlayerId?: PlayerId;
3261
- finalScores?: Partial<Record<PlayerId, Score>>;
3262
- reason: string;
3263
- };
3264
- ```
3265
-
3266
- _No JSDoc summary is available yet._
3267
-
3268
3373
  ### ValidationIssue
3269
3374
 
3270
3375
  ```ts
@@ -4498,6 +4603,39 @@ const FrameworkErrorCodes: {
4498
4603
 
4499
4604
  _No JSDoc summary is available yet._
4500
4605
 
4606
+ ### GameEvent
4607
+
4608
+ ```ts
4609
+ type GameEvent = SystemActionEvent;
4610
+ ```
4611
+
4612
+ _No JSDoc summary is available yet._
4613
+
4614
+ ### GameEventDetail
4615
+
4616
+ ```ts
4617
+ type GameEventDetail = {
4618
+ label: string;
4619
+ value: string | number | boolean;
4620
+ };
4621
+ ```
4622
+
4623
+ _No JSDoc summary is available yet._
4624
+
4625
+ ### GameOutcome
4626
+
4627
+ ```ts
4628
+ type GameOutcome<PlayerId extends string = string> = {
4629
+ reason: {
4630
+ code: string;
4631
+ message?: string;
4632
+ };
4633
+ standings: readonly OutcomeStanding<PlayerId>[];
4634
+ };
4635
+ ```
4636
+
4637
+ _No JSDoc summary is available yet._
4638
+
4501
4639
  ### GameStateOf
4502
4640
 
4503
4641
  ```ts
@@ -5289,6 +5427,53 @@ type NonEmptyReadonlyArray<T> = readonly [T, ...T[]];
5289
5427
 
5290
5428
  _No JSDoc summary is available yet._
5291
5429
 
5430
+ ### OutcomeResult
5431
+
5432
+ ```ts
5433
+ type OutcomeResult = "win" | "draw" | "loss" | "eliminated";
5434
+ ```
5435
+
5436
+ _No JSDoc summary is available yet._
5437
+
5438
+ ### OutcomeScoreComponent
5439
+
5440
+ ```ts
5441
+ type OutcomeScoreComponent = {
5442
+ id: string;
5443
+ label: string;
5444
+ value: number;
5445
+ };
5446
+ ```
5447
+
5448
+ _No JSDoc summary is available yet._
5449
+
5450
+ ### OutcomeStanding
5451
+
5452
+ ```ts
5453
+ type OutcomeStanding<PlayerId extends string = string> = {
5454
+ playerId: PlayerId;
5455
+ rank: number;
5456
+ result: OutcomeResult;
5457
+ score?: number;
5458
+ scoreBreakdown?: readonly OutcomeScoreComponent[];
5459
+ tieBreaks?: readonly OutcomeTieBreak[];
5460
+ };
5461
+ ```
5462
+
5463
+ _No JSDoc summary is available yet._
5464
+
5465
+ ### OutcomeTieBreak
5466
+
5467
+ ```ts
5468
+ type OutcomeTieBreak = {
5469
+ id: string;
5470
+ label: string;
5471
+ value: number | string;
5472
+ };
5473
+ ```
5474
+
5475
+ _No JSDoc summary is available yet._
5476
+
5292
5477
  ### ParamsOf
5293
5478
 
5294
5479
  ```ts
@@ -5749,8 +5934,20 @@ _No JSDoc summary is available yet._
5749
5934
  type ReducerAccept<State> = {
5750
5935
  type: "accept";
5751
5936
  state: State;
5752
- instructions?: RuntimeInstructionForState<State>[];
5753
- terminal?: TerminalOutcome<PlayerIdOfState<State>>;
5937
+ instructions?: readonly RuntimeInstructionForState<State>[];
5938
+ events?: readonly GameEvent[];
5939
+ terminal?: GameOutcome<PlayerIdOfState<State>>;
5940
+ };
5941
+ ```
5942
+
5943
+ _No JSDoc summary is available yet._
5944
+
5945
+ ### ReducerAcceptOptions
5946
+
5947
+ ```ts
5948
+ type ReducerAcceptOptions<State> = {
5949
+ instructions?: readonly RuntimeInstructionForState<State>[];
5950
+ events?: readonly GameEvent[];
5754
5951
  };
5755
5952
  ```
5756
5953
 
@@ -7060,6 +7257,14 @@ type SetupProfileMetadata = {
7060
7257
  name: string;
7061
7258
  description?: string | null;
7062
7259
  optionValues?: Record<string, string> | null;
7260
+ guidance?: {
7261
+ summary?: string | null;
7262
+ steps: readonly {
7263
+ id: string;
7264
+ label: string;
7265
+ description?: string | null;
7266
+ }[];
7267
+ } | null;
7063
7268
  };
7064
7269
  ```
7065
7270
 
@@ -7575,6 +7780,20 @@ type StringKeyOf<T> = Extract<keyof T, string>;
7575
7780
 
7576
7781
  _No JSDoc summary is available yet._
7577
7782
 
7783
+ ### SystemActionEvent
7784
+
7785
+ ```ts
7786
+ type SystemActionEvent = {
7787
+ kind: "systemAction";
7788
+ procedureId: string;
7789
+ title: string;
7790
+ summary?: string;
7791
+ details?: readonly GameEventDetail[];
7792
+ };
7793
+ ```
7794
+
7795
+ _No JSDoc summary is available yet._
7796
+
7578
7797
  ### TableOfManifest
7579
7798
 
7580
7799
  ```ts
@@ -7629,21 +7848,6 @@ type TargetKind = "edge" | "vertex" | "space" | "tile" | "card";
7629
7848
 
7630
7849
  _No JSDoc summary is available yet._
7631
7850
 
7632
- ### TerminalOutcome
7633
-
7634
- ```ts
7635
- type TerminalOutcome<
7636
- PlayerId extends string = string,
7637
- Score extends number = number,
7638
- > = {
7639
- winnerPlayerId?: PlayerId;
7640
- finalScores?: Partial<Record<PlayerId, Score>>;
7641
- reason: string;
7642
- };
7643
- ```
7644
-
7645
- _No JSDoc summary is available yet._
7646
-
7647
7851
  ### TiledBoardIdOfTable
7648
7852
 
7649
7853
  ```ts
@@ -8032,6 +8236,34 @@ interface ActionGroupProps {
8032
8236
 
8033
8237
  _No JSDoc summary is available yet._
8034
8238
 
8239
+ ### ActionHelp
8240
+
8241
+ ```ts
8242
+ function ActionHelp({
8243
+ label,
8244
+ help,
8245
+ unavailableReason,
8246
+ className,
8247
+ style,
8248
+ }: ActionHelpProps): react_jsx_runtime.JSX.Element;
8249
+ ```
8250
+
8251
+ _No JSDoc summary is available yet._
8252
+
8253
+ ### ActionHelpProps
8254
+
8255
+ ```ts
8256
+ interface ActionHelpProps {
8257
+ label: ReactNode;
8258
+ help?: ReactNode;
8259
+ unavailableReason?: ReactNode;
8260
+ className?: string;
8261
+ style?: CSSProperties;
8262
+ }
8263
+ ```
8264
+
8265
+ _No JSDoc summary is available yet._
8266
+
8035
8267
  ### ActionPanel
8036
8268
 
8037
8269
  ```ts
@@ -9652,32 +9884,29 @@ interface FoundationColor {
9652
9884
 
9653
9885
  Foundation palette. Components never read this directly; presets map these into {@link SemanticTokens }. Exposed so authors who write a full theme can compose without inventing their own palette type.
9654
9886
 
9655
- ### GameEndDisplay
9887
+ ### GameEventLog
9656
9888
 
9657
9889
  ```ts
9658
- function GameEndDisplay({
9659
- isGameOver,
9660
- scores,
9661
- winnerMessage,
9662
- showDetails,
9663
- onReturnToLobby,
9890
+ function GameEventLog({
9891
+ events,
9892
+ empty,
9893
+ maxVisible,
9664
9894
  className,
9665
- }: GameEndDisplayProps): react_jsx_runtime.JSX.Element | null;
9895
+ style,
9896
+ }: GameEventLogProps): react_jsx_runtime.JSX.Element;
9666
9897
  ```
9667
9898
 
9668
9899
  _No JSDoc summary is available yet._
9669
9900
 
9670
- ### GameEndDisplayProps
9901
+ ### GameEventLogProps
9671
9902
 
9672
9903
  ```ts
9673
- interface GameEndDisplayProps {
9674
- isGameOver: boolean;
9675
- /** Sorted by rank */
9676
- scores: PlayerScore[];
9677
- winnerMessage?: string;
9678
- showDetails?: boolean;
9679
- onReturnToLobby?: () => void;
9904
+ interface GameEventLogProps {
9905
+ events: readonly ProjectedGameEvent[];
9906
+ empty?: ReactNode;
9907
+ maxVisible?: number;
9680
9908
  className?: string;
9909
+ style?: CSSProperties;
9681
9910
  }
9682
9911
  ```
9683
9912
 
@@ -9815,6 +10044,69 @@ function getThemePreset(id: ThemePresetId): Theme | undefined;
9815
10044
 
9816
10045
  Look up a registered preset by id. Returns `undefined` if missing.
9817
10046
 
10047
+ ### GuidanceAction
10048
+
10049
+ ```ts
10050
+ interface GuidanceAction {
10051
+ label: ReactNode;
10052
+ help?: ReactNode;
10053
+ unavailableReason?: ReactNode;
10054
+ }
10055
+ ```
10056
+
10057
+ _No JSDoc summary is available yet._
10058
+
10059
+ ### GuidancePanel
10060
+
10061
+ ```ts
10062
+ function GuidancePanel({
10063
+ phase,
10064
+ actions,
10065
+ className,
10066
+ style,
10067
+ }: GuidancePanelProps): react_jsx_runtime.JSX.Element;
10068
+ ```
10069
+
10070
+ _No JSDoc summary is available yet._
10071
+
10072
+ ### GuidancePanelProps
10073
+
10074
+ ```ts
10075
+ interface GuidancePanelProps {
10076
+ phase: GuidancePhase;
10077
+ actions?: readonly GuidanceAction[];
10078
+ className?: string;
10079
+ style?: CSSProperties;
10080
+ }
10081
+ ```
10082
+
10083
+ _No JSDoc summary is available yet._
10084
+
10085
+ ### GuidancePhase
10086
+
10087
+ ```ts
10088
+ interface GuidancePhase {
10089
+ id: string;
10090
+ label: string;
10091
+ summary?: ReactNode;
10092
+ objective?: ReactNode;
10093
+ }
10094
+ ```
10095
+
10096
+ _No JSDoc summary is available yet._
10097
+
10098
+ ### GuidanceSetupStep
10099
+
10100
+ ```ts
10101
+ interface GuidanceSetupStep {
10102
+ id: string;
10103
+ label: ReactNode;
10104
+ description?: ReactNode;
10105
+ }
10106
+ ```
10107
+
10108
+ _No JSDoc summary is available yet._
10109
+
9818
10110
  ### Hand
9819
10111
 
9820
10112
  ```ts
@@ -10602,6 +10894,32 @@ function normalizeSquareBoardInput<TBoard extends AnySquareBoardInput>(
10602
10894
 
10603
10895
  _No JSDoc summary is available yet._
10604
10896
 
10897
+ ### OutcomeDialog
10898
+
10899
+ ```ts
10900
+ function OutcomeDialog<PlayerId extends string = string>({
10901
+ outcome,
10902
+ playerName,
10903
+ onReturnToLobby,
10904
+ className,
10905
+ }: OutcomeDialogProps<PlayerId>): react_jsx_runtime.JSX.Element | null;
10906
+ ```
10907
+
10908
+ _No JSDoc summary is available yet._
10909
+
10910
+ ### OutcomeDialogProps
10911
+
10912
+ ```ts
10913
+ interface OutcomeDialogProps<PlayerId extends string = string> {
10914
+ outcome?: GameOutcome<PlayerId> | null;
10915
+ playerName: (playerId: PlayerId) => ReactNode;
10916
+ onReturnToLobby?: () => void;
10917
+ className?: string;
10918
+ }
10919
+ ```
10920
+
10921
+ _No JSDoc summary is available yet._
10922
+
10605
10923
  ### Panel
10606
10924
 
10607
10925
  ```ts
@@ -10923,20 +11241,6 @@ type PlayerId = string;
10923
11241
 
10924
11242
  _No JSDoc summary is available yet._
10925
11243
 
10926
- ### PlayerScore
10927
-
10928
- ```ts
10929
- interface PlayerScore {
10930
- playerId: string;
10931
- name: string;
10932
- score: number;
10933
- isWinner?: boolean;
10934
- details?: Record<string, number>;
10935
- }
10936
- ```
10937
-
10938
- End-of-game winner display and scoreboard overlay.
10939
-
10940
11244
  ### PrimaryActionAttention
10941
11245
 
10942
11246
  ```ts
@@ -11006,6 +11310,17 @@ interface PrimaryButtonProps
11006
11310
 
11007
11311
  _No JSDoc summary is available yet._
11008
11312
 
11313
+ ### ProjectedGameEvent
11314
+
11315
+ ```ts
11316
+ type ProjectedGameEvent = GameEvent & {
11317
+ version: number;
11318
+ index: number;
11319
+ };
11320
+ ```
11321
+
11322
+ _No JSDoc summary is available yet._
11323
+
11009
11324
  ### Radius
11010
11325
 
11011
11326
  ```ts
@@ -11296,6 +11611,45 @@ interface SemanticColor { ... }
11296
11611
 
11297
11612
  Semantic colors consumed by every component. These are the _only_ color tokens components should reference. Names describe role ("the surface a player card sits on"), not appearance ("light grey").
11298
11613
 
11614
+ ### SetupChecklist
11615
+
11616
+ ```ts
11617
+ function SetupChecklist({
11618
+ guidance,
11619
+ completedStepIds,
11620
+ className,
11621
+ style,
11622
+ }: SetupChecklistProps): react_jsx_runtime.JSX.Element | null;
11623
+ ```
11624
+
11625
+ _No JSDoc summary is available yet._
11626
+
11627
+ ### SetupChecklistProps
11628
+
11629
+ ```ts
11630
+ interface SetupChecklistProps {
11631
+ guidance?: SetupGuidance | null;
11632
+ completedStepIds?: readonly string[];
11633
+ className?: string;
11634
+ style?: CSSProperties;
11635
+ }
11636
+ ```
11637
+
11638
+ _No JSDoc summary is available yet._
11639
+
11640
+ ### SetupGuidance
11641
+
11642
+ ```ts
11643
+ interface SetupGuidance {
11644
+ profileId: string;
11645
+ name: ReactNode;
11646
+ summary?: ReactNode;
11647
+ steps: readonly GuidanceSetupStep[];
11648
+ }
11649
+ ```
11650
+
11651
+ _No JSDoc summary is available yet._
11652
+
11299
11653
  ### SharedBoardRef
11300
11654
 
11301
11655
  ```ts
@@ -11525,6 +11879,32 @@ interface StagingZoneProps { ... }
11525
11879
 
11526
11880
  _No JSDoc summary is available yet._
11527
11881
 
11882
+ ### StandingsTable
11883
+
11884
+ ```ts
11885
+ function StandingsTable<PlayerId extends string = string>({
11886
+ rows,
11887
+ playerName,
11888
+ provisional,
11889
+ className,
11890
+ }: StandingsTableProps<PlayerId>): react_jsx_runtime.JSX.Element;
11891
+ ```
11892
+
11893
+ _No JSDoc summary is available yet._
11894
+
11895
+ ### StandingsTableProps
11896
+
11897
+ ```ts
11898
+ interface StandingsTableProps<PlayerId extends string = string> {
11899
+ rows: readonly OutcomeStanding<PlayerId>[];
11900
+ playerName: (playerId: PlayerId) => ReactNode;
11901
+ provisional?: boolean;
11902
+ className?: string;
11903
+ }
11904
+ ```
11905
+
11906
+ _No JSDoc summary is available yet._
11907
+
11528
11908
  ### studioTheme
11529
11909
 
11530
11910
  ```ts
@@ -11548,6 +11928,44 @@ function surfaceStyle(
11548
11928
 
11549
11929
  Standard surface card (player card, action panel, hand drawer). The `tone` selects which `surface.*` slot to read; `interactive` adds the hover-elevation transition baseline.
11550
11930
 
11931
+ ### SystemActionEvent
11932
+
11933
+ ```ts
11934
+ interface SystemActionEvent {
11935
+ kind: "systemAction";
11936
+ procedureId: string;
11937
+ title: string;
11938
+ summary?: string;
11939
+ details?: readonly GameEventDetail[];
11940
+ }
11941
+ ```
11942
+
11943
+ _No JSDoc summary is available yet._
11944
+
11945
+ ### SystemActionSummary
11946
+
11947
+ ```ts
11948
+ function SystemActionSummary({
11949
+ event,
11950
+ className,
11951
+ style,
11952
+ }: SystemActionSummaryProps): react_jsx_runtime.JSX.Element;
11953
+ ```
11954
+
11955
+ _No JSDoc summary is available yet._
11956
+
11957
+ ### SystemActionSummaryProps
11958
+
11959
+ ```ts
11960
+ interface SystemActionSummaryProps {
11961
+ event: SystemActionEvent;
11962
+ className?: string;
11963
+ style?: CSSProperties;
11964
+ }
11965
+ ```
11966
+
11967
+ _No JSDoc summary is available yet._
11968
+
11551
11969
  ### tabletopTheme
11552
11970
 
11553
11971
  ```ts
@@ -12264,6 +12682,34 @@ interface ActionGroupProps {
12264
12682
 
12265
12683
  _No JSDoc summary is available yet._
12266
12684
 
12685
+ ### ActionHelp
12686
+
12687
+ ```ts
12688
+ function ActionHelp({
12689
+ label,
12690
+ help,
12691
+ unavailableReason,
12692
+ className,
12693
+ style,
12694
+ }: ActionHelpProps): react_jsx_runtime.JSX.Element;
12695
+ ```
12696
+
12697
+ _No JSDoc summary is available yet._
12698
+
12699
+ ### ActionHelpProps
12700
+
12701
+ ```ts
12702
+ interface ActionHelpProps {
12703
+ label: ReactNode;
12704
+ help?: ReactNode;
12705
+ unavailableReason?: ReactNode;
12706
+ className?: string;
12707
+ style?: CSSProperties;
12708
+ }
12709
+ ```
12710
+
12711
+ _No JSDoc summary is available yet._
12712
+
12267
12713
  ### ActionPanel
12268
12714
 
12269
12715
  ```ts
@@ -13429,32 +13875,29 @@ interface ErrorBoundaryProps {
13429
13875
 
13430
13876
  _No JSDoc summary is available yet._
13431
13877
 
13432
- ### GameEndDisplay
13878
+ ### GameEventLog
13433
13879
 
13434
13880
  ```ts
13435
- function GameEndDisplay({
13436
- isGameOver,
13437
- scores,
13438
- winnerMessage,
13439
- showDetails,
13440
- onReturnToLobby,
13881
+ function GameEventLog({
13882
+ events,
13883
+ empty,
13884
+ maxVisible,
13441
13885
  className,
13442
- }: GameEndDisplayProps): react_jsx_runtime.JSX.Element | null;
13886
+ style,
13887
+ }: GameEventLogProps): react_jsx_runtime.JSX.Element;
13443
13888
  ```
13444
13889
 
13445
13890
  _No JSDoc summary is available yet._
13446
13891
 
13447
- ### GameEndDisplayProps
13892
+ ### GameEventLogProps
13448
13893
 
13449
13894
  ```ts
13450
- interface GameEndDisplayProps {
13451
- isGameOver: boolean;
13452
- /** Sorted by rank */
13453
- scores: PlayerScore[];
13454
- winnerMessage?: string;
13455
- showDetails?: boolean;
13456
- onReturnToLobby?: () => void;
13895
+ interface GameEventLogProps {
13896
+ events: readonly ProjectedGameEvent[];
13897
+ empty?: ReactNode;
13898
+ maxVisible?: number;
13457
13899
  className?: string;
13900
+ style?: CSSProperties;
13458
13901
  }
13459
13902
  ```
13460
13903
 
@@ -13484,6 +13927,69 @@ interface GameSkeletonProps {
13484
13927
 
13485
13928
  GameSkeleton - Loading state component
13486
13929
 
13930
+ ### GuidanceAction
13931
+
13932
+ ```ts
13933
+ interface GuidanceAction {
13934
+ label: ReactNode;
13935
+ help?: ReactNode;
13936
+ unavailableReason?: ReactNode;
13937
+ }
13938
+ ```
13939
+
13940
+ _No JSDoc summary is available yet._
13941
+
13942
+ ### GuidancePanel
13943
+
13944
+ ```ts
13945
+ function GuidancePanel({
13946
+ phase,
13947
+ actions,
13948
+ className,
13949
+ style,
13950
+ }: GuidancePanelProps): react_jsx_runtime.JSX.Element;
13951
+ ```
13952
+
13953
+ _No JSDoc summary is available yet._
13954
+
13955
+ ### GuidancePanelProps
13956
+
13957
+ ```ts
13958
+ interface GuidancePanelProps {
13959
+ phase: GuidancePhase;
13960
+ actions?: readonly GuidanceAction[];
13961
+ className?: string;
13962
+ style?: CSSProperties;
13963
+ }
13964
+ ```
13965
+
13966
+ _No JSDoc summary is available yet._
13967
+
13968
+ ### GuidancePhase
13969
+
13970
+ ```ts
13971
+ interface GuidancePhase {
13972
+ id: string;
13973
+ label: string;
13974
+ summary?: ReactNode;
13975
+ objective?: ReactNode;
13976
+ }
13977
+ ```
13978
+
13979
+ _No JSDoc summary is available yet._
13980
+
13981
+ ### GuidanceSetupStep
13982
+
13983
+ ```ts
13984
+ interface GuidanceSetupStep {
13985
+ id: string;
13986
+ label: ReactNode;
13987
+ description?: ReactNode;
13988
+ }
13989
+ ```
13990
+
13991
+ _No JSDoc summary is available yet._
13992
+
13487
13993
  ### Hand
13488
13994
 
13489
13995
  ```ts
@@ -13987,6 +14493,32 @@ interface NetworkPiece {
13987
14493
 
13988
14494
  _No JSDoc summary is available yet._
13989
14495
 
14496
+ ### OutcomeDialog
14497
+
14498
+ ```ts
14499
+ function OutcomeDialog<PlayerId extends string = string>({
14500
+ outcome,
14501
+ playerName,
14502
+ onReturnToLobby,
14503
+ className,
14504
+ }: OutcomeDialogProps<PlayerId>): react_jsx_runtime.JSX.Element | null;
14505
+ ```
14506
+
14507
+ _No JSDoc summary is available yet._
14508
+
14509
+ ### OutcomeDialogProps
14510
+
14511
+ ```ts
14512
+ interface OutcomeDialogProps<PlayerId extends string = string> {
14513
+ outcome?: GameOutcome<PlayerId> | null;
14514
+ playerName: (playerId: PlayerId) => ReactNode;
14515
+ onReturnToLobby?: () => void;
14516
+ className?: string;
14517
+ }
14518
+ ```
14519
+
14520
+ _No JSDoc summary is available yet._
14521
+
13990
14522
  ### Panel
13991
14523
 
13992
14524
  ```ts
@@ -14198,20 +14730,6 @@ interface PlayAreaProps<CardData extends ViewCard = ViewCard> {
14198
14730
 
14199
14731
  _No JSDoc summary is available yet._
14200
14732
 
14201
- ### PlayerScore
14202
-
14203
- ```ts
14204
- interface PlayerScore {
14205
- playerId: string;
14206
- name: string;
14207
- score: number;
14208
- isWinner?: boolean;
14209
- details?: Record<string, number>;
14210
- }
14211
- ```
14212
-
14213
- End-of-game winner display and scoreboard overlay.
14214
-
14215
14733
  ### PrimaryActionAttention
14216
14734
 
14217
14735
  ```ts
@@ -14281,6 +14799,17 @@ interface PrimaryButtonProps
14281
14799
 
14282
14800
  _No JSDoc summary is available yet._
14283
14801
 
14802
+ ### ProjectedGameEvent
14803
+
14804
+ ```ts
14805
+ type ProjectedGameEvent = GameEvent & {
14806
+ version: number;
14807
+ index: number;
14808
+ };
14809
+ ```
14810
+
14811
+ _No JSDoc summary is available yet._
14812
+
14284
14813
  ### ResourceCounter
14285
14814
 
14286
14815
  ```ts
@@ -14538,6 +15067,45 @@ function SelectTrigger({
14538
15067
 
14539
15068
  _No JSDoc summary is available yet._
14540
15069
 
15070
+ ### SetupChecklist
15071
+
15072
+ ```ts
15073
+ function SetupChecklist({
15074
+ guidance,
15075
+ completedStepIds,
15076
+ className,
15077
+ style,
15078
+ }: SetupChecklistProps): react_jsx_runtime.JSX.Element | null;
15079
+ ```
15080
+
15081
+ _No JSDoc summary is available yet._
15082
+
15083
+ ### SetupChecklistProps
15084
+
15085
+ ```ts
15086
+ interface SetupChecklistProps {
15087
+ guidance?: SetupGuidance | null;
15088
+ completedStepIds?: readonly string[];
15089
+ className?: string;
15090
+ style?: CSSProperties;
15091
+ }
15092
+ ```
15093
+
15094
+ _No JSDoc summary is available yet._
15095
+
15096
+ ### SetupGuidance
15097
+
15098
+ ```ts
15099
+ interface SetupGuidance {
15100
+ profileId: string;
15101
+ name: ReactNode;
15102
+ summary?: ReactNode;
15103
+ steps: readonly GuidanceSetupStep[];
15104
+ }
15105
+ ```
15106
+
15107
+ _No JSDoc summary is available yet._
15108
+
14541
15109
  ### SlotDefinition
14542
15110
 
14543
15111
  ```ts
@@ -14705,6 +15273,70 @@ interface StagingZoneProps { ... }
14705
15273
 
14706
15274
  _No JSDoc summary is available yet._
14707
15275
 
15276
+ ### StandingsTable
15277
+
15278
+ ```ts
15279
+ function StandingsTable<PlayerId extends string = string>({
15280
+ rows,
15281
+ playerName,
15282
+ provisional,
15283
+ className,
15284
+ }: StandingsTableProps<PlayerId>): react_jsx_runtime.JSX.Element;
15285
+ ```
15286
+
15287
+ _No JSDoc summary is available yet._
15288
+
15289
+ ### StandingsTableProps
15290
+
15291
+ ```ts
15292
+ interface StandingsTableProps<PlayerId extends string = string> {
15293
+ rows: readonly OutcomeStanding<PlayerId>[];
15294
+ playerName: (playerId: PlayerId) => ReactNode;
15295
+ provisional?: boolean;
15296
+ className?: string;
15297
+ }
15298
+ ```
15299
+
15300
+ _No JSDoc summary is available yet._
15301
+
15302
+ ### SystemActionEvent
15303
+
15304
+ ```ts
15305
+ interface SystemActionEvent {
15306
+ kind: "systemAction";
15307
+ procedureId: string;
15308
+ title: string;
15309
+ summary?: string;
15310
+ details?: readonly GameEventDetail[];
15311
+ }
15312
+ ```
15313
+
15314
+ _No JSDoc summary is available yet._
15315
+
15316
+ ### SystemActionSummary
15317
+
15318
+ ```ts
15319
+ function SystemActionSummary({
15320
+ event,
15321
+ className,
15322
+ style,
15323
+ }: SystemActionSummaryProps): react_jsx_runtime.JSX.Element;
15324
+ ```
15325
+
15326
+ _No JSDoc summary is available yet._
15327
+
15328
+ ### SystemActionSummaryProps
15329
+
15330
+ ```ts
15331
+ interface SystemActionSummaryProps {
15332
+ event: SystemActionEvent;
15333
+ className?: string;
15334
+ style?: CSSProperties;
15335
+ }
15336
+ ```
15337
+
15338
+ _No JSDoc summary is available yet._
15339
+
14708
15340
  ### ThemedButton
14709
15341
 
14710
15342
  ```ts
@@ -15554,6 +16186,21 @@ _No JSDoc summary is available yet._
15554
16186
 
15555
16187
  ## @dreamboard-games/sdk/runtime
15556
16188
 
16189
+ ### BoardGridInteractionFilter
16190
+
16191
+ ```ts
16192
+ type BoardGridInteractionFilter<Key extends string = string> =
16193
+ | "auto"
16194
+ | false
16195
+ | {
16196
+ edge?: readonly Key[];
16197
+ vertex?: readonly Key[];
16198
+ space?: readonly Key[];
16199
+ };
16200
+ ```
16201
+
16202
+ _No JSDoc summary is available yet._
16203
+
15557
16204
  ### BoardHexGridProps
15558
16205
 
15559
16206
  ```ts
@@ -15601,6 +16248,27 @@ type BoardSpaceTargetProps<Target extends string = BoardTargetKey> = Omit<
15601
16248
 
15602
16249
  _No JSDoc summary is available yet._
15603
16250
 
16251
+ ### BoardSquareGridInteractionFilter
16252
+
16253
+ ```ts
16254
+ type BoardSquareGridInteractionFilter = BoardGridInteractionFilter<string>;
16255
+ ```
16256
+
16257
+ _No JSDoc summary is available yet._
16258
+
16259
+ ### BoardSquareGridProps
16260
+
16261
+ ```ts
16262
+ type BoardSquareGridProps<TBoard extends AnySquareBoardInput> = Omit<
16263
+ SquareGridBoardProps<TBoard>,
16264
+ "interactiveEdges" | "interactiveVertices" | "interactiveSpaces"
16265
+ > & {
16266
+ interactions?: BoardSquareGridInteractionFilter;
16267
+ };
16268
+ ```
16269
+
16270
+ _No JSDoc summary is available yet._
16271
+
15604
16272
  ### ClientParamSchemaMap
15605
16273
 
15606
16274
  ```ts
@@ -15640,8 +16308,15 @@ function createWorkspaceUIContract<
15640
16308
  Resource extends string,
15641
16309
  Card,
15642
16310
  HexBoards extends Record<string, unknown>,
16311
+ SquareBoards extends Record<string, unknown> = Record<string, unknown>,
15643
16312
  >(
15644
- options: WorkspaceContractOptions<Contract, Resource, Card, HexBoards>,
16313
+ options: WorkspaceContractOptions<
16314
+ Contract,
16315
+ Resource,
16316
+ Card,
16317
+ HexBoards,
16318
+ SquareBoards
16319
+ >,
15645
16320
  ): WorkspaceUI;
15646
16321
  ```
15647
16322
 
@@ -15666,6 +16341,25 @@ interface DreamboardUIRegister {
15666
16341
 
15667
16342
  _No JSDoc summary is available yet._
15668
16343
 
16344
+ ### GameEvent
16345
+
16346
+ ```ts
16347
+ type GameEvent = SystemActionEvent;
16348
+ ```
16349
+
16350
+ _No JSDoc summary is available yet._
16351
+
16352
+ ### GameEventDetail
16353
+
16354
+ ```ts
16355
+ interface GameEventDetail {
16356
+ label: string;
16357
+ value: string | number | boolean;
16358
+ }
16359
+ ```
16360
+
16361
+ _No JSDoc summary is available yet._
16362
+
15669
16363
  ### GameMeState
15670
16364
 
15671
16365
  ```ts
@@ -15772,11 +16466,11 @@ _No JSDoc summary is available yet._
15772
16466
 
15773
16467
  ```ts
15774
16468
  interface PluginRuntimeClient {
15775
- getSession(): v | null;
16469
+ getSession(): w | null;
15776
16470
  subscribeSession(listener: () => void): () => void;
15777
- getFrame(): o | null;
16471
+ getFrame(): p | null;
15778
16472
  subscribeFrame(listener: () => void): () => void;
15779
- validateInteraction(interactionId: string, params: unknown): Promise<G>;
16473
+ validateInteraction(interactionId: string, params: unknown): Promise<M>;
15780
16474
  submitInteraction(interactionId: string, params: unknown): Promise<void>;
15781
16475
  disconnect(): void;
15782
16476
  }
@@ -15810,7 +16504,7 @@ _No JSDoc summary is available yet._
15810
16504
  ```ts
15811
16505
  interface PluginTransport {
15812
16506
  start(onMessage: (message: H) => void): () => void;
15813
- send(message: x): void;
16507
+ send(message: y): void;
15814
16508
  }
15815
16509
  ```
15816
16510
 
@@ -15822,12 +16516,24 @@ _No JSDoc summary is available yet._
15822
16516
  interface PostMessagePluginTransportOptions {
15823
16517
  readonly targetWindow?: Window;
15824
16518
  readonly parentWindow?: Window;
16519
+ readonly bundledSdkVersion?: string;
15825
16520
  readonly onInvalidMessage?: (reason: string, value: unknown) => void;
15826
16521
  }
15827
16522
  ```
15828
16523
 
15829
16524
  _No JSDoc summary is available yet._
15830
16525
 
16526
+ ### ProjectedGameEvent
16527
+
16528
+ ```ts
16529
+ type ProjectedGameEvent = GameEvent & {
16530
+ version: number;
16531
+ index: number;
16532
+ };
16533
+ ```
16534
+
16535
+ _No JSDoc summary is available yet._
16536
+
15831
16537
  ### RegisteredUI
15832
16538
 
15833
16539
  ```ts
@@ -15870,6 +16576,20 @@ interface RuntimeIdFactory {
15870
16576
 
15871
16577
  _No JSDoc summary is available yet._
15872
16578
 
16579
+ ### SystemActionEvent
16580
+
16581
+ ```ts
16582
+ interface SystemActionEvent {
16583
+ kind: "systemAction";
16584
+ procedureId: string;
16585
+ title: string;
16586
+ summary?: string;
16587
+ details?: readonly GameEventDetail[];
16588
+ }
16589
+ ```
16590
+
16591
+ _No JSDoc summary is available yet._
16592
+
15873
16593
  ### TypedGame
15874
16594
 
15875
16595
  ```ts
@@ -16147,6 +16867,7 @@ const Board: {
16147
16867
  State: typeof BoardState;
16148
16868
  HexGrid: typeof BoardHexGrid;
16149
16869
  HexView: typeof BoardHexView;
16870
+ SquareGrid: typeof BoardSquareGrid;
16150
16871
  Target: typeof BoardTarget;
16151
16872
  SpaceTarget: typeof BoardSpaceTarget;
16152
16873
  EdgeTarget: typeof BoardEdgeTarget;
@@ -16177,6 +16898,21 @@ type BoardEdgeTargetProps<Target extends string = BoardTargetKey> = Omit<
16177
16898
 
16178
16899
  _No JSDoc summary is available yet._
16179
16900
 
16901
+ ### BoardGridInteractionFilter
16902
+
16903
+ ```ts
16904
+ type BoardGridInteractionFilter<Key extends string = string> =
16905
+ | "auto"
16906
+ | false
16907
+ | {
16908
+ edge?: readonly Key[];
16909
+ vertex?: readonly Key[];
16910
+ space?: readonly Key[];
16911
+ };
16912
+ ```
16913
+
16914
+ _No JSDoc summary is available yet._
16915
+
16180
16916
  ### BoardHexGrid
16181
16917
 
16182
16918
  ```ts
@@ -16196,14 +16932,7 @@ _No JSDoc summary is available yet._
16196
16932
  ### BoardHexGridInteractionFilter
16197
16933
 
16198
16934
  ```ts
16199
- type BoardHexGridInteractionFilter =
16200
- | "auto"
16201
- | false
16202
- | {
16203
- edge?: readonly string[];
16204
- vertex?: readonly string[];
16205
- space?: readonly string[];
16206
- };
16935
+ type BoardHexGridInteractionFilter = BoardGridInteractionFilter<string>;
16207
16936
  ```
16208
16937
 
16209
16938
  _No JSDoc summary is available yet._
@@ -16315,6 +17044,39 @@ type BoardSpaceTargetProps<Target extends string = BoardTargetKey> = Omit<
16315
17044
 
16316
17045
  _No JSDoc summary is available yet._
16317
17046
 
17047
+ ### BoardSquareGrid
17048
+
17049
+ ```ts
17050
+ function BoardSquareGrid<const TBoard extends AnySquareBoardInput>({
17051
+ board,
17052
+ interactions,
17053
+ ...props
17054
+ }: BoardSquareGridProps<TBoard>): react_jsx_runtime.JSX.Element;
17055
+ ```
17056
+
17057
+ _No JSDoc summary is available yet._
17058
+
17059
+ ### BoardSquareGridInteractionFilter
17060
+
17061
+ ```ts
17062
+ type BoardSquareGridInteractionFilter = BoardGridInteractionFilter<string>;
17063
+ ```
17064
+
17065
+ _No JSDoc summary is available yet._
17066
+
17067
+ ### BoardSquareGridProps
17068
+
17069
+ ```ts
17070
+ type BoardSquareGridProps<TBoard extends AnySquareBoardInput> = Omit<
17071
+ SquareGridBoardProps<TBoard>,
17072
+ "interactiveEdges" | "interactiveVertices" | "interactiveSpaces"
17073
+ > & {
17074
+ interactions?: BoardSquareGridInteractionFilter;
17075
+ };
17076
+ ```
17077
+
17078
+ _No JSDoc summary is available yet._
17079
+
16318
17080
  ### BoardState
16319
17081
 
16320
17082
  ```ts
@@ -16765,6 +17527,30 @@ interface GameViewportProps extends HTMLAttributes<HTMLDivElement> {
16765
17527
 
16766
17528
  _No JSDoc summary is available yet._
16767
17529
 
17530
+ ### HandStagingView
17531
+
17532
+ ```ts
17533
+ function HandStagingView({
17534
+ zone,
17535
+ renderCard,
17536
+ renderEmptySlot,
17537
+ label,
17538
+ cardSize,
17539
+ ariaLabel,
17540
+ className,
17541
+ }: HandStagingViewProps): react_jsx_runtime.JSX.Element | null;
17542
+ ```
17543
+
17544
+ Dreamboard-aware staging surface for a many-select card collection (e.g. the cards you've chosen to pass). Projects the live draft into a fixed, always-visible row of slots (empty placeholders until something is staged); tapping a staged card routes an `activate` intent, which toggles it back out of the collection so it returns to the hand. Adds no draft logic — the presentational layout/theming lives in the SDK `StagingZone`.
17545
+
17546
+ ### HandStagingViewProps
17547
+
17548
+ ```ts
17549
+ interface HandStagingViewProps { ... }
17550
+ ```
17551
+
17552
+ _No JSDoc summary is available yet._
17553
+
16768
17554
  ### HandSurfaceView
16769
17555
 
16770
17556
  ```ts
@@ -17133,6 +17919,7 @@ function InteractionSubmit({
17133
17919
  params,
17134
17920
  onSubmitSuccess,
17135
17921
  onSubmitError,
17922
+ style,
17136
17923
  ...props
17137
17924
  }: InteractionSubmitProps): react.ReactElement<
17138
17925
  unknown,
@@ -18306,6 +19093,21 @@ _No JSDoc summary is available yet._
18306
19093
 
18307
19094
  ## @dreamboard-games/sdk/runtime/workspace-contract
18308
19095
 
19096
+ ### BoardGridInteractionFilter
19097
+
19098
+ ```ts
19099
+ type BoardGridInteractionFilter<Key extends string = string> =
19100
+ | "auto"
19101
+ | false
19102
+ | {
19103
+ edge?: readonly Key[];
19104
+ vertex?: readonly Key[];
19105
+ space?: readonly Key[];
19106
+ };
19107
+ ```
19108
+
19109
+ _No JSDoc summary is available yet._
19110
+
18309
19111
  ### BoardHexGridProps
18310
19112
 
18311
19113
  ```ts
@@ -18353,6 +19155,27 @@ type BoardSpaceTargetProps<Target extends string = BoardTargetKey> = Omit<
18353
19155
 
18354
19156
  _No JSDoc summary is available yet._
18355
19157
 
19158
+ ### BoardSquareGridInteractionFilter
19159
+
19160
+ ```ts
19161
+ type BoardSquareGridInteractionFilter = BoardGridInteractionFilter<string>;
19162
+ ```
19163
+
19164
+ _No JSDoc summary is available yet._
19165
+
19166
+ ### BoardSquareGridProps
19167
+
19168
+ ```ts
19169
+ type BoardSquareGridProps<TBoard extends AnySquareBoardInput> = Omit<
19170
+ SquareGridBoardProps<TBoard>,
19171
+ "interactiveEdges" | "interactiveVertices" | "interactiveSpaces"
19172
+ > & {
19173
+ interactions?: BoardSquareGridInteractionFilter;
19174
+ };
19175
+ ```
19176
+
19177
+ _No JSDoc summary is available yet._
19178
+
18356
19179
  ### ClientParamSchemaMap
18357
19180
 
18358
19181
  ```ts
@@ -18372,8 +19195,15 @@ function createWorkspaceUIContract<
18372
19195
  Resource extends string,
18373
19196
  Card,
18374
19197
  HexBoards extends Record<string, unknown>,
19198
+ SquareBoards extends Record<string, unknown> = Record<string, unknown>,
18375
19199
  >(
18376
- options: WorkspaceContractOptions<Contract, Resource, Card, HexBoards>,
19200
+ options: WorkspaceContractOptions<
19201
+ Contract,
19202
+ Resource,
19203
+ Card,
19204
+ HexBoards,
19205
+ SquareBoards
19206
+ >,
18377
19207
  ): WorkspaceUI;
18378
19208
  ```
18379
19209
 
@@ -19213,7 +20043,7 @@ _No JSDoc summary is available yet._
19213
20043
  ### REDUCER_CONTRACT_VERSION
19214
20044
 
19215
20045
  ```ts
19216
- const REDUCER_CONTRACT_VERSION: "0.2.1";
20046
+ const REDUCER_CONTRACT_VERSION: "0.3.0";
19217
20047
  ```
19218
20048
 
19219
20049
  The wire-protocol version this package implements. Bumped in lockstep with any breaking change to schema/reducer-runtime.schema.json. At bundle load time hosts refuse bundles whose major version differs.
@@ -19244,6 +20074,14 @@ _No JSDoc summary is available yet._
19244
20074
 
19245
20075
  ## @dreamboard-games/sdk/testing
19246
20076
 
20077
+ ### activate
20078
+
20079
+ ```ts
20080
+ function activate(options: ReplayStepOptions): UIScenarioReplayStep;
20081
+ ```
20082
+
20083
+ _No JSDoc summary is available yet._
20084
+
19247
20085
  ### assertDeterministicUIScenarioFixture
19248
20086
 
19249
20087
  ```ts
@@ -19255,6 +20093,17 @@ function assertDeterministicUIScenarioFixture(
19255
20093
 
19256
20094
  _No JSDoc summary is available yet._
19257
20095
 
20096
+ ### assertStep
20097
+
20098
+ ```ts
20099
+ function assertStep(
20100
+ stepId: string,
20101
+ expect: UIStepExpectation,
20102
+ ): UIScenarioReplayStep;
20103
+ ```
20104
+
20105
+ _No JSDoc summary is available yet._
20106
+
19258
20107
  ### assertSupportedBrowserInteractionProtocol
19259
20108
 
19260
20109
  ```ts
@@ -19375,7 +20224,7 @@ _No JSDoc summary is available yet._
19375
20224
  ```ts
19376
20225
  interface CompilePluginProtocolTapeOptions {
19377
20226
  readonly trace: ReducerScenarioTrace;
19378
- readonly session: v;
20227
+ readonly session: w;
19379
20228
  }
19380
20229
  ```
19381
20230
 
@@ -19437,7 +20286,7 @@ _No JSDoc summary is available yet._
19437
20286
 
19438
20287
  ```ts
19439
20288
  interface CreateFixtureHostHarnessOptions {
19440
- readonly tape: u;
20289
+ readonly tape: v;
19441
20290
  readonly strict?: boolean;
19442
20291
  readonly latencyMs?: number;
19443
20292
  readonly channelId?: string;
@@ -19551,6 +20400,16 @@ function defineScenario<
19551
20400
 
19552
20401
  _No JSDoc summary is available yet._
19553
20402
 
20403
+ ### defineUIScenario
20404
+
20405
+ ```ts
20406
+ function defineUIScenario<const TScenario extends UIScenarioDefinition>(
20407
+ scenario: TScenario,
20408
+ ): Readonly<TScenario>;
20409
+ ```
20410
+
20411
+ _No JSDoc summary is available yet._
20412
+
19554
20413
  ### DeterministicIdFactory
19555
20414
 
19556
20415
  ```ts
@@ -19608,6 +20467,14 @@ function digestUIScenarioFixture(fixture: UIScenarioFixture): string;
19608
20467
 
19609
20468
  _No JSDoc summary is available yet._
19610
20469
 
20470
+ ### drag
20471
+
20472
+ ```ts
20473
+ function drag(options: DragReplayStepOptions): UIScenarioReplayStep;
20474
+ ```
20475
+
20476
+ _No JSDoc summary is available yet._
20477
+
19611
20478
  ### ExpectFn
19612
20479
 
19613
20480
  ```ts
@@ -19624,6 +20491,14 @@ type ExpectMatchers = ...;
19624
20491
 
19625
20492
  _No JSDoc summary is available yet._
19626
20493
 
20494
+ ### fill
20495
+
20496
+ ```ts
20497
+ function fill(options: FillReplayStepOptions): UIScenarioReplayStep;
20498
+ ```
20499
+
20500
+ _No JSDoc summary is available yet._
20501
+
19627
20502
  ### FixtureEnvironmentInit
19628
20503
 
19629
20504
  ```ts
@@ -19677,7 +20552,7 @@ _No JSDoc summary is available yet._
19677
20552
  ```ts
19678
20553
  interface FixtureHostHarness {
19679
20554
  readonly transport: PluginTransport;
19680
- readonly tape: u;
20555
+ readonly tape: v;
19681
20556
  reset(): void;
19682
20557
  flush(): Promise<void>;
19683
20558
  advanceHost(): Promise<void>;
@@ -19800,7 +20675,7 @@ _No JSDoc summary is available yet._
19800
20675
  ### PluginProtocolTape
19801
20676
 
19802
20677
  ```ts
19803
- type PluginProtocolTape = u;
20678
+ type PluginProtocolTape = v;
19804
20679
  ```
19805
20680
 
19806
20681
  _No JSDoc summary is available yet._
@@ -19809,9 +20684,9 @@ _No JSDoc summary is available yet._
19809
20684
 
19810
20685
  ```ts
19811
20686
  const pluginProtocolTapeSchema: z.ZodType<
19812
- u,
20687
+ v,
19813
20688
  unknown,
19814
- z.core.$ZodTypeInternals<u, unknown>
20689
+ z.core.$ZodTypeInternals<v, unknown>
19815
20690
  >;
19816
20691
  ```
19817
20692
 
@@ -19835,6 +20710,25 @@ declare const portableSemanticReplayStepSchema: ...;
19835
20710
 
19836
20711
  _No JSDoc summary is available yet._
19837
20712
 
20713
+ ### press
20714
+
20715
+ ```ts
20716
+ function press(options: ReplayStepOptions): UIScenarioReplayStep;
20717
+ ```
20718
+
20719
+ _No JSDoc summary is available yet._
20720
+
20721
+ ### ProtocolUIScenarioAuthority
20722
+
20723
+ ```ts
20724
+ interface ProtocolUIScenarioAuthority {
20725
+ readonly kind: "protocol";
20726
+ readonly tape: PluginProtocolTape;
20727
+ }
20728
+ ```
20729
+
20730
+ _No JSDoc summary is available yet._
20731
+
19838
20732
  ### ReducerScenarioBundle
19839
20733
 
19840
20734
  ```ts
@@ -19936,6 +20830,23 @@ interface ReducerScenarioViewer {
19936
20830
 
19937
20831
  _No JSDoc summary is available yet._
19938
20832
 
20833
+ ### ReducerUIScenarioAuthority
20834
+
20835
+ ```ts
20836
+ interface ReducerUIScenarioAuthority {
20837
+ readonly kind: "reducer";
20838
+ readonly referenceGame: unknown;
20839
+ readonly coverage: unknown;
20840
+ readonly bundle: unknown;
20841
+ readonly initialState: unknown;
20842
+ readonly viewer: unknown;
20843
+ readonly playerIds?: readonly string[];
20844
+ readonly operations: readonly unknown[];
20845
+ }
20846
+ ```
20847
+
20848
+ _No JSDoc summary is available yet._
20849
+
19939
20850
  ### RejectionExpectation
19940
20851
 
19941
20852
  ```ts
@@ -20011,6 +20922,14 @@ type StaleContractArtifactKind = "base-states" | "session-state";
20011
20922
 
20012
20923
  _No JSDoc summary is available yet._
20013
20924
 
20925
+ ### submit
20926
+
20927
+ ```ts
20928
+ function submit(options: ReplayStepOptions): UIScenarioReplayStep;
20929
+ ```
20930
+
20931
+ _No JSDoc summary is available yet._
20932
+
20014
20933
  ### TestRunner
20015
20934
 
20016
20935
  ```ts
@@ -20054,7 +20973,7 @@ _No JSDoc summary is available yet._
20054
20973
  ### UIFixtureFrame
20055
20974
 
20056
20975
  ```ts
20057
- type UIFixtureFrame = s;
20976
+ type UIFixtureFrame = t;
20058
20977
  ```
20059
20978
 
20060
20979
  _No JSDoc summary is available yet._
@@ -20066,9 +20985,9 @@ const uiFixtureFrameSchema: z.ZodObject<
20066
20985
  {
20067
20986
  id: z.ZodString;
20068
20987
  frame: z.ZodType<
20069
- o<unknown, string, string, string>,
20988
+ p<unknown, string, string, string>,
20070
20989
  unknown,
20071
- z.core.$ZodTypeInternals<o<unknown, string, string, string>, unknown>
20990
+ z.core.$ZodTypeInternals<p<unknown, string, string, string>, unknown>
20072
20991
  >;
20073
20992
  projectionDigest: z.ZodString;
20074
20993
  },
@@ -20081,7 +21000,7 @@ _No JSDoc summary is available yet._
20081
21000
  ### UIFixtureProtocolStep
20082
21001
 
20083
21002
  ```ts
20084
- type UIFixtureProtocolStep = t;
21003
+ type UIFixtureProtocolStep = u;
20085
21004
  ```
20086
21005
 
20087
21006
  _No JSDoc summary is available yet._
@@ -20164,6 +21083,53 @@ const uiResolvedReplayIdentitySchema: z.ZodObject<
20164
21083
 
20165
21084
  _No JSDoc summary is available yet._
20166
21085
 
21086
+ ### UIScenarioAuthority
21087
+
21088
+ ```ts
21089
+ type UIScenarioAuthority =
21090
+ | ProtocolUIScenarioAuthority
21091
+ | ReducerUIScenarioAuthority;
21092
+ ```
21093
+
21094
+ _No JSDoc summary is available yet._
21095
+
21096
+ ### UIScenarioAuthorityKind
21097
+
21098
+ ```ts
21099
+ type UIScenarioAuthorityKind = "protocol" | "reducer";
21100
+ ```
21101
+
21102
+ _No JSDoc summary is available yet._
21103
+
21104
+ ### UIScenarioDefinition
21105
+
21106
+ ```ts
21107
+ interface UIScenarioDefinition {
21108
+ readonly id: string;
21109
+ readonly title?: string;
21110
+ readonly contracts: readonly string[];
21111
+ readonly capabilities: readonly string[];
21112
+ readonly sourceFiles: readonly string[];
21113
+ readonly environment?: UIScenarioEnvironmentDefinition;
21114
+ readonly authority: UIScenarioAuthority;
21115
+ readonly replay: readonly UIScenarioReplayStep[];
21116
+ }
21117
+ ```
21118
+
21119
+ _No JSDoc summary is available yet._
21120
+
21121
+ ### UIScenarioEnvironmentDefinition
21122
+
21123
+ ```ts
21124
+ interface UIScenarioEnvironmentDefinition {
21125
+ readonly viewport?: "desktop" | "tablet" | "phone";
21126
+ readonly browsers?: readonly ("chromium" | "webkit")[];
21127
+ readonly input?: readonly ("mouse" | "touch" | "keyboard")[];
21128
+ }
21129
+ ```
21130
+
21131
+ _No JSDoc summary is available yet._
21132
+
20167
21133
  ### UIScenarioFixture
20168
21134
 
20169
21135
  ```ts