@dreamboard-games/ui-sdk 0.0.43 → 0.0.46

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 (172) hide show
  1. package/dist/components/ActionButton.d.ts.map +1 -1
  2. package/dist/components/ActionButton.js +2 -1
  3. package/dist/components/Card.d.ts +1 -1
  4. package/dist/components/Card.d.ts.map +1 -1
  5. package/dist/components/DiceRoller.d.ts +3 -2
  6. package/dist/components/DiceRoller.d.ts.map +1 -1
  7. package/dist/components/DiceRoller.js +4 -13
  8. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  9. package/dist/components/ErrorBoundary.js +94 -2
  10. package/dist/components/InteractionForm.d.ts +1 -1
  11. package/dist/components/InteractionForm.d.ts.map +1 -1
  12. package/dist/components/InteractionForm.js +29 -15
  13. package/dist/components/PrimaryActionButton.d.ts.map +1 -1
  14. package/dist/components/PrimaryActionButton.js +7 -6
  15. package/dist/components/ResourceCounter.d.ts +59 -25
  16. package/dist/components/ResourceCounter.d.ts.map +1 -1
  17. package/dist/components/ResourceCounter.js +106 -115
  18. package/dist/components/Toast.d.ts +13 -6
  19. package/dist/components/Toast.d.ts.map +1 -1
  20. package/dist/components/Toast.js +10 -5
  21. package/dist/components/board/HexGrid.js +6 -6
  22. package/dist/components/board/target-layer.d.ts +18 -2
  23. package/dist/components/board/target-layer.d.ts.map +1 -1
  24. package/dist/components/board/target-layer.js +20 -3
  25. package/dist/components/index.d.ts +3 -4
  26. package/dist/components/index.d.ts.map +1 -1
  27. package/dist/components/index.js +3 -4
  28. package/dist/components/surfaces/InboxSurface.d.ts.map +1 -1
  29. package/dist/components/surfaces/InboxSurface.js +2 -6
  30. package/dist/components/surfaces/PlayerCardsSurface.js +2 -2
  31. package/dist/components/surfaces/internal/CardZoneRoutedForm.d.ts +7 -0
  32. package/dist/components/surfaces/internal/CardZoneRoutedForm.d.ts.map +1 -0
  33. package/dist/components/surfaces/internal/CardZoneRoutedForm.js +9 -0
  34. package/dist/components/surfaces/internal/DefaultInteractionButton.d.ts.map +1 -1
  35. package/dist/components/surfaces/internal/DefaultInteractionButton.js +5 -8
  36. package/dist/components/surfaces/internal/useCardZoneInteractions.d.ts +2 -2
  37. package/dist/components/surfaces/internal/useCardZoneInteractions.d.ts.map +1 -1
  38. package/dist/components/surfaces/internal/useCardZoneInteractions.js +19 -43
  39. package/dist/context/InteractionDraftContext.d.ts +11 -2
  40. package/dist/context/InteractionDraftContext.d.ts.map +1 -1
  41. package/dist/context/InteractionDraftContext.js +41 -4
  42. package/dist/defaults/components.d.ts +0 -5
  43. package/dist/defaults/components.d.ts.map +1 -1
  44. package/dist/defaults/components.js +7 -11
  45. package/dist/hooks/useBoardInteractions.d.ts +35 -12
  46. package/dist/hooks/useBoardInteractions.d.ts.map +1 -1
  47. package/dist/hooks/useBoardInteractions.js +186 -82
  48. package/dist/hooks/useInteractionHandle.d.ts +1 -1
  49. package/dist/hooks/useInteractionHandle.d.ts.map +1 -1
  50. package/dist/hooks/useInteractionHandle.js +12 -27
  51. package/dist/index.d.ts +11 -17
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +5 -14
  54. package/dist/primitives/board.d.ts +53 -3
  55. package/dist/primitives/board.d.ts.map +1 -1
  56. package/dist/primitives/board.js +65 -41
  57. package/dist/primitives/dialog-lifecycle.d.ts +17 -0
  58. package/dist/primitives/dialog-lifecycle.d.ts.map +1 -0
  59. package/dist/primitives/dialog-lifecycle.js +24 -0
  60. package/dist/primitives/dice.d.ts +31 -0
  61. package/dist/primitives/dice.d.ts.map +1 -0
  62. package/dist/primitives/dice.js +33 -0
  63. package/dist/primitives/game.d.ts +55 -0
  64. package/dist/primitives/game.d.ts.map +1 -0
  65. package/dist/primitives/game.js +101 -0
  66. package/dist/primitives/index.d.ts +7 -4
  67. package/dist/primitives/index.d.ts.map +1 -1
  68. package/dist/primitives/index.js +7 -4
  69. package/dist/primitives/interaction-form-binding.d.ts +12 -0
  70. package/dist/primitives/interaction-form-binding.d.ts.map +1 -0
  71. package/dist/primitives/interaction-form-binding.js +14 -0
  72. package/dist/primitives/interaction-submit.d.ts +23 -0
  73. package/dist/primitives/interaction-submit.d.ts.map +1 -0
  74. package/dist/primitives/interaction-submit.js +41 -0
  75. package/dist/primitives/interaction.d.ts +76 -6
  76. package/dist/primitives/interaction.d.ts.map +1 -1
  77. package/dist/primitives/interaction.js +210 -26
  78. package/dist/primitives/player-roster.d.ts +2 -1
  79. package/dist/primitives/player-roster.d.ts.map +1 -1
  80. package/dist/primitives/prompt.d.ts +36 -11
  81. package/dist/primitives/prompt.d.ts.map +1 -1
  82. package/dist/primitives/prompt.js +29 -17
  83. package/dist/primitives/ui.d.ts +9 -0
  84. package/dist/primitives/ui.d.ts.map +1 -0
  85. package/dist/primitives/ui.js +7 -0
  86. package/dist/primitives/zone.d.ts +111 -5
  87. package/dist/primitives/zone.d.ts.map +1 -1
  88. package/dist/primitives/zone.js +349 -9
  89. package/dist/reducer.d.ts +2 -14
  90. package/dist/reducer.d.ts.map +1 -1
  91. package/dist/reducer.js +1 -14
  92. package/dist/runtime/createPluginRuntimeAPI.js +1 -1
  93. package/dist/types/hex-color.d.ts +7 -0
  94. package/dist/types/hex-color.d.ts.map +1 -0
  95. package/dist/types/hex-color.js +13 -0
  96. package/dist/types/player-state.d.ts +28 -14
  97. package/dist/types/player-state.d.ts.map +1 -1
  98. package/dist/types/plugin-state.d.ts +9 -3
  99. package/dist/types/plugin-state.d.ts.map +1 -1
  100. package/dist/ui-contract.d.ts +119 -14
  101. package/dist/ui-contract.d.ts.map +1 -1
  102. package/dist/ui-contract.js +4 -3
  103. package/dist/ui-sdk.d.ts +1637 -1245
  104. package/dist/utils/interaction-inputs.d.ts +8 -5
  105. package/dist/utils/interaction-inputs.d.ts.map +1 -1
  106. package/dist/utils/interaction-inputs.js +82 -14
  107. package/dist/utils/interaction-router.d.ts +31 -0
  108. package/dist/utils/interaction-router.d.ts.map +1 -0
  109. package/dist/utils/interaction-router.js +114 -0
  110. package/package.json +2 -1
  111. package/src/components/ActionButton.tsx +2 -1
  112. package/src/components/Card.tsx +1 -1
  113. package/src/components/DiceRoller.tsx +13 -22
  114. package/src/components/ErrorBoundary.test.tsx +19 -0
  115. package/src/components/ErrorBoundary.tsx +113 -24
  116. package/src/components/InteractionForm.test.tsx +24 -0
  117. package/src/components/InteractionForm.tsx +48 -23
  118. package/src/components/PrimaryActionButton.tsx +19 -5
  119. package/src/components/ResourceCounter.test.tsx +13 -13
  120. package/src/components/ResourceCounter.tsx +238 -244
  121. package/src/components/Toast.tsx +23 -10
  122. package/src/components/__fixtures__/ResourceCounter.fixture.tsx +70 -169
  123. package/src/components/board/HexGrid.tsx +6 -6
  124. package/src/components/board/target-layer.ts +44 -5
  125. package/src/components/index.ts +17 -10
  126. package/src/components/surfaces/InboxSurface.tsx +7 -5
  127. package/src/components/surfaces/PlayerCardsSurface.tsx +6 -6
  128. package/src/components/surfaces/internal/CardZoneRoutedForm.tsx +35 -0
  129. package/src/components/surfaces/internal/DefaultInteractionButton.tsx +17 -7
  130. package/src/components/surfaces/internal/useCardZoneInteractions.ts +25 -67
  131. package/src/context/InteractionDraftContext.tsx +51 -5
  132. package/src/defaults/components.tsx +12 -50
  133. package/src/defaults/defaults.test.tsx +1 -50
  134. package/src/hooks/useBoardInteractions.test.tsx +240 -17
  135. package/src/hooks/useBoardInteractions.ts +330 -105
  136. package/src/hooks/useInteractionHandle.ts +23 -28
  137. package/src/index.test.ts +60 -40
  138. package/src/index.ts +30 -36
  139. package/src/primitives/board.test.tsx +73 -0
  140. package/src/primitives/board.tsx +191 -40
  141. package/src/primitives/dialog-lifecycle.ts +58 -0
  142. package/src/primitives/dice.test.tsx +47 -0
  143. package/src/primitives/dice.tsx +79 -0
  144. package/src/primitives/game.test.tsx +98 -0
  145. package/src/primitives/game.tsx +213 -0
  146. package/src/primitives/index.ts +84 -0
  147. package/src/primitives/interaction-form-binding.tsx +56 -0
  148. package/src/primitives/interaction-submit.ts +90 -0
  149. package/src/primitives/interaction.test.tsx +396 -0
  150. package/src/primitives/interaction.tsx +451 -31
  151. package/src/primitives/player-roster.tsx +2 -1
  152. package/src/primitives/prompt.test.tsx +94 -3
  153. package/src/primitives/prompt.tsx +87 -48
  154. package/src/primitives/ui.test.tsx +131 -0
  155. package/src/primitives/ui.tsx +13 -0
  156. package/src/primitives/zone.test.tsx +305 -0
  157. package/src/primitives/zone.tsx +660 -12
  158. package/src/reducer.ts +7 -20
  159. package/src/runtime/createPluginRuntimeAPI.ts +1 -1
  160. package/src/types/hex-color.ts +20 -0
  161. package/src/types/player-state.ts +36 -18
  162. package/src/types/plugin-state.ts +10 -3
  163. package/src/ui-contract.ts +253 -21
  164. package/src/utils/interaction-inputs.test.ts +400 -0
  165. package/src/utils/interaction-inputs.ts +113 -11
  166. package/src/utils/interaction-router.ts +200 -0
  167. package/type-stubs/manifest-contract.d.ts +42 -0
  168. package/type-stubs/manifest-contract.d.ts.map +1 -0
  169. package/type-stubs/manifest-contract.js +72 -0
  170. package/type-stubs/ui-contract.d.ts +5 -0
  171. package/type-stubs/ui-contract.d.ts.map +1 -0
  172. package/type-stubs/ui-contract.js +1 -0
@@ -1,4 +1,5 @@
1
1
  import type { PlayerId } from "@dreamboard/manifest-contract";
2
+ import type { HexColor } from "./hex-color.js";
2
3
  /**
3
4
  * Plugin State Types
4
5
  *
@@ -11,7 +12,7 @@ export interface SeatAssignment {
11
12
  playerId: PlayerId;
12
13
  controllerUserId?: string;
13
14
  displayName: string;
14
- playerColor?: string;
15
+ playerColor?: HexColor;
15
16
  isHost?: boolean;
16
17
  }
17
18
  export interface HistoryEntrySummary {
@@ -160,7 +161,6 @@ export interface GameplayPromptOption {
160
161
  export interface InteractionContextOption {
161
162
  id: string;
162
163
  label?: string;
163
- data?: unknown;
164
164
  }
165
165
  /** Structured context attached to a prompt-kind InteractionDescriptor. */
166
166
  export interface InteractionContext {
@@ -207,9 +207,15 @@ export interface InputDomain {
207
207
  step?: number;
208
208
  choices?: readonly InteractionChoiceOption[];
209
209
  selection?: InputSelection;
210
+ dependsOn?: readonly string[];
211
+ dependentCases?: readonly InputDomainDependencyCase[];
212
+ }
213
+ export interface InputDomainDependencyCase {
214
+ when: Readonly<Record<string, string>>;
215
+ domain: InputDomain;
210
216
  }
211
217
  export interface InteractionChoiceOption {
212
- value: string;
218
+ value: string | null;
213
219
  label: string;
214
220
  icon?: string;
215
221
  badge?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-state.d.ts","sourceRoot":"","sources":["../../src/types/plugin-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-state.d.ts","sourceRoot":"","sources":["../../src/types/plugin-state.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import type { ReactElement } from "react";
2
- import { type PromptDialogHostProps } from "./components/PromptDialogHost.js";
3
- import { Board as BoardPrimitive, Interaction as InteractionPrimitive, Phase as PhasePrimitive, Prompt as PromptPrimitive, PromptInbox as PromptInboxPrimitive, Zone as ZonePrimitive, type BoardTargetProps, type InteractionCardInputProps, type InteractionRootProps, type PhaseSwitchProps, type PlayerRosterComponents, type PromptOptionProps, type PromptRootProps, type ZoneRootProps } from "./primitives/index.js";
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import { Board as BoardPrimitive, Game as GamePrimitive, Interaction as InteractionPrimitive, Phase as PhasePrimitive, Prompt as PromptPrimitive, PromptInbox as PromptInboxPrimitive, Zone as ZonePrimitive, type BoardHexGridProps, type BoardHexGridInteractionFilter, type BoardTargetProps, type BoardSpaceTargetProps, type BoardEdgeTargetProps, type BoardVertexTargetProps, type DiceComponents, type GameRootProps, type InteractionCardInputProps, type InteractionDialogProps, type InteractionFieldPrimitiveProps, type InteractionFormPrimitiveProps, type InteractionRouteMap, type InteractionRootProps, type InteractionSwitchProps, type PhaseSwitchProps, type PlayerRosterComponents, type PlayerRosterBadge, type PlayerRosterEntry, type PlayerRosterListProps, type PlayerRosterPartProps, type PlayerRosterRootProps, type PlayerRosterSwitchButtonProps, type PromptDialogProps, type PromptInboxItemsProps, type PromptOptionRenderItem, type PromptOptionProps, type PromptOptionsProps, type PromptRootProps, type UIRootProps, type ZoneItemProps, type ZoneCardAtProps, type ZoneCardActionProps, type ZoneCardRenderItem, type ZoneListProps, type ZonePileCardsProps, type ZonePileRootProps, type ZoneRootProps } from "./primitives/index.js";
3
+ import type { InteractionDescriptor } from "./types/plugin-state.js";
4
+ import type { AnyHexBoardInput, BoardSpaceIdOf } from "./types/tiled-board.js";
4
5
  /**
5
6
  * Workspace-aware UI typing extension point.
6
7
  *
@@ -16,6 +17,7 @@ export interface UIContract {
16
17
  inputs?: UIContractBucket;
17
18
  prompts?: UIContractBucket;
18
19
  promptOptions?: UIContractBucket;
20
+ players?: UIContractBucket;
19
21
  zones?: UIContractBucket;
20
22
  cards?: UIContractBucket;
21
23
  phases?: UIContractBucket;
@@ -25,50 +27,153 @@ type RegisteredUIContract = DreamboardUIRegister extends {
25
27
  ui: infer Registered extends UIContract;
26
28
  } ? Registered : UIContract;
27
29
  type BucketOf<Contract extends UIContract, Key extends keyof UIContract> = NonNullable<Contract[Key]> extends UIContractBucket ? NonNullable<Contract[Key]> : UIContractBucket;
28
- type StringKeysOrFallback<Bucket extends UIContractBucket> = string extends Extract<keyof Bucket, string> ? string : Extract<keyof Bucket, string>;
30
+ type StringKeyOf<Bucket extends UIContractBucket> = Extract<keyof Bucket, string>;
31
+ type StringKeysOrFallback<Bucket extends UIContractBucket> = [
32
+ StringKeyOf<Bucket>
33
+ ] extends [never] ? string : string extends StringKeyOf<Bucket> ? string : StringKeyOf<Bucket>;
29
34
  export type RegisteredUI = RegisteredUIContract;
30
35
  export type InteractionKey<Contract extends UIContract = RegisteredUI> = StringKeysOrFallback<BucketOf<Contract, "interactions">>;
31
36
  export type InteractionInputKey<Contract extends UIContract = RegisteredUI> = StringKeysOrFallback<BucketOf<Contract, "inputs">>;
32
37
  export type PromptKey<Contract extends UIContract = RegisteredUI> = StringKeysOrFallback<BucketOf<Contract, "prompts">>;
33
38
  export type PromptOptionKey<Contract extends UIContract = RegisteredUI> = StringKeysOrFallback<BucketOf<Contract, "promptOptions">>;
39
+ export type PlayerKey<Contract extends UIContract = RegisteredUI> = StringKeysOrFallback<BucketOf<Contract, "players">>;
34
40
  export type ZoneKey<Contract extends UIContract = RegisteredUI> = StringKeysOrFallback<BucketOf<Contract, "zones">>;
35
41
  export type CardKey<Contract extends UIContract = RegisteredUI> = StringKeysOrFallback<BucketOf<Contract, "cards">>;
36
42
  export type PhaseKey<Contract extends UIContract = RegisteredUI> = StringKeysOrFallback<BucketOf<Contract, "phases">>;
37
43
  export type BoardTargetKey<Contract extends UIContract = RegisteredUI> = StringKeysOrFallback<BucketOf<Contract, "boardTargets">>;
38
- export type TypedInteraction<Contract extends UIContract> = Omit<typeof InteractionPrimitive, "Root" | "CardInput"> & {
44
+ type TypedZoneCardRenderItem<Contract extends UIContract> = ZoneCardRenderItem<CardKey<Contract> & string> extends infer Item ? Item extends {
45
+ id: string;
46
+ zone: string;
47
+ } ? Omit<Item, "id" | "zone"> & {
48
+ id: CardKey<Contract>;
49
+ zone: ZoneKey<Contract>;
50
+ } : never : never;
51
+ export type TypedInteraction<Contract extends UIContract> = Omit<typeof InteractionPrimitive, "Root" | "CardInput" | "Dialog" | "Field" | "Form" | "Switch"> & {
39
52
  Root<Interaction extends InteractionKey<Contract>>(props: InteractionRootProps<Interaction>): ReactElement | null;
40
- CardInput<Input extends InteractionInputKey<Contract>>(props: Omit<InteractionCardInputProps, "input"> & {
53
+ Switch(props: Omit<InteractionSwitchProps<InteractionKey<Contract>>, "routes"> & {
54
+ routes: InteractionRouteMap<InteractionKey<Contract>>;
55
+ }): ReactElement;
56
+ CardInput<Input extends InteractionInputKey<Contract>>(props: Omit<InteractionCardInputProps, "input" | "unsafeCardId"> & {
41
57
  input: Input;
58
+ unsafeCardId?: CardKey<Contract>;
42
59
  }): ReactElement;
60
+ Dialog<Interaction extends InteractionKey<Contract>>(props: InteractionDialogProps<Interaction>): ReactElement;
61
+ Field<Input extends InteractionInputKey<Contract>>(props: Omit<InteractionFieldPrimitiveProps, "input"> & {
62
+ input: Input;
63
+ }): ReactElement | null;
64
+ Form(props: InteractionFormPrimitiveProps): ReactElement | null;
43
65
  };
44
- export type TypedPrompt<Contract extends UIContract> = Omit<typeof PromptPrimitive, "Root" | "Option"> & {
66
+ export type TypedPrompt<Contract extends UIContract> = Omit<typeof PromptPrimitive, "Root" | "Option" | "Options" | "Dialog"> & {
45
67
  Root<Prompt extends PromptKey<Contract>>(props: PromptRootProps<Prompt>): ReactElement | null;
46
68
  Option<Option extends PromptOptionKey<Contract>>(props: Omit<PromptOptionProps, "value"> & {
47
69
  value: Option;
48
70
  }): ReactElement;
71
+ Options(props: Omit<PromptOptionsProps, "children"> & {
72
+ children: (option: Omit<PromptOptionRenderItem, "id"> & {
73
+ id: PromptOptionKey<Contract>;
74
+ }) => ReactNode;
75
+ }): ReactElement;
76
+ Dialog<Prompt extends PromptKey<Contract>>(props: PromptDialogProps<Prompt>): ReactElement;
77
+ };
78
+ export type TypedPromptInbox<Contract extends UIContract> = Omit<typeof PromptInboxPrimitive, "Items"> & {
79
+ Items(props: Omit<PromptInboxItemsProps, "children"> & {
80
+ children: (prompt: Omit<InteractionDescriptor, "interactionKey"> & {
81
+ interactionKey: PromptKey<Contract>;
82
+ }) => ReactNode;
83
+ }): ReactElement;
84
+ };
85
+ type TypedPlayerRosterEntry<Player extends string> = Omit<PlayerRosterEntry, "playerId"> & {
86
+ playerId: Player;
87
+ };
88
+ type TypedPlayerRosterRootProps<Player extends string> = Omit<PlayerRosterRootProps, "score" | "scoreLabel" | "badges" | "metadata"> & {
89
+ score?: (playerId: Player) => number | undefined;
90
+ scoreLabel?: string | ((playerId: Player) => string | undefined);
91
+ badges?: (playerId: Player) => ReadonlyArray<PlayerRosterBadge | null | false | undefined>;
92
+ metadata?: (playerId: Player) => Record<string, unknown> | undefined;
93
+ };
94
+ type TypedPlayerRosterListProps<Player extends string> = Omit<PlayerRosterListProps, "children"> & {
95
+ children?: (player: TypedPlayerRosterEntry<Player>) => ReactNode;
96
+ };
97
+ type TypedPlayerRosterPartProps<Player extends string> = Omit<PlayerRosterPartProps, "player"> & {
98
+ player: TypedPlayerRosterEntry<Player>;
99
+ };
100
+ type TypedPlayerRosterSwitchButtonProps<Player extends string> = Omit<PlayerRosterSwitchButtonProps, "player"> & {
101
+ player: TypedPlayerRosterEntry<Player>;
102
+ };
103
+ export type TypedPlayerRoster<Contract extends UIContract> = Omit<PlayerRosterComponents, "Root" | "List" | "SwitchButton" | "Name" | "Score" | "Badges"> & {
104
+ Root(props: TypedPlayerRosterRootProps<PlayerKey<Contract>>): ReactElement | null;
105
+ List(props: TypedPlayerRosterListProps<PlayerKey<Contract>>): ReactElement;
106
+ SwitchButton(props: TypedPlayerRosterSwitchButtonProps<PlayerKey<Contract>>): ReactElement;
107
+ Name(props: TypedPlayerRosterPartProps<PlayerKey<Contract>>): ReactElement;
108
+ Score(props: TypedPlayerRosterPartProps<PlayerKey<Contract>>): ReactElement | null;
109
+ Badges(props: TypedPlayerRosterPartProps<PlayerKey<Contract>>): ReactElement | null;
49
110
  };
50
- export type TypedPromptInbox = typeof PromptInboxPrimitive;
51
- export type TypedPlayerRoster = PlayerRosterComponents;
52
111
  export type TypedPhase<Contract extends UIContract> = Omit<typeof PhasePrimitive, "Switch"> & {
53
112
  Switch(props: PhaseSwitchProps<PhaseKey<Contract>>): ReactElement | null;
54
113
  };
55
- export type TypedZone<Contract extends UIContract> = Omit<typeof ZonePrimitive, "Root"> & {
114
+ export type TypedZone<Contract extends UIContract> = Omit<typeof ZonePrimitive, "Root" | "Item" | "CardAt" | "TopCard" | "CardAction" | "List" | "PileRoot" | "PileCards"> & {
56
115
  Root<Zone extends ZoneKey<Contract>>(props: Omit<ZoneRootProps, "zone"> & {
57
116
  zone: Zone;
58
117
  }): ReactElement;
118
+ Item<Card extends CardKey<Contract>>(props: Omit<ZoneItemProps, "card"> & {
119
+ card: Card;
120
+ }): ReactElement;
121
+ CardAction<Card extends CardKey<Contract>>(props: Omit<ZoneCardActionProps, "card"> & {
122
+ card?: Card;
123
+ }): ReactElement;
124
+ CardAt<Zone extends ZoneKey<Contract>>(props: Omit<ZoneCardAtProps<Zone>, "zone" | "children"> & {
125
+ zone?: Zone;
126
+ children?: ReactNode | ((card: TypedZoneCardRenderItem<Contract>) => ReactNode);
127
+ }): ReactElement | null;
128
+ TopCard<Zone extends ZoneKey<Contract>>(props: Omit<ZoneCardAtProps<Zone>, "zone" | "index" | "children"> & {
129
+ zone?: Zone;
130
+ children?: ReactNode | ((card: TypedZoneCardRenderItem<Contract>) => ReactNode);
131
+ }): ReactElement | null;
132
+ List(props: Omit<ZoneListProps, "children"> & {
133
+ children?: ReactNode | ((card: TypedZoneCardRenderItem<Contract>) => ReactNode);
134
+ }): ReactElement;
135
+ PileRoot<Zone extends ZoneKey<Contract>>(props: Omit<ZonePileRootProps<Zone>, "zone"> & {
136
+ zone: Zone;
137
+ }): ReactElement;
138
+ PileCards(props: Omit<ZonePileCardsProps, "renderCard"> & {
139
+ renderCard: (card: TypedZoneCardRenderItem<Contract>) => ReactNode;
140
+ }): ReactElement | null;
59
141
  };
60
- export type TypedBoard<Contract extends UIContract> = Omit<typeof BoardPrimitive, "Target"> & {
142
+ export type TypedBoard<Contract extends UIContract> = Omit<typeof BoardPrimitive, "Target" | "SpaceTarget" | "EdgeTarget" | "VertexTarget" | "HexGrid"> & {
61
143
  Target<Target extends BoardTargetKey<Contract>>(props: Omit<BoardTargetProps, "value"> & {
62
144
  value: Target;
63
145
  }): ReactElement;
146
+ SpaceTarget<Target extends BoardTargetKey<Contract>>(props: Omit<BoardSpaceTargetProps, "value"> & {
147
+ value: Target;
148
+ }): ReactElement;
149
+ EdgeTarget<Target extends BoardTargetKey<Contract>>(props: Omit<BoardEdgeTargetProps, "value"> & {
150
+ value: Target;
151
+ }): ReactElement;
152
+ VertexTarget<Target extends BoardTargetKey<Contract>>(props: Omit<BoardVertexTargetProps, "value"> & {
153
+ value: Target;
154
+ }): ReactElement;
155
+ HexGrid<TBoard extends AnyHexBoardInput, TSpaceView extends {
156
+ id: BoardSpaceIdOf<TBoard>;
157
+ }>(props: Omit<BoardHexGridProps<TBoard, TSpaceView>, "interactions"> & {
158
+ interactions?: Exclude<BoardHexGridInteractionFilter, object> | {
159
+ edge?: ReadonlyArray<InteractionKey<Contract>>;
160
+ vertex?: ReadonlyArray<InteractionKey<Contract>>;
161
+ space?: ReadonlyArray<InteractionKey<Contract>>;
162
+ };
163
+ }): ReactElement;
164
+ };
165
+ export type TypedGame<_Contract extends UIContract, View = unknown, Player extends string = PlayerKey<_Contract>, Phase extends string = PhaseKey<_Contract>> = Omit<typeof GamePrimitive, "Root"> & {
166
+ Root(props: GameRootProps<View, Player, Phase>): ReactElement;
64
167
  };
65
168
  export interface DreamboardUI<Contract extends UIContract = RegisteredUI> {
66
169
  readonly contract: Contract;
170
+ Root(props: UIRootProps): ReactElement;
171
+ readonly Game: TypedGame<Contract>;
67
172
  readonly Interaction: TypedInteraction<Contract>;
68
173
  readonly Prompt: TypedPrompt<Contract>;
69
- readonly PromptInbox: TypedPromptInbox;
70
- readonly PlayerRoster: TypedPlayerRoster;
71
- readonly PromptDialogHost: (props: PromptDialogHostProps) => ReactElement | null;
174
+ readonly PromptInbox: TypedPromptInbox<Contract>;
175
+ readonly PlayerRoster: TypedPlayerRoster<Contract>;
176
+ readonly Dice: DiceComponents;
72
177
  readonly Phase: TypedPhase<Contract>;
73
178
  readonly Zone: TypedZone<Contract>;
74
179
  readonly Board: TypedBoard<Contract>;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-contract.d.ts","sourceRoot":"","sources":["../src/ui-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-contract.d.ts","sourceRoot":"","sources":["../src/ui-contract.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
- import { PromptDialogHost as PromptDialogHostComponent, } from "./components/PromptDialogHost.js";
2
- import { Board as BoardPrimitive, Interaction as InteractionPrimitive, Phase as PhasePrimitive, PlayerRoster as PlayerRosterPrimitive, Prompt as PromptPrimitive, PromptInbox as PromptInboxPrimitive, Zone as ZonePrimitive, } from "./primitives/index.js";
1
+ import { Board as BoardPrimitive, Dice as DicePrimitive, Game as GamePrimitive, Interaction as InteractionPrimitive, Phase as PhasePrimitive, PlayerRoster as PlayerRosterPrimitive, Prompt as PromptPrimitive, PromptInbox as PromptInboxPrimitive, UI as UIPrimitive, Zone as ZonePrimitive, } from "./primitives/index.js";
3
2
  export function createDreamboardUI(contract) {
4
3
  return {
5
4
  contract,
5
+ Root: UIPrimitive.Root,
6
+ Game: GamePrimitive,
6
7
  Interaction: InteractionPrimitive,
7
8
  Prompt: PromptPrimitive,
8
9
  PromptInbox: PromptInboxPrimitive,
9
10
  PlayerRoster: PlayerRosterPrimitive,
10
- PromptDialogHost: PromptDialogHostComponent,
11
+ Dice: DicePrimitive,
11
12
  Phase: PhasePrimitive,
12
13
  Zone: ZonePrimitive,
13
14
  Board: BoardPrimitive,