@dxos/plugin-chess 0.7.5-main.e9bb01b → 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.
Files changed (106) hide show
  1. package/dist/lib/browser/{ChessContainer-LPMACR6Y.mjs → ChessContainer-XERPODLK.mjs} +10 -30
  2. package/dist/lib/browser/ChessContainer-XERPODLK.mjs.map +7 -0
  3. package/dist/lib/browser/artifact-definition-AEIQ7Z36.mjs +174 -0
  4. package/dist/lib/browser/artifact-definition-AEIQ7Z36.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-SINRYD72.mjs → chunk-GKM6RRDX.mjs} +12 -9
  6. package/dist/lib/browser/chunk-GKM6RRDX.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-R26FYVUS.mjs +8 -0
  8. package/dist/lib/browser/chunk-R26FYVUS.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-VRWXC5L2.mjs +42 -0
  10. package/dist/lib/browser/chunk-VRWXC5L2.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +36 -17
  12. package/dist/lib/browser/index.mjs.map +4 -4
  13. package/dist/lib/browser/{intent-resolver-F36MGVEQ.mjs → intent-resolver-VPK5QRXH.mjs} +16 -10
  14. package/dist/lib/browser/intent-resolver-VPK5QRXH.mjs.map +7 -0
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/react-surface-ITP4OMBZ.mjs +42 -0
  17. package/dist/lib/browser/react-surface-ITP4OMBZ.mjs.map +7 -0
  18. package/dist/lib/browser/types/index.mjs +3 -3
  19. package/dist/lib/node/{ChessContainer-ZFOCAXZL.cjs → ChessContainer-LEPLNICP.cjs} +9 -32
  20. package/dist/lib/node/ChessContainer-LEPLNICP.cjs.map +7 -0
  21. package/dist/lib/node/artifact-definition-ZM5VDOVN.cjs +189 -0
  22. package/dist/lib/node/artifact-definition-ZM5VDOVN.cjs.map +7 -0
  23. package/dist/lib/node/{chunk-NALFH4J4.cjs → chunk-3TTH3HKL.cjs} +15 -12
  24. package/dist/lib/node/chunk-3TTH3HKL.cjs.map +7 -0
  25. package/dist/lib/node/chunk-CSRNUKOH.cjs +74 -0
  26. package/dist/lib/node/chunk-CSRNUKOH.cjs.map +7 -0
  27. package/dist/lib/node/{react-surface-FRGCWHDU.cjs → chunk-ITDMCBQQ.cjs} +11 -22
  28. package/dist/lib/node/chunk-ITDMCBQQ.cjs.map +7 -0
  29. package/dist/lib/node/index.cjs +51 -31
  30. package/dist/lib/node/index.cjs.map +4 -4
  31. package/dist/lib/node/{intent-resolver-QLRGQQ2C.cjs → intent-resolver-PUM2BVGU.cjs} +19 -13
  32. package/dist/lib/node/intent-resolver-PUM2BVGU.cjs.map +7 -0
  33. package/dist/lib/node/meta.json +1 -1
  34. package/dist/lib/node/react-surface-4G4PW5RU.cjs +62 -0
  35. package/dist/lib/node/react-surface-4G4PW5RU.cjs.map +7 -0
  36. package/dist/lib/node/types/index.cjs +6 -6
  37. package/dist/lib/node/types/index.cjs.map +1 -1
  38. package/dist/lib/node-esm/{ChessContainer-DF6IFM2R.mjs → ChessContainer-S76WNBWN.mjs} +9 -30
  39. package/dist/lib/node-esm/ChessContainer-S76WNBWN.mjs.map +7 -0
  40. package/dist/lib/node-esm/artifact-definition-NGQEQHJT.mjs +175 -0
  41. package/dist/lib/node-esm/artifact-definition-NGQEQHJT.mjs.map +7 -0
  42. package/dist/lib/node-esm/chunk-6SEDGO5G.mjs +44 -0
  43. package/dist/lib/node-esm/chunk-6SEDGO5G.mjs.map +7 -0
  44. package/dist/lib/node-esm/chunk-B72CIN6T.mjs +10 -0
  45. package/dist/lib/node-esm/chunk-B72CIN6T.mjs.map +7 -0
  46. package/dist/lib/node-esm/{chunk-R2ZZTB5A.mjs → chunk-GQA2DRUZ.mjs} +12 -9
  47. package/dist/lib/node-esm/chunk-GQA2DRUZ.mjs.map +7 -0
  48. package/dist/lib/node-esm/index.mjs +36 -17
  49. package/dist/lib/node-esm/index.mjs.map +4 -4
  50. package/dist/lib/node-esm/{intent-resolver-OGWCQJZ2.mjs → intent-resolver-IR3YUZIG.mjs} +16 -10
  51. package/dist/lib/node-esm/intent-resolver-IR3YUZIG.mjs.map +7 -0
  52. package/dist/lib/node-esm/meta.json +1 -1
  53. package/dist/lib/node-esm/react-surface-AEMVDP4R.mjs +43 -0
  54. package/dist/lib/node-esm/react-surface-AEMVDP4R.mjs.map +7 -0
  55. package/dist/lib/node-esm/types/index.mjs +3 -3
  56. package/dist/types/src/ChessPlugin.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/artifact-definition.d.ts +11 -0
  58. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/index.d.ts +1 -0
  60. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  63. package/dist/types/src/components/ChessComponent.d.ts +5 -0
  64. package/dist/types/src/components/ChessComponent.d.ts.map +1 -0
  65. package/dist/types/src/components/ChessContainer.d.ts +3 -4
  66. package/dist/types/src/components/ChessContainer.d.ts.map +1 -1
  67. package/dist/types/src/components/PlayerSelector.d.ts +4 -5
  68. package/dist/types/src/components/PlayerSelector.d.ts.map +1 -1
  69. package/dist/types/src/components/index.d.ts +3 -2
  70. package/dist/types/src/components/index.d.ts.map +1 -1
  71. package/dist/types/src/index.d.ts +3 -1
  72. package/dist/types/src/index.d.ts.map +1 -1
  73. package/dist/types/src/meta.d.ts.map +1 -1
  74. package/dist/types/src/types/schema.d.ts +4 -2
  75. package/dist/types/src/types/schema.d.ts.map +1 -1
  76. package/dist/types/src/types/types.d.ts +4 -3
  77. package/dist/types/src/types/types.d.ts.map +1 -1
  78. package/package.json +22 -18
  79. package/src/ChessPlugin.tsx +22 -9
  80. package/src/capabilities/artifact-definition.ts +109 -0
  81. package/src/capabilities/index.ts +1 -0
  82. package/src/capabilities/intent-resolver.ts +11 -6
  83. package/src/capabilities/react-surface.tsx +12 -5
  84. package/src/components/ChessComponent.tsx +49 -0
  85. package/src/components/ChessContainer.tsx +5 -32
  86. package/src/components/PlayerSelector.tsx +2 -2
  87. package/src/components/index.ts +2 -0
  88. package/src/index.ts +4 -1
  89. package/src/meta.ts +2 -1
  90. package/src/translations.ts +2 -2
  91. package/src/types/schema.ts +3 -1
  92. package/src/types/types.ts +6 -5
  93. package/dist/lib/browser/ChessContainer-LPMACR6Y.mjs.map +0 -7
  94. package/dist/lib/browser/chunk-SINRYD72.mjs.map +0 -7
  95. package/dist/lib/browser/intent-resolver-F36MGVEQ.mjs.map +0 -7
  96. package/dist/lib/browser/react-surface-ADVIWGEE.mjs +0 -30
  97. package/dist/lib/browser/react-surface-ADVIWGEE.mjs.map +0 -7
  98. package/dist/lib/node/ChessContainer-ZFOCAXZL.cjs.map +0 -7
  99. package/dist/lib/node/chunk-NALFH4J4.cjs.map +0 -7
  100. package/dist/lib/node/intent-resolver-QLRGQQ2C.cjs.map +0 -7
  101. package/dist/lib/node/react-surface-FRGCWHDU.cjs.map +0 -7
  102. package/dist/lib/node-esm/ChessContainer-DF6IFM2R.mjs.map +0 -7
  103. package/dist/lib/node-esm/chunk-R2ZZTB5A.mjs.map +0 -7
  104. package/dist/lib/node-esm/intent-resolver-OGWCQJZ2.mjs.map +0 -7
  105. package/dist/lib/node-esm/react-surface-SFBGDWJD.mjs +0 -31
  106. package/dist/lib/node-esm/react-surface-SFBGDWJD.mjs.map +0 -7
@@ -4,5 +4,6 @@
4
4
 
5
5
  import { lazy } from '@dxos/app-framework';
6
6
 
7
+ export const ArtifactDefinition = lazy(() => import('./artifact-definition'));
7
8
  export const IntentResolver = lazy(() => import('./intent-resolver'));
8
9
  export const ReactSurface = lazy(() => import('./react-surface'));
@@ -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, GameType } from '../types';
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
- data: {
17
- object: create(GameType, { name }),
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 { isObject, type GameType } from '../types';
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: GameType } => isObject(data.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 { Chess } from 'chess.js';
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 GameType } from '../types';
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
- <Board.Root model={model} onDrop={handleDrop}>
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 GameType } from '../types';
13
+ import { type ChessType } from '../types';
14
14
 
15
- export const PlayerSelector = ({ game, space }: { game: GameType; space: Space }) => {
15
+ export const PlayerSelector = ({ space, game }: { space: Space; game: ChessType }) => {
16
16
  const members = useMembers(space.key);
17
17
 
18
18
  return (
@@ -4,4 +4,6 @@
4
4
 
5
5
  import { lazy } from 'react';
6
6
 
7
+ export * from './ChessComponent';
8
+
7
9
  export const ChessContainer = lazy(() => import('./ChessContainer'));
package/src/index.ts CHANGED
@@ -2,5 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './ChessPlugin';
5
+ export * from './capabilities';
6
+ export * from './components';
6
7
  export * from './meta';
8
+
9
+ export * from './ChessPlugin';
package/src/meta.ts CHANGED
@@ -9,7 +9,8 @@ export const CHESS_PLUGIN = 'dxos.org/plugin/chess';
9
9
  export const meta = {
10
10
  id: CHESS_PLUGIN,
11
11
  name: 'Chess',
12
- description: `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. `,
12
+ description:
13
+ '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. ',
13
14
  icon: 'ph--shield-chevron--regular',
14
15
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-chess',
15
16
  screenshots: ['https://dxos.network/plugin-details-chess-dark.png'],
@@ -3,12 +3,12 @@
3
3
  //
4
4
 
5
5
  import { CHESS_PLUGIN } from './meta';
6
- import { GameType } from './types';
6
+ import { ChessType } from './types';
7
7
 
8
8
  export default [
9
9
  {
10
10
  'en-US': {
11
- [GameType.typename]: {
11
+ [ChessType.typename]: {
12
12
  'typename label': 'Game',
13
13
  },
14
14
  [CHESS_PLUGIN]: {
@@ -14,13 +14,15 @@ export const MoveSchema = S.mutable(
14
14
  ),
15
15
  );
16
16
 
17
- export class GameType extends TypedObject({ typename: 'dxos.org/type/Chess', version: '0.1.0' })(
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
  ) {}
@@ -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 { GameType } from './schema';
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: GameType,
20
+ object: ChessType,
20
21
  }),
21
22
  }) {}
22
23
  }
23
24
 
24
- export const isObject = (object: unknown): object is GameType => {
25
- return isReactiveObject(object) && object instanceof GameType;
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: `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,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,aAAa;IAAC;;AAChB;;;;UDLiBC,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-SINRYD72.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-ADVIWGEE.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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAsB;AACtB,mBAAuD;AAEvD,kBAAyB;AACzB,gCAAmE;AACnE,4BAA0B;ACL1B,IAAAA,gBAA2B;AAC3B,IAAAA,gBAAkB;AAElB,0BAA6B;AAC7B,IAAAC,eAAyD;AACzD,sBAA+C;AAC/C,4BAA4B;AAIrB,IAAMC,iBAAiB,CAAC,EAAEC,MAAMC,MAAK,MAAoC;AAC9E,QAAMC,cAAUC,yBAAWF,MAAMG,GAAG;AAEpC,SACE,8BAAAC,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,8BAAAH,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,8BAAAH,QAAA,cAACI,cAAAA;IACCC,MAAK;IACLC,OAAOX,KAAKY;IACZC,eAAe,CAACC,WAAYd,KAAKY,cAAcE;IAC/CZ;OAGJ,8BAAAG,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,8BAAAH,QAAA,cAACI,cAAAA;IACCC,MAAK;IACLC,OAAOX,KAAKe;IACZF,eAAe,CAACC,WAAYd,KAAKe,cAAcD;IAC/CZ;;AAKV;AAEA,IAAMO,eAAe,CAAC,EACpBC,MACAC,OACAE,eACAX,QAAO,MAMR;AACC,QAAM,EAAEc,UAAS,QAAKC,iCAAAA;AACtB,QAAMC,eACHR,SAAS,WAAWM,cAAc,WAAaN,SAAS,WAAWM,cAAc,SAAU,SAASG;AAEvG,SACE,8BAAAd,QAAA,cAACe,sBAAMC,MAAI,MACT,8BAAAhB,QAAA,cAACe,sBAAME,OAAK,MACV,8BAAAjB,QAAA,cAACkB,0BAAAA;IAAWf,eAAWgB,8BAAGC,+BAAQ,CAAA,CAAA;IAAKC,QAAQR;IAAcS,cAAY,uBAAuBjB,IAAAA;OAElG,8BAAAL,QAAA,cAACuB,uBAAOP,MAAI;IAACV;IAAcE;KACzB,8BAAAR,QAAA,cAACuB,uBAAOC,eAAa;IAACC,aAAa;MACnC,8BAAAzB,QAAA,cAACuB,uBAAOG,QAAM,MACZ,8BAAA1B,QAAA,cAACuB,uBAAOI,SAAO,MACb,8BAAA3B,QAAA,cAACuB,uBAAOK,UAAQ,MACb/B,QAAQgC,IAAI,CAACC,WAAAA;AACZ,UAAMC,YAAYD,OAAOE,SAASC,YAAYC,MAAK;AACnD,UAAMC,cAAcL,OAAOE,UAAUI,SAASD,mBAAeE,kCAAaN,SAAAA;AAC1E,WACE,8BAAA/B,QAAA,cAACuB,uBAAOe,QAAM;MAACvC,KAAKgC;MAAWzB,OAAOyB;OACnCI,WAAAA;EAGP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOd;ADjEA,IAAMI,iBAAiB,CAAC,EAAE5C,KAAI,MAAqC;AACjE,QAAM6C,YAAQC,sBAAQ,MAAM,IAAIC,qCAAAA,GAAc,CAAA,CAAE;AAChDC,8BAAU,MAAA;AACR,QAAI,CAACH,SAAS7C,KAAKiD,QAAQJ,OAAO7C,KAAKiD,IAAAA,GAAO;AAC5C,YAAMC,QAAQ,IAAIC,mBAAAA;AAClB,UAAInD,KAAKiD,KAAK;AACZC,cAAME,QAAQpD,KAAKiD,GAAG;MACxB;AAEAJ,YAAMQ,WAAWH,MAAMI,IAAG,CAAA;IAC5B;EACF,GAAG;IAACtD,KAAKiD;GAAI;AAEb,QAAMhD,YAAQsD,sBAASvD,IAAAA;AACvB,MAAI,CAACC,OAAO;AACV,WAAO;EACT;AAEA,QAAMuD,iBAAaC,0BACjB,CAACC,SAAAA;AACC,QAAIb,MAAMc,SAASD,IAAAA,GAAO;AACxB1D,WAAKiD,MAAMJ,MAAM7C,KAAKiD,IAAG;AACzB,aAAO;IACT;AAEA,WAAO;EACT,GACA;IAACJ;GAAM;AAGT,SACExC,6BAAAA,QAAA,cAACuD,gCAAU5B,SAAO;IAAC6B,SAAS;KAC1BxD,6BAAAA,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzBH,6BAAAA,QAAA,cAACC,OAAAA,IAAAA,GAEDD,6BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACbH,6BAAAA,QAAA,cAACyD,gCAAMzC,MAAI;IAACwB;IAAckB,QAAQP;KAChCnD,6BAAAA,QAAA,cAAC2D,sCAAAA,IAAAA,CAAAA,CAAAA,GAIL3D,6BAAAA,QAAA,cAACN,gBAAAA;IAAeE;IAAcD;;AAItC;AAEA,IAAA,yBAAe4C;",
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: `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,aAAa;EACbC,MAAM;EACNnB,QAAQ;EACRoB,aAAa;IAAC;;AAChB;;UDLiBC,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: `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,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,aAAa;IAAC;;AAChB;;;;UDLiBC,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-R2ZZTB5A.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-SFBGDWJD.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
- }