@dxos/app-framework 0.3.3-main.3806cc2

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 (83) hide show
  1. package/.eslintrc.js +9 -0
  2. package/.storybook/main.cjs +36 -0
  3. package/.storybook/preview-head.html +3 -0
  4. package/.storybook/preview.cjs +45 -0
  5. package/LICENSE +8 -0
  6. package/README.md +29 -0
  7. package/README.yml +5 -0
  8. package/dist/lib/browser/index.mjs +453 -0
  9. package/dist/lib/browser/index.mjs.map +7 -0
  10. package/dist/lib/browser/meta.json +1 -0
  11. package/dist/lib/node/index.cjs +522 -0
  12. package/dist/lib/node/index.cjs.map +7 -0
  13. package/dist/lib/node/meta.json +1 -0
  14. package/dist/types/src/App.d.ts +19 -0
  15. package/dist/types/src/App.d.ts.map +1 -0
  16. package/dist/types/src/index.d.ts +3 -0
  17. package/dist/types/src/index.d.ts.map +1 -0
  18. package/dist/types/src/plugins/IntentPlugin/IntentContext.d.ts +8 -0
  19. package/dist/types/src/plugins/IntentPlugin/IntentContext.d.ts.map +1 -0
  20. package/dist/types/src/plugins/IntentPlugin/IntentPlugin.d.ts +19 -0
  21. package/dist/types/src/plugins/IntentPlugin/IntentPlugin.d.ts.map +1 -0
  22. package/dist/types/src/plugins/IntentPlugin/index.d.ts +4 -0
  23. package/dist/types/src/plugins/IntentPlugin/index.d.ts.map +1 -0
  24. package/dist/types/src/plugins/IntentPlugin/intent.d.ts +28 -0
  25. package/dist/types/src/plugins/IntentPlugin/intent.d.ts.map +1 -0
  26. package/dist/types/src/plugins/PluginHost/PluginContext.d.ts +24 -0
  27. package/dist/types/src/plugins/PluginHost/PluginContext.d.ts.map +1 -0
  28. package/dist/types/src/plugins/PluginHost/PluginHost.d.ts +20 -0
  29. package/dist/types/src/plugins/PluginHost/PluginHost.d.ts.map +1 -0
  30. package/dist/types/src/plugins/PluginHost/index.d.ts +4 -0
  31. package/dist/types/src/plugins/PluginHost/index.d.ts.map +1 -0
  32. package/dist/types/src/plugins/PluginHost/plugin.d.ts +66 -0
  33. package/dist/types/src/plugins/PluginHost/plugin.d.ts.map +1 -0
  34. package/dist/types/src/plugins/PluginHost/plugin.test.d.ts +35 -0
  35. package/dist/types/src/plugins/PluginHost/plugin.test.d.ts.map +1 -0
  36. package/dist/types/src/plugins/SurfacePlugin/ErrorBoundary.d.ts +30 -0
  37. package/dist/types/src/plugins/SurfacePlugin/ErrorBoundary.d.ts.map +1 -0
  38. package/dist/types/src/plugins/SurfacePlugin/Surface.d.ts +45 -0
  39. package/dist/types/src/plugins/SurfacePlugin/Surface.d.ts.map +1 -0
  40. package/dist/types/src/plugins/SurfacePlugin/SurfacePlugin.d.ts +20 -0
  41. package/dist/types/src/plugins/SurfacePlugin/SurfacePlugin.d.ts.map +1 -0
  42. package/dist/types/src/plugins/SurfacePlugin/SurfaceRootContext.d.ts +13 -0
  43. package/dist/types/src/plugins/SurfacePlugin/SurfaceRootContext.d.ts.map +1 -0
  44. package/dist/types/src/plugins/SurfacePlugin/index.d.ts +5 -0
  45. package/dist/types/src/plugins/SurfacePlugin/index.d.ts.map +1 -0
  46. package/dist/types/src/plugins/common/graph.d.ts +26 -0
  47. package/dist/types/src/plugins/common/graph.d.ts.map +1 -0
  48. package/dist/types/src/plugins/common/index.d.ts +4 -0
  49. package/dist/types/src/plugins/common/index.d.ts.map +1 -0
  50. package/dist/types/src/plugins/common/layout.d.ts +89 -0
  51. package/dist/types/src/plugins/common/layout.d.ts.map +1 -0
  52. package/dist/types/src/plugins/common/translations.d.ts +22 -0
  53. package/dist/types/src/plugins/common/translations.d.ts.map +1 -0
  54. package/dist/types/src/plugins/helpers.d.ts +22 -0
  55. package/dist/types/src/plugins/helpers.d.ts.map +1 -0
  56. package/dist/types/src/plugins/index.d.ts +6 -0
  57. package/dist/types/src/plugins/index.d.ts.map +1 -0
  58. package/package.json +34 -0
  59. package/project.json +78 -0
  60. package/src/App.tsx +43 -0
  61. package/src/index.ts +7 -0
  62. package/src/plugins/IntentPlugin/IntentContext.tsx +17 -0
  63. package/src/plugins/IntentPlugin/IntentPlugin.tsx +69 -0
  64. package/src/plugins/IntentPlugin/index.ts +7 -0
  65. package/src/plugins/IntentPlugin/intent.ts +34 -0
  66. package/src/plugins/PluginHost/PluginContext.tsx +45 -0
  67. package/src/plugins/PluginHost/PluginHost.tsx +200 -0
  68. package/src/plugins/PluginHost/index.ts +7 -0
  69. package/src/plugins/PluginHost/plugin.test.ts +159 -0
  70. package/src/plugins/PluginHost/plugin.ts +82 -0
  71. package/src/plugins/SurfacePlugin/ErrorBoundary.tsx +45 -0
  72. package/src/plugins/SurfacePlugin/Surface.tsx +116 -0
  73. package/src/plugins/SurfacePlugin/SurfacePlugin.tsx +53 -0
  74. package/src/plugins/SurfacePlugin/SurfaceRootContext.tsx +22 -0
  75. package/src/plugins/SurfacePlugin/index.ts +8 -0
  76. package/src/plugins/common/graph.ts +33 -0
  77. package/src/plugins/common/index.ts +7 -0
  78. package/src/plugins/common/layout.ts +102 -0
  79. package/src/plugins/common/translations.ts +34 -0
  80. package/src/plugins/helpers.ts +43 -0
  81. package/src/plugins/index.ts +10 -0
  82. package/tsconfig.json +43 -0
  83. package/tsconfig.node.json +11 -0
@@ -0,0 +1,43 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { raise } from '@dxos/debug';
6
+
7
+ import { type Plugin } from './PluginHost';
8
+
9
+ /**
10
+ * Find a plugin by ID.
11
+ */
12
+ export const findPlugin = <T>(plugins: Plugin[], id: string): Plugin<T> | undefined => {
13
+ return plugins.find(
14
+ (plugin) => plugin.meta.id === id || (typeof plugin.meta.shortId === 'string' && plugin.meta.shortId === id),
15
+ ) as Plugin<T>;
16
+ };
17
+
18
+ /**
19
+ * Find a plugin by ID, or raise an error if not found.
20
+ */
21
+ export const getPlugin = <T>(plugins: Plugin[], id: string): Plugin<T> => {
22
+ return findPlugin(plugins, id) ?? raise(new Error(`Plugin not found: ${id}`));
23
+ };
24
+
25
+ /**
26
+ * Filter a list of plugins to only those that match a predicate.
27
+ */
28
+ export const filterPlugins = <T>(
29
+ plugins: Plugin[],
30
+ predicate: (plugin: Plugin) => Plugin<T> | undefined,
31
+ ): Plugin<T>[] => plugins.map((plugin) => predicate(plugin)).filter((plugin): plugin is Plugin<T> => !!plugin);
32
+
33
+ /**
34
+ * Resolves a plugin by predicate.
35
+ *
36
+ * @example
37
+ * import { parseIntentPlugin, resolvePlugin } from '@dxos/app-framework';
38
+ * const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);
39
+ */
40
+ export const resolvePlugin = <T>(
41
+ plugins: Plugin[],
42
+ predicate: (plugin: Plugin) => Plugin<T> | undefined,
43
+ ): Plugin<T> | undefined => filterPlugins(plugins, predicate)[0];
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ export * from './common';
6
+ export * from './helpers';
7
+
8
+ export * from './IntentPlugin';
9
+ export * from './PluginHost';
10
+ export * from './SurfacePlugin';
package/tsconfig.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "esModuleInterop": true,
5
+ "jsx": "react",
6
+ "lib": [
7
+ "DOM",
8
+ "ESNext"
9
+ ],
10
+ "module": "ESNext",
11
+ "outDir": "dist"
12
+ },
13
+ "exclude": [
14
+ "/node_modules/"
15
+ ],
16
+ "include": [
17
+ "src"
18
+ ],
19
+ "references": [
20
+ {
21
+ "path": "../../common/async"
22
+ },
23
+ {
24
+ "path": "../../common/debug"
25
+ },
26
+ {
27
+ "path": "../../common/invariant"
28
+ },
29
+ {
30
+ "path": "../../common/log"
31
+ },
32
+ {
33
+ "path": "../app-graph"
34
+ }
35
+ ],
36
+ "ts-node": {
37
+ "compilerOptions": {
38
+ "module": "CommonJS"
39
+ },
40
+ "files": true,
41
+ "transpileOnly": true
42
+ }
43
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "ESNext",
5
+ "moduleResolution": "Node",
6
+ "allowSyntheticDefaultImports": true
7
+ },
8
+ "include": [
9
+ "vite.config.ts"
10
+ ]
11
+ }