@dxos/plugin-space 0.8.4-main.84f28bd → 0.8.4-main.a4bbb77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs +31 -0
- package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs +90 -0
- package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs.map +7 -0
- package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +68 -0
- package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-PMDF6PJV.mjs → app-graph-builder-W7RVDAUA.mjs} +202 -48
- package/dist/lib/browser/app-graph-builder-W7RVDAUA.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-UKYMBX4O.mjs → app-graph-serializer-VLHVTDX4.mjs} +14 -14
- package/dist/lib/browser/app-graph-serializer-VLHVTDX4.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GVTXQCIW.mjs → chunk-2BFVC5K6.mjs} +431 -373
- package/dist/lib/browser/chunk-2BFVC5K6.mjs.map +7 -0
- package/dist/lib/browser/chunk-E2I747A7.mjs +20 -0
- package/dist/lib/browser/chunk-E2I747A7.mjs.map +7 -0
- package/dist/lib/browser/chunk-EIXZABXD.mjs +19 -0
- package/dist/lib/browser/chunk-EIXZABXD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-ELJDGQTO.mjs} +3 -3
- package/dist/lib/browser/{chunk-VLBRSGJ2.mjs.map → chunk-ELJDGQTO.mjs.map} +3 -3
- package/dist/lib/browser/chunk-IRKDREHY.mjs +11 -0
- package/dist/lib/browser/chunk-IRKDREHY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-S6NY637J.mjs → chunk-JCHSUOPF.mjs} +70 -10
- package/dist/lib/browser/chunk-JCHSUOPF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-WBSEOLEM.mjs → chunk-PN27K4I7.mjs} +209 -54
- package/dist/lib/browser/chunk-PN27K4I7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6VLSHG4A.mjs → chunk-ZIZ2JLW6.mjs} +71 -9
- package/dist/lib/browser/chunk-ZIZ2JLW6.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-PW2BA46S.mjs} +4 -4
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs.map → identity-created-PW2BA46S.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +95 -26
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-WK5WYFH3.mjs → intent-resolver-HA7DPAUE.mjs} +185 -30
- package/dist/lib/browser/intent-resolver-HA7DPAUE.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-7S6FIC5G.mjs → react-root-YQUJU64P.mjs} +11 -11
- package/dist/lib/browser/react-root-YQUJU64P.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-6C3YJNDK.mjs → react-surface-HTXYMRSW.mjs} +78 -46
- package/dist/lib/browser/react-surface-HTXYMRSW.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-K3B3OAH4.mjs → schema-defs-R56ZDBZ7.mjs} +5 -5
- package/dist/lib/browser/schema-defs-R56ZDBZ7.mjs.map +7 -0
- package/dist/lib/browser/{settings-XNWYRWNM.mjs → settings-5XPQMSPO.mjs} +5 -5
- package/dist/lib/browser/{settings-XNWYRWNM.mjs.map → settings-5XPQMSPO.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-K7NSNBHM.mjs → spaces-ready-YY77ANIF.mjs} +17 -15
- package/dist/lib/browser/spaces-ready-YY77ANIF.mjs.map +7 -0
- package/dist/lib/browser/{state-522XTUR4.mjs → state-Y4RVCG4A.mjs} +7 -7
- package/dist/lib/browser/state-Y4RVCG4A.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs +32 -0
- package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs +91 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs.map +7 -0
- package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +70 -0
- package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-TO72W6MI.mjs → app-graph-builder-5ZJJUMQI.mjs} +202 -48
- package/dist/lib/node-esm/app-graph-builder-5ZJJUMQI.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-LA3IZDXJ.mjs → app-graph-serializer-EZJSGJUT.mjs} +14 -14
- package/dist/lib/node-esm/app-graph-serializer-EZJSGJUT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SXD6T2N4.mjs → chunk-5XRYHWL7.mjs} +71 -9
- package/dist/lib/node-esm/chunk-5XRYHWL7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2THX6G4C.mjs → chunk-6WNZW6KT.mjs} +70 -10
- package/dist/lib/node-esm/chunk-6WNZW6KT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OUBADVJE.mjs → chunk-BLPXWPLB.mjs} +431 -373
- package/dist/lib/node-esm/chunk-BLPXWPLB.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-IJVBBVCL.mjs +21 -0
- package/dist/lib/node-esm/chunk-IJVBBVCL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HWNG4MEU.mjs → chunk-MWNATOXL.mjs} +2 -4
- package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-Q6AAQLQG.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs.map → chunk-Q6AAQLQG.mjs.map} +3 -3
- package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +20 -0
- package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HJJHLWKY.mjs → chunk-XDQXUZMK.mjs} +209 -54
- package/dist/lib/node-esm/chunk-XDQXUZMK.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-MWTLGQRU.mjs} +4 -4
- package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs.map → identity-created-MWTLGQRU.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +95 -26
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-HSR27ME4.mjs → intent-resolver-LQNHMPIX.mjs} +185 -30
- package/dist/lib/node-esm/intent-resolver-LQNHMPIX.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-HUK3ANLV.mjs → react-root-UTLJEIKE.mjs} +11 -11
- package/dist/lib/node-esm/react-root-UTLJEIKE.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-AGAWX7DD.mjs → react-surface-LYDYON3U.mjs} +78 -46
- package/dist/lib/node-esm/react-surface-LYDYON3U.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-4MCDG4DV.mjs → schema-defs-7IMJPIWS.mjs} +5 -5
- package/dist/lib/node-esm/schema-defs-7IMJPIWS.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-YGKHGFPH.mjs → settings-XBSK5KHH.mjs} +5 -5
- package/dist/lib/node-esm/{settings-YGKHGFPH.mjs.map → settings-XBSK5KHH.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-UM2P3DCR.mjs → spaces-ready-YX4IHT4P.mjs} +17 -15
- package/dist/lib/node-esm/spaces-ready-YX4IHT4P.mjs.map +7 -0
- package/dist/lib/node-esm/{state-C4IOXPZP.mjs → state-HOHAVPUO.mjs} +7 -7
- package/dist/lib/node-esm/state-HOHAVPUO.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/SpacePlugin.d.ts +1 -1
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +11 -5
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +11 -12
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts +2 -2
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionMain.d.ts +1 -0
- package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +5 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1584 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -3
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/JoinDialog.d.ts +1 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.d.ts +3 -2
- package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.stories.d.ts +1584 -5
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
- package/dist/types/src/components/ObjectDetailsPanel.d.ts +9 -0
- package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
- package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
- package/dist/types/src/components/RecordMain.d.ts +7 -0
- package/dist/types/src/components/RecordMain.d.ts.map +1 -0
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +1412 -4
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1417 -4
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1418 -5
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/status.d.ts +5 -5
- package/dist/types/src/components/ViewEditor.d.ts +8 -0
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +14 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +1 -0
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1262 -11
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +124 -64
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +34 -7
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +61 -60
- package/src/SpacePlugin.ts +205 -137
- package/src/capabilities/app-graph-builder.ts +249 -36
- package/src/capabilities/app-graph-serializer.ts +7 -7
- package/src/capabilities/capabilities.ts +15 -9
- package/src/capabilities/identity-created.ts +1 -1
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/intent-resolver.ts +140 -19
- package/src/capabilities/react-root.tsx +4 -3
- package/src/capabilities/react-surface.tsx +93 -42
- package/src/capabilities/schema-defs.ts +3 -2
- package/src/capabilities/spaces-ready.ts +10 -7
- package/src/capabilities/state.ts +5 -4
- package/src/components/AwaitingObject.tsx +7 -9
- package/src/components/CollectionMain.tsx +4 -2
- package/src/components/CollectionSection.tsx +2 -2
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -10
- package/src/components/CreateDialog/CreateObjectDialog.tsx +50 -36
- package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +4 -4
- package/src/components/JoinDialog.tsx +7 -7
- package/src/components/MembersContainer.stories.tsx +36 -10
- package/src/components/MembersContainer.tsx +17 -16
- package/src/components/MenuFooter.tsx +4 -5
- package/src/components/ObjectDetailsPanel.tsx +79 -0
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -2
- package/src/components/ObjectSettings/ForeignKeys.tsx +2 -2
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -2
- package/src/components/PersistenceStatus.tsx +7 -8
- package/src/components/PopoverRenameObject.tsx +10 -16
- package/src/components/PopoverRenameSpace.tsx +4 -4
- package/src/components/RecordMain.tsx +43 -0
- package/src/components/SchemaContainer.tsx +4 -4
- package/src/components/SpacePluginSettings.tsx +8 -9
- package/src/components/SpacePresence.stories.tsx +23 -22
- package/src/components/SpacePresence.tsx +9 -9
- package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +17 -17
- package/src/components/SyncStatus/InlineSyncStatus.tsx +2 -2
- package/src/components/SyncStatus/SyncStatus.stories.tsx +6 -7
- package/src/components/SyncStatus/SyncStatus.tsx +5 -4
- package/src/components/SyncStatus/status.ts +4 -4
- package/src/components/ViewEditor.tsx +59 -0
- package/src/components/index.ts +7 -1
- package/src/events.ts +7 -6
- package/src/hooks/useActiveSpace.ts +2 -2
- package/src/hooks/useInputSurfaceLookup.tsx +1 -1
- package/src/meta.ts +1 -3
- package/src/translations.ts +68 -5
- package/src/types/types.ts +70 -12
- package/src/util.tsx +199 -55
- package/dist/lib/browser/app-graph-builder-PMDF6PJV.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-UKYMBX4O.mjs.map +0 -7
- package/dist/lib/browser/chunk-6VLSHG4A.mjs.map +0 -7
- package/dist/lib/browser/chunk-C7KGJTAL.mjs +0 -18
- package/dist/lib/browser/chunk-C7KGJTAL.mjs.map +0 -7
- package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
- package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
- package/dist/lib/browser/chunk-GVTXQCIW.mjs.map +0 -7
- package/dist/lib/browser/chunk-S6NY637J.mjs.map +0 -7
- package/dist/lib/browser/chunk-WBSEOLEM.mjs.map +0 -7
- package/dist/lib/browser/chunk-XXIPJLJF.mjs +0 -19
- package/dist/lib/browser/chunk-XXIPJLJF.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-WK5WYFH3.mjs.map +0 -7
- package/dist/lib/browser/react-root-7S6FIC5G.mjs.map +0 -7
- package/dist/lib/browser/react-surface-6C3YJNDK.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-K3B3OAH4.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-K7NSNBHM.mjs.map +0 -7
- package/dist/lib/browser/state-522XTUR4.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-TO72W6MI.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-LA3IZDXJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2THX6G4C.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-72QMMRKC.mjs +0 -19
- package/dist/lib/node-esm/chunk-72QMMRKC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AT7LGFER.mjs +0 -20
- package/dist/lib/node-esm/chunk-AT7LGFER.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HJJHLWKY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OUBADVJE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SXD6T2N4.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-HSR27ME4.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-HUK3ANLV.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-AGAWX7DD.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-4MCDG4DV.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-UM2P3DCR.mjs.map +0 -7
- package/dist/lib/node-esm/state-C4IOXPZP.mjs.map +0 -7
- package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
- package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
- package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
- package/src/capabilities/schema-tool.test.ts +0 -44
- package/src/capabilities/schema-tools.ts +0 -125
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/spaces-ready.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Option } from 'effect';\n\nimport { Capabilities, LayoutAction, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { SubscriptionList } from '@dxos/async';\nimport { Filter, Obj, Type } from '@dxos/echo';\nimport { scheduledEffect } from '@dxos/echo-signals/core';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { FQ_ID_LENGTH, SpaceState, parseFullyQualifiedId } from '@dxos/react-client/echo';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceAction } from '../types';\nimport { COMPOSER_SPACE_LOCK, SHARED } from '../util';\n\nimport { SpaceCapabilities } from './capabilities';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 5_000;\n\nexport default async (context: PluginContext) => {\n const subscriptions = new SubscriptionList();\n const spaceSubscriptions = new SubscriptionList();\n\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const { graph } = context.getCapability(Capabilities.AppGraph);\n const layout = context.getCapability(Capabilities.Layout);\n const deck = context.getCapabilities(DeckCapabilities.DeckState)[0];\n const attention = context.getCapability(AttentionCapabilities.Attention);\n const state = context.getCapability(SpaceCapabilities.MutableState);\n const client = context.getCapability(ClientCapabilities.Client);\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n if (deck?.activeDeck === 'default') {\n await dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: defaultSpace.id }));\n }\n\n // Initialize space sharing lock in default space.\n if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== 'boolean') {\n defaultSpace.properties[COMPOSER_SPACE_LOCK] = true;\n }\n\n const {\n objects: [spacesOrder],\n } = await defaultSpace.db.query(Filter.type(Type.Expando, { key: SHARED })).run();\n if (!spacesOrder) {\n // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.\n // Instead, we store order as an array of space ids.\n defaultSpace.db.add(Obj.make(Type.Expando, { key: SHARED, order: [] }));\n }\n\n // Await missing objects.\n subscriptions.add(\n scheduledEffect(\n () => ({ active: layout.active }),\n ({ active }) => {\n if (active.length !== 1) {\n return;\n }\n\n const id = active[0];\n const node = graph.getNode(id).pipe(Option.getOrNull);\n if (!node && id.length === FQ_ID_LENGTH) {\n void graph.initialize(id);\n const timeout = setTimeout(async () => {\n const node = graph.getNode(id).pipe(Option.getOrNull);\n if (!node) {\n await dispatch(createIntent(SpaceAction.WaitForObject, { id }));\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n return () => clearTimeout(timeout);\n }\n },\n ),\n );\n\n // Cache space names.\n subscriptions.add(\n client.spaces.subscribe(async (spaces) => {\n // TODO(wittjosiah): Remove. This is a hack to be able to migrate the default space properties.\n if (defaultSpace.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n await defaultSpace.internal.migrate();\n }\n\n spaces\n .filter((space) => space.state.get() === SpaceState.SPACE_READY)\n .forEach((space) => {\n subscriptions.add(\n scheduledEffect(\n () => ({ name: space.properties.name }),\n ({ name }) => (state.spaceNames[space.id] = name),\n ),\n );\n });\n }).unsubscribe,\n );\n\n // Broadcast active node to other peers in the space.\n subscriptions.add(\n scheduledEffect(\n () => ({ current: attention.current, active: layout.active, inactive: layout.inactive }),\n ({ current, active, inactive }) => {\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(active, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n // NOTE: Ensure all spaces are included so that we send the correct `removed` object arrays.\n for (const space of spaces) {\n if (!idsBySpace.has(space.id)) {\n idsBySpace.set(space.id, []);\n }\n }\n\n for (const [spaceId, added] of idsBySpace) {\n const removed = removedBySpace.get(spaceId) ?? [];\n const space = spaces.find((space) => space.id === spaceId);\n if (!space) {\n continue;\n }\n\n void space\n .postMessage('viewing', {\n identityKey: identity.identityKey.toHex(),\n attended: current,\n added,\n removed,\n })\n // TODO(burdon): This seems defensive; why would this fail? Backoff interval.\n .catch((err) => {\n log.warn('Failed to broadcast active node for presence.', { err: err.message });\n });\n }\n }\n };\n\n send();\n // Send at interval to allow peers to expire entries if they become disconnected.\n const interval = setInterval(() => send(), ACTIVE_NODE_BROADCAST_INTERVAL);\n return () => clearInterval(interval);\n },\n ),\n );\n\n // Listen for active nodes from other peers in the space.\n subscriptions.add(\n client.spaces.subscribe((spaces) => {\n spaceSubscriptions.clear();\n spaces.forEach((space) => {\n spaceSubscriptions.add(\n space.listen('viewing', (message) => {\n const { added, removed, attended } = message.payload;\n\n const identityKey = PublicKey.safeFrom(message.payload.identityKey);\n const currentIdentity = client.halo.identity.get();\n if (\n identityKey &&\n !currentIdentity?.identityKey.equals(identityKey) &&\n Array.isArray(added) &&\n Array.isArray(removed)\n ) {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in state.viewersByObject)) {\n state.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n state.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!state.viewersByIdentity.has(identityKey)) {\n state.viewersByIdentity.set(identityKey, new Set());\n }\n state.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n state.viewersByObject[id]?.delete(identityKey);\n state.viewersByIdentity.get(identityKey)?.delete(id);\n // It’s okay for these to be empty sets/maps, reduces churn.\n }\n });\n }\n }),\n );\n });\n }).unsubscribe,\n );\n\n // Enable edge replication for all spaces.\n try {\n await Promise.all(\n client.spaces.get().map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n );\n state.enabledEdgeReplication = true;\n } catch (err) {\n log.catch(err);\n }\n\n return contributes(Capabilities.Null, null, () => {\n spaceSubscriptions.clear();\n subscriptions.clear();\n });\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Option", "Capabilities", "LayoutAction", "contributes", "createIntent", "SubscriptionList", "Filter", "Obj", "Type", "scheduledEffect", "log", "AttentionCapabilities", "ClientCapabilities", "DeckCapabilities", "EdgeReplicationSetting", "PublicKey", "FQ_ID_LENGTH", "SpaceState", "parseFullyQualifiedId", "ComplexMap", "reduceGroupBy", "ACTIVE_NODE_BROADCAST_INTERVAL", "WAIT_FOR_OBJECT_TIMEOUT", "context", "subscriptions", "SubscriptionList", "spaceSubscriptions", "dispatchPromise", "dispatch", "getCapability", "Capabilities", "IntentDispatcher", "graph", "AppGraph", "layout", "Layout", "deck", "getCapabilities", "DeckCapabilities", "DeckState", "attention", "AttentionCapabilities", "Attention", "state", "SpaceCapabilities", "MutableState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "waitUntilReady", "activeDeck", "createIntent", "LayoutAction", "SwitchWorkspace", "part", "subject", "id", "properties", "COMPOSER_SPACE_LOCK", "objects", "spacesOrder", "db", "query", "Filter", "type", "Type", "Expando", "key", "SHARED", "run", "add", "Obj", "make", "order", "scheduledEffect", "active", "length", "node", "getNode", "pipe", "Option", "getOrNull", "FQ_ID_LENGTH", "initialize", "timeout", "setTimeout", "SpaceAction", "WaitForObject", "clearTimeout", "subscribe", "get", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "name", "spaceNames", "unsubscribe", "current", "inactive", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseFullyQualifiedId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "catch", "err", "log", "warn", "message", "interval", "setInterval", "clearInterval", "clear", "listen", "payload", "PublicKey", "safeFrom", "currentIdentity", "equals", "Array", "isArray", "viewersByObject", "ComplexMap", "hash", "lastSeen", "Date", "now", "currentlyAttended", "Set", "viewersByIdentity", "delete", "Promise", "all", "map", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "enabledEdgeReplication", "contributes", "Null"]
|
|
7
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SpaceCapabilities
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-E2I747A7.mjs";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./chunk-
|
|
5
|
+
meta
|
|
6
|
+
} from "./chunk-IRKDREHY.mjs";
|
|
7
7
|
|
|
8
8
|
// src/capabilities/state.ts
|
|
9
9
|
import { effect } from "@preact/signals-core";
|
|
@@ -11,8 +11,8 @@ import { Capabilities, contributes } from "@dxos/app-framework";
|
|
|
11
11
|
import { PublicKey } from "@dxos/keys";
|
|
12
12
|
import { LocalStorageStore } from "@dxos/local-storage";
|
|
13
13
|
import { ComplexMap } from "@dxos/util";
|
|
14
|
-
var state_default = (context) => {
|
|
15
|
-
const state = new LocalStorageStore(
|
|
14
|
+
var state_default = ((context) => {
|
|
15
|
+
const state = new LocalStorageStore(meta.id, {
|
|
16
16
|
awaiting: void 0,
|
|
17
17
|
spaceNames: {},
|
|
18
18
|
viewersByObject: {},
|
|
@@ -40,8 +40,8 @@ var state_default = (context) => {
|
|
|
40
40
|
unsubscribe();
|
|
41
41
|
state.close();
|
|
42
42
|
});
|
|
43
|
-
};
|
|
43
|
+
});
|
|
44
44
|
export {
|
|
45
45
|
state_default as default
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=state-
|
|
47
|
+
//# sourceMappingURL=state-Y4RVCG4A.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/state.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { PublicKey } from '@dxos/keys';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { ComplexMap } from '@dxos/util';\n\nimport { meta } from '../meta';\nimport { type PluginState } from '../types';\n\nimport { SpaceCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const state = new LocalStorageStore<PluginState>(meta.id, {\n awaiting: undefined,\n spaceNames: {},\n viewersByObject: {},\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n viewersByIdentity: new ComplexMap(PublicKey.hash),\n sdkMigrationRunning: {},\n navigableCollections: false,\n enabledEdgeReplication: false,\n });\n\n state\n .prop({ key: 'spaceNames', type: LocalStorageStore.json<Record<string, string>>() })\n .prop({ key: 'enabledEdgeReplication', type: LocalStorageStore.bool() });\n\n const manager = context.getCapability(Capabilities.PluginManager);\n const unsubscribe = effect(() => {\n // TODO(wittjosiah): Find a way to make this capability-based.\n const enabled = manager.enabled.includes('dxos.org/plugin/stack');\n if (enabled !== state.values.navigableCollections) {\n state.values.navigableCollections = enabled;\n }\n });\n\n return contributes(SpaceCapabilities.State, state.values, () => {\n unsubscribe();\n state.close();\n });\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,iBAAiB;AAC1B,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAO3B,IAAA,iBAAe,CAACC,YAAAA;AACd,QAAMC,QAAQ,IAAIC,kBAA+BC,KAAKC,IAAI;IACxDC,UAAUC;IACVC,YAAY,CAAC;IACbC,iBAAiB,CAAC;;IAElBC,mBAAmB,IAAIC,WAAWC,UAAUC,IAAI;IAChDC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,wBAAwB;EAC1B,CAAA;AAEAd,QACGe,KAAK;IAAEC,KAAK;IAAcC,MAAMhB,kBAAkBiB,KAAI;EAA2B,CAAA,EACjFH,KAAK;IAAEC,KAAK;IAA0BC,MAAMhB,kBAAkBkB,KAAI;EAAG,CAAA;AAExE,QAAMC,UAAUrB,QAAQsB,cAAcC,aAAaC,aAAa;AAChE,QAAMC,cAAcC,OAAO,MAAA;AAEzB,UAAMC,UAAUN,QAAQM,QAAQC,SAAS,uBAAA;AACzC,QAAID,YAAY1B,MAAM4B,OAAOf,sBAAsB;AACjDb,YAAM4B,OAAOf,uBAAuBa;IACtC;EACF,CAAA;AAEA,SAAOG,YAAYC,kBAAkBC,OAAO/B,MAAM4B,QAAQ,MAAA;AACxDJ,gBAAAA;AACAxB,UAAMgC,MAAK;EACb,CAAA;AACF;",
|
|
6
|
+
"names": ["effect", "Capabilities", "contributes", "PublicKey", "LocalStorageStore", "ComplexMap", "context", "state", "LocalStorageStore", "meta", "id", "awaiting", "undefined", "spaceNames", "viewersByObject", "viewersByIdentity", "ComplexMap", "PublicKey", "hash", "sdkMigrationRunning", "navigableCollections", "enabledEdgeReplication", "prop", "key", "type", "json", "bool", "manager", "getCapability", "Capabilities", "PluginManager", "unsubscribe", "effect", "enabled", "includes", "values", "contributes", "SpaceCapabilities", "State", "close"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
meta
|
|
4
|
+
} from "./chunk-MWNATOXL.mjs";
|
|
5
|
+
|
|
6
|
+
// src/components/CollectionMain.tsx
|
|
7
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
8
|
+
import React from "react";
|
|
9
|
+
import { useTranslation } from "@dxos/react-ui";
|
|
10
|
+
import { baseSurface, descriptionMessage, mx } from "@dxos/react-ui-theme";
|
|
11
|
+
var CollectionMain = ({ collection }) => {
|
|
12
|
+
var _effect = _useSignals();
|
|
13
|
+
try {
|
|
14
|
+
const { t } = useTranslation(meta.id);
|
|
15
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
16
|
+
role: "none",
|
|
17
|
+
className: mx(baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
|
|
18
|
+
"data-testid": "composer.firstRunMessage"
|
|
19
|
+
}, /* @__PURE__ */ React.createElement("p", {
|
|
20
|
+
role: "alert",
|
|
21
|
+
className: mx(descriptionMessage, "rounded-md p-8 font-normal text-lg max-is-[24rem] break-words")
|
|
22
|
+
}, collection.name ?? t("unnamed collection label")));
|
|
23
|
+
} finally {
|
|
24
|
+
_effect.f();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
var CollectionMain_default = CollectionMain;
|
|
28
|
+
export {
|
|
29
|
+
CollectionMain,
|
|
30
|
+
CollectionMain_default as default
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=CollectionMain-EU57SRYK.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/CollectionMain.tsx"],
|
|
4
|
+
"sourcesContent": ["//\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 { meta } from '../meta';\n\nexport const CollectionMain = ({ collection }: { collection: DataType.Collection }) => {\n const { t } = useTranslation(meta.id);\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\nexport default CollectionMain;\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,sBAAsB;AAC/B,SAASC,aAAaC,oBAAoBC,UAAU;AAK7C,IAAMC,iBAAiB,CAAC,EAAEC,WAAU,MAAuC;;;AAChF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,WACE,sBAAA,cAACC,OAAAA;MACCC,MAAK;MACLC,WAAWC,GAAGC,aAAa,4DAAA;MAC3BC,eAAY;OAEZ,sBAAA,cAACC,KAAAA;MACCL,MAAK;MACLC,WAAWC,GAAGI,oBAAoB,+DAAA;OAEjCZ,WAAWa,QAAQZ,EAAE,0BAAA,CAAA,CAAA;;;;AAI9B;AAEA,IAAA,yBAAeF;",
|
|
6
|
+
"names": ["React", "useTranslation", "baseSurface", "descriptionMessage", "mx", "CollectionMain", "collection", "t", "useTranslation", "meta", "id", "div", "role", "className", "mx", "baseSurface", "data-testid", "p", "descriptionMessage", "name"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
meta
|
|
4
|
+
} from "./chunk-MWNATOXL.mjs";
|
|
5
|
+
|
|
6
|
+
// src/components/ObjectDetailsPanel.tsx
|
|
7
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
8
|
+
import React, { useCallback } from "react";
|
|
9
|
+
import { setValue } from "@dxos/echo-schema";
|
|
10
|
+
import { invariant } from "@dxos/invariant";
|
|
11
|
+
import { useClient } from "@dxos/react-client";
|
|
12
|
+
import { Filter, getSpace, useQuery, useSchema } from "@dxos/react-client/echo";
|
|
13
|
+
import { Callout, useTranslation } from "@dxos/react-ui";
|
|
14
|
+
import { useSelected } from "@dxos/react-ui-attention";
|
|
15
|
+
import { Form, useRefQueryLookupHandler } from "@dxos/react-ui-form";
|
|
16
|
+
import { typenameFromQuery } from "@dxos/schema";
|
|
17
|
+
import { isNonNullable } from "@dxos/util";
|
|
18
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectDetailsPanel.tsx";
|
|
19
|
+
var ObjectDetailsPanel = ({ objectId, view }) => {
|
|
20
|
+
var _effect = _useSignals();
|
|
21
|
+
try {
|
|
22
|
+
const { t } = useTranslation(meta.id);
|
|
23
|
+
const client = useClient();
|
|
24
|
+
const space = getSpace(view);
|
|
25
|
+
const typename = view.query ? typenameFromQuery(view.query.ast) : void 0;
|
|
26
|
+
const schema = useSchema(client, space, typename);
|
|
27
|
+
const queriedObjects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());
|
|
28
|
+
const selectedRows = useSelected(objectId, "multi");
|
|
29
|
+
const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);
|
|
30
|
+
const handleRefQueryLookup = useRefQueryLookupHandler({
|
|
31
|
+
space
|
|
32
|
+
});
|
|
33
|
+
const handleSave = useCallback((values, { changed }) => {
|
|
34
|
+
const id = values.id;
|
|
35
|
+
invariant(typeof id === "string", void 0, {
|
|
36
|
+
F: __dxlog_file,
|
|
37
|
+
L: 38,
|
|
38
|
+
S: void 0,
|
|
39
|
+
A: [
|
|
40
|
+
"typeof id === 'string'",
|
|
41
|
+
""
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
const object = queriedObjects.find((obj) => obj.id === id);
|
|
45
|
+
invariant(object, void 0, {
|
|
46
|
+
F: __dxlog_file,
|
|
47
|
+
L: 40,
|
|
48
|
+
S: void 0,
|
|
49
|
+
A: [
|
|
50
|
+
"object",
|
|
51
|
+
""
|
|
52
|
+
]
|
|
53
|
+
});
|
|
54
|
+
const changedPaths = Object.keys(changed).filter((path) => changed[path]);
|
|
55
|
+
for (const path of changedPaths) {
|
|
56
|
+
const value = values[path];
|
|
57
|
+
setValue(object, path, value);
|
|
58
|
+
}
|
|
59
|
+
}, [
|
|
60
|
+
queriedObjects
|
|
61
|
+
]);
|
|
62
|
+
if (selectedObjects.length === 0) {
|
|
63
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
64
|
+
role: "none",
|
|
65
|
+
className: "plb-cardSpacingBlock pli-cardSpacingInline"
|
|
66
|
+
}, /* @__PURE__ */ React.createElement(Callout.Root, {
|
|
67
|
+
classNames: "is-full"
|
|
68
|
+
}, /* @__PURE__ */ React.createElement(Callout.Title, null, t("row details no selection label"))));
|
|
69
|
+
}
|
|
70
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
71
|
+
role: "none",
|
|
72
|
+
className: "bs-full is-full flex flex-col p-2 gap-1 overflow-y-auto"
|
|
73
|
+
}, schema && selectedObjects.map((object) => /* @__PURE__ */ React.createElement("div", {
|
|
74
|
+
key: object.id,
|
|
75
|
+
className: "border border-separator rounded"
|
|
76
|
+
}, /* @__PURE__ */ React.createElement(Form, {
|
|
77
|
+
autoSave: true,
|
|
78
|
+
schema,
|
|
79
|
+
values: object,
|
|
80
|
+
onSave: handleSave,
|
|
81
|
+
onQueryRefOptions: handleRefQueryLookup
|
|
82
|
+
}))));
|
|
83
|
+
} finally {
|
|
84
|
+
_effect.f();
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
var ObjectDetailsPanel_default = ObjectDetailsPanel;
|
|
88
|
+
export {
|
|
89
|
+
ObjectDetailsPanel_default as default
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=ObjectDetailsPanel-TQ5GN4QJ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ObjectDetailsPanel.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type JsonPath, setValue } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getSpace, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { Callout, useTranslation } from '@dxos/react-ui';\nimport { useSelected } from '@dxos/react-ui-attention';\nimport { Form, useRefQueryLookupHandler } from '@dxos/react-ui-form';\nimport { type DataType } from '@dxos/schema';\nimport { typenameFromQuery } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../meta';\n\ntype RowDetailsPanelProps = { objectId: string; view: DataType.View };\n\nconst ObjectDetailsPanel = ({ objectId, view }: RowDetailsPanelProps) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const space = getSpace(view);\n const typename = view.query ? typenameFromQuery(view.query.ast) : undefined;\n const schema = useSchema(client, space, typename);\n\n const queriedObjects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());\n const selectedRows = useSelected(objectId, 'multi');\n const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);\n\n const handleRefQueryLookup = useRefQueryLookupHandler({ space });\n\n const handleSave = useCallback(\n (values: any, { changed }: { changed: Record<JsonPath, boolean> }) => {\n const id = values.id;\n invariant(typeof id === 'string');\n const object = queriedObjects.find((obj) => obj.id === id);\n invariant(object);\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n for (const path of changedPaths) {\n const value = values[path];\n setValue(object, path, value);\n }\n },\n [queriedObjects],\n );\n\n if (selectedObjects.length === 0) {\n return (\n <div role='none' className='plb-cardSpacingBlock pli-cardSpacingInline'>\n <Callout.Root classNames='is-full'>\n <Callout.Title>{t('row details no selection label')}</Callout.Title>\n </Callout.Root>\n </div>\n );\n }\n\n return (\n <div role='none' className='bs-full is-full flex flex-col p-2 gap-1 overflow-y-auto'>\n {schema &&\n selectedObjects.map((object) => (\n <div key={object.id} className='border border-separator rounded'>\n <Form\n autoSave\n schema={schema}\n values={object}\n onSave={handleSave}\n onQueryRefOptions={handleRefQueryLookup}\n />\n </div>\n ))}\n </div>\n );\n};\n\nexport default ObjectDetailsPanel;\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAAwBC,gBAAgB;AACxC,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,UAAUC,UAAUC,iBAAiB;AACtD,SAASC,SAASC,sBAAsB;AACxC,SAASC,mBAAmB;AAC5B,SAASC,MAAMC,gCAAgC;AAE/C,SAASC,yBAAyB;AAClC,SAASC,qBAAqB;;AAM9B,IAAMC,qBAAqB,CAAC,EAAEC,UAAUC,KAAI,MAAwB;;;AAClE,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,SAASC,UAAAA;AACf,UAAMC,QAAQC,SAASR,IAAAA;AACvB,UAAMS,WAAWT,KAAKU,QAAQC,kBAAkBX,KAAKU,MAAME,GAAG,IAAIC;AAClE,UAAMC,SAASC,UAAUV,QAAQE,OAAOE,QAAAA;AAExC,UAAMO,iBAAiBC,SAASV,OAAOO,SAASI,OAAOC,KAAKL,MAAAA,IAAUI,OAAOE,QAAO,CAAA;AACpF,UAAMC,eAAeC,YAAYvB,UAAU,OAAA;AAC3C,UAAMwB,kBAAkBF,aAAaG,IAAI,CAACpB,OAAOY,eAAeS,KAAK,CAACC,QAAQA,IAAItB,OAAOA,EAAAA,CAAAA,EAAKuB,OAAOC,aAAAA;AAErG,UAAMC,uBAAuBC,yBAAyB;MAAEvB;IAAM,CAAA;AAE9D,UAAMwB,aAAaC,YACjB,CAACC,QAAa,EAAEC,QAAO,MAA0C;AAC/D,YAAM9B,KAAK6B,OAAO7B;AAClB+B,gBAAU,OAAO/B,OAAO,UAAA,QAAA;;;;;;;;;AACxB,YAAMgC,SAASpB,eAAeS,KAAK,CAACC,QAAQA,IAAItB,OAAOA,EAAAA;AACvD+B,gBAAUC,QAAAA,QAAAA;;;;;;;;;AAEV,YAAMC,eAAeC,OAAOC,KAAKL,OAAAA,EAASP,OAAO,CAACa,SAASN,QAAQM,IAAAA,CAAiB;AACpF,iBAAWA,QAAQH,cAAc;AAC/B,cAAMI,QAAQR,OAAOO,IAAAA;AACrBE,iBAASN,QAAQI,MAAMC,KAAAA;MACzB;IACF,GACA;MAACzB;KAAe;AAGlB,QAAIO,gBAAgBoB,WAAW,GAAG;AAChC,aACE,sBAAA,cAACC,OAAAA;QAAIC,MAAK;QAAOC,WAAU;SACzB,sBAAA,cAACC,QAAQC,MAAI;QAACC,YAAW;SACvB,sBAAA,cAACF,QAAQG,OAAK,MAAEjD,EAAE,gCAAA,CAAA,CAAA,CAAA;IAI1B;AAEA,WACE,sBAAA,cAAC2C,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACxBhC,UACCS,gBAAgBC,IAAI,CAACY,WACnB,sBAAA,cAACQ,OAAAA;MAAIO,KAAKf,OAAOhC;MAAI0C,WAAU;OAC7B,sBAAA,cAACM,MAAAA;MACCC,UAAAA;MACAvC;MACAmB,QAAQG;MACRkB,QAAQvB;MACRwB,mBAAmB1B;;;;;AAMjC;AAEA,IAAA,6BAAe/B;",
|
|
6
|
+
"names": ["React", "useCallback", "setValue", "invariant", "useClient", "Filter", "getSpace", "useQuery", "useSchema", "Callout", "useTranslation", "useSelected", "Form", "useRefQueryLookupHandler", "typenameFromQuery", "isNonNullable", "ObjectDetailsPanel", "objectId", "view", "t", "useTranslation", "meta", "id", "client", "useClient", "space", "getSpace", "typename", "query", "typenameFromQuery", "ast", "undefined", "schema", "useSchema", "queriedObjects", "useQuery", "Filter", "type", "nothing", "selectedRows", "useSelected", "selectedObjects", "map", "find", "obj", "filter", "isNonNullable", "handleRefQueryLookup", "useRefQueryLookupHandler", "handleSave", "useCallback", "values", "changed", "invariant", "object", "changedPaths", "Object", "keys", "path", "value", "setValue", "length", "div", "role", "className", "Callout", "Root", "classNames", "Title", "key", "Form", "autoSave", "onSave", "onQueryRefOptions"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/components/RecordMain.tsx
|
|
4
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
5
|
+
import React, { useCallback } from "react";
|
|
6
|
+
import { Obj } from "@dxos/echo";
|
|
7
|
+
import { setValue } from "@dxos/echo-schema";
|
|
8
|
+
import { invariant } from "@dxos/invariant";
|
|
9
|
+
import { getSpace } from "@dxos/react-client/echo";
|
|
10
|
+
import { Form, useRefQueryLookupHandler } from "@dxos/react-ui-form";
|
|
11
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/RecordMain.tsx";
|
|
12
|
+
var RecordMain = ({ record }) => {
|
|
13
|
+
var _effect = _useSignals();
|
|
14
|
+
try {
|
|
15
|
+
const space = getSpace(record);
|
|
16
|
+
const schema = Obj.getSchema(record);
|
|
17
|
+
invariant(schema, "Record has no schema.", {
|
|
18
|
+
F: __dxlog_file,
|
|
19
|
+
L: 16,
|
|
20
|
+
S: void 0,
|
|
21
|
+
A: [
|
|
22
|
+
"schema",
|
|
23
|
+
"'Record has no schema.'"
|
|
24
|
+
]
|
|
25
|
+
});
|
|
26
|
+
const handleRefQueryLookup = useRefQueryLookupHandler({
|
|
27
|
+
space
|
|
28
|
+
});
|
|
29
|
+
const handleSave = useCallback((values, { changed }) => {
|
|
30
|
+
const id = values.id;
|
|
31
|
+
invariant(typeof id === "string", void 0, {
|
|
32
|
+
F: __dxlog_file,
|
|
33
|
+
L: 23,
|
|
34
|
+
S: void 0,
|
|
35
|
+
A: [
|
|
36
|
+
"typeof id === 'string'",
|
|
37
|
+
""
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
const changedPaths = Object.keys(changed).filter((path) => changed[path]);
|
|
41
|
+
for (const path of changedPaths) {
|
|
42
|
+
const value = values[path];
|
|
43
|
+
setValue(record, path, value);
|
|
44
|
+
}
|
|
45
|
+
}, [
|
|
46
|
+
record
|
|
47
|
+
]);
|
|
48
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
49
|
+
role: "none",
|
|
50
|
+
className: "container-max-width flex flex-col p-2 gap-1 overflow-y-auto"
|
|
51
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
52
|
+
key: record.id,
|
|
53
|
+
className: "border border-separator rounded"
|
|
54
|
+
}, /* @__PURE__ */ React.createElement(Form, {
|
|
55
|
+
autoSave: true,
|
|
56
|
+
schema,
|
|
57
|
+
values: record,
|
|
58
|
+
onSave: handleSave,
|
|
59
|
+
onQueryRefOptions: handleRefQueryLookup
|
|
60
|
+
})));
|
|
61
|
+
} finally {
|
|
62
|
+
_effect.f();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var RecordMain_default = RecordMain;
|
|
66
|
+
export {
|
|
67
|
+
RecordMain,
|
|
68
|
+
RecordMain_default as default
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=RecordMain-WLYJMYER.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/RecordMain.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { type JsonPath, setValue } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Form, useRefQueryLookupHandler } from '@dxos/react-ui-form';\n\nexport const RecordMain = ({ record }: { record: Obj.Any }) => {\n const space = getSpace(record);\n const schema = Obj.getSchema(record);\n invariant(schema, 'Record has no schema.');\n\n const handleRefQueryLookup = useRefQueryLookupHandler({ space });\n\n const handleSave = useCallback(\n (values: any, { changed }: { changed: Record<JsonPath, boolean> }) => {\n const id = values.id;\n invariant(typeof id === 'string');\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n for (const path of changedPaths) {\n const value = values[path];\n setValue(record, path, value);\n }\n },\n [record],\n );\n\n return (\n <div role='none' className='container-max-width flex flex-col p-2 gap-1 overflow-y-auto'>\n <div key={record.id} className='border border-separator rounded'>\n <Form autoSave schema={schema} values={record} onSave={handleSave} onQueryRefOptions={handleRefQueryLookup} />\n </div>\n </div>\n );\n};\n\nexport default RecordMain;\n"],
|
|
5
|
+
"mappings": ";;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAASC,WAAW;AACpB,SAAwBC,gBAAgB;AACxC,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,MAAMC,gCAAgC;;AAExC,IAAMC,aAAa,CAAC,EAAEC,OAAM,MAAuB;;;AACxD,UAAMC,QAAQL,SAASI,MAAAA;AACvB,UAAME,SAAST,IAAIU,UAAUH,MAAAA;AAC7BL,cAAUO,QAAQ,yBAAA;;;;;;;;;AAElB,UAAME,uBAAuBN,yBAAyB;MAAEG;IAAM,CAAA;AAE9D,UAAMI,aAAab,YACjB,CAACc,QAAa,EAAEC,QAAO,MAA0C;AAC/D,YAAMC,KAAKF,OAAOE;AAClBb,gBAAU,OAAOa,OAAO,UAAA,QAAA;;;;;;;;;AAExB,YAAMC,eAAeC,OAAOC,KAAKJ,OAAAA,EAASK,OAAO,CAACC,SAASN,QAAQM,IAAAA,CAAiB;AACpF,iBAAWA,QAAQJ,cAAc;AAC/B,cAAMK,QAAQR,OAAOO,IAAAA;AACrBnB,iBAASM,QAAQa,MAAMC,KAAAA;MACzB;IACF,GACA;MAACd;KAAO;AAGV,WACE,sBAAA,cAACe,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACF,OAAAA;MAAIG,KAAKlB,OAAOQ;MAAIS,WAAU;OAC7B,sBAAA,cAACpB,MAAAA;MAAKsB,UAAAA;MAASjB;MAAgBI,QAAQN;MAAQoB,QAAQf;MAAYgB,mBAAmBjB;;;;;AAI9F;AAEA,IAAA,qBAAeL;",
|
|
6
|
+
"names": ["React", "useCallback", "Obj", "setValue", "invariant", "getSpace", "Form", "useRefQueryLookupHandler", "RecordMain", "record", "space", "schema", "getSchema", "handleRefQueryLookup", "handleSave", "values", "changed", "id", "changedPaths", "Object", "keys", "filter", "path", "value", "div", "role", "className", "key", "autoSave", "onSave", "onQueryRefOptions"]
|
|
7
|
+
}
|