@dxos/plugin-search 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65
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/{SearchDialog-E6336HCX.mjs → SearchDialog-KJL6C2OF.mjs} +4 -6
- package/dist/lib/browser/{SearchDialog-E6336HCX.mjs.map → SearchDialog-KJL6C2OF.mjs.map} +4 -4
- package/dist/lib/browser/{SearchMain-24ZNJB24.mjs → SearchMain-JCNONOF3.mjs} +3 -3
- package/dist/lib/browser/{SearchMain-24ZNJB24.mjs.map → SearchMain-JCNONOF3.mjs.map} +1 -1
- package/dist/lib/browser/{app-graph-builder-NUJ2FOVQ.mjs → app-graph-builder-FHVM5QV7.mjs} +8 -12
- package/dist/lib/browser/app-graph-builder-FHVM5QV7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-I7YWQSUZ.mjs → chunk-I3633KKK.mjs} +4 -4
- package/dist/lib/browser/{chunk-I7YWQSUZ.mjs.map → chunk-I3633KKK.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-HRIWTRJV.mjs → chunk-PZ67KFRU.mjs} +3 -3
- package/dist/lib/browser/{chunk-HRIWTRJV.mjs.map → chunk-PZ67KFRU.mjs.map} +1 -1
- package/dist/lib/browser/index.mjs +5 -5
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-QEGN4ZKN.mjs → operation-resolver-H4X6BNWR.mjs} +3 -3
- package/dist/lib/browser/{react-surface-FLO4YTFP.mjs → react-surface-IPH2UPKO.mjs} +8 -21
- package/dist/lib/browser/react-surface-IPH2UPKO.mjs.map +7 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
- package/dist/types/src/containers/SearchDialog/index.d.ts +2 -2
- package/dist/types/src/containers/SearchDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +1 -2
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/types/action.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +36 -36
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +5 -6
- package/src/capabilities/react-surface/react-surface.tsx +4 -14
- package/src/constants.ts +1 -1
- package/src/containers/SearchDialog/index.ts +2 -3
- package/src/containers/SearchMain/SearchMain.tsx +1 -1
- package/src/containers/index.ts +1 -2
- package/src/meta.ts +2 -2
- package/src/types/action.tsx +2 -2
- package/dist/lib/browser/SpaceMain-IGCYHL7R.mjs +0 -154
- package/dist/lib/browser/SpaceMain-IGCYHL7R.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-NUJ2FOVQ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-FLO4YTFP.mjs.map +0 -7
- package/dist/types/src/containers/SpaceMain/SpaceMain.d.ts +0 -6
- package/dist/types/src/containers/SpaceMain/SpaceMain.d.ts.map +0 -1
- package/dist/types/src/containers/SpaceMain/index.d.ts +0 -3
- package/dist/types/src/containers/SpaceMain/index.d.ts.map +0 -1
- package/src/containers/SpaceMain/SpaceMain.tsx +0 -180
- package/src/containers/SpaceMain/index.ts +0 -7
- /package/dist/lib/browser/{operation-resolver-QEGN4ZKN.mjs.map → operation-resolver-H4X6BNWR.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-search",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.d05673bc65",
|
|
4
4
|
"description": "Search plugin",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -28,33 +28,33 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"exa-js": "^1.5.12",
|
|
30
30
|
"main-thread-scheduling": "^14.1.1",
|
|
31
|
-
"@dxos/
|
|
32
|
-
"@dxos/app-
|
|
33
|
-
"@dxos/
|
|
34
|
-
"@dxos/
|
|
35
|
-
"@dxos/async": "0.8.4-main.
|
|
36
|
-
"@dxos/debug": "0.8.4-main.
|
|
37
|
-
"@dxos/
|
|
38
|
-
"@dxos/
|
|
39
|
-
"@dxos/echo-query": "0.8.4-main.
|
|
40
|
-
"@dxos/
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/operation": "0.8.4-main.
|
|
45
|
-
"@dxos/plugin-client": "0.8.4-main.
|
|
46
|
-
"@dxos/plugin-
|
|
47
|
-
"@dxos/plugin-
|
|
48
|
-
"@dxos/react-client": "0.8.4-main.
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/react-ui-
|
|
51
|
-
"@dxos/react-ui-
|
|
52
|
-
"@dxos/react-ui-searchlist": "0.8.4-main.
|
|
53
|
-
"@dxos/react-ui-
|
|
54
|
-
"@dxos/schema": "0.8.4-main.
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/util": "0.8.4-main.
|
|
57
|
-
"@dxos/
|
|
31
|
+
"@dxos/app-framework": "0.8.4-main.d05673bc65",
|
|
32
|
+
"@dxos/app-toolkit": "0.8.4-main.d05673bc65",
|
|
33
|
+
"@dxos/assistant": "0.8.4-main.d05673bc65",
|
|
34
|
+
"@dxos/ai": "0.8.4-main.d05673bc65",
|
|
35
|
+
"@dxos/async": "0.8.4-main.d05673bc65",
|
|
36
|
+
"@dxos/debug": "0.8.4-main.d05673bc65",
|
|
37
|
+
"@dxos/echo-protocol": "0.8.4-main.d05673bc65",
|
|
38
|
+
"@dxos/blueprints": "0.8.4-main.d05673bc65",
|
|
39
|
+
"@dxos/echo-query": "0.8.4-main.d05673bc65",
|
|
40
|
+
"@dxos/echo": "0.8.4-main.d05673bc65",
|
|
41
|
+
"@dxos/effect": "0.8.4-main.d05673bc65",
|
|
42
|
+
"@dxos/invariant": "0.8.4-main.d05673bc65",
|
|
43
|
+
"@dxos/log": "0.8.4-main.d05673bc65",
|
|
44
|
+
"@dxos/operation": "0.8.4-main.d05673bc65",
|
|
45
|
+
"@dxos/plugin-client": "0.8.4-main.d05673bc65",
|
|
46
|
+
"@dxos/plugin-deck": "0.8.4-main.d05673bc65",
|
|
47
|
+
"@dxos/plugin-graph": "0.8.4-main.d05673bc65",
|
|
48
|
+
"@dxos/react-client": "0.8.4-main.d05673bc65",
|
|
49
|
+
"@dxos/plugin-space": "0.8.4-main.d05673bc65",
|
|
50
|
+
"@dxos/react-ui-mosaic": "0.8.4-main.d05673bc65",
|
|
51
|
+
"@dxos/react-ui-components": "0.8.4-main.d05673bc65",
|
|
52
|
+
"@dxos/react-ui-searchlist": "0.8.4-main.d05673bc65",
|
|
53
|
+
"@dxos/react-ui-menu": "0.8.4-main.d05673bc65",
|
|
54
|
+
"@dxos/schema": "0.8.4-main.d05673bc65",
|
|
55
|
+
"@dxos/react-ui-stack": "0.8.4-main.d05673bc65",
|
|
56
|
+
"@dxos/util": "0.8.4-main.d05673bc65",
|
|
57
|
+
"@dxos/types": "0.8.4-main.d05673bc65"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@effect-atom/atom-react": "^0.5.0",
|
|
@@ -65,12 +65,12 @@
|
|
|
65
65
|
"react": "~19.2.3",
|
|
66
66
|
"react-dom": "~19.2.3",
|
|
67
67
|
"vite": "^7.1.11",
|
|
68
|
-
"@dxos/plugin-preview": "0.8.4-main.
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/
|
|
71
|
-
"@dxos/storybook-utils": "0.8.4-main.
|
|
72
|
-
"@dxos/ui
|
|
73
|
-
"@dxos/
|
|
68
|
+
"@dxos/plugin-preview": "0.8.4-main.d05673bc65",
|
|
69
|
+
"@dxos/random": "0.8.4-main.d05673bc65",
|
|
70
|
+
"@dxos/plugin-testing": "0.8.4-main.d05673bc65",
|
|
71
|
+
"@dxos/storybook-utils": "0.8.4-main.d05673bc65",
|
|
72
|
+
"@dxos/react-ui": "0.8.4-main.d05673bc65",
|
|
73
|
+
"@dxos/ui-theme": "0.8.4-main.d05673bc65"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"@effect-atom/atom-react": "^0.5.0",
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"effect": "3.19.16",
|
|
79
79
|
"react": "~19.2.3",
|
|
80
80
|
"react-dom": "~19.2.3",
|
|
81
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
82
|
-
"@dxos/ui-theme": "0.8.4-main.
|
|
81
|
+
"@dxos/react-ui": "0.8.4-main.d05673bc65",
|
|
82
|
+
"@dxos/ui-theme": "0.8.4-main.d05673bc65"
|
|
83
83
|
},
|
|
84
84
|
"publishConfig": {
|
|
85
85
|
"access": "public"
|
|
@@ -5,12 +5,11 @@
|
|
|
5
5
|
import * as Effect from 'effect/Effect';
|
|
6
6
|
|
|
7
7
|
import { Capability } from '@dxos/app-framework';
|
|
8
|
-
import { AppCapabilities } from '@dxos/app-toolkit';
|
|
8
|
+
import { AppCapabilities, COMPANION_PREFIX, getSpaceIdFromPath } from '@dxos/app-toolkit';
|
|
9
9
|
import { Operation } from '@dxos/operation';
|
|
10
10
|
import { ClientCapabilities } from '@dxos/plugin-client';
|
|
11
|
-
import {
|
|
11
|
+
import { DECK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
|
|
12
12
|
import { GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';
|
|
13
|
-
import { parseId } from '@dxos/react-client/echo';
|
|
14
13
|
|
|
15
14
|
import { meta } from '../../meta';
|
|
16
15
|
import { SearchOperation } from '../../types';
|
|
@@ -19,18 +18,18 @@ export default Capability.makeModule(
|
|
|
19
18
|
Effect.fnUntraced(function* () {
|
|
20
19
|
const extensions = yield* Effect.all([
|
|
21
20
|
GraphBuilder.createExtension({
|
|
22
|
-
id: `${meta.id}
|
|
21
|
+
id: `${meta.id}.space-search`,
|
|
23
22
|
match: NodeMatcher.whenRoot,
|
|
24
23
|
connector: Effect.fnUntraced(function* (node, get) {
|
|
25
24
|
const client = yield* Capability.get(ClientCapabilities.Client);
|
|
26
25
|
const layoutAtom = get(yield* Capability.atom(AppCapabilities.Layout))[0];
|
|
27
26
|
const layout = layoutAtom ? get(layoutAtom) : undefined;
|
|
28
|
-
const
|
|
27
|
+
const spaceId = layout?.workspace ? getSpaceIdFromPath(layout.workspace) : undefined;
|
|
29
28
|
const space = spaceId ? client.spaces.get(spaceId) : null;
|
|
30
29
|
|
|
31
30
|
return [
|
|
32
31
|
{
|
|
33
|
-
id:
|
|
32
|
+
id: `${COMPANION_PREFIX}search`,
|
|
34
33
|
type: DECK_COMPANION_TYPE,
|
|
35
34
|
data: space,
|
|
36
35
|
properties: {
|
|
@@ -8,12 +8,11 @@ import React from 'react';
|
|
|
8
8
|
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
9
9
|
import { Surface } from '@dxos/app-framework/ui';
|
|
10
10
|
import { useActiveSpace } from '@dxos/plugin-space';
|
|
11
|
-
import { type Space,
|
|
11
|
+
import { type Space, isSpace } from '@dxos/react-client/echo';
|
|
12
12
|
|
|
13
13
|
import { SEARCH_DIALOG } from '../../constants';
|
|
14
|
-
import { SearchDialog, type SearchDialogProps, SearchMain
|
|
14
|
+
import { SearchDialog, type SearchDialogProps, SearchMain } from '../../containers';
|
|
15
15
|
import { SearchContextProvider } from '../../hooks';
|
|
16
|
-
import { meta } from '../../meta';
|
|
17
16
|
|
|
18
17
|
export default Capability.makeModule(() =>
|
|
19
18
|
Effect.succeed(
|
|
@@ -29,7 +28,7 @@ export default Capability.makeModule(() =>
|
|
|
29
28
|
),
|
|
30
29
|
}),
|
|
31
30
|
Surface.create({
|
|
32
|
-
id: `${SEARCH_DIALOG}
|
|
31
|
+
id: `${SEARCH_DIALOG}.search-input`,
|
|
33
32
|
role: 'search-input',
|
|
34
33
|
component: () => {
|
|
35
34
|
const space = useActiveSpace();
|
|
@@ -42,7 +41,7 @@ export default Capability.makeModule(() =>
|
|
|
42
41
|
},
|
|
43
42
|
}),
|
|
44
43
|
Surface.create({
|
|
45
|
-
id: `${SEARCH_DIALOG}
|
|
44
|
+
id: `${SEARCH_DIALOG}.search`,
|
|
46
45
|
role: 'deck-companion--search',
|
|
47
46
|
filter: (data): data is { subject: Space } => isSpace(data.subject),
|
|
48
47
|
component: ({ data }) => {
|
|
@@ -58,15 +57,6 @@ export default Capability.makeModule(() =>
|
|
|
58
57
|
);
|
|
59
58
|
},
|
|
60
59
|
}),
|
|
61
|
-
Surface.create({
|
|
62
|
-
id: `${meta.id}/space-article`,
|
|
63
|
-
role: 'article',
|
|
64
|
-
position: 'hoist',
|
|
65
|
-
filter: (data): data is { subject: Space } =>
|
|
66
|
-
// TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.
|
|
67
|
-
isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,
|
|
68
|
-
component: ({ data }) => <SpaceMain space={data.subject} />,
|
|
69
|
-
}),
|
|
70
60
|
]),
|
|
71
61
|
),
|
|
72
62
|
);
|
package/src/constants.ts
CHANGED
|
@@ -32,7 +32,7 @@ export const SearchMain = ({ space }: { space?: Space }) => {
|
|
|
32
32
|
Query.select(Filter.text(query, { type: 'full-text' })).select(Filter.not(Filter.type(Text.Text))),
|
|
33
33
|
Query.select(Filter.text(query, { type: 'full-text' }))
|
|
34
34
|
.select(Filter.type(Text.Text))
|
|
35
|
-
.referencedBy('dxos.
|
|
35
|
+
.referencedBy('org.dxos.type.document', 'content'),
|
|
36
36
|
),
|
|
37
37
|
);
|
|
38
38
|
|
package/src/containers/index.ts
CHANGED
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { type ComponentType, lazy } from 'react';
|
|
6
6
|
|
|
7
|
-
export type { SearchDialogProps } from './SearchDialog
|
|
7
|
+
export type { SearchDialogProps } from './SearchDialog';
|
|
8
8
|
|
|
9
9
|
export const SearchDialog: ComponentType<any> = lazy(() => import('./SearchDialog'));
|
|
10
10
|
export const SearchMain: ComponentType<any> = lazy(() => import('./SearchMain'));
|
|
11
|
-
export const SpaceMain: ComponentType<any> = lazy(() => import('./SpaceMain'));
|
package/src/meta.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { type Plugin } from '@dxos/app-framework';
|
|
|
6
6
|
import { trim } from '@dxos/util';
|
|
7
7
|
|
|
8
8
|
export const meta: Plugin.Meta = {
|
|
9
|
-
id: 'dxos.
|
|
9
|
+
id: 'org.dxos.plugin.search',
|
|
10
10
|
name: 'Search',
|
|
11
11
|
description: trim`
|
|
12
12
|
Full-text search engine for finding content across all spaces and object types.
|
|
@@ -17,4 +17,4 @@ export const meta: Plugin.Meta = {
|
|
|
17
17
|
tags: ['labs'],
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
export const SEARCH_RESULT = `${meta.id}
|
|
20
|
+
export const SEARCH_RESULT = `${meta.id}.result`;
|
package/src/types/action.tsx
CHANGED
|
@@ -8,11 +8,11 @@ import { Operation } from '@dxos/operation';
|
|
|
8
8
|
|
|
9
9
|
import { meta } from '../meta';
|
|
10
10
|
|
|
11
|
-
const SEARCH_OPERATION = `${meta.id}
|
|
11
|
+
const SEARCH_OPERATION = `${meta.id}.operation`;
|
|
12
12
|
|
|
13
13
|
export namespace SearchOperation {
|
|
14
14
|
export const OpenSearch = Operation.make({
|
|
15
|
-
meta: { key: `${SEARCH_OPERATION}
|
|
15
|
+
meta: { key: `${SEARCH_OPERATION}.open-search`, name: 'Open Search' },
|
|
16
16
|
schema: { input: Schema.Void, output: Schema.Void },
|
|
17
17
|
});
|
|
18
18
|
}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
meta
|
|
3
|
-
} from "./chunk-HRIWTRJV.mjs";
|
|
4
|
-
|
|
5
|
-
// src/containers/SpaceMain/SpaceMain.tsx
|
|
6
|
-
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
7
|
-
import { useCapabilities, useOperationInvoker } from "@dxos/app-framework/ui";
|
|
8
|
-
import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
|
|
9
|
-
import { useAppGraph } from "@dxos/app-toolkit/ui";
|
|
10
|
-
import { Filter, Obj, Query } from "@dxos/echo";
|
|
11
|
-
import { Graph, Node, useActionRunner, useConnections } from "@dxos/plugin-graph";
|
|
12
|
-
import { useQuery } from "@dxos/react-client/echo";
|
|
13
|
-
import { ScrollArea, Toolbar, toLocalizedString, useTranslation } from "@dxos/react-ui";
|
|
14
|
-
import { Card, Panel } from "@dxos/react-ui";
|
|
15
|
-
import { Mosaic } from "@dxos/react-ui-mosaic";
|
|
16
|
-
import { SearchList } from "@dxos/react-ui-searchlist";
|
|
17
|
-
import { Text } from "@dxos/schema";
|
|
18
|
-
import { getStyles } from "@dxos/ui-theme";
|
|
19
|
-
var SpaceMain = ({ space }) => {
|
|
20
|
-
const { t } = useTranslation(meta.id);
|
|
21
|
-
const { items, handleSearch } = useSpaceItems(space);
|
|
22
|
-
return /* @__PURE__ */ React.createElement(SearchList.Root, {
|
|
23
|
-
onSearch: handleSearch
|
|
24
|
-
}, /* @__PURE__ */ React.createElement(Panel.Root, {
|
|
25
|
-
className: "dx-article"
|
|
26
|
-
}, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
|
|
27
|
-
asChild: true
|
|
28
|
-
}, /* @__PURE__ */ React.createElement(Toolbar.Root, null, /* @__PURE__ */ React.createElement(SearchList.Input, {
|
|
29
|
-
placeholder: t("search placeholder")
|
|
30
|
-
}))), /* @__PURE__ */ React.createElement(Panel.Content, {
|
|
31
|
-
asChild: true
|
|
32
|
-
}, /* @__PURE__ */ React.createElement(SearchList.Content, null, /* @__PURE__ */ React.createElement(Mosaic.Container, {
|
|
33
|
-
asChild: true
|
|
34
|
-
}, /* @__PURE__ */ React.createElement(ScrollArea.Root, {
|
|
35
|
-
orientation: "vertical"
|
|
36
|
-
}, /* @__PURE__ */ React.createElement(ScrollArea.Viewport, {
|
|
37
|
-
classNames: "p-2"
|
|
38
|
-
}, /* @__PURE__ */ React.createElement(Mosaic.Stack, {
|
|
39
|
-
items,
|
|
40
|
-
getId: (node) => node.id,
|
|
41
|
-
Tile: NodeTile
|
|
42
|
-
}))))))));
|
|
43
|
-
};
|
|
44
|
-
var NodeTile = (props) => {
|
|
45
|
-
const node = props.data;
|
|
46
|
-
const { t } = useTranslation(meta.id);
|
|
47
|
-
const { graph } = useAppGraph();
|
|
48
|
-
const { invokeSync } = useOperationInvoker();
|
|
49
|
-
const runAction = useActionRunner();
|
|
50
|
-
const label = toLocalizedString(node.properties.label, t);
|
|
51
|
-
const icon = node.properties.icon ?? "ph--placeholder--regular";
|
|
52
|
-
const iconHue = node.properties.iconHue;
|
|
53
|
-
const styles = iconHue ? getStyles(iconHue) : void 0;
|
|
54
|
-
const handleClick = () => {
|
|
55
|
-
if (Node.isAction(node)) {
|
|
56
|
-
const [parent] = Graph.getConnections(graph, node.id, Node.childRelation("inbound"));
|
|
57
|
-
if (parent) {
|
|
58
|
-
void runAction(node, {
|
|
59
|
-
parent
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
} else {
|
|
63
|
-
invokeSync(LayoutOperation.Open, {
|
|
64
|
-
subject: [
|
|
65
|
-
node.id
|
|
66
|
-
]
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
return /* @__PURE__ */ React.createElement(Card.Root, {
|
|
71
|
-
fullWidth: true
|
|
72
|
-
}, /* @__PURE__ */ React.createElement(Card.Toolbar, null, /* @__PURE__ */ React.createElement(Card.ToolbarIconButton, {
|
|
73
|
-
variant: "ghost",
|
|
74
|
-
label,
|
|
75
|
-
icon,
|
|
76
|
-
iconOnly: true,
|
|
77
|
-
iconClassNames: styles?.surfaceText
|
|
78
|
-
}), /* @__PURE__ */ React.createElement(Card.Title, {
|
|
79
|
-
onClick: handleClick
|
|
80
|
-
}, label), /* @__PURE__ */ React.createElement(Card.Menu, null)));
|
|
81
|
-
};
|
|
82
|
-
var useMetadataResolver = () => {
|
|
83
|
-
const allMetadata = useCapabilities(AppCapabilities.Metadata);
|
|
84
|
-
return useCallback((typename) => allMetadata.find((m) => m.id === typename)?.metadata ?? {}, [
|
|
85
|
-
allMetadata
|
|
86
|
-
]);
|
|
87
|
-
};
|
|
88
|
-
var useSpaceItems = (space) => {
|
|
89
|
-
const { graph } = useAppGraph();
|
|
90
|
-
const [query, setQuery] = useState();
|
|
91
|
-
const resolveMetadata = useMetadataResolver();
|
|
92
|
-
useEffect(() => {
|
|
93
|
-
const frame = requestAnimationFrame(() => {
|
|
94
|
-
Graph.expand(graph, space.id, "child");
|
|
95
|
-
});
|
|
96
|
-
return () => cancelAnimationFrame(frame);
|
|
97
|
-
}, [
|
|
98
|
-
graph,
|
|
99
|
-
space.id
|
|
100
|
-
]);
|
|
101
|
-
const children = useConnections(graph, space.id, "child");
|
|
102
|
-
const handleSearch = useCallback((text) => {
|
|
103
|
-
setQuery(text);
|
|
104
|
-
}, []);
|
|
105
|
-
const results = useQuery(space.db, query === void 0 ? Query.select(Filter.nothing()) : Query.all(Query.select(Filter.text(query, {
|
|
106
|
-
type: "full-text"
|
|
107
|
-
})).select(Filter.not(Filter.type(Text.Text))), Query.select(Filter.text(query, {
|
|
108
|
-
type: "full-text"
|
|
109
|
-
})).select(Filter.type(Text.Text)).referencedBy("dxos.org/type/Document", "content")));
|
|
110
|
-
const isQueryEmpty = !query?.trim();
|
|
111
|
-
const filteredChildren = useMemo(() => children.filter((node) => {
|
|
112
|
-
if (Obj.isObject(node.data)) {
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
return Node.isAction(node) && node.properties.disposition === "item";
|
|
116
|
-
}), [
|
|
117
|
-
children
|
|
118
|
-
]);
|
|
119
|
-
const items = useMemo(() => {
|
|
120
|
-
if (isQueryEmpty) {
|
|
121
|
-
return filteredChildren;
|
|
122
|
-
}
|
|
123
|
-
return results.map((obj) => {
|
|
124
|
-
const typename = Obj.getTypename(obj);
|
|
125
|
-
const metadata = typename ? resolveMetadata(typename) : {};
|
|
126
|
-
return {
|
|
127
|
-
id: obj.id,
|
|
128
|
-
type: "search-result",
|
|
129
|
-
data: obj,
|
|
130
|
-
properties: {
|
|
131
|
-
label: Obj.getLabel(obj) ?? obj.id,
|
|
132
|
-
icon: metadata.icon ?? "ph--placeholder--regular",
|
|
133
|
-
iconHue: metadata.iconHue
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
});
|
|
137
|
-
}, [
|
|
138
|
-
isQueryEmpty,
|
|
139
|
-
filteredChildren,
|
|
140
|
-
results,
|
|
141
|
-
resolveMetadata
|
|
142
|
-
]);
|
|
143
|
-
return {
|
|
144
|
-
items,
|
|
145
|
-
handleSearch
|
|
146
|
-
};
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
// src/containers/SpaceMain/index.ts
|
|
150
|
-
var SpaceMain_default = SpaceMain;
|
|
151
|
-
export {
|
|
152
|
-
SpaceMain_default as default
|
|
153
|
-
};
|
|
154
|
-
//# sourceMappingURL=SpaceMain-IGCYHL7R.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/SpaceMain/SpaceMain.tsx", "../../../src/containers/SpaceMain/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { useAppGraph } from '@dxos/app-toolkit/ui';\nimport { Filter, Obj, Query } from '@dxos/echo';\nimport { Graph, Node, useActionRunner, useConnections } from '@dxos/plugin-graph';\nimport { type Space, useQuery } from '@dxos/react-client/echo';\nimport { ScrollArea, Toolbar, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Card, Panel } from '@dxos/react-ui';\nimport { Mosaic, type MosaicStackTileComponent } from '@dxos/react-ui-mosaic';\nimport { SearchList } from '@dxos/react-ui-searchlist';\nimport { Text } from '@dxos/schema';\nimport { getStyles } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\nexport const SpaceMain = ({ space }: { space: Space }) => {\n const { t } = useTranslation(meta.id);\n const { items, handleSearch } = useSpaceItems(space);\n\n return (\n <SearchList.Root onSearch={handleSearch}>\n <Panel.Root className='dx-article'>\n <Panel.Toolbar asChild>\n <Toolbar.Root>\n <SearchList.Input placeholder={t('search placeholder')} />\n </Toolbar.Root>\n </Panel.Toolbar>\n <Panel.Content asChild>\n <SearchList.Content>\n <Mosaic.Container asChild>\n <ScrollArea.Root orientation='vertical'>\n <ScrollArea.Viewport classNames='p-2'>\n <Mosaic.Stack items={items} getId={(node) => node.id} Tile={NodeTile} />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </Mosaic.Container>\n </SearchList.Content>\n </Panel.Content>\n </Panel.Root>\n </SearchList.Root>\n );\n};\n\nconst NodeTile: MosaicStackTileComponent<Node.Node> = (props) => {\n const node = props.data;\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 const iconHue = node.properties.iconHue;\n const styles = iconHue ? getStyles(iconHue) : undefined;\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, Node.childRelation('inbound'));\n if (parent) {\n void runAction(node, { parent });\n }\n } else {\n // Navigate to the node.\n invokeSync(LayoutOperation.Open, { subject: [node.id] });\n }\n };\n\n return (\n <Card.Root fullWidth>\n <Card.Toolbar>\n <Card.ToolbarIconButton\n variant='ghost'\n label={label}\n icon={icon}\n iconOnly\n iconClassNames={styles?.surfaceText}\n />\n <Card.Title onClick={handleClick}>{label}</Card.Title>\n <Card.Menu />\n </Card.Toolbar>\n </Card.Root>\n );\n};\n\n/**\n * Hook to resolve metadata (icon, iconHue, etc.) for objects based on their typename.\n */\n// TODO(wittjosiah): Factor out.\nconst useMetadataResolver = () => {\n const allMetadata = useCapabilities(AppCapabilities.Metadata);\n return useCallback((typename: string) => allMetadata.find((m) => m.id === typename)?.metadata ?? {}, [allMetadata]);\n};\n\n/**\n * Hook to get space items with search/filter support.\n * Returns direct children when no query, or full-text search results when searching.\n */\nconst useSpaceItems = (space: Space) => {\n const { graph } = useAppGraph();\n const [query, setQuery] = useState<string>();\n const resolveMetadata = useMetadataResolver();\n\n // Expand the space node to load its children (needed when navigating directly to a space URL).\n useEffect(() => {\n const frame = requestAnimationFrame(() => {\n Graph.expand(graph, space.id, 'child');\n });\n return () => cancelAnimationFrame(frame);\n }, [graph, space.id]);\n\n // Get direct children of the space node for the default view.\n const children = useConnections(graph, space.id, 'child');\n\n const handleSearch = useCallback((text: string) => {\n setQuery(text);\n }, []);\n\n // TODO(dmaretskyi): Switch back to QueryEditor once query builder is ready for production.\n // Query results using full-text search.\n const results = useQuery(\n space.db,\n query === undefined\n ? Query.select(Filter.nothing())\n : Query.all(\n Query.select(Filter.text(query, { type: 'full-text' })).select(Filter.not(Filter.type(Text.Text))),\n Query.select(Filter.text(query, { type: 'full-text' }))\n .select(Filter.type(Text.Text))\n .referencedBy('dxos.org/type/Document', 'content'),\n ),\n );\n\n // Determine if query is empty (show default view).\n const isQueryEmpty = !query?.trim();\n\n // Filter children to those which are objects, actions with disposition 'item', or alternate-tree nodes.\n const filteredChildren = 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 // When showing default view, use nodes (which may include actions).\n // When showing search results, wrap objects in a compatible shape with resolved metadata.\n const items = useMemo(() => {\n if (isQueryEmpty) {\n return filteredChildren;\n }\n // Wrap query results as pseudo-nodes for consistent rendering.\n return results.map((obj) => {\n const typename = Obj.getTypename(obj);\n const metadata = typename ? resolveMetadata(typename) : {};\n return {\n id: obj.id,\n type: 'search-result',\n data: obj,\n properties: {\n label: Obj.getLabel(obj) ?? obj.id,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n iconHue: metadata.iconHue,\n },\n } as Node.Node;\n });\n }, [isQueryEmpty, filteredChildren, results, resolveMetadata]);\n\n return { items, handleSearch };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { SpaceMain } from './SpaceMain';\n\nexport default SpaceMain;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useCallback", "useEffect", "useMemo", "useState", "useCapabilities", "useOperationInvoker", "AppCapabilities", "LayoutOperation", "useAppGraph", "Filter", "Obj", "Query", "Graph", "Node", "useActionRunner", "useConnections", "useQuery", "ScrollArea", "Toolbar", "toLocalizedString", "useTranslation", "Card", "Panel", "Mosaic", "SearchList", "Text", "getStyles", "SpaceMain", "space", "t", "useTranslation", "meta", "id", "items", "handleSearch", "useSpaceItems", "SearchList", "Root", "onSearch", "Panel", "className", "Toolbar", "asChild", "Input", "placeholder", "Content", "Mosaic", "Container", "ScrollArea", "orientation", "Viewport", "classNames", "Stack", "getId", "node", "Tile", "NodeTile", "props", "data", "graph", "useAppGraph", "invokeSync", "useOperationInvoker", "runAction", "useActionRunner", "label", "toLocalizedString", "properties", "icon", "iconHue", "styles", "getStyles", "undefined", "handleClick", "Node", "isAction", "parent", "Graph", "getConnections", "childRelation", "LayoutOperation", "Open", "subject", "Card", "fullWidth", "ToolbarIconButton", "variant", "iconOnly", "iconClassNames", "surfaceText", "Title", "onClick", "Menu", "useMetadataResolver", "allMetadata", "useCapabilities", "AppCapabilities", "Metadata", "useCallback", "typename", "find", "m", "metadata", "query", "setQuery", "useState", "resolveMetadata", "useEffect", "frame", "requestAnimationFrame", "expand", "cancelAnimationFrame", "children", "useConnections", "text", "results", "useQuery", "db", "Query", "select", "Filter", "nothing", "all", "type", "not", "Text", "referencedBy", "isQueryEmpty", "trim", "filteredChildren", "useMemo", "filter", "Obj", "isObject", "disposition", "map", "obj", "getTypename", "getLabel", "SpaceMain"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/operation';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';\nimport { parseId } from '@dxos/react-client/echo';\n\nimport { meta } from '../../meta';\nimport { SearchOperation } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* Effect.all([\n GraphBuilder.createExtension({\n id: `${meta.id}/space-search`,\n match: NodeMatcher.whenRoot,\n connector: Effect.fnUntraced(function* (node, get) {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const layoutAtom = get(yield* Capability.atom(AppCapabilities.Layout))[0];\n const layout = layoutAtom ? get(layoutAtom) : undefined;\n const { spaceId } = parseId(layout?.workspace);\n const space = spaceId ? client.spaces.get(spaceId) : null;\n\n return [\n {\n id: [node.id, 'search'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: space,\n properties: {\n label: ['search label', { ns: meta.id }],\n icon: 'ph--magnifying-glass--regular',\n disposition: 'hidden',\n },\n },\n ];\n }),\n }),\n GraphBuilder.createExtension({\n id: meta.id,\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed([\n {\n id: SearchOperation.OpenSearch.meta.key,\n data: Effect.fnUntraced(function* () {\n yield* Operation.invoke(SearchOperation.OpenSearch);\n return false;\n }),\n properties: {\n label: ['search action label', { ns: meta.id }],\n icon: 'ph--magnifying-glass--regular',\n keyBinding: {\n macos: 'shift+meta+f',\n windows: 'shift+alt+f',\n },\n },\n },\n ]),\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AACnC,SAASC,2BAA2BC,2BAA2B;AAC/D,SAASC,cAAcC,mBAAmB;AAC1C,SAASC,eAAe;AAKxB,IAAA,4BAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAcC,WAAI;IACnCC,aAAaC,gBAAgB;MAC3BC,IAAI,GAAGC,KAAKD,EAAE;MACdE,OAAOC,YAAYC;MACnBC,WAAkBV,kBAAW,WAAWW,MAAMC,KAAG;AAC/C,cAAMC,SAAS,OAAOf,WAAWc,IAAIE,mBAAmBC,MAAM;AAC9D,cAAMC,aAAaJ,IAAI,OAAOd,WAAWmB,KAAKC,gBAAgBC,MAAM,CAAA,EAAG,CAAA;AACvE,cAAMC,SAASJ,aAAaJ,IAAII,UAAAA,IAAcK;AAC9C,cAAM,EAAEC,QAAO,IAAKC,QAAQH,QAAQI,SAAAA;AACpC,cAAMC,QAAQH,UAAUT,OAAOa,OAAOd,IAAIU,OAAAA,IAAW;AAErD,eAAO;UACL;YACEjB,IAAI;cAACM,KAAKN;cAAI;cAAUsB,KAAKC,yBAAAA;YAC7BC,MAAMC;YACNC,MAAMN;YACNO,YAAY;cACVC,OAAO;gBAAC;gBAAgB;kBAAEC,IAAI5B,KAAKD;gBAAG;;cACtC8B,MAAM;cACNC,aAAa;YACf;UACF;;MAEJ,CAAA;IACF,CAAA;IACAjC,aAAaC,gBAAgB;MAC3BC,IAAIC,KAAKD;MACTE,OAAOC,YAAYC;MACnB4B,SAAS,MACAC,eAAQ;QACb;UACEjC,IAAIkC,gBAAgBC,WAAWlC,KAAKmC;UACpCV,MAAa/B,kBAAW,aAAA;AACtB,mBAAO0C,UAAUC,OAAOJ,gBAAgBC,UAAU;AAClD,mBAAO;UACT,CAAA;UACAR,YAAY;YACVC,OAAO;cAAC;cAAuB;gBAAEC,IAAI5B,KAAKD;cAAG;;YAC7C8B,MAAM;YACNS,YAAY;cACVC,OAAO;cACPC,SAAS;YACX;UACF;QACF;OACD;IACL,CAAA;GACD;AAED,SAAOhD,WAAWiD,YAAY7B,gBAAgB8B,iBAAiB/C,UAAAA;AACjE,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Capability", "AppCapabilities", "Operation", "ClientCapabilities", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "GraphBuilder", "NodeMatcher", "parseId", "Capability", "makeModule", "fnUntraced", "extensions", "all", "GraphBuilder", "createExtension", "id", "meta", "match", "NodeMatcher", "whenRoot", "connector", "node", "get", "client", "ClientCapabilities", "Client", "layoutAtom", "atom", "AppCapabilities", "Layout", "layout", "undefined", "spaceId", "parseId", "workspace", "space", "spaces", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "DECK_COMPANION_TYPE", "data", "properties", "label", "ns", "icon", "disposition", "actions", "succeed", "SearchOperation", "OpenSearch", "key", "Operation", "invoke", "keyBinding", "macos", "windows", "contributes", "AppGraphBuilder"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/constants.ts", "../../../src/containers/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { useActiveSpace } from '@dxos/plugin-space';\nimport { type Space, SpaceState, isSpace } from '@dxos/react-client/echo';\n\nimport { SEARCH_DIALOG } from '../../constants';\nimport { SearchDialog, type SearchDialogProps, SearchMain, SpaceMain } from '../../containers';\nimport { SearchContextProvider } from '../../hooks';\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: SEARCH_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: SearchDialogProps } => data.component === SEARCH_DIALOG,\n component: ({ data }) => (\n <SearchContextProvider>\n <SearchDialog {...data.props} />\n </SearchContextProvider>\n ),\n }),\n Surface.create({\n id: `${SEARCH_DIALOG}/search-input`,\n role: 'search-input',\n component: () => {\n const space = useActiveSpace();\n\n return (\n <SearchContextProvider>\n <SearchMain space={space} />\n </SearchContextProvider>\n );\n },\n }),\n Surface.create({\n id: `${SEARCH_DIALOG}/search`,\n role: 'deck-companion--search',\n filter: (data): data is { subject: Space } => isSpace(data.subject),\n component: ({ data }) => {\n const space = data.subject;\n if (!space) {\n return null;\n }\n\n return (\n <SearchContextProvider>\n <SearchMain space={space} />\n </SearchContextProvider>\n );\n },\n }),\n Surface.create({\n id: `${meta.id}/space-article`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data }) => <SpaceMain space={data.subject} />,\n }),\n ]),\n ),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { meta } from './meta';\n\nexport const SEARCH_DIALOG = `${meta.id}/SearchDialog`;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport type { SearchDialogProps } from './SearchDialog/SearchDialog';\n\nexport const SearchDialog: ComponentType<any> = lazy(() => import('./SearchDialog'));\nexport const SearchMain: ComponentType<any> = lazy(() => import('./SearchMain'));\nexport const SpaceMain: ComponentType<any> = lazy(() => import('./SpaceMain'));\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AACxB,SAASC,sBAAsB;AAC/B,SAAqBC,YAAYC,eAAe;;;ACJzC,IAAMC,gBAAgB,GAAGC,KAAKC,EAAE;;;ACFvC,SAA6BC,YAAY;AAIlC,IAAMC,eAAmCC,KAAK,MAAM,OAAO,6BAAA,CAAA;AAC3D,IAAMC,aAAiCD,KAAK,MAAM,OAAO,2BAAA,CAAA;AACzD,IAAME,YAAgCF,KAAK,MAAM,OAAO,0BAAA,CAAA;;;AFO/D,IAAA,wBAAeG,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,aAAaC,cAAc;EAChDC,QAAQC,OAAO;IACbC,IAAIC;IACJC,MAAM;IACNC,QAAQ,CAACC,SAA+CA,KAAKC,cAAcJ;IAC3EI,WAAW,CAAC,EAAED,KAAI,MAChB,sBAAA,cAACE,uBAAAA,MACC,sBAAA,cAACC,cAAiBH,KAAKI,KAAK,CAAA;EAGlC,CAAA;EACAV,QAAQC,OAAO;IACbC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNG,WAAW,MAAA;AACT,YAAMI,QAAQC,eAAAA;AAEd,aACE,sBAAA,cAACJ,uBAAAA,MACC,sBAAA,cAACK,YAAAA;QAAWF;;IAGlB;EACF,CAAA;EACAX,QAAQC,OAAO;IACbC,IAAI,GAAGC,aAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAqCQ,QAAQR,KAAKS,OAAO;IAClER,WAAW,CAAC,EAAED,KAAI,MAAE;AAClB,YAAMK,QAAQL,KAAKS;AACnB,UAAI,CAACJ,OAAO;AACV,eAAO;MACT;AAEA,aACE,sBAAA,cAACH,uBAAAA,MACC,sBAAA,cAACK,YAAAA;QAAWF;;IAGlB;EACF,CAAA;EACAX,QAAQC,OAAO;IACbC,IAAI,GAAGc,KAAKd,EAAE;IACdE,MAAM;IACNa,UAAU;IACVZ,QAAQ,CAACC;;MAEPQ,QAAQR,KAAKS,OAAO,KAAKT,KAAKS,QAAQG,MAAMC,IAAG,MAAOC,WAAWC;;IACnEd,WAAW,CAAC,EAAED,KAAI,MAAO,sBAAA,cAACgB,WAAAA;MAAUX,OAAOL,KAAKS;;EAClD,CAAA;CACD,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "React", "Capabilities", "Capability", "Surface", "useActiveSpace", "SpaceState", "isSpace", "SEARCH_DIALOG", "meta", "id", "lazy", "SearchDialog", "lazy", "SearchMain", "SpaceMain", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "SEARCH_DIALOG", "role", "filter", "data", "component", "SearchContextProvider", "SearchDialog", "props", "space", "useActiveSpace", "SearchMain", "isSpace", "subject", "meta", "position", "state", "get", "SpaceState", "SPACE_READY", "SpaceMain"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpaceMain.d.ts","sourceRoot":"","sources":["../../../../../src/containers/SpaceMain/SpaceMain.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAOzE,OAAO,EAAE,KAAK,KAAK,EAAY,MAAM,yBAAyB,CAAC;AAU/D,eAAO,MAAM,SAAS,GAAI,WAAW;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,sBA0BpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/SpaceMain/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAe,SAAS,CAAC"}
|