@dxos/plugin-space 0.8.3 → 0.8.4-main.f9ba587

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 (174) hide show
  1. package/dist/lib/browser/{app-graph-builder-M2RH72VL.mjs → app-graph-builder-PMDF6PJV.mjs} +9 -9
  2. package/dist/lib/browser/{app-graph-builder-M2RH72VL.mjs.map → app-graph-builder-PMDF6PJV.mjs.map} +3 -3
  3. package/dist/lib/browser/{app-graph-serializer-F7ISRRBV.mjs → app-graph-serializer-UKYMBX4O.mjs} +13 -13
  4. package/dist/lib/browser/app-graph-serializer-UKYMBX4O.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-4ZKSFDXM.mjs → chunk-6VLSHG4A.mjs} +10 -10
  6. package/dist/lib/browser/chunk-6VLSHG4A.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-YMCZR6EZ.mjs → chunk-C7KGJTAL.mjs} +3 -3
  8. package/dist/lib/browser/{chunk-PTKYMZWO.mjs → chunk-FBCGT5YY.mjs} +2 -2
  9. package/dist/lib/browser/{chunk-NFUKCRGE.mjs → chunk-GVTXQCIW.mjs} +53 -54
  10. package/dist/lib/browser/chunk-GVTXQCIW.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-TW7O2EPP.mjs → chunk-S6NY637J.mjs} +3 -3
  12. package/dist/lib/browser/{chunk-7Y4M7GXO.mjs → chunk-VLBRSGJ2.mjs} +4 -4
  13. package/dist/lib/browser/{chunk-V24VASAJ.mjs → chunk-WBSEOLEM.mjs} +6 -6
  14. package/dist/lib/browser/chunk-WBSEOLEM.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-BXNL6SDI.mjs → chunk-XXIPJLJF.mjs} +3 -3
  16. package/dist/lib/browser/{identity-created-PI7TKANR.mjs → identity-created-23XJJV2N.mjs} +4 -4
  17. package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +7 -0
  18. package/dist/lib/browser/index.mjs +13 -13
  19. package/dist/lib/browser/index.mjs.map +3 -3
  20. package/dist/lib/browser/{intent-resolver-RWU6ZE4H.mjs → intent-resolver-WK5WYFH3.mjs} +15 -15
  21. package/dist/lib/browser/intent-resolver-WK5WYFH3.mjs.map +7 -0
  22. package/dist/lib/browser/meta.json +1 -1
  23. package/dist/lib/browser/{react-root-QIKHSNT2.mjs → react-root-7S6FIC5G.mjs} +8 -8
  24. package/dist/lib/browser/{react-surface-W56UD53I.mjs → react-surface-6C3YJNDK.mjs} +12 -12
  25. package/dist/lib/browser/react-surface-6C3YJNDK.mjs.map +7 -0
  26. package/dist/lib/browser/{schema-defs-WREJNMIC.mjs → schema-defs-K3B3OAH4.mjs} +4 -4
  27. package/dist/lib/browser/{schema-tools-ILTVSSS3.mjs → schema-tools-BNP4JTD7.mjs} +3 -3
  28. package/dist/lib/browser/{settings-K54STC5A.mjs → settings-XNWYRWNM.mjs} +4 -4
  29. package/dist/lib/browser/{spaces-ready-3PDRDHPC.mjs → spaces-ready-K7NSNBHM.mjs} +7 -7
  30. package/dist/lib/browser/{state-HRZ4VRXU.mjs → state-522XTUR4.mjs} +4 -4
  31. package/dist/lib/browser/types/index.mjs +2 -2
  32. package/dist/lib/node-esm/{app-graph-builder-BCHVZ4OM.mjs → app-graph-builder-TO72W6MI.mjs} +9 -9
  33. package/dist/lib/node-esm/{app-graph-builder-BCHVZ4OM.mjs.map → app-graph-builder-TO72W6MI.mjs.map} +3 -3
  34. package/dist/lib/node-esm/{app-graph-serializer-TXRGGNP2.mjs → app-graph-serializer-LA3IZDXJ.mjs} +13 -13
  35. package/dist/lib/node-esm/app-graph-serializer-LA3IZDXJ.mjs.map +7 -0
  36. package/dist/lib/node-esm/{chunk-D4QMPPS7.mjs → chunk-2THX6G4C.mjs} +3 -3
  37. package/dist/lib/node-esm/{chunk-3CP67AYY.mjs → chunk-72QMMRKC.mjs} +3 -3
  38. package/dist/lib/node-esm/{chunk-BSLREHIX.mjs → chunk-AT7LGFER.mjs} +3 -3
  39. package/dist/lib/node-esm/{chunk-HO7AIKQS.mjs → chunk-HJJHLWKY.mjs} +6 -6
  40. package/dist/lib/node-esm/chunk-HJJHLWKY.mjs.map +7 -0
  41. package/dist/lib/node-esm/{chunk-MSWEFAPD.mjs → chunk-HWNG4MEU.mjs} +2 -2
  42. package/dist/lib/node-esm/{chunk-LA6AVVH6.mjs → chunk-OUBADVJE.mjs} +53 -54
  43. package/dist/lib/node-esm/chunk-OUBADVJE.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-GH2FGJXH.mjs → chunk-SSLBYZEY.mjs} +4 -4
  45. package/dist/lib/node-esm/{chunk-JBQKU4K5.mjs → chunk-SXD6T2N4.mjs} +10 -10
  46. package/dist/lib/node-esm/chunk-SXD6T2N4.mjs.map +7 -0
  47. package/dist/lib/node-esm/{identity-created-35CTAQWI.mjs → identity-created-IJQO6GCR.mjs} +4 -4
  48. package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +7 -0
  49. package/dist/lib/node-esm/index.mjs +13 -13
  50. package/dist/lib/node-esm/index.mjs.map +3 -3
  51. package/dist/lib/node-esm/{intent-resolver-JO6L2VXC.mjs → intent-resolver-HSR27ME4.mjs} +15 -15
  52. package/dist/lib/node-esm/intent-resolver-HSR27ME4.mjs.map +7 -0
  53. package/dist/lib/node-esm/meta.json +1 -1
  54. package/dist/lib/node-esm/{react-root-YFGL3B4J.mjs → react-root-HUK3ANLV.mjs} +8 -8
  55. package/dist/lib/node-esm/{react-surface-CVAPDLEZ.mjs → react-surface-AGAWX7DD.mjs} +12 -12
  56. package/dist/lib/node-esm/react-surface-AGAWX7DD.mjs.map +7 -0
  57. package/dist/lib/node-esm/{schema-defs-4MEJETVX.mjs → schema-defs-4MCDG4DV.mjs} +4 -4
  58. package/dist/lib/node-esm/{schema-tools-SRLCRZ3B.mjs → schema-tools-KWW5PTML.mjs} +3 -3
  59. package/dist/lib/node-esm/{settings-TD76LTQS.mjs → settings-YGKHGFPH.mjs} +4 -4
  60. package/dist/lib/node-esm/{spaces-ready-FJMGPAVV.mjs → spaces-ready-UM2P3DCR.mjs} +7 -7
  61. package/dist/lib/node-esm/{state-XQNDCN37.mjs → state-C4IOXPZP.mjs} +4 -4
  62. package/dist/lib/node-esm/types/index.mjs +2 -2
  63. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  66. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1 -1
  67. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  69. package/dist/types/src/components/MembersContainer.stories.d.ts +1 -1
  70. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  71. package/dist/types/src/components/SpacePresence.stories.d.ts +1 -1
  72. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  73. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1 -1
  74. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  75. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1 -1
  76. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  77. package/dist/types/src/translations.d.ts +151 -410
  78. package/dist/types/src/translations.d.ts.map +1 -1
  79. package/dist/types/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +50 -50
  81. package/src/SpacePlugin.ts +3 -3
  82. package/src/capabilities/app-graph-builder.ts +1 -2
  83. package/src/capabilities/app-graph-serializer.ts +6 -6
  84. package/src/capabilities/identity-created.ts +2 -4
  85. package/src/capabilities/intent-resolver.ts +5 -5
  86. package/src/capabilities/react-surface.tsx +3 -3
  87. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +4 -4
  88. package/src/components/MembersContainer.stories.tsx +4 -4
  89. package/src/components/MembersContainer.tsx +1 -2
  90. package/src/components/SpacePresence.stories.tsx +2 -2
  91. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +2 -2
  92. package/src/components/SyncStatus/SyncStatus.stories.tsx +8 -15
  93. package/src/components/SyncStatus/save-tracker.ts +3 -3
  94. package/src/translations.ts +9 -7
  95. package/src/util.tsx +1 -1
  96. package/dist/lib/browser/app-graph-serializer-F7ISRRBV.mjs.map +0 -7
  97. package/dist/lib/browser/chunk-4ZKSFDXM.mjs.map +0 -7
  98. package/dist/lib/browser/chunk-NFUKCRGE.mjs.map +0 -7
  99. package/dist/lib/browser/chunk-V24VASAJ.mjs.map +0 -7
  100. package/dist/lib/browser/identity-created-PI7TKANR.mjs.map +0 -7
  101. package/dist/lib/browser/intent-resolver-RWU6ZE4H.mjs.map +0 -7
  102. package/dist/lib/browser/react-surface-W56UD53I.mjs.map +0 -7
  103. package/dist/lib/node/app-graph-builder-6LK5HLLE.cjs +0 -364
  104. package/dist/lib/node/app-graph-builder-6LK5HLLE.cjs.map +0 -7
  105. package/dist/lib/node/app-graph-serializer-HKHBNHA3.cjs +0 -89
  106. package/dist/lib/node/app-graph-serializer-HKHBNHA3.cjs.map +0 -7
  107. package/dist/lib/node/chunk-3X4EA4XL.cjs +0 -37
  108. package/dist/lib/node/chunk-3X4EA4XL.cjs.map +0 -7
  109. package/dist/lib/node/chunk-5WLAXYE3.cjs +0 -125
  110. package/dist/lib/node/chunk-5WLAXYE3.cjs.map +0 -7
  111. package/dist/lib/node/chunk-6P2DB4QQ.cjs +0 -36
  112. package/dist/lib/node/chunk-6P2DB4QQ.cjs.map +0 -7
  113. package/dist/lib/node/chunk-DOC5XEZ4.cjs +0 -184
  114. package/dist/lib/node/chunk-DOC5XEZ4.cjs.map +0 -7
  115. package/dist/lib/node/chunk-NCHF433F.cjs +0 -1921
  116. package/dist/lib/node/chunk-NCHF433F.cjs.map +0 -7
  117. package/dist/lib/node/chunk-NL5Y4EDX.cjs +0 -38
  118. package/dist/lib/node/chunk-NL5Y4EDX.cjs.map +0 -7
  119. package/dist/lib/node/chunk-ULJZPATP.cjs +0 -312
  120. package/dist/lib/node/chunk-ULJZPATP.cjs.map +0 -7
  121. package/dist/lib/node/chunk-XHWVT7LW.cjs +0 -572
  122. package/dist/lib/node/chunk-XHWVT7LW.cjs.map +0 -7
  123. package/dist/lib/node/identity-created-FF4WZ2WY.cjs +0 -42
  124. package/dist/lib/node/identity-created-FF4WZ2WY.cjs.map +0 -7
  125. package/dist/lib/node/index.cjs +0 -278
  126. package/dist/lib/node/index.cjs.map +0 -7
  127. package/dist/lib/node/intent-resolver-AV4CMM3Z.cjs +0 -609
  128. package/dist/lib/node/intent-resolver-AV4CMM3Z.cjs.map +0 -7
  129. package/dist/lib/node/meta.json +0 -1
  130. package/dist/lib/node/react-root-RQUU3A45.cjs +0 -51
  131. package/dist/lib/node/react-root-RQUU3A45.cjs.map +0 -7
  132. package/dist/lib/node/react-surface-AZFJLE72.cjs +0 -351
  133. package/dist/lib/node/react-surface-AZFJLE72.cjs.map +0 -7
  134. package/dist/lib/node/schema-defs-OB2X2HBH.cjs +0 -42
  135. package/dist/lib/node/schema-defs-OB2X2HBH.cjs.map +0 -7
  136. package/dist/lib/node/schema-tools-IYREN4IH.cjs +0 -147
  137. package/dist/lib/node/schema-tools-IYREN4IH.cjs.map +0 -7
  138. package/dist/lib/node/settings-P2EQ7VKQ.cjs +0 -38
  139. package/dist/lib/node/settings-P2EQ7VKQ.cjs.map +0 -7
  140. package/dist/lib/node/spaces-ready-DXPOHYV7.cjs +0 -210
  141. package/dist/lib/node/spaces-ready-DXPOHYV7.cjs.map +0 -7
  142. package/dist/lib/node/state-M35DK75Z.cjs +0 -61
  143. package/dist/lib/node/state-M35DK75Z.cjs.map +0 -7
  144. package/dist/lib/node/types/index.cjs +0 -48
  145. package/dist/lib/node/types/index.cjs.map +0 -7
  146. package/dist/lib/node-esm/app-graph-serializer-TXRGGNP2.mjs.map +0 -7
  147. package/dist/lib/node-esm/chunk-HO7AIKQS.mjs.map +0 -7
  148. package/dist/lib/node-esm/chunk-JBQKU4K5.mjs.map +0 -7
  149. package/dist/lib/node-esm/chunk-LA6AVVH6.mjs.map +0 -7
  150. package/dist/lib/node-esm/identity-created-35CTAQWI.mjs.map +0 -7
  151. package/dist/lib/node-esm/intent-resolver-JO6L2VXC.mjs.map +0 -7
  152. package/dist/lib/node-esm/react-surface-CVAPDLEZ.mjs.map +0 -7
  153. /package/dist/lib/browser/{chunk-YMCZR6EZ.mjs.map → chunk-C7KGJTAL.mjs.map} +0 -0
  154. /package/dist/lib/browser/{chunk-PTKYMZWO.mjs.map → chunk-FBCGT5YY.mjs.map} +0 -0
  155. /package/dist/lib/browser/{chunk-TW7O2EPP.mjs.map → chunk-S6NY637J.mjs.map} +0 -0
  156. /package/dist/lib/browser/{chunk-7Y4M7GXO.mjs.map → chunk-VLBRSGJ2.mjs.map} +0 -0
  157. /package/dist/lib/browser/{chunk-BXNL6SDI.mjs.map → chunk-XXIPJLJF.mjs.map} +0 -0
  158. /package/dist/lib/browser/{react-root-QIKHSNT2.mjs.map → react-root-7S6FIC5G.mjs.map} +0 -0
  159. /package/dist/lib/browser/{schema-defs-WREJNMIC.mjs.map → schema-defs-K3B3OAH4.mjs.map} +0 -0
  160. /package/dist/lib/browser/{schema-tools-ILTVSSS3.mjs.map → schema-tools-BNP4JTD7.mjs.map} +0 -0
  161. /package/dist/lib/browser/{settings-K54STC5A.mjs.map → settings-XNWYRWNM.mjs.map} +0 -0
  162. /package/dist/lib/browser/{spaces-ready-3PDRDHPC.mjs.map → spaces-ready-K7NSNBHM.mjs.map} +0 -0
  163. /package/dist/lib/browser/{state-HRZ4VRXU.mjs.map → state-522XTUR4.mjs.map} +0 -0
  164. /package/dist/lib/node-esm/{chunk-D4QMPPS7.mjs.map → chunk-2THX6G4C.mjs.map} +0 -0
  165. /package/dist/lib/node-esm/{chunk-3CP67AYY.mjs.map → chunk-72QMMRKC.mjs.map} +0 -0
  166. /package/dist/lib/node-esm/{chunk-BSLREHIX.mjs.map → chunk-AT7LGFER.mjs.map} +0 -0
  167. /package/dist/lib/node-esm/{chunk-MSWEFAPD.mjs.map → chunk-HWNG4MEU.mjs.map} +0 -0
  168. /package/dist/lib/node-esm/{chunk-GH2FGJXH.mjs.map → chunk-SSLBYZEY.mjs.map} +0 -0
  169. /package/dist/lib/node-esm/{react-root-YFGL3B4J.mjs.map → react-root-HUK3ANLV.mjs.map} +0 -0
  170. /package/dist/lib/node-esm/{schema-defs-4MEJETVX.mjs.map → schema-defs-4MCDG4DV.mjs.map} +0 -0
  171. /package/dist/lib/node-esm/{schema-tools-SRLCRZ3B.mjs.map → schema-tools-KWW5PTML.mjs.map} +0 -0
  172. /package/dist/lib/node-esm/{settings-TD76LTQS.mjs.map → settings-YGKHGFPH.mjs.map} +0 -0
  173. /package/dist/lib/node-esm/{spaces-ready-FJMGPAVV.mjs.map → spaces-ready-UM2P3DCR.mjs.map} +0 -0
  174. /package/dist/lib/node-esm/{state-XQNDCN37.mjs.map → state-C4IOXPZP.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AwaitingObject.tsx", "../../../src/components/CreateDialog/CreateObjectDialog.tsx", "../../../src/components/CreateDialog/CreateObjectPanel.tsx", "../../../src/capabilities/index.ts", "../../../src/components/CreateDialog/CreateSpaceDialog.tsx", "../../../src/components/CollectionMain.tsx", "../../../src/components/CollectionSection.tsx", "../../../src/components/JoinDialog.tsx", "../../../src/components/MembersContainer.tsx", "../../../src/components/MenuFooter.tsx", "../../../src/components/ObjectSettings/ObjectSettingsContainer.tsx", "../../../src/components/ObjectSettings/BaseObjectSettings.tsx", "../../../src/components/PersistenceStatus.tsx", "../../../src/components/PopoverRenameObject.tsx", "../../../src/components/PopoverRenameSpace.tsx", "../../../src/components/SchemaContainer.tsx", "../../../src/components/SpacePresence.tsx", "../../../src/components/SpacePluginSettings.tsx", "../../../src/components/SpaceSettings/SpaceSettingsContainer.tsx", "../../../src/components/SyncStatus/InlineSyncStatus.tsx", "../../../src/components/SyncStatus/SyncStatus.tsx", "../../../src/components/SyncStatus/save-tracker.ts", "../../../src/components/SyncStatus/status.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { CheckCircle, CircleDashed, CircleNotch } from '@phosphor-icons/react';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { createIntent, LayoutAction, useIntentDispatcher, useLayout } from '@dxos/app-framework';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, fullyQualifiedId, useQuery } from '@dxos/react-client/echo';\nimport { Button, Toast, useTranslation } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport { SpaceAction } from '../types';\n\nconst WAIT_FOR_OBJECT_TIMEOUT = 180e3; // 3 minutes\nconst TOAST_TIMEOUT = 240e3; // 4 minutes\n\nexport const AwaitingObject = ({ id }: { id: string }) => {\n const [open, setOpen] = useState(true);\n const [waiting, setWaiting] = useState(true);\n const [found, setFound] = useState(false);\n const { t } = useTranslation(SPACE_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const layout = useLayout();\n\n const client = useClient();\n const objects = useQuery(client.spaces, Filter.everything());\n\n useEffect(() => {\n if (!id) {\n return;\n }\n\n const timeout = setTimeout(() => {\n setWaiting(false);\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n () => clearTimeout(timeout);\n }, [id]);\n\n useEffect(() => {\n if (objects.findIndex((object) => fullyQualifiedId(object) === id) > -1) {\n setFound(true);\n\n if (layout.active.includes(id)) {\n setOpen(false);\n }\n }\n }, [id, objects, layout]);\n\n const handleClose = useCallback(\n async () => dispatch(createIntent(SpaceAction.WaitForObject, { id: undefined })),\n [dispatch],\n );\n\n const handleNavigate = useCallback(() => {\n void dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [id] }));\n void handleClose();\n }, [id, handleClose, dispatch]);\n\n return (\n <Toast.Root open={open} duration={TOAST_TIMEOUT} onOpenChange={setOpen}>\n <Toast.Body>\n <Toast.Title classNames='flex items-center gap-2'>\n {found ? (\n <>\n <CheckCircle className={getSize(5)} />\n <span>{t('found object label')}</span>\n </>\n ) : waiting ? (\n <>\n <CircleNotch className={mx(getSize(5), 'animate-spin')} />\n <span>{t('waiting for object label')}</span>\n </>\n ) : (\n <>\n <CircleDashed className={getSize(5)} />\n <span>{t('object not found label')}</span>\n </>\n )}\n </Toast.Title>\n <Toast.Description>\n {t(\n found\n ? 'found object description'\n : waiting\n ? 'waiting for object description'\n : 'object not found description',\n )}\n </Toast.Description>\n </Toast.Body>\n <Toast.Actions>\n {found ? (\n <>\n <Toast.Action altText={t('go to object alt')} asChild>\n <Button variant='primary' onClick={handleNavigate}>\n {t('go to object label')}\n </Button>\n </Toast.Action>\n <Toast.Close asChild>\n <Button onClick={handleClose}>{t('close label', { ns: 'appkit' })}</Button>\n </Toast.Close>\n </>\n ) : (\n <Toast.Close asChild>\n <Button onClick={handleClose}>{t(waiting ? 'close label' : 'confirm label', { ns: 'appkit' })}</Button>\n </Toast.Close>\n )}\n </Toast.Actions>\n </Toast.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { pipe } from 'effect';\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport {\n Capabilities,\n LayoutAction,\n chain,\n createIntent,\n useCapabilities,\n useIntentDispatcher,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { Query, Type, type Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace, isLiveObject, isSpace, type Space, useQuery, useSpaces } from '@dxos/react-client/echo';\nimport { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';\nimport { cardDialogContent, cardDialogHeader } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { CreateObjectPanel, type CreateObjectPanelProps } from './CreateObjectPanel';\nimport { SpaceCapabilities } from '../../capabilities';\nimport { SPACE_PLUGIN } from '../../meta';\nimport { SpaceAction } from '../../types';\n\nexport const CREATE_OBJECT_DIALOG = `${SPACE_PLUGIN}/CreateObjectDialog`;\n\nexport type CreateObjectDialogProps = Pick<CreateObjectPanelProps, 'target' | 'typename' | 'name'> & {\n shouldNavigate?: (object: Obj.Any) => boolean;\n};\n\nexport const CreateObjectDialog = ({\n target: initialTarget,\n typename: initialTypename,\n name,\n shouldNavigate: _shouldNavigate,\n}: CreateObjectDialogProps) => {\n const closeRef = useRef<HTMLButtonElement | null>(null);\n const manager = usePluginManager();\n const { t } = useTranslation(SPACE_PLUGIN);\n const client = useClient();\n const spaces = useSpaces();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const forms = useCapabilities(SpaceCapabilities.ObjectForm);\n const [target, setTarget] = useState<Space | DataType.Collection | undefined>(initialTarget);\n const [typename, setTypename] = useState<string | undefined>(initialTypename);\n const space = isSpace(target) ? target : getSpace(target);\n const queryCollections = useQuery(space, Query.type(DataType.QueryCollection));\n const hiddenTypenames = queryCollections.map((collection) => collection.query.typename).filter(isNonNullable);\n\n const resolve = useCallback<NonNullable<CreateObjectPanelProps['resolve']>>(\n (typename) =>\n manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},\n [manager],\n );\n\n const handleCreateObject = useCallback<NonNullable<CreateObjectPanelProps['onCreateObject']>>(\n async ({ form, data = {} }) => {\n if (!target) {\n // TODO(wittjosiah): UI feedback.\n return;\n }\n\n // NOTE: Must close before navigating or attention won't follow object.\n closeRef.current?.click();\n\n const space = isSpace(target) ? target : getSpace(target);\n invariant(space, 'Missing space');\n const result = await dispatch(form.getIntent(data, { space }));\n const object = result.data?.object;\n if (isLiveObject(object)) {\n // TODO(wittjosiah): Selection in navtree isn't working as expected when hidden typenames evals to true.\n const hidden = form.hidden || hiddenTypenames.includes(Type.getTypename(form.objectSchema));\n const addObjectIntent = createIntent(SpaceAction.AddObject, { target, object, hidden });\n const shouldNavigate = _shouldNavigate ?? (() => true);\n if (shouldNavigate(object)) {\n await dispatch(pipe(addObjectIntent, chain(LayoutAction.Open, { part: 'main' })));\n } else {\n await dispatch(addObjectIntent);\n }\n }\n },\n [dispatch, target, resolve, hiddenTypenames, _shouldNavigate],\n );\n\n return (\n // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.\n // Consider factoring it out to the tabs package.\n <Dialog.Content classNames={cardDialogContent}>\n <div role='none' className={cardDialogHeader}>\n <Dialog.Title>\n {t('create object dialog title', { object: t('typename label', { ns: typename, defaultValue: 'Item' }) })}\n </Dialog.Title>\n <Dialog.Close asChild>\n <Button ref={closeRef} density='fine' variant='ghost' autoFocus>\n <Icon icon='ph--x--regular' size={4} />\n </Button>\n </Dialog.Close>\n </div>\n\n <CreateObjectPanel\n forms={forms}\n spaces={spaces}\n target={target}\n typename={typename}\n name={name}\n defaultSpaceId={client.spaces.default.id}\n resolve={resolve}\n onTargetChange={setTarget}\n onTypenameChange={setTypename}\n onCreateObject={handleCreateObject}\n />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { Type } from '@dxos/echo';\nimport { getTypeAnnotation, type TypeAnnotation } from '@dxos/echo-schema';\nimport { type SpaceId, type Space } from '@dxos/react-client/echo';\nimport { Icon, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\nimport { SearchList } from '@dxos/react-ui-searchlist';\nimport { cardDialogOverflow, cardDialogPaddedOverflow, cardDialogSearchListRoot } from '@dxos/react-ui-stack';\nimport { type DataType } from '@dxos/schema';\nimport { isNonNullable, type MaybePromise } from '@dxos/util';\n\nimport { useInputSurfaceLookup } from '../../hooks';\nimport { SPACE_PLUGIN } from '../../meta';\nimport { type ObjectForm } from '../../types';\nimport { getSpaceDisplayName } from '../../util';\n\nexport type CreateObjectPanelProps = {\n forms: ObjectForm[];\n spaces: Space[];\n typename?: string;\n target?: Space | DataType.Collection;\n name?: string;\n defaultSpaceId?: SpaceId;\n resolve?: (typename: string) => Record<string, any>;\n onTargetChange?: (target: Space) => void;\n onTypenameChange?: (typename: string) => void;\n onCreateObject?: (params: { form: ObjectForm; data?: Record<string, any> }) => MaybePromise<void>;\n};\n\nexport const CreateObjectPanel = ({\n forms,\n spaces,\n typename,\n target,\n name: initialName,\n defaultSpaceId,\n resolve,\n onTargetChange,\n onTypenameChange,\n onCreateObject,\n}: CreateObjectPanelProps) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const form = forms.find((form) => Type.getTypename(form.objectSchema) === typename);\n const options: TypeAnnotation[] = forms\n .map((form) => getTypeAnnotation(form.objectSchema))\n .filter(isNonNullable)\n .sort((a, b) => {\n const nameA = t('typename label', { ns: a.typename, defaultValue: a.typename });\n const nameB = t('typename label', { ns: b.typename, defaultValue: b.typename });\n return nameA.localeCompare(nameB);\n });\n\n const handleCreateObject = useCallback(\n async (props: Record<string, any>) => {\n if (!form) {\n return;\n }\n await onCreateObject?.({ form, data: props });\n },\n [onCreateObject, form],\n );\n\n const handleSetTypename = useCallback(\n async (typename: string) => {\n const form = forms.find((form) => getTypeAnnotation(form.objectSchema)?.typename === typename);\n if (form && !form.formSchema) {\n await onCreateObject?.({ form });\n } else {\n onTypenameChange?.(typename);\n }\n },\n [forms, onCreateObject],\n );\n\n const inputSurfaceLookup = useInputSurfaceLookup({ target });\n\n // TODO(wittjosiah): These inputs should be rolled into a `Form` once it supports the necessary variants.\n return !form ? (\n <SelectSchema options={options} resolve={resolve} onChange={handleSetTypename} />\n ) : !target ? (\n <SelectSpace spaces={spaces} defaultSpaceId={defaultSpaceId} onChange={onTargetChange} />\n ) : form.formSchema ? (\n <div role='none' className={cardDialogOverflow}>\n <Form\n autoFocus\n values={{ name: initialName }}\n schema={form.formSchema}\n testId='create-object-form'\n onSave={handleCreateObject}\n lookupComponent={inputSurfaceLookup}\n outerSpacing='blockStart-0'\n />\n </div>\n ) : null;\n};\n\nconst SelectSpace = ({\n spaces,\n defaultSpaceId,\n onChange,\n}: { onChange?: (space: Space) => void } & Pick<CreateObjectPanelProps, 'spaces' | 'defaultSpaceId'>) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n\n return (\n <SearchList.Root label={t('space input label')} classNames={cardDialogSearchListRoot}>\n <SearchList.Input\n autoFocus\n data-testid='create-object-form.space-input'\n placeholder={t('space input placeholder')}\n />\n <SearchList.Content classNames={[cardDialogOverflow, 'plb-cardSpacingBlock']}>\n {spaces\n .sort((a, b) => {\n const aName = toLocalizedString(getSpaceDisplayName(a, { personal: a.id === defaultSpaceId }), t);\n const bName = toLocalizedString(getSpaceDisplayName(b, { personal: b.id === defaultSpaceId }), t);\n return aName.localeCompare(bName);\n })\n .map((space) => (\n <SearchList.Item\n key={space.id}\n value={toLocalizedString(getSpaceDisplayName(space, { personal: space.id === defaultSpaceId }), t)}\n onSelect={() => onChange?.(space)}\n classNames='flex items-center gap-2'\n >\n <span className='grow truncate'>\n {toLocalizedString(getSpaceDisplayName(space, { personal: space.id === defaultSpaceId }), t)}\n </span>\n </SearchList.Item>\n ))}\n </SearchList.Content>\n </SearchList.Root>\n );\n};\n\nconst SelectSchema = ({\n options,\n resolve,\n onChange,\n}: {\n options: TypeAnnotation[];\n onChange: (type: string) => void;\n} & Pick<CreateObjectPanelProps, 'resolve'>) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n\n return (\n <SearchList.Root label={t('schema input label')} classNames={cardDialogSearchListRoot}>\n <SearchList.Input\n autoFocus\n data-testid='create-object-form.schema-input'\n placeholder={t('schema input placeholder')}\n />\n <SearchList.Content classNames={cardDialogPaddedOverflow}>\n {options.map((option) => (\n <SearchList.Item\n key={option.typename}\n value={t('typename label', { ns: option.typename, defaultValue: option.typename })}\n onSelect={() => onChange(option.typename)}\n classNames='flex items-center gap-2'\n >\n <span className='flex gap-2 items-center grow truncate'>\n <Icon icon={resolve?.(option.typename).icon ?? 'ph--placeholder--regular'} size={5} />\n {t('typename label', { ns: option.typename, defaultValue: option.typename })}\n </span>\n </SearchList.Item>\n ))}\n </SearchList.Content>\n </SearchList.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const AppGraphSerializer = lazy(() => import('./app-graph-serializer'));\nexport const IdentityCreated = lazy(() => import('./identity-created'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactRoot = lazy(() => import('./react-root'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const SchemaDefs = lazy(() => import('./schema-defs'));\nexport const SchemaTools = lazy(() => import('./schema-tools'));\nexport const SpaceSettings = lazy(() => import('./settings'));\nexport const SpaceState = lazy(() => import('./state'));\nexport const SpacesReady = lazy(() => import('./spaces-ready'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Effect, type Schema } from 'effect';\nimport React, { useCallback, useRef } from 'react';\n\nimport { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\nimport { cardDialogContent, cardDialogHeader } from '@dxos/react-ui-stack';\n\nimport { useInputSurfaceLookup } from '../../hooks';\nimport { SPACE_PLUGIN } from '../../meta';\nimport { SpaceAction, SpaceForm } from '../../types';\n\nexport const CREATE_SPACE_DIALOG = `${SPACE_PLUGIN}/CreateSpaceDialog`;\n\ntype FormValues = Schema.Schema.Type<typeof SpaceForm>;\nconst initialValues: FormValues = { edgeReplication: true };\n\nexport const CreateSpaceDialog = () => {\n const closeRef = useRef<HTMLButtonElement | null>(null);\n const { t } = useTranslation(SPACE_PLUGIN);\n const { dispatch } = useIntentDispatcher();\n\n const inputSurfaceLookup = useInputSurfaceLookup();\n\n const handleCreateSpace = useCallback(\n async (data: FormValues) => {\n const program = Effect.gen(function* () {\n const { space } = yield* dispatch(createIntent(SpaceAction.Create, data));\n yield* dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: space.id }));\n yield* dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));\n });\n await Effect.runPromise(program);\n },\n [dispatch],\n );\n\n return (\n // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.\n // Consider factoring it out to the tabs package.\n <Dialog.Content classNames={cardDialogContent}>\n <div role='none' className={cardDialogHeader}>\n <Dialog.Title>{t('create space dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <Button ref={closeRef} density='fine' variant='ghost' autoFocus>\n <Icon icon='ph--x--regular' size={4} />\n </Button>\n </Dialog.Close>\n </div>\n <div role='none' className='contents'>\n <Form\n testId='create-space-form'\n autoFocus\n values={initialValues}\n schema={SpaceForm}\n lookupComponent={inputSurfaceLookup}\n onSave={handleCreateSpace}\n outerSpacing='scroll-fields'\n />\n </div>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { baseSurface, descriptionMessage, mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\n\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const CollectionMain = ({ collection }: { collection: DataType.Collection }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n\n return (\n <div\n role='none'\n className={mx(baseSurface, 'min-bs-screen is-full flex items-center justify-center p-8')}\n data-testid='composer.firstRunMessage'\n >\n <p\n role='alert'\n className={mx(descriptionMessage, 'rounded-md p-8 font-normal text-lg max-is-[24rem] break-words')}\n >\n {collection.name ?? t('unnamed collection label')}\n </p>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { type DataType } from '@dxos/schema';\n\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const CollectionSection = ({ collection }: { collection: DataType.Collection }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n // TODO(wittjosiah): Better placeholder.\n return (\n <div className='min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center'>\n <span className='truncate'>{collection.name ?? t('unnamed collection label')}</span>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { createIntent, LayoutAction, useAppGraph, useIntentDispatcher } from '@dxos/app-framework';\nimport { Trigger } from '@dxos/async';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { type InvitationResult } from '@dxos/react-client/invitations';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';\n\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const JOIN_DIALOG = `${SPACE_PLUGIN}/JoinDialog`;\n\nexport type JoinDialogProps = JoinPanelProps & {\n navigableCollections?: boolean;\n};\n\nexport const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialogProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const { graph } = useAppGraph();\n const { t } = useTranslation(SPACE_PLUGIN);\n\n const handleDone = useCallback(\n async (result: InvitationResult | null) => {\n const spaceKey = result?.spaceKey;\n if (!spaceKey) {\n return;\n }\n\n await Promise.all([\n dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${SPACE_PLUGIN}/join-success`,\n duration: 5_000,\n title: ['join success label', { ns: SPACE_PLUGIN }],\n closeLabel: ['dismiss label', { ns: SPACE_PLUGIN }],\n },\n }),\n ),\n dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n options: {\n state: false,\n },\n }),\n ),\n ]);\n\n let space = client.spaces.get(spaceKey);\n if (!space) {\n // TODO(wittjosiah): Add api to wait for a space.\n const trigger = new Trigger<Space>();\n client.spaces.subscribe(() => {\n const space = client.spaces.get(spaceKey);\n if (space) {\n trigger.wake(space);\n }\n });\n space = await trigger.wait();\n }\n\n await dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: space.id }));\n\n // TODO(wittjosiah): If navigableCollections is false and there's no target,\n // should try to navigate to the first object of the space replicates.\n // Potentially this could also be done on the inviters side to ensure there's always a target.\n const target = result?.target || (navigableCollections ? space?.id : undefined);\n if (target) {\n // Wait before navigating to the target node.\n // If the target has not yet replicated, this will trigger a loading toast.\n await graph.waitForPath({ target }).catch(() => {});\n await Promise.all([\n dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [target] })),\n dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: target })),\n ]);\n }\n\n await onDone?.(result);\n\n if (space) {\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.join',\n properties: {\n spaceId: space.id,\n },\n }),\n );\n }\n },\n [dispatch, client, graph],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Title classNames='sr-only'>{t('join space label', { ns: 'os' })}</Dialog.Title>\n <JoinPanel\n {...props}\n exitActionParent={<Dialog.Close asChild />}\n doneActionParent={<Dialog.Close asChild />}\n onDone={handleDone}\n />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Check, X } from '@phosphor-icons/react';\nimport React, { type Dispatch, type SetStateAction, useCallback, useMemo, useState } from 'react';\nimport { QR } from 'react-qr-rounded';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { useConfig } from '@dxos/react-client';\nimport { fullyQualifiedId, useSpaceInvitations, type Space } from '@dxos/react-client/echo';\nimport { type CancellableInvitationObservable, Invitation, InvitationEncoder } from '@dxos/react-client/invitations';\nimport { Button, Clipboard, Icon, Input, useId, useTranslation } from '@dxos/react-ui';\nimport { ControlPage, ControlSection, ControlFrame, ControlFrameItem, ControlItemInput } from '@dxos/react-ui-form';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { getSize, mx } from '@dxos/react-ui-theme';\nimport { DataType } from '@dxos/schema';\nimport {\n type ActionMenuItem,\n AuthCode,\n BifurcatedAction,\n Centered,\n Emoji,\n InvitationList,\n SpaceMemberList,\n Viewport,\n} from '@dxos/shell/react';\nimport { hexToEmoji } from '@dxos/util';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport { SpaceAction } from '../types';\nimport { COMPOSER_SPACE_LOCK } from '../util';\n\n// TODO(wittjosiah): Copied from Shell.\nconst activeActionKey = 'dxos:react-shell/space-manager/active-action';\n\nconst handleInvitationEvent = (invitation: Invitation, subscription: ZenObservable.Subscription) => {\n const invitationCode = InvitationEncoder.encode(invitation);\n if (invitation.state === Invitation.State.CONNECTING) {\n log.info(JSON.stringify({ invitationCode, authCode: invitation.authCode }));\n subscription.unsubscribe();\n }\n};\n\nexport const MembersContainer = ({\n space,\n createInvitationUrl,\n}: {\n space: Space;\n createInvitationUrl: (invitationCode: string) => string;\n}) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const config = useConfig();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const invitations = useSpaceInvitations(space.key);\n const visibleInvitations = invitations?.filter(\n (invitation) => ![Invitation.State.CANCELLED].includes(invitation.get().state),\n );\n\n const [activeAction, setInternalActiveAction] = useState(localStorage.getItem(activeActionKey) ?? 'inviteMany');\n\n const setActiveAction = (nextAction: string) => {\n setInternalActiveAction(nextAction);\n localStorage.setItem(activeActionKey, nextAction);\n };\n\n // TODO(wittjosiah): Track which was the most recently viewed object.\n const target = space.properties[DataType.Collection.typename]?.target?.objects[0]?.target;\n\n const locked = space.properties[COMPOSER_SPACE_LOCK];\n const handleChangeLocked = useCallback(() => {\n space.properties[COMPOSER_SPACE_LOCK] = !locked;\n }, [locked, space]);\n\n const inviteActions = useMemo(\n (): Record<string, ActionMenuItem> => ({\n inviteOne: {\n label: t('invite one label', { ns: 'os' }),\n description: t('invite one description', { ns: 'os' }),\n icon: () => <Icon icon='ph--user-plus--regular' size={5} />,\n testId: 'membersContainer.inviteOne',\n onClick: async () => {\n const { data: invitation } = await dispatch(\n createIntent(SpaceAction.Share, {\n space,\n type: Invitation.Type.INTERACTIVE,\n authMethod: Invitation.AuthMethod.SHARED_SECRET,\n multiUse: false,\n target: target && fullyQualifiedId(target),\n }),\n );\n if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {\n const subscription: ZenObservable.Subscription = invitation.subscribe((invitation) =>\n handleInvitationEvent(invitation, subscription),\n );\n }\n },\n },\n inviteMany: {\n label: t('invite many label', { ns: 'os' }),\n description: t('invite many description', { ns: 'os' }),\n icon: () => <Icon icon='ph--users-three--regular' size={5} />,\n testId: 'membersContainer.inviteMany',\n onClick: async () => {\n const { data: invitation } = await dispatch(\n createIntent(SpaceAction.Share, {\n space,\n type: Invitation.Type.DELEGATED,\n authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,\n multiUse: true,\n target: target && fullyQualifiedId(target),\n }),\n );\n if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {\n const subscription: ZenObservable.Subscription = invitation.subscribe((invitation) =>\n handleInvitationEvent(invitation, subscription),\n );\n }\n },\n },\n }),\n [t, space, target],\n );\n\n const [selectedInvitation, setSelectedInvitation] = useState<CancellableInvitationObservable | null>(null);\n const handleSend = (event: { type: 'selectInvitation'; invitation: CancellableInvitationObservable }) => {\n setSelectedInvitation(event.invitation);\n };\n const handleBack = () => {\n setSelectedInvitation(null);\n };\n\n return (\n <Clipboard.Provider>\n <StackItem.Content classNames='block overflow-y-auto'>\n <ControlPage>\n <ControlSection title={t('members verbose label')} description={t('members description')}>\n <ControlFrame>\n <ControlFrameItem title={t('members label')}>\n <SpaceMemberList spaceKey={space.key} includeSelf />\n </ControlFrameItem>\n {locked && (\n <ControlFrameItem title={t('invitations label')}>\n <p className='text-description mbe-2'>{t('locked space description')}</p>\n </ControlFrameItem>\n )}\n {!locked && (\n <ControlFrameItem title={t('invitations label')}>\n {selectedInvitation && <InvitationSection {...selectedInvitation} onBack={handleBack} />}\n {!selectedInvitation && (\n <>\n <p className='text-description mbe-2'>{t('space invitation description')}</p>\n <InvitationList\n className='mb-2'\n send={handleSend}\n invitations={visibleInvitations ?? []}\n onClickRemove={(invitation) => invitation.cancel()}\n createInvitationUrl={createInvitationUrl}\n />\n <BifurcatedAction\n actions={inviteActions}\n activeAction={activeAction}\n onChangeActiveAction={setActiveAction as Dispatch<SetStateAction<string>>}\n data-testid='membersContainer.createInvitation'\n />\n </>\n )}\n </ControlFrameItem>\n )}\n </ControlFrame>\n {/* TODO(wittjosiah): Make ControlItemInput & ControlFrame compatible. */}\n <div className='justify-center gap-4 p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]'>\n <ControlItemInput title={t('space locked label')} description={t('space locked description')}>\n <Input.Switch checked={locked} onCheckedChange={handleChangeLocked} classNames='justify-self-end' />\n </ControlItemInput>\n </div>\n </ControlSection>\n </ControlPage>\n </StackItem.Content>\n </Clipboard.Provider>\n );\n};\n\n// TODO(wittjosiah): Reconcile the below components with DevicesContainer in @dxos/plugin-client.\n\ntype InvitationComponentProps = Partial<\n Pick<Invitation, 'authCode' | 'invitationId'> & {\n state: Invitation.State;\n url: string;\n onBack: () => void;\n }\n>;\n\nconst InvitationSection = ({\n state = Invitation.State.INIT,\n authCode,\n invitationId = 'never',\n url = 'never',\n onBack,\n}: InvitationComponentProps) => {\n const activeView =\n state < 0\n ? 'init'\n : state >= Invitation.State.CANCELLED\n ? 'complete'\n : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode\n ? 'auth-code'\n : 'qr-code';\n return (\n <Viewport.Root activeView={activeView}>\n <Viewport.Views>\n <Viewport.View id='init'>\n {/* This view intentionally left blank while conditionally rendering the viewport. */}\n </Viewport.View>\n <Viewport.View id='complete'>\n <InvitationComplete statusValue={state} />\n </Viewport.View>\n <Viewport.View id='auth-code'>\n <InvitationAuthCode id={invitationId} code={authCode ?? 'never'} onCancel={onBack} />\n </Viewport.View>\n <Viewport.View id='qr-code'>\n <InvitationQR id={invitationId} url={url} onCancel={onBack} />\n </Viewport.View>\n </Viewport.Views>\n </Viewport.Root>\n );\n};\n\nconst InvitationQR = ({ id, url, onCancel }: { id: string; url: string; onCancel?: () => void }) => {\n const { t } = useTranslation('os');\n const qrLabel = useId('members-container__qr-code');\n const emoji = hexToEmoji(id);\n return (\n <>\n <p className='text-description'>{t('qr code description', { ns: SPACE_PLUGIN })}</p>\n <div role='group' className='grid grid-cols-[1fr_min-content] mlb-2 gap-2'>\n <div role='none' className='is-full aspect-square relative text-description'>\n <QR\n rounding={100}\n backgroundColor='transparent'\n color='currentColor'\n aria-labelledby={qrLabel}\n errorCorrectionLevel='Q'\n cutout={true}\n >\n {url ?? 'never'}\n </QR>\n <Centered>\n <Emoji text={emoji} />\n </Centered>\n </div>\n <span id={qrLabel} className='sr-only'>\n {t('qr label')}\n </span>\n <Clipboard.Button value={url ?? 'never'} />\n </div>\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </>\n );\n};\n\nconst InvitationAuthCode = ({ id, code, onCancel }: { id: string; code: string; onCancel?: () => void }) => {\n const { t } = useTranslation('os');\n const emoji = hexToEmoji(id);\n\n return (\n <>\n <p className='text-description'>{t('auth other device emoji message')}</p>\n {emoji && <Emoji text={emoji} className='mli-auto mlb-2 text-center' />}\n <p className='text-description'>{t('auth code message')}</p>\n <AuthCode code={code} large classNames='mli-auto mlb-2 text-center grow' />\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </>\n );\n};\n\nconst InvitationComplete = ({ statusValue }: { statusValue: number }) => {\n return statusValue > 0 ? <Check className={mx('m-1.5', getSize(6))} /> : <X className={mx('m-1.5', getSize(6))} />;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Planet } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { getSpace } from '@dxos/client/echo';\nimport { type Obj } from '@dxos/echo';\nimport { useClient } from '@dxos/react-client';\nimport { DropdownMenu, toLocalizedString, useTranslation } from '@dxos/react-ui';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport { getSpaceDisplayName } from '../util';\n\nexport const MenuFooter = ({ object }: { object: Obj.Any }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const client = useClient();\n const space = getSpace(object);\n const spaceName = space ? getSpaceDisplayName(space, { personal: client.spaces.default === space }) : '';\n return space ? (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.GroupLabel>{t('menu footer label')}</DropdownMenu.GroupLabel>\n <dl className='pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2'>\n <dt className='uppercase text-[.75em] tracking-wide font-medium mbs-px self-start'>{t('location label')}</dt>\n <dd className='line-clamp-3'>\n <Planet className='inline-block mie-1' />\n {toLocalizedString(spaceName, t)}\n </dd>\n </dl>\n </>\n ) : null;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Surface } from '@dxos/app-framework';\nimport { type Obj } from '@dxos/echo';\nimport { Clipboard } from '@dxos/react-ui';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { BaseObjectSettings } from './BaseObjectSettings';\n\nexport type ObjectSettingsContainerProps = {\n object: Obj.Any;\n role: string;\n};\n\nexport const ObjectSettingsContainer = ({ object, role }: ObjectSettingsContainerProps) => {\n const data = useMemo(() => ({ subject: object }), [object]);\n\n return (\n <Clipboard.Provider>\n <StackItem.Content toolbar={false}>\n <div role='none' className='overflow-y-auto pli-cardSpacingInline plb-cardSpacingBlock'>\n <BaseObjectSettings object={object}>\n <Surface role='base-object-settings' data={data} />\n </BaseObjectSettings>\n <Surface role='object-settings' data={data} />\n {/* TODO(wittjosiah): Remove? */}\n {/* <AdvancedObjectSettings object={object} /> */}\n </div>\n </StackItem.Content>\n </Clipboard.Provider>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type PropsWithChildren, useRef } from 'react';\n\nimport { type Obj } from '@dxos/echo';\nimport { Input, type ThemedClassName, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../../meta';\n\nexport type BaseObjectSettingsProps = ThemedClassName<\n PropsWithChildren<{\n object: Obj.Any;\n }>\n>;\n\nexport const BaseObjectSettings = ({ classNames, children, object }: BaseObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const inputRef = useRef<HTMLInputElement>(null);\n\n // TODO(wittjosiah): This should be a form based on the schema of the object.\n // The form should only include fields with a specific settings annotation.\n // Perhaps also including the field of the title annotation as well.\n return (\n <>\n <Input.Root>\n <Input.Label>{t('name label')}</Input.Label>\n <Input.TextInput\n ref={inputRef}\n placeholder={t('name placeholder')}\n // TODO(burdon): Use annotation to get the name field.\n value={(object as any).name ?? ''}\n onChange={(event) => {\n (object as any).name = event.target.value;\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n inputRef.current?.blur();\n }\n }}\n />\n </Input.Root>\n {children}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ArrowsCounterClockwise, CheckCircle, Warning } from '@phosphor-icons/react';\nimport React, { useEffect, useState } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { type EchoDatabase } from '@dxos/react-client/echo';\nimport { Tooltip, useTranslation } from '@dxos/react-ui';\nimport { getSize, mx, staticPlaceholderText, warningText } from '@dxos/react-ui-theme';\n\nimport { SPACE_PLUGIN } from '../meta';\n\nenum Status {\n PERSISTED_LOCALLY = 0,\n PENDING = 1,\n ERROR = 2,\n}\n\n// TODO(zan): This now has no usages. Remove it?\nexport const PersistenceStatus = ({ db }: { db: EchoDatabase }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const [displayMessage, setDisplayMessage] = useState(false);\n const [status, naturalSetStatus] = useState<Status>(Status.PERSISTED_LOCALLY);\n const [prevStatus, setPrevStatus] = useState<Status>(Status.PERSISTED_LOCALLY);\n const _setStatus = debounce(naturalSetStatus, 500);\n\n // TODO(dmaretskyi): Fix this when we have save status for automerge.\n // useEffect(() => {\n // return db.pendingBatch.on(({ duration, error }) => {\n // if (error) {\n // setStatus(Status.ERROR);\n // } else if (duration === undefined) {\n // setStatus(Status.PENDING);\n // } else {\n // setStatus(Status.PERSISTED_LOCALLY);\n // }\n // });\n // }, [db]);\n\n useEffect(() => {\n // If this is changed outside the effect it's batched with setStatus and the following condition will never be true.\n setPrevStatus(status);\n\n if (prevStatus !== status && status === Status.PERSISTED_LOCALLY) {\n setDisplayMessage(true);\n const timeout = setTimeout(() => setDisplayMessage(false), 5000);\n return () => clearTimeout(timeout);\n }\n }, [status]); // `prevStatus` omitted from dependency array to prevent timeout from being reset.\n\n switch (status) {\n case Status.ERROR:\n return (\n <div className='flex items-center'>\n <Warning className={mx(getSize(4), 'me-1')} />\n <span className={mx('text-sm', warningText)}>{t('persistence error label')}</span>\n </div>\n );\n case Status.PENDING:\n return (\n <div className='flex items-center'>\n <ArrowsCounterClockwise className={mx(getSize(4), 'me-1')} />\n <span className={mx('text-sm', staticPlaceholderText)}>{t('persistence pending label')}</span>\n </div>\n );\n case Status.PERSISTED_LOCALLY:\n default:\n return (\n <Tooltip.Trigger\n delayDuration={400}\n role='status'\n content={t('persisted locally message')}\n className='flex items-center'\n >\n <CheckCircle className={mx(getSize(4), 'me-1')} />\n {displayMessage && (\n <span className={mx('text-sm', staticPlaceholderText)}>{t('persisted locally label')}</span>\n )}\n </Tooltip.Trigger>\n );\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { type Live } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { Button, Input, useTranslation } from '@dxos/react-ui';\n\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const POPOVER_RENAME_OBJECT = `${SPACE_PLUGIN}/PopoverRenameObject`;\n\nexport const PopoverRenameObject = ({ object: obj }: { object: Live<any> }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const doneButton = useRef<HTMLButtonElement>(null);\n // TODO(wittjosiah): Use schema here.\n const object = obj as any;\n // TODO(burdon): Field should not be hardcoded field.\n const [name, setName] = useState(object.name || object.title || '');\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleDone = useCallback(() => {\n try {\n object.name = name;\n } catch {\n try {\n object.title = name;\n } catch (err) {\n log.error('Failed to rename object', { err });\n }\n }\n void dispatch(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n options: { variant: 'react', anchorId: '', state: false },\n }),\n );\n }, [object, name]);\n\n return (\n <div role='none' className='p-2 flex gap-2'>\n <div role='none' className='flex-1'>\n <Input.Root>\n <Input.Label srOnly>{t('object name label')}</Input.Label>\n <Input.TextInput\n placeholder={t('object placeholder')}\n value={name}\n data-testid='spacePlugin.renameObject.input'\n onChange={({ target: { value } }) => setName(value)}\n onKeyDown={({ key }) => key === 'Enter' && doneButton.current?.click()}\n />\n </Input.Root>\n </div>\n <Button ref={doneButton} classNames='self-stretch' onClick={handleDone}>\n {t('done label', { ns: 'os' })}\n </Button>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { type Space } from '@dxos/react-client/echo';\nimport { Button, Input, Popover, useTranslation } from '@dxos/react-ui';\n\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const POPOVER_RENAME_SPACE = `${SPACE_PLUGIN}/PopoverRenameSpace`;\n\nexport const PopoverRenameSpace = ({ space }: { space: Space }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const doneButton = useRef<HTMLButtonElement>(null);\n const [name, setName] = useState(space.properties.name ?? '');\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleDone = useCallback(() => {\n space.properties.name = name;\n void dispatch(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n options: { variant: 'react', anchorId: '', state: false },\n }),\n );\n }, [space, name]);\n\n // TODO(thure): Why does the input value need to be uncontrolled to work?\n return (\n <div role='none' className='p-2 flex gap-2'>\n <div role='none' className='flex-1'>\n <Input.Root>\n <Input.Label srOnly>{t('space name label')}</Input.Label>\n <Input.TextInput\n defaultValue={space.properties.name ?? ''}\n placeholder={t('unnamed space label')}\n onChange={({ target: { value } }) => setName(value)}\n // TODO(wittjosiah): Ideally this should access the popover context to close the popover.\n // Currently this is not possible because Radix does not expose the popover context.\n onKeyDown={({ key }) => key === 'Enter' && doneButton.current?.click()}\n />\n </Input.Root>\n </div>\n <Popover.Close asChild>\n <Button ref={doneButton} classNames='self-stretch' onClick={handleDone}>\n {t('done label', { ns: 'os' })}\n </Button>\n </Popover.Close>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useState, useEffect } from 'react';\n\nimport { type Type } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { controlItemClasses, ControlPage, ControlSection } from '@dxos/react-ui-form';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { SPACE_PLUGIN } from '../meta';\n\ntype SchemaPanelProps = { space: Space };\n\n// TODO(ZaymonFC):\n// - Support deleting Schema. This should tie in to some sort of\n// 'DangerZone™️' / 'Are you really sure?' / 'this might have consequences' component.\n\n/**\n * Subscribe to and retrieve all schemas from a space's schema registry.\n */\nexport const useQuerySpaceSchemas = (space: Space): Type.Schema[] => {\n const [schemas, setSchemas] = useState<Type.Schema[]>([]);\n\n useEffect(() => {\n const query = space.db.schemaRegistry.query();\n const initialResults = query.runSync();\n setSchemas(initialResults);\n\n const unsubscribe = query.subscribe(() => setSchemas(query.results));\n return () => unsubscribe();\n }, [space]);\n\n return schemas;\n};\n\nexport const SchemaContainer = ({ space }: SchemaPanelProps) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const schemas = useQuerySpaceSchemas(space);\n\n return (\n <StackItem.Content classNames='block overflow-y-auto'>\n <ControlPage>\n <ControlSection title={t('schema verbose label')} description={t('schema description')}>\n <div role='none' className={controlItemClasses}>\n {schemas.length === 0 && <div className='text-center plb-4'>{t('no schemas found message')}</div>}\n {schemas.map((schema) => (\n <div key={schema.id}>\n <div>{schema.typename}</div>\n </div>\n ))}\n </div>\n </ControlSection>\n </ControlPage>\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Option } from 'effect';\nimport React, { forwardRef, useCallback, useEffect, useState } from 'react';\n\nimport { useAppGraph, useCapability } from '@dxos/app-framework';\nimport { generateName } from '@dxos/display-name';\nimport { type Type } from '@dxos/echo';\nimport { PublicKey, useClient } from '@dxos/react-client';\nimport { getSpace, useMembers, type SpaceMember, fullyQualifiedId } from '@dxos/react-client/echo';\nimport { type Identity, useIdentity } from '@dxos/react-client/halo';\nimport {\n Avatar,\n type AvatarContentProps,\n type Size,\n type ThemedClassName,\n Tooltip,\n Popover,\n useTranslation,\n List,\n ListItem,\n useDefaultValue,\n type DxAvatar,\n} from '@dxos/react-ui';\nimport { AttentionGlyph, useAttended, useAttention, type AttentionGlyphProps } from '@dxos/react-ui-attention';\nimport { ComplexMap, keyToFallback } from '@dxos/util';\n\nimport { SpaceCapabilities } from '../capabilities';\nimport { usePath } from '../hooks';\nimport { SPACE_PLUGIN } from '../meta';\nimport type { ObjectViewerProps } from '../types';\n\n// TODO(thure): Get/derive these values from protocol\nconst REFRESH_INTERVAL = 5000;\nconst ACTIVITY_DURATION = 30_000;\n\n// TODO(thure): This is chiefly meant to satisfy TS & provide an empty map after `deepSignal` interactions.\nconst noViewers = new ComplexMap<PublicKey, ObjectViewerProps>(PublicKey.hash);\n\n// TODO(wittjosiah): Factor out?\nconst getName = (identity: Identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());\n\nexport const SpacePresence = ({ object, spaceKey }: { object: Type.Expando; spaceKey?: PublicKey }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const spaceState = useCapability(SpaceCapabilities.MutableState);\n const client = useClient();\n const identity = useIdentity();\n const space = spaceKey ? client.spaces.get(spaceKey) : getSpace(object);\n const spaceMembers = useMembers(space?.key);\n\n const [_moment, setMoment] = useState(Date.now());\n\n // NOTE(thure): This is necessary so Presence updates without any underlying data updating.\n useEffect(() => {\n const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);\n return () => clearInterval(interval);\n }, []);\n\n const memberOnline = useCallback((member: SpaceMember) => member.presence === 1, []);\n const memberIsNotSelf = useCallback(\n (member: SpaceMember) => !identity?.identityKey.equals(member.identity.identityKey),\n [identity?.identityKey],\n );\n\n // TODO(thure): Could it be a smell to return early when there are interactions with `deepSignal` later, since it\n // prevents reactivity?\n if (!identity || !spaceState || !space) {\n return null;\n }\n\n const currentObjectViewers = spaceState.viewersByObject[fullyQualifiedId(object)] ?? noViewers;\n\n const membersForObject = spaceMembers\n .filter((member) => memberOnline(member) && memberIsNotSelf(member))\n .filter((member) => currentObjectViewers.has(member.identity.identityKey))\n .map((member) => {\n const objectView = currentObjectViewers.get(member.identity.identityKey);\n const lastSeen = objectView?.lastSeen ?? -Infinity;\n const currentlyAttended = objectView?.currentlyAttended ?? false;\n\n return {\n ...member,\n currentlyAttended,\n lastSeen,\n };\n })\n .toSorted((a, b) => a.lastSeen - b.lastSeen);\n\n return <FullPresence members={membersForObject} />;\n};\n\nexport type Member = SpaceMember & {\n /**\n * Last time a member was seen on this object.\n */\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type MemberPresenceProps = ThemedClassName<{\n size?: Size;\n members?: Member[];\n showCount?: boolean;\n onMemberClick?: (member: Member) => void;\n}>;\n\nexport const FullPresence = (props: MemberPresenceProps) => {\n const { size = 9, onMemberClick } = props;\n const members = useDefaultValue(props.members, () => []);\n\n if (members.length === 0) {\n return null;\n }\n\n return (\n <div className='dx-avatar-group' data-testid='spacePlugin.presence'>\n {members.slice(0, 3).map((member, i) => (\n <Tooltip.Trigger\n key={member.identity.identityKey.toHex()}\n side='bottom'\n content={getName(member.identity)}\n className='grid focus:outline-none'\n >\n <PresenceAvatar\n identity={member.identity}\n match={member.currentlyAttended} // TODO(Zan): Match always true now we're showing 'members viewing current object'.\n index={members.length - i}\n onClick={() => onMemberClick?.(member)}\n size={size}\n />\n </Tooltip.Trigger>\n ))}\n\n {members.length > 3 && (\n <Popover.Root>\n <Popover.Trigger className='grid focus:outline-none'>\n <Avatar.Root>\n {/* TODO(wittjosiah): Make text fit. */}\n <Avatar.Content\n status='inactive'\n style={{ zIndex: members.length - 4 }}\n fallback={`+${members.length - 3}`}\n size={size}\n />\n </Avatar.Root>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content side='bottom'>\n <Popover.Arrow />\n <Popover.Viewport classNames='max-bs-56'>\n <List>\n {members.map((member) => (\n <ListItem.Root\n key={member.identity.identityKey.toHex()}\n classNames='flex gap-2 items-center cursor-pointer mbe-2'\n onClick={() => onMemberClick?.(member)}\n data-testid='identity-list-item'\n >\n {/* TODO(Zan): Match always true now we're showing 'members viewing current object'. */}\n <PresenceAvatar\n identity={member.identity}\n size={size}\n showName\n match={member.currentlyAttended}\n />\n </ListItem.Root>\n ))}\n </List>\n </Popover.Viewport>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )}\n </div>\n );\n};\n\ntype PresenceAvatarProps = Pick<AvatarContentProps, 'size'> & {\n identity: Identity;\n showName?: boolean;\n match?: boolean;\n index?: number;\n onClick?: () => void;\n};\n\nconst PresenceAvatar = forwardRef<DxAvatar, PresenceAvatarProps>(\n ({ identity, showName, match, index, onClick, size }, forwardedRef) => {\n const status = match ? 'current' : 'active';\n const fallbackValue = keyToFallback(identity.identityKey);\n return (\n <Avatar.Root>\n <Avatar.Content\n status={status}\n hue={identity.profile?.data?.hue || fallbackValue.hue}\n data-testid='spacePlugin.presence.member'\n data-status={status}\n size={size}\n {...(index ? { style: { zIndex: index } } : {})}\n onClick={onClick}\n fallback={identity.profile?.data?.emoji || fallbackValue.emoji}\n ref={forwardedRef}\n />\n <Avatar.Label classNames={showName ? 'text-sm truncate pli-2' : 'sr-only'}>{getName(identity)}</Avatar.Label>\n </Avatar.Root>\n );\n },\n);\n\nexport type SmallPresenceLiveProps = {\n id?: string;\n open?: boolean;\n viewers?: ComplexMap<PublicKey, ObjectViewerProps>;\n};\n\nexport const SmallPresenceLive = ({ id, open, viewers }: SmallPresenceLiveProps) => {\n const { hasAttention, isAncestor, isRelated } = useAttention(id);\n const isAttended = hasAttention || isAncestor || isRelated;\n\n // TODO(wittjosiah): If the attended node is deep in the graph and the graph is not fully loaded\n // this will result in an empty path until the graph is connected.\n // TODO(wittjosiah): Consider using this indicator for all open nodes instead of just attended.\n const { graph } = useAppGraph();\n const attended = useAttended();\n const startOfAttention = attended.at(-1);\n const path = usePath(graph, startOfAttention);\n const containsAttended = !open && !isAttended && id && Option.isSome(path) ? path.value.includes(id) : false;\n\n const getActiveViewers = (viewers: ComplexMap<PublicKey, ObjectViewerProps>): ObjectViewerProps[] => {\n const moment = Date.now();\n return Array.from<ObjectViewerProps>(viewers.values()).filter(\n (viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION,\n );\n };\n\n const [activeViewers, setActiveViewers] = useState(viewers ? getActiveViewers(viewers) : []);\n\n useEffect(() => {\n if (viewers) {\n setActiveViewers(getActiveViewers(viewers));\n const interval = setInterval(() => {\n setActiveViewers(getActiveViewers(viewers));\n }, REFRESH_INTERVAL);\n return () => clearInterval(interval);\n }\n }, [viewers]);\n\n return <SmallPresence count={activeViewers.length} attended={isAttended} containsAttended={containsAttended} />;\n};\n\nexport type SmallPresenceProps = {\n count?: number;\n} & Pick<AttentionGlyphProps, 'attended' | 'containsAttended'>;\n\nexport const SmallPresence = ({ count = 0, attended, containsAttended }: SmallPresenceProps) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n\n return (\n <Tooltip.Trigger asChild content={t('presence label', { count })} side='bottom'>\n <AttentionGlyph\n attended={attended}\n containsAttended={containsAttended}\n presence={count > 1 ? 'many' : count === 1 ? 'one' : 'none'}\n classNames='self-center mie-1'\n />\n </Tooltip.Trigger>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { useClient } from '@dxos/react-client';\nimport { useSpaces } from '@dxos/react-client/echo';\nimport { Input, toLocalizedString, useTranslation, List, ListItem, IconButton } from '@dxos/react-ui';\nimport { controlItemClasses, ControlPage, ControlSection, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport { SpaceAction, type SpaceSettingsProps } from '../types';\nimport { getSpaceDisplayName } from '../util';\n\nexport const SpacePluginSettings = ({ settings }: { settings: SpaceSettingsProps }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const client = useClient();\n const spaces = useSpaces({ all: settings.showHidden });\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n // TODO(wittjosiah): Migrate to new form container.\n return (\n <ControlPage>\n <ControlSection title={t('space settings label')} description={t('space settings description')}>\n <div className='pli-trimMd container-max-width'>\n <DeprecatedFormInput label={t('show hidden spaces label')}>\n <Input.Switch\n checked={settings.showHidden}\n onCheckedChange={(checked) => (settings.showHidden = !!checked)}\n />\n </DeprecatedFormInput>\n </div>\n <List classNames={[controlItemClasses, 'flex flex-col gap-trimSm']}>\n {spaces.map((space) => (\n <ListItem.Root key={space.id} classNames='is-full items-center'>\n {/* TODO(burdon): Should auto center and truncate; NOTE truncate doesn't work with flex grow. */}\n <ListItem.Heading classNames='grow truncate !min-bs-0'>\n {toLocalizedString(getSpaceDisplayName(space, { personal: space === client.spaces.default }), t)}\n </ListItem.Heading>\n <IconButton\n icon='ph--faders--regular'\n onClick={() => dispatch(createIntent(SpaceAction.OpenSettings, { space }))}\n label={t('open space settings label')}\n />\n </ListItem.Root>\n ))}\n </List>\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { pipe, Schema } from 'effect';\nimport React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';\n\nimport { chain, createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { useClient } from '@dxos/react-client';\nimport { SpaceState, type Space } from '@dxos/react-client/echo';\nimport { Button, Input, useMulticastObservable, useTranslation } from '@dxos/react-ui';\nimport {\n Form,\n type InputComponent,\n ControlItem,\n ControlItemInput,\n ControlSection,\n ControlPage,\n} from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { SPACE_PLUGIN } from '../../meta';\nimport { SpaceAction, SpaceForm } from '../../types';\n\nconst FormSchema = SpaceForm.pipe(\n Schema.extend(Schema.Struct({ archived: Schema.Boolean.annotations({ title: 'Archive space' }) })),\n);\n\nexport type SpaceSettingsContainerProps = {\n space: Space;\n};\n\n// TODO(wittjosiah): Handle space migrations here?\nexport const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const archived = useMulticastObservable(space.state) === SpaceState.SPACE_INACTIVE;\n const [edgeReplication, setEdgeReplication] = useState(\n space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED,\n );\n const toggleEdgeReplication = useCallback(\n async (next: boolean) => {\n setEdgeReplication(next);\n await space?.internal\n .setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED)\n .catch((err: unknown) => {\n log.catch(err);\n setEdgeReplication(!next);\n });\n },\n [space],\n );\n\n const handleSave = useCallback(\n (properties: Schema.Schema.Type<typeof FormSchema>) => {\n void toggleEdgeReplication(properties.edgeReplication);\n if (properties.name !== space.properties.name) {\n space.properties.name = properties.name;\n }\n if (properties.icon !== space.properties.icon) {\n space.properties.icon = properties.icon;\n }\n if (properties.hue !== space.properties.hue) {\n space.properties.hue = properties.hue;\n }\n if (properties.archived && !archived) {\n void dispatch(\n pipe(\n createIntent(SpaceAction.Close, { space }),\n chain(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: client.spaces.default.id }),\n ),\n );\n } else if (!properties.archived && archived) {\n void dispatch(createIntent(SpaceAction.Open, { space }));\n }\n },\n [space, toggleEdgeReplication, archived],\n );\n\n const values = useMemo(\n () => ({\n name: space.properties.name,\n icon: space.properties.icon,\n hue: space.properties.hue,\n edgeReplication,\n archived,\n }),\n [space.properties.name, space.properties.icon, space.properties.hue, edgeReplication, archived],\n );\n\n const customElements: Partial<Record<string, InputComponent>> = useMemo(\n () => ({\n name: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(\n ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onValueChange(type, value),\n [onValueChange, type],\n );\n return (\n <ControlItemInput title={label} description={t('display name description')}>\n <Input.TextInput\n value={getValue()}\n onChange={handleChange}\n placeholder={t('display name input placeholder')}\n classNames='min-is-64'\n />\n </ControlItemInput>\n );\n },\n icon: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextEmoji: string) => onValueChange(type, nextEmoji), [onValueChange, type]);\n const handleEmojiReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);\n return (\n <ControlItem title={label} description={t('icon description')}>\n <IconPicker\n value={getValue()}\n onChange={handleChange}\n onReset={handleEmojiReset}\n classNames='justify-self-end'\n iconSize={5}\n />\n </ControlItem>\n );\n },\n hue: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange, type]);\n const handleHueReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);\n return (\n <ControlItem title={label} description={t('hue description')}>\n <HuePicker\n value={getValue()}\n onChange={handleChange}\n onReset={handleHueReset}\n classNames='[--hue-preview-size:1.25rem] justify-self-end'\n />\n </ControlItem>\n );\n },\n edgeReplication: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((checked: boolean) => onValueChange(type, checked), [onValueChange, type]);\n return (\n <ControlItemInput title={label} description={t('edge replication description')}>\n <Input.Switch checked={getValue()} onCheckedChange={handleChange} classNames='justify-self-end' />\n </ControlItemInput>\n );\n },\n archived: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(() => onValueChange(type, !getValue()), [onValueChange, type, getValue]);\n return (\n <ControlItemInput title={label} description={t('archive space description')}>\n <Button disabled={space === client.spaces.default} onClick={handleChange}>\n {getValue() ? t('unarchive space label') : t('archive space label')}\n </Button>\n </ControlItemInput>\n );\n },\n }),\n [t, space],\n );\n\n return (\n <StackItem.Content classNames='block overflow-y-auto pli-2'>\n <ControlPage>\n <ControlSection\n title={t('space properties settings verbose label', { ns: SPACE_PLUGIN })}\n description={t('space properties settings description', { ns: SPACE_PLUGIN })}\n >\n <Form\n schema={FormSchema}\n values={values}\n autoSave\n onSave={handleSave}\n Custom={customElements}\n outerSpacing={false}\n classNames='container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content] gap-4'\n />\n </ControlSection>\n </ControlPage>\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Option } from 'effect';\nimport React, { useEffect, useState } from 'react';\n\nimport { useAppGraph } from '@dxos/app-framework';\nimport { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { useClient } from '@dxos/react-client';\nimport { type Space, useSpaceSyncState } from '@dxos/react-client/echo';\nimport { Tooltip, useTranslation } from '@dxos/react-ui';\nimport { AttentionGlyph, useAttended, useAttention } from '@dxos/react-ui-attention';\n\nimport { usePath } from '../../hooks';\nimport { SPACE_PLUGIN } from '../../meta';\n\nconst useEdgeStatus = (): EdgeStatus => {\n const [status, setStatus] = useState(EdgeStatus.NOT_CONNECTED);\n const client = useClient();\n useEffect(() => {\n client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status }) => {\n setStatus(status);\n });\n }, [client]);\n\n return status;\n};\n\nexport const InlineSyncStatus = ({ space, open }: { space: Space; open?: boolean }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const id = space.id;\n const { hasAttention, isAncestor, isRelated } = useAttention(id);\n const isAttended = hasAttention || isAncestor || isRelated;\n\n // TODO(wittjosiah): If the attended node is deep in the graph and the graph is not fully loaded\n // this will result in an empty path until the graph is connected.\n // TODO(wittjosiah): Consider using this indicator for all open nodes instead of just attended.\n const { graph } = useAppGraph();\n const attended = useAttended();\n const startOfAttention = attended.at(-1);\n const path = usePath(graph, startOfAttention);\n const containsAttended = !open && !isAttended && id && Option.isSome(path) ? path.value.includes(id) : false;\n\n const connectedToEdge = useEdgeStatus() === EdgeStatus.CONNECTED;\n // TODO(wittjosiah): This is not reactive.\n const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED;\n const syncState = useSpaceSyncState(space);\n const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;\n\n return (\n <Tooltip.Trigger asChild content={t('syncing label')} side='bottom'>\n <AttentionGlyph\n syncing={syncing}\n attended={isAttended}\n containsAttended={containsAttended}\n classNames='self-center mie-1'\n />\n </Tooltip.Trigger>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { StatusBar } from '@dxos/plugin-status-bar';\nimport { useClient } from '@dxos/react-client';\nimport { getSyncSummary, type SpaceSyncStateMap, useSyncState } from '@dxos/react-client/echo';\nimport { Icon, useTranslation } from '@dxos/react-ui';\n\nimport { createClientSaveTracker } from './save-tracker';\nimport { getIcon, getStatus } from './status';\nimport { SPACE_PLUGIN } from '../../meta';\n\nconst SYNC_STALLED_TIMEOUT = 5_000;\n\nexport const SyncStatus = () => {\n const client = useClient();\n const state = useSyncState();\n const [saved, setSaved] = useState(true);\n\n useEffect(() => {\n return createClientSaveTracker(client, (state) => {\n setSaved(state === 'saved');\n });\n }, []);\n\n return <SyncStatusIndicator state={state} saved={saved} />;\n};\n\nexport const SyncStatusIndicator = ({ state, saved }: { state: SpaceSyncStateMap; saved: Boolean }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const summary = getSyncSummary(state);\n const offline = Object.values(state).length === 0;\n const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;\n const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;\n const status = getStatus({ offline, saved, needsToUpload, needsToDownload });\n\n const [classNames, setClassNames] = useState<string>();\n useEffect(() => {\n setClassNames(undefined);\n if (offline || (!needsToUpload && !needsToDownload)) {\n return;\n }\n\n const t = setTimeout(() => {\n // TODO(wittjosiah): Use semantic color tokens.\n setClassNames('text-orange-500');\n }, SYNC_STALLED_TIMEOUT);\n return () => clearTimeout(t);\n }, [offline, needsToUpload, needsToDownload]);\n\n const title = t(`${status} label`);\n const icon = <Icon icon={getIcon(status)} size={4} classNames={classNames} />;\n\n return <StatusBar.Item title={title}>{icon}</StatusBar.Item>;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type CleanupFn } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space, type SpaceId } from '@dxos/client/echo';\nimport { Context } from '@dxos/context';\n\nexport const createClientSaveTracker = (client: Client, cb: (state: 'saved' | 'saving') => void) => {\n const CleanupFns: Record<SpaceId, CleanupFn> = {};\n const state: Record<SpaceId, 'saved' | 'saving'> = {};\n\n const install = (spaces: Space[]) => {\n for (const space of spaces) {\n if (state[space.id]) {\n continue;\n }\n\n state[space.id] = 'saved';\n CleanupFns[space.id] = createSpaceSaveTracker(space, (s) => {\n state[space.id] = s;\n cb(Object.values(state).some((s) => s === 'saving') ? 'saving' : 'saved');\n });\n }\n };\n client.spaces.subscribe((spaces) => {\n install(spaces);\n });\n install(client.spaces.get());\n\n return () => {\n for (const unsubscribe of Object.values(CleanupFns)) {\n unsubscribe();\n }\n };\n};\n\nconst createSpaceSaveTracker = (space: Space, cb: (state: 'saved' | 'saving') => void): CleanupFn => {\n const ctx = new Context();\n\n void space.waitUntilReady().then(() => {\n if (ctx.disposed) {\n return;\n }\n\n let hasUnsavedChanges = false;\n let lastFlushPromise: Promise<void> | undefined;\n space.db.saveStateChanged.on(ctx, ({ unsavedDocuments }) => {\n hasUnsavedChanges = unsavedDocuments.length > 0;\n });\n space.db.saveStateChanged.debounce(500).on(ctx, () => {\n if (hasUnsavedChanges) {\n lastFlushPromise = undefined;\n cb('saving');\n } else {\n const flushPromise = space.db.flush();\n lastFlushPromise = flushPromise;\n void flushPromise.then(() => {\n if (lastFlushPromise === flushPromise) {\n cb('saved');\n }\n });\n }\n });\n });\n\n return () => {\n void ctx.dispose();\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport type Status = 'saving locally' | 'downloading' | 'uploading' | 'offline persisted' | 'remote synced';\n\nexport const getStatus = ({\n offline,\n saved,\n needsToUpload,\n needsToDownload,\n}: {\n offline: Boolean;\n saved: Boolean;\n needsToUpload: Boolean;\n needsToDownload: Boolean;\n}): Status => {\n if (!saved) {\n return 'saving locally';\n } else if (!offline && needsToDownload) {\n return 'downloading';\n } else if (!offline && needsToUpload) {\n return 'uploading';\n } else if (offline && !needsToUpload && !needsToDownload) {\n return 'offline persisted';\n } else {\n return 'remote synced';\n }\n};\n\nexport const getIcon = (status: Status) => {\n switch (status) {\n case 'saving locally':\n return 'ph--download--regular';\n case 'downloading':\n return 'ph--cloud-arrow-down--regular';\n case 'uploading':\n return 'ph--cloud-arrow-up--regular';\n case 'offline persisted':\n return 'ph--check-circle--regular';\n case 'remote synced':\n return 'ph--cloud-check--regular';\n }\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["CheckCircle", "CircleDashed", "CircleNotch", "React", "useCallback", "useEffect", "useState", "createIntent", "LayoutAction", "useIntentDispatcher", "useLayout", "useClient", "Filter", "fullyQualifiedId", "useQuery", "Button", "Toast", "useTranslation", "getSize", "mx", "WAIT_FOR_OBJECT_TIMEOUT", "TOAST_TIMEOUT", "AwaitingObject", "id", "open", "setOpen", "useState", "waiting", "setWaiting", "found", "setFound", "t", "useTranslation", "SPACE_PLUGIN", "dispatchPromise", "dispatch", "useIntentDispatcher", "layout", "useLayout", "client", "useClient", "objects", "useQuery", "spaces", "Filter", "everything", "useEffect", "timeout", "setTimeout", "clearTimeout", "findIndex", "object", "fullyQualifiedId", "active", "includes", "handleClose", "useCallback", "createIntent", "SpaceAction", "WaitForObject", "undefined", "handleNavigate", "LayoutAction", "Open", "part", "subject", "Toast", "Root", "duration", "onOpenChange", "Body", "Title", "classNames", "CheckCircle", "className", "getSize", "span", "CircleNotch", "mx", "CircleDashed", "Description", "Actions", "Action", "altText", "asChild", "Button", "variant", "onClick", "Close", "ns", "pipe", "React", "useCallback", "useRef", "useState", "Capabilities", "LayoutAction", "chain", "createIntent", "useCapabilities", "useIntentDispatcher", "usePluginManager", "Query", "Type", "invariant", "useClient", "getSpace", "isLiveObject", "isSpace", "useQuery", "useSpaces", "Button", "Dialog", "Icon", "useTranslation", "cardDialogContent", "cardDialogHeader", "DataType", "isNonNullable", "React", "useCallback", "Type", "getTypeAnnotation", "Icon", "toLocalizedString", "useTranslation", "Form", "SearchList", "cardDialogOverflow", "cardDialogPaddedOverflow", "cardDialogSearchListRoot", "isNonNullable", "CreateObjectPanel", "forms", "spaces", "typename", "target", "name", "initialName", "defaultSpaceId", "resolve", "onTargetChange", "onTypenameChange", "onCreateObject", "t", "useTranslation", "SPACE_PLUGIN", "form", "find", "Type", "getTypename", "objectSchema", "options", "map", "getTypeAnnotation", "filter", "isNonNullable", "sort", "a", "b", "nameA", "ns", "defaultValue", "nameB", "localeCompare", "handleCreateObject", "useCallback", "props", "data", "handleSetTypename", "formSchema", "inputSurfaceLookup", "useInputSurfaceLookup", "React", "SelectSchema", "onChange", "SelectSpace", "div", "role", "className", "cardDialogOverflow", "Form", "autoFocus", "values", "schema", "testId", "onSave", "lookupComponent", "outerSpacing", "SearchList", "Root", "label", "classNames", "cardDialogSearchListRoot", "Input", "data-testid", "placeholder", "Content", "aName", "toLocalizedString", "getSpaceDisplayName", "personal", "id", "bName", "space", "Item", "key", "value", "onSelect", "span", "cardDialogPaddedOverflow", "option", "Icon", "icon", "size", "lazy", "AppGraphBuilder", "lazy", "AppGraphSerializer", "IdentityCreated", "IntentResolver", "ReactRoot", "ReactSurface", "SchemaDefs", "SchemaTools", "SpaceSettings", "SpaceState", "SpacesReady", "CREATE_OBJECT_DIALOG", "SPACE_PLUGIN", "CreateObjectDialog", "target", "initialTarget", "typename", "initialTypename", "name", "shouldNavigate", "_shouldNavigate", "closeRef", "useRef", "manager", "usePluginManager", "t", "useTranslation", "client", "useClient", "spaces", "useSpaces", "dispatchPromise", "dispatch", "useIntentDispatcher", "forms", "useCapabilities", "SpaceCapabilities", "ObjectForm", "setTarget", "useState", "setTypename", "space", "isSpace", "getSpace", "queryCollections", "useQuery", "Query", "type", "DataType", "QueryCollection", "hiddenTypenames", "map", "collection", "query", "filter", "isNonNullable", "resolve", "useCallback", "context", "getCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "handleCreateObject", "form", "data", "current", "click", "invariant", "result", "getIntent", "object", "isLiveObject", "hidden", "includes", "Type", "getTypename", "objectSchema", "addObjectIntent", "createIntent", "SpaceAction", "AddObject", "pipe", "chain", "LayoutAction", "Open", "part", "React", "Dialog", "Content", "classNames", "cardDialogContent", "div", "role", "className", "cardDialogHeader", "Title", "ns", "defaultValue", "Close", "asChild", "Button", "ref", "density", "variant", "autoFocus", "Icon", "icon", "size", "CreateObjectPanel", "defaultSpaceId", "default", "onTargetChange", "onTypenameChange", "onCreateObject", "Effect", "React", "useCallback", "useRef", "createIntent", "LayoutAction", "useIntentDispatcher", "Button", "Dialog", "Icon", "useTranslation", "Form", "cardDialogContent", "cardDialogHeader", "CREATE_SPACE_DIALOG", "SPACE_PLUGIN", "initialValues", "edgeReplication", "CreateSpaceDialog", "closeRef", "useRef", "t", "useTranslation", "dispatch", "useIntentDispatcher", "inputSurfaceLookup", "useInputSurfaceLookup", "handleCreateSpace", "useCallback", "data", "program", "Effect", "gen", "space", "createIntent", "SpaceAction", "Create", "LayoutAction", "SwitchWorkspace", "part", "subject", "id", "UpdateDialog", "options", "state", "runPromise", "React", "Dialog", "Content", "classNames", "cardDialogContent", "div", "role", "className", "cardDialogHeader", "Title", "Close", "asChild", "Button", "ref", "density", "variant", "autoFocus", "Icon", "icon", "size", "Form", "testId", "values", "schema", "SpaceForm", "lookupComponent", "onSave", "outerSpacing", "React", "useTranslation", "baseSurface", "descriptionMessage", "mx", "CollectionMain", "collection", "t", "useTranslation", "SPACE_PLUGIN", "React", "div", "role", "className", "mx", "baseSurface", "data-testid", "p", "descriptionMessage", "name", "React", "useTranslation", "CollectionSection", "collection", "t", "useTranslation", "SPACE_PLUGIN", "React", "div", "className", "span", "name", "React", "useCallback", "createIntent", "LayoutAction", "useAppGraph", "useIntentDispatcher", "Trigger", "ObservabilityAction", "useClient", "Dialog", "useTranslation", "JoinPanel", "JOIN_DIALOG", "SPACE_PLUGIN", "JoinDialog", "navigableCollections", "onDone", "props", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "graph", "useAppGraph", "t", "useTranslation", "handleDone", "useCallback", "result", "spaceKey", "Promise", "all", "createIntent", "LayoutAction", "AddToast", "part", "subject", "id", "duration", "title", "ns", "closeLabel", "UpdateDialog", "options", "state", "space", "spaces", "get", "trigger", "Trigger", "subscribe", "wake", "wait", "SwitchWorkspace", "target", "undefined", "waitForPath", "catch", "Open", "Expose", "ObservabilityAction", "SendEvent", "name", "properties", "spaceId", "React", "Dialog", "Content", "Title", "classNames", "JoinPanel", "exitActionParent", "Close", "asChild", "doneActionParent", "Check", "X", "React", "useCallback", "useMemo", "useState", "QR", "createIntent", "useIntentDispatcher", "log", "useConfig", "fullyQualifiedId", "useSpaceInvitations", "Invitation", "InvitationEncoder", "Button", "Clipboard", "Icon", "Input", "useId", "useTranslation", "ControlPage", "ControlSection", "ControlFrame", "ControlFrameItem", "ControlItemInput", "StackItem", "getSize", "mx", "DataType", "AuthCode", "BifurcatedAction", "Centered", "Emoji", "InvitationList", "SpaceMemberList", "Viewport", "hexToEmoji", "activeActionKey", "handleInvitationEvent", "invitation", "subscription", "invitationCode", "InvitationEncoder", "encode", "state", "Invitation", "State", "CONNECTING", "log", "info", "JSON", "stringify", "authCode", "unsubscribe", "MembersContainer", "space", "createInvitationUrl", "t", "useTranslation", "SPACE_PLUGIN", "config", "useConfig", "dispatchPromise", "dispatch", "useIntentDispatcher", "invitations", "useSpaceInvitations", "key", "visibleInvitations", "filter", "CANCELLED", "includes", "get", "activeAction", "setInternalActiveAction", "useState", "localStorage", "getItem", "setActiveAction", "nextAction", "setItem", "target", "properties", "DataType", "Collection", "typename", "objects", "locked", "COMPOSER_SPACE_LOCK", "handleChangeLocked", "useCallback", "inviteActions", "useMemo", "inviteOne", "label", "ns", "description", "icon", "React", "Icon", "size", "testId", "onClick", "data", "createIntent", "SpaceAction", "Share", "type", "Type", "INTERACTIVE", "authMethod", "AuthMethod", "SHARED_SECRET", "multiUse", "fullyQualifiedId", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "subscribe", "inviteMany", "DELEGATED", "KNOWN_PUBLIC_KEY", "selectedInvitation", "setSelectedInvitation", "handleSend", "event", "handleBack", "Clipboard", "Provider", "StackItem", "Content", "classNames", "ControlPage", "ControlSection", "title", "ControlFrame", "ControlFrameItem", "SpaceMemberList", "spaceKey", "includeSelf", "p", "className", "InvitationSection", "onBack", "InvitationList", "send", "onClickRemove", "cancel", "BifurcatedAction", "actions", "onChangeActiveAction", "data-testid", "div", "ControlItemInput", "Input", "Switch", "checked", "onCheckedChange", "INIT", "invitationId", "url", "activeView", "READY_FOR_AUTHENTICATION", "Viewport", "Root", "Views", "View", "id", "InvitationComplete", "statusValue", "InvitationAuthCode", "code", "onCancel", "InvitationQR", "qrLabel", "useId", "emoji", "hexToEmoji", "role", "QR", "rounding", "backgroundColor", "color", "aria-labelledby", "errorCorrectionLevel", "cutout", "Centered", "Emoji", "text", "span", "Button", "value", "variant", "AuthCode", "large", "Check", "mx", "getSize", "X", "Planet", "React", "getSpace", "useClient", "DropdownMenu", "toLocalizedString", "useTranslation", "MenuFooter", "object", "t", "useTranslation", "SPACE_PLUGIN", "client", "useClient", "space", "getSpace", "spaceName", "getSpaceDisplayName", "personal", "spaces", "default", "React", "DropdownMenu", "Separator", "GroupLabel", "dl", "className", "dt", "dd", "Planet", "toLocalizedString", "React", "useMemo", "Surface", "Clipboard", "StackItem", "React", "useRef", "Input", "useTranslation", "BaseObjectSettings", "classNames", "children", "object", "t", "useTranslation", "meta", "id", "inputRef", "useRef", "React", "Input", "Root", "Label", "TextInput", "ref", "placeholder", "value", "name", "onChange", "event", "target", "onKeyDown", "key", "current", "blur", "ObjectSettingsContainer", "object", "role", "data", "useMemo", "subject", "React", "Clipboard", "Provider", "StackItem", "Content", "toolbar", "div", "className", "BaseObjectSettings", "Surface", "ArrowsCounterClockwise", "CheckCircle", "Warning", "React", "useEffect", "useState", "debounce", "Tooltip", "useTranslation", "getSize", "mx", "staticPlaceholderText", "warningText", "PersistenceStatus", "db", "t", "useTranslation", "SPACE_PLUGIN", "displayMessage", "setDisplayMessage", "useState", "status", "naturalSetStatus", "prevStatus", "setPrevStatus", "_setStatus", "debounce", "useEffect", "timeout", "setTimeout", "clearTimeout", "React", "div", "className", "Warning", "mx", "getSize", "span", "warningText", "ArrowsCounterClockwise", "staticPlaceholderText", "Tooltip", "Trigger", "delayDuration", "role", "content", "CheckCircle", "React", "useCallback", "useRef", "useState", "createIntent", "LayoutAction", "useIntentDispatcher", "log", "Button", "Input", "useTranslation", "POPOVER_RENAME_OBJECT", "SPACE_PLUGIN", "PopoverRenameObject", "object", "obj", "t", "useTranslation", "doneButton", "useRef", "name", "setName", "useState", "title", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleDone", "useCallback", "err", "log", "error", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "variant", "anchorId", "state", "React", "div", "role", "className", "Input", "Root", "Label", "srOnly", "TextInput", "placeholder", "value", "data-testid", "onChange", "target", "onKeyDown", "key", "current", "click", "Button", "ref", "classNames", "onClick", "ns", "React", "useCallback", "useRef", "useState", "createIntent", "LayoutAction", "useIntentDispatcher", "Button", "Input", "Popover", "useTranslation", "POPOVER_RENAME_SPACE", "SPACE_PLUGIN", "PopoverRenameSpace", "space", "t", "useTranslation", "doneButton", "useRef", "name", "setName", "useState", "properties", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleDone", "useCallback", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "variant", "anchorId", "state", "React", "div", "role", "className", "Input", "Root", "Label", "srOnly", "TextInput", "defaultValue", "placeholder", "onChange", "target", "value", "onKeyDown", "key", "current", "click", "Popover", "Close", "asChild", "Button", "ref", "classNames", "onClick", "ns", "React", "useState", "useEffect", "useTranslation", "controlItemClasses", "ControlPage", "ControlSection", "StackItem", "useQuerySpaceSchemas", "space", "schemas", "setSchemas", "useState", "useEffect", "query", "db", "schemaRegistry", "initialResults", "runSync", "unsubscribe", "subscribe", "results", "SchemaContainer", "t", "useTranslation", "SPACE_PLUGIN", "React", "StackItem", "Content", "classNames", "ControlPage", "ControlSection", "title", "description", "div", "role", "className", "controlItemClasses", "length", "map", "schema", "key", "id", "typename", "Option", "React", "forwardRef", "useCallback", "useEffect", "useState", "useAppGraph", "useCapability", "generateName", "PublicKey", "useClient", "getSpace", "useMembers", "fullyQualifiedId", "useIdentity", "Avatar", "Tooltip", "Popover", "useTranslation", "List", "ListItem", "useDefaultValue", "AttentionGlyph", "useAttended", "useAttention", "ComplexMap", "keyToFallback", "REFRESH_INTERVAL", "ACTIVITY_DURATION", "noViewers", "ComplexMap", "PublicKey", "hash", "getName", "identity", "profile", "displayName", "generateName", "identityKey", "toHex", "SpacePresence", "object", "spaceKey", "spaceState", "useCapability", "SpaceCapabilities", "MutableState", "client", "useClient", "useIdentity", "space", "spaces", "get", "getSpace", "spaceMembers", "useMembers", "key", "_moment", "setMoment", "useState", "Date", "now", "useEffect", "interval", "setInterval", "clearInterval", "memberOnline", "useCallback", "member", "presence", "memberIsNotSelf", "equals", "currentObjectViewers", "viewersByObject", "fullyQualifiedId", "membersForObject", "filter", "has", "map", "objectView", "lastSeen", "currentlyAttended", "toSorted", "a", "b", "React", "FullPresence", "members", "props", "size", "onMemberClick", "useDefaultValue", "length", "div", "className", "data-testid", "slice", "i", "Tooltip", "Trigger", "side", "content", "PresenceAvatar", "match", "index", "onClick", "Popover", "Root", "Avatar", "Content", "status", "style", "zIndex", "fallback", "Portal", "Arrow", "Viewport", "classNames", "List", "ListItem", "showName", "forwardRef", "forwardedRef", "fallbackValue", "keyToFallback", "hue", "data", "data-status", "emoji", "ref", "Label", "SmallPresenceLive", "id", "open", "viewers", "hasAttention", "isAncestor", "isRelated", "useAttention", "isAttended", "graph", "useAppGraph", "attended", "useAttended", "startOfAttention", "at", "path", "usePath", "containsAttended", "Option", "isSome", "value", "includes", "getActiveViewers", "moment", "Array", "from", "values", "viewer", "activeViewers", "setActiveViewers", "SmallPresence", "count", "t", "useTranslation", "SPACE_PLUGIN", "asChild", "AttentionGlyph", "React", "createIntent", "useIntentDispatcher", "useClient", "useSpaces", "Input", "toLocalizedString", "useTranslation", "List", "ListItem", "IconButton", "controlItemClasses", "ControlPage", "ControlSection", "DeprecatedFormInput", "SpacePluginSettings", "settings", "t", "useTranslation", "SPACE_PLUGIN", "client", "useClient", "spaces", "useSpaces", "all", "showHidden", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "ControlPage", "ControlSection", "title", "description", "div", "className", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "onCheckedChange", "List", "classNames", "controlItemClasses", "map", "space", "ListItem", "Root", "key", "id", "Heading", "toLocalizedString", "getSpaceDisplayName", "personal", "default", "IconButton", "icon", "onClick", "createIntent", "SpaceAction", "OpenSettings", "pipe", "Schema", "React", "useCallback", "useMemo", "useState", "chain", "createIntent", "LayoutAction", "useIntentDispatcher", "log", "EdgeReplicationSetting", "useClient", "SpaceState", "Button", "Input", "useMulticastObservable", "useTranslation", "Form", "ControlItem", "ControlItemInput", "ControlSection", "ControlPage", "HuePicker", "IconPicker", "StackItem", "FormSchema", "SpaceForm", "pipe", "Schema", "extend", "Struct", "archived", "Boolean", "annotations", "title", "SpaceSettingsContainer", "space", "t", "useTranslation", "SPACE_PLUGIN", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "useMulticastObservable", "state", "SpaceState", "SPACE_INACTIVE", "edgeReplication", "setEdgeReplication", "useState", "internal", "data", "EdgeReplicationSetting", "ENABLED", "toggleEdgeReplication", "useCallback", "next", "setEdgeReplicationPreference", "DISABLED", "catch", "err", "log", "handleSave", "properties", "name", "icon", "hue", "createIntent", "SpaceAction", "Close", "chain", "LayoutAction", "SwitchWorkspace", "part", "subject", "spaces", "default", "id", "Open", "values", "useMemo", "customElements", "type", "label", "getValue", "onValueChange", "handleChange", "target", "value", "React", "ControlItemInput", "description", "Input", "TextInput", "onChange", "placeholder", "classNames", "nextEmoji", "handleEmojiReset", "undefined", "ControlItem", "IconPicker", "onReset", "iconSize", "nextHue", "handleHueReset", "HuePicker", "checked", "Switch", "onCheckedChange", "Button", "disabled", "onClick", "StackItem", "Content", "ControlPage", "ControlSection", "ns", "Form", "schema", "autoSave", "onSave", "Custom", "outerSpacing", "Option", "React", "useEffect", "useState", "useAppGraph", "EdgeStatus", "EdgeReplicationSetting", "useClient", "useSpaceSyncState", "Tooltip", "useTranslation", "AttentionGlyph", "useAttended", "useAttention", "useEdgeStatus", "status", "setStatus", "useState", "EdgeStatus", "NOT_CONNECTED", "client", "useClient", "useEffect", "services", "EdgeAgentService", "queryEdgeStatus", "subscribe", "InlineSyncStatus", "space", "open", "t", "useTranslation", "SPACE_PLUGIN", "id", "hasAttention", "isAncestor", "isRelated", "useAttention", "isAttended", "graph", "useAppGraph", "attended", "useAttended", "startOfAttention", "at", "path", "usePath", "containsAttended", "Option", "isSome", "value", "includes", "connectedToEdge", "CONNECTED", "edgeSyncEnabled", "internal", "data", "edgeReplication", "EdgeReplicationSetting", "ENABLED", "syncState", "useSpaceSyncState", "syncing", "missingOnLocal", "React", "Tooltip", "Trigger", "asChild", "content", "side", "AttentionGlyph", "classNames", "React", "useEffect", "useState", "StatusBar", "useClient", "getSyncSummary", "useSyncState", "Icon", "useTranslation", "Context", "createClientSaveTracker", "client", "cb", "CleanupFns", "state", "install", "spaces", "space", "id", "createSpaceSaveTracker", "s", "Object", "values", "some", "subscribe", "get", "unsubscribe", "ctx", "waitUntilReady", "then", "disposed", "hasUnsavedChanges", "lastFlushPromise", "db", "saveStateChanged", "on", "unsavedDocuments", "length", "debounce", "undefined", "flushPromise", "flush", "dispose", "getStatus", "offline", "saved", "needsToUpload", "needsToDownload", "getIcon", "status", "SYNC_STALLED_TIMEOUT", "SyncStatus", "client", "useClient", "state", "useSyncState", "saved", "setSaved", "useState", "useEffect", "createClientSaveTracker", "React", "SyncStatusIndicator", "t", "useTranslation", "SPACE_PLUGIN", "summary", "getSyncSummary", "offline", "Object", "values", "length", "needsToUpload", "differentDocuments", "missingOnRemote", "needsToDownload", "missingOnLocal", "status", "getStatus", "classNames", "setClassNames", "undefined", "setTimeout", "clearTimeout", "title", "icon", "Icon", "getIcon", "size", "StatusBar", "Item"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
- // packages/plugins/plugin-space/src/hooks/useActiveSpace.ts
3
+ // src/hooks/useActiveSpace.ts
4
4
  import { Capabilities, useLayout } from "@dxos/app-framework";
5
5
  import { ClientCapabilities } from "@dxos/plugin-client";
6
6
  import { parseId, useSpace } from "@dxos/react-client/echo";
@@ -16,7 +16,7 @@ var useActiveSpace = () => {
16
16
  return useSpace(spaceId);
17
17
  };
18
18
 
19
- // packages/plugins/plugin-space/src/hooks/useInputSurfaceLookup.tsx
19
+ // src/hooks/useInputSurfaceLookup.tsx
20
20
  import React, { useCallback } from "react";
21
21
  import { usePluginManager, isSurfaceAvailable, Surface } from "@dxos/app-framework";
22
22
  var useInputSurfaceLookup = (baseData) => {
@@ -44,7 +44,7 @@ var useInputSurfaceLookup = (baseData) => {
44
44
  ]);
45
45
  };
46
46
 
47
- // packages/plugins/plugin-space/src/hooks/usePath.ts
47
+ // src/hooks/usePath.ts
48
48
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
49
49
  import { Option } from "effect";
50
50
  import { useEffect, useState } from "react";
@@ -93,4 +93,4 @@ export {
93
93
  useInputSurfaceLookup,
94
94
  usePath
95
95
  };
96
- //# sourceMappingURL=chunk-GH2FGJXH.mjs.map
96
+ //# sourceMappingURL=chunk-SSLBYZEY.mjs.map
@@ -1,29 +1,28 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- SPACE_PLUGIN
4
- } from "./chunk-MSWEFAPD.mjs";
3
+ meta
4
+ } from "./chunk-HWNG4MEU.mjs";
5
5
 
6
- // packages/plugins/plugin-space/src/translations.ts
7
- import { Type } from "@dxos/echo";
6
+ // src/translations.ts
8
7
  import { DataType } from "@dxos/schema";
9
- var translations_default = [
8
+ var translations = [
10
9
  {
11
10
  "en-US": {
12
- [Type.getTypename(DataType.Collection)]: {
11
+ [DataType.Collection.typename]: {
13
12
  "typename label": "Collection",
14
13
  "typename label_zero": "Collections",
15
14
  "typename label_one": "Collection",
16
15
  "typename label_other": "Collections",
17
16
  "object name placeholder": "New collection"
18
17
  },
19
- [Type.getTypename(DataType.QueryCollection)]: {
18
+ [DataType.QueryCollection.typename]: {
20
19
  "typename label": "Smart Collection",
21
20
  "typename label_zero": "Smart Collections",
22
21
  "typename label_one": "Smart Collection",
23
22
  "typename label_other": "Smart Collections",
24
23
  "object name placeholder": "New smart collection"
25
24
  },
26
- [SPACE_PLUGIN]: {
25
+ [meta.id]: {
27
26
  "plugin name": "Spaces",
28
27
  "first run message": "Nothing selected.",
29
28
  "create space label": "Create space",
@@ -50,6 +49,7 @@ var translations_default = [
50
49
  "confirm restore title": "Overwrite files in this space?",
51
50
  "confirm restore body": "Restoring from a backup will overwrite the contents of any documents that match.",
52
51
  "upload file message": "Drag file here or click to browse",
52
+ "object name placeholder": "Object",
53
53
  "object placeholder": "Type a title here\u2026",
54
54
  "personal space label": "Personal Space",
55
55
  "spaces label": "Spaces",
@@ -161,6 +161,6 @@ var translations_default = [
161
161
  ];
162
162
 
163
163
  export {
164
- translations_default
164
+ translations
165
165
  };
166
- //# sourceMappingURL=chunk-JBQKU4K5.mjs.map
166
+ //# sourceMappingURL=chunk-SXD6T2N4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from './meta';\n\n// TODO(burdon): Change to single Resource?\nexport const translations = [\n {\n 'en-US': {\n [DataType.Collection.typename]: {\n 'typename label': 'Collection',\n 'typename label_zero': 'Collections',\n 'typename label_one': 'Collection',\n 'typename label_other': 'Collections',\n 'object name placeholder': 'New collection',\n },\n [DataType.QueryCollection.typename]: {\n 'typename label': 'Smart Collection',\n 'typename label_zero': 'Smart Collections',\n 'typename label_one': 'Smart Collection',\n 'typename label_other': 'Smart Collections',\n 'object name placeholder': 'New smart collection',\n },\n [meta.id]: {\n 'plugin name': 'Spaces',\n 'first run message': 'Nothing selected.',\n 'create space label': 'Create space',\n 'join space label': 'Join space',\n 'empty space message': 'No documents',\n 'empty tree message': 'No spaces',\n 'unnamed space label': 'New space',\n 'closed space label': 'Closed',\n 'loading space label': 'Loading space…',\n 'lock space label': 'Lock space',\n 'unlock space label': 'Unlock space',\n 'rename space label': 'Rename space',\n 'active space label': 'Active space:',\n 'space name label': 'Space name',\n 'object name label': 'Item name',\n 'close space label': 'Close space',\n 'open space label': 'Open space',\n 'export data label': 'Export data',\n 'import data label': 'Import data',\n 'migrate space label': 'Migrate space',\n 'share space label': 'Share current space',\n 'save space to disk label': 'Save to disk',\n 'load space from disk label': 'Load from disk',\n 'confirm restore title': 'Overwrite files in this space?',\n 'confirm restore body': 'Restoring from a backup will overwrite the contents of any documents that match.',\n 'upload file message': 'Drag file here or click to browse',\n 'object name placeholder': 'Object',\n 'object placeholder': 'Type a title here…',\n 'personal space label': 'Personal Space',\n 'spaces label': 'Spaces',\n 'space settings label': 'Spaces',\n 'space settings description':\n 'Each space has its own settings you can configure, where you can adjust its properties, membership, integrations, and other items specific to that space.',\n 'show hidden spaces label': 'Show archived spaces',\n 'save files to directory label': 'Save files to disk',\n 'select path label': 'Select path',\n 'rename collection label': 'Rename collection',\n 'rename object label': 'Rename item',\n 'duplicate object label': 'Duplicate item',\n 'delete collection label': 'Delete collection',\n 'delete object label': 'Delete item',\n 'collection deleted label': 'Collection deleted',\n 'object deleted label': 'Item deleted',\n 'objects deleted label': 'Items deleted',\n 'go to object label': 'Open item',\n 'found object label': 'Ready.',\n 'found object description': 'The requested item is now available.',\n 'waiting for object label': 'Loading…',\n 'waiting for object description': 'The requested item is still being synchronized.',\n 'object not found label': 'Nothing found.',\n 'object not found description':\n 'The requested item has not been found yet. Ensure there are enough peers online in the space with an updated copy.',\n 'missing object message': 'Item not available.',\n 'missing object description':\n 'The requested item has not been found yet. Ensure there are enough peers online in the space with an updated copy.',\n 'create object in space label': 'Add to space',\n 'create object in collection label': 'Add to collection',\n 'create object in smart collection label': 'Add to smart collection',\n 'space members label': 'Space members',\n 'active space members heading': 'Online ({{count}})',\n 'inactive space members heading': 'Offline ({{count}})',\n 'presence label_zero': 'No other viewers',\n 'presence label_one': '1 other viewer',\n 'presence label_other': '{{count}} other viewers',\n 'persisted locally label': 'Changes saved locally.',\n 'persisted locally message': 'All changes have been saved to disk on this device.',\n 'persistence pending label': 'Saving…',\n 'persistence error label': 'Error saving changes.',\n 'more actions label': 'More actions',\n 'invitations heading': 'Invitations',\n 'keyshortcuts label': 'Keyboard shortcuts',\n 'menu footer label': 'Details',\n 'location label': 'Located in',\n 'space limit label': 'Space Limit Reached',\n 'space limit description':\n 'This space has reached the maximum number of items for the beta. This limit includes deleted items currently, but those can be permanently removed with the cleanup action.',\n 'space limit close label': 'Close',\n 'remove deleted objects label': 'Cleanup',\n 'remove deleted objects alt': 'Permanently remove deleted items to free up space.',\n 'copy link label': 'Copy link',\n 'default on space create label': 'On space create',\n 'sync status title': 'Sync status',\n 'dismiss label': 'Dismiss',\n 'join success label': 'Successfully joined space',\n 'name label': 'Name',\n 'name placeholder': 'Name',\n 'object settings label': 'Details',\n 'edge replication label': 'Enable EDGE Replication',\n 'saving locally label': 'Writing to disk',\n 'downloading label': 'Replicating from peers',\n 'uploading label': 'Replicating to peers',\n 'offline persisted label': 'Saved to disk (offline)',\n 'remote synced label': 'Synced with peers',\n 'syncing label': 'Space syncing',\n 'show all label': 'Show all',\n 'no sync status label': 'No space with missing items.',\n 'create space dialog title': 'Create Space',\n 'create object dialog title': 'Create {{object}}',\n 'space input placeholder': 'Select space',\n 'schema input placeholder': 'Select item type',\n 'creating object type label': 'Type',\n 'creating in space label': 'Location',\n 'creating in collection label': 'In Collection',\n 'clear input label': 'Clear',\n 'expose object label': 'Expose in navtree',\n 'advanced settings label': 'Advanced',\n 'foreign keys': 'Foreign Keys',\n 'add key': 'Add Key',\n 'open space settings label': 'Open settings',\n\n 'members panel label': 'Members',\n 'members verbose label': 'Manage space members',\n 'members description': 'You can view the current status of space members here as well as invite new members.',\n 'members label': 'Members',\n 'invitations label': 'Invitations',\n 'space invitation description': 'Manage invitations to the space.',\n 'qr code description': 'Share this QR code, or copy the URL and share it with the person you want to invite.',\n 'locked space description': 'This space is locked, unlock it to invite new members.',\n 'space locked label': 'Lock space',\n 'space locked description': 'Locking a space prevents new members from being invited to the space.',\n\n 'settings panel label': 'Space Settings',\n 'open current space settings label': 'Open current space settings',\n 'space settings properties label': 'General settings',\n 'space properties settings verbose label': 'Manage space properties',\n 'space properties settings description': 'You can configure how this space is displayed in the app here.',\n 'space settings schema label': 'Schema',\n 'schema verbose label': 'Manage schema',\n 'schema description': 'You can manage all of the schema stored within this space here.',\n 'no schemas found message': 'No schemas found',\n 'display name input placeholder': 'Space name',\n 'display name description': 'Name of the space as it appears in the app.',\n 'icon description': 'Icon used to represent the space in the app.',\n 'hue description': 'Color used to represent the space in the app.',\n 'edge replication description':\n \"Only change this if you know what you're doing. Disabling this will prevent the space from replicating through Composer's EDGE services, and relies solely on peer-to-peer sync.\",\n 'archive space description':\n 'Archiving a space will remove it from the sidebar and stop replicating updates, but will not delete the data. You can unarchive it by enabling archived spaces in the app settings.',\n 'archive space label': 'Archive',\n 'unarchive space label': 'Unarchive',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": "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",
6
+ "names": ["DataType", "translations", "DataType", "Collection", "typename", "QueryCollection", "meta", "id"]
7
+ }
@@ -1,8 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
- // packages/plugins/plugin-space/src/capabilities/identity-created.ts
3
+ // src/capabilities/identity-created.ts
4
4
  import { contributes, Capabilities } from "@dxos/app-framework";
5
- import { Obj, Ref, Type } from "@dxos/echo";
5
+ import { Obj, Ref } from "@dxos/echo";
6
6
  import { Migrations } from "@dxos/migrations";
7
7
  import { ClientCapabilities } from "@dxos/plugin-client";
8
8
  import { DataType } from "@dxos/schema";
@@ -11,7 +11,7 @@ var identity_created_default = async (context) => {
11
11
  await client.spaces.waitUntilReady();
12
12
  const defaultSpace = client.spaces.default;
13
13
  await defaultSpace.waitUntilReady();
14
- defaultSpace.properties[Type.getTypename(DataType.Collection)] = Ref.make(Obj.make(DataType.Collection, {
14
+ defaultSpace.properties[DataType.Collection.typename] = Ref.make(Obj.make(DataType.Collection, {
15
15
  objects: []
16
16
  }));
17
17
  if (Migrations.versionProperty) {
@@ -22,4 +22,4 @@ var identity_created_default = async (context) => {
22
22
  export {
23
23
  identity_created_default as default
24
24
  };
25
- //# sourceMappingURL=identity-created-35CTAQWI.mjs.map
25
+ //# sourceMappingURL=identity-created-IJQO6GCR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/identity-created.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginContext, Capabilities } from '@dxos/app-framework';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DataType } from '@dxos/schema';\n\nexport default async (context: PluginContext) => {\n const client = context.getCapability(ClientCapabilities.Client);\n await client.spaces.waitUntilReady();\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n // Create root collection structure.\n defaultSpace.properties[DataType.Collection.typename] = Ref.make(Obj.make(DataType.Collection, { objects: [] }));\n if (Migrations.versionProperty) {\n defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;\n }\n\n return contributes(Capabilities.Null, null);\n};\n"],
5
+ "mappings": ";;;AAIA,SAASA,aAAiCC,oBAAoB;AAC9D,SAASC,KAAKC,WAAW;AACzB,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AACnC,SAASC,gBAAgB;AAEzB,IAAA,2BAAe,OAAOC,YAAAA;AACpB,QAAMC,SAASD,QAAQE,cAAcC,mBAAmBC,MAAM;AAC9D,QAAMH,OAAOI,OAAOC,eAAc;AAElC,QAAMC,eAAeN,OAAOI,OAAOG;AACnC,QAAMD,aAAaD,eAAc;AAGjCC,eAAaE,WAAWC,SAASC,WAAWC,QAAQ,IAAIC,IAAIC,KAAKC,IAAID,KAAKJ,SAASC,YAAY;IAAEK,SAAS,CAAA;EAAG,CAAA,CAAA;AAC7G,MAAIC,WAAWC,iBAAiB;AAC9BX,iBAAaE,WAAWQ,WAAWC,eAAe,IAAID,WAAWE;EACnE;AAEA,SAAOC,YAAYC,aAAaC,MAAM,IAAA;AACxC;",
6
+ "names": ["contributes", "Capabilities", "Obj", "Ref", "Migrations", "ClientCapabilities", "DataType", "context", "client", "getCapability", "ClientCapabilities", "Client", "spaces", "waitUntilReady", "defaultSpace", "default", "properties", "DataType", "Collection", "typename", "Ref", "make", "Obj", "objects", "Migrations", "versionProperty", "targetVersion", "contributes", "Capabilities", "Null"]
7
+ }