@dxos/plugin-space 0.7.5-labs.8a82073 → 0.7.5-labs.c0e040f

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 (112) hide show
  1. package/dist/lib/browser/{app-graph-builder-TTM2YZVS.mjs → app-graph-builder-GSS3V7IN.mjs} +8 -8
  2. package/dist/lib/browser/app-graph-builder-GSS3V7IN.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-ZGM5NDXE.mjs → app-graph-serializer-QDXM5M6K.mjs} +4 -4
  4. package/dist/lib/browser/{chunk-2NMUVDMZ.mjs → chunk-DIBLC24B.mjs} +29 -15
  5. package/dist/lib/browser/chunk-DIBLC24B.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-ENRYFGYE.mjs → chunk-SDK7RZI3.mjs} +2 -2
  7. package/dist/lib/browser/{chunk-H2AR4OLP.mjs → chunk-XPZ6IIXF.mjs} +1 -6
  8. package/dist/lib/browser/chunk-XPZ6IIXF.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-S5IGZNXJ.mjs → chunk-ZL5ZFGBK.mjs} +4 -3
  10. package/dist/lib/browser/chunk-ZL5ZFGBK.mjs.map +7 -0
  11. package/dist/lib/browser/{identity-created-VICTPQX7.mjs → identity-created-25TK5XNO.mjs} +2 -2
  12. package/dist/lib/browser/index.mjs +4 -4
  13. package/dist/lib/browser/{intent-resolver-A5274MUR.mjs → intent-resolver-LNTCXZ57.mjs} +4 -4
  14. package/dist/lib/browser/meta.json +1 -1
  15. package/dist/lib/browser/{react-root-N6QTWYCV.mjs → react-root-Q7JJDCPB.mjs} +4 -4
  16. package/dist/lib/browser/{react-surface-STMNA7W7.mjs → react-surface-BDMYLARO.mjs} +4 -4
  17. package/dist/lib/browser/{settings-HN5UIYQO.mjs → settings-K4JPYYEM.mjs} +2 -2
  18. package/dist/lib/browser/{spaces-ready-F57ITJDR.mjs → spaces-ready-THYJEJYZ.mjs} +3 -3
  19. package/dist/lib/browser/types/index.mjs +1 -3
  20. package/dist/lib/node/{app-graph-builder-6N4TEVHH.cjs → app-graph-builder-V3RCGDV7.cjs} +32 -32
  21. package/dist/lib/node/app-graph-builder-V3RCGDV7.cjs.map +7 -0
  22. package/dist/lib/node/{app-graph-serializer-AWKVTYAB.cjs → app-graph-serializer-H4UACG57.cjs} +20 -20
  23. package/dist/lib/node/{chunk-2RCJT3P2.cjs → chunk-4AZ2DD4G.cjs} +46 -32
  24. package/dist/lib/node/chunk-4AZ2DD4G.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-SPCSJ2CY.cjs → chunk-6MEOP3DH.cjs} +4 -10
  26. package/dist/lib/node/chunk-6MEOP3DH.cjs.map +7 -0
  27. package/dist/lib/node/{chunk-I2LRRRMV.cjs → chunk-D6BFKOXY.cjs} +6 -6
  28. package/dist/lib/node/{chunk-MMXP2NHE.cjs → chunk-SYVPVU3K.cjs} +39 -38
  29. package/dist/lib/node/chunk-SYVPVU3K.cjs.map +7 -0
  30. package/dist/lib/node/{identity-created-JNDKMFKI.cjs → identity-created-7G5U7R36.cjs} +6 -6
  31. package/dist/lib/node/index.cjs +61 -61
  32. package/dist/lib/node/{intent-resolver-NVTAESKB.cjs → intent-resolver-CDE4M3TW.cjs} +52 -52
  33. package/dist/lib/node/meta.json +1 -1
  34. package/dist/lib/node/{react-root-YCHSAYQE.cjs → react-root-JN6AIHMS.cjs} +8 -8
  35. package/dist/lib/node/{react-surface-ANSZ4FKK.cjs → react-surface-XSK2QEQV.cjs} +41 -41
  36. package/dist/lib/node/{settings-RBBL22DJ.cjs → settings-TEELGWS4.cjs} +6 -6
  37. package/dist/lib/node/{spaces-ready-WHU4J6E5.cjs → spaces-ready-L4MJTFQ6.cjs} +11 -11
  38. package/dist/lib/node/types/index.cjs +15 -17
  39. package/dist/lib/node/types/index.cjs.map +2 -2
  40. package/dist/lib/node-esm/{app-graph-builder-MS6BI5EW.mjs → app-graph-builder-VFHK7OQI.mjs} +8 -8
  41. package/dist/lib/node-esm/app-graph-builder-VFHK7OQI.mjs.map +7 -0
  42. package/dist/lib/node-esm/{app-graph-serializer-AWAWDSCM.mjs → app-graph-serializer-PIPJVXYZ.mjs} +4 -4
  43. package/dist/lib/node-esm/{chunk-ESWV7ICX.mjs → chunk-4UX5WGKJ.mjs} +2 -2
  44. package/dist/lib/node-esm/{chunk-S6VAU6VJ.mjs → chunk-AAQRELDK.mjs} +1 -6
  45. package/dist/lib/node-esm/chunk-AAQRELDK.mjs.map +7 -0
  46. package/dist/lib/node-esm/{chunk-4HICD7AU.mjs → chunk-FTVEA5LO.mjs} +29 -15
  47. package/dist/lib/node-esm/chunk-FTVEA5LO.mjs.map +7 -0
  48. package/dist/lib/node-esm/{chunk-77RE7Y5J.mjs → chunk-RCZRYXI3.mjs} +4 -3
  49. package/dist/lib/node-esm/chunk-RCZRYXI3.mjs.map +7 -0
  50. package/dist/lib/node-esm/{identity-created-3AUSSVEK.mjs → identity-created-7THGZ7EW.mjs} +2 -2
  51. package/dist/lib/node-esm/index.mjs +4 -4
  52. package/dist/lib/node-esm/{intent-resolver-KJ67TU34.mjs → intent-resolver-7L3GJAZE.mjs} +4 -4
  53. package/dist/lib/node-esm/meta.json +1 -1
  54. package/dist/lib/node-esm/{react-root-NBQQKAZD.mjs → react-root-BNA6PBFZ.mjs} +4 -4
  55. package/dist/lib/node-esm/{react-surface-G2H5T2D2.mjs → react-surface-FTI2LQNL.mjs} +4 -4
  56. package/dist/lib/node-esm/{settings-VBAUB37B.mjs → settings-KXYUZBLN.mjs} +2 -2
  57. package/dist/lib/node-esm/{spaces-ready-ABADUX2P.mjs → spaces-ready-ZC2R73H3.mjs} +3 -3
  58. package/dist/lib/node-esm/types/index.mjs +1 -3
  59. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  60. package/dist/types/src/components/BaseObjectSettings.d.ts.map +1 -1
  61. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  62. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +3 -4
  63. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +1 -1
  64. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +1 -1
  65. package/dist/types/src/types/types.d.ts +0 -3
  66. package/dist/types/src/types/types.d.ts.map +1 -1
  67. package/dist/types/src/util.d.ts +1 -0
  68. package/dist/types/src/util.d.ts.map +1 -1
  69. package/package.json +39 -38
  70. package/src/capabilities/app-graph-builder.ts +5 -5
  71. package/src/components/BaseObjectSettings.tsx +7 -0
  72. package/src/components/CreateDialog/CreateObjectPanel.tsx +2 -2
  73. package/src/components/SpaceSettings/SpaceSettingsPanel.stories.tsx +5 -1
  74. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +12 -4
  75. package/src/types/types.ts +0 -5
  76. package/src/util.tsx +1 -0
  77. package/dist/lib/browser/app-graph-builder-TTM2YZVS.mjs.map +0 -7
  78. package/dist/lib/browser/chunk-2NMUVDMZ.mjs.map +0 -7
  79. package/dist/lib/browser/chunk-H2AR4OLP.mjs.map +0 -7
  80. package/dist/lib/browser/chunk-S5IGZNXJ.mjs.map +0 -7
  81. package/dist/lib/node/app-graph-builder-6N4TEVHH.cjs.map +0 -7
  82. package/dist/lib/node/chunk-2RCJT3P2.cjs.map +0 -7
  83. package/dist/lib/node/chunk-MMXP2NHE.cjs.map +0 -7
  84. package/dist/lib/node/chunk-SPCSJ2CY.cjs.map +0 -7
  85. package/dist/lib/node-esm/app-graph-builder-MS6BI5EW.mjs.map +0 -7
  86. package/dist/lib/node-esm/chunk-4HICD7AU.mjs.map +0 -7
  87. package/dist/lib/node-esm/chunk-77RE7Y5J.mjs.map +0 -7
  88. package/dist/lib/node-esm/chunk-S6VAU6VJ.mjs.map +0 -7
  89. /package/dist/lib/browser/{app-graph-serializer-ZGM5NDXE.mjs.map → app-graph-serializer-QDXM5M6K.mjs.map} +0 -0
  90. /package/dist/lib/browser/{chunk-ENRYFGYE.mjs.map → chunk-SDK7RZI3.mjs.map} +0 -0
  91. /package/dist/lib/browser/{identity-created-VICTPQX7.mjs.map → identity-created-25TK5XNO.mjs.map} +0 -0
  92. /package/dist/lib/browser/{intent-resolver-A5274MUR.mjs.map → intent-resolver-LNTCXZ57.mjs.map} +0 -0
  93. /package/dist/lib/browser/{react-root-N6QTWYCV.mjs.map → react-root-Q7JJDCPB.mjs.map} +0 -0
  94. /package/dist/lib/browser/{react-surface-STMNA7W7.mjs.map → react-surface-BDMYLARO.mjs.map} +0 -0
  95. /package/dist/lib/browser/{settings-HN5UIYQO.mjs.map → settings-K4JPYYEM.mjs.map} +0 -0
  96. /package/dist/lib/browser/{spaces-ready-F57ITJDR.mjs.map → spaces-ready-THYJEJYZ.mjs.map} +0 -0
  97. /package/dist/lib/node/{app-graph-serializer-AWKVTYAB.cjs.map → app-graph-serializer-H4UACG57.cjs.map} +0 -0
  98. /package/dist/lib/node/{chunk-I2LRRRMV.cjs.map → chunk-D6BFKOXY.cjs.map} +0 -0
  99. /package/dist/lib/node/{identity-created-JNDKMFKI.cjs.map → identity-created-7G5U7R36.cjs.map} +0 -0
  100. /package/dist/lib/node/{intent-resolver-NVTAESKB.cjs.map → intent-resolver-CDE4M3TW.cjs.map} +0 -0
  101. /package/dist/lib/node/{react-root-YCHSAYQE.cjs.map → react-root-JN6AIHMS.cjs.map} +0 -0
  102. /package/dist/lib/node/{react-surface-ANSZ4FKK.cjs.map → react-surface-XSK2QEQV.cjs.map} +0 -0
  103. /package/dist/lib/node/{settings-RBBL22DJ.cjs.map → settings-TEELGWS4.cjs.map} +0 -0
  104. /package/dist/lib/node/{spaces-ready-WHU4J6E5.cjs.map → spaces-ready-L4MJTFQ6.cjs.map} +0 -0
  105. /package/dist/lib/node-esm/{app-graph-serializer-AWAWDSCM.mjs.map → app-graph-serializer-PIPJVXYZ.mjs.map} +0 -0
  106. /package/dist/lib/node-esm/{chunk-ESWV7ICX.mjs.map → chunk-4UX5WGKJ.mjs.map} +0 -0
  107. /package/dist/lib/node-esm/{identity-created-3AUSSVEK.mjs.map → identity-created-7THGZ7EW.mjs.map} +0 -0
  108. /package/dist/lib/node-esm/{intent-resolver-KJ67TU34.mjs.map → intent-resolver-7L3GJAZE.mjs.map} +0 -0
  109. /package/dist/lib/node-esm/{react-root-NBQQKAZD.mjs.map → react-root-BNA6PBFZ.mjs.map} +0 -0
  110. /package/dist/lib/node-esm/{react-surface-G2H5T2D2.mjs.map → react-surface-FTI2LQNL.mjs.map} +0 -0
  111. /package/dist/lib/node-esm/{settings-VBAUB37B.mjs.map → settings-KXYUZBLN.mjs.map} +0 -0
  112. /package/dist/lib/node-esm/{spaces-ready-ABADUX2P.mjs.map → spaces-ready-ZC2R73H3.mjs.map} +0 -0
@@ -9,11 +9,11 @@ import {
9
9
  constructSpaceNode,
10
10
  createObjectNode,
11
11
  memoizeQuery
12
- } from "./chunk-S5IGZNXJ.mjs";
12
+ } from "./chunk-ZL5ZFGBK.mjs";
13
13
  import {
14
14
  CollectionType,
15
15
  SpaceAction
16
- } from "./chunk-H2AR4OLP.mjs";
16
+ } from "./chunk-XPZ6IIXF.mjs";
17
17
  import {
18
18
  SPACE_PLUGIN
19
19
  } from "./chunk-PQXZCNAU.mjs";
@@ -25,7 +25,7 @@ import { getTypename, isDeleted } from "@dxos/live-object";
25
25
  import { log } from "@dxos/log";
26
26
  import { ClientCapabilities } from "@dxos/plugin-client";
27
27
  import { createExtension, toSignal } from "@dxos/plugin-graph";
28
- import { nonNullable } from "@dxos/util";
28
+ import { isNonNullable } from "@dxos/util";
29
29
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/capabilities/app-graph-builder.ts";
30
30
  var app_graph_builder_default = (context) => {
31
31
  const resolve = (typename) => context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
@@ -219,12 +219,12 @@ var app_graph_builder_default = (context) => {
219
219
  return;
220
220
  }
221
221
  const state = context.requestCapability(SpaceCapabilities.State);
222
- return collection.objects.map((object) => object.target).filter(nonNullable).map((object) => createObjectNode({
222
+ return collection.objects.map((object) => object.target).filter(isNonNullable).map((object) => createObjectNode({
223
223
  object,
224
224
  space,
225
225
  resolve,
226
226
  navigable: state.navigableCollections
227
- })).filter(nonNullable);
227
+ })).filter(isNonNullable);
228
228
  }
229
229
  }),
230
230
  // Create nodes for objects in a collection or by its fully qualified id.
@@ -238,12 +238,12 @@ var app_graph_builder_default = (context) => {
238
238
  return;
239
239
  }
240
240
  const state = context.requestCapability(SpaceCapabilities.State);
241
- return collection.objects.map((object) => object.target).filter(nonNullable).map((object) => createObjectNode({
241
+ return collection.objects.map((object) => object.target).filter(isNonNullable).map((object) => createObjectNode({
242
242
  object,
243
243
  space,
244
244
  resolve,
245
245
  navigable: state.navigableCollections
246
- })).filter(nonNullable);
246
+ })).filter(isNonNullable);
247
247
  },
248
248
  resolver: ({ id }) => {
249
249
  if (id.length !== FQ_ID_LENGTH) {
@@ -364,4 +364,4 @@ var app_graph_builder_default = (context) => {
364
364
  export {
365
365
  app_graph_builder_default as default
366
366
  };
367
- //# sourceMappingURL=app-graph-builder-TTM2YZVS.mjs.map
367
+ //# sourceMappingURL=app-graph-builder-GSS3V7IN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, type PluginsContext } from '@dxos/app-framework';\nimport {\n Expando,\n Filter,\n FQ_ID_LENGTH,\n getSpace,\n isEchoObject,\n isSpace,\n OBJECT_ID_LENGTH,\n parseId,\n type ReactiveEchoObject,\n SPACE_ID_LENGTH,\n SpaceState,\n type Space,\n} from '@dxos/client/echo';\nimport { getTypename, isDeleted } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { createExtension, toSignal, type Node } from '@dxos/plugin-graph';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, SpaceAction, type SpaceSettingsProps } from '../types';\nimport {\n constructObjectActions,\n constructSpaceActions,\n constructSpaceNode,\n createObjectNode,\n memoizeQuery,\n SHARED,\n SPACES,\n} from '../util';\n\nexport default (context: PluginsContext) => {\n const resolve = (typename: string) =>\n context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n const spacesNode = {\n id: SPACES,\n type: SPACES,\n cacheable: ['label', 'role'],\n properties: {\n label: ['spaces label', { ns: SPACE_PLUGIN }],\n icon: 'ph--planet--regular',\n testId: 'spacePlugin.spaces',\n role: 'branch',\n disposition: 'collection',\n disabled: true,\n childrenPersistenceClass: 'echo',\n onRearrangeChildren: async (nextOrder: Space[]) => {\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const client = context.requestCapability(ClientCapabilities.Client);\n\n // NOTE: This is needed to ensure order is updated by next animation frame.\n // TODO(wittjosiah): Is there a better way to do this?\n // If not, graph should be passed as an argument to the extension.\n graph._sortEdges(\n SPACES,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n const {\n objects: [spacesOrder],\n } = await client.spaces.default.db.query(Filter.schema(Expando, { key: SHARED })).run();\n if (spacesOrder) {\n spacesOrder.order = nextOrder.map(({ id }) => id);\n } else {\n log.warn('spaces order object not found');\n }\n },\n },\n };\n\n return contributes(Capabilities.AppGraphBuilder, [\n // Primary actions.\n createExtension({\n id: `${SPACE_PLUGIN}/primary-actions`,\n position: 'hoist',\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id: SpaceAction.OpenCreateSpace._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.OpenCreateSpace));\n },\n properties: {\n label: ['create space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.createSpace',\n disposition: 'item',\n },\n },\n {\n id: SpaceAction.Join._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.Join));\n },\n properties: {\n label: ['join space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sign-in--regular',\n testId: 'spacePlugin.joinSpace',\n disposition: 'item',\n },\n },\n ],\n }),\n\n // Create spaces group node.\n createExtension({\n id: `${SPACE_PLUGIN}/root`,\n position: 'hoist',\n filter: (node): node is Node<null> => node.id === 'root',\n connector: () => [spacesNode],\n resolver: ({ id }) => (id === SPACES ? spacesNode : undefined),\n }),\n\n // Create space nodes.\n createExtension({\n id: SPACES,\n filter: (node): node is Node<null> => node.id === SPACES,\n connector: () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n\n const isReady = toSignal(\n (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.isReady.get(),\n );\n\n if (!spaces || !isReady) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<SpaceSettingsProps>(SPACE_PLUGIN)?.value;\n\n // TODO(wittjosiah): During client reset, accessing default space throws.\n try {\n const [spacesOrder] = memoizeQuery(client.spaces.default, Filter.schema(Expando, { key: SHARED }));\n const order: string[] = spacesOrder?.order ?? [];\n const orderMap = new Map(order.map((id, index) => [id, index]));\n return [\n ...spaces\n .filter((space) => orderMap.has(space.id))\n .sort((a, b) => orderMap.get(a.id)! - orderMap.get(b.id)!),\n ...spaces.filter((space) => !orderMap.has(space.id)),\n ]\n .filter((space) => (settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE))\n .map((space) =>\n constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n }),\n );\n } catch {}\n },\n resolver: ({ id }) => {\n if (id.length !== SPACE_ID_LENGTH) {\n return;\n }\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n\n const isReady = toSignal(\n (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.isReady.get(),\n );\n\n if (!spaces || !isReady) {\n return;\n }\n\n const space = spaces.find((space) => space.id === id);\n if (!space) {\n return;\n }\n\n if (space.state.get() === SpaceState.SPACE_INACTIVE) {\n return false;\n } else {\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n });\n }\n },\n }),\n\n // Create space actions.\n createExtension({\n id: `${SPACE_PLUGIN}/actions`,\n filter: (node): node is Node<Space> => isSpace(node.data),\n actions: ({ node }) => {\n const space = node.data;\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const client = context.requestCapability(ClientCapabilities.Client);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructSpaceActions({\n space,\n dispatch,\n personal: space === client.spaces.default,\n migrating: state.sdkMigrationRunning[space.id],\n });\n },\n }),\n\n // Create nodes for objects in the root collection of a space.\n createExtension({\n id: `${SPACE_PLUGIN}/root-collection`,\n filter: (node): node is Node<Space> => isSpace(node.data),\n connector: ({ node }) => {\n const space = node.data;\n const spaceState = toSignal(\n (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n () => space.state.get(),\n space.id,\n );\n if (spaceState !== SpaceState.SPACE_READY) {\n return;\n }\n\n const collection = space.properties[CollectionType.typename]?.target as CollectionType | undefined;\n if (!collection) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\n },\n }),\n\n // Create nodes for objects in a collection or by its fully qualified id.\n createExtension({\n id: `${SPACE_PLUGIN}/objects`,\n filter: (node): node is Node<CollectionType> => node.data instanceof CollectionType,\n connector: ({ node }) => {\n const collection = node.data;\n const space = getSpace(collection);\n if (!space) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\n },\n resolver: ({ id }) => {\n if (id.length !== FQ_ID_LENGTH) {\n return;\n }\n\n const [spaceId, objectId] = id.split(':');\n if (spaceId.length !== SPACE_ID_LENGTH && objectId.length !== OBJECT_ID_LENGTH) {\n return;\n }\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const space = client.spaces.get().find((space) => space.id === spaceId);\n if (!space) {\n return;\n }\n\n const spaceState = toSignal(\n (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n () => space.state.get(),\n space.id,\n );\n if (spaceState !== SpaceState.SPACE_READY) {\n return;\n }\n\n const [object] = memoizeQuery(space, { id: objectId });\n if (!object) {\n return;\n }\n\n if (isDeleted(object)) {\n return false;\n } else {\n const state = context.requestCapability(SpaceCapabilities.State);\n return createObjectNode({ object, space, resolve, navigable: state.navigableCollections });\n }\n },\n }),\n\n // Create collection actions and action groups.\n createExtension({\n id: `${SPACE_PLUGIN}/object-actions`,\n filter: (node): node is Node<ReactiveEchoObject<any>> => isEchoObject(node.data),\n actions: ({ node }) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructObjectActions({ node, dispatch, navigable: state.navigableCollections });\n },\n }),\n\n // Create nodes for object settings.\n createExtension({\n id: `${SPACE_PLUGIN}/settings-for-subject`,\n resolver: ({ id }) => {\n if (!id.endsWith('~settings')) {\n return;\n }\n\n const type = 'orphan-settings-for-subject';\n const icon = 'ph--gear--regular';\n\n const [subjectId] = id.split('~');\n const { spaceId, objectId } = parseId(subjectId);\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n const space = spaces?.find((space) => space.id === spaceId && space.state.get() === SpaceState.SPACE_READY);\n if (!objectId) {\n const label = space\n ? space.properties.name || ['unnamed space label', { ns: SPACE_PLUGIN }]\n : ['unnamed object settings label', { ns: SPACE_PLUGIN }];\n\n // TODO(wittjosiah): Support comments for arbitrary subjects.\n // This is to ensure that the comments panel is not stuck on an old object.\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n showResolvedThreads: false,\n object: null,\n space,\n },\n };\n }\n\n const [object] = memoizeQuery(space, { id: objectId });\n if (!object || !subjectId) {\n return;\n }\n\n const meta = resolve(getTypename(object) ?? '');\n const label = meta.label?.(object) ||\n object.name ||\n meta.placeholder || ['unnamed object settings label', { ns: SPACE_PLUGIN }];\n\n return {\n id,\n type,\n data: null,\n properties: {\n icon,\n label,\n object,\n },\n };\n },\n }),\n ]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Capabilities", "contributes", "createIntent", "Expando", "Filter", "FQ_ID_LENGTH", "getSpace", "isEchoObject", "isSpace", "OBJECT_ID_LENGTH", "parseId", "SPACE_ID_LENGTH", "SpaceState", "getTypename", "isDeleted", "log", "ClientCapabilities", "createExtension", "toSignal", "isNonNullable", "context", "resolve", "typename", "requestCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "SPACE_PLUGIN", "icon", "testId", "role", "disposition", "disabled", "childrenPersistenceClass", "onRearrangeChildren", "nextOrder", "graph", "requestCapability", "AppGraph", "client", "ClientCapabilities", "Client", "_sortEdges", "map", "objects", "spacesOrder", "spaces", "default", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "order", "log", "warn", "contributes", "AppGraphBuilder", "createExtension", "position", "filter", "node", "actions", "SpaceAction", "OpenCreateSpace", "_tag", "data", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "Join", "connector", "resolver", "undefined", "toSignal", "onChange", "subscribe", "unsubscribe", "get", "isReady", "state", "SpaceCapabilities", "State", "settings", "SettingsStore", "getStore", "value", "memoizeQuery", "orderMap", "Map", "index", "space", "has", "sort", "a", "b", "showHidden", "SpaceState", "SPACE_INACTIVE", "constructSpaceNode", "navigable", "navigableCollections", "personal", "namesCache", "spaceNames", "length", "SPACE_ID_LENGTH", "isSpace", "constructSpaceActions", "migrating", "sdkMigrationRunning", "spaceState", "SPACE_READY", "collection", "CollectionType", "target", "object", "isNonNullable", "createObjectNode", "getSpace", "FQ_ID_LENGTH", "spaceId", "objectId", "split", "OBJECT_ID_LENGTH", "isDeleted", "isEchoObject", "constructObjectActions", "endsWith", "subjectId", "parseId", "name", "showResolvedThreads", "meta", "getTypename", "placeholder"]
7
+ }
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  translations_default
3
- } from "./chunk-ENRYFGYE.mjs";
3
+ } from "./chunk-SDK7RZI3.mjs";
4
4
  import {
5
5
  SPACES,
6
6
  SPACE_TYPE
7
- } from "./chunk-S5IGZNXJ.mjs";
7
+ } from "./chunk-ZL5ZFGBK.mjs";
8
8
  import {
9
9
  CollectionType,
10
10
  SpaceAction
11
- } from "./chunk-H2AR4OLP.mjs";
11
+ } from "./chunk-XPZ6IIXF.mjs";
12
12
  import {
13
13
  SPACE_PLUGIN
14
14
  } from "./chunk-PQXZCNAU.mjs";
@@ -77,4 +77,4 @@ var app_graph_serializer_default = (context) => contributes(Capabilities.AppGrap
77
77
  export {
78
78
  app_graph_serializer_default as default
79
79
  };
80
- //# sourceMappingURL=app-graph-serializer-ZGM5NDXE.mjs.map
80
+ //# sourceMappingURL=app-graph-serializer-QDXM5M6K.mjs.map
@@ -4,12 +4,12 @@ import {
4
4
  import {
5
5
  COMPOSER_SPACE_LOCK,
6
6
  getSpaceDisplayName
7
- } from "./chunk-S5IGZNXJ.mjs";
7
+ } from "./chunk-ZL5ZFGBK.mjs";
8
8
  import {
9
9
  CollectionType,
10
10
  SpaceAction,
11
11
  SpaceForm
12
- } from "./chunk-H2AR4OLP.mjs";
12
+ } from "./chunk-XPZ6IIXF.mjs";
13
13
  import {
14
14
  SPACE_PLUGIN
15
15
  } from "./chunk-PQXZCNAU.mjs";
@@ -206,14 +206,21 @@ import React4 from "react";
206
206
  import { Input, useTranslation as useTranslation4 } from "@dxos/react-ui";
207
207
  var BaseObjectSettings = ({ object }) => {
208
208
  const { t } = useTranslation4(SPACE_PLUGIN);
209
+ const inputRef = React4.useRef(null);
209
210
  return /* @__PURE__ */ React4.createElement("div", {
210
211
  role: "form",
211
212
  className: "flex flex-col w-full p-2 gap-1"
212
213
  }, /* @__PURE__ */ React4.createElement(Input.Root, null, /* @__PURE__ */ React4.createElement(Input.Label, null, t("name label")), /* @__PURE__ */ React4.createElement(Input.TextInput, {
214
+ ref: inputRef,
213
215
  placeholder: t("name placeholder"),
214
216
  value: object.name ?? "",
215
217
  onChange: (event) => {
216
218
  object.name = event.target.value;
219
+ },
220
+ onKeyDown: (event) => {
221
+ if (event.key === "Enter") {
222
+ inputRef.current?.blur();
223
+ }
217
224
  }
218
225
  })));
219
226
  };
@@ -234,7 +241,7 @@ import { Icon, toLocalizedString, useTranslation as useTranslation5 } from "@dxo
234
241
  import { Form as Form2 } from "@dxos/react-ui-form";
235
242
  import { SearchList } from "@dxos/react-ui-searchlist";
236
243
  import { mx as mx2 } from "@dxos/react-ui-theme";
237
- import { nonNullable } from "@dxos/util";
244
+ import { isNonNullable } from "@dxos/util";
238
245
  var useInputSurfaceLookup = (baseData) => {
239
246
  const pluginManager = usePluginManager();
240
247
  return useCallback4(({ prop, schema, inputProps }) => {
@@ -264,7 +271,7 @@ var CreateObjectPanel = ({ classNames, schemas, spaces, typename: initialTypenam
264
271
  const [typename, setTypename] = useState3(initialTypename);
265
272
  const [target, setTarget] = useState3(initialTarget);
266
273
  const schema = schemas.find((schema2) => getObjectAnnotation(schema2)?.typename === typename);
267
- const options = schemas.map(getObjectAnnotation).filter(nonNullable).sort((a, b) => {
274
+ const options = schemas.map(getObjectAnnotation).filter(isNonNullable).sort((a, b) => {
268
275
  const nameA = t("typename label", {
269
276
  ns: a.typename,
270
277
  defaultValue: a.typename
@@ -875,15 +882,15 @@ import { ComplexMap, keyToFallback } from "@dxos/util";
875
882
 
876
883
  // packages/plugins/plugin-space/src/capabilities/index.ts
877
884
  import { lazy } from "@dxos/app-framework";
878
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-TTM2YZVS.mjs"));
879
- var AppGraphSerializer = lazy(() => import("./app-graph-serializer-ZGM5NDXE.mjs"));
880
- var IdentityCreated = lazy(() => import("./identity-created-VICTPQX7.mjs"));
881
- var IntentResolver = lazy(() => import("./intent-resolver-A5274MUR.mjs"));
882
- var ReactRoot = lazy(() => import("./react-root-N6QTWYCV.mjs"));
883
- var ReactSurface = lazy(() => import("./react-surface-STMNA7W7.mjs"));
884
- var SpaceSettings = lazy(() => import("./settings-HN5UIYQO.mjs"));
885
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-GSS3V7IN.mjs"));
886
+ var AppGraphSerializer = lazy(() => import("./app-graph-serializer-QDXM5M6K.mjs"));
887
+ var IdentityCreated = lazy(() => import("./identity-created-25TK5XNO.mjs"));
888
+ var IntentResolver = lazy(() => import("./intent-resolver-LNTCXZ57.mjs"));
889
+ var ReactRoot = lazy(() => import("./react-root-Q7JJDCPB.mjs"));
890
+ var ReactSurface = lazy(() => import("./react-surface-BDMYLARO.mjs"));
891
+ var SpaceSettings = lazy(() => import("./settings-K4JPYYEM.mjs"));
885
892
  var SpaceState = lazy(() => import("./state-6DCY5YJP.mjs"));
886
- var SpacesReady = lazy(() => import("./spaces-ready-F57ITJDR.mjs"));
893
+ var SpacesReady = lazy(() => import("./spaces-ready-THYJEJYZ.mjs"));
887
894
 
888
895
  // packages/plugins/plugin-space/src/hooks/usePath.ts
889
896
  import { useEffect as useEffect3, useState as useState7 } from "react";
@@ -1091,8 +1098,9 @@ import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata
1091
1098
  import { useClient as useClient6 } from "@dxos/react-client";
1092
1099
  import { Input as Input5, useTranslation as useTranslation17 } from "@dxos/react-ui";
1093
1100
  import { DeprecatedFormContainer as DeprecatedFormContainer2, DeprecatedFormInput as DeprecatedFormInput2 } from "@dxos/react-ui-form";
1101
+ import { HuePickerBlock } from "@dxos/react-ui-pickers";
1094
1102
  var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsPanel.tsx";
1095
- var SpaceSettingsPanel = ({ classNames, space }) => {
1103
+ var SpaceSettingsPanel = ({ space }) => {
1096
1104
  const { t } = useTranslation17(SPACE_PLUGIN);
1097
1105
  const client = useClient6();
1098
1106
  const edgeEnabled = Boolean(client.config.values.runtime?.client?.edgeFeatures?.echoReplicator);
@@ -1102,7 +1110,7 @@ var SpaceSettingsPanel = ({ classNames, space }) => {
1102
1110
  await space?.internal.setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED).catch((err) => {
1103
1111
  log3.catch(err, void 0, {
1104
1112
  F: __dxlog_file3,
1105
- L: 35,
1113
+ L: 36,
1106
1114
  S: void 0,
1107
1115
  C: (f, a) => f(...a)
1108
1116
  });
@@ -1119,6 +1127,12 @@ var SpaceSettingsPanel = ({ classNames, space }) => {
1119
1127
  onChange: (event) => {
1120
1128
  space.properties.name = event.target.value;
1121
1129
  }
1130
+ })), /* @__PURE__ */ React18.createElement(DeprecatedFormInput2, {
1131
+ label: t("hue label")
1132
+ }, /* @__PURE__ */ React18.createElement(HuePickerBlock, {
1133
+ hue: space.properties.hue,
1134
+ onChangeHue: (nextHue) => space.properties.hue = nextHue,
1135
+ onClickClear: () => space.properties.hue = void 0
1122
1136
  })), edgeEnabled && /* @__PURE__ */ React18.createElement(DeprecatedFormInput2, {
1123
1137
  label: t("edge replication label")
1124
1138
  }, /* @__PURE__ */ React18.createElement(Input5.Switch, {
@@ -1712,4 +1726,4 @@ export {
1712
1726
  SpaceState,
1713
1727
  SpacesReady
1714
1728
  };
1715
- //# sourceMappingURL=chunk-2NMUVDMZ.mjs.map
1729
+ //# sourceMappingURL=chunk-DIBLC24B.mjs.map