@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.
- package/dist/lib/browser/ChessContainer-JYXOZIDK.mjs +505 -0
- package/dist/lib/browser/ChessContainer-JYXOZIDK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VYBCAEUF.mjs → chunk-VHSLLEH3.mjs} +8 -11
- package/dist/lib/browser/chunk-VHSLLEH3.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +15 -32
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-FUAOSHHX.mjs +19 -0
- package/dist/lib/browser/intent-resolver-FUAOSHHX.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-63EO2PZO.mjs +30 -0
- package/dist/lib/browser/react-surface-63EO2PZO.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +3 -3
- package/dist/lib/node/ChessContainer-XRP7D63X.cjs +518 -0
- package/dist/lib/node/ChessContainer-XRP7D63X.cjs.map +7 -0
- package/dist/lib/node/{chunk-J5YKJRP3.cjs → chunk-3BLH7NRV.cjs} +11 -14
- package/dist/lib/node/chunk-3BLH7NRV.cjs.map +7 -0
- package/dist/lib/node/index.cjs +31 -49
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/{intent-resolver-OIFDW46S.cjs → intent-resolver-VTB6P3IL.cjs} +11 -20
- package/dist/lib/node/intent-resolver-VTB6P3IL.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{chunk-TEZPML34.cjs → react-surface-PO42G64E.cjs} +22 -11
- package/dist/lib/node/react-surface-PO42G64E.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +6 -6
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/ChessContainer-37QUCUTD.mjs +507 -0
- package/dist/lib/node-esm/ChessContainer-37QUCUTD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TXUWVQWY.mjs → chunk-M2CRYWX5.mjs} +8 -11
- package/dist/lib/node-esm/chunk-M2CRYWX5.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +15 -32
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-35HIBBYC.mjs → intent-resolver-MKEQFVZO.mjs} +9 -18
- package/dist/lib/node-esm/intent-resolver-MKEQFVZO.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-CXEBEDLT.mjs +31 -0
- package/dist/lib/node-esm/react-surface-CXEBEDLT.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +3 -3
- package/dist/types/src/ChessPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +2 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/Chess.d.ts +9 -0
- package/dist/types/src/components/Chess.d.ts.map +1 -0
- package/dist/types/src/components/ChessContainer.d.ts +3 -4
- package/dist/types/src/components/ChessContainer.d.ts.map +1 -1
- package/dist/types/src/components/Chessboard/Chessboard.d.ts +37 -0
- package/dist/types/src/components/Chessboard/Chessboard.d.ts.map +1 -0
- package/dist/types/src/components/Chessboard/Chessboard.stories.d.ts +13 -0
- package/dist/types/src/components/Chessboard/Chessboard.stories.d.ts.map +1 -0
- package/dist/types/src/components/Chessboard/index.d.ts +2 -0
- package/dist/types/src/components/Chessboard/index.d.ts.map +1 -0
- package/dist/types/src/components/Chessboard/pieces/custom.d.ts +3 -0
- package/dist/types/src/components/Chessboard/pieces/custom.d.ts.map +1 -0
- package/dist/types/src/components/Chessboard/pieces/index.d.ts +4 -0
- package/dist/types/src/components/Chessboard/pieces/index.d.ts.map +1 -0
- package/dist/types/src/components/Chessboard/pieces/phosphor.d.ts +3 -0
- package/dist/types/src/components/Chessboard/pieces/phosphor.d.ts.map +1 -0
- package/dist/types/src/components/Chessboard/pieces/riohacha.d.ts +3 -0
- package/dist/types/src/components/Chessboard/pieces/riohacha.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -3
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +2 -4
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +3 -4
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/package.json +20 -22
- package/src/ChessPlugin.tsx +17 -14
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/intent-resolver.ts +5 -13
- package/src/capabilities/react-surface.tsx +5 -12
- package/src/components/{PlayerSelector.tsx → Chess.tsx} +50 -3
- package/src/components/ChessContainer.tsx +4 -14
- package/src/components/Chessboard/Chessboard.stories.tsx +43 -0
- package/src/components/Chessboard/Chessboard.tsx +170 -0
- package/src/components/Chessboard/index.ts +5 -0
- package/src/components/Chessboard/pieces/custom.tsx +82 -0
- package/src/components/Chessboard/pieces/index.ts +7 -0
- package/src/components/Chessboard/pieces/phosphor.tsx +71 -0
- package/src/components/Chessboard/pieces/riohacha.tsx +166 -0
- package/src/components/index.ts +0 -2
- package/src/index.ts +1 -4
- package/src/translations.ts +2 -2
- package/src/types/schema.ts +1 -3
- package/src/types/types.ts +5 -6
- package/dist/lib/browser/ChessContainer-2MMUB5S7.mjs +0 -86
- package/dist/lib/browser/ChessContainer-2MMUB5S7.mjs.map +0 -7
- package/dist/lib/browser/artifact-YWAB5JJL.mjs +0 -174
- package/dist/lib/browser/artifact-YWAB5JJL.mjs.map +0 -7
- package/dist/lib/browser/chunk-672NU6IC.mjs +0 -8
- package/dist/lib/browser/chunk-672NU6IC.mjs.map +0 -7
- package/dist/lib/browser/chunk-RGPTBDH7.mjs +0 -41
- package/dist/lib/browser/chunk-RGPTBDH7.mjs.map +0 -7
- package/dist/lib/browser/chunk-VYBCAEUF.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-BKKGQ5TJ.mjs +0 -28
- package/dist/lib/browser/intent-resolver-BKKGQ5TJ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-Y7XMQYOV.mjs +0 -42
- package/dist/lib/browser/react-surface-Y7XMQYOV.mjs.map +0 -7
- package/dist/lib/node/ChessContainer-CMYJDMSG.cjs +0 -108
- package/dist/lib/node/ChessContainer-CMYJDMSG.cjs.map +0 -7
- package/dist/lib/node/artifact-YWL3LBIO.cjs +0 -189
- package/dist/lib/node/artifact-YWL3LBIO.cjs.map +0 -7
- package/dist/lib/node/chunk-J5YKJRP3.cjs.map +0 -7
- package/dist/lib/node/chunk-TEZPML34.cjs.map +0 -7
- package/dist/lib/node/chunk-YTD6SK5V.cjs +0 -73
- package/dist/lib/node/chunk-YTD6SK5V.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-OIFDW46S.cjs.map +0 -7
- package/dist/lib/node/react-surface-35CG6JQF.cjs +0 -62
- package/dist/lib/node/react-surface-35CG6JQF.cjs.map +0 -7
- package/dist/lib/node-esm/ChessContainer-WV2CO5WO.mjs +0 -87
- package/dist/lib/node-esm/ChessContainer-WV2CO5WO.mjs.map +0 -7
- package/dist/lib/node-esm/artifact-B6IEF7U5.mjs +0 -175
- package/dist/lib/node-esm/artifact-B6IEF7U5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GJW6TXCL.mjs +0 -43
- package/dist/lib/node-esm/chunk-GJW6TXCL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TXUWVQWY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YXXJHXSV.mjs +0 -10
- package/dist/lib/node-esm/chunk-YXXJHXSV.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-35HIBBYC.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-4FNRAFRL.mjs +0 -43
- package/dist/lib/node-esm/react-surface-4FNRAFRL.mjs.map +0 -7
- package/dist/types/src/capabilities/artifact.d.ts +0 -11
- package/dist/types/src/capabilities/artifact.d.ts.map +0 -1
- package/dist/types/src/components/ChessComponent.d.ts +0 -6
- package/dist/types/src/components/ChessComponent.d.ts.map +0 -1
- package/dist/types/src/components/ChessPanel.d.ts +0 -11
- package/dist/types/src/components/ChessPanel.d.ts.map +0 -1
- package/dist/types/src/components/Chessboard.stories.d.ts +0 -8
- package/dist/types/src/components/Chessboard.stories.d.ts.map +0 -1
- package/dist/types/src/components/PlayerSelector.d.ts +0 -8
- package/dist/types/src/components/PlayerSelector.d.ts.map +0 -1
- package/src/capabilities/artifact.ts +0 -109
- package/src/components/ChessComponent.tsx +0 -48
- package/src/components/ChessPanel.tsx +0 -67
- package/src/components/Chessboard.stories.tsx +0 -39
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {
|
|
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;
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Chessboard/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
|
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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc;QACyJ,CAAC;yCADjH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,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
|
|
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
|
|
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
|
|
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 {
|
|
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
|
|
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
|
|
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,
|
|
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-
|
|
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
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"@dxos/app-framework": "0.7.5-
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/plugin-graph": "0.7.5-
|
|
48
|
-
"@dxos/plugin-space": "0.7.5-
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/react-client": "0.7.5-
|
|
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-
|
|
62
|
-
"@dxos/react-ui-theme": "0.7.5-
|
|
63
|
-
"@dxos/storybook-utils": "0.7.5-
|
|
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-
|
|
70
|
-
"@dxos/react-ui-theme": "0.7.5-
|
|
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"
|
package/src/ChessPlugin.tsx
CHANGED
|
@@ -2,13 +2,21 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
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 {
|
|
16
|
+
import { IntentResolver, ReactSurface } from './capabilities';
|
|
9
17
|
import { CHESS_PLUGIN, meta } from './meta';
|
|
10
18
|
import translations from './translations';
|
|
11
|
-
import { ChessAction,
|
|
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.
|
|
30
|
+
activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),
|
|
23
31
|
activate: () =>
|
|
24
32
|
contributes(Capabilities.Metadata, {
|
|
25
|
-
id:
|
|
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.
|
|
36
|
-
activate: () => contributes(ClientCapabilities.Schema, [
|
|
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.
|
|
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:
|
|
54
|
+
activate: IntentResolver,
|
|
52
55
|
}),
|
|
53
56
|
]);
|
|
@@ -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,
|
|
8
|
+
import { ChessAction, GameType } from '../types';
|
|
11
9
|
|
|
12
10
|
export default () =>
|
|
13
11
|
contributes(
|
|
14
12
|
Capabilities.IntentResolver,
|
|
15
|
-
createResolver({
|
|
16
|
-
|
|
17
|
-
|
|
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 {
|
|
11
|
+
import { isObject, type GameType } from '../types';
|
|
14
12
|
|
|
15
13
|
export default () =>
|
|
16
|
-
contributes(
|
|
14
|
+
contributes(
|
|
15
|
+
Capabilities.ReactSurface,
|
|
17
16
|
createSurface({
|
|
18
17
|
id: CHESS_PLUGIN,
|
|
19
18
|
role: ['article', 'section'],
|
|
20
|
-
filter: (data): data is { 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
|
-
|
|
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
|
|
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
|
|
15
|
+
import { Chessboard, type ChessModel, type ChessMove } from './Chessboard';
|
|
16
|
+
import { type GameType } from '../types';
|
|
14
17
|
|
|
15
|
-
|
|
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 {
|
|
11
|
-
import { PlayerSelector } from './PlayerSelector';
|
|
12
|
-
import { type ChessType } from '../types';
|
|
10
|
+
import { Chess } from './Chess';
|
|
13
11
|
|
|
14
|
-
const ChessContainer = ({ game }:
|
|
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
|
-
<
|
|
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
|
+
};
|