@dxos/plugin-search 0.8.4-main.f9ba587 → 0.8.4-main.fd6878d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/lib/browser/{app-graph-builder-V667YGDS.mjs → app-graph-builder-D2QQTIIR.mjs} +3 -3
  2. package/dist/lib/{node-esm/app-graph-builder-IZHM72QQ.mjs.map → browser/app-graph-builder-D2QQTIIR.mjs.map} +3 -3
  3. package/dist/lib/browser/{chunk-2QKDUXCH.mjs → chunk-JVMYGOKS.mjs} +1 -1
  4. package/dist/lib/browser/{chunk-LPB2XRYL.mjs → chunk-VKV5ZDB4.mjs} +1 -1
  5. package/dist/lib/browser/{chunk-LPB2XRYL.mjs.map → chunk-VKV5ZDB4.mjs.map} +2 -2
  6. package/dist/lib/browser/index.mjs +6 -6
  7. package/dist/lib/browser/index.mjs.map +3 -3
  8. package/dist/lib/browser/{intent-resolver-SPX5JVY7.mjs → intent-resolver-NXFDPFHC.mjs} +3 -3
  9. package/dist/lib/browser/{intent-resolver-SPX5JVY7.mjs.map → intent-resolver-NXFDPFHC.mjs.map} +3 -3
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/{react-surface-HMXHJSLE.mjs → react-surface-B2XYD6JN.mjs} +108 -282
  12. package/dist/lib/browser/react-surface-B2XYD6JN.mjs.map +7 -0
  13. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  14. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  15. package/dist/types/src/components/Search.stories.d.ts.map +1 -1
  16. package/dist/types/src/components/SearchMain.d.ts.map +1 -1
  17. package/dist/types/src/components/SearchResults/SearchResults.stories.d.ts.map +1 -1
  18. package/dist/types/src/components/Searchbar/Searchbar.d.ts.map +1 -1
  19. package/dist/types/src/hooks/useGlobalSearch.d.ts.map +1 -1
  20. package/dist/types/src/hooks/useWebSearch.d.ts.map +1 -1
  21. package/dist/types/src/search/exa.d.ts +0 -2
  22. package/dist/types/src/search/exa.d.ts.map +1 -1
  23. package/dist/types/src/types/index.d.ts +1 -1
  24. package/dist/types/src/types/index.d.ts.map +1 -1
  25. package/dist/types/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +31 -32
  27. package/src/SearchPlugin.tsx +2 -2
  28. package/src/capabilities/app-graph-builder.ts +2 -2
  29. package/src/capabilities/intent-resolver.ts +1 -1
  30. package/src/capabilities/react-surface.tsx +1 -1
  31. package/src/components/Search.stories.tsx +4 -3
  32. package/src/components/SearchMain.tsx +4 -3
  33. package/src/components/SearchResults/SearchResults.stories.tsx +2 -1
  34. package/src/components/Searchbar/Searchbar.tsx +3 -5
  35. package/src/hooks/sync.test.ts +1 -1
  36. package/src/hooks/sync.ts +1 -1
  37. package/src/hooks/useGlobalSearch.tsx +3 -2
  38. package/src/hooks/useWebSearch.ts +3 -8
  39. package/src/search/exa.test.ts +3 -24
  40. package/src/search/exa.ts +132 -163
  41. package/src/types/index.ts +1 -1
  42. package/dist/lib/browser/app-graph-builder-V667YGDS.mjs.map +0 -7
  43. package/dist/lib/browser/react-surface-HMXHJSLE.mjs.map +0 -7
  44. package/dist/lib/node-esm/app-graph-builder-IZHM72QQ.mjs +0 -78
  45. package/dist/lib/node-esm/chunk-L7BUHKLC.mjs +0 -192
  46. package/dist/lib/node-esm/chunk-L7BUHKLC.mjs.map +0 -7
  47. package/dist/lib/node-esm/chunk-N5SNYFMK.mjs +0 -22
  48. package/dist/lib/node-esm/chunk-N5SNYFMK.mjs.map +0 -7
  49. package/dist/lib/node-esm/chunk-Y7BGRQH5.mjs +0 -22
  50. package/dist/lib/node-esm/chunk-Y7BGRQH5.mjs.map +0 -7
  51. package/dist/lib/node-esm/index.mjs +0 -113
  52. package/dist/lib/node-esm/index.mjs.map +0 -7
  53. package/dist/lib/node-esm/intent-resolver-MFPFD3XC.mjs +0 -23
  54. package/dist/lib/node-esm/intent-resolver-MFPFD3XC.mjs.map +0 -7
  55. package/dist/lib/node-esm/meta.json +0 -1
  56. package/dist/lib/node-esm/react-surface-WHU5EEAQ.mjs +0 -643
  57. package/dist/lib/node-esm/react-surface-WHU5EEAQ.mjs.map +0 -7
  58. /package/dist/lib/browser/{chunk-2QKDUXCH.mjs.map → chunk-JVMYGOKS.mjs.map} +0 -0
@@ -1,192 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/hooks/sync.ts
4
- import { SchemaAST } from "effect";
5
- import { Obj } from "@dxos/echo";
6
- import { DataType } from "@dxos/schema";
7
- var queryStringToMatch = (queryString) => {
8
- const trimmed = queryString?.trim();
9
- return trimmed ? new RegExp(trimmed, "i") : void 0;
10
- };
11
- var getIcon = (schema) => {
12
- if (!(schema && SchemaAST.isTypeLiteral(schema.ast))) {
13
- return void 0;
14
- }
15
- const keys = schema.ast.propertySignatures.map((p) => p.name);
16
- if (keys.indexOf("email") !== -1) {
17
- return "user";
18
- }
19
- if (keys.indexOf("website") !== -1) {
20
- return "organization";
21
- }
22
- if (keys.indexOf("repo") !== -1) {
23
- return "project";
24
- }
25
- return void 0;
26
- };
27
- var filterObjectsSync = (objects, match) => {
28
- if (!match) {
29
- return [];
30
- }
31
- return objects.reduce((results, object) => {
32
- if (object instanceof DataType.Text) {
33
- return results;
34
- }
35
- const fields = mapObjectToTextFields(object);
36
- Object.entries(fields).some(([, value]) => {
37
- const result = value.match(match);
38
- if (result) {
39
- const label = getStringProperty(object, [
40
- "label",
41
- "name",
42
- "title"
43
- ]);
44
- results.push({
45
- id: object.id,
46
- type: getIcon(Obj.getSchema(object)),
47
- label,
48
- match,
49
- // TODO(burdon): Truncate.
50
- // TODO(burdon): Issue with sketch documents.
51
- snippet: value !== label ? value : fields.content ?? fields.description ?? void 0,
52
- object
53
- });
54
- return true;
55
- }
56
- return false;
57
- });
58
- return results;
59
- }, []);
60
- };
61
- var getStringProperty = (object, keys) => {
62
- let label;
63
- keys.some((key) => {
64
- const value = object[key];
65
- if (typeof value === "string") {
66
- label = value;
67
- return true;
68
- }
69
- return false;
70
- });
71
- return label;
72
- };
73
- var getKeys = (object) => {
74
- try {
75
- const obj = JSON.parse(JSON.stringify(object));
76
- return Object.keys(obj).filter((key) => key !== "id" && key !== "identityKey" && key[0] !== "_" && key[0] !== "@");
77
- } catch (err) {
78
- return [];
79
- }
80
- };
81
- var mapObjectToTextFields = (object) => {
82
- return getKeys(object).reduce((fields, key) => {
83
- const value = object[key];
84
- if (typeof value === "string" || value instanceof DataType.Text) {
85
- try {
86
- fields[key] = String(value);
87
- } catch (err) {
88
- }
89
- }
90
- return fields;
91
- }, {});
92
- };
93
-
94
- // src/hooks/useGlobalSearch.tsx
95
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
96
- import React, { createContext, useContext, useMemo, useState } from "react";
97
- import { raise } from "@dxos/debug";
98
- var SearchContext = /* @__PURE__ */ createContext({});
99
- var SearchContextProvider = ({ children }) => {
100
- var _effect = _useSignals();
101
- try {
102
- const [match, setMatch] = useState();
103
- const handleMatch = (text) => setMatch(queryStringToMatch(text));
104
- return /* @__PURE__ */ React.createElement(SearchContext.Provider, {
105
- value: {
106
- match,
107
- setMatch: handleMatch
108
- }
109
- }, children);
110
- } finally {
111
- _effect.f();
112
- }
113
- };
114
- var useGlobalSearch = () => {
115
- return useContext(SearchContext) ?? raise(new Error("Missing SearchContext."));
116
- };
117
- var useGlobalSearchResults = (objects) => {
118
- const { match } = useGlobalSearch();
119
- return objects && match ? filterObjectsSync(objects, match) : [];
120
- };
121
- var useGlobalFilteredObjects = (objects) => {
122
- const { match } = useGlobalSearch();
123
- if (!match || !objects) {
124
- return objects ?? [];
125
- }
126
- return useMemo(() => filterObjectsSync(objects, match).map((result) => result.object), [
127
- objects,
128
- match
129
- ]);
130
- };
131
-
132
- // src/hooks/useSearchResults.ts
133
- import { yieldOrContinue } from "main-thread-scheduling";
134
- import { useEffect, useState as useState2 } from "react";
135
- import { DataType as DataType2 } from "@dxos/schema";
136
- var filterObjects = async (objects, match) => {
137
- const result = /* @__PURE__ */ new Map();
138
- if (!match) {
139
- return result;
140
- }
141
- await Promise.all(objects.filter((object) => !(object instanceof DataType2.Text)).map(async (object) => {
142
- await yieldOrContinue("interactive");
143
- const fields = mapObjectToTextFields(object);
144
- Object.entries(fields).filter(([_, value]) => value.match(match)).forEach(([key, value]) => {
145
- if (!result.has(object)) {
146
- result.set(object, []);
147
- }
148
- result.set(object, [
149
- ...result.get(object),
150
- [
151
- key,
152
- value
153
- ]
154
- ]);
155
- });
156
- }));
157
- return result;
158
- };
159
- var useSearchResults = (queryString, objects, delay = 400) => {
160
- const [results, setResults] = useState2(/* @__PURE__ */ new Map());
161
- const [pending, setPending] = useState2(false);
162
- useEffect(() => {
163
- setPending(!!(objects && queryString));
164
- const timeoutId = setTimeout(async () => {
165
- const nextResults = objects && queryString ? await filterObjects(objects, queryStringToMatch(queryString)) : /* @__PURE__ */ new Map();
166
- setResults(nextResults);
167
- setPending(false);
168
- }, delay);
169
- return () => clearTimeout(timeoutId);
170
- }, [
171
- queryString,
172
- objects
173
- ]);
174
- return [
175
- pending,
176
- results
177
- ];
178
- };
179
-
180
- export {
181
- queryStringToMatch,
182
- filterObjectsSync,
183
- getStringProperty,
184
- mapObjectToTextFields,
185
- SearchContextProvider,
186
- useGlobalSearch,
187
- useGlobalSearchResults,
188
- useGlobalFilteredObjects,
189
- filterObjects,
190
- useSearchResults
191
- };
192
- //# sourceMappingURL=chunk-L7BUHKLC.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/hooks/sync.ts", "../../../src/hooks/useGlobalSearch.tsx", "../../../src/hooks/useSearchResults.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Schema, SchemaAST } from 'effect';\n\nimport { Obj } from '@dxos/echo';\nimport { DataType } from '@dxos/schema';\n\nimport { type SearchResult } from '../types';\n\nexport const queryStringToMatch = (queryString?: string): RegExp | undefined => {\n const trimmed = queryString?.trim();\n return trimmed ? new RegExp(trimmed, 'i') : undefined;\n};\n\n// TODO(burdon): Type name registry linked to schema?\nconst getIcon = (schema: Schema.Schema.AnyNoContext | undefined): string | undefined => {\n if (!(schema && SchemaAST.isTypeLiteral(schema.ast))) {\n return undefined;\n }\n const keys = schema.ast.propertySignatures.map((p) => p.name);\n if (keys.indexOf('email') !== -1) {\n return 'user';\n }\n if (keys.indexOf('website') !== -1) {\n return 'organization';\n }\n if (keys.indexOf('repo') !== -1) {\n return 'project';\n }\n\n return undefined;\n};\n\n// Plain text fields.\n// TODO(burdon): Reconcile with agent index.\nexport type TextFields = Record<string, string>;\n\n// TODO(thure): This returns `SearchResult[]` which is not just a narrower set of objects as the name implies.\nexport const filterObjectsSync = <T extends Record<string, any>>(objects: T[], match?: RegExp): SearchResult[] => {\n if (!match) {\n return [];\n }\n\n return objects.reduce<SearchResult[]>((results, object) => {\n // TODO(burdon): Hack to ignore Text objects.\n if (object instanceof DataType.Text) {\n return results;\n }\n\n const fields = mapObjectToTextFields(object);\n Object.entries(fields).some(([, value]) => {\n const result = value.match(match);\n if (result) {\n // TODO(burdon): Use schema.\n const label = getStringProperty(object, ['label', 'name', 'title']);\n\n results.push({\n id: object.id,\n type: getIcon(Obj.getSchema(object)),\n label,\n match,\n // TODO(burdon): Truncate.\n // TODO(burdon): Issue with sketch documents.\n snippet: value !== label ? value : fields.content ?? fields.description ?? undefined,\n object,\n });\n\n return true;\n }\n\n return false;\n });\n\n return results;\n }, []);\n};\n\n// TODO(burdon): Use schema?\nexport const getStringProperty = (object: any, keys: string[]): string | undefined => {\n let label;\n keys.some((key) => {\n const value = object[key];\n if (typeof value === 'string') {\n label = value;\n return true;\n }\n\n return false;\n });\n\n return label;\n};\n\n// TODO(burdon): Filter system fields.\nconst getKeys = (object: Record<string, unknown>): string[] => {\n try {\n const obj = JSON.parse(JSON.stringify(object));\n return Object.keys(obj).filter(\n (key) => key !== 'id' && key !== 'identityKey' && key[0] !== '_' && key[0] !== '@',\n ) as string[];\n } catch (err) {\n // TODO(burdon): Error with TLDraw sketch.\n // Uncaught Error: Type with the name content has already been defined with a different constructor\n return [];\n }\n};\n\n// TODO(burdon): Use ECHO schema.\nexport const mapObjectToTextFields = <T extends Record<string, unknown>>(object: T): TextFields => {\n return getKeys(object).reduce<TextFields>((fields, key) => {\n const value = object[key] as any;\n if (typeof value === 'string' || value instanceof DataType.Text) {\n try {\n fields[key] = String(value);\n } catch (err) {\n // TODO(burdon): Exception when parsing sketch document.\n }\n }\n\n return fields;\n }, {});\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren, useContext, useMemo, useState } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { filterObjectsSync, queryStringToMatch } from './sync';\nimport { type SearchResult } from '../types';\n\ntype SearchContextType = {\n match?: RegExp;\n setMatch?: (text?: string) => void;\n};\n\nconst SearchContext = createContext<SearchContextType>({});\n\nexport const SearchContextProvider = ({ children }: PropsWithChildren) => {\n const [match, setMatch] = useState<RegExp>();\n const handleMatch = (text?: string) => setMatch(queryStringToMatch(text));\n return <SearchContext.Provider value={{ match, setMatch: handleMatch }}>{children}</SearchContext.Provider>;\n};\n\nexport const useGlobalSearch = () => {\n return useContext(SearchContext) ?? raise(new Error('Missing SearchContext.'));\n};\n\nexport const useGlobalSearchResults = <T extends Record<string, any>>(objects?: T[]): SearchResult[] => {\n const { match } = useGlobalSearch();\n return objects && match ? filterObjectsSync(objects, match) : [];\n};\n\nexport const useGlobalFilteredObjects = <T extends Record<string, any>>(objects?: T[]): T[] => {\n const { match } = useGlobalSearch();\n if (!match || !objects) {\n return objects ?? [];\n }\n\n return useMemo(() => filterObjectsSync(objects, match).map((result) => result.object), [objects, match]);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { yieldOrContinue } from 'main-thread-scheduling';\nimport { useEffect, useState } from 'react';\n\nimport { DataType } from '@dxos/schema';\n\n// TODO(thure): Deprecate search-sync, move still-relevant utilities elsewhere (here, probably).\nimport { mapObjectToTextFields, queryStringToMatch } from './sync';\n\nexport const filterObjects = async <T extends Record<string, any>>(\n objects: T[],\n match?: RegExp,\n): Promise<Map<T, string[][]>> => {\n const result = new Map<T, string[][]>();\n if (!match) {\n return result;\n }\n await Promise.all(\n objects\n .filter((object) => !(object instanceof DataType.Text))\n .map(async (object) => {\n await yieldOrContinue('interactive');\n const fields = mapObjectToTextFields<T>(object);\n Object.entries(fields)\n .filter(([_, value]) => value.match(match))\n .forEach(([key, value]) => {\n if (!result.has(object)) {\n result.set(object, []);\n }\n result.set(object, [...result.get(object)!, [key, value]]);\n });\n }),\n );\n return result;\n};\n\nexport const useSearchResults = <T extends Record<string, any>>(\n queryString?: string,\n objects?: T[],\n delay: number = 400,\n): [boolean, Map<T, string[][]>] => {\n const [results, setResults] = useState<Map<T, string[][]>>(new Map());\n const [pending, setPending] = useState(false);\n\n useEffect(() => {\n setPending(!!(objects && queryString));\n const timeoutId = setTimeout(async () => {\n const nextResults =\n objects && queryString ? await filterObjects(objects, queryStringToMatch(queryString)) : new Map();\n setResults(nextResults);\n setPending(false);\n }, delay);\n\n return () => clearTimeout(timeoutId);\n }, [queryString, objects]);\n\n return [pending, results];\n};\n"],
5
- "mappings": ";;;AAIA,SAAsBA,iBAAiB;AAEvC,SAASC,WAAW;AACpB,SAASC,gBAAgB;AAIlB,IAAMC,qBAAqB,CAACC,gBAAAA;AACjC,QAAMC,UAAUD,aAAaE,KAAAA;AAC7B,SAAOD,UAAU,IAAIE,OAAOF,SAAS,GAAA,IAAOG;AAC9C;AAGA,IAAMC,UAAU,CAACC,WAAAA;AACf,MAAI,EAAEA,UAAUC,UAAUC,cAAcF,OAAOG,GAAG,IAAI;AACpD,WAAOL;EACT;AACA,QAAMM,OAAOJ,OAAOG,IAAIE,mBAAmBC,IAAI,CAACC,MAAMA,EAAEC,IAAI;AAC5D,MAAIJ,KAAKK,QAAQ,OAAA,MAAa,IAAI;AAChC,WAAO;EACT;AACA,MAAIL,KAAKK,QAAQ,SAAA,MAAe,IAAI;AAClC,WAAO;EACT;AACA,MAAIL,KAAKK,QAAQ,MAAA,MAAY,IAAI;AAC/B,WAAO;EACT;AAEA,SAAOX;AACT;AAOO,IAAMY,oBAAoB,CAAgCC,SAAcC,UAAAA;AAC7E,MAAI,CAACA,OAAO;AACV,WAAO,CAAA;EACT;AAEA,SAAOD,QAAQE,OAAuB,CAACC,SAASC,WAAAA;AAE9C,QAAIA,kBAAkBC,SAASC,MAAM;AACnC,aAAOH;IACT;AAEA,UAAMI,SAASC,sBAAsBJ,MAAAA;AACrCK,WAAOC,QAAQH,MAAAA,EAAQI,KAAK,CAAC,CAAA,EAAGC,KAAAA,MAAM;AACpC,YAAMC,SAASD,MAAMX,MAAMA,KAAAA;AAC3B,UAAIY,QAAQ;AAEV,cAAMC,QAAQC,kBAAkBX,QAAQ;UAAC;UAAS;UAAQ;SAAQ;AAElED,gBAAQa,KAAK;UACXC,IAAIb,OAAOa;UACXC,MAAM9B,QAAQ+B,IAAIC,UAAUhB,MAAAA,CAAAA;UAC5BU;UACAb;;;UAGAoB,SAAST,UAAUE,QAAQF,QAAQL,OAAOe,WAAWf,OAAOgB,eAAepC;UAC3EiB;QACF,CAAA;AAEA,eAAO;MACT;AAEA,aAAO;IACT,CAAA;AAEA,WAAOD;EACT,GAAG,CAAA,CAAE;AACP;AAGO,IAAMY,oBAAoB,CAACX,QAAaX,SAAAA;AAC7C,MAAIqB;AACJrB,OAAKkB,KAAK,CAACa,QAAAA;AACT,UAAMZ,QAAQR,OAAOoB,GAAAA;AACrB,QAAI,OAAOZ,UAAU,UAAU;AAC7BE,cAAQF;AACR,aAAO;IACT;AAEA,WAAO;EACT,CAAA;AAEA,SAAOE;AACT;AAGA,IAAMW,UAAU,CAACrB,WAAAA;AACf,MAAI;AACF,UAAMsB,MAAMC,KAAKC,MAAMD,KAAKE,UAAUzB,MAAAA,CAAAA;AACtC,WAAOK,OAAOhB,KAAKiC,GAAAA,EAAKI,OACtB,CAACN,QAAQA,QAAQ,QAAQA,QAAQ,iBAAiBA,IAAI,CAAA,MAAO,OAAOA,IAAI,CAAA,MAAO,GAAA;EAEnF,SAASO,KAAK;AAGZ,WAAO,CAAA;EACT;AACF;AAGO,IAAMvB,wBAAwB,CAAoCJ,WAAAA;AACvE,SAAOqB,QAAQrB,MAAAA,EAAQF,OAAmB,CAACK,QAAQiB,QAAAA;AACjD,UAAMZ,QAAQR,OAAOoB,GAAAA;AACrB,QAAI,OAAOZ,UAAU,YAAYA,iBAAiBP,SAASC,MAAM;AAC/D,UAAI;AACFC,eAAOiB,GAAAA,IAAOQ,OAAOpB,KAAAA;MACvB,SAASmB,KAAK;MAEd;IACF;AAEA,WAAOxB;EACT,GAAG,CAAC,CAAA;AACN;;;;ACvHA,OAAO0B,SAASC,eAAuCC,YAAYC,SAASC,gBAAgB;AAE5F,SAASC,aAAa;AAUtB,IAAMC,gBAAgBC,8BAAiC,CAAC,CAAA;AAEjD,IAAMC,wBAAwB,CAAC,EAAEC,SAAQ,MAAqB;;;AACnE,UAAM,CAACC,OAAOC,QAAAA,IAAYC,SAAAA;AAC1B,UAAMC,cAAc,CAACC,SAAkBH,SAASI,mBAAmBD,IAAAA,CAAAA;AACnE,WAAO,sBAAA,cAACR,cAAcU,UAAQ;MAACC,OAAO;QAAEP;QAAOC,UAAUE;MAAY;OAAIJ,QAAAA;;;;AAC3E;AAEO,IAAMS,kBAAkB,MAAA;AAC7B,SAAOC,WAAWb,aAAAA,KAAkBc,MAAM,IAAIC,MAAM,wBAAA,CAAA;AACtD;AAEO,IAAMC,yBAAyB,CAAgCC,YAAAA;AACpE,QAAM,EAAEb,MAAK,IAAKQ,gBAAAA;AAClB,SAAOK,WAAWb,QAAQc,kBAAkBD,SAASb,KAAAA,IAAS,CAAA;AAChE;AAEO,IAAMe,2BAA2B,CAAgCF,YAAAA;AACtE,QAAM,EAAEb,MAAK,IAAKQ,gBAAAA;AAClB,MAAI,CAACR,SAAS,CAACa,SAAS;AACtB,WAAOA,WAAW,CAAA;EACpB;AAEA,SAAOG,QAAQ,MAAMF,kBAAkBD,SAASb,KAAAA,EAAOiB,IAAI,CAACC,WAAWA,OAAOC,MAAM,GAAG;IAACN;IAASb;GAAM;AACzG;;;ACpCA,SAASoB,uBAAuB;AAChC,SAASC,WAAWC,YAAAA,iBAAgB;AAEpC,SAASC,YAAAA,iBAAgB;AAKlB,IAAMC,gBAAgB,OAC3BC,SACAC,UAAAA;AAEA,QAAMC,SAAS,oBAAIC,IAAAA;AACnB,MAAI,CAACF,OAAO;AACV,WAAOC;EACT;AACA,QAAME,QAAQC,IACZL,QACGM,OAAO,CAACC,WAAW,EAAEA,kBAAkBC,UAASC,KAAG,EACnDC,IAAI,OAAOH,WAAAA;AACV,UAAMI,gBAAgB,aAAA;AACtB,UAAMC,SAASC,sBAAyBN,MAAAA;AACxCO,WAAOC,QAAQH,MAAAA,EACZN,OAAO,CAAC,CAACU,GAAGC,KAAAA,MAAWA,MAAMhB,MAAMA,KAAAA,CAAAA,EACnCiB,QAAQ,CAAC,CAACC,KAAKF,KAAAA,MAAM;AACpB,UAAI,CAACf,OAAOkB,IAAIb,MAAAA,GAAS;AACvBL,eAAOmB,IAAId,QAAQ,CAAA,CAAE;MACvB;AACAL,aAAOmB,IAAId,QAAQ;WAAIL,OAAOoB,IAAIf,MAAAA;QAAU;UAACY;UAAKF;;OAAO;IAC3D,CAAA;EACJ,CAAA,CAAA;AAEJ,SAAOf;AACT;AAEO,IAAMqB,mBAAmB,CAC9BC,aACAxB,SACAyB,QAAgB,QAAG;AAEnB,QAAM,CAACC,SAASC,UAAAA,IAAcC,UAA6B,oBAAIzB,IAAAA,CAAAA;AAC/D,QAAM,CAAC0B,SAASC,UAAAA,IAAcF,UAAS,KAAA;AAEvCG,YAAU,MAAA;AACRD,eAAW,CAAC,EAAE9B,WAAWwB,YAAU;AACnC,UAAMQ,YAAYC,WAAW,YAAA;AAC3B,YAAMC,cACJlC,WAAWwB,cAAc,MAAMzB,cAAcC,SAASmC,mBAAmBX,WAAAA,CAAAA,IAAgB,oBAAIrB,IAAAA;AAC/FwB,iBAAWO,WAAAA;AACXJ,iBAAW,KAAA;IACb,GAAGL,KAAAA;AAEH,WAAO,MAAMW,aAAaJ,SAAAA;EAC5B,GAAG;IAACR;IAAaxB;GAAQ;AAEzB,SAAO;IAAC6B;IAASH;;AACnB;",
6
- "names": ["SchemaAST", "Obj", "DataType", "queryStringToMatch", "queryString", "trimmed", "trim", "RegExp", "undefined", "getIcon", "schema", "SchemaAST", "isTypeLiteral", "ast", "keys", "propertySignatures", "map", "p", "name", "indexOf", "filterObjectsSync", "objects", "match", "reduce", "results", "object", "DataType", "Text", "fields", "mapObjectToTextFields", "Object", "entries", "some", "value", "result", "label", "getStringProperty", "push", "id", "type", "Obj", "getSchema", "snippet", "content", "description", "key", "getKeys", "obj", "JSON", "parse", "stringify", "filter", "err", "String", "React", "createContext", "useContext", "useMemo", "useState", "raise", "SearchContext", "createContext", "SearchContextProvider", "children", "match", "setMatch", "useState", "handleMatch", "text", "queryStringToMatch", "Provider", "value", "useGlobalSearch", "useContext", "raise", "Error", "useGlobalSearchResults", "objects", "filterObjectsSync", "useGlobalFilteredObjects", "useMemo", "map", "result", "object", "yieldOrContinue", "useEffect", "useState", "DataType", "filterObjects", "objects", "match", "result", "Map", "Promise", "all", "filter", "object", "DataType", "Text", "map", "yieldOrContinue", "fields", "mapObjectToTextFields", "Object", "entries", "_", "value", "forEach", "key", "has", "set", "get", "useSearchResults", "queryString", "delay", "results", "setResults", "useState", "pending", "setPending", "useEffect", "timeoutId", "setTimeout", "nextResults", "queryStringToMatch", "clearTimeout"]
7
- }
@@ -1,22 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/meta.ts
4
- var SEARCH_PLUGIN = "dxos.org/plugin/search";
5
- var SEARCH_RESULT = `${SEARCH_PLUGIN}/result`;
6
- var meta = {
7
- id: SEARCH_PLUGIN,
8
- name: "Search",
9
- description: "Search ECHO spaces for content.",
10
- icon: "ph--magnifying-glass--regular",
11
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-search",
12
- tags: [
13
- "labs"
14
- ]
15
- };
16
-
17
- export {
18
- SEARCH_PLUGIN,
19
- SEARCH_RESULT,
20
- meta
21
- };
22
- //# sourceMappingURL=chunk-N5SNYFMK.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const SEARCH_PLUGIN = 'dxos.org/plugin/search';\nexport const SEARCH_RESULT = `${SEARCH_PLUGIN}/result`;\n\nexport const meta: PluginMeta = {\n id: SEARCH_PLUGIN,\n name: 'Search',\n description: 'Search ECHO spaces for content.',\n icon: 'ph--magnifying-glass--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-search',\n tags: ['labs'],\n};\n"],
5
- "mappings": ";;;AAMO,IAAMA,gBAAgB;AACtB,IAAMC,gBAAgB,GAAGD,aAAAA;AAEzB,IAAME,OAAmB;EAC9BC,IAAIH;EACJI,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
6
- "names": ["SEARCH_PLUGIN", "SEARCH_RESULT", "meta", "id", "name", "description", "icon", "source", "tags"]
7
- }
@@ -1,22 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- SEARCH_PLUGIN
4
- } from "./chunk-N5SNYFMK.mjs";
5
-
6
- // src/types/action.tsx
7
- import { Schema } from "effect";
8
- (function(SearchAction2) {
9
- const SEARCH_ACTION = `${SEARCH_PLUGIN}/action`;
10
- class OpenSearch extends Schema.TaggedClass()(`${SEARCH_ACTION}/open-search`, {
11
- input: Schema.Void,
12
- output: Schema.Void
13
- }) {
14
- }
15
- SearchAction2.OpenSearch = OpenSearch;
16
- })(SearchAction || (SearchAction = {}));
17
- var SearchAction;
18
-
19
- export {
20
- SearchAction
21
- };
22
- //# sourceMappingURL=chunk-Y7BGRQH5.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/action.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { SEARCH_PLUGIN } from '../meta';\n\nexport namespace SearchAction {\n const SEARCH_ACTION = `${SEARCH_PLUGIN}/action`;\n\n export class OpenSearch extends Schema.TaggedClass<OpenSearch>()(`${SEARCH_ACTION}/open-search`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n}\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,cAAc;UAINC,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;EAElB,MAAMC,mBAAmBC,OAAOC,YAAW,EAAe,GAAGJ,aAAAA,gBAA6B;IAC/FK,OAAOF,OAAOG;IACdC,QAAQJ,OAAOG;EACjB,CAAA,EAAA;EAAI;gBAHSJ,aAAAA;AAIf,GAPiBH,iBAAAA,eAAAA,CAAAA,EAAAA;;",
6
- "names": ["Schema", "SearchAction", "SEARCH_ACTION", "SEARCH_PLUGIN", "OpenSearch", "Schema", "TaggedClass", "input", "Void", "output"]
7
- }
@@ -1,113 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- SearchAction
4
- } from "./chunk-Y7BGRQH5.mjs";
5
- import {
6
- SearchContextProvider,
7
- filterObjects,
8
- filterObjectsSync,
9
- getStringProperty,
10
- mapObjectToTextFields,
11
- queryStringToMatch,
12
- useGlobalFilteredObjects,
13
- useGlobalSearch,
14
- useGlobalSearchResults,
15
- useSearchResults
16
- } from "./chunk-L7BUHKLC.mjs";
17
- import {
18
- SEARCH_PLUGIN,
19
- SEARCH_RESULT,
20
- meta
21
- } from "./chunk-N5SNYFMK.mjs";
22
-
23
- // src/SearchPlugin.tsx
24
- import { contributes, Events, defineModule, definePlugin, Capabilities } from "@dxos/app-framework";
25
-
26
- // src/capabilities/index.ts
27
- import { lazy } from "@dxos/app-framework";
28
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-IZHM72QQ.mjs"));
29
- var IntentResolver = lazy(() => import("./intent-resolver-MFPFD3XC.mjs"));
30
- var ReactSurface = lazy(() => import("./react-surface-WHU5EEAQ.mjs"));
31
-
32
- // src/translations.ts
33
- var translations = [
34
- {
35
- "en-US": {
36
- [meta.id]: {
37
- "plugin name": "Search",
38
- "search action label": "Search spaces",
39
- "search placeholder": "Search\u2026",
40
- "search dialog title": "Open",
41
- "recently closed heading": "Recently closed",
42
- "pending results message": "Searching\u2026",
43
- "empty results message": "No matching items in your spaces",
44
- "search label": "Search"
45
- }
46
- }
47
- }
48
- ];
49
-
50
- // src/SearchPlugin.tsx
51
- var SearchPlugin = () => definePlugin(meta, [
52
- defineModule({
53
- id: `${meta.id}/module/translations`,
54
- activatesOn: Events.SetupTranslations,
55
- activate: () => contributes(Capabilities.Translations, translations)
56
- }),
57
- defineModule({
58
- id: `${meta.id}/module/metadata`,
59
- activatesOn: Events.SetupMetadata,
60
- activate: () => contributes(Capabilities.Metadata, {
61
- id: SEARCH_RESULT,
62
- metadata: {
63
- parse: (item, type) => {
64
- switch (type) {
65
- case "node":
66
- return {
67
- id: item.id,
68
- label: item.label,
69
- data: item.object
70
- };
71
- case "object":
72
- return item.object;
73
- case "view-object":
74
- return item;
75
- }
76
- }
77
- }
78
- })
79
- }),
80
- defineModule({
81
- id: `${meta.id}/module/app-graph-builder`,
82
- activatesOn: Events.SetupAppGraph,
83
- activate: AppGraphBuilder
84
- }),
85
- defineModule({
86
- id: `${meta.id}/module/intent-resolver`,
87
- activatesOn: Events.SetupIntentResolver,
88
- activate: IntentResolver
89
- }),
90
- defineModule({
91
- id: `${meta.id}/module/react-surface`,
92
- activatesOn: Events.SetupReactSurface,
93
- activate: ReactSurface
94
- })
95
- ]);
96
- export {
97
- SEARCH_PLUGIN,
98
- SEARCH_RESULT,
99
- SearchAction,
100
- SearchContextProvider,
101
- SearchPlugin,
102
- filterObjects,
103
- filterObjectsSync,
104
- getStringProperty,
105
- mapObjectToTextFields,
106
- meta,
107
- queryStringToMatch,
108
- useGlobalFilteredObjects,
109
- useGlobalSearch,
110
- useGlobalSearchResults,
111
- useSearchResults
112
- };
113
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/SearchPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { contributes, Events, defineModule, definePlugin, Capabilities } from '@dxos/app-framework';\n\nimport { AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';\nimport { meta, SEARCH_RESULT } from './meta';\nimport { translations } from './translations';\nimport { type SearchResult } from './types';\n\nexport const SearchPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: SEARCH_RESULT,\n metadata: {\n parse: (item: SearchResult, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.label, data: item.object };\n case 'object':\n return item.object;\n case 'view-object':\n return item;\n }\n },\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin name': 'Search',\n 'search action label': 'Search spaces',\n 'search placeholder': 'Search…',\n 'search dialog title': 'Open',\n 'recently closed heading': 'Recently closed',\n 'pending results message': 'Searching…',\n 'empty results message': 'No matching items in your spaces',\n 'search label': 'Search',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,aAAaC,QAAQC,cAAcC,cAAcC,oBAAoB;;;ACA9E,SAASC,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACAvC,IAAMG,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,uBAAuB;QACvB,sBAAsB;QACtB,uBAAuB;QACvB,2BAA2B;QAC3B,2BAA2B;QAC3B,yBAAyB;QACzB,gBAAgB;MAClB;IACF;EACF;;;;AFXK,IAAMC,eAAe,MAC1BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAcC,YAAAA;EACzD,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOO;IACpBL,UAAU,MACRC,YAAYC,aAAaI,UAAU;MACjCV,IAAIW;MACJC,UAAU;QACRC,OAAO,CAACC,MAAoBC,SAAAA;AAC1B,kBAAQA,MAAAA;YACN,KAAK;AACH,qBAAO;gBAAEf,IAAIc,KAAKd;gBAAIgB,OAAOF,KAAKE;gBAAOC,MAAMH,KAAKI;cAAO;YAC7D,KAAK;AACH,qBAAOJ,KAAKI;YACd,KAAK;AACH,qBAAOJ;UACX;QACF;MACF;IACF,CAAA;EACJ,CAAA;EACAf,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOiB;IACpBf,UAAUgB;EACZ,CAAA;EACArB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOmB;IACpBjB,UAAUkB;EACZ,CAAA;EACAvB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOqB;IACpBnB,UAAUoB;EACZ,CAAA;CACD;",
6
- "names": ["contributes", "Events", "defineModule", "definePlugin", "Capabilities", "lazy", "AppGraphBuilder", "lazy", "IntentResolver", "ReactSurface", "translations", "meta", "id", "SearchPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "SetupMetadata", "Metadata", "SEARCH_RESULT", "metadata", "parse", "item", "type", "label", "data", "object", "SetupAppGraph", "AppGraphBuilder", "SetupIntentResolver", "IntentResolver", "SetupReactSurface", "ReactSurface"]
7
- }
@@ -1,23 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- SearchAction
4
- } from "./chunk-Y7BGRQH5.mjs";
5
- import "./chunk-N5SNYFMK.mjs";
6
-
7
- // src/capabilities/intent-resolver.ts
8
- import { contributes, Capabilities, createResolver, LayoutAction, createIntent } from "@dxos/app-framework";
9
- var intent_resolver_default = () => contributes(Capabilities.IntentResolver, createResolver({
10
- intent: SearchAction.OpenSearch,
11
- resolve: () => ({
12
- intents: [
13
- createIntent(LayoutAction.UpdateComplementary, {
14
- part: "complementary",
15
- subject: "search"
16
- })
17
- ]
18
- })
19
- }));
20
- export {
21
- intent_resolver_default as default
22
- };
23
- //# sourceMappingURL=intent-resolver-MFPFD3XC.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, Capabilities, createResolver, LayoutAction, createIntent } from '@dxos/app-framework';\n\nimport { SearchAction } from '../types';\n\nexport default () =>\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: SearchAction.OpenSearch,\n resolve: () => ({\n intents: [createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'search' })],\n }),\n }),\n );\n"],
5
- "mappings": ";;;;;;;AAIA,SAASA,aAAaC,cAAcC,gBAAgBC,cAAcC,oBAAoB;AAItF,IAAA,0BAAe,MACbC,YACEC,aAAaC,gBACbC,eAAe;EACbC,QAAQC,aAAaC;EACrBC,SAAS,OAAO;IACdC,SAAS;MAACC,aAAaC,aAAaC,qBAAqB;QAAEC,MAAM;QAAiBC,SAAS;MAAS,CAAA;;EACtG;AACF,CAAA,CAAA;",
6
- "names": ["contributes", "Capabilities", "createResolver", "LayoutAction", "createIntent", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "SearchAction", "OpenSearch", "resolve", "intents", "createIntent", "LayoutAction", "UpdateComplementary", "part", "subject"]
7
- }
@@ -1 +0,0 @@
1
- {"inputs":{"src/hooks/sync.ts":{"bytes":11933,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useGlobalSearch.tsx":{"bytes":5134,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/hooks/sync.ts","kind":"import-statement","original":"./sync"}],"format":"esm"},"src/hooks/useSearchResults.ts":{"bytes":6688,"imports":[{"path":"main-thread-scheduling","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/hooks/sync.ts","kind":"import-statement","original":"./sync"}],"format":"esm"},"src/hooks/index.ts":{"bytes":670,"imports":[{"path":"src/hooks/sync.ts","kind":"import-statement","original":"./sync"},{"path":"src/hooks/useGlobalSearch.tsx","kind":"import-statement","original":"./useGlobalSearch"},{"path":"src/hooks/useSearchResults.ts","kind":"import-statement","original":"./useSearchResults"}],"format":"esm"},"src/meta.ts":{"bytes":1732,"imports":[],"format":"esm"},"src/types/action.tsx":{"bytes":1717,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/types/search.ts":{"bytes":916,"imports":[],"format":"esm"},"src/types/index.ts":{"bytes":543,"imports":[{"path":"src/types/action.tsx","kind":"import-statement","original":"./action"},{"path":"src/types/search.ts","kind":"import-statement","original":"./search"}],"format":"esm"},"src/capabilities/app-graph-builder.ts":{"bytes":10960,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-deck/types","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/capabilities/intent-resolver.ts":{"bytes":2212,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/Searchbar/Searchbar.tsx":{"bytes":6657,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"src/components/Searchbar/index.ts":{"bytes":483,"imports":[{"path":"src/components/Searchbar/Searchbar.tsx","kind":"import-statement","original":"./Searchbar"}],"format":"esm"},"src/components/SearchResults/SearchResults.tsx":{"bytes":9164,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"src/components/SearchResults/index.ts":{"bytes":499,"imports":[{"path":"src/components/SearchResults/SearchResults.tsx","kind":"import-statement","original":"./SearchResults"}],"format":"esm"},"src/search/exa.ts":{"bytes":24964,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"exa-js","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/search/index.ts":{"bytes":455,"imports":[{"path":"src/search/exa.ts","kind":"import-statement","original":"./exa"}],"format":"esm"},"src/hooks/useWebSearch.ts":{"bytes":7150,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/ai/testing","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/schema/testing","kind":"import-statement","external":true},{"path":"src/hooks/sync.ts","kind":"import-statement","original":"./sync"},{"path":"src/search/index.ts","kind":"import-statement","original":"../search"}],"format":"esm"},"src/components/SearchMain.tsx":{"bytes":8709,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"src/components/SearchResults/index.ts","kind":"import-statement","original":"./SearchResults"},{"path":"src/components/Searchbar/index.ts","kind":"import-statement","original":"./Searchbar"},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../hooks"},{"path":"src/hooks/useWebSearch.ts","kind":"import-statement","original":"../hooks/useWebSearch"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/components/SearchDialog.tsx":{"bytes":17459,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../hooks"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/components/index.ts":{"bytes":663,"imports":[{"path":"src/components/Searchbar/index.ts","kind":"import-statement","original":"./Searchbar"},{"path":"src/components/SearchMain.tsx","kind":"import-statement","original":"./SearchMain"},{"path":"src/components/SearchDialog.tsx","kind":"import-statement","original":"./SearchDialog"}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":5783,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../hooks"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":1300,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":2102,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/SearchPlugin.tsx":{"bytes":6566,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"src/index.ts":{"bytes":715,"imports":[{"path":"src/hooks/index.ts","kind":"import-statement","original":"./hooks"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"src/SearchPlugin.tsx","kind":"import-statement","original":"./SearchPlugin"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4578},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-Y7BGRQH5.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-L7BUHKLC.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-N5SNYFMK.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/app-graph-builder-IZHM72QQ.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/intent-resolver-MFPFD3XC.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/react-surface-WHU5EEAQ.mjs","kind":"dynamic-import"}],"exports":["SEARCH_PLUGIN","SEARCH_RESULT","SearchAction","SearchContextProvider","SearchPlugin","filterObjects","filterObjectsSync","getStringProperty","mapObjectToTextFields","meta","queryStringToMatch","useGlobalFilteredObjects","useGlobalSearch","useGlobalSearchResults","useSearchResults"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/SearchPlugin.tsx":{"bytesInOutput":1327},"src/capabilities/index.ts":{"bytesInOutput":268},"src/translations.ts":{"bytesInOutput":456}},"bytes":2990},"dist/lib/node-esm/app-graph-builder-IZHM72QQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5393},"dist/lib/node-esm/app-graph-builder-IZHM72QQ.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-Y7BGRQH5.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-N5SNYFMK.mjs","kind":"import-statement"},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-deck/types","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/app-graph-builder.ts","inputs":{"src/capabilities/app-graph-builder.ts":{"bytesInOutput":2435}},"bytes":2787},"dist/lib/node-esm/intent-resolver-MFPFD3XC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1140},"dist/lib/node-esm/intent-resolver-MFPFD3XC.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-Y7BGRQH5.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-N5SNYFMK.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/intent-resolver.ts","inputs":{"src/capabilities/intent-resolver.ts":{"bytesInOutput":410}},"bytes":731},"dist/lib/node-esm/chunk-Y7BGRQH5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":848},"dist/lib/node-esm/chunk-Y7BGRQH5.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-N5SNYFMK.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true}],"exports":["SearchAction"],"inputs":{"src/types/action.tsx":{"bytesInOutput":352},"src/types/index.ts":{"bytesInOutput":0}},"bytes":597},"dist/lib/node-esm/react-surface-WHU5EEAQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":40501},"dist/lib/node-esm/react-surface-WHU5EEAQ.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-L7BUHKLC.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-N5SNYFMK.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/ai/testing","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/schema/testing","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"exa-js","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":1349},"src/components/Searchbar/Searchbar.tsx":{"bytesInOutput":1716},"src/components/Searchbar/index.ts":{"bytesInOutput":0},"src/components/index.ts":{"bytesInOutput":0},"src/components/SearchMain.tsx":{"bytesInOutput":2234},"src/components/SearchResults/SearchResults.tsx":{"bytesInOutput":2579},"src/components/SearchResults/index.ts":{"bytesInOutput":0},"src/hooks/useWebSearch.ts":{"bytesInOutput":1888},"src/search/exa.ts":{"bytesInOutput":6311},"src/search/index.ts":{"bytesInOutput":0},"src/components/SearchDialog.tsx":{"bytesInOutput":4874}},"bytes":21723},"dist/lib/node-esm/chunk-L7BUHKLC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12446},"dist/lib/node-esm/chunk-L7BUHKLC.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"main-thread-scheduling","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["SearchContextProvider","filterObjects","filterObjectsSync","getStringProperty","mapObjectToTextFields","queryStringToMatch","useGlobalFilteredObjects","useGlobalSearch","useGlobalSearchResults","useSearchResults"],"inputs":{"src/hooks/sync.ts":{"bytesInOutput":2348},"src/hooks/useGlobalSearch.tsx":{"bytesInOutput":1181},"src/hooks/useSearchResults.ts":{"bytesInOutput":1462},"src/hooks/index.ts":{"bytesInOutput":0}},"bytes":5453},"dist/lib/node-esm/chunk-N5SNYFMK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":848},"dist/lib/node-esm/chunk-N5SNYFMK.mjs":{"imports":[],"exports":["SEARCH_PLUGIN","SEARCH_RESULT","meta"],"inputs":{"src/meta.ts":{"bytesInOutput":347}},"bytes":553}}}