@dxos/plugin-space 0.8.4-main.937b3ca → 0.8.4-main.9735255
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/{CollectionArticle-XPNA6EHZ.mjs → CollectionArticle-OQMUVFVV.mjs} +53 -57
- package/dist/lib/browser/CollectionArticle-OQMUVFVV.mjs.map +7 -0
- package/dist/lib/browser/{chunk-3X2EA2OA.mjs → chunk-TWUMNPG4.mjs} +2 -2
- package/dist/lib/browser/index.mjs +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-PI7VTZUZ.mjs → react-root-3SPMM45V.mjs} +2 -2
- package/dist/lib/browser/{react-surface-BPE7VWI7.mjs → react-surface-UUS7NDHS.mjs} +2 -2
- package/dist/lib/node-esm/{CollectionArticle-WGHNZNO2.mjs → CollectionArticle-V5OOJVJJ.mjs} +53 -57
- package/dist/lib/node-esm/CollectionArticle-V5OOJVJJ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-EYS3L2NO.mjs → chunk-FYSBFBSD.mjs} +2 -2
- package/dist/lib/node-esm/index.mjs +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-KUXM33JI.mjs → react-root-Y6JTGDTW.mjs} +2 -2
- package/dist/lib/node-esm/{react-surface-STCQKUZ4.mjs → react-surface-SQ4SK3OK.mjs} +2 -2
- package/dist/types/src/components/CollectionArticle.d.ts +1 -1
- package/dist/types/src/components/CollectionArticle.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/types/types.d.ts +8 -8
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +56 -56
- package/src/components/CollectionArticle.tsx +62 -67
- package/dist/lib/browser/CollectionArticle-XPNA6EHZ.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionArticle-WGHNZNO2.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-3X2EA2OA.mjs.map → chunk-TWUMNPG4.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-PI7VTZUZ.mjs.map → react-root-3SPMM45V.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-BPE7VWI7.mjs.map → react-surface-UUS7NDHS.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-EYS3L2NO.mjs.map → chunk-FYSBFBSD.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-KUXM33JI.mjs.map → react-root-Y6JTGDTW.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-surface-STCQKUZ4.mjs.map → react-surface-SQ4SK3OK.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-space",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.9735255",
|
|
4
4
|
"description": "DXOS Surface plugin for DXOS ECHO Spaces",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -53,53 +53,53 @@
|
|
|
53
53
|
"react-drag-drop-files": "^2.3.8",
|
|
54
54
|
"react-is": "~19.2.0",
|
|
55
55
|
"react-qr-rounded": "^1.0.0",
|
|
56
|
-
"@dxos/
|
|
57
|
-
"@dxos/
|
|
58
|
-
"@dxos/
|
|
59
|
-
"@dxos/
|
|
60
|
-
"@dxos/
|
|
61
|
-
"@dxos/client": "0.8.4-main.
|
|
62
|
-
"@dxos/
|
|
63
|
-
"@dxos/
|
|
64
|
-
"@dxos/
|
|
65
|
-
"@dxos/echo
|
|
66
|
-
"@dxos/echo-
|
|
67
|
-
"@dxos/echo": "0.8.4-main.
|
|
68
|
-
"@dxos/
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/invariant": "0.8.4-main.
|
|
71
|
-
"@dxos/
|
|
72
|
-
"@dxos/
|
|
73
|
-
"@dxos/
|
|
74
|
-
"@dxos/
|
|
75
|
-
"@dxos/
|
|
76
|
-
"@dxos/plugin-
|
|
77
|
-
"@dxos/
|
|
78
|
-
"@dxos/plugin-
|
|
79
|
-
"@dxos/plugin-
|
|
80
|
-
"@dxos/plugin-
|
|
81
|
-
"@dxos/plugin-
|
|
82
|
-
"@dxos/
|
|
83
|
-
"@dxos/
|
|
84
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
85
|
-
"@dxos/react-ui
|
|
86
|
-
"@dxos/react-ui-
|
|
87
|
-
"@dxos/react-ui-
|
|
88
|
-
"@dxos/react-ui-
|
|
89
|
-
"@dxos/react-ui-
|
|
90
|
-
"@dxos/react-ui-
|
|
91
|
-
"@dxos/react-ui-pickers": "0.8.4-main.
|
|
92
|
-
"@dxos/react-ui-
|
|
93
|
-
"@dxos/react-ui-
|
|
94
|
-
"@dxos/react-ui-tabs": "0.8.4-main.
|
|
95
|
-
"@dxos/
|
|
96
|
-
"@dxos/
|
|
97
|
-
"@dxos/
|
|
98
|
-
"@dxos/
|
|
99
|
-
"@dxos/
|
|
100
|
-
"@dxos/ui-types": "0.8.4-main.
|
|
101
|
-
"@dxos/
|
|
102
|
-
"@dxos/util": "0.8.4-main.
|
|
56
|
+
"@dxos/ai": "0.8.4-main.9735255",
|
|
57
|
+
"@dxos/app-framework": "0.8.4-main.9735255",
|
|
58
|
+
"@dxos/async": "0.8.4-main.9735255",
|
|
59
|
+
"@dxos/cli-util": "0.8.4-main.9735255",
|
|
60
|
+
"@dxos/blueprints": "0.8.4-main.9735255",
|
|
61
|
+
"@dxos/client": "0.8.4-main.9735255",
|
|
62
|
+
"@dxos/client-protocol": "0.8.4-main.9735255",
|
|
63
|
+
"@dxos/context": "0.8.4-main.9735255",
|
|
64
|
+
"@dxos/display-name": "0.8.4-main.9735255",
|
|
65
|
+
"@dxos/echo": "0.8.4-main.9735255",
|
|
66
|
+
"@dxos/echo-atom": "0.8.4-main.9735255",
|
|
67
|
+
"@dxos/echo-db": "0.8.4-main.9735255",
|
|
68
|
+
"@dxos/echo-protocol": "0.8.4-main.9735255",
|
|
69
|
+
"@dxos/effect": "0.8.4-main.9735255",
|
|
70
|
+
"@dxos/invariant": "0.8.4-main.9735255",
|
|
71
|
+
"@dxos/functions": "0.8.4-main.9735255",
|
|
72
|
+
"@dxos/keys": "0.8.4-main.9735255",
|
|
73
|
+
"@dxos/log": "0.8.4-main.9735255",
|
|
74
|
+
"@dxos/migrations": "0.8.4-main.9735255",
|
|
75
|
+
"@dxos/operation": "0.8.4-main.9735255",
|
|
76
|
+
"@dxos/plugin-deck": "0.8.4-main.9735255",
|
|
77
|
+
"@dxos/plugin-attention": "0.8.4-main.9735255",
|
|
78
|
+
"@dxos/plugin-graph": "0.8.4-main.9735255",
|
|
79
|
+
"@dxos/plugin-client": "0.8.4-main.9735255",
|
|
80
|
+
"@dxos/plugin-status-bar": "0.8.4-main.9735255",
|
|
81
|
+
"@dxos/plugin-observability": "0.8.4-main.9735255",
|
|
82
|
+
"@dxos/protocols": "0.8.4-main.9735255",
|
|
83
|
+
"@dxos/react-client": "0.8.4-main.9735255",
|
|
84
|
+
"@dxos/react-ui-attention": "0.8.4-main.9735255",
|
|
85
|
+
"@dxos/react-ui": "0.8.4-main.9735255",
|
|
86
|
+
"@dxos/react-ui-form": "0.8.4-main.9735255",
|
|
87
|
+
"@dxos/react-ui-components": "0.8.4-main.9735255",
|
|
88
|
+
"@dxos/react-ui-list": "0.8.4-main.9735255",
|
|
89
|
+
"@dxos/react-ui-editor": "0.8.4-main.9735255",
|
|
90
|
+
"@dxos/react-ui-mosaic": "0.8.4-main.9735255",
|
|
91
|
+
"@dxos/react-ui-pickers": "0.8.4-main.9735255",
|
|
92
|
+
"@dxos/react-ui-searchlist": "0.8.4-main.9735255",
|
|
93
|
+
"@dxos/react-ui-syntax-highlighter": "0.8.4-main.9735255",
|
|
94
|
+
"@dxos/react-ui-tabs": "0.8.4-main.9735255",
|
|
95
|
+
"@dxos/react-ui-stack": "0.8.4-main.9735255",
|
|
96
|
+
"@dxos/schema": "0.8.4-main.9735255",
|
|
97
|
+
"@dxos/react-ui-masonry": "0.8.4-main.9735255",
|
|
98
|
+
"@dxos/shell": "0.8.4-main.9735255",
|
|
99
|
+
"@dxos/ui-theme": "0.8.4-main.9735255",
|
|
100
|
+
"@dxos/ui-types": "0.8.4-main.9735255",
|
|
101
|
+
"@dxos/types": "0.8.4-main.9735255",
|
|
102
|
+
"@dxos/util": "0.8.4-main.9735255"
|
|
103
103
|
},
|
|
104
104
|
"devDependencies": {
|
|
105
105
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "1.1.0",
|
|
@@ -112,12 +112,12 @@
|
|
|
112
112
|
"react": "~19.2.3",
|
|
113
113
|
"react-dom": "~19.2.3",
|
|
114
114
|
"vite": "7.1.9",
|
|
115
|
-
"@dxos/
|
|
116
|
-
"@dxos/
|
|
117
|
-
"@dxos/
|
|
118
|
-
"@dxos/
|
|
119
|
-
"@dxos/
|
|
120
|
-
"@dxos/
|
|
115
|
+
"@dxos/lit-ui": "0.8.4-main.9735255",
|
|
116
|
+
"@dxos/react-ui": "0.8.4-main.9735255",
|
|
117
|
+
"@dxos/plugin-testing": "0.8.4-main.9735255",
|
|
118
|
+
"@dxos/ui-theme": "0.8.4-main.9735255",
|
|
119
|
+
"@dxos/random": "0.8.4-main.9735255",
|
|
120
|
+
"@dxos/storybook-utils": "0.8.4-main.9735255"
|
|
121
121
|
},
|
|
122
122
|
"peerDependencies": {
|
|
123
123
|
"@effect-atom/atom-react": "^0.4.6",
|
|
@@ -125,8 +125,8 @@
|
|
|
125
125
|
"effect": "3.19.11",
|
|
126
126
|
"react": "~19.2.3",
|
|
127
127
|
"react-dom": "~19.2.3",
|
|
128
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
129
|
-
"@dxos/ui-theme": "0.8.4-main.
|
|
128
|
+
"@dxos/react-ui": "0.8.4-main.9735255",
|
|
129
|
+
"@dxos/ui-theme": "0.8.4-main.9735255"
|
|
130
130
|
},
|
|
131
131
|
"publishConfig": {
|
|
132
132
|
"access": "public"
|
|
@@ -2,27 +2,36 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import React, { useMemo } from 'react';
|
|
5
|
+
import React, { useCallback, useMemo } from 'react';
|
|
6
6
|
|
|
7
7
|
import { Common } from '@dxos/app-framework';
|
|
8
|
-
import { type SurfaceComponentProps,
|
|
8
|
+
import { type SurfaceComponentProps, useCapabilities, useOperationInvoker } from '@dxos/app-framework/react';
|
|
9
9
|
import { Filter, Obj } from '@dxos/echo';
|
|
10
|
-
import { Graph, Node, useActionRunner, useConnections } from '@dxos/plugin-graph';
|
|
11
10
|
import { useClient } from '@dxos/react-client';
|
|
12
11
|
import { getSpace, useQuery } from '@dxos/react-client/echo';
|
|
13
12
|
import { Toolbar, toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
14
13
|
import { Card, Layout, Mosaic, type StackTileComponent } from '@dxos/react-ui-mosaic';
|
|
15
14
|
import { SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';
|
|
16
15
|
import { Collection } from '@dxos/schema';
|
|
16
|
+
import { getStyles } from '@dxos/ui-theme';
|
|
17
17
|
|
|
18
18
|
import { meta } from '../meta';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Hook to resolve metadata (icon, iconHue, etc.) for objects based on their typename.
|
|
22
|
+
*/
|
|
23
|
+
const useMetadataResolver = () => {
|
|
24
|
+
const allMetadata = useCapabilities(Common.Capability.Metadata);
|
|
25
|
+
return useCallback((typename: string) => allMetadata.find((m) => m.id === typename)?.metadata ?? {}, [allMetadata]);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Article view for collections.
|
|
22
30
|
*/
|
|
23
31
|
export const CollectionArticle = ({ subject }: SurfaceComponentProps<Collection.Collection | Collection.Managed>) => {
|
|
24
32
|
const { t } = useTranslation(meta.id);
|
|
25
|
-
const
|
|
33
|
+
const resolveMetadata = useMetadataResolver();
|
|
34
|
+
const { items, handleSearch } = useCollectionItems(subject, resolveMetadata);
|
|
26
35
|
|
|
27
36
|
return (
|
|
28
37
|
<Layout.Main toolbar>
|
|
@@ -33,7 +42,7 @@ export const CollectionArticle = ({ subject }: SurfaceComponentProps<Collection.
|
|
|
33
42
|
<SearchList.Content>
|
|
34
43
|
<Mosaic.Container asChild>
|
|
35
44
|
<Mosaic.Viewport padding>
|
|
36
|
-
<Mosaic.Stack items={items} getId={(
|
|
45
|
+
<Mosaic.Stack items={items} getId={(item) => item.id} Tile={ObjectTile} />
|
|
37
46
|
</Mosaic.Viewport>
|
|
38
47
|
</Mosaic.Container>
|
|
39
48
|
</SearchList.Content>
|
|
@@ -42,32 +51,31 @@ export const CollectionArticle = ({ subject }: SurfaceComponentProps<Collection.
|
|
|
42
51
|
);
|
|
43
52
|
};
|
|
44
53
|
|
|
45
|
-
|
|
54
|
+
type ObjectItem = {
|
|
55
|
+
id: string;
|
|
56
|
+
object: Obj.Unknown;
|
|
57
|
+
icon: string;
|
|
58
|
+
iconHue?: string;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const ObjectTile: StackTileComponent<ObjectItem> = ({ data: item }) => {
|
|
46
62
|
const { t } = useTranslation(meta.id);
|
|
47
|
-
const { graph } = useAppGraph();
|
|
48
63
|
const { invokeSync } = useOperationInvoker();
|
|
49
|
-
const runAction = useActionRunner();
|
|
50
64
|
|
|
51
|
-
const
|
|
52
|
-
const
|
|
65
|
+
const typename = Obj.getTypename(item.object) ?? '';
|
|
66
|
+
const label =
|
|
67
|
+
Obj.getLabel(item.object) ??
|
|
68
|
+
toLocalizedString(['object name placeholder', { ns: typename, defaultValue: item.id }], t);
|
|
69
|
+
const styles = item.iconHue ? getStyles(item.iconHue) : undefined;
|
|
53
70
|
|
|
54
71
|
const handleClick = () => {
|
|
55
|
-
|
|
56
|
-
// Run action if this is an action node.
|
|
57
|
-
const [parent] = Graph.getConnections(graph, node.id, 'inbound');
|
|
58
|
-
if (parent) {
|
|
59
|
-
void runAction(node, { parent });
|
|
60
|
-
}
|
|
61
|
-
} else {
|
|
62
|
-
// Navigate to the node.
|
|
63
|
-
invokeSync(Common.LayoutOperation.Open, { subject: [node.id] });
|
|
64
|
-
}
|
|
72
|
+
invokeSync(Common.LayoutOperation.Open, { subject: [item.id] });
|
|
65
73
|
};
|
|
66
74
|
|
|
67
75
|
return (
|
|
68
76
|
<Card.Root fullWidth>
|
|
69
77
|
<Card.Toolbar>
|
|
70
|
-
<Card.ToolbarIconButton variant='ghost' label={label} icon={icon} />
|
|
78
|
+
<Card.ToolbarIconButton variant='ghost' label={label} icon={item.icon} iconOnly iconClassNames={styles?.icon} />
|
|
71
79
|
<Card.Title onClick={handleClick}>{label}</Card.Title>
|
|
72
80
|
<Card.Menu />
|
|
73
81
|
</Card.Toolbar>
|
|
@@ -78,32 +86,19 @@ const NodeTile: StackTileComponent<Node.Node> = ({ data: node }) => {
|
|
|
78
86
|
export default CollectionArticle;
|
|
79
87
|
|
|
80
88
|
/**
|
|
81
|
-
* Hook to get items from a regular collection
|
|
89
|
+
* Hook to get items from a regular collection.
|
|
82
90
|
*/
|
|
83
|
-
const useRegularCollectionItems = (collection: Collection.Collection) => {
|
|
84
|
-
const { graph } = useAppGraph();
|
|
85
|
-
const collectionId = Obj.getDXN(collection).toString();
|
|
86
|
-
const children = useConnections(graph, collectionId, 'outbound');
|
|
87
|
-
|
|
88
|
-
// Filter children to those which are objects or actions with disposition 'item'.
|
|
91
|
+
const useRegularCollectionItems = (collection: Collection.Collection): Obj.Unknown[] => {
|
|
89
92
|
return useMemo(
|
|
90
|
-
() =>
|
|
91
|
-
|
|
92
|
-
// Include regular objects.
|
|
93
|
-
if (Obj.isObject(node.data)) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
// Include actions with disposition 'item'.
|
|
97
|
-
return Node.isAction(node) && node.properties.disposition === 'item';
|
|
98
|
-
}),
|
|
99
|
-
[children],
|
|
93
|
+
() => (collection.objects ?? []).map((ref) => ref.target).filter((obj): obj is Obj.Unknown => Obj.isObject(obj)),
|
|
94
|
+
[collection.objects],
|
|
100
95
|
);
|
|
101
96
|
};
|
|
102
97
|
|
|
103
98
|
/**
|
|
104
99
|
* Hook to get items from a managed collection by querying the space.
|
|
105
100
|
*/
|
|
106
|
-
const useManagedCollectionItems = (collection: Collection.Managed) => {
|
|
101
|
+
const useManagedCollectionItems = (collection: Collection.Managed): Obj.Unknown[] => {
|
|
107
102
|
const client = useClient();
|
|
108
103
|
const space = getSpace(collection);
|
|
109
104
|
|
|
@@ -112,46 +107,46 @@ const useManagedCollectionItems = (collection: Collection.Managed) => {
|
|
|
112
107
|
[client, collection],
|
|
113
108
|
);
|
|
114
109
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
// Convert objects to node-like items for consistent rendering.
|
|
118
|
-
return useMemo(
|
|
119
|
-
() =>
|
|
120
|
-
objects.map(
|
|
121
|
-
(obj) =>
|
|
122
|
-
({
|
|
123
|
-
id: Obj.getDXN(obj).toString(),
|
|
124
|
-
type: 'managed-object',
|
|
125
|
-
data: obj,
|
|
126
|
-
properties: {
|
|
127
|
-
label: Obj.getLabel(obj) ?? obj.id,
|
|
128
|
-
icon: 'ph--placeholder--regular',
|
|
129
|
-
},
|
|
130
|
-
}) as Node.Node,
|
|
131
|
-
),
|
|
132
|
-
[objects],
|
|
133
|
-
);
|
|
110
|
+
return useQuery(space?.db, schema ? Filter.type(schema) : Filter.nothing());
|
|
134
111
|
};
|
|
135
112
|
|
|
113
|
+
type MetadataResolver = (typename: string) => { icon?: string; iconHue?: string };
|
|
114
|
+
|
|
136
115
|
/**
|
|
137
116
|
* Combined hook to get collection items with search/filter support.
|
|
138
117
|
*/
|
|
139
|
-
const useCollectionItems = (
|
|
118
|
+
const useCollectionItems = (
|
|
119
|
+
collection: Collection.Collection | Collection.Managed,
|
|
120
|
+
resolveMetadata: MetadataResolver,
|
|
121
|
+
) => {
|
|
140
122
|
const isManaged = Obj.instanceOf(Collection.Managed, collection);
|
|
141
123
|
|
|
142
124
|
// Call both hooks unconditionally to satisfy React's rules of hooks.
|
|
143
|
-
const
|
|
144
|
-
const
|
|
125
|
+
const regularObjects = useRegularCollectionItems(collection as Collection.Collection);
|
|
126
|
+
const managedObjects = useManagedCollectionItems(collection as Collection.Managed);
|
|
145
127
|
|
|
146
|
-
const
|
|
128
|
+
const objects = isManaged ? managedObjects : regularObjects;
|
|
129
|
+
|
|
130
|
+
// Convert objects to items with resolved metadata.
|
|
131
|
+
const items = useMemo(
|
|
132
|
+
() =>
|
|
133
|
+
objects.map((obj) => {
|
|
134
|
+
const typename = Obj.getTypename(obj);
|
|
135
|
+
const metadata = typename ? resolveMetadata(typename) : {};
|
|
136
|
+
return {
|
|
137
|
+
id: Obj.getDXN(obj).toString(),
|
|
138
|
+
object: obj,
|
|
139
|
+
icon: metadata.icon ?? 'ph--placeholder--regular',
|
|
140
|
+
iconHue: metadata.iconHue,
|
|
141
|
+
} satisfies ObjectItem;
|
|
142
|
+
}),
|
|
143
|
+
[objects, resolveMetadata],
|
|
144
|
+
);
|
|
147
145
|
|
|
148
146
|
// Use searchlist results for filtering.
|
|
149
147
|
const { results, handleSearch } = useSearchListResults({
|
|
150
148
|
items,
|
|
151
|
-
extract: (
|
|
152
|
-
const label = node.properties.label;
|
|
153
|
-
return typeof label === 'string' ? label : (label?.en ?? node.id);
|
|
154
|
-
},
|
|
149
|
+
extract: (item) => Obj.getLabel(item.object) ?? item.id,
|
|
155
150
|
});
|
|
156
151
|
|
|
157
152
|
return { items: results, handleSearch };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/CollectionArticle.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Common } from '@dxos/app-framework';\nimport { type SurfaceComponentProps, useAppGraph, useOperationInvoker } from '@dxos/app-framework/react';\nimport { Filter, Obj } from '@dxos/echo';\nimport { Graph, Node, useActionRunner, useConnections } from '@dxos/plugin-graph';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace, useQuery } from '@dxos/react-client/echo';\nimport { Toolbar, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Card, Layout, Mosaic, type StackTileComponent } from '@dxos/react-ui-mosaic';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';\nimport { Collection } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\n/**\n *\n */\nexport const CollectionArticle = ({ subject }: SurfaceComponentProps<Collection.Collection | Collection.Managed>) => {\n const { t } = useTranslation(meta.id);\n const { items, handleSearch } = useCollectionItems(subject);\n\n return (\n <Layout.Main toolbar>\n <SearchList.Root onSearch={handleSearch}>\n <Toolbar.Root>\n <SearchList.Input placeholder={t('search placeholder')} />\n </Toolbar.Root>\n <SearchList.Content>\n <Mosaic.Container asChild>\n <Mosaic.Viewport padding>\n <Mosaic.Stack items={items} getId={(node) => node.id} Tile={NodeTile} />\n </Mosaic.Viewport>\n </Mosaic.Container>\n </SearchList.Content>\n </SearchList.Root>\n </Layout.Main>\n );\n};\n\nconst NodeTile: StackTileComponent<Node.Node> = ({ data: node }) => {\n const { t } = useTranslation(meta.id);\n const { graph } = useAppGraph();\n const { invokeSync } = useOperationInvoker();\n const runAction = useActionRunner();\n\n const label = toLocalizedString(node.properties.label, t);\n const icon = node.properties.icon ?? 'ph--placeholder--regular';\n\n const handleClick = () => {\n if (Node.isAction(node)) {\n // Run action if this is an action node.\n const [parent] = Graph.getConnections(graph, node.id, 'inbound');\n if (parent) {\n void runAction(node, { parent });\n }\n } else {\n // Navigate to the node.\n invokeSync(Common.LayoutOperation.Open, { subject: [node.id] });\n }\n };\n\n return (\n <Card.Root fullWidth>\n <Card.Toolbar>\n <Card.ToolbarIconButton variant='ghost' label={label} icon={icon} />\n <Card.Title onClick={handleClick}>{label}</Card.Title>\n <Card.Menu />\n </Card.Toolbar>\n </Card.Root>\n );\n};\n\nexport default CollectionArticle;\n\n/**\n * Hook to get items from a regular collection using graph connections.\n */\nconst useRegularCollectionItems = (collection: Collection.Collection) => {\n const { graph } = useAppGraph();\n const collectionId = Obj.getDXN(collection).toString();\n const children = useConnections(graph, collectionId, 'outbound');\n\n // Filter children to those which are objects or actions with disposition 'item'.\n return useMemo(\n () =>\n children.filter((node) => {\n // Include regular objects.\n if (Obj.isObject(node.data)) {\n return true;\n }\n // Include actions with disposition 'item'.\n return Node.isAction(node) && node.properties.disposition === 'item';\n }),\n [children],\n );\n};\n\n/**\n * Hook to get items from a managed collection by querying the space.\n */\nconst useManagedCollectionItems = (collection: Collection.Managed) => {\n const client = useClient();\n const space = getSpace(collection);\n\n const schema = useMemo(\n () => client.graph.schemaRegistry.query({ typename: collection.key, location: ['runtime'] }).runSync()[0],\n [client, collection],\n );\n\n const objects = useQuery(space?.db, schema ? Filter.type(schema) : Filter.nothing());\n\n // Convert objects to node-like items for consistent rendering.\n return useMemo(\n () =>\n objects.map(\n (obj) =>\n ({\n id: Obj.getDXN(obj).toString(),\n type: 'managed-object',\n data: obj,\n properties: {\n label: Obj.getLabel(obj) ?? obj.id,\n icon: 'ph--placeholder--regular',\n },\n }) as Node.Node,\n ),\n [objects],\n );\n};\n\n/**\n * Combined hook to get collection items with search/filter support.\n */\nconst useCollectionItems = (collection: Collection.Collection | Collection.Managed) => {\n const isManaged = Obj.instanceOf(Collection.Managed, collection);\n\n // Call both hooks unconditionally to satisfy React's rules of hooks.\n const regularItems = useRegularCollectionItems(collection as Collection.Collection);\n const managedItems = useManagedCollectionItems(collection as Collection.Managed);\n\n const items = isManaged ? managedItems : regularItems;\n\n // Use searchlist results for filtering.\n const { results, handleSearch } = useSearchListResults({\n items,\n extract: (node) => {\n const label = node.properties.label;\n return typeof label === 'string' ? label : (label?.en ?? node.id);\n },\n });\n\n return { items: results, handleSearch };\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useMemo", "Common", "useAppGraph", "useOperationInvoker", "Filter", "Obj", "Graph", "Node", "useActionRunner", "useConnections", "useClient", "getSpace", "useQuery", "Toolbar", "toLocalizedString", "useTranslation", "Card", "Layout", "Mosaic", "SearchList", "useSearchListResults", "Collection", "CollectionArticle", "subject", "t", "useTranslation", "meta", "id", "items", "handleSearch", "useCollectionItems", "Layout", "Main", "toolbar", "SearchList", "Root", "onSearch", "Toolbar", "Input", "placeholder", "Content", "Mosaic", "Container", "asChild", "Viewport", "padding", "Stack", "getId", "node", "Tile", "NodeTile", "data", "graph", "useAppGraph", "invokeSync", "useOperationInvoker", "runAction", "useActionRunner", "label", "toLocalizedString", "properties", "icon", "handleClick", "Node", "isAction", "parent", "Graph", "getConnections", "Common", "LayoutOperation", "Open", "Card", "fullWidth", "ToolbarIconButton", "variant", "Title", "onClick", "Menu", "useRegularCollectionItems", "collection", "collectionId", "Obj", "getDXN", "toString", "children", "useConnections", "useMemo", "filter", "isObject", "disposition", "useManagedCollectionItems", "client", "useClient", "space", "getSpace", "schema", "schemaRegistry", "query", "typename", "key", "location", "runSync", "objects", "useQuery", "db", "Filter", "type", "nothing", "map", "obj", "getLabel", "isManaged", "instanceOf", "Collection", "Managed", "regularItems", "managedItems", "results", "useSearchListResults", "extract", "en"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/CollectionArticle.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Common } from '@dxos/app-framework';\nimport { type SurfaceComponentProps, useAppGraph, useOperationInvoker } from '@dxos/app-framework/react';\nimport { Filter, Obj } from '@dxos/echo';\nimport { Graph, Node, useActionRunner, useConnections } from '@dxos/plugin-graph';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace, useQuery } from '@dxos/react-client/echo';\nimport { Toolbar, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Card, Layout, Mosaic, type StackTileComponent } from '@dxos/react-ui-mosaic';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';\nimport { Collection } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\n/**\n *\n */\nexport const CollectionArticle = ({ subject }: SurfaceComponentProps<Collection.Collection | Collection.Managed>) => {\n const { t } = useTranslation(meta.id);\n const { items, handleSearch } = useCollectionItems(subject);\n\n return (\n <Layout.Main toolbar>\n <SearchList.Root onSearch={handleSearch}>\n <Toolbar.Root>\n <SearchList.Input placeholder={t('search placeholder')} />\n </Toolbar.Root>\n <SearchList.Content>\n <Mosaic.Container asChild>\n <Mosaic.Viewport padding>\n <Mosaic.Stack items={items} getId={(node) => node.id} Tile={NodeTile} />\n </Mosaic.Viewport>\n </Mosaic.Container>\n </SearchList.Content>\n </SearchList.Root>\n </Layout.Main>\n );\n};\n\nconst NodeTile: StackTileComponent<Node.Node> = ({ data: node }) => {\n const { t } = useTranslation(meta.id);\n const { graph } = useAppGraph();\n const { invokeSync } = useOperationInvoker();\n const runAction = useActionRunner();\n\n const label = toLocalizedString(node.properties.label, t);\n const icon = node.properties.icon ?? 'ph--placeholder--regular';\n\n const handleClick = () => {\n if (Node.isAction(node)) {\n // Run action if this is an action node.\n const [parent] = Graph.getConnections(graph, node.id, 'inbound');\n if (parent) {\n void runAction(node, { parent });\n }\n } else {\n // Navigate to the node.\n invokeSync(Common.LayoutOperation.Open, { subject: [node.id] });\n }\n };\n\n return (\n <Card.Root fullWidth>\n <Card.Toolbar>\n <Card.ToolbarIconButton variant='ghost' label={label} icon={icon} />\n <Card.Title onClick={handleClick}>{label}</Card.Title>\n <Card.Menu />\n </Card.Toolbar>\n </Card.Root>\n );\n};\n\nexport default CollectionArticle;\n\n/**\n * Hook to get items from a regular collection using graph connections.\n */\nconst useRegularCollectionItems = (collection: Collection.Collection) => {\n const { graph } = useAppGraph();\n const collectionId = Obj.getDXN(collection).toString();\n const children = useConnections(graph, collectionId, 'outbound');\n\n // Filter children to those which are objects or actions with disposition 'item'.\n return useMemo(\n () =>\n children.filter((node) => {\n // Include regular objects.\n if (Obj.isObject(node.data)) {\n return true;\n }\n // Include actions with disposition 'item'.\n return Node.isAction(node) && node.properties.disposition === 'item';\n }),\n [children],\n );\n};\n\n/**\n * Hook to get items from a managed collection by querying the space.\n */\nconst useManagedCollectionItems = (collection: Collection.Managed) => {\n const client = useClient();\n const space = getSpace(collection);\n\n const schema = useMemo(\n () => client.graph.schemaRegistry.query({ typename: collection.key, location: ['runtime'] }).runSync()[0],\n [client, collection],\n );\n\n const objects = useQuery(space?.db, schema ? Filter.type(schema) : Filter.nothing());\n\n // Convert objects to node-like items for consistent rendering.\n return useMemo(\n () =>\n objects.map(\n (obj) =>\n ({\n id: Obj.getDXN(obj).toString(),\n type: 'managed-object',\n data: obj,\n properties: {\n label: Obj.getLabel(obj) ?? obj.id,\n icon: 'ph--placeholder--regular',\n },\n }) as Node.Node,\n ),\n [objects],\n );\n};\n\n/**\n * Combined hook to get collection items with search/filter support.\n */\nconst useCollectionItems = (collection: Collection.Collection | Collection.Managed) => {\n const isManaged = Obj.instanceOf(Collection.Managed, collection);\n\n // Call both hooks unconditionally to satisfy React's rules of hooks.\n const regularItems = useRegularCollectionItems(collection as Collection.Collection);\n const managedItems = useManagedCollectionItems(collection as Collection.Managed);\n\n const items = isManaged ? managedItems : regularItems;\n\n // Use searchlist results for filtering.\n const { results, handleSearch } = useSearchListResults({\n items,\n extract: (node) => {\n const label = node.properties.label;\n return typeof label === 'string' ? label : (label?.en ?? node.id);\n },\n });\n\n return { items: results, handleSearch };\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,OAAOA,SAASC,eAAe;AAE/B,SAASC,cAAc;AACvB,SAAqCC,aAAaC,2BAA2B;AAC7E,SAASC,QAAQC,WAAW;AAC5B,SAASC,OAAOC,MAAMC,iBAAiBC,sBAAsB;AAC7D,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,gBAAgB;AACnC,SAASC,SAASC,mBAAmBC,sBAAsB;AAC3D,SAASC,MAAMC,QAAQC,cAAuC;AAC9D,SAASC,YAAYC,4BAA4B;AACjD,SAASC,kBAAkB;AAOpB,IAAMC,oBAAoB,CAAC,EAAEC,QAAO,MAAqE;AAC9G,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAM,EAAEC,OAAOC,aAAY,IAAKC,mBAAmBP,OAAAA;AAEnD,SACE,sBAAA,cAACQ,OAAOC,MAAI;IAACC,SAAAA;KACX,sBAAA,cAACC,WAAWC,MAAI;IAACC,UAAUP;KACzB,sBAAA,cAACQ,QAAQF,MAAI,MACX,sBAAA,cAACD,WAAWI,OAAK;IAACC,aAAaf,EAAE,oBAAA;OAEnC,sBAAA,cAACU,WAAWM,SAAO,MACjB,sBAAA,cAACC,OAAOC,WAAS;IAACC,SAAAA;KAChB,sBAAA,cAACF,OAAOG,UAAQ;IAACC,SAAAA;KACf,sBAAA,cAACJ,OAAOK,OAAK;IAAClB;IAAcmB,OAAO,CAACC,SAASA,KAAKrB;IAAIsB,MAAMC;;AAO1E;AAEA,IAAMA,WAA0C,CAAC,EAAEC,MAAMH,KAAI,MAAE;AAC7D,QAAM,EAAExB,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAM,EAAEyB,MAAK,IAAKC,YAAAA;AAClB,QAAM,EAAEC,WAAU,IAAKC,oBAAAA;AACvB,QAAMC,YAAYC,gBAAAA;AAElB,QAAMC,QAAQC,kBAAkBX,KAAKY,WAAWF,OAAOlC,CAAAA;AACvD,QAAMqC,OAAOb,KAAKY,WAAWC,QAAQ;AAErC,QAAMC,cAAc,MAAA;AAClB,QAAIC,KAAKC,SAAShB,IAAAA,GAAO;AAEvB,YAAM,CAACiB,MAAAA,IAAUC,MAAMC,eAAef,OAAOJ,KAAKrB,IAAI,SAAA;AACtD,UAAIsC,QAAQ;AACV,aAAKT,UAAUR,MAAM;UAAEiB;QAAO,CAAA;MAChC;IACF,OAAO;AAELX,iBAAWc,OAAOC,gBAAgBC,MAAM;QAAE/C,SAAS;UAACyB,KAAKrB;;MAAI,CAAA;IAC/D;EACF;AAEA,SACE,sBAAA,cAAC4C,KAAKpC,MAAI;IAACqC,WAAAA;KACT,sBAAA,cAACD,KAAKlC,SAAO,MACX,sBAAA,cAACkC,KAAKE,mBAAiB;IAACC,SAAQ;IAAQhB;IAAcG;MACtD,sBAAA,cAACU,KAAKI,OAAK;IAACC,SAASd;KAAcJ,KAAAA,GACnC,sBAAA,cAACa,KAAKM,MAAI,IAAA,CAAA,CAAA;AAIlB;AAEA,IAAA,4BAAevD;AAKf,IAAMwD,4BAA4B,CAACC,eAAAA;AACjC,QAAM,EAAE3B,MAAK,IAAKC,YAAAA;AAClB,QAAM2B,eAAeC,IAAIC,OAAOH,UAAAA,EAAYI,SAAQ;AACpD,QAAMC,WAAWC,eAAejC,OAAO4B,cAAc,UAAA;AAGrD,SAAOM,QACL,MACEF,SAASG,OAAO,CAACvC,SAAAA;AAEf,QAAIiC,IAAIO,SAASxC,KAAKG,IAAI,GAAG;AAC3B,aAAO;IACT;AAEA,WAAOY,KAAKC,SAAShB,IAAAA,KAASA,KAAKY,WAAW6B,gBAAgB;EAChE,CAAA,GACF;IAACL;GAAS;AAEd;AAKA,IAAMM,4BAA4B,CAACX,eAAAA;AACjC,QAAMY,SAASC,UAAAA;AACf,QAAMC,QAAQC,SAASf,UAAAA;AAEvB,QAAMgB,SAAST,QACb,MAAMK,OAAOvC,MAAM4C,eAAeC,MAAM;IAAEC,UAAUnB,WAAWoB;IAAKC,UAAU;MAAC;;EAAW,CAAA,EAAGC,QAAO,EAAG,CAAA,GACvG;IAACV;IAAQZ;GAAW;AAGtB,QAAMuB,UAAUC,SAASV,OAAOW,IAAIT,SAASU,OAAOC,KAAKX,MAAAA,IAAUU,OAAOE,QAAO,CAAA;AAGjF,SAAOrB,QACL,MACEgB,QAAQM,IACN,CAACC,SACE;IACClF,IAAIsD,IAAIC,OAAO2B,GAAAA,EAAK1B,SAAQ;IAC5BuB,MAAM;IACNvD,MAAM0D;IACNjD,YAAY;MACVF,OAAOuB,IAAI6B,SAASD,GAAAA,KAAQA,IAAIlF;MAChCkC,MAAM;IACR;EACF,EAAA,GAEN;IAACyC;GAAQ;AAEb;AAKA,IAAMxE,qBAAqB,CAACiD,eAAAA;AAC1B,QAAMgC,YAAY9B,IAAI+B,WAAWC,WAAWC,SAASnC,UAAAA;AAGrD,QAAMoC,eAAerC,0BAA0BC,UAAAA;AAC/C,QAAMqC,eAAe1B,0BAA0BX,UAAAA;AAE/C,QAAMnD,QAAQmF,YAAYK,eAAeD;AAGzC,QAAM,EAAEE,SAASxF,aAAY,IAAKyF,qBAAqB;IACrD1F;IACA2F,SAAS,CAACvE,SAAAA;AACR,YAAMU,QAAQV,KAAKY,WAAWF;AAC9B,aAAO,OAAOA,UAAU,WAAWA,QAASA,OAAO8D,MAAMxE,KAAKrB;IAChE;EACF,CAAA;AAEA,SAAO;IAAEC,OAAOyF;IAASxF;EAAa;AACxC;",
|
|
6
|
-
"names": ["React", "useMemo", "Common", "useAppGraph", "useOperationInvoker", "Filter", "Obj", "Graph", "Node", "useActionRunner", "useConnections", "useClient", "getSpace", "useQuery", "Toolbar", "toLocalizedString", "useTranslation", "Card", "Layout", "Mosaic", "SearchList", "useSearchListResults", "Collection", "CollectionArticle", "subject", "t", "useTranslation", "meta", "id", "items", "handleSearch", "useCollectionItems", "Layout", "Main", "toolbar", "SearchList", "Root", "onSearch", "Toolbar", "Input", "placeholder", "Content", "Mosaic", "Container", "asChild", "Viewport", "padding", "Stack", "getId", "node", "Tile", "NodeTile", "data", "graph", "useAppGraph", "invokeSync", "useOperationInvoker", "runAction", "useActionRunner", "label", "toLocalizedString", "properties", "icon", "handleClick", "Node", "isAction", "parent", "Graph", "getConnections", "Common", "LayoutOperation", "Open", "Card", "fullWidth", "ToolbarIconButton", "variant", "Title", "onClick", "Menu", "useRegularCollectionItems", "collection", "collectionId", "Obj", "getDXN", "toString", "children", "useConnections", "useMemo", "filter", "isObject", "disposition", "useManagedCollectionItems", "client", "useClient", "space", "getSpace", "schema", "schemaRegistry", "query", "typename", "key", "location", "runSync", "objects", "useQuery", "db", "Filter", "type", "nothing", "map", "obj", "getLabel", "isManaged", "instanceOf", "Collection", "Managed", "regularItems", "managedItems", "results", "useSearchListResults", "extract", "en"]
|
|
7
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/lib/node-esm/{react-surface-STCQKUZ4.mjs.map → react-surface-SQ4SK3OK.mjs.map}
RENAMED
|
File without changes
|