@dxos/plugin-chess 0.6.13-main.ed424a1 → 0.6.13

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.
@@ -0,0 +1,18 @@
1
+ // packages/plugins/plugin-chess/src/meta.tsx
2
+ import { ShieldChevron } from "@phosphor-icons/react";
3
+ import React from "react";
4
+ import { pluginMeta } from "@dxos/app-framework";
5
+ var CHESS_PLUGIN = "dxos.org/plugin/chess";
6
+ var meta_default = pluginMeta({
7
+ id: CHESS_PLUGIN,
8
+ name: "Chess",
9
+ description: "Play chess.",
10
+ iconComponent: (props) => /* @__PURE__ */ React.createElement(ShieldChevron, props),
11
+ iconSymbol: "ph--shield-chevron--regular"
12
+ });
13
+
14
+ export {
15
+ CHESS_PLUGIN,
16
+ meta_default
17
+ };
18
+ //# sourceMappingURL=chunk-HLCMCUXF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { ShieldChevron, type IconProps } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { pluginMeta } from '@dxos/app-framework';\n\nexport const CHESS_PLUGIN = 'dxos.org/plugin/chess';\n\nexport default pluginMeta({\n id: CHESS_PLUGIN,\n name: 'Chess',\n description: 'Play chess.',\n iconComponent: (props: IconProps) => <ShieldChevron {...props} />,\n iconSymbol: 'ph--shield-chevron--regular',\n});\n"],
5
+ "mappings": ";AAIA,SAASA,qBAAqC;AAC9C,OAAOC,WAAW;AAElB,SAASC,kBAAkB;AAEpB,IAAMC,eAAe;AAE5B,IAAA,eAAeC,WAAW;EACxBC,IAAIF;EACJG,MAAM;EACNC,aAAa;EACbC,eAAe,CAACC,UAAqB,sBAAA,cAACC,eAAkBD,KAAAA;EACxDE,YAAY;AACd,CAAA;",
6
+ "names": ["ShieldChevron", "React", "pluginMeta", "CHESS_PLUGIN", "pluginMeta", "id", "name", "description", "iconComponent", "props", "ShieldChevron", "iconSymbol"]
7
+ }
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  CHESS_PLUGIN,
3
3
  meta_default
4
- } from "./chunk-SP4YZROV.mjs";
4
+ } from "./chunk-HLCMCUXF.mjs";
5
5
 
6
6
  // packages/plugins/plugin-chess/src/ChessPlugin.tsx
7
+ import { ShieldChevron } from "@phosphor-icons/react";
7
8
  import React3 from "react";
8
9
  import { resolvePlugin, parseIntentPlugin, NavigationAction } from "@dxos/app-framework";
9
10
  import { GameType as GameType2 } from "@dxos/chess-app";
@@ -186,7 +187,8 @@ var ChessPlugin = () => {
186
187
  ns: CHESS_PLUGIN
187
188
  }
188
189
  ],
189
- icon: "ph--shield-chevron--regular"
190
+ icon: (props) => /* @__PURE__ */ React3.createElement(ShieldChevron, props),
191
+ iconSymbol: "ph--shield-chevron--regular"
190
192
  }
191
193
  }
192
194
  },
@@ -195,17 +197,6 @@ var ChessPlugin = () => {
195
197
  GameType2
196
198
  ]
197
199
  },
198
- space: {
199
- onSpaceCreate: {
200
- label: [
201
- "create game label",
202
- {
203
- ns: CHESS_PLUGIN
204
- }
205
- ],
206
- action: ChessAction.CREATE
207
- }
208
- },
209
200
  graph: {
210
201
  builder: (plugins) => {
211
202
  const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
@@ -252,7 +243,8 @@ var ChessPlugin = () => {
252
243
  ns: CHESS_PLUGIN
253
244
  }
254
245
  ],
255
- icon: "ph--shield-chevron--regular",
246
+ icon: (props) => /* @__PURE__ */ React3.createElement(ShieldChevron, props),
247
+ iconSymbol: "ph--shield-chevron--regular",
256
248
  testId: "chessPlugin.createObject"
257
249
  }
258
250
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ChessPlugin.tsx", "../../../src/components/ChessContainer.tsx", "../../../src/components/Chess.tsx", "../../../src/translations.ts", "../../../src/types.ts", "../../../src/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type PluginDefinition, resolvePlugin, parseIntentPlugin, NavigationAction } from '@dxos/app-framework';\nimport { GameType } from '@dxos/chess-app';\nimport { create } from '@dxos/echo-schema';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { type ActionGroup, createExtension, isActionGroup } from '@dxos/plugin-graph';\nimport { SpaceAction } from '@dxos/plugin-space';\n\nimport ChessContainer from './components/ChessContainer';\nimport meta, { CHESS_PLUGIN } from './meta';\nimport translations from './translations';\nimport { ChessAction, type ChessPluginProvides, isObject } from './types';\n\nexport const ChessPlugin = (): PluginDefinition<ChessPluginProvides> => {\n return {\n meta,\n provides: {\n metadata: {\n records: {\n [GameType.typename]: {\n placeholder: ['game title placeholder', { ns: CHESS_PLUGIN }],\n icon: 'ph--shield-chevron--regular',\n },\n },\n },\n echo: {\n schema: [GameType],\n },\n space: {\n onSpaceCreate: {\n label: ['create game label', { ns: CHESS_PLUGIN }],\n action: ChessAction.CREATE,\n },\n },\n graph: {\n builder: (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!client || !dispatch) {\n return [];\n }\n\n return createExtension({\n id: ChessAction.CREATE,\n filter: (node): node is ActionGroup => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),\n actions: ({ node }) => {\n const id = node.id.split('/').at(-1);\n const [spaceId, objectId] = id?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const object = objectId && space?.db.getObjectById(objectId);\n const target = objectId ? object : space;\n if (!target) {\n return;\n }\n\n return [\n {\n id: `${CHESS_PLUGIN}/create/${node.id}`,\n data: async () => {\n await dispatch([\n { plugin: CHESS_PLUGIN, action: ChessAction.CREATE },\n { action: SpaceAction.ADD_OBJECT, data: { target } },\n { action: NavigationAction.OPEN },\n ]);\n },\n properties: {\n label: ['create game label', { ns: CHESS_PLUGIN }],\n icon: 'ph--shield-chevron--regular',\n testId: 'chessPlugin.createObject',\n },\n },\n ];\n },\n });\n },\n },\n translations,\n surface: {\n component: ({ data, role }) => {\n switch (role) {\n case 'article':\n case 'section':\n return isObject(data.object) ? <ChessContainer game={data.object} role={role} /> : null;\n default:\n return null;\n }\n },\n },\n intent: {\n resolver: (intent) => {\n switch (intent.action) {\n case ChessAction.CREATE: {\n return { data: create(GameType, {}) };\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type ComponentProps } from 'react';\n\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { Chess } from './Chess';\n\nconst ChessContainer = ({ game, role }: Pick<ComponentProps<typeof Chess>, 'game'> & { role?: string }) => {\n const space = getSpace(game);\n if (!space) {\n return null;\n }\n\n return (\n <div role='none' className='flex flex-col row-span-2 is-full overflow-hidden'>\n <Chess game={game} space={space} playerSelector={role === 'article'} />\n </div>\n );\n};\n\nexport default ChessContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CrownCross } from '@phosphor-icons/react';\nimport { Chess as ChessJs } from 'chess.js';\nimport React, { useEffect, useState } from 'react';\n\nimport { Chessboard, type ChessModel, type ChessMove, type GameType } from '@dxos/chess-app';\nimport { generateName } from '@dxos/display-name';\nimport { invariant } from '@dxos/invariant';\nimport { type SpaceMember, useMembers, type Space } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nconst useChessModel = (game: GameType) => {\n const [model, setModel] = useState<ChessModel>();\n\n useEffect(() => {\n if (!model || game.pgn !== model?.chess.pgn()) {\n const chess = new ChessJs();\n if (game.pgn) {\n chess.loadPgn(game.pgn);\n }\n\n setModel({ chess });\n }\n }, [game.pgn]);\n\n const handleUpdate = (move: ChessMove) => {\n invariant(model);\n if (model.chess.move(move)) {\n game!.pgn = model.chess.pgn();\n setModel({ ...model });\n }\n };\n\n return { model, handleUpdate };\n};\n\nexport const Chess = ({ space, game, playerSelector }: { space: Space; game: GameType; playerSelector?: boolean }) => {\n const { model, handleUpdate } = useChessModel(game);\n if (!model) {\n return null;\n }\n\n return (\n <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>\n <div />\n <div className='flex grow justify-center overflow-hidden'>\n <div className='flex grow max-w-[600px] items-center overflow-hidden'>\n <Chessboard model={model} onUpdate={handleUpdate} />\n </div>\n </div>\n {playerSelector && <PlayerSelector game={game} space={space} />}\n </div>\n );\n};\n\nconst 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", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CHESS_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [CHESS_PLUGIN]: {\n 'plugin name': 'Chess',\n 'game title placeholder': 'New game',\n 'create game label': 'Create game',\n 'delete game label': 'Delete',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { GameType } from '@dxos/chess-app';\nimport { isReactiveObject } from '@dxos/echo-schema';\nimport { type SchemaProvides } from '@dxos/plugin-client';\nimport { type SpaceInitProvides } from '@dxos/plugin-space';\n\nimport { CHESS_PLUGIN } from './meta';\n\nconst CHESS_ACTION = `${CHESS_PLUGIN}/action`;\n\nexport enum ChessAction {\n CREATE = `${CHESS_ACTION}/create`,\n}\n\nexport type ChessProvides = {};\n\nexport type ChessPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n MetadataRecordsProvides &\n TranslationsProvides &\n SchemaProvides &\n SpaceInitProvides;\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 { ChessPlugin } from './ChessPlugin';\n\nexport default ChessPlugin;\n\nexport * from './ChessPlugin';\n"],
5
- "mappings": "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",
6
- "names": ["React", "resolvePlugin", "parseIntentPlugin", "NavigationAction", "GameType", "create", "parseClientPlugin", "createExtension", "isActionGroup", "SpaceAction", "React", "getSpace", "CrownCross", "Chess", "ChessJs", "React", "useEffect", "useState", "Chessboard", "generateName", "invariant", "useMembers", "Input", "Select", "useThemeContext", "getSize", "mx", "useChessModel", "game", "model", "setModel", "pgn", "chess", "loadPgn", "handleUpdate", "move", "space", "playerSelector", "div", "role", "className", "onUpdate", "PlayerSelector", "members", "key", "PlayerSelect", "side", "value", "playerWhite", "onValueChange", "player", "playerBlack", "themeMode", "iconFillMode", "undefined", "Root", "Label", "weight", "aria-label", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "map", "member", "memberKey", "identity", "identityKey", "toHex", "displayName", "profile", "Option", "ChessContainer", "game", "role", "space", "getSpace", "React", "div", "className", "Chess", "playerSelector", "CHESS_PLUGIN", "GameType", "isReactiveObject", "CHESS_ACTION", "CHESS_PLUGIN", "ChessAction", "isObject", "object", "isReactiveObject", "GameType", "ChessPlugin", "meta", "provides", "metadata", "records", "GameType", "typename", "placeholder", "ns", "CHESS_PLUGIN", "icon", "echo", "schema", "space", "onSpaceCreate", "label", "action", "ChessAction", "CREATE", "graph", "builder", "plugins", "client", "resolvePlugin", "parseClientPlugin", "dispatch", "parseIntentPlugin", "intent", "createExtension", "id", "filter", "node", "isActionGroup", "startsWith", "SpaceAction", "ADD_OBJECT", "actions", "split", "at", "spaceId", "objectId", "spaces", "get", "find", "object", "db", "getObjectById", "target", "data", "plugin", "NavigationAction", "OPEN", "properties", "testId", "translations", "surface", "component", "role", "isObject", "React", "ChessContainer", "game", "resolver", "create", "ChessPlugin"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IconProps, ShieldChevron } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { type PluginDefinition, resolvePlugin, parseIntentPlugin, NavigationAction } from '@dxos/app-framework';\nimport { GameType } from '@dxos/chess-app';\nimport { create } from '@dxos/echo-schema';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { type ActionGroup, createExtension, isActionGroup } from '@dxos/plugin-graph';\nimport { SpaceAction } from '@dxos/plugin-space';\n\nimport ChessContainer from './components/ChessContainer';\nimport meta, { CHESS_PLUGIN } from './meta';\nimport translations from './translations';\nimport { ChessAction, type ChessPluginProvides, isObject } from './types';\n\nexport const ChessPlugin = (): PluginDefinition<ChessPluginProvides> => {\n return {\n meta,\n provides: {\n metadata: {\n records: {\n [GameType.typename]: {\n placeholder: ['game title placeholder', { ns: CHESS_PLUGIN }],\n icon: (props: IconProps) => <ShieldChevron {...props} />,\n iconSymbol: 'ph--shield-chevron--regular',\n },\n },\n },\n echo: {\n schema: [GameType],\n },\n graph: {\n builder: (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!client || !dispatch) {\n return [];\n }\n\n return createExtension({\n id: ChessAction.CREATE,\n filter: (node): node is ActionGroup => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),\n actions: ({ node }) => {\n const id = node.id.split('/').at(-1);\n const [spaceId, objectId] = id?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const object = objectId && space?.db.getObjectById(objectId);\n const target = objectId ? object : space;\n if (!target) {\n return;\n }\n\n return [\n {\n id: `${CHESS_PLUGIN}/create/${node.id}`,\n data: async () => {\n await dispatch([\n { plugin: CHESS_PLUGIN, action: ChessAction.CREATE },\n { action: SpaceAction.ADD_OBJECT, data: { target } },\n { action: NavigationAction.OPEN },\n ]);\n },\n properties: {\n label: ['create game label', { ns: CHESS_PLUGIN }],\n icon: (props: IconProps) => <ShieldChevron {...props} />,\n iconSymbol: 'ph--shield-chevron--regular',\n testId: 'chessPlugin.createObject',\n },\n },\n ];\n },\n });\n },\n },\n translations,\n surface: {\n component: ({ data, role }) => {\n switch (role) {\n case 'article':\n case 'section':\n return isObject(data.object) ? <ChessContainer game={data.object} role={role} /> : null;\n default:\n return null;\n }\n },\n },\n intent: {\n resolver: (intent) => {\n switch (intent.action) {\n case ChessAction.CREATE: {\n return { data: create(GameType, {}) };\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type ComponentProps } from 'react';\n\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { Chess } from './Chess';\n\nconst ChessContainer = ({ game, role }: Pick<ComponentProps<typeof Chess>, 'game'> & { role?: string }) => {\n const space = getSpace(game);\n if (!space) {\n return null;\n }\n\n return (\n <div role='none' className='flex flex-col row-span-2 is-full overflow-hidden'>\n <Chess game={game} space={space} playerSelector={role === 'article'} />\n </div>\n );\n};\n\nexport default ChessContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CrownCross } from '@phosphor-icons/react';\nimport { Chess as ChessJs } from 'chess.js';\nimport React, { useEffect, useState } from 'react';\n\nimport { Chessboard, type ChessModel, type ChessMove, type GameType } from '@dxos/chess-app';\nimport { generateName } from '@dxos/display-name';\nimport { invariant } from '@dxos/invariant';\nimport { type SpaceMember, useMembers, type Space } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nconst useChessModel = (game: GameType) => {\n const [model, setModel] = useState<ChessModel>();\n\n useEffect(() => {\n if (!model || game.pgn !== model?.chess.pgn()) {\n const chess = new ChessJs();\n if (game.pgn) {\n chess.loadPgn(game.pgn);\n }\n\n setModel({ chess });\n }\n }, [game.pgn]);\n\n const handleUpdate = (move: ChessMove) => {\n invariant(model);\n if (model.chess.move(move)) {\n game!.pgn = model.chess.pgn();\n setModel({ ...model });\n }\n };\n\n return { model, handleUpdate };\n};\n\nexport const Chess = ({ space, game, playerSelector }: { space: Space; game: GameType; playerSelector?: boolean }) => {\n const { model, handleUpdate } = useChessModel(game);\n if (!model) {\n return null;\n }\n\n return (\n <div role='none' className='grid grid-rows-[60px_1fr_60px] grow overflow-hidden'>\n <div />\n <div className='flex grow justify-center overflow-hidden'>\n <div className='flex grow max-w-[600px] items-center overflow-hidden'>\n <Chessboard model={model} onUpdate={handleUpdate} />\n </div>\n </div>\n {playerSelector && <PlayerSelector game={game} space={space} />}\n </div>\n );\n};\n\nconst 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", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CHESS_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [CHESS_PLUGIN]: {\n 'plugin name': 'Chess',\n 'game title placeholder': 'New game',\n 'create game label': 'Create game',\n 'delete game label': 'Delete',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { GameType } from '@dxos/chess-app';\nimport { isReactiveObject } from '@dxos/echo-schema';\nimport { type SchemaProvides } from '@dxos/plugin-client';\n\nimport { CHESS_PLUGIN } from './meta';\n\nconst CHESS_ACTION = `${CHESS_PLUGIN}/action`;\n\nexport enum ChessAction {\n CREATE = `${CHESS_ACTION}/create`,\n}\n\nexport type ChessProvides = {};\n\nexport type ChessPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n MetadataRecordsProvides &\n TranslationsProvides &\n SchemaProvides;\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 { ChessPlugin } from './ChessPlugin';\n\nexport default ChessPlugin;\n\nexport * from './ChessPlugin';\n"],
5
+ "mappings": "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",
6
+ "names": ["ShieldChevron", "React", "resolvePlugin", "parseIntentPlugin", "NavigationAction", "GameType", "create", "parseClientPlugin", "createExtension", "isActionGroup", "SpaceAction", "React", "getSpace", "CrownCross", "Chess", "ChessJs", "React", "useEffect", "useState", "Chessboard", "generateName", "invariant", "useMembers", "Input", "Select", "useThemeContext", "getSize", "mx", "useChessModel", "game", "model", "setModel", "pgn", "chess", "loadPgn", "handleUpdate", "move", "space", "playerSelector", "div", "role", "className", "onUpdate", "PlayerSelector", "members", "key", "PlayerSelect", "side", "value", "playerWhite", "onValueChange", "player", "playerBlack", "themeMode", "iconFillMode", "undefined", "Root", "Label", "weight", "aria-label", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "map", "member", "memberKey", "identity", "identityKey", "toHex", "displayName", "profile", "Option", "ChessContainer", "game", "role", "space", "getSpace", "React", "div", "className", "Chess", "playerSelector", "CHESS_PLUGIN", "GameType", "isReactiveObject", "CHESS_ACTION", "CHESS_PLUGIN", "ChessAction", "isObject", "object", "isReactiveObject", "GameType", "ChessPlugin", "meta", "provides", "metadata", "records", "GameType", "typename", "placeholder", "ns", "CHESS_PLUGIN", "icon", "props", "React", "ShieldChevron", "iconSymbol", "echo", "schema", "graph", "builder", "plugins", "client", "resolvePlugin", "parseClientPlugin", "dispatch", "parseIntentPlugin", "intent", "createExtension", "id", "ChessAction", "CREATE", "filter", "node", "isActionGroup", "startsWith", "SpaceAction", "ADD_OBJECT", "actions", "split", "at", "spaceId", "objectId", "space", "spaces", "get", "find", "object", "db", "getObjectById", "target", "data", "plugin", "action", "NavigationAction", "OPEN", "properties", "label", "testId", "translations", "surface", "component", "role", "isObject", "ChessContainer", "game", "resolver", "create", "ChessPlugin"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/plugin-chess/src/components/Chess.tsx":{"bytes":13998,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"chess.js","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-chess/src/components/ChessContainer.tsx":{"bytes":2328,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-chess/src/components/Chess.tsx","kind":"import-statement","original":"./Chess"}],"format":"esm"},"packages/plugins/plugin-chess/src/meta.ts":{"bytes":1150,"imports":[],"format":"esm"},"packages/plugins/plugin-chess/src/translations.ts":{"bytes":1400,"imports":[{"path":"packages/plugins/plugin-chess/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-chess/src/types.ts":{"bytes":2597,"imports":[{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-chess/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-chess/src/ChessPlugin.tsx":{"bytes":14636,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-chess/src/components/ChessContainer.tsx","kind":"import-statement","original":"./components/ChessContainer"},{"path":"packages/plugins/plugin-chess/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-chess/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-chess/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-chess/src/index.ts":{"bytes":769,"imports":[{"path":"packages/plugins/plugin-chess/src/ChessPlugin.tsx","kind":"import-statement","original":"./ChessPlugin"},{"path":"packages/plugins/plugin-chess/src/ChessPlugin.tsx","kind":"import-statement","original":"./ChessPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-chess/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16654},"packages/plugins/plugin-chess/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-chess/dist/lib/browser/chunk-SP4YZROV.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"chess.js","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["ChessPlugin","default"],"entryPoint":"packages/plugins/plugin-chess/src/index.ts","inputs":{"packages/plugins/plugin-chess/src/ChessPlugin.tsx":{"bytesInOutput":3780},"packages/plugins/plugin-chess/src/components/ChessContainer.tsx":{"bytesInOutput":497},"packages/plugins/plugin-chess/src/components/Chess.tsx":{"bytesInOutput":3992},"packages/plugins/plugin-chess/src/translations.ts":{"bytesInOutput":253},"packages/plugins/plugin-chess/src/types.ts":{"bytesInOutput":400},"packages/plugins/plugin-chess/src/index.ts":{"bytesInOutput":31}},"bytes":9562},"packages/plugins/plugin-chess/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-chess/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-chess/dist/lib/browser/chunk-SP4YZROV.mjs","kind":"import-statement"}],"exports":["CHESS_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-chess/src/meta.ts","inputs":{},"bytes":159},"packages/plugins/plugin-chess/dist/lib/browser/chunk-SP4YZROV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":556},"packages/plugins/plugin-chess/dist/lib/browser/chunk-SP4YZROV.mjs":{"imports":[],"exports":["CHESS_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-chess/src/meta.ts":{"bytesInOutput":173}},"bytes":306}}}
1
+ {"inputs":{"packages/plugins/plugin-chess/src/components/Chess.tsx":{"bytes":13998,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"chess.js","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-chess/src/components/ChessContainer.tsx":{"bytes":2328,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-chess/src/components/Chess.tsx","kind":"import-statement","original":"./Chess"}],"format":"esm"},"packages/plugins/plugin-chess/src/meta.tsx":{"bytes":1870,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-chess/src/translations.ts":{"bytes":1400,"imports":[{"path":"packages/plugins/plugin-chess/src/meta.tsx","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-chess/src/types.ts":{"bytes":2481,"imports":[{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-chess/src/meta.tsx","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-chess/src/ChessPlugin.tsx":{"bytes":14687,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-chess/src/components/ChessContainer.tsx","kind":"import-statement","original":"./components/ChessContainer"},{"path":"packages/plugins/plugin-chess/src/meta.tsx","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-chess/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-chess/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-chess/src/index.ts":{"bytes":769,"imports":[{"path":"packages/plugins/plugin-chess/src/ChessPlugin.tsx","kind":"import-statement","original":"./ChessPlugin"},{"path":"packages/plugins/plugin-chess/src/ChessPlugin.tsx","kind":"import-statement","original":"./ChessPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-chess/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16715},"packages/plugins/plugin-chess/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-chess/dist/lib/browser/chunk-HLCMCUXF.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"chess.js","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/chess-app","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["ChessPlugin","default"],"entryPoint":"packages/plugins/plugin-chess/src/index.ts","inputs":{"packages/plugins/plugin-chess/src/ChessPlugin.tsx":{"bytesInOutput":3813},"packages/plugins/plugin-chess/src/components/ChessContainer.tsx":{"bytesInOutput":497},"packages/plugins/plugin-chess/src/components/Chess.tsx":{"bytesInOutput":3992},"packages/plugins/plugin-chess/src/translations.ts":{"bytesInOutput":253},"packages/plugins/plugin-chess/src/types.ts":{"bytesInOutput":400},"packages/plugins/plugin-chess/src/index.ts":{"bytesInOutput":31}},"bytes":9595},"packages/plugins/plugin-chess/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-chess/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-chess/dist/lib/browser/chunk-HLCMCUXF.mjs","kind":"import-statement"}],"exports":["CHESS_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-chess/src/meta.tsx","inputs":{},"bytes":159},"packages/plugins/plugin-chess/dist/lib/browser/chunk-HLCMCUXF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":940},"packages/plugins/plugin-chess/dist/lib/browser/chunk-HLCMCUXF.mjs":{"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["CHESS_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-chess/src/meta.tsx":{"bytesInOutput":410}},"bytes":544}}}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CHESS_PLUGIN,
3
3
  meta_default
4
- } from "./chunk-SP4YZROV.mjs";
4
+ } from "./chunk-HLCMCUXF.mjs";
5
5
  export {
6
6
  CHESS_PLUGIN,
7
7
  meta_default as default
@@ -1 +1 @@
1
- {"version":3,"file":"ChessPlugin.d.ts","sourceRoot":"","sources":["../../../src/ChessPlugin.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,gBAAgB,EAAsD,MAAM,qBAAqB,CAAC;AAUhH,OAAO,EAAe,KAAK,mBAAmB,EAAY,MAAM,SAAS,CAAC;AAE1E,eAAO,MAAM,WAAW,QAAO,gBAAgB,CAAC,mBAAmB,CAsFlE,CAAC"}
1
+ {"version":3,"file":"ChessPlugin.d.ts","sourceRoot":"","sources":["../../../src/ChessPlugin.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,gBAAgB,EAAsD,MAAM,qBAAqB,CAAC;AAUhH,OAAO,EAAe,KAAK,mBAAmB,EAAY,MAAM,SAAS,CAAC;AAE1E,eAAO,MAAM,WAAW,QAAO,gBAAgB,CAAC,mBAAmB,CAkFlE,CAAC"}
@@ -1,9 +1,15 @@
1
+ import { type IconProps } from '@phosphor-icons/react';
2
+ import React from 'react';
1
3
  export declare const CHESS_PLUGIN = "dxos.org/plugin/chess";
2
4
  declare const _default: {
3
5
  id: string;
4
- name: string;
5
- description: string;
6
- icon: string;
6
+ shortId?: string;
7
+ name?: string;
8
+ description?: string;
9
+ homePage?: string;
10
+ tags?: string[];
11
+ iconComponent?: React.FC<IconProps>;
12
+ iconSymbol?: string;
7
13
  };
8
14
  export default _default;
9
15
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,0BAA0B,CAAC;;;;;;;AAEpD,wBAKuB"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,YAAY,0BAA0B,CAAC;;;;;;;;;;;AAEpD,wBAMG"}
@@ -1,11 +1,10 @@
1
1
  import type { GraphBuilderProvides, IntentResolverProvides, MetadataRecordsProvides, SurfaceProvides, TranslationsProvides } from '@dxos/app-framework';
2
2
  import { GameType } from '@dxos/chess-app';
3
3
  import { type SchemaProvides } from '@dxos/plugin-client';
4
- import { type SpaceInitProvides } from '@dxos/plugin-space';
5
4
  export declare enum ChessAction {
6
5
  CREATE = "dxos.org/plugin/chess/action/create"
7
6
  }
8
7
  export type ChessProvides = {};
9
- export type ChessPluginProvides = SurfaceProvides & IntentResolverProvides & GraphBuilderProvides & MetadataRecordsProvides & TranslationsProvides & SchemaProvides & SpaceInitProvides;
8
+ export type ChessPluginProvides = SurfaceProvides & IntentResolverProvides & GraphBuilderProvides & MetadataRecordsProvides & TranslationsProvides & SchemaProvides;
10
9
  export declare const isObject: (object: unknown) => object is GameType;
11
10
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAM5D,oBAAY,WAAW;IACrB,MAAM,wCAA2B;CAClC;AAED,MAAM,MAAM,aAAa,GAAG,EAAE,CAAC;AAE/B,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAC/C,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,oBAAoB,GACpB,cAAc,GACd,iBAAiB,CAAC;AAEpB,eAAO,MAAM,QAAQ,WAAY,OAAO,KAAG,MAAM,IAAI,QAEpD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,oBAAY,WAAW;IACrB,MAAM,wCAA2B;CAClC;AAED,MAAM,MAAM,aAAa,GAAG,EAAE,CAAC;AAE/B,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAC/C,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,oBAAoB,GACpB,cAAc,CAAC;AAEjB,eAAO,MAAM,QAAQ,WAAY,OAAO,KAAG,MAAM,IAAI,QAEpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-chess",
3
- "version": "0.6.13-main.ed424a1",
3
+ "version": "0.6.13",
4
4
  "description": "Chess for new plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -31,16 +31,16 @@
31
31
  "dependencies": {
32
32
  "@preact/signals-core": "^1.6.0",
33
33
  "chess.js": "^1.0.0-beta.8",
34
- "@dxos/app-framework": "0.6.13-main.ed424a1",
35
- "@dxos/async": "0.6.13-main.ed424a1",
36
- "@dxos/chess-app": "0.6.13-main.ed424a1",
37
- "@dxos/echo-schema": "0.6.13-main.ed424a1",
38
- "@dxos/invariant": "0.6.13-main.ed424a1",
39
- "@dxos/plugin-client": "0.6.13-main.ed424a1",
40
- "@dxos/display-name": "0.6.13-main.ed424a1",
41
- "@dxos/plugin-graph": "0.6.13-main.ed424a1",
42
- "@dxos/plugin-space": "0.6.13-main.ed424a1",
43
- "@dxos/react-client": "0.6.13-main.ed424a1"
34
+ "@dxos/app-framework": "0.6.13",
35
+ "@dxos/async": "0.6.13",
36
+ "@dxos/chess-app": "0.6.13",
37
+ "@dxos/display-name": "0.6.13",
38
+ "@dxos/invariant": "0.6.13",
39
+ "@dxos/echo-schema": "0.6.13",
40
+ "@dxos/plugin-client": "0.6.13",
41
+ "@dxos/plugin-graph": "0.6.13",
42
+ "@dxos/plugin-space": "0.6.13",
43
+ "@dxos/react-client": "0.6.13"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@phosphor-icons/react": "^2.1.5",
@@ -48,17 +48,17 @@
48
48
  "@types/react-dom": "~18.2.0",
49
49
  "react": "~18.2.0",
50
50
  "react-dom": "~18.2.0",
51
- "vite": "5.4.7",
52
- "@dxos/react-ui": "0.6.13-main.ed424a1",
53
- "@dxos/react-ui-theme": "0.6.13-main.ed424a1",
54
- "@dxos/storybook-utils": "0.6.13-main.ed424a1"
51
+ "vite": "^5.3.4",
52
+ "@dxos/react-ui": "0.6.13",
53
+ "@dxos/react-ui-theme": "0.6.13",
54
+ "@dxos/storybook-utils": "0.6.13"
55
55
  },
56
- "peerDependencies": {
56
+ "optionalDependencies": {
57
57
  "@phosphor-icons/react": "^2.1.5",
58
- "react": "~18.2.0",
59
- "react-dom": "~18.2.0",
60
- "@dxos/react-ui": "0.6.13-main.ed424a1",
61
- "@dxos/react-ui-theme": "0.6.13-main.ed424a1"
58
+ "react": "^18.0.0",
59
+ "react-dom": "^18.0.0",
60
+ "@dxos/react-ui": "0.6.13",
61
+ "@dxos/react-ui-theme": "0.6.13"
62
62
  },
63
63
  "publishConfig": {
64
64
  "access": "public"
@@ -2,6 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { type IconProps, ShieldChevron } from '@phosphor-icons/react';
5
6
  import React from 'react';
6
7
 
7
8
  import { type PluginDefinition, resolvePlugin, parseIntentPlugin, NavigationAction } from '@dxos/app-framework';
@@ -24,19 +25,14 @@ export const ChessPlugin = (): PluginDefinition<ChessPluginProvides> => {
24
25
  records: {
25
26
  [GameType.typename]: {
26
27
  placeholder: ['game title placeholder', { ns: CHESS_PLUGIN }],
27
- icon: 'ph--shield-chevron--regular',
28
+ icon: (props: IconProps) => <ShieldChevron {...props} />,
29
+ iconSymbol: 'ph--shield-chevron--regular',
28
30
  },
29
31
  },
30
32
  },
31
33
  echo: {
32
34
  schema: [GameType],
33
35
  },
34
- space: {
35
- onSpaceCreate: {
36
- label: ['create game label', { ns: CHESS_PLUGIN }],
37
- action: ChessAction.CREATE,
38
- },
39
- },
40
36
  graph: {
41
37
  builder: (plugins) => {
42
38
  const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
@@ -70,7 +66,8 @@ export const ChessPlugin = (): PluginDefinition<ChessPluginProvides> => {
70
66
  },
71
67
  properties: {
72
68
  label: ['create game label', { ns: CHESS_PLUGIN }],
73
- icon: 'ph--shield-chevron--regular',
69
+ icon: (props: IconProps) => <ShieldChevron {...props} />,
70
+ iconSymbol: 'ph--shield-chevron--regular',
74
71
  testId: 'chessPlugin.createObject',
75
72
  },
76
73
  },
package/src/meta.tsx ADDED
@@ -0,0 +1,18 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { ShieldChevron, type IconProps } from '@phosphor-icons/react';
6
+ import React from 'react';
7
+
8
+ import { pluginMeta } from '@dxos/app-framework';
9
+
10
+ export const CHESS_PLUGIN = 'dxos.org/plugin/chess';
11
+
12
+ export default pluginMeta({
13
+ id: CHESS_PLUGIN,
14
+ name: 'Chess',
15
+ description: 'Play chess.',
16
+ iconComponent: (props: IconProps) => <ShieldChevron {...props} />,
17
+ iconSymbol: 'ph--shield-chevron--regular',
18
+ });
package/src/types.ts CHANGED
@@ -12,7 +12,6 @@ import type {
12
12
  import { GameType } from '@dxos/chess-app';
13
13
  import { isReactiveObject } from '@dxos/echo-schema';
14
14
  import { type SchemaProvides } from '@dxos/plugin-client';
15
- import { type SpaceInitProvides } from '@dxos/plugin-space';
16
15
 
17
16
  import { CHESS_PLUGIN } from './meta';
18
17
 
@@ -29,8 +28,7 @@ export type ChessPluginProvides = SurfaceProvides &
29
28
  GraphBuilderProvides &
30
29
  MetadataRecordsProvides &
31
30
  TranslationsProvides &
32
- SchemaProvides &
33
- SpaceInitProvides;
31
+ SchemaProvides;
34
32
 
35
33
  export const isObject = (object: unknown): object is GameType => {
36
34
  return isReactiveObject(object) && object instanceof GameType;
@@ -1,14 +0,0 @@
1
- // packages/plugins/plugin-chess/src/meta.ts
2
- var CHESS_PLUGIN = "dxos.org/plugin/chess";
3
- var meta_default = {
4
- id: CHESS_PLUGIN,
5
- name: "Chess",
6
- description: "Play chess.",
7
- icon: "ph--shield-chevron--regular"
8
- };
9
-
10
- export {
11
- CHESS_PLUGIN,
12
- meta_default
13
- };
14
- //# sourceMappingURL=chunk-SP4YZROV.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\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 default {\n id: CHESS_PLUGIN,\n name: 'Chess',\n description: 'Play chess.',\n icon: 'ph--shield-chevron--regular',\n} satisfies PluginMeta;\n"],
5
- "mappings": ";AAMO,IAAMA,eAAe;AAE5B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;EACNC,aAAa;EACbC,MAAM;AACR;",
6
- "names": ["CHESS_PLUGIN", "id", "name", "description", "icon"]
7
- }
package/src/meta.ts DELETED
@@ -1,14 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type PluginMeta } from '@dxos/app-framework';
6
-
7
- export const CHESS_PLUGIN = 'dxos.org/plugin/chess';
8
-
9
- export default {
10
- id: CHESS_PLUGIN,
11
- name: 'Chess',
12
- description: 'Play chess.',
13
- icon: 'ph--shield-chevron--regular',
14
- } satisfies PluginMeta;