@dxos/plugin-chess 0.7.5-main.ff8607b → 0.7.5-staging.2ff1350
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-LPMACR6Y.mjs → ChessContainer-XERPODLK.mjs} +10 -30
- package/dist/lib/browser/ChessContainer-XERPODLK.mjs.map +7 -0
- package/dist/lib/browser/artifact-definition-AEIQ7Z36.mjs +174 -0
- package/dist/lib/browser/artifact-definition-AEIQ7Z36.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KC36U5TF.mjs → chunk-GKM6RRDX.mjs} +11 -8
- package/dist/lib/browser/chunk-GKM6RRDX.mjs.map +7 -0
- package/dist/lib/browser/chunk-R26FYVUS.mjs +8 -0
- package/dist/lib/browser/chunk-R26FYVUS.mjs.map +7 -0
- package/dist/lib/browser/chunk-VRWXC5L2.mjs +42 -0
- package/dist/lib/browser/chunk-VRWXC5L2.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +36 -17
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-5CPSAZSA.mjs → intent-resolver-VPK5QRXH.mjs} +16 -10
- package/dist/lib/browser/intent-resolver-VPK5QRXH.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-ITP4OMBZ.mjs +42 -0
- package/dist/lib/browser/react-surface-ITP4OMBZ.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +3 -3
- package/dist/lib/node/{ChessContainer-ZFOCAXZL.cjs → ChessContainer-LEPLNICP.cjs} +9 -32
- package/dist/lib/node/ChessContainer-LEPLNICP.cjs.map +7 -0
- package/dist/lib/node/artifact-definition-ZM5VDOVN.cjs +189 -0
- package/dist/lib/node/artifact-definition-ZM5VDOVN.cjs.map +7 -0
- package/dist/lib/node/{chunk-BEZSGC5V.cjs → chunk-3TTH3HKL.cjs} +14 -11
- package/dist/lib/node/chunk-3TTH3HKL.cjs.map +7 -0
- package/dist/lib/node/chunk-CSRNUKOH.cjs +74 -0
- package/dist/lib/node/chunk-CSRNUKOH.cjs.map +7 -0
- package/dist/lib/node/{react-surface-IOAB5AXZ.cjs → chunk-ITDMCBQQ.cjs} +11 -22
- package/dist/lib/node/chunk-ITDMCBQQ.cjs.map +7 -0
- package/dist/lib/node/index.cjs +51 -31
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/{intent-resolver-2YYMQ2H5.cjs → intent-resolver-PUM2BVGU.cjs} +19 -13
- package/dist/lib/node/intent-resolver-PUM2BVGU.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-surface-4G4PW5RU.cjs +62 -0
- package/dist/lib/node/react-surface-4G4PW5RU.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-DF6IFM2R.mjs → ChessContainer-S76WNBWN.mjs} +9 -30
- package/dist/lib/node-esm/ChessContainer-S76WNBWN.mjs.map +7 -0
- package/dist/lib/node-esm/artifact-definition-NGQEQHJT.mjs +175 -0
- package/dist/lib/node-esm/artifact-definition-NGQEQHJT.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6SEDGO5G.mjs +44 -0
- package/dist/lib/node-esm/chunk-6SEDGO5G.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-B72CIN6T.mjs +10 -0
- package/dist/lib/node-esm/chunk-B72CIN6T.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-A6KO5IFZ.mjs → chunk-GQA2DRUZ.mjs} +11 -8
- package/dist/lib/node-esm/chunk-GQA2DRUZ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +36 -17
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-XCT7HZ43.mjs → intent-resolver-IR3YUZIG.mjs} +16 -10
- package/dist/lib/node-esm/intent-resolver-IR3YUZIG.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-AEMVDP4R.mjs +43 -0
- package/dist/lib/node-esm/react-surface-AEMVDP4R.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/artifact-definition.d.ts +11 -0
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +1 -0
- 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/ChessComponent.d.ts +5 -0
- package/dist/types/src/components/ChessComponent.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/PlayerSelector.d.ts +4 -5
- package/dist/types/src/components/PlayerSelector.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +3 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +4 -2
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +4 -3
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/package.json +22 -18
- package/src/ChessPlugin.tsx +22 -9
- package/src/capabilities/artifact-definition.ts +109 -0
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/intent-resolver.ts +11 -6
- package/src/capabilities/react-surface.tsx +12 -5
- package/src/components/ChessComponent.tsx +49 -0
- package/src/components/ChessContainer.tsx +5 -32
- package/src/components/PlayerSelector.tsx +2 -2
- package/src/components/index.ts +2 -0
- package/src/index.ts +4 -1
- package/src/translations.ts +2 -2
- package/src/types/schema.ts +3 -1
- package/src/types/types.ts +6 -5
- package/dist/lib/browser/ChessContainer-LPMACR6Y.mjs.map +0 -7
- package/dist/lib/browser/chunk-KC36U5TF.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-5CPSAZSA.mjs.map +0 -7
- package/dist/lib/browser/react-surface-6J2N3V5R.mjs +0 -30
- package/dist/lib/browser/react-surface-6J2N3V5R.mjs.map +0 -7
- package/dist/lib/node/ChessContainer-ZFOCAXZL.cjs.map +0 -7
- package/dist/lib/node/chunk-BEZSGC5V.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-2YYMQ2H5.cjs.map +0 -7
- package/dist/lib/node/react-surface-IOAB5AXZ.cjs.map +0 -7
- package/dist/lib/node-esm/ChessContainer-DF6IFM2R.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-A6KO5IFZ.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-XCT7HZ43.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-47I77M7F.mjs +0 -31
- package/dist/lib/node-esm/react-surface-47I77M7F.mjs.map +0 -7
|
@@ -2,20 +2,25 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Chess } from 'chess.js';
|
|
6
|
+
|
|
5
7
|
import { Capabilities, contributes, createResolver } from '@dxos/app-framework';
|
|
6
8
|
import { create } from '@dxos/live-object';
|
|
7
9
|
|
|
8
|
-
import { ChessAction,
|
|
10
|
+
import { ChessAction, ChessType } from '../types';
|
|
9
11
|
|
|
10
12
|
export default () =>
|
|
11
13
|
contributes(
|
|
12
14
|
Capabilities.IntentResolver,
|
|
13
15
|
createResolver({
|
|
14
16
|
intent: ChessAction.Create,
|
|
15
|
-
resolve: ({ name }) =>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
+
};
|
|
24
|
+
},
|
|
20
25
|
}),
|
|
21
26
|
);
|
|
@@ -5,18 +5,25 @@
|
|
|
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';
|
|
8
9
|
|
|
9
10
|
import { ChessContainer } from '../components';
|
|
11
|
+
import { ChessComponent } from '../components/ChessComponent';
|
|
10
12
|
import { CHESS_PLUGIN } from '../meta';
|
|
11
|
-
import {
|
|
13
|
+
import { ChessType, isObject } from '../types';
|
|
12
14
|
|
|
13
15
|
export default () =>
|
|
14
|
-
contributes(
|
|
15
|
-
Capabilities.ReactSurface,
|
|
16
|
+
contributes(Capabilities.ReactSurface, [
|
|
16
17
|
createSurface({
|
|
17
18
|
id: CHESS_PLUGIN,
|
|
18
19
|
role: ['article', 'section'],
|
|
19
|
-
filter: (data): data is { subject:
|
|
20
|
+
filter: (data): data is { subject: ChessType } => isObject(data.subject),
|
|
20
21
|
component: ({ data, role }) => <ChessContainer game={data.subject} role={role} />,
|
|
21
22
|
}),
|
|
22
|
-
|
|
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
|
+
]);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { Chess } from 'chess.js';
|
|
6
|
+
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
7
|
+
|
|
8
|
+
import { getSpace } from '@dxos/react-client/echo';
|
|
9
|
+
import { ChessModel, Board, Chessboard, type BoardRootProps } from '@dxos/react-ui-gameboard';
|
|
10
|
+
|
|
11
|
+
import { type ChessType } from '../types';
|
|
12
|
+
|
|
13
|
+
export const ChessComponent = ({ game }: { game: ChessType }) => {
|
|
14
|
+
const model = useMemo(() => new ChessModel(), []);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (!model || game.pgn !== model?.game.pgn()) {
|
|
17
|
+
const chess = new Chess();
|
|
18
|
+
if (game.pgn) {
|
|
19
|
+
chess.loadPgn(game.pgn);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
model.initialize(chess.fen());
|
|
23
|
+
}
|
|
24
|
+
}, [game.pgn]);
|
|
25
|
+
|
|
26
|
+
const space = getSpace(game);
|
|
27
|
+
if (!space) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const handleDrop = useCallback<NonNullable<BoardRootProps['onDrop']>>(
|
|
32
|
+
(move) => {
|
|
33
|
+
if (model.makeMove(move)) {
|
|
34
|
+
game.pgn = model.game.pgn();
|
|
35
|
+
game.fen = model.game.fen();
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return false;
|
|
40
|
+
},
|
|
41
|
+
[model],
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<Board.Root model={model} onDrop={handleDrop}>
|
|
46
|
+
<Chessboard />
|
|
47
|
+
</Board.Root>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
@@ -2,55 +2,28 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
5
|
+
import React from 'react';
|
|
7
6
|
|
|
8
7
|
import { getSpace } from '@dxos/react-client/echo';
|
|
9
|
-
import { ChessModel, Board, Chessboard, type BoardRootProps } from '@dxos/react-ui-gameboard';
|
|
10
8
|
import { StackItem } from '@dxos/react-ui-stack';
|
|
11
9
|
|
|
10
|
+
import { ChessComponent } from './ChessComponent';
|
|
12
11
|
import { PlayerSelector } from './PlayerSelector';
|
|
13
|
-
import { type
|
|
14
|
-
|
|
15
|
-
const ChessContainer = ({ game }: { game: GameType; role?: string }) => {
|
|
16
|
-
const model = useMemo(() => new ChessModel(), []);
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
if (!model || game.pgn !== model?.game.pgn()) {
|
|
19
|
-
const chess = new Chess();
|
|
20
|
-
if (game.pgn) {
|
|
21
|
-
chess.loadPgn(game.pgn);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
model.initialize(chess.fen());
|
|
25
|
-
}
|
|
26
|
-
}, [game.pgn]);
|
|
12
|
+
import { type ChessType } from '../types';
|
|
27
13
|
|
|
14
|
+
const ChessContainer = ({ game }: { game: ChessType; role?: string }) => {
|
|
28
15
|
const space = getSpace(game);
|
|
29
16
|
if (!space) {
|
|
30
17
|
return null;
|
|
31
18
|
}
|
|
32
19
|
|
|
33
|
-
const handleDrop = useCallback<NonNullable<BoardRootProps['onDrop']>>(
|
|
34
|
-
(move) => {
|
|
35
|
-
if (model.makeMove(move)) {
|
|
36
|
-
game.pgn = model.game.pgn();
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return false;
|
|
41
|
-
},
|
|
42
|
-
[model],
|
|
43
|
-
);
|
|
44
|
-
|
|
45
20
|
return (
|
|
46
21
|
<StackItem.Content toolbar={false}>
|
|
47
22
|
<div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>
|
|
48
23
|
<div />
|
|
49
24
|
|
|
50
25
|
<div className='flex m-4 overflow-hidden'>
|
|
51
|
-
<
|
|
52
|
-
<Chessboard />
|
|
53
|
-
</Board.Root>
|
|
26
|
+
<ChessComponent game={game} />
|
|
54
27
|
</div>
|
|
55
28
|
|
|
56
29
|
<PlayerSelector space={space} game={game} />
|
|
@@ -10,9 +10,9 @@ import { useMembers, type Space, type SpaceMember } from '@dxos/react-client/ech
|
|
|
10
10
|
import { Input, Select, useThemeContext } from '@dxos/react-ui';
|
|
11
11
|
import { getSize, mx } from '@dxos/react-ui-theme';
|
|
12
12
|
|
|
13
|
-
import { type
|
|
13
|
+
import { type ChessType } from '../types';
|
|
14
14
|
|
|
15
|
-
export const PlayerSelector = ({
|
|
15
|
+
export const PlayerSelector = ({ space, game }: { space: Space; game: ChessType }) => {
|
|
16
16
|
const members = useMembers(space.key);
|
|
17
17
|
|
|
18
18
|
return (
|
package/src/components/index.ts
CHANGED
package/src/index.ts
CHANGED
package/src/translations.ts
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { CHESS_PLUGIN } from './meta';
|
|
6
|
-
import {
|
|
6
|
+
import { ChessType } from './types';
|
|
7
7
|
|
|
8
8
|
export default [
|
|
9
9
|
{
|
|
10
10
|
'en-US': {
|
|
11
|
-
[
|
|
11
|
+
[ChessType.typename]: {
|
|
12
12
|
'typename label': 'Game',
|
|
13
13
|
},
|
|
14
14
|
[CHESS_PLUGIN]: {
|
package/src/types/schema.ts
CHANGED
|
@@ -14,13 +14,15 @@ export const MoveSchema = S.mutable(
|
|
|
14
14
|
),
|
|
15
15
|
);
|
|
16
16
|
|
|
17
|
-
export class
|
|
17
|
+
export class ChessType extends TypedObject({ typename: 'dxos.org/type/Chess', version: '0.1.0' })(
|
|
18
18
|
{
|
|
19
19
|
name: S.optional(S.String),
|
|
20
20
|
playerWhite: S.String,
|
|
21
21
|
playerBlack: S.String,
|
|
22
22
|
moves: S.mutable(S.Array(S.String)),
|
|
23
|
+
// TODO(wittjosiah): Remove. Redundant with moves.
|
|
23
24
|
pgn: S.String,
|
|
25
|
+
fen: S.String,
|
|
24
26
|
},
|
|
25
27
|
{ partial: true },
|
|
26
28
|
) {}
|
package/src/types/types.ts
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { S } from '@dxos/echo-schema';
|
|
5
|
+
import { isInstanceOf, S } from '@dxos/echo-schema';
|
|
6
6
|
import { isReactiveObject } from '@dxos/live-object';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { ChessType } from './schema';
|
|
9
9
|
import { CHESS_PLUGIN } from '../meta';
|
|
10
10
|
|
|
11
11
|
export namespace ChessAction {
|
|
@@ -14,13 +14,14 @@ export namespace ChessAction {
|
|
|
14
14
|
export class Create extends S.TaggedClass<Create>()(`${CHESS_ACTION}/create`, {
|
|
15
15
|
input: S.Struct({
|
|
16
16
|
name: S.optional(S.String),
|
|
17
|
+
fen: S.optional(S.String),
|
|
17
18
|
}),
|
|
18
19
|
output: S.Struct({
|
|
19
|
-
object:
|
|
20
|
+
object: ChessType,
|
|
20
21
|
}),
|
|
21
22
|
}) {}
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
export const isObject = (object: unknown): object is
|
|
25
|
-
return isReactiveObject(object) && object
|
|
25
|
+
export const isObject = (object: unknown): object is typeof ChessType => {
|
|
26
|
+
return isReactiveObject(object) && isInstanceOf(ChessType, object);
|
|
26
27
|
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ChessContainer.tsx", "../../../src/components/PlayerSelector.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Chess } from 'chess.js';\nimport React, { useCallback, useEffect, useMemo } from 'react';\n\nimport { getSpace } from '@dxos/react-client/echo';\nimport { ChessModel, Board, Chessboard, type BoardRootProps } from '@dxos/react-ui-gameboard';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PlayerSelector } from './PlayerSelector';\nimport { type GameType } from '../types';\n\nconst ChessContainer = ({ game }: { game: GameType; role?: string }) => {\n const model = useMemo(() => new ChessModel(), []);\n useEffect(() => {\n if (!model || game.pgn !== model?.game.pgn()) {\n const chess = new Chess();\n if (game.pgn) {\n chess.loadPgn(game.pgn);\n }\n\n model.initialize(chess.fen());\n }\n }, [game.pgn]);\n\n const space = getSpace(game);\n if (!space) {\n return null;\n }\n\n const handleDrop = useCallback<NonNullable<BoardRootProps['onDrop']>>(\n (move) => {\n if (model.makeMove(move)) {\n game.pgn = model.game.pgn();\n return true;\n }\n\n return false;\n },\n [model],\n );\n\n return (\n <StackItem.Content toolbar={false}>\n <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>\n <div />\n\n <div className='flex m-4 overflow-hidden'>\n <Board.Root model={model} onDrop={handleDrop}>\n <Chessboard />\n </Board.Root>\n </div>\n\n <PlayerSelector space={space} game={game} />\n </div>\n </StackItem.Content>\n );\n};\n\nexport default ChessContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CrownCross } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { generateName } from '@dxos/display-name';\nimport { useMembers, type Space, type SpaceMember } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { type GameType } from '../types';\n\nexport const PlayerSelector = ({ game, space }: { game: GameType; space: Space }) => {\n const members = useMembers(space.key);\n\n return (\n <div role='none' className='grid grid-cols-2 gap-8'>\n <div role='none' className='flex flex-row-reverse items-center gap-2'>\n <PlayerSelect\n side='white'\n value={game.playerWhite}\n onValueChange={(player) => (game.playerWhite = player)}\n members={members}\n />\n </div>\n <div role='none' className='flex flex-row items-center gap-2'>\n <PlayerSelect\n side='black'\n value={game.playerBlack}\n onValueChange={(player) => (game.playerBlack = player)}\n members={members}\n />\n </div>\n </div>\n );\n};\n\nconst PlayerSelect = ({\n side,\n value,\n onValueChange,\n members,\n}: {\n side: 'white' | 'black';\n value: string | undefined;\n onValueChange: (player: string) => void;\n members: SpaceMember[];\n}) => {\n const { themeMode } = useThemeContext();\n const iconFillMode =\n (side === 'black' && themeMode === 'light') || (side === 'white' && themeMode === 'dark') ? 'fill' : undefined;\n\n return (\n <Input.Root>\n <Input.Label>\n <CrownCross className={mx(getSize(6))} weight={iconFillMode} aria-label={`Chess icon for side ${side}`} />\n </Input.Label>\n <Select.Root value={value} onValueChange={onValueChange}>\n <Select.TriggerButton placeholder={'Select player'} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {members.map((member) => {\n const memberKey = member.identity.identityKey.toHex();\n const displayName = member.identity?.profile?.displayName || generateName(memberKey);\n return (\n <Select.Option key={memberKey} value={memberKey}>\n {displayName}\n </Select.Option>\n );\n })}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Input.Root>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Chess", "React", "useCallback", "useEffect", "useMemo", "getSpace", "ChessModel", "Board", "Chessboard", "StackItem", "CrownCross", "React", "generateName", "useMembers", "Input", "Select", "useThemeContext", "getSize", "mx", "PlayerSelector", "game", "space", "members", "useMembers", "key", "div", "role", "className", "PlayerSelect", "side", "value", "playerWhite", "onValueChange", "player", "playerBlack", "themeMode", "useThemeContext", "iconFillMode", "undefined", "Input", "Root", "Label", "CrownCross", "mx", "getSize", "weight", "aria-label", "Select", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "map", "member", "memberKey", "identity", "identityKey", "toHex", "displayName", "profile", "generateName", "Option", "ChessContainer", "game", "model", "useMemo", "ChessModel", "useEffect", "pgn", "chess", "Chess", "loadPgn", "initialize", "fen", "space", "getSpace", "handleDrop", "useCallback", "move", "makeMove", "React", "StackItem", "Content", "toolbar", "div", "role", "className", "Board", "Root", "onDrop", "Chessboard", "PlayerSelector"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/schema.ts", "../../../src/types/types.ts", "../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { S, TypedObject } from '@dxos/echo-schema';\n\nexport const MoveSchema = S.mutable(\n S.partial(\n S.Struct({\n source: S.String,\n target: S.String,\n piece: S.String,\n }),\n ),\n);\n\nexport class GameType extends TypedObject({ typename: 'dxos.org/type/Chess', version: '0.1.0' })(\n {\n name: S.optional(S.String),\n playerWhite: S.String,\n playerBlack: S.String,\n moves: S.mutable(S.Array(S.String)),\n pgn: S.String,\n },\n { partial: true },\n) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\nimport { isReactiveObject } from '@dxos/live-object';\n\nimport { GameType } from './schema';\nimport { CHESS_PLUGIN } from '../meta';\n\nexport namespace ChessAction {\n const CHESS_ACTION = `${CHESS_PLUGIN}/action`;\n\n export class Create extends S.TaggedClass<Create>()(`${CHESS_ACTION}/create`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: GameType,\n }),\n }) {}\n}\n\nexport const isObject = (object: unknown): object is GameType => {\n return isReactiveObject(object) && object instanceof GameType;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const CHESS_PLUGIN = 'dxos.org/plugin/chess';\n\nexport const meta = {\n id: CHESS_PLUGIN,\n name: 'Chess',\n description:\n 'Chess is a simple plugin which allows you to render an interactive chessboard inside of a plank. This chessboard can be used for collaborative chess games, or for practice experiments with the LLM. ',\n icon: 'ph--shield-chevron--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-chess',\n screenshots: ['https://dxos.network/plugin-details-chess-dark.png'],\n} satisfies PluginMeta;\n"],
|
|
5
|
-
"mappings": ";AAIA,SAASA,GAAGC,mBAAmB;AAExB,IAAMC,aAAaC,EAAEC,QAC1BD,EAAEE,QACAF,EAAEG,OAAO;EACPC,QAAQJ,EAAEK;EACVC,QAAQN,EAAEK;EACVE,OAAOP,EAAEK;AACX,CAAA,CAAA,CAAA;AAIG,IAAMG,WAAN,cAAuBC,YAAY;EAAEC,UAAU;EAAuBC,SAAS;AAAQ,CAAA,EAC5F;EACEC,MAAMZ,EAAEa,SAASb,EAAEK,MAAM;EACzBS,aAAad,EAAEK;EACfU,aAAaf,EAAEK;EACfW,OAAOhB,EAAEC,QAAQD,EAAEiB,MAAMjB,EAAEK,MAAM,CAAA;EACjCa,KAAKlB,EAAEK;AACT,GACA;EAAEH,SAAS;AAAK,CAAA,EAAA;AACf;;;ACrBH,SAASiB,KAAAA,UAAS;AAClB,SAASC,wBAAwB;;;ACC1B,IAAMC,eAAe;AAErB,IAAMC,OAAO;EAClBC,IAAIF;EACJG,MAAM;EACNC,aACE;EACFC,MAAM;EACNC,QAAQ;EACRC,aAAa;IAAC;;AAChB;;;;UDNiBC,cAAAA;AACf,QAAMC,eAAe,GAAGC,YAAAA;EAEjB,MAAMC,eAAeC,GAAEC,YAAW,EAAW,GAAGJ,YAAAA,WAAuB;IAC5EK,OAAOF,GAAEG,OAAO;MACdC,MAAMJ,GAAEK,SAASL,GAAEM,MAAM;IAC3B,CAAA;IACAC,QAAQP,GAAEG,OAAO;MACfK,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;eAPSV,SAAAA;AAQf,GAXiBH,gBAAAA,cAAAA,CAAAA,EAAAA;AAaV,IAAMc,WAAW,CAACF,WAAAA;AACvB,SAAOG,iBAAiBH,MAAAA,KAAWA,kBAAkBC;AACvD;",
|
|
6
|
-
"names": ["S", "TypedObject", "MoveSchema", "S", "mutable", "partial", "Struct", "source", "String", "target", "piece", "GameType", "TypedObject", "typename", "version", "name", "optional", "playerWhite", "playerBlack", "moves", "Array", "pgn", "S", "isReactiveObject", "CHESS_PLUGIN", "meta", "id", "name", "description", "icon", "source", "screenshots", "ChessAction", "CHESS_ACTION", "CHESS_PLUGIN", "Create", "S", "TaggedClass", "input", "Struct", "name", "optional", "String", "output", "object", "GameType", "isObject", "isReactiveObject"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { ChessAction, GameType } from '../types';\n\nexport default () =>\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: ChessAction.Create,\n resolve: ({ name }) => ({\n data: {\n object: create(GameType, { name }),\n },\n }),\n }),\n );\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,SAASA,cAAcC,aAAaC,sBAAsB;AAC1D,SAASC,cAAc;AAIvB,IAAA,0BAAe,MACbC,YACEC,aAAaC,gBACbC,eAAe;EACbC,QAAQC,YAAYC;EACpBC,SAAS,CAAC,EAAEC,KAAI,OAAQ;IACtBC,MAAM;MACJC,QAAQC,OAAOC,UAAU;QAAEJ;MAAK,CAAA;IAClC;EACF;AACF,CAAA,CAAA;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "createResolver", "create", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ChessAction", "Create", "resolve", "name", "data", "object", "create", "GameType"]
|
|
7
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CHESS_PLUGIN,
|
|
3
|
-
isObject
|
|
4
|
-
} from "./chunk-KC36U5TF.mjs";
|
|
5
|
-
|
|
6
|
-
// packages/plugins/plugin-chess/src/capabilities/react-surface.tsx
|
|
7
|
-
import React from "react";
|
|
8
|
-
import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
|
|
9
|
-
|
|
10
|
-
// packages/plugins/plugin-chess/src/components/index.ts
|
|
11
|
-
import { lazy } from "react";
|
|
12
|
-
var ChessContainer = lazy(() => import("./ChessContainer-LPMACR6Y.mjs"));
|
|
13
|
-
|
|
14
|
-
// packages/plugins/plugin-chess/src/capabilities/react-surface.tsx
|
|
15
|
-
var react_surface_default = () => contributes(Capabilities.ReactSurface, createSurface({
|
|
16
|
-
id: CHESS_PLUGIN,
|
|
17
|
-
role: [
|
|
18
|
-
"article",
|
|
19
|
-
"section"
|
|
20
|
-
],
|
|
21
|
-
filter: (data) => isObject(data.subject),
|
|
22
|
-
component: ({ data, role }) => /* @__PURE__ */ React.createElement(ChessContainer, {
|
|
23
|
-
game: data.subject,
|
|
24
|
-
role
|
|
25
|
-
})
|
|
26
|
-
}));
|
|
27
|
-
export {
|
|
28
|
-
react_surface_default as default
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=react-surface-6J2N3V5R.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\n\nimport { ChessContainer } from '../components';\nimport { CHESS_PLUGIN } from '../meta';\nimport { isObject, type GameType } from '../types';\n\nexport default () =>\n contributes(\n Capabilities.ReactSurface,\n createSurface({\n id: CHESS_PLUGIN,\n role: ['article', 'section'],\n filter: (data): data is { subject: GameType } => isObject(data.subject),\n component: ({ data, role }) => <ChessContainer game={data.subject} role={role} />,\n }),\n );\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const ChessContainer = lazy(() => import('./ChessContainer'));\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;;;ACFzD,SAASC,YAAY;AAEd,IAAMC,iBAAiBC,KAAK,MAAM,OAAO,+BAAA,CAAA;;;ADMhD,IAAA,wBAAe,MACbC,YACEC,aAAaC,cACbC,cAAc;EACZC,IAAIC;EACJC,MAAM;IAAC;IAAW;;EAClBC,QAAQ,CAACC,SAAwCC,SAASD,KAAKE,OAAO;EACtEC,WAAW,CAAC,EAAEH,MAAMF,KAAI,MAAO,sBAAA,cAACM,gBAAAA;IAAeC,MAAML,KAAKE;IAASJ;;AACrE,CAAA,CAAA;",
|
|
6
|
-
"names": ["React", "Capabilities", "contributes", "createSurface", "lazy", "ChessContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "CHESS_PLUGIN", "role", "filter", "data", "isObject", "subject", "component", "ChessContainer", "game"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ChessContainer.tsx", "../../../src/components/PlayerSelector.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Chess } from 'chess.js';\nimport React, { useCallback, useEffect, useMemo } from 'react';\n\nimport { getSpace } from '@dxos/react-client/echo';\nimport { ChessModel, Board, Chessboard, type BoardRootProps } from '@dxos/react-ui-gameboard';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PlayerSelector } from './PlayerSelector';\nimport { type GameType } from '../types';\n\nconst ChessContainer = ({ game }: { game: GameType; role?: string }) => {\n const model = useMemo(() => new ChessModel(), []);\n useEffect(() => {\n if (!model || game.pgn !== model?.game.pgn()) {\n const chess = new Chess();\n if (game.pgn) {\n chess.loadPgn(game.pgn);\n }\n\n model.initialize(chess.fen());\n }\n }, [game.pgn]);\n\n const space = getSpace(game);\n if (!space) {\n return null;\n }\n\n const handleDrop = useCallback<NonNullable<BoardRootProps['onDrop']>>(\n (move) => {\n if (model.makeMove(move)) {\n game.pgn = model.game.pgn();\n return true;\n }\n\n return false;\n },\n [model],\n );\n\n return (\n <StackItem.Content toolbar={false}>\n <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>\n <div />\n\n <div className='flex m-4 overflow-hidden'>\n <Board.Root model={model} onDrop={handleDrop}>\n <Chessboard />\n </Board.Root>\n </div>\n\n <PlayerSelector space={space} game={game} />\n </div>\n </StackItem.Content>\n );\n};\n\nexport default ChessContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CrownCross } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { generateName } from '@dxos/display-name';\nimport { useMembers, type Space, type SpaceMember } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { type GameType } from '../types';\n\nexport const PlayerSelector = ({ game, space }: { game: GameType; space: Space }) => {\n const members = useMembers(space.key);\n\n return (\n <div role='none' className='grid grid-cols-2 gap-8'>\n <div role='none' className='flex flex-row-reverse items-center gap-2'>\n <PlayerSelect\n side='white'\n value={game.playerWhite}\n onValueChange={(player) => (game.playerWhite = player)}\n members={members}\n />\n </div>\n <div role='none' className='flex flex-row items-center gap-2'>\n <PlayerSelect\n side='black'\n value={game.playerBlack}\n onValueChange={(player) => (game.playerBlack = player)}\n members={members}\n />\n </div>\n </div>\n );\n};\n\nconst PlayerSelect = ({\n side,\n value,\n onValueChange,\n members,\n}: {\n side: 'white' | 'black';\n value: string | undefined;\n onValueChange: (player: string) => void;\n members: SpaceMember[];\n}) => {\n const { themeMode } = useThemeContext();\n const iconFillMode =\n (side === 'black' && themeMode === 'light') || (side === 'white' && themeMode === 'dark') ? 'fill' : undefined;\n\n return (\n <Input.Root>\n <Input.Label>\n <CrownCross className={mx(getSize(6))} weight={iconFillMode} aria-label={`Chess icon for side ${side}`} />\n </Input.Label>\n <Select.Root value={value} onValueChange={onValueChange}>\n <Select.TriggerButton placeholder={'Select player'} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {members.map((member) => {\n const memberKey = member.identity.identityKey.toHex();\n const displayName = member.identity?.profile?.displayName || generateName(memberKey);\n return (\n <Select.Option key={memberKey} value={memberKey}>\n {displayName}\n </Select.Option>\n );\n })}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Input.Root>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_react", "import_echo", "PlayerSelector", "game", "space", "members", "useMembers", "key", "React", "div", "role", "className", "PlayerSelect", "side", "value", "playerWhite", "onValueChange", "player", "playerBlack", "themeMode", "useThemeContext", "iconFillMode", "undefined", "Input", "Root", "Label", "CrownCross", "mx", "getSize", "weight", "aria-label", "Select", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "map", "member", "memberKey", "identity", "identityKey", "toHex", "displayName", "profile", "generateName", "Option", "ChessContainer", "model", "useMemo", "ChessModel", "useEffect", "pgn", "chess", "Chess", "loadPgn", "initialize", "fen", "getSpace", "handleDrop", "useCallback", "move", "makeMove", "StackItem", "toolbar", "Board", "onDrop", "Chessboard"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/schema.ts", "../../../src/types/types.ts", "../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { S, TypedObject } from '@dxos/echo-schema';\n\nexport const MoveSchema = S.mutable(\n S.partial(\n S.Struct({\n source: S.String,\n target: S.String,\n piece: S.String,\n }),\n ),\n);\n\nexport class GameType extends TypedObject({ typename: 'dxos.org/type/Chess', version: '0.1.0' })(\n {\n name: S.optional(S.String),\n playerWhite: S.String,\n playerBlack: S.String,\n moves: S.mutable(S.Array(S.String)),\n pgn: S.String,\n },\n { partial: true },\n) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\nimport { isReactiveObject } from '@dxos/live-object';\n\nimport { GameType } from './schema';\nimport { CHESS_PLUGIN } from '../meta';\n\nexport namespace ChessAction {\n const CHESS_ACTION = `${CHESS_PLUGIN}/action`;\n\n export class Create extends S.TaggedClass<Create>()(`${CHESS_ACTION}/create`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: GameType,\n }),\n }) {}\n}\n\nexport const isObject = (object: unknown): object is GameType => {\n return isReactiveObject(object) && object instanceof GameType;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const CHESS_PLUGIN = 'dxos.org/plugin/chess';\n\nexport const meta = {\n id: CHESS_PLUGIN,\n name: 'Chess',\n description:\n 'Chess is a simple plugin which allows you to render an interactive chessboard inside of a plank. This chessboard can be used for collaborative chess games, or for practice experiments with the LLM. ',\n icon: 'ph--shield-chevron--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-chess',\n screenshots: ['https://dxos.network/plugin-details-chess-dark.png'],\n} satisfies PluginMeta;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAA+B;ACA/B,IAAAA,sBAAkB;AAClB,yBAAiC;ADC1B,IAAMC,aAAaC,qBAAEC,QAC1BD,qBAAEE,QACAF,qBAAEG,OAAO;EACPC,QAAQJ,qBAAEK;EACVC,QAAQN,qBAAEK;EACVE,OAAOP,qBAAEK;AACX,CAAA,CAAA,CAAA;AAIG,IAAMG,WAAN,kBAAuBC,gCAAY;EAAEC,UAAU;EAAuBC,SAAS;AAAQ,CAAA,EAC5F;EACEC,MAAMZ,qBAAEa,SAASb,qBAAEK,MAAM;EACzBS,aAAad,qBAAEK;EACfU,aAAaf,qBAAEK;EACfW,OAAOhB,qBAAEC,QAAQD,qBAAEiB,MAAMjB,qBAAEK,MAAM,CAAA;EACjCa,KAAKlB,qBAAEK;AACT,GACA;EAAEH,SAAS;AAAK,CAAA,EAAA;AACf;AEnBI,IAAMiB,eAAe;AAErB,IAAMC,OAAO;EAClBC,IAAIF;EACJP,MAAM;EACNU,aACE;EACFC,MAAM;EACNnB,QAAQ;EACRoB,aAAa;IAAC;;AAChB;;UDNiBC,cAAAA;AACf,QAAMC,eAAe,GAAGP,YAAAA;EAEjB,MAAMQ,eAAe3B,oBAAAA,EAAE4B,YAAW,EAAW,GAAGF,YAAAA,WAAuB;IAC5EG,OAAO7B,oBAAAA,EAAEG,OAAO;MACdS,MAAMZ,oBAAAA,EAAEa,SAASb,oBAAAA,EAAEK,MAAM;IAC3B,CAAA;IACAyB,QAAQ9B,oBAAAA,EAAEG,OAAO;MACf4B,QAAQvB;IACV,CAAA;EACF,CAAA,EAAA;EAAI;eAPSmB,SAAAA;AAQf,GAXiBF,gBAAAA,cAAAA,CAAAA,EAAAA;AAaV,IAAMO,WAAW,CAACD,WAAAA;AACvB,aAAOE,qCAAiBF,MAAAA,KAAWA,kBAAkBvB;AACvD;",
|
|
6
|
-
"names": ["import_echo_schema", "MoveSchema", "S", "mutable", "partial", "Struct", "source", "String", "target", "piece", "GameType", "TypedObject", "typename", "version", "name", "optional", "playerWhite", "playerBlack", "moves", "Array", "pgn", "CHESS_PLUGIN", "meta", "id", "description", "icon", "screenshots", "ChessAction", "CHESS_ACTION", "Create", "TaggedClass", "input", "output", "object", "isObject", "isReactiveObject"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { ChessAction, GameType } from '../types';\n\nexport default () =>\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: ChessAction.Create,\n resolve: ({ name }) => ({\n data: {\n object: create(GameType, { name }),\n },\n }),\n }),\n );\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA0D;AAC1D,yBAAuB;AAIvB,IAAA,0BAAe,UACbA,kCACEC,kCAAaC,oBACbC,qCAAe;EACbC,QAAQC,kCAAYC;EACpBC,SAAS,CAAC,EAAEC,KAAI,OAAQ;IACtBC,MAAM;MACJC,YAAQC,2BAAOC,gCAAU;QAAEJ;MAAK,CAAA;IAClC;EACF;AACF,CAAA,CAAA;",
|
|
6
|
-
"names": ["contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ChessAction", "Create", "resolve", "name", "data", "object", "create", "GameType"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\n\nimport { ChessContainer } from '../components';\nimport { CHESS_PLUGIN } from '../meta';\nimport { isObject, type GameType } from '../types';\n\nexport default () =>\n contributes(\n Capabilities.ReactSurface,\n createSurface({\n id: CHESS_PLUGIN,\n role: ['article', 'section'],\n filter: (data): data is { subject: GameType } => isObject(data.subject),\n component: ({ data, role }) => <ChessContainer game={data.subject} role={role} />,\n }),\n );\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const ChessContainer = lazy(() => import('./ChessContainer'));\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAkB;AAElB,2BAAyD;ACFzD,IAAAA,gBAAqB;AAEd,IAAMC,qBAAiBC,oBAAK,MAAM,OAAO,+BAAA,CAAA;ADMhD,IAAA,wBAAe,UACbC,kCACEC,kCAAaC,kBACbC,oCAAc;EACZC,IAAIC;EACJC,MAAM;IAAC;IAAW;;EAClBC,QAAQ,CAACC,aAAwCC,gCAASD,KAAKE,OAAO;EACtEC,WAAW,CAAC,EAAEH,MAAMF,KAAI,MAAO,6BAAAM,QAAA,cAACd,gBAAAA;IAAee,MAAML,KAAKE;IAASJ;;AACrE,CAAA,CAAA;",
|
|
6
|
-
"names": ["import_react", "ChessContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "CHESS_PLUGIN", "role", "filter", "data", "isObject", "subject", "component", "React", "game"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ChessContainer.tsx", "../../../src/components/PlayerSelector.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Chess } from 'chess.js';\nimport React, { useCallback, useEffect, useMemo } from 'react';\n\nimport { getSpace } from '@dxos/react-client/echo';\nimport { ChessModel, Board, Chessboard, type BoardRootProps } from '@dxos/react-ui-gameboard';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PlayerSelector } from './PlayerSelector';\nimport { type GameType } from '../types';\n\nconst ChessContainer = ({ game }: { game: GameType; role?: string }) => {\n const model = useMemo(() => new ChessModel(), []);\n useEffect(() => {\n if (!model || game.pgn !== model?.game.pgn()) {\n const chess = new Chess();\n if (game.pgn) {\n chess.loadPgn(game.pgn);\n }\n\n model.initialize(chess.fen());\n }\n }, [game.pgn]);\n\n const space = getSpace(game);\n if (!space) {\n return null;\n }\n\n const handleDrop = useCallback<NonNullable<BoardRootProps['onDrop']>>(\n (move) => {\n if (model.makeMove(move)) {\n game.pgn = model.game.pgn();\n return true;\n }\n\n return false;\n },\n [model],\n );\n\n return (\n <StackItem.Content toolbar={false}>\n <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>\n <div />\n\n <div className='flex m-4 overflow-hidden'>\n <Board.Root model={model} onDrop={handleDrop}>\n <Chessboard />\n </Board.Root>\n </div>\n\n <PlayerSelector space={space} game={game} />\n </div>\n </StackItem.Content>\n );\n};\n\nexport default ChessContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CrownCross } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { generateName } from '@dxos/display-name';\nimport { useMembers, type Space, type SpaceMember } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { type GameType } from '../types';\n\nexport const PlayerSelector = ({ game, space }: { game: GameType; space: Space }) => {\n const members = useMembers(space.key);\n\n return (\n <div role='none' className='grid grid-cols-2 gap-8'>\n <div role='none' className='flex flex-row-reverse items-center gap-2'>\n <PlayerSelect\n side='white'\n value={game.playerWhite}\n onValueChange={(player) => (game.playerWhite = player)}\n members={members}\n />\n </div>\n <div role='none' className='flex flex-row items-center gap-2'>\n <PlayerSelect\n side='black'\n value={game.playerBlack}\n onValueChange={(player) => (game.playerBlack = player)}\n members={members}\n />\n </div>\n </div>\n );\n};\n\nconst PlayerSelect = ({\n side,\n value,\n onValueChange,\n members,\n}: {\n side: 'white' | 'black';\n value: string | undefined;\n onValueChange: (player: string) => void;\n members: SpaceMember[];\n}) => {\n const { themeMode } = useThemeContext();\n const iconFillMode =\n (side === 'black' && themeMode === 'light') || (side === 'white' && themeMode === 'dark') ? 'fill' : undefined;\n\n return (\n <Input.Root>\n <Input.Label>\n <CrownCross className={mx(getSize(6))} weight={iconFillMode} aria-label={`Chess icon for side ${side}`} />\n </Input.Label>\n <Select.Root value={value} onValueChange={onValueChange}>\n <Select.TriggerButton placeholder={'Select player'} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {members.map((member) => {\n const memberKey = member.identity.identityKey.toHex();\n const displayName = member.identity?.profile?.displayName || generateName(memberKey);\n return (\n <Select.Option key={memberKey} value={memberKey}>\n {displayName}\n </Select.Option>\n );\n })}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Input.Root>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Chess", "React", "useCallback", "useEffect", "useMemo", "getSpace", "ChessModel", "Board", "Chessboard", "StackItem", "CrownCross", "React", "generateName", "useMembers", "Input", "Select", "useThemeContext", "getSize", "mx", "PlayerSelector", "game", "space", "members", "useMembers", "key", "div", "role", "className", "PlayerSelect", "side", "value", "playerWhite", "onValueChange", "player", "playerBlack", "themeMode", "useThemeContext", "iconFillMode", "undefined", "Input", "Root", "Label", "CrownCross", "mx", "getSize", "weight", "aria-label", "Select", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "map", "member", "memberKey", "identity", "identityKey", "toHex", "displayName", "profile", "generateName", "Option", "ChessContainer", "game", "model", "useMemo", "ChessModel", "useEffect", "pgn", "chess", "Chess", "loadPgn", "initialize", "fen", "space", "getSpace", "handleDrop", "useCallback", "move", "makeMove", "React", "StackItem", "Content", "toolbar", "div", "role", "className", "Board", "Root", "onDrop", "Chessboard", "PlayerSelector"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/schema.ts", "../../../src/types/types.ts", "../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { S, TypedObject } from '@dxos/echo-schema';\n\nexport const MoveSchema = S.mutable(\n S.partial(\n S.Struct({\n source: S.String,\n target: S.String,\n piece: S.String,\n }),\n ),\n);\n\nexport class GameType extends TypedObject({ typename: 'dxos.org/type/Chess', version: '0.1.0' })(\n {\n name: S.optional(S.String),\n playerWhite: S.String,\n playerBlack: S.String,\n moves: S.mutable(S.Array(S.String)),\n pgn: S.String,\n },\n { partial: true },\n) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\nimport { isReactiveObject } from '@dxos/live-object';\n\nimport { GameType } from './schema';\nimport { CHESS_PLUGIN } from '../meta';\n\nexport namespace ChessAction {\n const CHESS_ACTION = `${CHESS_PLUGIN}/action`;\n\n export class Create extends S.TaggedClass<Create>()(`${CHESS_ACTION}/create`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: GameType,\n }),\n }) {}\n}\n\nexport const isObject = (object: unknown): object is GameType => {\n return isReactiveObject(object) && object instanceof GameType;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const CHESS_PLUGIN = 'dxos.org/plugin/chess';\n\nexport const meta = {\n id: CHESS_PLUGIN,\n name: 'Chess',\n description:\n 'Chess is a simple plugin which allows you to render an interactive chessboard inside of a plank. This chessboard can be used for collaborative chess games, or for practice experiments with the LLM. ',\n icon: 'ph--shield-chevron--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-chess',\n screenshots: ['https://dxos.network/plugin-details-chess-dark.png'],\n} satisfies PluginMeta;\n"],
|
|
5
|
-
"mappings": ";;;AAIA,SAASA,GAAGC,mBAAmB;AAExB,IAAMC,aAAaC,EAAEC,QAC1BD,EAAEE,QACAF,EAAEG,OAAO;EACPC,QAAQJ,EAAEK;EACVC,QAAQN,EAAEK;EACVE,OAAOP,EAAEK;AACX,CAAA,CAAA,CAAA;AAIG,IAAMG,WAAN,cAAuBC,YAAY;EAAEC,UAAU;EAAuBC,SAAS;AAAQ,CAAA,EAC5F;EACEC,MAAMZ,EAAEa,SAASb,EAAEK,MAAM;EACzBS,aAAad,EAAEK;EACfU,aAAaf,EAAEK;EACfW,OAAOhB,EAAEC,QAAQD,EAAEiB,MAAMjB,EAAEK,MAAM,CAAA;EACjCa,KAAKlB,EAAEK;AACT,GACA;EAAEH,SAAS;AAAK,CAAA,EAAA;AACf;;;ACrBH,SAASiB,KAAAA,UAAS;AAClB,SAASC,wBAAwB;;;ACC1B,IAAMC,eAAe;AAErB,IAAMC,OAAO;EAClBC,IAAIF;EACJG,MAAM;EACNC,aACE;EACFC,MAAM;EACNC,QAAQ;EACRC,aAAa;IAAC;;AAChB;;;;UDNiBC,cAAAA;AACf,QAAMC,eAAe,GAAGC,YAAAA;EAEjB,MAAMC,eAAeC,GAAEC,YAAW,EAAW,GAAGJ,YAAAA,WAAuB;IAC5EK,OAAOF,GAAEG,OAAO;MACdC,MAAMJ,GAAEK,SAASL,GAAEM,MAAM;IAC3B,CAAA;IACAC,QAAQP,GAAEG,OAAO;MACfK,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;eAPSV,SAAAA;AAQf,GAXiBH,gBAAAA,cAAAA,CAAAA,EAAAA;AAaV,IAAMc,WAAW,CAACF,WAAAA;AACvB,SAAOG,iBAAiBH,MAAAA,KAAWA,kBAAkBC;AACvD;",
|
|
6
|
-
"names": ["S", "TypedObject", "MoveSchema", "S", "mutable", "partial", "Struct", "source", "String", "target", "piece", "GameType", "TypedObject", "typename", "version", "name", "optional", "playerWhite", "playerBlack", "moves", "Array", "pgn", "S", "isReactiveObject", "CHESS_PLUGIN", "meta", "id", "name", "description", "icon", "source", "screenshots", "ChessAction", "CHESS_ACTION", "CHESS_PLUGIN", "Create", "S", "TaggedClass", "input", "Struct", "name", "optional", "String", "output", "object", "GameType", "isObject", "isReactiveObject"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { ChessAction, GameType } from '../types';\n\nexport default () =>\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: ChessAction.Create,\n resolve: ({ name }) => ({\n data: {\n object: create(GameType, { name }),\n },\n }),\n }),\n );\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAIA,SAASA,cAAcC,aAAaC,sBAAsB;AAC1D,SAASC,cAAc;AAIvB,IAAA,0BAAe,MACbC,YACEC,aAAaC,gBACbC,eAAe;EACbC,QAAQC,YAAYC;EACpBC,SAAS,CAAC,EAAEC,KAAI,OAAQ;IACtBC,MAAM;MACJC,QAAQC,OAAOC,UAAU;QAAEJ;MAAK,CAAA;IAClC;EACF;AACF,CAAA,CAAA;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "createResolver", "create", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ChessAction", "Create", "resolve", "name", "data", "object", "create", "GameType"]
|
|
7
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
CHESS_PLUGIN,
|
|
4
|
-
isObject
|
|
5
|
-
} from "./chunk-A6KO5IFZ.mjs";
|
|
6
|
-
|
|
7
|
-
// packages/plugins/plugin-chess/src/capabilities/react-surface.tsx
|
|
8
|
-
import React from "react";
|
|
9
|
-
import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
|
|
10
|
-
|
|
11
|
-
// packages/plugins/plugin-chess/src/components/index.ts
|
|
12
|
-
import { lazy } from "react";
|
|
13
|
-
var ChessContainer = lazy(() => import("./ChessContainer-DF6IFM2R.mjs"));
|
|
14
|
-
|
|
15
|
-
// packages/plugins/plugin-chess/src/capabilities/react-surface.tsx
|
|
16
|
-
var react_surface_default = () => contributes(Capabilities.ReactSurface, createSurface({
|
|
17
|
-
id: CHESS_PLUGIN,
|
|
18
|
-
role: [
|
|
19
|
-
"article",
|
|
20
|
-
"section"
|
|
21
|
-
],
|
|
22
|
-
filter: (data) => isObject(data.subject),
|
|
23
|
-
component: ({ data, role }) => /* @__PURE__ */ React.createElement(ChessContainer, {
|
|
24
|
-
game: data.subject,
|
|
25
|
-
role
|
|
26
|
-
})
|
|
27
|
-
}));
|
|
28
|
-
export {
|
|
29
|
-
react_surface_default as default
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=react-surface-47I77M7F.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\n\nimport { ChessContainer } from '../components';\nimport { CHESS_PLUGIN } from '../meta';\nimport { isObject, type GameType } from '../types';\n\nexport default () =>\n contributes(\n Capabilities.ReactSurface,\n createSurface({\n id: CHESS_PLUGIN,\n role: ['article', 'section'],\n filter: (data): data is { subject: GameType } => isObject(data.subject),\n component: ({ data, role }) => <ChessContainer game={data.subject} role={role} />,\n }),\n );\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const ChessContainer = lazy(() => import('./ChessContainer'));\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;;;ACFzD,SAASC,YAAY;AAEd,IAAMC,iBAAiBC,KAAK,MAAM,OAAO,+BAAA,CAAA;;;ADMhD,IAAA,wBAAe,MACbC,YACEC,aAAaC,cACbC,cAAc;EACZC,IAAIC;EACJC,MAAM;IAAC;IAAW;;EAClBC,QAAQ,CAACC,SAAwCC,SAASD,KAAKE,OAAO;EACtEC,WAAW,CAAC,EAAEH,MAAMF,KAAI,MAAO,sBAAA,cAACM,gBAAAA;IAAeC,MAAML,KAAKE;IAASJ;;AACrE,CAAA,CAAA;",
|
|
6
|
-
"names": ["React", "Capabilities", "contributes", "createSurface", "lazy", "ChessContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "CHESS_PLUGIN", "role", "filter", "data", "isObject", "subject", "component", "ChessContainer", "game"]
|
|
7
|
-
}
|