@dxos/plugin-chess 0.7.5-labs.e27f9b9 → 0.7.5-main.2567c87

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 (137) hide show
  1. package/dist/lib/browser/ChessContainer-JYXOZIDK.mjs +505 -0
  2. package/dist/lib/browser/ChessContainer-JYXOZIDK.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-VYBCAEUF.mjs → chunk-VHSLLEH3.mjs} +8 -11
  4. package/dist/lib/browser/chunk-VHSLLEH3.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +15 -32
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/intent-resolver-FUAOSHHX.mjs +19 -0
  8. package/dist/lib/browser/intent-resolver-FUAOSHHX.mjs.map +7 -0
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/react-surface-63EO2PZO.mjs +30 -0
  11. package/dist/lib/browser/react-surface-63EO2PZO.mjs.map +7 -0
  12. package/dist/lib/browser/types/index.mjs +3 -3
  13. package/dist/lib/node/ChessContainer-XRP7D63X.cjs +518 -0
  14. package/dist/lib/node/ChessContainer-XRP7D63X.cjs.map +7 -0
  15. package/dist/lib/node/{chunk-J5YKJRP3.cjs → chunk-3BLH7NRV.cjs} +11 -14
  16. package/dist/lib/node/chunk-3BLH7NRV.cjs.map +7 -0
  17. package/dist/lib/node/index.cjs +31 -49
  18. package/dist/lib/node/index.cjs.map +4 -4
  19. package/dist/lib/node/{intent-resolver-OIFDW46S.cjs → intent-resolver-VTB6P3IL.cjs} +11 -20
  20. package/dist/lib/node/intent-resolver-VTB6P3IL.cjs.map +7 -0
  21. package/dist/lib/node/meta.json +1 -1
  22. package/dist/lib/node/{chunk-TEZPML34.cjs → react-surface-PO42G64E.cjs} +22 -11
  23. package/dist/lib/node/react-surface-PO42G64E.cjs.map +7 -0
  24. package/dist/lib/node/types/index.cjs +6 -6
  25. package/dist/lib/node/types/index.cjs.map +1 -1
  26. package/dist/lib/node-esm/ChessContainer-37QUCUTD.mjs +507 -0
  27. package/dist/lib/node-esm/ChessContainer-37QUCUTD.mjs.map +7 -0
  28. package/dist/lib/node-esm/{chunk-TXUWVQWY.mjs → chunk-M2CRYWX5.mjs} +8 -11
  29. package/dist/lib/node-esm/chunk-M2CRYWX5.mjs.map +7 -0
  30. package/dist/lib/node-esm/index.mjs +15 -32
  31. package/dist/lib/node-esm/index.mjs.map +4 -4
  32. package/dist/lib/node-esm/{intent-resolver-35HIBBYC.mjs → intent-resolver-MKEQFVZO.mjs} +9 -18
  33. package/dist/lib/node-esm/intent-resolver-MKEQFVZO.mjs.map +7 -0
  34. package/dist/lib/node-esm/meta.json +1 -1
  35. package/dist/lib/node-esm/react-surface-CXEBEDLT.mjs +31 -0
  36. package/dist/lib/node-esm/react-surface-CXEBEDLT.mjs.map +7 -0
  37. package/dist/lib/node-esm/types/index.mjs +3 -3
  38. package/dist/types/src/ChessPlugin.d.ts.map +1 -1
  39. package/dist/types/src/capabilities/index.d.ts +2 -3
  40. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  41. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  43. package/dist/types/src/components/Chess.d.ts +9 -0
  44. package/dist/types/src/components/Chess.d.ts.map +1 -0
  45. package/dist/types/src/components/ChessContainer.d.ts +3 -4
  46. package/dist/types/src/components/ChessContainer.d.ts.map +1 -1
  47. package/dist/types/src/components/Chessboard/Chessboard.d.ts +37 -0
  48. package/dist/types/src/components/Chessboard/Chessboard.d.ts.map +1 -0
  49. package/dist/types/src/components/Chessboard/Chessboard.stories.d.ts +13 -0
  50. package/dist/types/src/components/Chessboard/Chessboard.stories.d.ts.map +1 -0
  51. package/dist/types/src/components/Chessboard/index.d.ts +2 -0
  52. package/dist/types/src/components/Chessboard/index.d.ts.map +1 -0
  53. package/dist/types/src/components/Chessboard/pieces/custom.d.ts +3 -0
  54. package/dist/types/src/components/Chessboard/pieces/custom.d.ts.map +1 -0
  55. package/dist/types/src/components/Chessboard/pieces/index.d.ts +4 -0
  56. package/dist/types/src/components/Chessboard/pieces/index.d.ts.map +1 -0
  57. package/dist/types/src/components/Chessboard/pieces/phosphor.d.ts +3 -0
  58. package/dist/types/src/components/Chessboard/pieces/phosphor.d.ts.map +1 -0
  59. package/dist/types/src/components/Chessboard/pieces/riohacha.d.ts +3 -0
  60. package/dist/types/src/components/Chessboard/pieces/riohacha.d.ts.map +1 -0
  61. package/dist/types/src/components/index.d.ts +1 -3
  62. package/dist/types/src/components/index.d.ts.map +1 -1
  63. package/dist/types/src/index.d.ts +1 -3
  64. package/dist/types/src/index.d.ts.map +1 -1
  65. package/dist/types/src/types/schema.d.ts +2 -4
  66. package/dist/types/src/types/schema.d.ts.map +1 -1
  67. package/dist/types/src/types/types.d.ts +3 -4
  68. package/dist/types/src/types/types.d.ts.map +1 -1
  69. package/package.json +20 -22
  70. package/src/ChessPlugin.tsx +17 -14
  71. package/src/capabilities/index.ts +0 -1
  72. package/src/capabilities/intent-resolver.ts +5 -13
  73. package/src/capabilities/react-surface.tsx +5 -12
  74. package/src/components/{PlayerSelector.tsx → Chess.tsx} +50 -3
  75. package/src/components/ChessContainer.tsx +4 -14
  76. package/src/components/Chessboard/Chessboard.stories.tsx +43 -0
  77. package/src/components/Chessboard/Chessboard.tsx +170 -0
  78. package/src/components/Chessboard/index.ts +5 -0
  79. package/src/components/Chessboard/pieces/custom.tsx +82 -0
  80. package/src/components/Chessboard/pieces/index.ts +7 -0
  81. package/src/components/Chessboard/pieces/phosphor.tsx +71 -0
  82. package/src/components/Chessboard/pieces/riohacha.tsx +166 -0
  83. package/src/components/index.ts +0 -2
  84. package/src/index.ts +1 -4
  85. package/src/translations.ts +2 -2
  86. package/src/types/schema.ts +1 -3
  87. package/src/types/types.ts +5 -6
  88. package/dist/lib/browser/ChessContainer-2MMUB5S7.mjs +0 -86
  89. package/dist/lib/browser/ChessContainer-2MMUB5S7.mjs.map +0 -7
  90. package/dist/lib/browser/artifact-YWAB5JJL.mjs +0 -174
  91. package/dist/lib/browser/artifact-YWAB5JJL.mjs.map +0 -7
  92. package/dist/lib/browser/chunk-672NU6IC.mjs +0 -8
  93. package/dist/lib/browser/chunk-672NU6IC.mjs.map +0 -7
  94. package/dist/lib/browser/chunk-RGPTBDH7.mjs +0 -41
  95. package/dist/lib/browser/chunk-RGPTBDH7.mjs.map +0 -7
  96. package/dist/lib/browser/chunk-VYBCAEUF.mjs.map +0 -7
  97. package/dist/lib/browser/intent-resolver-BKKGQ5TJ.mjs +0 -28
  98. package/dist/lib/browser/intent-resolver-BKKGQ5TJ.mjs.map +0 -7
  99. package/dist/lib/browser/react-surface-Y7XMQYOV.mjs +0 -42
  100. package/dist/lib/browser/react-surface-Y7XMQYOV.mjs.map +0 -7
  101. package/dist/lib/node/ChessContainer-CMYJDMSG.cjs +0 -108
  102. package/dist/lib/node/ChessContainer-CMYJDMSG.cjs.map +0 -7
  103. package/dist/lib/node/artifact-YWL3LBIO.cjs +0 -189
  104. package/dist/lib/node/artifact-YWL3LBIO.cjs.map +0 -7
  105. package/dist/lib/node/chunk-J5YKJRP3.cjs.map +0 -7
  106. package/dist/lib/node/chunk-TEZPML34.cjs.map +0 -7
  107. package/dist/lib/node/chunk-YTD6SK5V.cjs +0 -73
  108. package/dist/lib/node/chunk-YTD6SK5V.cjs.map +0 -7
  109. package/dist/lib/node/intent-resolver-OIFDW46S.cjs.map +0 -7
  110. package/dist/lib/node/react-surface-35CG6JQF.cjs +0 -62
  111. package/dist/lib/node/react-surface-35CG6JQF.cjs.map +0 -7
  112. package/dist/lib/node-esm/ChessContainer-WV2CO5WO.mjs +0 -87
  113. package/dist/lib/node-esm/ChessContainer-WV2CO5WO.mjs.map +0 -7
  114. package/dist/lib/node-esm/artifact-B6IEF7U5.mjs +0 -175
  115. package/dist/lib/node-esm/artifact-B6IEF7U5.mjs.map +0 -7
  116. package/dist/lib/node-esm/chunk-GJW6TXCL.mjs +0 -43
  117. package/dist/lib/node-esm/chunk-GJW6TXCL.mjs.map +0 -7
  118. package/dist/lib/node-esm/chunk-TXUWVQWY.mjs.map +0 -7
  119. package/dist/lib/node-esm/chunk-YXXJHXSV.mjs +0 -10
  120. package/dist/lib/node-esm/chunk-YXXJHXSV.mjs.map +0 -7
  121. package/dist/lib/node-esm/intent-resolver-35HIBBYC.mjs.map +0 -7
  122. package/dist/lib/node-esm/react-surface-4FNRAFRL.mjs +0 -43
  123. package/dist/lib/node-esm/react-surface-4FNRAFRL.mjs.map +0 -7
  124. package/dist/types/src/capabilities/artifact.d.ts +0 -11
  125. package/dist/types/src/capabilities/artifact.d.ts.map +0 -1
  126. package/dist/types/src/components/ChessComponent.d.ts +0 -6
  127. package/dist/types/src/components/ChessComponent.d.ts.map +0 -1
  128. package/dist/types/src/components/ChessPanel.d.ts +0 -11
  129. package/dist/types/src/components/ChessPanel.d.ts.map +0 -1
  130. package/dist/types/src/components/Chessboard.stories.d.ts +0 -8
  131. package/dist/types/src/components/Chessboard.stories.d.ts.map +0 -1
  132. package/dist/types/src/components/PlayerSelector.d.ts +0 -8
  133. package/dist/types/src/components/PlayerSelector.d.ts.map +0 -1
  134. package/src/capabilities/artifact.ts +0 -109
  135. package/src/components/ChessComponent.tsx +0 -48
  136. package/src/components/ChessPanel.tsx +0 -67
  137. package/src/components/Chessboard.stories.tsx +0 -39
@@ -1,7 +1,6 @@
1
- import React from 'react';
2
- import { type ChessType } from '../types';
3
- declare const ChessContainer: ({ game }: {
4
- game: ChessType;
1
+ import React, { type ComponentProps } from 'react';
2
+ import { Chess } from './Chess';
3
+ declare const ChessContainer: ({ game, role }: Pick<ComponentProps<typeof Chess>, "game"> & {
5
4
  role?: string;
6
5
  }) => React.JSX.Element | null;
7
6
  export default ChessContainer;
@@ -1 +1 @@
1
- {"version":3,"file":"ChessContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/ChessContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,QAAA,MAAM,cAAc,aAAc;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,6BAmBnE,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"ChessContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/ChessContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAKnD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,QAAA,MAAM,cAAc,mBAAoB,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,6BAWrG,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { Chess, type Color } from 'chess.js';
2
+ import React, { type FC } from 'react';
3
+ export declare enum ChessPieces {
4
+ STANDARD = 0,
5
+ CUSTOM = 1,
6
+ FUTURE = 2,
7
+ RIOHACHA = 3
8
+ }
9
+ export type BoardStyle = 'default' | 'blue' | 'dark';
10
+ export declare const boardStyles: Record<BoardStyle, any>;
11
+ export type ChessModel = {
12
+ chess: Chess;
13
+ };
14
+ export type ChessMove = {
15
+ from: string;
16
+ to: string;
17
+ promotion?: string;
18
+ };
19
+ export type ChessboardProps = {
20
+ model: ChessModel;
21
+ orientation?: Color;
22
+ readonly?: boolean;
23
+ boardStyle?: BoardStyle;
24
+ pieces?: ChessPieces;
25
+ onUpdate?: (move: ChessMove) => void;
26
+ };
27
+ /**
28
+ * https://www.npmjs.com/package/chess.js
29
+ * https://www.npmjs.com/package/react-chessboard
30
+ */
31
+ export declare const Chessboard: ({ model: { chess }, orientation, readonly, boardStyle, pieces, onUpdate, }: ChessboardProps) => React.JSX.Element;
32
+ export declare const ChessPanel: FC<{
33
+ model: ChessModel;
34
+ orientation?: Color;
35
+ onFlip?: () => void;
36
+ }>;
37
+ //# sourceMappingURL=Chessboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chessboard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Chessboard/Chessboard.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAQvC,oBAAY,WAAW;IACrB,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,MAAM,IAAI;IACV,QAAQ,IAAI;CACb;AAcD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,CAa/C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,+EAOpB,eAAe,sBAoCjB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CA+CA,CAAC"}
@@ -0,0 +1,13 @@
1
+ import '@dxos-theme';
2
+ import React from 'react';
3
+ declare const _default: {
4
+ title: string;
5
+ component: ({ model: { chess }, orientation, readonly, boardStyle, pieces, onUpdate, }: import("./Chessboard").ChessboardProps) => React.JSX.Element;
6
+ render: () => React.JSX.Element;
7
+ decorators: import("@storybook/react/*").Decorator[];
8
+ };
9
+ export default _default;
10
+ export declare const Default: {
11
+ component: ({ model: { chess }, orientation, readonly, boardStyle, pieces, onUpdate, }: import("./Chessboard").ChessboardProps) => React.JSX.Element;
12
+ };
13
+ //# sourceMappingURL=Chessboard.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chessboard.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Chessboard/Chessboard.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAGrB,OAAO,KAAmB,MAAM,OAAO,CAAC;;;;;;;AA0BxC,wBAKE;AAEF,eAAO,MAAM,OAAO;;CAEnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './Chessboard';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Chessboard/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ReactNode } from 'react';
2
+ export declare const customPieces: Record<string, ReactNode>;
3
+ //# sourceMappingURL=custom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Chessboard/pieces/custom.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA+D9C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAclD,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './custom';
2
+ export * from './phosphor';
3
+ export * from './riohacha';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Chessboard/pieces/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ReactNode } from 'react';
2
+ export declare const phosphorPieces: Record<string, ReactNode>;
3
+ //# sourceMappingURL=phosphor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phosphor.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Chessboard/pieces/phosphor.tsx"],"names":[],"mappings":"AAKA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAmD9C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAcpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ReactNode } from 'react';
2
+ export declare const riohachaPieces: Record<string, ReactNode>;
3
+ //# sourceMappingURL=riohacha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"riohacha.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Chessboard/pieces/riohacha.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAmJ9C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAcpD,CAAC"}
@@ -1,6 +1,4 @@
1
- export * from './ChessComponent';
2
- export declare const ChessContainer: import("react").LazyExoticComponent<({ game }: {
3
- game: import("../types").ChessType;
1
+ export declare const ChessContainer: import("react").LazyExoticComponent<({ game, role }: Pick<import("react").ComponentProps<typeof import("./Chess").Chess>, "game"> & {
4
2
  role?: string;
5
3
  }) => import("react").JSX.Element | null>;
6
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,cAAc,kBAAkB,CAAC;AAEjC,eAAO,MAAM,cAAc;;QAC2K,CAAC;yCADnI,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc;QACyJ,CAAC;yCADjH,CAAC"}
@@ -1,5 +1,3 @@
1
- export * from './capabilities';
2
- export * from './components';
3
- export * from './meta';
4
1
  export * from './ChessPlugin';
2
+ export * from './meta';
5
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AAEvB,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
@@ -8,13 +8,12 @@ export declare const MoveSchema: S.mutable<S.SchemaClass<{
8
8
  readonly target?: string | undefined;
9
9
  readonly piece?: string | undefined;
10
10
  }, never>>;
11
- declare const ChessType_base: import("@dxos/echo-schema").TypedObjectPrototype<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
11
+ declare const GameType_base: import("@dxos/echo-schema").TypedObjectPrototype<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
12
12
  name: S.optional<typeof S.String>;
13
13
  playerWhite: typeof S.String;
14
14
  playerBlack: typeof S.String;
15
15
  moves: S.mutable<S.Array$<typeof S.String>>;
16
16
  pgn: typeof S.String;
17
- fen: typeof S.String;
18
17
  }, {
19
18
  partial: true;
20
19
  }>, S.Struct.Encoded<{
@@ -23,9 +22,8 @@ declare const ChessType_base: import("@dxos/echo-schema").TypedObjectPrototype<i
23
22
  playerBlack: typeof S.String;
24
23
  moves: S.mutable<S.Array$<typeof S.String>>;
25
24
  pgn: typeof S.String;
26
- fen: typeof S.String;
27
25
  }>>;
28
- export declare class ChessType extends ChessType_base {
26
+ export declare class GameType extends GameType_base {
29
27
  }
30
28
  export {};
31
29
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/types/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAe,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,UAAU;;;;;;;;UAQtB,CAAC;;;;;;;;;;;;;;;;;;AAEF,qBAAa,SAAU,SAAQ,cAW9B;CAAG"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/types/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAe,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,UAAU;;;;;;;;UAQtB,CAAC;;;;;;;;;;;;;;;;AAEF,qBAAa,QAAS,SAAQ,aAS7B;CAAG"}
@@ -1,20 +1,19 @@
1
1
  import { S } from '@dxos/echo-schema';
2
- import { ChessType } from './schema';
2
+ import { GameType } from './schema';
3
3
  export declare namespace ChessAction {
4
4
  const Create_base: S.TaggedClass<Create, "dxos.org/plugin/chess/action/create", {
5
5
  readonly _tag: S.tag<"dxos.org/plugin/chess/action/create">;
6
6
  } & {
7
7
  input: S.Struct<{
8
8
  name: S.optional<typeof S.String>;
9
- fen: S.optional<typeof S.String>;
10
9
  }>;
11
10
  output: S.Struct<{
12
- object: typeof ChessType;
11
+ object: typeof GameType;
13
12
  }>;
14
13
  }>;
15
14
  export class Create extends Create_base {
16
15
  }
17
16
  export {};
18
17
  }
19
- export declare const isObject: (object: unknown) => object is typeof ChessType;
18
+ export declare const isObject: (object: unknown) => object is GameType;
20
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,yBAAiB,WAAW,CAAC;;;;;;;;;;;;IAG3B,MAAM,OAAO,MAAO,SAAQ,WAQ1B;KAAG;;CACN;AAED,eAAO,MAAM,QAAQ,WAAY,OAAO,KAAG,MAAM,IAAI,OAAO,SAE3D,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,yBAAiB,WAAW,CAAC;;;;;;;;;;;IAG3B,MAAM,OAAO,MAAO,SAAQ,WAO1B;KAAG;;CACN;AAED,eAAO,MAAM,QAAQ,WAAY,OAAO,KAAG,MAAM,IAAI,QAEpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-chess",
3
- "version": "0.7.5-labs.e27f9b9",
3
+ "version": "0.7.5-main.2567c87",
4
4
  "description": "Chess for new plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -34,22 +34,20 @@
34
34
  "dependencies": {
35
35
  "@effect/schema": "^0.75.5",
36
36
  "@preact/signals-core": "^1.6.0",
37
- "chess.js": "^1.0.0",
38
- "effect": "^3.12.3",
39
- "@dxos/artifact": "0.7.5-labs.e27f9b9",
40
- "@dxos/app-framework": "0.7.5-labs.e27f9b9",
41
- "@dxos/assistant": "0.7.5-labs.e27f9b9",
42
- "@dxos/echo-schema": "0.7.5-labs.e27f9b9",
43
- "@dxos/display-name": "0.7.5-labs.e27f9b9",
44
- "@dxos/async": "0.7.5-labs.e27f9b9",
45
- "@dxos/invariant": "0.7.5-labs.e27f9b9",
46
- "@dxos/live-object": "0.7.5-labs.e27f9b9",
47
- "@dxos/plugin-graph": "0.7.5-labs.e27f9b9",
48
- "@dxos/plugin-space": "0.7.5-labs.e27f9b9",
49
- "@dxos/plugin-client": "0.7.5-labs.e27f9b9",
50
- "@dxos/react-client": "0.7.5-labs.e27f9b9",
51
- "@dxos/react-ui-stack": "0.7.5-labs.e27f9b9",
52
- "@dxos/react-ui-gameboard": "0.7.5-labs.e27f9b9"
37
+ "chess.js": "^1.0.0-beta.8",
38
+ "react-chessboard": "^4.7.1",
39
+ "react-resize-detector": "^11.0.1",
40
+ "@dxos/app-framework": "0.7.5-main.2567c87",
41
+ "@dxos/display-name": "0.7.5-main.2567c87",
42
+ "@dxos/async": "0.7.5-main.2567c87",
43
+ "@dxos/echo-schema": "0.7.5-main.2567c87",
44
+ "@dxos/invariant": "0.7.5-main.2567c87",
45
+ "@dxos/live-object": "0.7.5-main.2567c87",
46
+ "@dxos/plugin-client": "0.7.5-main.2567c87",
47
+ "@dxos/plugin-graph": "0.7.5-main.2567c87",
48
+ "@dxos/plugin-space": "0.7.5-main.2567c87",
49
+ "@dxos/react-ui-stack": "0.7.5-main.2567c87",
50
+ "@dxos/react-client": "0.7.5-main.2567c87"
53
51
  },
54
52
  "devDependencies": {
55
53
  "@phosphor-icons/react": "^2.1.5",
@@ -58,16 +56,16 @@
58
56
  "react": "~18.2.0",
59
57
  "react-dom": "~18.2.0",
60
58
  "vite": "5.4.7",
61
- "@dxos/react-ui": "0.7.5-labs.e27f9b9",
62
- "@dxos/react-ui-theme": "0.7.5-labs.e27f9b9",
63
- "@dxos/storybook-utils": "0.7.5-labs.e27f9b9"
59
+ "@dxos/react-ui": "0.7.5-main.2567c87",
60
+ "@dxos/react-ui-theme": "0.7.5-main.2567c87",
61
+ "@dxos/storybook-utils": "0.7.5-main.2567c87"
64
62
  },
65
63
  "peerDependencies": {
66
64
  "@phosphor-icons/react": "^2.1.5",
67
65
  "react": "~18.2.0",
68
66
  "react-dom": "~18.2.0",
69
- "@dxos/react-ui": "0.7.5-labs.e27f9b9",
70
- "@dxos/react-ui-theme": "0.7.5-labs.e27f9b9"
67
+ "@dxos/react-ui": "0.7.5-main.2567c87",
68
+ "@dxos/react-ui-theme": "0.7.5-main.2567c87"
71
69
  },
72
70
  "publishConfig": {
73
71
  "access": "public"
@@ -2,13 +2,21 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';
5
+ import {
6
+ Capabilities,
7
+ contributes,
8
+ createIntent,
9
+ defineModule,
10
+ definePlugin,
11
+ Events,
12
+ oneOf,
13
+ } from '@dxos/app-framework';
6
14
  import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
7
15
 
8
- import { Artifact, IntentResolver, ReactSurface } from './capabilities';
16
+ import { IntentResolver, ReactSurface } from './capabilities';
9
17
  import { CHESS_PLUGIN, meta } from './meta';
10
18
  import translations from './translations';
11
- import { ChessAction, ChessType } from './types';
19
+ import { ChessAction, GameType } from './types';
12
20
 
13
21
  export const ChessPlugin = () =>
14
22
  definePlugin(meta, [
@@ -19,10 +27,10 @@ export const ChessPlugin = () =>
19
27
  }),
20
28
  defineModule({
21
29
  id: `${meta.id}/module/metadata`,
22
- activatesOn: Events.SetupMetadata,
30
+ activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),
23
31
  activate: () =>
24
32
  contributes(Capabilities.Metadata, {
25
- id: ChessType.typename,
33
+ id: GameType.typename,
26
34
  metadata: {
27
35
  createObject: (props: { name?: string }) => createIntent(ChessAction.Create, props),
28
36
  placeholder: ['game title placeholder', { ns: CHESS_PLUGIN }],
@@ -32,22 +40,17 @@ export const ChessPlugin = () =>
32
40
  }),
33
41
  defineModule({
34
42
  id: `${meta.id}/module/schema`,
35
- activatesOn: ClientEvents.SetupSchema,
36
- activate: () => contributes(ClientCapabilities.Schema, [ChessType]),
43
+ activatesOn: ClientEvents.SetupClient,
44
+ activate: () => contributes(ClientCapabilities.Schema, [GameType]),
37
45
  }),
38
46
  defineModule({
39
47
  id: `${meta.id}/module/react-surface`,
40
- activatesOn: Events.SetupSurfaces,
48
+ activatesOn: Events.Startup,
41
49
  activate: ReactSurface,
42
50
  }),
43
51
  defineModule({
44
52
  id: `${meta.id}/module/intent-resolver`,
45
- activatesOn: Events.SetupIntents,
46
- activate: IntentResolver,
47
- }),
48
- defineModule({
49
- id: `${meta.id}/module/artifact`,
50
53
  activatesOn: Events.Startup,
51
- activate: Artifact,
54
+ activate: IntentResolver,
52
55
  }),
53
56
  ]);
@@ -4,6 +4,5 @@
4
4
 
5
5
  import { lazy } from '@dxos/app-framework';
6
6
 
7
- export const Artifact = lazy(() => import('./artifact'));
8
7
  export const IntentResolver = lazy(() => import('./intent-resolver'));
9
8
  export const ReactSurface = lazy(() => import('./react-surface'));
@@ -2,25 +2,17 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Chess } from 'chess.js';
6
-
7
5
  import { Capabilities, contributes, createResolver } from '@dxos/app-framework';
8
6
  import { create } from '@dxos/live-object';
9
7
 
10
- import { ChessAction, ChessType } from '../types';
8
+ import { ChessAction, GameType } from '../types';
11
9
 
12
10
  export default () =>
13
11
  contributes(
14
12
  Capabilities.IntentResolver,
15
- createResolver({
16
- intent: ChessAction.Create,
17
- resolve: ({ name, fen }) => {
18
- const pgn = fen ? new Chess(fen).pgn() : undefined;
19
- return {
20
- data: {
21
- object: create(ChessType, { name, fen, pgn }),
22
- },
23
- };
13
+ createResolver(ChessAction.Create, ({ name }) => ({
14
+ data: {
15
+ object: create(GameType, { name }),
24
16
  },
25
- }),
17
+ })),
26
18
  );
@@ -5,25 +5,18 @@
5
5
  import React from 'react';
6
6
 
7
7
  import { Capabilities, contributes, createSurface } from '@dxos/app-framework';
8
- import { isInstanceOf } from '@dxos/echo-schema';
9
8
 
10
9
  import { ChessContainer } from '../components';
11
- import { ChessComponent } from '../components/ChessComponent';
12
10
  import { CHESS_PLUGIN } from '../meta';
13
- import { ChessType, isObject } from '../types';
11
+ import { isObject, type GameType } from '../types';
14
12
 
15
13
  export default () =>
16
- contributes(Capabilities.ReactSurface, [
14
+ contributes(
15
+ Capabilities.ReactSurface,
17
16
  createSurface({
18
17
  id: CHESS_PLUGIN,
19
18
  role: ['article', 'section'],
20
- filter: (data): data is { subject: ChessType } => isObject(data.subject),
19
+ filter: (data): data is { subject: GameType } => isObject(data.subject),
21
20
  component: ({ data, role }) => <ChessContainer game={data.subject} role={role} />,
22
21
  }),
23
- createSurface({
24
- id: 'plugin-chess',
25
- role: 'canvas-node',
26
- filter: (data): data is any => isInstanceOf(ChessType, data),
27
- component: ({ data }) => <ChessComponent game={data} />,
28
- }),
29
- ]);
22
+ );
@@ -3,16 +3,63 @@
3
3
  //
4
4
 
5
5
  import { CrownCross } from '@phosphor-icons/react';
6
- import React from 'react';
6
+ import { Chess as ChessJs } from 'chess.js';
7
+ import React, { useEffect, useState } from 'react';
7
8
 
8
9
  import { generateName } from '@dxos/display-name';
10
+ import { invariant } from '@dxos/invariant';
9
11
  import { useMembers, type Space, type SpaceMember } from '@dxos/react-client/echo';
10
12
  import { Input, Select, useThemeContext } from '@dxos/react-ui';
11
13
  import { getSize, mx } from '@dxos/react-ui-theme';
12
14
 
13
- import { type ChessType } from '../types';
15
+ import { Chessboard, type ChessModel, type ChessMove } from './Chessboard';
16
+ import { type GameType } from '../types';
14
17
 
15
- export const PlayerSelector = ({ space, game }: { space: Space; game: ChessType }) => {
18
+ const useChessModel = (game: GameType) => {
19
+ const [model, setModel] = useState<ChessModel>();
20
+
21
+ useEffect(() => {
22
+ if (!model || game.pgn !== model?.chess.pgn()) {
23
+ const chess = new ChessJs();
24
+ if (game.pgn) {
25
+ chess.loadPgn(game.pgn);
26
+ }
27
+
28
+ setModel({ chess });
29
+ }
30
+ }, [game.pgn]);
31
+
32
+ const handleUpdate = (move: ChessMove) => {
33
+ invariant(model);
34
+ if (model.chess.move(move)) {
35
+ game!.pgn = model.chess.pgn();
36
+ setModel({ ...model });
37
+ }
38
+ };
39
+
40
+ return { model, handleUpdate };
41
+ };
42
+
43
+ export const Chess = ({ space, game, playerSelector }: { space: Space; game: GameType; playerSelector?: boolean }) => {
44
+ const { model, handleUpdate } = useChessModel(game);
45
+ if (!model) {
46
+ return null;
47
+ }
48
+
49
+ return (
50
+ <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>
51
+ <div />
52
+ <div className='flex grow justify-center overflow-hidden'>
53
+ <div className='flex grow max-w-[600px] items-center overflow-hidden'>
54
+ <Chessboard model={model} onUpdate={handleUpdate} />
55
+ </div>
56
+ </div>
57
+ {playerSelector && <PlayerSelector game={game} space={space} />}
58
+ </div>
59
+ );
60
+ };
61
+
62
+ const PlayerSelector = ({ game, space }: { game: GameType; space: Space }) => {
16
63
  const members = useMembers(space.key);
17
64
 
18
65
  return (
@@ -2,16 +2,14 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import React from 'react';
5
+ import React, { type ComponentProps } from 'react';
6
6
 
7
7
  import { getSpace } from '@dxos/react-client/echo';
8
8
  import { StackItem } from '@dxos/react-ui-stack';
9
9
 
10
- import { ChessComponent } from './ChessComponent';
11
- import { PlayerSelector } from './PlayerSelector';
12
- import { type ChessType } from '../types';
10
+ import { Chess } from './Chess';
13
11
 
14
- const ChessContainer = ({ game }: { game: ChessType; role?: string }) => {
12
+ const ChessContainer = ({ game, role }: Pick<ComponentProps<typeof Chess>, 'game'> & { role?: string }) => {
15
13
  const space = getSpace(game);
16
14
  if (!space) {
17
15
  return null;
@@ -19,15 +17,7 @@ const ChessContainer = ({ game }: { game: ChessType; role?: string }) => {
19
17
 
20
18
  return (
21
19
  <StackItem.Content toolbar={false}>
22
- <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>
23
- <div />
24
-
25
- <div className='flex m-4 overflow-hidden'>
26
- <ChessComponent game={game} />
27
- </div>
28
-
29
- <PlayerSelector space={space} game={game} />
30
- </div>
20
+ <Chess game={game} space={space} playerSelector={role === 'article'} />
31
21
  </StackItem.Content>
32
22
  );
33
23
  };
@@ -0,0 +1,43 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import '@dxos-theme';
6
+
7
+ import { Chess } from 'chess.js';
8
+ import React, { useState } from 'react';
9
+
10
+ import { withTheme } from '@dxos/storybook-utils';
11
+
12
+ import { Chessboard, type ChessModel, type ChessMove, ChessPanel } from './Chessboard';
13
+
14
+ const Story = () => {
15
+ const [model, setModel] = useState<ChessModel>({ chess: new Chess() });
16
+ const handleUpdate = (move: ChessMove) => {
17
+ if (model.chess.move(move)) {
18
+ setModel({ ...model });
19
+ }
20
+ };
21
+
22
+ return (
23
+ <div className='flex flex-row'>
24
+ <div className='w-[600px]'>
25
+ <Chessboard model={model} boardStyle='default' onUpdate={handleUpdate} />
26
+ </div>
27
+ <div className='w-[160px] ml-8'>
28
+ <ChessPanel model={model} />
29
+ </div>
30
+ </div>
31
+ );
32
+ };
33
+
34
+ export default {
35
+ title: 'plugins/plugin-chess/Chessboard',
36
+ component: Chessboard,
37
+ render: Story,
38
+ decorators: [withTheme],
39
+ };
40
+
41
+ export const Default = {
42
+ component: Chessboard,
43
+ };