@dxos/plugin-chess 0.8.4-main.b97322e → 0.8.4-main.bcb3aa67d6

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 (215) hide show
  1. package/dist/lib/browser/blueprints/index.mjs +14 -0
  2. package/dist/lib/browser/blueprints/index.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-2TJN26DN.mjs +67 -0
  4. package/dist/lib/browser/chunk-2TJN26DN.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-GPFHUDFY.mjs +110 -0
  6. package/dist/lib/browser/chunk-GPFHUDFY.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  8. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-JKW2ZYHP.mjs +28 -0
  10. package/dist/lib/browser/chunk-JKW2ZYHP.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-MC7L6JNC.mjs +36 -0
  12. package/dist/lib/browser/chunk-MC7L6JNC.mjs.map +7 -0
  13. package/dist/lib/browser/cli/index.mjs +34 -0
  14. package/dist/lib/browser/cli/index.mjs.map +7 -0
  15. package/dist/lib/browser/create-UJ656WLM.mjs +24 -0
  16. package/dist/lib/browser/create-UJ656WLM.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +367 -76
  18. package/dist/lib/browser/index.mjs.map +4 -4
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/move-QCJSXFHW.mjs +36 -0
  21. package/dist/lib/browser/move-QCJSXFHW.mjs.map +7 -0
  22. package/dist/lib/browser/operations/index.mjs +19 -0
  23. package/dist/lib/browser/operations/index.mjs.map +7 -0
  24. package/dist/lib/browser/play-YEOTE6KO.mjs +45 -0
  25. package/dist/lib/browser/play-YEOTE6KO.mjs.map +7 -0
  26. package/dist/lib/browser/print-LUCG4CIR.mjs +30 -0
  27. package/dist/lib/browser/print-LUCG4CIR.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +4 -7
  29. package/dist/lib/node-esm/blueprints/index.mjs +15 -0
  30. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-4HZWCKMR.mjs +38 -0
  32. package/dist/lib/node-esm/chunk-4HZWCKMR.mjs.map +7 -0
  33. package/dist/lib/node-esm/chunk-D72ZBXX6.mjs +29 -0
  34. package/dist/lib/node-esm/chunk-D72ZBXX6.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  36. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-LPVPGURE.mjs +111 -0
  38. package/dist/lib/node-esm/chunk-LPVPGURE.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-OIRJVY2R.mjs +68 -0
  40. package/dist/lib/node-esm/chunk-OIRJVY2R.mjs.map +7 -0
  41. package/dist/lib/node-esm/cli/index.mjs +35 -0
  42. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  43. package/dist/lib/node-esm/create-KINGWZOM.mjs +25 -0
  44. package/dist/lib/node-esm/create-KINGWZOM.mjs.map +7 -0
  45. package/dist/lib/node-esm/index.mjs +367 -76
  46. package/dist/lib/node-esm/index.mjs.map +4 -4
  47. package/dist/lib/node-esm/meta.json +1 -1
  48. package/dist/lib/node-esm/move-JDR3KQ5G.mjs +37 -0
  49. package/dist/lib/node-esm/move-JDR3KQ5G.mjs.map +7 -0
  50. package/dist/lib/node-esm/operations/index.mjs +20 -0
  51. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  52. package/dist/lib/node-esm/play-KIWAE5LA.mjs +46 -0
  53. package/dist/lib/node-esm/play-KIWAE5LA.mjs.map +7 -0
  54. package/dist/lib/node-esm/print-QHFZDMWC.mjs +31 -0
  55. package/dist/lib/node-esm/print-QHFZDMWC.mjs.map +7 -0
  56. package/dist/lib/node-esm/types/index.mjs +4 -7
  57. package/dist/types/src/ChessPlugin.d.ts +2 -1
  58. package/dist/types/src/ChessPlugin.d.ts.map +1 -1
  59. package/dist/types/src/blueprints/chess-blueprint.d.ts +4 -0
  60. package/dist/types/src/blueprints/chess-blueprint.d.ts.map +1 -0
  61. package/dist/types/src/blueprints/index.d.ts +3 -0
  62. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  63. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -2
  64. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  66. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/index.d.ts +5 -3
  68. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  70. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  72. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  73. package/dist/types/src/cli/index.d.ts +2 -0
  74. package/dist/types/src/cli/index.d.ts.map +1 -0
  75. package/dist/types/src/cli/plugin.d.ts +3 -0
  76. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  77. package/dist/types/src/components/Chessboard/Chessboard.d.ts +34 -0
  78. package/dist/types/src/components/Chessboard/Chessboard.d.ts.map +1 -0
  79. package/dist/types/src/components/Chessboard/Chessboard.stories.d.ts +48 -0
  80. package/dist/types/src/components/Chessboard/Chessboard.stories.d.ts.map +1 -0
  81. package/dist/types/src/components/Chessboard/Info.d.ts +21 -0
  82. package/dist/types/src/components/Chessboard/Info.d.ts.map +1 -0
  83. package/dist/types/src/components/Chessboard/index.d.ts +2 -0
  84. package/dist/types/src/components/Chessboard/index.d.ts.map +1 -0
  85. package/dist/types/src/components/Chessboard/types.d.ts +8 -0
  86. package/dist/types/src/components/Chessboard/types.d.ts.map +1 -0
  87. package/dist/types/src/components/index.d.ts +1 -5
  88. package/dist/types/src/components/index.d.ts.map +1 -1
  89. package/dist/types/src/containers/ChessArticle/ChessArticle.d.ts +6 -0
  90. package/dist/types/src/containers/ChessArticle/ChessArticle.d.ts.map +1 -0
  91. package/dist/types/src/containers/ChessArticle/ChessArticle.stories.d.ts +47 -0
  92. package/dist/types/src/containers/ChessArticle/ChessArticle.stories.d.ts.map +1 -0
  93. package/dist/types/src/containers/ChessArticle/index.d.ts +3 -0
  94. package/dist/types/src/containers/ChessArticle/index.d.ts.map +1 -0
  95. package/dist/types/src/containers/ChessCard/ChessCard.d.ts +6 -0
  96. package/dist/types/src/containers/ChessCard/ChessCard.d.ts.map +1 -0
  97. package/dist/types/src/containers/ChessCard/ChessCard.stories.d.ts +15 -0
  98. package/dist/types/src/containers/ChessCard/ChessCard.stories.d.ts.map +1 -0
  99. package/dist/types/src/containers/ChessCard/index.d.ts +3 -0
  100. package/dist/types/src/containers/ChessCard/index.d.ts.map +1 -0
  101. package/dist/types/src/containers/index.d.ts +4 -0
  102. package/dist/types/src/containers/index.d.ts.map +1 -0
  103. package/dist/types/src/index.d.ts +3 -2
  104. package/dist/types/src/index.d.ts.map +1 -1
  105. package/dist/types/src/meta.d.ts +2 -3
  106. package/dist/types/src/meta.d.ts.map +1 -1
  107. package/dist/types/src/operations/create.d.ts +5 -0
  108. package/dist/types/src/operations/create.d.ts.map +1 -0
  109. package/dist/types/src/operations/definitions.d.ts +51 -0
  110. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  111. package/dist/types/src/operations/index.d.ts +4 -0
  112. package/dist/types/src/operations/index.d.ts.map +1 -0
  113. package/dist/types/src/operations/move.d.ts +5 -0
  114. package/dist/types/src/operations/move.d.ts.map +1 -0
  115. package/dist/types/src/operations/play.d.ts +5 -0
  116. package/dist/types/src/operations/play.d.ts.map +1 -0
  117. package/dist/types/src/operations/print.d.ts +5 -0
  118. package/dist/types/src/operations/print.d.ts.map +1 -0
  119. package/dist/types/src/translations.d.ts +22 -12
  120. package/dist/types/src/translations.d.ts.map +1 -1
  121. package/dist/types/src/types/Chess.d.ts +27 -0
  122. package/dist/types/src/types/Chess.d.ts.map +1 -0
  123. package/dist/types/src/types/index.d.ts +1 -2
  124. package/dist/types/src/types/index.d.ts.map +1 -1
  125. package/dist/types/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +76 -34
  127. package/src/ChessPlugin.tsx +42 -53
  128. package/src/blueprints/chess-blueprint.ts +35 -0
  129. package/src/blueprints/index.ts +6 -0
  130. package/src/capabilities/artifact-definition.ts +107 -96
  131. package/src/capabilities/blueprint-definition.ts +17 -0
  132. package/src/capabilities/index.ts +8 -4
  133. package/src/capabilities/operation-handler.ts +14 -0
  134. package/src/capabilities/react-surface.tsx +24 -14
  135. package/src/cli/index.ts +5 -0
  136. package/src/cli/plugin.ts +37 -0
  137. package/src/components/Chessboard/Chessboard.stories.tsx +94 -0
  138. package/src/components/Chessboard/Chessboard.tsx +180 -0
  139. package/src/components/Chessboard/Info.tsx +253 -0
  140. package/src/components/Chessboard/index.ts +5 -0
  141. package/src/components/Chessboard/types.ts +18 -0
  142. package/src/components/index.ts +2 -6
  143. package/src/containers/ChessArticle/ChessArticle.stories.tsx +53 -0
  144. package/src/containers/ChessArticle/ChessArticle.tsx +73 -0
  145. package/src/containers/ChessArticle/index.ts +7 -0
  146. package/src/containers/ChessCard/ChessCard.stories.tsx +42 -0
  147. package/src/containers/ChessCard/ChessCard.tsx +22 -0
  148. package/src/containers/ChessCard/index.ts +7 -0
  149. package/src/containers/index.ts +8 -0
  150. package/src/index.ts +3 -2
  151. package/src/meta.ts +9 -7
  152. package/src/operations/create.ts +22 -0
  153. package/src/operations/definitions.ts +109 -0
  154. package/src/operations/index.ts +16 -0
  155. package/src/operations/move.ts +37 -0
  156. package/src/operations/play.ts +46 -0
  157. package/src/operations/print.ts +28 -0
  158. package/src/translations.ts +22 -12
  159. package/src/types/Chess.ts +62 -0
  160. package/src/types/index.ts +1 -2
  161. package/dist/lib/browser/ChessContainer-SC4ZV6XZ.mjs +0 -129
  162. package/dist/lib/browser/ChessContainer-SC4ZV6XZ.mjs.map +0 -7
  163. package/dist/lib/browser/artifact-definition-A2FSM255.mjs +0 -182
  164. package/dist/lib/browser/artifact-definition-A2FSM255.mjs.map +0 -7
  165. package/dist/lib/browser/chunk-A3WEUKPK.mjs +0 -61
  166. package/dist/lib/browser/chunk-A3WEUKPK.mjs.map +0 -7
  167. package/dist/lib/browser/chunk-KDADGLPC.mjs +0 -8
  168. package/dist/lib/browser/chunk-KDADGLPC.mjs.map +0 -7
  169. package/dist/lib/browser/chunk-ZXH3N4NA.mjs +0 -66
  170. package/dist/lib/browser/chunk-ZXH3N4NA.mjs.map +0 -7
  171. package/dist/lib/browser/intent-resolver-KQYYX44R.mjs +0 -28
  172. package/dist/lib/browser/intent-resolver-KQYYX44R.mjs.map +0 -7
  173. package/dist/lib/browser/react-surface-PLUCWIYP.mjs +0 -36
  174. package/dist/lib/browser/react-surface-PLUCWIYP.mjs.map +0 -7
  175. package/dist/lib/node-esm/ChessContainer-7GLY5KLY.mjs +0 -130
  176. package/dist/lib/node-esm/ChessContainer-7GLY5KLY.mjs.map +0 -7
  177. package/dist/lib/node-esm/artifact-definition-2H7OUBZO.mjs +0 -183
  178. package/dist/lib/node-esm/artifact-definition-2H7OUBZO.mjs.map +0 -7
  179. package/dist/lib/node-esm/chunk-27D3JA3K.mjs +0 -68
  180. package/dist/lib/node-esm/chunk-27D3JA3K.mjs.map +0 -7
  181. package/dist/lib/node-esm/chunk-IS3Y25PL.mjs +0 -63
  182. package/dist/lib/node-esm/chunk-IS3Y25PL.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-QFINI7CC.mjs +0 -10
  184. package/dist/lib/node-esm/chunk-QFINI7CC.mjs.map +0 -7
  185. package/dist/lib/node-esm/intent-resolver-GXK2JROQ.mjs +0 -29
  186. package/dist/lib/node-esm/intent-resolver-GXK2JROQ.mjs.map +0 -7
  187. package/dist/lib/node-esm/react-surface-NGLNIWN3.mjs +0 -37
  188. package/dist/lib/node-esm/react-surface-NGLNIWN3.mjs.map +0 -7
  189. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  190. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  191. package/dist/types/src/components/Chess.d.ts +0 -14
  192. package/dist/types/src/components/Chess.d.ts.map +0 -1
  193. package/dist/types/src/components/ChessContainer.d.ts +0 -8
  194. package/dist/types/src/components/ChessContainer.d.ts.map +0 -1
  195. package/dist/types/src/components/ChessContainer.stories.d.ts +0 -23
  196. package/dist/types/src/components/ChessContainer.stories.d.ts.map +0 -1
  197. package/dist/types/src/components/ChessPanel.d.ts +0 -11
  198. package/dist/types/src/components/ChessPanel.d.ts.map +0 -1
  199. package/dist/types/src/components/Chessboard.stories.d.ts +0 -8
  200. package/dist/types/src/components/Chessboard.stories.d.ts.map +0 -1
  201. package/dist/types/src/components/PlayerSelector.d.ts +0 -8
  202. package/dist/types/src/components/PlayerSelector.d.ts.map +0 -1
  203. package/dist/types/src/types/schema.d.ts +0 -29
  204. package/dist/types/src/types/schema.d.ts.map +0 -1
  205. package/dist/types/src/types/types.d.ts +0 -32
  206. package/dist/types/src/types/types.d.ts.map +0 -1
  207. package/src/capabilities/intent-resolver.ts +0 -26
  208. package/src/components/Chess.tsx +0 -60
  209. package/src/components/ChessContainer.stories.tsx +0 -110
  210. package/src/components/ChessContainer.tsx +0 -71
  211. package/src/components/ChessPanel.tsx +0 -67
  212. package/src/components/Chessboard.stories.tsx +0 -41
  213. package/src/components/PlayerSelector.tsx +0 -82
  214. package/src/types/schema.ts +0 -34
  215. package/src/types/types.ts +0 -20
@@ -0,0 +1,68 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ __export
4
+ } from "./chunk-HSLMI22Q.mjs";
5
+
6
+ // src/types/Chess.ts
7
+ var Chess_exports = {};
8
+ __export(Chess_exports, {
9
+ Game: () => Game,
10
+ make: () => make
11
+ });
12
+ import { Chess as ChessJS } from "chess.js";
13
+ import * as Schema from "effect/Schema";
14
+ import { Annotation, Obj, Type } from "@dxos/echo";
15
+ import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
16
+ import { log } from "@dxos/log";
17
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-chess/src/types/Chess.ts";
18
+ var Game = Schema.Struct({
19
+ name: Schema.optional(Schema.String),
20
+ players: Schema.Struct({
21
+ white: Schema.optional(Schema.String.annotations({
22
+ description: "DID of white player"
23
+ })),
24
+ black: Schema.optional(Schema.String.annotations({
25
+ description: "DID of black player"
26
+ }))
27
+ }).pipe(FormInputAnnotation.set(false), Schema.optional),
28
+ pgn: Schema.String.annotations({
29
+ description: "Portable Game Notation."
30
+ }).pipe(FormInputAnnotation.set(false), Schema.optional),
31
+ fen: Schema.String.annotations({
32
+ description: "Forsyth-Edwards Notation."
33
+ }).pipe(FormInputAnnotation.set(false), Schema.optional)
34
+ }).pipe(Type.object({
35
+ typename: "org.dxos.type.chess",
36
+ version: "0.1.0"
37
+ }), LabelAnnotation.set([
38
+ "name"
39
+ ]), Annotation.IconAnnotation.set({
40
+ icon: "ph--shield-chevron--regular",
41
+ hue: "amber"
42
+ }));
43
+ var make = ({ name, pgn, fen } = {}) => {
44
+ const chess = new ChessJS();
45
+ if (pgn) {
46
+ try {
47
+ chess.loadPgn(pgn);
48
+ } catch {
49
+ log.warn(pgn, void 0, {
50
+ F: __dxlog_file,
51
+ L: 52,
52
+ S: void 0,
53
+ C: (f, a) => f(...a)
54
+ });
55
+ }
56
+ }
57
+ return Obj.make(Game, {
58
+ name,
59
+ pgn,
60
+ fen,
61
+ players: {}
62
+ });
63
+ };
64
+
65
+ export {
66
+ Chess_exports
67
+ };
68
+ //# sourceMappingURL=chunk-OIRJVY2R.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/Chess.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Chess as ChessJS } from 'chess.js';\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Obj, Type } from '@dxos/echo';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { log } from '@dxos/log';\n\nexport const Game = Schema.Struct({\n name: Schema.optional(Schema.String),\n players: Schema.Struct({\n white: Schema.optional(\n Schema.String.annotations({\n description: 'DID of white player',\n }),\n ),\n black: Schema.optional(\n Schema.String.annotations({\n description: 'DID of black player',\n }),\n ),\n }).pipe(FormInputAnnotation.set(false), Schema.optional),\n pgn: Schema.String.annotations({\n description: 'Portable Game Notation.',\n }).pipe(FormInputAnnotation.set(false), Schema.optional),\n fen: Schema.String.annotations({\n description: 'Forsyth-Edwards Notation.',\n }).pipe(FormInputAnnotation.set(false), Schema.optional),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.chess',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n Annotation.IconAnnotation.set({\n icon: 'ph--shield-chevron--regular',\n hue: 'amber',\n }),\n);\n\nexport interface Game extends Schema.Schema.Type<typeof Game> {}\n\nexport const make = ({ name, pgn, fen }: { name?: string; pgn?: string; fen?: string } = {}) => {\n const chess = new ChessJS();\n if (pgn) {\n try {\n chess.loadPgn(pgn);\n } catch {\n log.warn(pgn);\n }\n }\n\n return Obj.make(Game, {\n name,\n pgn,\n fen,\n players: {},\n });\n};\n"],
5
+ "mappings": ";;;;;;AAAA;;;;;AAIA,SAASA,SAASC,eAAe;AACjC,YAAYC,YAAY;AAExB,SAASC,YAAYC,KAAKC,YAAY;AACtC,SAASC,qBAAqBC,uBAAuB;AACrD,SAASC,WAAW;;AAEb,IAAMC,OAAcC,cAAO;EAChCC,MAAaC,gBAAgBC,aAAM;EACnCC,SAAgBJ,cAAO;IACrBK,OAAcH,gBACLC,cAAOG,YAAY;MACxBC,aAAa;IACf,CAAA,CAAA;IAEFC,OAAcN,gBACLC,cAAOG,YAAY;MACxBC,aAAa;IACf,CAAA,CAAA;EAEJ,CAAA,EAAGE,KAAKb,oBAAoBc,IAAI,KAAA,GAAeR,eAAQ;EACvDS,KAAYR,cAAOG,YAAY;IAC7BC,aAAa;EACf,CAAA,EAAGE,KAAKb,oBAAoBc,IAAI,KAAA,GAAeR,eAAQ;EACvDU,KAAYT,cAAOG,YAAY;IAC7BC,aAAa;EACf,CAAA,EAAGE,KAAKb,oBAAoBc,IAAI,KAAA,GAAeR,eAAQ;AACzD,CAAA,EAAGO,KACDd,KAAKkB,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAlB,gBAAgBa,IAAI;EAAC;CAAO,GAC5BjB,WAAWuB,eAAeN,IAAI;EAC5BO,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAKK,IAAMC,OAAO,CAAC,EAAElB,MAAMU,KAAKC,IAAG,IAAoD,CAAC,MAAC;AACzF,QAAMQ,QAAQ,IAAI7B,QAAAA;AAClB,MAAIoB,KAAK;AACP,QAAI;AACFS,YAAMC,QAAQV,GAAAA;IAChB,QAAQ;AACNb,UAAIwB,KAAKX,KAAAA,QAAAA;;;;;;IACX;EACF;AAEA,SAAOjB,IAAIyB,KAAKpB,MAAM;IACpBE;IACAU;IACAC;IACAR,SAAS,CAAC;EACZ,CAAA;AACF;",
6
+ "names": ["Chess", "ChessJS", "Schema", "Annotation", "Obj", "Type", "FormInputAnnotation", "LabelAnnotation", "log", "Game", "Struct", "name", "optional", "String", "players", "white", "annotations", "description", "black", "pipe", "set", "pgn", "fen", "object", "typename", "version", "IconAnnotation", "icon", "hue", "make", "chess", "loadPgn", "warn"]
7
+ }
@@ -0,0 +1,35 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import "../chunk-HSLMI22Q.mjs";
3
+
4
+ // src/cli/plugin.ts
5
+ import * as Effect from "effect/Effect";
6
+ import { Plugin } from "@dxos/app-framework";
7
+ import { AppPlugin } from "@dxos/app-toolkit";
8
+ import { Operation } from "@dxos/operation";
9
+ import { SpaceOperation } from "@dxos/plugin-space/operations";
10
+ import { meta } from "#meta";
11
+ import { Chess } from "#types";
12
+ var ChessPlugin = Plugin.define(meta).pipe(AppPlugin.addMetadataModule({
13
+ metadata: {
14
+ id: Chess.Game.typename,
15
+ metadata: {
16
+ createObject: (props, options) => Effect.gen(function* () {
17
+ const object = Chess.make(props);
18
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
19
+ object,
20
+ target: options.target,
21
+ hidden: true,
22
+ targetNodeId: options.targetNodeId
23
+ });
24
+ })
25
+ }
26
+ }
27
+ }), AppPlugin.addSchemaModule({
28
+ schema: [
29
+ Chess.Game
30
+ ]
31
+ }), Plugin.make);
32
+ export {
33
+ ChessPlugin
34
+ };
35
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cli/plugin.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/operation';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\n\nimport { meta } from '#meta';\nimport { Chess } from '#types';\n\n// TODO(wittjosiah): Factor out shared modules.\nexport const ChessPlugin = Plugin.define(meta).pipe(\n AppPlugin.addMetadataModule({\n metadata: {\n id: Chess.Game.typename,\n metadata: {\n createObject: ((props, options) =>\n Effect.gen(function* () {\n const object = Chess.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n })) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addSchemaModule({ schema: [Chess.Game] }),\n Plugin.make,\n);\n"],
5
+ "mappings": ";;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAE1B,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AACrB,SAASC,aAAa;AAGf,IAAMC,cAAcC,OAAOC,OAAOC,IAAAA,EAAMC,KAC7CC,UAAUC,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,MAAMC,KAAKC;IACfJ,UAAU;MACRK,cAAe,CAACC,OAAOC,YACdC,WAAI,aAAA;AACT,cAAMC,SAASP,MAAMQ,KAAKJ,KAAAA;AAC1B,eAAO,OAAOK,UAAUC,OAAOC,eAAeC,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ;EACF;AACF,CAAA,GACAnB,UAAUoB,gBAAgB;EAAEC,QAAQ;IAACjB,MAAMC;;AAAM,CAAA,GACjDT,OAAOgB,IAAI;",
6
+ "names": ["Effect", "Plugin", "AppPlugin", "Operation", "SpaceOperation", "meta", "Chess", "ChessPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addMetadataModule", "metadata", "id", "Chess", "Game", "typename", "createObject", "props", "options", "gen", "object", "make", "Operation", "invoke", "SpaceOperation", "AddObject", "target", "hidden", "targetNodeId", "addSchemaModule", "schema"]
7
+ }
@@ -0,0 +1,25 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Create
4
+ } from "./chunk-LPVPGURE.mjs";
5
+ import {
6
+ Chess_exports
7
+ } from "./chunk-OIRJVY2R.mjs";
8
+ import "./chunk-HSLMI22Q.mjs";
9
+
10
+ // src/operations/create.ts
11
+ import * as Effect from "effect/Effect";
12
+ import { Database } from "@dxos/echo";
13
+ import { Operation } from "@dxos/operation";
14
+ var handler = Create.pipe(Operation.withHandler(Effect.fn(function* ({ name, pgn, fen }) {
15
+ return yield* Database.add(Chess_exports.make({
16
+ name,
17
+ pgn,
18
+ fen
19
+ }));
20
+ })));
21
+ var create_default = handler;
22
+ export {
23
+ create_default as default
24
+ };
25
+ //# sourceMappingURL=create-KINGWZOM.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Database } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\n\nimport { Chess } from '../types';\n\nimport { Create } from './definitions';\n\nconst handler: Operation.WithHandler<typeof Create> = Create.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ name, pgn, fen }) {\n return yield* Database.add(Chess.make({ name, pgn, fen }));\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAM1B,IAAMC,UAAgDC,OAAOC,KAC3DC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,KAAKC,IAAG,GAAE;AACrC,SAAO,OAAOC,SAASC,IAAIC,cAAMC,KAAK;IAAEN;IAAMC;IAAKC;EAAI,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAeR;",
6
+ "names": ["Effect", "Database", "Operation", "handler", "Create", "pipe", "Operation", "withHandler", "fn", "name", "pgn", "fen", "Database", "add", "Chess", "make"]
7
+ }
@@ -1,99 +1,390 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- ChessContainer
4
- } from "./chunk-QFINI7CC.mjs";
3
+ chess_blueprint_default
4
+ } from "./chunk-4HZWCKMR.mjs";
5
5
  import {
6
- CHESS_PLUGIN,
7
- ChessAction,
8
- ChessType,
9
- meta
10
- } from "./chunk-IS3Y25PL.mjs";
6
+ operations_exports
7
+ } from "./chunk-D72ZBXX6.mjs";
8
+ import "./chunk-LPVPGURE.mjs";
11
9
  import {
12
- Chess
13
- } from "./chunk-27D3JA3K.mjs";
10
+ Chess_exports
11
+ } from "./chunk-OIRJVY2R.mjs";
12
+ import "./chunk-HSLMI22Q.mjs";
14
13
 
15
- // src/capabilities/index.ts
16
- import { lazy } from "@dxos/app-framework";
17
- var ArtifactDefinition = lazy(() => import("./artifact-definition-2H7OUBZO.mjs"));
18
- var IntentResolver = lazy(() => import("./intent-resolver-GXK2JROQ.mjs"));
19
- var ReactSurface = lazy(() => import("./react-surface-NGLNIWN3.mjs"));
14
+ // src/components/Chessboard/Chessboard.tsx
15
+ import { RegistryContext } from "@effect-atom/atom-react";
16
+ import React2, { forwardRef, useCallback, useContext, useEffect as useEffect2, useImperativeHandle, useMemo as useMemo2, useRef as useRef2 } from "react";
17
+ import { addEventListener } from "@dxos/async";
18
+ import { useObject } from "@dxos/echo-react";
19
+ import { Gameboard, Chessboard as NaturalChessboard, getRawPgn, useGameboardContext as useGameboardContext2 } from "@dxos/react-ui-gameboard";
20
+ import { useSoundEffect } from "@dxos/react-ui-sfx";
21
+
22
+ // src/components/Chessboard/Info.tsx
23
+ import { useAtomValue } from "@effect-atom/atom-react";
24
+ import React, { useEffect, useMemo, useRef } from "react";
25
+ import { generateName } from "@dxos/display-name";
26
+ import { Obj } from "@dxos/echo";
27
+ import { useMembers } from "@dxos/react-client/echo";
28
+ import { Icon, IconButton, Select, useTranslation } from "@dxos/react-ui";
29
+ import { useGameboardContext } from "@dxos/react-ui-gameboard";
30
+ import { mx } from "@dxos/ui-theme";
31
+ import { meta } from "#meta";
32
+ var INFO_NAME = "Chessboard.Info";
33
+ var Info = ({ classNames, orientation = "white", onOrientationChange, onClose, ...props }) => {
34
+ const { t } = useTranslation(meta.id);
35
+ const { model } = useGameboardContext(INFO_NAME);
36
+ const db = Obj.getDatabase(model.object);
37
+ const members = useMembers(db?.spaceId);
38
+ return /* @__PURE__ */ React.createElement("div", {
39
+ className: mx("grid grid-rows-[min-content_1fr_min-content] w-full min-w-[18rem] p-2 overflow-hidden bg-group-surface rounded-xs", classNames)
40
+ }, /* @__PURE__ */ React.createElement(PlayerIndicator, {
41
+ model,
42
+ player: orientation === "white" ? "black" : "white",
43
+ icon: onClose && /* @__PURE__ */ React.createElement(IconButton, {
44
+ variant: "ghost",
45
+ icon: "ph--x--regular",
46
+ iconOnly: true,
47
+ label: t("close-info.button"),
48
+ size: 4,
49
+ onClick: onClose
50
+ })
51
+ }, /* @__PURE__ */ React.createElement(PlayerSelector, {
52
+ value: model.object.players?.[orientation === "white" ? "black" : "white"],
53
+ onValueChange: (value) => {
54
+ Obj.change(model.object, (obj) => {
55
+ obj.players[orientation === "white" ? "black" : "white"] = value;
56
+ });
57
+ },
58
+ members
59
+ })), /* @__PURE__ */ React.createElement(History, {
60
+ model,
61
+ ...props
62
+ }), /* @__PURE__ */ React.createElement(PlayerIndicator, {
63
+ model,
64
+ player: orientation,
65
+ icon: onOrientationChange && /* @__PURE__ */ React.createElement(IconButton, {
66
+ classNames: mx("transition duration-200 ease-linear", orientation === "white" && "rotate-180"),
67
+ icon: "ph--arrows-clockwise--regular",
68
+ iconOnly: true,
69
+ label: t("flip-board.button"),
70
+ size: 4,
71
+ onClick: () => onOrientationChange(orientation === "white" ? "black" : "white")
72
+ })
73
+ }, /* @__PURE__ */ React.createElement(PlayerSelector, {
74
+ value: model.object.players?.[orientation],
75
+ onValueChange: (value) => {
76
+ Obj.change(model.object, (obj) => {
77
+ obj.players[orientation] = value;
78
+ });
79
+ },
80
+ members
81
+ })));
82
+ };
83
+ Info.displayName = INFO_NAME;
84
+ var History = ({ classNames, model, min, max, onSelect }) => {
85
+ const { t } = useTranslation(meta.id);
86
+ const moveIndex = useAtomValue(model.moveIndex);
87
+ const label = model.game.isGameOver() ? model.game.isCheckmate() ? t("game.checkmate.label") : model.game.isStalemate() ? t("game.stalemate.label") : t("game.draw.label") : model.game.isCheck() ? t("game.check.label") : void 0;
88
+ const history = model.game.history();
89
+ const moves = useMemo(() => history.reduce((acc, move, index) => {
90
+ if (index % 2 === 0) {
91
+ acc.push([
92
+ {
93
+ index,
94
+ move
95
+ }
96
+ ]);
97
+ } else {
98
+ acc[acc.length - 1].push({
99
+ index,
100
+ move
101
+ });
102
+ }
103
+ return acc;
104
+ }, []), [
105
+ history.length
106
+ ]);
107
+ const scrollerRef = useRef(null);
108
+ useEffect(() => {
109
+ scrollerRef.current?.scrollTo({
110
+ top: scrollerRef.current.scrollHeight
111
+ });
112
+ }, [
113
+ history.length
114
+ ]);
115
+ useEffect(() => {
116
+ const div = scrollerRef.current?.querySelector(`[data-index="${moveIndex - 1}"]`);
117
+ scrollerRef.current?.classList.add("scrollbar-none");
118
+ div?.scrollIntoView({
119
+ behavior: "smooth"
120
+ });
121
+ scrollerRef.current?.classList.remove("scrollbar-none");
122
+ }, [
123
+ moveIndex
124
+ ]);
125
+ return /* @__PURE__ */ React.createElement("div", {
126
+ ref: scrollerRef,
127
+ className: mx("overflow-y-auto", classNames),
128
+ style: {
129
+ minHeight: min === void 0 ? "auto" : `${min * 24}px`,
130
+ maxHeight: max === void 0 ? "auto" : `${max * 24}px`
131
+ }
132
+ }, moves.map(([a, b], index) => /* @__PURE__ */ React.createElement("div", {
133
+ key: index,
134
+ className: "grid grid-cols-[3rem_1fr_1fr_1rem] gap-2 ps-4"
135
+ }, /* @__PURE__ */ React.createElement("div", {
136
+ className: "content-center text-xs text-subdued"
137
+ }, index + 1), a && /* @__PURE__ */ React.createElement("div", {
138
+ "data-index": a.index,
139
+ className: mx("ps-2 text-sm cursor-pointer", a.index === moveIndex - 1 && "bg-primary-500"),
140
+ onClick: () => onSelect?.(a.index + 1)
141
+ }, a.move), b && /* @__PURE__ */ React.createElement("div", {
142
+ "data-index": b.index,
143
+ className: mx("ps-2 text-sm cursor-pointer", b.index === moveIndex - 1 && "bg-primary-500"),
144
+ onClick: () => onSelect?.(b.index + 1)
145
+ }, b.move))), label && /* @__PURE__ */ React.createElement("div", {
146
+ className: "text-center"
147
+ }, label));
148
+ };
149
+ var PlayerIndicator = ({ children, model, player, icon }) => {
150
+ const turn = player === (model.game.turn() === "w" ? "white" : "black");
151
+ return /* @__PURE__ */ React.createElement("div", {
152
+ className: "grid grid-cols-[2rem_1fr_2rem] gap-2 h-(--dx-rail-size) px-1 flex items-center overflow-hidden"
153
+ }, /* @__PURE__ */ React.createElement("div", {
154
+ className: "place-items-center"
155
+ }, /* @__PURE__ */ React.createElement(Icon, {
156
+ icon: turn ? "ph--circle--fill" : "ph--circle--thin",
157
+ size: 6,
158
+ classNames: mx(turn && (model.game.isCheckmate() ? "text-error-500" : "text-success-text"))
159
+ })), /* @__PURE__ */ React.createElement("div", {
160
+ className: "truncate overflow-hidden items-center"
161
+ }, children), icon);
162
+ };
163
+ var PlayerSelector = ({ value, onValueChange, members }) => {
164
+ const { t } = useTranslation(meta.id);
165
+ return /* @__PURE__ */ React.createElement(Select.Root, {
166
+ value,
167
+ onValueChange
168
+ }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
169
+ placeholder: t("select-player.button")
170
+ }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, members.map((member) => {
171
+ const memberKey = member.identity.identityKey.toHex();
172
+ const displayName = member.identity?.profile?.displayName || generateName(memberKey);
173
+ return /* @__PURE__ */ React.createElement(Select.Option, {
174
+ key: memberKey,
175
+ value: memberKey
176
+ }, displayName);
177
+ })), /* @__PURE__ */ React.createElement(Select.Arrow, null))));
178
+ };
179
+
180
+ // src/components/Chessboard/types.ts
181
+ import { ChessModel } from "@dxos/react-ui-gameboard";
182
+ var ExtendedChessModel = class extends ChessModel {
183
+ object;
184
+ constructor(registry, object) {
185
+ super(registry), this.object = object;
186
+ }
187
+ };
188
+
189
+ // src/components/Chessboard/Chessboard.tsx
190
+ var Root = /* @__PURE__ */ forwardRef(({ game, children }, forwardedRef) => {
191
+ const registry = useContext(RegistryContext);
192
+ const model = useMemo2(() => new ExtendedChessModel(registry, game), [
193
+ registry
194
+ ]);
195
+ const click = useSoundEffect("Click");
196
+ const [pgn, updatePgn] = useObject(game, "pgn");
197
+ useImperativeHandle(forwardedRef, () => {
198
+ return {
199
+ setMoveNumber: (index) => model.setMoveIndex(index)
200
+ };
201
+ }, [
202
+ model
203
+ ]);
204
+ useEffect2(() => {
205
+ if (model.pgn !== getRawPgn(pgn ?? "")) {
206
+ const silent = model.pgn === "*";
207
+ model.update(pgn);
208
+ if (!silent) {
209
+ void click.play();
210
+ }
211
+ }
212
+ }, [
213
+ pgn
214
+ ]);
215
+ const handleDrop = useCallback((move) => {
216
+ if (!model.makeMove(move)) {
217
+ return false;
218
+ }
219
+ void click.play();
220
+ updatePgn(() => model.pgn);
221
+ return true;
222
+ }, [
223
+ model
224
+ ]);
225
+ return /* @__PURE__ */ React2.createElement(Gameboard.Root, {
226
+ model,
227
+ onDrop: handleDrop
228
+ }, children);
229
+ });
230
+ var Content = ({ classNames, children }) => {
231
+ return /* @__PURE__ */ React2.createElement(Gameboard.Content, {
232
+ grow: true,
233
+ contain: true,
234
+ classNames
235
+ }, children);
236
+ };
237
+ var BOARD_NAME = "Chessboard.Board";
238
+ var Board = (props) => {
239
+ const registry = useContext(RegistryContext);
240
+ const { model } = useGameboardContext2(BOARD_NAME);
241
+ const ref = useRef2(null);
242
+ useEffect2(() => {
243
+ if (!ref.current) {
244
+ return;
245
+ }
246
+ ref.current.setAttribute("data-arrow-keys", "all");
247
+ return addEventListener(ref.current, "keydown", (ev) => {
248
+ const moveIndex = registry.get(model.moveIndex);
249
+ switch (ev.key) {
250
+ case "ArrowUp":
251
+ model.setMoveIndex(0);
252
+ break;
253
+ case "ArrowDown":
254
+ model.setMoveIndex(model.game.history().length);
255
+ break;
256
+ case "ArrowLeft":
257
+ if (moveIndex > 0) {
258
+ model.setMoveIndex(moveIndex - 1);
259
+ }
260
+ break;
261
+ case "ArrowRight":
262
+ if (moveIndex < model.game.history().length) {
263
+ model.setMoveIndex(moveIndex + 1);
264
+ }
265
+ break;
266
+ }
267
+ });
268
+ }, [
269
+ registry,
270
+ model
271
+ ]);
272
+ return /* @__PURE__ */ React2.createElement(NaturalChessboard, {
273
+ ...props,
274
+ ref
275
+ });
276
+ };
277
+ Board.displayName = BOARD_NAME;
278
+ var Chessboard = {
279
+ Root,
280
+ Content,
281
+ Board,
282
+ Info
283
+ };
284
+
285
+ // src/meta.ts
286
+ import { trim } from "@dxos/util";
287
+ var meta2 = {
288
+ id: "org.dxos.plugin.chess",
289
+ name: "Chess",
290
+ description: trim`
291
+ Full-featured chess game supporting multiplayer matches with friends or practice sessions against AI opponents.
292
+ Track game history and analyze moves in real-time.
293
+ `,
294
+ icon: "ph--shield-chevron--regular",
295
+ iconHue: "amber",
296
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-chess",
297
+ screenshots: [
298
+ "https://dxos.network/plugin-details-chess-dark.png"
299
+ ]
300
+ };
20
301
 
21
302
  // src/ChessPlugin.tsx
22
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from "@dxos/app-framework";
23
- import { ClientEvents } from "@dxos/plugin-client";
24
- import { SpaceCapabilities } from "@dxos/plugin-space";
25
- import { defineObjectForm } from "@dxos/plugin-space/types";
303
+ import * as Effect from "effect/Effect";
304
+ import * as Option from "effect/Option";
305
+ import { Plugin } from "@dxos/app-framework";
306
+ import { AppPlugin } from "@dxos/app-toolkit";
307
+ import { Annotation } from "@dxos/echo";
308
+ import { Operation } from "@dxos/operation";
309
+ import { SpaceOperation } from "@dxos/plugin-space/operations";
310
+ import { ChessBlueprint } from "#blueprints";
311
+ import { meta as meta4 } from "#meta";
26
312
 
27
313
  // src/translations.ts
314
+ import { meta as meta3 } from "#meta";
315
+ import { Chess } from "#types";
28
316
  var translations = [
29
317
  {
30
318
  "en-US": {
31
- [ChessType.typename]: {
32
- "typename label": "Game",
33
- "typename label_zero": "Games",
34
- "typename label_one": "Game",
35
- "typename label_other": "Games",
36
- "object name placeholder": "New game",
37
- "rename object label": "Rename game",
38
- "delete object label": "Delete game"
319
+ [Chess.Game.typename]: {
320
+ "typename.label": "Game",
321
+ "typename.label_zero": "Games",
322
+ "typename.label_one": "Game",
323
+ "typename.label_other": "Games",
324
+ "object-name.placeholder": "New game",
325
+ "add-object.label": "Add game",
326
+ "rename-object.label": "Rename game",
327
+ "delete-object.label": "Delete game",
328
+ "object-deleted.label": "Game deleted"
39
329
  },
40
- [meta.id]: {
41
- "plugin name": "Chess",
42
- "delete game label": "Delete"
330
+ [meta3.id]: {
331
+ "plugin.name": "Chess",
332
+ "delete-game.label": "Delete",
333
+ "game.checkmate.label": "Checkmate",
334
+ "game.stalemate.label": "Stalemate",
335
+ "game.draw.label": "Draw",
336
+ "game.check.label": "Check",
337
+ "select-player.button": "Select player",
338
+ "toggle-info.button": "Toggle info",
339
+ "close-info.button": "Close info",
340
+ "flip-board.button": "Flip board"
43
341
  }
44
342
  }
45
343
  }
46
344
  ];
47
345
 
48
346
  // src/ChessPlugin.tsx
49
- var ChessPlugin = () => definePlugin(meta, [
50
- defineModule({
51
- id: `${meta.id}/module/translations`,
52
- activatesOn: Events.SetupTranslations,
53
- activate: () => contributes(Capabilities.Translations, translations)
54
- }),
55
- defineModule({
56
- id: `${meta.id}/module/metadata`,
57
- activatesOn: Events.SetupMetadata,
58
- activate: () => contributes(Capabilities.Metadata, {
59
- id: ChessType.typename,
60
- metadata: {
61
- icon: "ph--shield-chevron--regular"
62
- }
63
- })
64
- }),
65
- defineModule({
66
- id: `${meta.id}/module/object-form`,
67
- activatesOn: ClientEvents.SetupSchema,
68
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
69
- objectSchema: ChessType,
70
- getIntent: () => createIntent(ChessAction.Create)
71
- }))
72
- }),
73
- defineModule({
74
- id: `${meta.id}/module/react-surface`,
75
- activatesOn: Events.SetupReactSurface,
76
- activate: ReactSurface
77
- }),
78
- defineModule({
79
- id: `${meta.id}/module/intent-resolver`,
80
- activatesOn: Events.SetupIntentResolver,
81
- activate: IntentResolver
82
- }),
83
- defineModule({
84
- id: `${meta.id}/module/artifact-definition`,
85
- activatesOn: Events.SetupArtifactDefinition,
86
- activate: ArtifactDefinition
87
- })
88
- ]);
347
+ import { Chess as Chess2 } from "#types";
348
+ import { BlueprintDefinition, OperationHandler, ReactSurface } from "#capabilities";
349
+ var ChessPlugin = Plugin.define(meta4).pipe(AppPlugin.addBlueprintDefinitionModule({
350
+ activate: BlueprintDefinition
351
+ }), AppPlugin.addOperationHandlerModule({
352
+ activate: OperationHandler
353
+ }), AppPlugin.addMetadataModule({
354
+ metadata: {
355
+ id: Chess2.Game.typename,
356
+ metadata: {
357
+ icon: Annotation.IconAnnotation.get(Chess2.Game).pipe(Option.getOrThrow).icon,
358
+ iconHue: Annotation.IconAnnotation.get(Chess2.Game).pipe(Option.getOrThrow).hue ?? "white",
359
+ blueprints: [
360
+ ChessBlueprint.key
361
+ ],
362
+ createObject: (props, options) => Effect.gen(function* () {
363
+ const object = Chess2.make(props);
364
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
365
+ object,
366
+ target: options.target,
367
+ hidden: true,
368
+ targetNodeId: options.targetNodeId
369
+ });
370
+ })
371
+ }
372
+ }
373
+ }), AppPlugin.addSchemaModule({
374
+ schema: [
375
+ Chess2.Game
376
+ ]
377
+ }), AppPlugin.addSurfaceModule({
378
+ activate: ReactSurface
379
+ }), AppPlugin.addTranslationsModule({
380
+ translations
381
+ }), Plugin.make);
89
382
  export {
90
- ArtifactDefinition,
91
- CHESS_PLUGIN,
92
- Chess,
93
- ChessContainer,
383
+ Chess_exports as Chess,
384
+ chess_blueprint_default as ChessBlueprint,
385
+ operations_exports as ChessFunctions,
94
386
  ChessPlugin,
95
- IntentResolver,
96
- ReactSurface,
97
- meta
387
+ Chessboard,
388
+ meta2 as meta
98
389
  };
99
390
  //# sourceMappingURL=index.mjs.map