@dxos/app-framework 0.3.10-next.ef70620 → 0.3.11-main.008b7c6

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 (47) hide show
  1. package/dist/lib/browser/{chunk-C2K6M6WC.mjs → chunk-QYIBDGYI.mjs} +19 -1
  2. package/dist/lib/browser/chunk-QYIBDGYI.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +38 -21
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/{plugin-CBPJO5NB.mjs → plugin-YLDDUID4.mjs} +27 -2
  7. package/dist/lib/browser/plugin-YLDDUID4.mjs.map +7 -0
  8. package/dist/lib/node/{chunk-BOQBLWMX.cjs → chunk-YWRBMGDT.cjs} +26 -6
  9. package/dist/lib/node/chunk-YWRBMGDT.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +43 -26
  11. package/dist/lib/node/index.cjs.map +4 -4
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/{plugin-WDNRX2SR.cjs → plugin-NP3IH5Q3.cjs} +33 -8
  14. package/dist/lib/node/plugin-NP3IH5Q3.cjs.map +7 -0
  15. package/dist/types/src/plugins/IntentPlugin/IntentContext.d.ts +10 -2
  16. package/dist/types/src/plugins/IntentPlugin/IntentContext.d.ts.map +1 -1
  17. package/dist/types/src/plugins/IntentPlugin/intent.d.ts +3 -1
  18. package/dist/types/src/plugins/IntentPlugin/intent.d.ts.map +1 -1
  19. package/dist/types/src/plugins/IntentPlugin/plugin.d.ts.map +1 -1
  20. package/dist/types/src/plugins/IntentPlugin/provides.d.ts +2 -2
  21. package/dist/types/src/plugins/IntentPlugin/provides.d.ts.map +1 -1
  22. package/dist/types/src/plugins/PluginHost/PluginContext.d.ts +1 -8
  23. package/dist/types/src/plugins/PluginHost/PluginContext.d.ts.map +1 -1
  24. package/dist/types/src/plugins/PluginHost/PluginHost.d.ts.map +1 -1
  25. package/dist/types/src/plugins/PluginHost/plugin.d.ts +8 -0
  26. package/dist/types/src/plugins/PluginHost/plugin.d.ts.map +1 -1
  27. package/dist/types/src/plugins/common/index.d.ts +1 -0
  28. package/dist/types/src/plugins/common/index.d.ts.map +1 -1
  29. package/dist/types/src/plugins/common/layout.d.ts +14 -13
  30. package/dist/types/src/plugins/common/layout.d.ts.map +1 -1
  31. package/dist/types/src/plugins/common/settings.d.ts +9 -0
  32. package/dist/types/src/plugins/common/settings.d.ts.map +1 -0
  33. package/package.json +7 -7
  34. package/src/plugins/IntentPlugin/IntentContext.tsx +27 -3
  35. package/src/plugins/IntentPlugin/intent.ts +5 -1
  36. package/src/plugins/IntentPlugin/plugin.tsx +26 -2
  37. package/src/plugins/IntentPlugin/provides.ts +2 -2
  38. package/src/plugins/PluginHost/PluginContext.tsx +2 -11
  39. package/src/plugins/PluginHost/PluginHost.tsx +6 -5
  40. package/src/plugins/PluginHost/plugin.ts +5 -0
  41. package/src/plugins/common/index.ts +1 -0
  42. package/src/plugins/common/layout.ts +7 -4
  43. package/src/plugins/common/settings.ts +22 -0
  44. package/dist/lib/browser/chunk-C2K6M6WC.mjs.map +0 -7
  45. package/dist/lib/browser/plugin-CBPJO5NB.mjs.map +0 -7
  46. package/dist/lib/node/chunk-BOQBLWMX.cjs.map +0 -7
  47. package/dist/lib/node/plugin-WDNRX2SR.cjs.map +0 -7
@@ -3,12 +3,12 @@
3
3
  //
4
4
 
5
5
  import { type IntentContext } from './IntentContext';
6
- import { type Intent } from './intent';
6
+ import { type IntentResolver } from './intent';
7
7
  import { type Plugin } from '../PluginHost';
8
8
 
9
9
  export type IntentResolverProvides = {
10
10
  intent: {
11
- resolver: (intent: Intent, plugins: Plugin[]) => any;
11
+ resolver: IntentResolver;
12
12
  };
13
13
  };
14
14
 
@@ -30,17 +30,9 @@ export type PluginContext = {
30
30
 
31
31
  /**
32
32
  * Mark plugin as enabled.
33
- *
34
33
  * Requires reload to take effect.
35
34
  */
36
- enablePlugin: (id: string) => void;
37
-
38
- /**
39
- * Mark plugin as disabled.
40
- *
41
- * Requires reload to take effect.
42
- */
43
- disablePlugin: (id: string) => void;
35
+ setPlugin: (id: string, enabled: boolean) => void;
44
36
  };
45
37
 
46
38
  const PluginContext: Context<PluginContext> = createContext<PluginContext>({
@@ -48,8 +40,7 @@ const PluginContext: Context<PluginContext> = createContext<PluginContext>({
48
40
  enabled: [],
49
41
  plugins: [],
50
42
  available: [],
51
- enablePlugin: () => {},
52
- disablePlugin: () => {},
43
+ setPlugin: () => {},
53
44
  });
54
45
 
55
46
  /**
@@ -43,11 +43,12 @@ export const PluginHost = ({
43
43
  enabled: [...defaults],
44
44
  plugins: [],
45
45
  available: order.filter(({ id }) => !core.includes(id)),
46
- enablePlugin: (id: string) => {
47
- state.values.enabled = [...state.values.enabled, id];
48
- },
49
- disablePlugin: (id: string) => {
50
- state.values.enabled = state.values.enabled.filter((enabled) => enabled !== id);
46
+ setPlugin: (id: string, enabled: boolean) => {
47
+ if (enabled) {
48
+ state.values.enabled = [...state.values.enabled, id];
49
+ } else {
50
+ state.values.enabled = state.values.enabled.filter((enabled) => enabled !== id);
51
+ }
51
52
  },
52
53
  });
53
54
 
@@ -54,6 +54,11 @@ export type Plugin<TProvides = {}> = {
54
54
  */
55
55
  description?: string;
56
56
 
57
+ /**
58
+ * URL of home page.
59
+ */
60
+ homePage?: string;
61
+
57
62
  /**
58
63
  * Tags to help categorize the plugin.
59
64
  */
@@ -5,4 +5,5 @@
5
5
  export * from './graph';
6
6
  export * from './layout';
7
7
  export * from './metadata';
8
+ export * from './settings';
8
9
  export * from './translations';
@@ -13,17 +13,19 @@ import type { Plugin } from '../PluginHost';
13
13
  /**
14
14
  * Basic state provided by a layout plugin.
15
15
  */
16
+ // TODO(burdon): Josiah: why do we use zod here?
16
17
  export const Layout = z.object({
17
18
  fullscreen: z.boolean(),
18
19
  sidebarOpen: z.boolean(),
19
20
  complementarySidebarOpen: z.boolean(),
20
21
 
21
- dialogContent: z.any().optional().describe('Data to be passed to the dialog Surface.'),
22
+ // TODO(burdon): Why do we have a single root?
22
23
  dialogOpen: z.boolean(),
24
+ dialogContent: z.any().optional().describe('Data to be passed to the dialog Surface.'),
23
25
 
24
- popoverAnchorId: z.string().optional(),
25
- popoverContent: z.any().optional().describe('Data to be passed to the popover Surface.'),
26
26
  popoverOpen: z.boolean(),
27
+ popoverContent: z.any().optional().describe('Data to be passed to the popover Surface.'),
28
+ popoverAnchorId: z.string().optional(),
27
29
 
28
30
  // TODO(wittjosiah): Array?
29
31
  active: z.string().optional().describe('Id of the currently active item.'),
@@ -52,7 +54,7 @@ export const parseLayoutPlugin = (plugin: Plugin) => {
52
54
  // Intents
53
55
  //
54
56
 
55
- const LAYOUT_ACTION = 'dxos.org/plugin/intent';
57
+ const LAYOUT_ACTION = 'dxos.org/plugin/layout';
56
58
  // TODO(wittjosiah): Consider consolidating some action types (e.g. toggle).
57
59
  export enum LayoutAction {
58
60
  TOGGLE_FULLSCREEN = `${LAYOUT_ACTION}/toggle-fullscreen`,
@@ -63,6 +65,7 @@ export enum LayoutAction {
63
65
  OPEN_POPOVER = `${LAYOUT_ACTION}/open-popover`,
64
66
  CLOSE_POPOVER = `${LAYOUT_ACTION}/close-popover`,
65
67
  ACTIVATE = `${LAYOUT_ACTION}/activate`,
68
+ FOCUS = `${LAYOUT_ACTION}/focus`,
66
69
  }
67
70
 
68
71
  /**
@@ -0,0 +1,22 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type Plugin } from '../PluginHost';
6
+
7
+ // TODO(burdon): Plugins should export ts-effect object (see local-storage).
8
+ // TODO(burdon): Auto generate form.
9
+ // TODO(burdon): Set surface's data.type to plugin id (allow custom settings surface).
10
+
11
+ export type SettingsProvides<T extends Record<string, any> = Record<string, any>> = {
12
+ settings: T; // TODO(burdon): Read-only.
13
+ };
14
+
15
+ export const parseSettingsPlugin = (plugin: Plugin) => {
16
+ return typeof (plugin.provides as any).settings === 'object' ? (plugin as Plugin<SettingsProvides>) : undefined;
17
+ };
18
+
19
+ const SETTINGS_ACTION = 'dxos.org/plugin/settings';
20
+ export enum SettingsAction {
21
+ OPEN = `${SETTINGS_ACTION}/open`,
22
+ }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/plugins/IntentPlugin/provides.ts", "../../../src/plugins/IntentPlugin/IntentContext.tsx", "../../../src/plugins/IntentPlugin/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IntentContext } from './IntentContext';\nimport { type Intent } from './intent';\nimport { type Plugin } from '../PluginHost';\n\nexport type IntentResolverProvides = {\n intent: {\n resolver: (intent: Intent, plugins: Plugin[]) => any;\n };\n};\n\nexport type IntentPluginProvides = {\n intent: IntentContext;\n};\n\nexport const parseIntentPlugin = (plugin: Plugin) =>\n (plugin.provides as any).intent?.dispatch ? (plugin as Plugin<IntentPluginProvides>) : undefined;\n\nexport const parseIntentResolverPlugin = (plugin: Plugin) =>\n (plugin.provides as any).intent?.resolver ? (plugin as Plugin<IntentResolverProvides>) : undefined;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Context, createContext, useContext, type Provider } from 'react';\n\nimport { type DispatchIntent } from './intent';\n\nexport type IntentContext = {\n dispatch: DispatchIntent;\n};\n\nconst IntentContext: Context<IntentContext> = createContext<IntentContext>({ dispatch: async () => {} });\n\nexport const useIntent = () => useContext(IntentContext);\n\nexport const IntentProvider: Provider<IntentContext> = IntentContext.Provider;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nconst IntentMeta = {\n id: 'dxos.org/plugin/intent',\n};\n\nexport default IntentMeta;\n"],
5
- "mappings": ";AAkBO,IAAMA,oBAAoB,CAACC,WAC/BA,OAAOC,SAAiBC,QAAQC,WAAYH,SAA0CI;AAElF,IAAMC,4BAA4B,CAACL,WACvCA,OAAOC,SAAiBC,QAAQI,WAAYN,SAA4CI;;;AClB3F,SAAuBG,eAAeC,kBAAiC;AAQvE,IAAMC,gBAAwCC,8BAA6B;EAAEC,UAAU,YAAA;EAAa;AAAE,CAAA;AAE/F,IAAMC,YAAY,MAAMC,WAAWJ,aAAAA;AAEnC,IAAMK,iBAA0CL,cAAcM;;;ACZrE,IAAMC,aAAa;EACjBC,IAAI;AACN;AAEA,IAAA,eAAeD;",
6
- "names": ["parseIntentPlugin", "plugin", "provides", "intent", "dispatch", "undefined", "parseIntentResolverPlugin", "resolver", "createContext", "useContext", "IntentContext", "createContext", "dispatch", "useIntent", "useContext", "IntentProvider", "Provider", "IntentMeta", "id"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/plugins/IntentPlugin/plugin.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { deepSignal } from 'deepsignal/react';\nimport React from 'react';\n\nimport { type IntentContext, IntentProvider } from './IntentContext';\nimport type { Intent } from './intent';\nimport IntentMeta from './meta';\nimport { type IntentPluginProvides, type IntentResolverProvides, parseIntentResolverPlugin } from './provides';\nimport type { PluginDefinition } from '../PluginHost';\nimport { filterPlugins, findPlugin } from '../helpers';\n\n/**\n * Allows plugins to register intent handlers and routes sent intents to the appropriate plugin.\n * Inspired by https://developer.android.com/reference/android/content/Intent.\n */\nconst IntentPlugin = (): PluginDefinition<IntentPluginProvides> => {\n const state = deepSignal<IntentContext>({ dispatch: async () => {} });\n\n return {\n meta: IntentMeta,\n ready: async (plugins) => {\n // Dispatch intent to associated plugin.\n const dispatch = async (intent: Intent) => {\n if (intent.plugin) {\n const plugin = findPlugin<IntentResolverProvides>(plugins, intent.plugin);\n return plugin?.provides.intent.resolver(intent, plugins);\n }\n\n // Return resolved value from first plugin that handles the intent.\n for (const plugin of filterPlugins(plugins, parseIntentResolverPlugin)) {\n const result = await plugin.provides.intent.resolver(intent, plugins);\n if (result) {\n return result;\n }\n }\n };\n\n // Sequentially dispatch array of invents.\n state.dispatch = async (intentOrArray) => {\n let result: any = null;\n for (const intent of Array.isArray(intentOrArray) ? intentOrArray : [intentOrArray]) {\n const data = intent.data ? { ...result, ...intent.data } : result;\n result = await dispatch({ ...intent, data });\n }\n return result;\n };\n },\n provides: {\n intent: state,\n context: ({ children }) => <IntentProvider value={state}>{children}</IntentProvider>,\n },\n };\n};\n\nexport default IntentPlugin;\n"],
5
- "mappings": ";;;;;;;;;;;AAIA,SAASA,kBAAkB;AAC3B,OAAOC,WAAW;AAalB,IAAMC,eAAe,MAAA;AACnB,QAAMC,QAAQC,WAA0B;IAAEC,UAAU,YAAA;IAAa;EAAE,CAAA;AAEnE,SAAO;IACLC,MAAMC;IACNC,OAAO,OAAOC,YAAAA;AAEZ,YAAMJ,WAAW,OAAOK,WAAAA;AACtB,YAAIA,OAAOC,QAAQ;AACjB,gBAAMA,SAASC,WAAmCH,SAASC,OAAOC,MAAM;AACxE,iBAAOA,QAAQE,SAASH,OAAOI,SAASJ,QAAQD,OAAAA;QAClD;AAGA,mBAAWE,UAAUI,cAAcN,SAASO,yBAAAA,GAA4B;AACtE,gBAAMC,SAAS,MAAMN,OAAOE,SAASH,OAAOI,SAASJ,QAAQD,OAAAA;AAC7D,cAAIQ,QAAQ;AACV,mBAAOA;UACT;QACF;MACF;AAGAd,YAAME,WAAW,OAAOa,kBAAAA;AACtB,YAAID,SAAc;AAClB,mBAAWP,UAAUS,MAAMC,QAAQF,aAAAA,IAAiBA,gBAAgB;UAACA;WAAgB;AACnF,gBAAMG,OAAOX,OAAOW,OAAO;YAAE,GAAGJ;YAAQ,GAAGP,OAAOW;UAAK,IAAIJ;AAC3DA,mBAAS,MAAMZ,SAAS;YAAE,GAAGK;YAAQW;UAAK,CAAA;QAC5C;AACA,eAAOJ;MACT;IACF;IACAJ,UAAU;MACRH,QAAQP;MACRmB,SAAS,CAAC,EAAEC,SAAQ,MAAO,sBAAA,cAACC,gBAAAA;QAAeC,OAAOtB;SAAQoB,QAAAA;IAC5D;EACF;AACF;AAEA,IAAA,iBAAerB;",
6
- "names": ["deepSignal", "React", "IntentPlugin", "state", "deepSignal", "dispatch", "meta", "IntentMeta", "ready", "plugins", "intent", "plugin", "findPlugin", "provides", "resolver", "filterPlugins", "parseIntentResolverPlugin", "result", "intentOrArray", "Array", "isArray", "data", "context", "children", "IntentProvider", "value"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/plugins/IntentPlugin/provides.ts", "../../../src/plugins/IntentPlugin/IntentContext.tsx", "../../../src/plugins/IntentPlugin/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IntentContext } from './IntentContext';\nimport { type Intent } from './intent';\nimport { type Plugin } from '../PluginHost';\n\nexport type IntentResolverProvides = {\n intent: {\n resolver: (intent: Intent, plugins: Plugin[]) => any;\n };\n};\n\nexport type IntentPluginProvides = {\n intent: IntentContext;\n};\n\nexport const parseIntentPlugin = (plugin: Plugin) =>\n (plugin.provides as any).intent?.dispatch ? (plugin as Plugin<IntentPluginProvides>) : undefined;\n\nexport const parseIntentResolverPlugin = (plugin: Plugin) =>\n (plugin.provides as any).intent?.resolver ? (plugin as Plugin<IntentResolverProvides>) : undefined;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Context, createContext, useContext, type Provider } from 'react';\n\nimport { type DispatchIntent } from './intent';\n\nexport type IntentContext = {\n dispatch: DispatchIntent;\n};\n\nconst IntentContext: Context<IntentContext> = createContext<IntentContext>({ dispatch: async () => {} });\n\nexport const useIntent = () => useContext(IntentContext);\n\nexport const IntentProvider: Provider<IntentContext> = IntentContext.Provider;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nconst IntentMeta = {\n id: 'dxos.org/plugin/intent',\n};\n\nexport default IntentMeta;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA,mBAAuE;ADchE,IAAMA,oBAAoB,CAACC,WAC/BA,OAAOC,SAAiBC,QAAQC,WAAYH,SAA0CI;AAElF,IAAMC,4BAA4B,CAACL,WACvCA,OAAOC,SAAiBC,QAAQI,WAAYN,SAA4CI;ACV3F,IAAMG,gBAAwCC,gDAA6B;EAAEL,UAAU,YAAA;EAAa;AAAE,CAAA;AAE/F,IAAMM,YAAY,UAAMC,yBAAWH,aAAAA;AAEnC,IAAMI,iBAA0CJ,cAAcK;ACZrE,IAAMC,aAAa;EACjBC,IAAI;AACN;AAEA,IAAA,eAAeD;",
6
- "names": ["parseIntentPlugin", "plugin", "provides", "intent", "dispatch", "undefined", "parseIntentResolverPlugin", "resolver", "IntentContext", "createContext", "useIntent", "useContext", "IntentProvider", "Provider", "IntentMeta", "id"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/plugins/IntentPlugin/plugin.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { deepSignal } from 'deepsignal/react';\nimport React from 'react';\n\nimport { type IntentContext, IntentProvider } from './IntentContext';\nimport type { Intent } from './intent';\nimport IntentMeta from './meta';\nimport { type IntentPluginProvides, type IntentResolverProvides, parseIntentResolverPlugin } from './provides';\nimport type { PluginDefinition } from '../PluginHost';\nimport { filterPlugins, findPlugin } from '../helpers';\n\n/**\n * Allows plugins to register intent handlers and routes sent intents to the appropriate plugin.\n * Inspired by https://developer.android.com/reference/android/content/Intent.\n */\nconst IntentPlugin = (): PluginDefinition<IntentPluginProvides> => {\n const state = deepSignal<IntentContext>({ dispatch: async () => {} });\n\n return {\n meta: IntentMeta,\n ready: async (plugins) => {\n // Dispatch intent to associated plugin.\n const dispatch = async (intent: Intent) => {\n if (intent.plugin) {\n const plugin = findPlugin<IntentResolverProvides>(plugins, intent.plugin);\n return plugin?.provides.intent.resolver(intent, plugins);\n }\n\n // Return resolved value from first plugin that handles the intent.\n for (const plugin of filterPlugins(plugins, parseIntentResolverPlugin)) {\n const result = await plugin.provides.intent.resolver(intent, plugins);\n if (result) {\n return result;\n }\n }\n };\n\n // Sequentially dispatch array of invents.\n state.dispatch = async (intentOrArray) => {\n let result: any = null;\n for (const intent of Array.isArray(intentOrArray) ? intentOrArray : [intentOrArray]) {\n const data = intent.data ? { ...result, ...intent.data } : result;\n result = await dispatch({ ...intent, data });\n }\n return result;\n };\n },\n provides: {\n intent: state,\n context: ({ children }) => <IntentProvider value={state}>{children}</IntentProvider>,\n },\n };\n};\n\nexport default IntentPlugin;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAA2B;AAC3B,IAAAA,gBAAkB;AAalB,IAAMC,eAAe,MAAA;AACnB,QAAMC,YAAQC,yBAA0B;IAAEC,UAAU,YAAA;IAAa;EAAE,CAAA;AAEnE,SAAO;IACLC,MAAMC;IACNC,OAAO,OAAOC,YAAAA;AAEZ,YAAMJ,WAAW,OAAOK,WAAAA;AACtB,YAAIA,OAAOC,QAAQ;AACjB,gBAAMA,aAASC,kCAAmCH,SAASC,OAAOC,MAAM;AACxE,iBAAOA,QAAQE,SAASH,OAAOI,SAASJ,QAAQD,OAAAA;QAClD;AAGA,mBAAWE,cAAUI,qCAAcN,SAASO,+CAAAA,GAA4B;AACtE,gBAAMC,SAAS,MAAMN,OAAOE,SAASH,OAAOI,SAASJ,QAAQD,OAAAA;AAC7D,cAAIQ,QAAQ;AACV,mBAAOA;UACT;QACF;MACF;AAGAd,YAAME,WAAW,OAAOa,kBAAAA;AACtB,YAAID,SAAc;AAClB,mBAAWP,UAAUS,MAAMC,QAAQF,aAAAA,IAAiBA,gBAAgB;UAACA;WAAgB;AACnF,gBAAMG,OAAOX,OAAOW,OAAO;YAAE,GAAGJ;YAAQ,GAAGP,OAAOW;UAAK,IAAIJ;AAC3DA,mBAAS,MAAMZ,SAAS;YAAE,GAAGK;YAAQW;UAAK,CAAA;QAC5C;AACA,eAAOJ;MACT;IACF;IACAJ,UAAU;MACRH,QAAQP;MACRmB,SAAS,CAAC,EAAEC,SAAQ,MAAO,8BAAAC,QAAA,cAACC,sCAAAA;QAAeC,OAAOvB;SAAQoB,QAAAA;IAC5D;EACF;AACF;AAEA,IAAA,iBAAerB;",
6
- "names": ["import_react", "IntentPlugin", "state", "deepSignal", "dispatch", "meta", "IntentMeta", "ready", "plugins", "intent", "plugin", "findPlugin", "provides", "resolver", "filterPlugins", "parseIntentResolverPlugin", "result", "intentOrArray", "Array", "isArray", "data", "context", "children", "React", "IntentProvider", "value"]
7
- }