@dxos/app-framework 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7

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 (363) hide show
  1. package/.storybook/main.mts +1 -3
  2. package/dist/lib/browser/{capability-7PCNSWBT.mjs → capability-6YMUBS54.mjs} +15 -11
  3. package/dist/lib/browser/capability-6YMUBS54.mjs.map +7 -0
  4. package/dist/lib/browser/capability-LF3OXSCV.mjs +34 -0
  5. package/dist/lib/browser/capability-LF3OXSCV.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-PKQT6C53.mjs → chunk-272IPLHQ.mjs} +1 -1
  7. package/dist/lib/browser/{chunk-PKQT6C53.mjs.map → chunk-272IPLHQ.mjs.map} +1 -1
  8. package/dist/lib/browser/{chunk-FMZN33N4.mjs → chunk-2UI6ACB5.mjs} +48 -31
  9. package/dist/lib/browser/chunk-2UI6ACB5.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-TCLLRCS3.mjs → chunk-7M4467QR.mjs} +6 -6
  11. package/dist/lib/browser/chunk-7M4467QR.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-7IQHKD4U.mjs → chunk-JGWCBVKJ.mjs} +2 -2
  13. package/dist/lib/browser/chunk-JGWCBVKJ.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-M5IC326L.mjs +34 -0
  15. package/dist/lib/browser/chunk-M5IC326L.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-XYNO72GQ.mjs → chunk-NQPYE365.mjs} +435 -478
  17. package/dist/lib/browser/chunk-NQPYE365.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-TGX63LTL.mjs +8 -0
  19. package/dist/lib/browser/{chunk-FHQTHCX7.mjs.map → chunk-TGX63LTL.mjs.map} +1 -1
  20. package/dist/lib/browser/chunk-TIEBZMTF.mjs +44 -0
  21. package/dist/lib/browser/chunk-TIEBZMTF.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-WEBSGU5L.mjs +80 -0
  23. package/dist/lib/browser/chunk-WEBSGU5L.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-YAFEA4GV.mjs +1 -0
  25. package/dist/lib/browser/{chunk-6Y7PZV72.mjs → chunk-YNFPIQGB.mjs} +2 -3
  26. package/dist/lib/browser/{chunk-6Y7PZV72.mjs.map → chunk-YNFPIQGB.mjs.map} +3 -3
  27. package/dist/lib/browser/cli/index.mjs +89 -0
  28. package/dist/lib/browser/cli/index.mjs.map +7 -0
  29. package/dist/lib/browser/common/activation-events.mjs +23 -0
  30. package/dist/lib/browser/common/capabilities.mjs +45 -0
  31. package/dist/lib/browser/core/activation-event.mjs +1 -1
  32. package/dist/lib/browser/core/capability.mjs +1 -1
  33. package/dist/lib/browser/core/plugin-manager.mjs +4 -4
  34. package/dist/lib/browser/core/plugin.mjs +2 -2
  35. package/dist/lib/browser/index.mjs +37 -132
  36. package/dist/lib/browser/index.mjs.map +4 -4
  37. package/dist/lib/browser/{invoker-capability-SZRSTHEH.mjs → invoker-capability-4AUGUMM5.mjs} +16 -12
  38. package/dist/lib/browser/invoker-capability-4AUGUMM5.mjs.map +7 -0
  39. package/dist/lib/browser/meta.json +1 -1
  40. package/dist/lib/browser/testing/index.mjs +28 -20
  41. package/dist/lib/browser/testing/index.mjs.map +3 -3
  42. package/dist/lib/browser/{react → ui}/index.mjs +18 -19
  43. package/dist/lib/node-esm/{capability-CFLQ2QQU.mjs → capability-R5O2OYX4.mjs} +15 -11
  44. package/dist/lib/node-esm/capability-R5O2OYX4.mjs.map +7 -0
  45. package/dist/lib/node-esm/capability-SA6LPYGL.mjs +35 -0
  46. package/dist/lib/node-esm/capability-SA6LPYGL.mjs.map +7 -0
  47. package/dist/lib/node-esm/{chunk-663A54LQ.mjs → chunk-3D66SZHP.mjs} +2 -2
  48. package/dist/lib/node-esm/chunk-3D66SZHP.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs → chunk-6REV5DE7.mjs} +1 -1
  50. package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs.map → chunk-6REV5DE7.mjs.map} +1 -1
  51. package/dist/lib/node-esm/{chunk-6WXBT3EC.mjs → chunk-FHWPWQRJ.mjs} +435 -478
  52. package/dist/lib/node-esm/chunk-FHWPWQRJ.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs → chunk-FKE4Z3D6.mjs} +2 -2
  54. package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs.map → chunk-FKE4Z3D6.mjs.map} +1 -1
  55. package/dist/lib/node-esm/{chunk-GT6OKM5I.mjs → chunk-JHFY3HTS.mjs} +6 -6
  56. package/dist/lib/node-esm/chunk-JHFY3HTS.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-XYQTBFPA.mjs → chunk-JIVXIJ2T.mjs} +48 -31
  58. package/dist/lib/node-esm/chunk-JIVXIJ2T.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-NHXBSAQR.mjs +35 -0
  60. package/dist/lib/node-esm/chunk-NHXBSAQR.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-STMXUEPO.mjs → chunk-SB5ODNPX.mjs} +2 -3
  62. package/dist/lib/node-esm/{chunk-STMXUEPO.mjs.map → chunk-SB5ODNPX.mjs.map} +3 -3
  63. package/dist/lib/node-esm/chunk-SCDGIGGU.mjs +45 -0
  64. package/dist/lib/node-esm/chunk-SCDGIGGU.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-SQICGJBW.mjs +81 -0
  66. package/dist/lib/node-esm/chunk-SQICGJBW.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs +2 -0
  68. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs.map +7 -0
  69. package/dist/lib/node-esm/cli/index.mjs +90 -0
  70. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  71. package/dist/lib/node-esm/common/activation-events.mjs +24 -0
  72. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  73. package/dist/lib/node-esm/common/capabilities.mjs +46 -0
  74. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  75. package/dist/lib/node-esm/core/activation-event.mjs +1 -1
  76. package/dist/lib/node-esm/core/capability.mjs +1 -1
  77. package/dist/lib/node-esm/core/plugin-manager.mjs +4 -4
  78. package/dist/lib/node-esm/core/plugin.mjs +2 -2
  79. package/dist/lib/node-esm/index.mjs +37 -132
  80. package/dist/lib/node-esm/index.mjs.map +4 -4
  81. package/dist/lib/node-esm/{invoker-capability-PNMA5JOS.mjs → invoker-capability-3YDIVDWV.mjs} +16 -12
  82. package/dist/lib/node-esm/invoker-capability-3YDIVDWV.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/testing/index.mjs +28 -20
  85. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  86. package/dist/lib/node-esm/{react → ui}/index.mjs +18 -19
  87. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  88. package/dist/types/src/{cli.d.ts → cli/cli.d.ts} +2 -2
  89. package/dist/types/src/cli/cli.d.ts.map +1 -0
  90. package/dist/types/src/cli/index.d.ts +2 -0
  91. package/dist/types/src/cli/index.d.ts.map +1 -0
  92. package/dist/types/src/common/activation-events.d.ts +27 -0
  93. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  94. package/dist/types/src/common/capabilities.d.ts +115 -0
  95. package/dist/types/src/common/capabilities.d.ts.map +1 -0
  96. package/dist/types/src/common/index.d.ts +4 -9
  97. package/dist/types/src/common/index.d.ts.map +1 -1
  98. package/dist/types/src/common/operations.d.ts +1 -348
  99. package/dist/types/src/common/operations.d.ts.map +1 -1
  100. package/dist/types/src/common/translations.d.ts +0 -9
  101. package/dist/types/src/common/translations.d.ts.map +1 -1
  102. package/dist/types/src/core/activation-event.d.ts +1 -1
  103. package/dist/types/src/core/capability.d.ts +7 -7
  104. package/dist/types/src/core/capability.d.ts.map +1 -1
  105. package/dist/types/src/core/plugin-manager.d.ts.map +1 -1
  106. package/dist/types/src/core/plugin.d.ts +1 -1
  107. package/dist/types/src/core/plugin.d.ts.map +1 -1
  108. package/dist/types/src/index.d.ts +1 -3
  109. package/dist/types/src/index.d.ts.map +1 -1
  110. package/dist/types/src/plugin-operation/history/capability.d.ts +1 -1
  111. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +11 -3
  112. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -1
  113. package/dist/types/src/plugin-operation/invoker-capability.d.ts +1 -1
  114. package/dist/types/src/plugin-runtime/capability.d.ts +2 -2
  115. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -1
  116. package/dist/types/src/testing/withPluginManager.d.ts +1 -1
  117. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  118. package/dist/types/src/{react → ui/components/App}/App.d.ts +1 -1
  119. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  120. package/dist/types/src/{react/Surface.stories.d.ts → ui/components/App/App.stories.d.ts} +7 -2
  121. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  122. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  123. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  124. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  125. package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerProvider.d.ts +1 -1
  126. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  127. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  128. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  129. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +12 -0
  130. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  131. package/dist/types/src/{react/App.stories.d.ts → ui/components/Surface/SurfaceComponent.stories.d.ts} +1 -1
  132. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  133. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  134. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  135. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  136. package/dist/types/src/ui/components/Surface/index.d.ts +20 -0
  137. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  138. package/dist/types/src/{common/surface.d.ts → ui/components/Surface/types.d.ts} +20 -18
  139. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  140. package/dist/types/src/ui/components/index.d.ts +4 -0
  141. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  142. package/dist/types/src/ui/hooks/index.d.ts +7 -0
  143. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  144. package/dist/types/src/{react → ui/hooks}/useApp.d.ts +14 -9
  145. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  146. package/dist/types/src/{react → ui/hooks}/useCapabilities.d.ts +6 -1
  147. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  148. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  149. package/dist/types/src/{react → ui/hooks}/useOperationResolver.d.ts +2 -2
  150. package/dist/types/src/ui/hooks/useOperationResolver.d.ts.map +1 -0
  151. package/dist/types/src/{react/common.d.ts → ui/hooks/useSettingsState.d.ts} +1 -5
  152. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  153. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  154. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  155. package/dist/types/src/ui/index.d.ts +3 -0
  156. package/dist/types/src/ui/index.d.ts.map +1 -0
  157. package/dist/types/tsconfig.tsbuildinfo +1 -1
  158. package/moon.yml +6 -6
  159. package/package.json +72 -64
  160. package/src/{cli.ts → cli/cli.ts} +10 -10
  161. package/src/{playground/debug → cli}/index.ts +1 -1
  162. package/src/common/activation-events.ts +44 -0
  163. package/src/common/capabilities.ts +178 -0
  164. package/src/common/index.ts +4 -9
  165. package/src/common/operations.ts +2 -376
  166. package/src/common/translations.ts +0 -12
  167. package/src/context.ts +1 -1
  168. package/src/core/activation-event.ts +1 -1
  169. package/src/core/capability.ts +9 -9
  170. package/src/core/plugin-manager.test.ts +44 -44
  171. package/src/core/plugin-manager.ts +19 -0
  172. package/src/core/plugin.ts +3 -2
  173. package/src/index.ts +1 -3
  174. package/src/plugin-operation/OperationPlugin.ts +5 -5
  175. package/src/plugin-operation/history/capability.ts +5 -5
  176. package/src/plugin-operation/history/undo-mapping.ts +6 -3
  177. package/src/plugin-operation/invoker-capability.ts +5 -5
  178. package/src/plugin-operation/meta.ts +1 -1
  179. package/src/plugin-runtime/RuntimePlugin.ts +4 -4
  180. package/src/plugin-runtime/capability.ts +5 -5
  181. package/src/plugin-runtime/meta.ts +1 -1
  182. package/src/testing/service.ts +6 -6
  183. package/src/testing/withPluginManager.stories.tsx +6 -6
  184. package/src/testing/withPluginManager.tsx +11 -8
  185. package/src/ui/components/App/App.stories.tsx +92 -0
  186. package/src/{react → ui/components/App}/App.tsx +6 -9
  187. package/src/{playground/layout → ui/components/App}/index.ts +1 -1
  188. package/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.tsx +13 -14
  189. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +1 -1
  190. package/src/ui/components/PluginManager/index.ts +5 -0
  191. package/src/{react/Surface.stories.tsx → ui/components/Surface/SurfaceComponent.stories.tsx} +18 -16
  192. package/src/{react/Surface.tsx → ui/components/Surface/SurfaceComponent.tsx} +36 -56
  193. package/src/{react → ui/components/Surface}/SurfaceInfo.tsx +2 -2
  194. package/src/ui/components/Surface/context.ts +12 -0
  195. package/src/ui/components/Surface/index.ts +20 -0
  196. package/src/{common/surface.ts → ui/components/Surface/types.ts} +22 -25
  197. package/src/ui/components/index.ts +7 -0
  198. package/src/ui/hooks/index.ts +10 -0
  199. package/src/{react → ui/hooks}/useApp.tsx +29 -25
  200. package/src/{react → ui/hooks}/useCapabilities.ts +9 -5
  201. package/src/{react → ui/hooks}/useOperationResolver.ts +5 -5
  202. package/src/{react/common.ts → ui/hooks/useSettingsState.ts} +0 -11
  203. package/src/ui/hooks/useSurface.ts +13 -0
  204. package/src/ui/index.ts +6 -0
  205. package/tsconfig.json +2 -29
  206. package/tsconfig.node.json +1 -3
  207. package/typedoc.json +2 -4
  208. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +0 -149
  209. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +0 -7
  210. package/dist/lib/browser/capability-7PCNSWBT.mjs.map +0 -7
  211. package/dist/lib/browser/capability-KP3PFEXD.mjs +0 -31
  212. package/dist/lib/browser/capability-KP3PFEXD.mjs.map +0 -7
  213. package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +0 -7
  214. package/dist/lib/browser/chunk-BLQJSGL3.mjs +0 -732
  215. package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +0 -7
  216. package/dist/lib/browser/chunk-FHQTHCX7.mjs +0 -8
  217. package/dist/lib/browser/chunk-FMZN33N4.mjs.map +0 -7
  218. package/dist/lib/browser/chunk-H4WPA7U7.mjs +0 -77
  219. package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +0 -7
  220. package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +0 -7
  222. package/dist/lib/browser/common/index.mjs +0 -38
  223. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +0 -7
  224. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +0 -64
  225. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +0 -7
  226. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +0 -150
  227. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +0 -7
  228. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +0 -7
  229. package/dist/lib/node-esm/capability-RCUNM2M7.mjs +0 -32
  230. package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +0 -7
  231. package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +0 -7
  232. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +0 -7
  233. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +0 -733
  234. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +0 -7
  235. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs.map +0 -7
  236. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +0 -78
  237. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +0 -7
  238. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +0 -7
  239. package/dist/lib/node-esm/common/index.mjs +0 -39
  240. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +0 -7
  241. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +0 -65
  242. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +0 -7
  243. package/dist/types/src/cli.d.ts.map +0 -1
  244. package/dist/types/src/common/activation-event.d.ts +0 -66
  245. package/dist/types/src/common/activation-event.d.ts.map +0 -1
  246. package/dist/types/src/common/capability.d.ts +0 -265
  247. package/dist/types/src/common/capability.d.ts.map +0 -1
  248. package/dist/types/src/common/collaboration.d.ts +0 -26
  249. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  250. package/dist/types/src/common/file.d.ts +0 -14
  251. package/dist/types/src/common/file.d.ts.map +0 -1
  252. package/dist/types/src/common/graph.d.ts +0 -21
  253. package/dist/types/src/common/graph.d.ts.map +0 -1
  254. package/dist/types/src/common/plugin.d.ts +0 -201
  255. package/dist/types/src/common/plugin.d.ts.map +0 -1
  256. package/dist/types/src/common/surface.d.ts.map +0 -1
  257. package/dist/types/src/playground/debug/Debug.d.ts +0 -8
  258. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  259. package/dist/types/src/playground/debug/index.d.ts +0 -2
  260. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  261. package/dist/types/src/playground/debug/plugin.d.ts +0 -3
  262. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  263. package/dist/types/src/playground/generator/Main.d.ts +0 -8
  264. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  265. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -8
  266. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  267. package/dist/types/src/playground/generator/generator.d.ts +0 -19
  268. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  269. package/dist/types/src/playground/generator/index.d.ts +0 -3
  270. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  271. package/dist/types/src/playground/generator/plugin.d.ts +0 -3
  272. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  273. package/dist/types/src/playground/layout/Layout.d.ts +0 -10
  274. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  275. package/dist/types/src/playground/layout/index.d.ts +0 -2
  276. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  277. package/dist/types/src/playground/layout/plugin.d.ts +0 -3
  278. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  279. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -8
  280. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  281. package/dist/types/src/playground/logger/index.d.ts +0 -2
  282. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  283. package/dist/types/src/playground/logger/plugin.d.ts +0 -3
  284. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  285. package/dist/types/src/playground/logger/schema.d.ts +0 -27
  286. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  287. package/dist/types/src/playground/playground.stories.d.ts +0 -11
  288. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  289. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -3
  290. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  291. package/dist/types/src/plugin-settings/actions.d.ts +0 -61
  292. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  293. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -6
  294. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  295. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  296. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  297. package/dist/types/src/plugin-settings/meta.d.ts +0 -3
  298. package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
  299. package/dist/types/src/plugin-settings/operation-resolver.d.ts +0 -6
  300. package/dist/types/src/plugin-settings/operation-resolver.d.ts.map +0 -1
  301. package/dist/types/src/plugin-settings/translations.d.ts +0 -11
  302. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  303. package/dist/types/src/react/App.d.ts.map +0 -1
  304. package/dist/types/src/react/App.stories.d.ts.map +0 -1
  305. package/dist/types/src/react/DefaultFallback.d.ts +0 -8
  306. package/dist/types/src/react/DefaultFallback.d.ts.map +0 -1
  307. package/dist/types/src/react/ErrorBoundary.d.ts +0 -30
  308. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  309. package/dist/types/src/react/PluginManagerContext.stories.d.ts.map +0 -1
  310. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  311. package/dist/types/src/react/Surface.d.ts +0 -14
  312. package/dist/types/src/react/Surface.d.ts.map +0 -1
  313. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  314. package/dist/types/src/react/SurfaceInfo.d.ts.map +0 -1
  315. package/dist/types/src/react/common.d.ts.map +0 -1
  316. package/dist/types/src/react/index.d.ts +0 -9
  317. package/dist/types/src/react/index.d.ts.map +0 -1
  318. package/dist/types/src/react/types.d.ts +0 -12
  319. package/dist/types/src/react/types.d.ts.map +0 -1
  320. package/dist/types/src/react/useApp.d.ts.map +0 -1
  321. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  322. package/dist/types/src/react/useLoading.d.ts.map +0 -1
  323. package/dist/types/src/react/useOperationResolver.d.ts.map +0 -1
  324. package/src/common/activation-event.ts +0 -99
  325. package/src/common/capability.ts +0 -343
  326. package/src/common/collaboration.ts +0 -31
  327. package/src/common/file.ts +0 -22
  328. package/src/common/graph.ts +0 -30
  329. package/src/common/plugin.ts +0 -364
  330. package/src/playground/debug/Debug.tsx +0 -49
  331. package/src/playground/debug/plugin.ts +0 -16
  332. package/src/playground/generator/Main.tsx +0 -80
  333. package/src/playground/generator/Toolbar.tsx +0 -57
  334. package/src/playground/generator/generator.ts +0 -48
  335. package/src/playground/generator/index.ts +0 -6
  336. package/src/playground/generator/plugin.ts +0 -21
  337. package/src/playground/layout/Layout.tsx +0 -37
  338. package/src/playground/layout/plugin.ts +0 -18
  339. package/src/playground/logger/Toolbar.tsx +0 -33
  340. package/src/playground/logger/index.ts +0 -5
  341. package/src/playground/logger/plugin.ts +0 -42
  342. package/src/playground/logger/schema.ts +0 -22
  343. package/src/playground/playground.stories.tsx +0 -54
  344. package/src/plugin-settings/SettingsPlugin.ts +0 -19
  345. package/src/plugin-settings/actions.ts +0 -64
  346. package/src/plugin-settings/app-graph-builder.ts +0 -140
  347. package/src/plugin-settings/index.ts +0 -6
  348. package/src/plugin-settings/meta.ts +0 -10
  349. package/src/plugin-settings/operation-resolver.ts +0 -55
  350. package/src/plugin-settings/translations.ts +0 -19
  351. package/src/react/App.stories.tsx +0 -63
  352. package/src/react/DefaultFallback.tsx +0 -26
  353. package/src/react/ErrorBoundary.tsx +0 -56
  354. package/src/react/index.ts +0 -14
  355. package/src/react/types.ts +0 -27
  356. /package/dist/lib/{node-esm/react/index.mjs.map → browser/chunk-YAFEA4GV.mjs.map} +0 -0
  357. /package/dist/lib/{node-esm/common/index.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  358. /package/dist/lib/browser/{react/index.mjs.map → common/capabilities.mjs.map} +0 -0
  359. /package/dist/lib/browser/{common → ui}/index.mjs.map +0 -0
  360. /package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.d.ts +0 -0
  361. /package/dist/types/src/{react → ui/components/Surface}/SurfaceInfo.d.ts +0 -0
  362. /package/dist/types/src/{react → ui/hooks}/useLoading.d.ts +0 -0
  363. /package/src/{react → ui/hooks}/useLoading.tsx +0 -0
@@ -1,18 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Common from '../../common';
6
- import { Capability, Plugin } from '../../core';
7
-
8
- const Layout = Capability.lazy('Layout', () => import('./Layout'));
9
-
10
- const meta = { id: 'dxos.org/test/layout', name: 'Layout' };
11
-
12
- export const LayoutPlugin = Plugin.define(meta).pipe(
13
- Plugin.addModule({
14
- activatesOn: Common.ActivationEvent.Startup,
15
- activate: Layout,
16
- }),
17
- Plugin.make,
18
- );
@@ -1,33 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
- import React, { useCallback } from 'react';
7
-
8
- import { Button } from '@dxos/react-ui';
9
-
10
- import * as Common from '../../common';
11
- import { Capability } from '../../core';
12
- import { useOperationInvoker } from '../../react';
13
-
14
- import { LogOperation } from './schema';
15
-
16
- export const Logger = () => {
17
- const { invokePromise } = useOperationInvoker();
18
- const handleClick = useCallback(() => invokePromise(LogOperation, { message: 'Hello, world!' }), []);
19
- return <Button onClick={handleClick}>Log</Button>;
20
- };
21
-
22
- export default Capability.makeModule(() =>
23
- Effect.succeed(
24
- Capability.contributes(
25
- Common.Capability.ReactSurface,
26
- Common.createSurface({
27
- id: 'dxos.org/test/logger/action',
28
- role: 'toolbar',
29
- component: Logger,
30
- }),
31
- ),
32
- ),
33
- );
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './plugin';
@@ -1,42 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
-
7
- import { log } from '@dxos/log';
8
- import { OperationResolver } from '@dxos/operation';
9
-
10
- import * as Common from '../../common';
11
- import { Capability, Plugin } from '../../core';
12
-
13
- import { LogOperation } from './schema';
14
-
15
- const Toolbar = Capability.lazy('Toolbar', () => import('./Toolbar'));
16
-
17
- const meta = {
18
- id: 'dxos.org/test/logger',
19
- name: 'Logger',
20
- };
21
-
22
- export const LoggerPlugin = Plugin.define(meta).pipe(
23
- Common.Plugin.addOperationResolverModule({
24
- activate: () =>
25
- Effect.succeed(
26
- Capability.contributes(Common.Capability.OperationResolver, [
27
- OperationResolver.make({
28
- operation: LogOperation,
29
- handler: ({ message }) =>
30
- Effect.sync(() => {
31
- log.info(message);
32
- }),
33
- }),
34
- ]),
35
- ),
36
- }),
37
- Plugin.addModule({
38
- activatesOn: Common.ActivationEvent.Startup,
39
- activate: Toolbar,
40
- }),
41
- Plugin.make,
42
- );
@@ -1,22 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Schema from 'effect/Schema';
6
-
7
- import { Operation } from '@dxos/operation';
8
-
9
- export class Log extends Schema.TaggedClass<Log>()('dxos.org/test/logger/log', {
10
- input: Schema.Struct({
11
- message: Schema.String,
12
- }),
13
- output: Schema.Void,
14
- }) {}
15
-
16
- export const LogOperation = Operation.make({
17
- meta: { key: 'dxos.org/test/logger/log', name: 'Log' },
18
- schema: {
19
- input: Schema.Struct({ message: Schema.String }),
20
- output: Schema.Void,
21
- },
22
- });
@@ -1,54 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import * as Effect from 'effect/Effect';
7
- import React from 'react';
8
-
9
- import { withTheme } from '@dxos/react-ui/testing';
10
-
11
- import { OperationPlugin } from '../plugin-operation';
12
- import { useApp } from '../react';
13
-
14
- import { DebugPlugin } from './debug';
15
- import { GeneratorPlugin, createNumberPlugin } from './generator';
16
- import { LayoutPlugin } from './layout';
17
- import { LoggerPlugin } from './logger';
18
-
19
- const plugins = [
20
- // prettier-ignore
21
- OperationPlugin(),
22
- LayoutPlugin(),
23
- DebugPlugin(),
24
- LoggerPlugin(),
25
- GeneratorPlugin(),
26
- ];
27
- const core = plugins.map((plugin) => plugin.meta.id);
28
-
29
- const Placeholder = () => {
30
- return <div>Loading...</div>;
31
- };
32
-
33
- const DefaultStory = () => {
34
- const App = useApp({
35
- pluginLoader: (id: string) => Effect.sync(() => createNumberPlugin(id)),
36
- plugins,
37
- core,
38
- placeholder: Placeholder,
39
- });
40
-
41
- return <App />;
42
- };
43
-
44
- const meta = {
45
- title: 'sdk/app-framework/playground',
46
- render: DefaultStory,
47
- decorators: [withTheme],
48
- } satisfies Meta<typeof DefaultStory>;
49
-
50
- export default meta;
51
-
52
- type Story = StoryObj<typeof meta>;
53
-
54
- export const Playground: Story = {};
@@ -1,19 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Common from '../common';
6
- import { Capability, Plugin } from '../core';
7
-
8
- import { meta } from './meta';
9
- import { translations } from './translations';
10
-
11
- const SettingsOperationResolver = Capability.lazy('SettingsOperationResolver', () => import('./operation-resolver'));
12
- const SettingsAppGraphBuilder = Capability.lazy('SettingsAppGraphBuilder', () => import('./app-graph-builder'));
13
-
14
- export const SettingsPlugin = Plugin.define(meta).pipe(
15
- Common.Plugin.addTranslationsModule({ translations }),
16
- Common.Plugin.addOperationResolverModule({ activate: SettingsOperationResolver }),
17
- Common.Plugin.addAppGraphModule({ activate: SettingsAppGraphBuilder }),
18
- Plugin.make,
19
- );
@@ -1,64 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import * as Schema from 'effect/Schema';
6
-
7
- import { Operation } from '@dxos/operation';
8
-
9
- import { Capability } from '../core';
10
-
11
- import { meta } from './meta';
12
-
13
- // TODO(burdon): Document.
14
- export const SETTINGS_ID = '!dxos:settings';
15
- export const SETTINGS_KEY = 'settings';
16
-
17
- export namespace SettingsAction {
18
- export class Open extends Schema.TaggedClass<Open>()(`${meta.id}/open`, {
19
- input: Schema.Struct({
20
- plugin: Schema.optional(Schema.String),
21
- }),
22
- output: Schema.Void,
23
- }) {}
24
-
25
- export class OpenPluginRegistry extends Schema.TaggedClass<OpenPluginRegistry>()(`${meta.id}/open-plugin-registry`, {
26
- input: Schema.Void,
27
- output: Schema.Void,
28
- }) {}
29
- }
30
-
31
- const SETTINGS_OPERATION = `${meta.id}/operation`;
32
-
33
- /**
34
- * Operations for the Settings plugin.
35
- */
36
- export namespace SettingsOperation {
37
- export const Open = Operation.make({
38
- meta: {
39
- key: `${SETTINGS_OPERATION}/open`,
40
- name: 'Open Settings',
41
- description: 'Open the settings panel.',
42
- },
43
- services: [Capability.Service],
44
- schema: {
45
- input: Schema.Struct({
46
- plugin: Schema.optional(Schema.String.annotations({ description: 'The plugin to open settings for.' })),
47
- }),
48
- output: Schema.Void,
49
- },
50
- });
51
-
52
- export const OpenPluginRegistry = Operation.make({
53
- meta: {
54
- key: `${SETTINGS_OPERATION}/open-plugin-registry`,
55
- name: 'Open Plugin Registry',
56
- description: 'Open the plugin registry.',
57
- },
58
- services: [Capability.Service],
59
- schema: {
60
- input: Schema.Void,
61
- output: Schema.Void,
62
- },
63
- });
64
- }
@@ -1,140 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
-
7
- import { GraphBuilder, NodeMatcher } from '@dxos/app-graph';
8
- import { Operation } from '@dxos/operation';
9
- import { isNonNullable } from '@dxos/util';
10
-
11
- import * as Common from '../common';
12
- import { Capability, type Plugin } from '../core';
13
-
14
- import { SETTINGS_ID, SETTINGS_KEY, SettingsOperation } from './actions';
15
- import { meta } from './meta';
16
-
17
- export default Capability.makeModule(
18
- Effect.fnUntraced(function* () {
19
- // Get context for lazy capability access in callbacks.
20
- const capabilities = yield* Capability.Service;
21
- const managerAtom = capabilities.atom(Common.Capability.PluginManager);
22
- const settingsAtom = capabilities.atom(Common.Capability.Settings);
23
-
24
- const extensions = yield* Effect.all([
25
- GraphBuilder.createExtension({
26
- id: `${meta.id}/action`,
27
- match: NodeMatcher.whenRoot,
28
- actions: () =>
29
- Effect.succeed([
30
- {
31
- id: meta.id,
32
- data: () => Operation.invoke(SettingsOperation.Open, {}),
33
- properties: {
34
- label: ['open settings label', { ns: meta.id }],
35
- icon: 'ph--gear--regular',
36
- disposition: 'menu',
37
- keyBinding: {
38
- macos: 'meta+,',
39
- windows: 'alt+,',
40
- },
41
- },
42
- },
43
- ]),
44
- }),
45
- GraphBuilder.createExtension({
46
- id: `${meta.id}/core`,
47
- match: NodeMatcher.whenRoot,
48
- connector: () =>
49
- Effect.succeed([
50
- {
51
- id: SETTINGS_ID,
52
- type: meta.id,
53
- properties: {
54
- label: ['app settings label', { ns: meta.id }],
55
- icon: 'ph--gear--regular',
56
- disposition: 'pin-end',
57
- position: 'hoist',
58
- testId: 'treeView.appSettings',
59
- },
60
- },
61
- ]),
62
- }),
63
- GraphBuilder.createExtension({
64
- id: `${meta.id}/core-plugins`,
65
- match: NodeMatcher.whenId(SETTINGS_ID),
66
- connector: (node, get) => {
67
- const [manager] = get(managerAtom);
68
- const allSettings = get(settingsAtom);
69
- return Effect.succeed([
70
- ...manager
71
- .getPlugins()
72
- .filter((plugin: Plugin.Plugin) => manager.getCore().includes(plugin.meta.id))
73
- .map((plugin: Plugin.Plugin): [Plugin.Meta, Common.Capability.Settings] | null => {
74
- const settings = allSettings.find((s) => s.prefix === plugin.meta.id);
75
- if (!settings) {
76
- return null;
77
- }
78
-
79
- return [plugin.meta, settings];
80
- })
81
- .filter(isNonNullable)
82
- .map(([meta, settings]: [Plugin.Meta, Common.Capability.Settings]) => ({
83
- id: `${SETTINGS_KEY}:${meta.id.replaceAll('/', ':')}`,
84
- type: 'category',
85
- data: settings,
86
- properties: {
87
- label: meta.name ?? meta.id,
88
- icon: meta.icon ?? 'ph--circle--regular',
89
- },
90
- })),
91
-
92
- {
93
- id: `${SETTINGS_KEY}:custom-plugins`,
94
- type: 'category',
95
- properties: {
96
- label: ['custom plugins label', { ns: meta.id }],
97
- icon: 'ph--squares-four--regular',
98
- role: 'branch',
99
- disposition: 'collection',
100
- },
101
- },
102
- ]);
103
- },
104
- }),
105
- GraphBuilder.createExtension({
106
- id: `${meta.id}/custom-plugins`,
107
- match: NodeMatcher.whenId(`${SETTINGS_KEY}:custom-plugins`),
108
- connector: (node, get) => {
109
- const [manager] = get(managerAtom);
110
- const allSettings = get(settingsAtom);
111
- return Effect.succeed(
112
- manager
113
- .getPlugins()
114
- .filter((plugin: Plugin.Plugin) => !manager.getCore().includes(plugin.meta.id))
115
- .map((plugin: Plugin.Plugin): [Plugin.Meta, Common.Capability.Settings] | null => {
116
- const settings = allSettings.find((s) => s.prefix === plugin.meta.id);
117
- if (!settings) {
118
- return null;
119
- }
120
-
121
- return [plugin.meta, settings];
122
- })
123
- .filter(isNonNullable)
124
- .map(([meta, settings]: [Plugin.Meta, Common.Capability.Settings]) => ({
125
- id: `${SETTINGS_KEY}:${meta.id.replaceAll('/', ':')}`,
126
- type: 'category',
127
- data: settings,
128
- properties: {
129
- label: meta.name ?? meta.id,
130
- icon: meta.icon ?? 'ph--circle--regular',
131
- },
132
- })),
133
- );
134
- },
135
- }),
136
- ]);
137
-
138
- return Capability.contributes(Common.Capability.AppGraphBuilder, extensions);
139
- }),
140
- );
@@ -1,6 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- export * from './actions';
6
- export * from './SettingsPlugin';
@@ -1,10 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type Plugin } from '@dxos/app-framework';
6
-
7
- export const meta: Plugin.Meta = {
8
- id: 'dxos.org/plugin/settings',
9
- name: 'Settings',
10
- };
@@ -1,55 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
-
7
- import { OperationResolver } from '@dxos/operation';
8
-
9
- import * as Common from '../common';
10
- import { Capability } from '../core';
11
-
12
- import { SETTINGS_ID, SETTINGS_KEY, SettingsOperation } from './actions';
13
-
14
- export default Capability.makeModule(
15
- Effect.fnUntraced(function* () {
16
- return Capability.contributes(Common.Capability.OperationResolver, [
17
- //
18
- // Open Settings
19
- //
20
- OperationResolver.make({
21
- operation: SettingsOperation.Open,
22
- handler: (input) =>
23
- Effect.gen(function* () {
24
- const { invoke } = yield* Capability.get(Common.Capability.OperationInvoker);
25
- yield* invoke(Common.LayoutOperation.SwitchWorkspace, { subject: SETTINGS_ID });
26
- if (input.plugin) {
27
- // Fire and forget the open operation.
28
- yield* Effect.fork(
29
- invoke(Common.LayoutOperation.Open, {
30
- subject: [`${SETTINGS_KEY}:${input.plugin.replaceAll('/', ':')}`],
31
- }),
32
- );
33
- }
34
- }),
35
- }),
36
-
37
- //
38
- // Open Plugin Registry
39
- //
40
- OperationResolver.make({
41
- operation: SettingsOperation.OpenPluginRegistry,
42
- handler: () =>
43
- Effect.gen(function* () {
44
- const { invoke } = yield* Capability.get(Common.Capability.OperationInvoker);
45
- yield* invoke(Common.LayoutOperation.SwitchWorkspace, { subject: SETTINGS_ID });
46
- yield* Effect.fork(
47
- invoke(Common.LayoutOperation.Open, {
48
- subject: [`${SETTINGS_KEY}:plugins`],
49
- }),
50
- );
51
- }),
52
- }),
53
- ]);
54
- }),
55
- );
@@ -1,19 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type Resource } from '../common';
6
-
7
- import { meta } from './meta';
8
-
9
- export const translations = [
10
- {
11
- 'en-US': {
12
- [meta.id]: {
13
- 'open settings label': 'Open settings',
14
- 'app settings label': 'Settings',
15
- 'custom plugins label': 'Plugins',
16
- },
17
- },
18
- },
19
- ] as const satisfies Resource[];
@@ -1,63 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
-
5
- import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import * as Effect from 'effect/Effect';
7
- import React from 'react';
8
-
9
- import { withTheme } from '@dxos/react-ui/testing';
10
-
11
- import * as Common from '../common';
12
- import { Capability, Plugin } from '../core';
13
-
14
- import { useApp } from './useApp';
15
-
16
- // Minimal plugin that contributes a ReactRoot.
17
- const TestPlugin = Plugin.define({
18
- id: 'dxos.org/plugin/test',
19
- name: 'Test Plugin',
20
- }).pipe(
21
- Plugin.addModule({
22
- id: 'TestMain',
23
- activatesOn: Common.ActivationEvent.Startup,
24
- activate: () =>
25
- Effect.succeed([
26
- Capability.contributes(Common.Capability.ReactRoot, {
27
- id: 'dxos.org/plugin/test/root',
28
- root: () => (
29
- <div className='fixed inset-0 flex items-center justify-center text-2xl'>App Started Successfully!</div>
30
- ),
31
- }),
32
- ]),
33
- }),
34
- Plugin.make,
35
- );
36
-
37
- const plugins = [TestPlugin()];
38
- const core = [TestPlugin.meta.id];
39
-
40
- const DefaultStory = () => {
41
- const App = useApp({
42
- plugins,
43
- core,
44
- placeholder: () => <div className='fixed inset-0 flex items-center justify-center'>Loading...</div>,
45
- });
46
-
47
- return <App />;
48
- };
49
-
50
- const meta = {
51
- title: 'sdk/app-framework/App',
52
- render: DefaultStory,
53
- decorators: [withTheme],
54
- parameters: {
55
- layout: 'fullscreen',
56
- },
57
- } satisfies Meta;
58
-
59
- export default meta;
60
-
61
- type Story = StoryObj<typeof meta>;
62
-
63
- export const Default: Story = {};
@@ -1,26 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- /**
8
- * NOTE: Default fallback should not use tailwind or theme.
9
- */
10
- export const DefaultFallback = ({ error }: { error: Error }) => {
11
- return (
12
- <div
13
- style={{
14
- margin: '1rem',
15
- padding: '1rem',
16
- overflow: 'hidden',
17
- border: '4px solid teal',
18
- borderRadius: '1rem',
19
- }}
20
- >
21
- {/* TODO(wittjosiah): Link to docs for replacing default. */}
22
- <h1 style={{ margin: '0.5rem 0', fontSize: '1.2rem' }}>ERROR: {error.message}</h1>
23
- <pre style={{ overflow: 'auto', fontSize: '1rem', whiteSpace: 'pre-wrap', color: '#888888' }}>{error.stack}</pre>
24
- </div>
25
- );
26
- };
@@ -1,56 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import React, { Component, type FC, type PropsWithChildren, type ReactNode } from 'react';
6
-
7
- type State = {
8
- error: Error | undefined;
9
- };
10
-
11
- export type ErrorBoundaryProps = PropsWithChildren<{
12
- data?: any;
13
- fallback?: FC<{ data?: any; error: Error }>;
14
- }>;
15
-
16
- /**
17
- * Surface error boundary.
18
- * For basic usage prefer providing a fallback component to `Surface`.
19
- *
20
- * Ref: https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary
21
- */
22
- export class ErrorBoundary extends Component<ErrorBoundaryProps, State> {
23
- static getDerivedStateFromError(error: Error): { error: Error } {
24
- return { error };
25
- }
26
-
27
- override state = { error: undefined };
28
-
29
- override componentDidUpdate(prevProps: ErrorBoundaryProps): void {
30
- if (prevProps.data !== this.props.data) {
31
- this.resetError();
32
- }
33
- }
34
-
35
- override render(): ReactNode {
36
- if (this.state.error) {
37
- const Fallback = this.props.fallback ?? DefaultFallback;
38
- return <Fallback data={this.props.data} error={this.state.error} />;
39
- }
40
-
41
- return this.props.children;
42
- }
43
-
44
- private resetError(): void {
45
- this.setState({ error: undefined });
46
- }
47
- }
48
-
49
- const DefaultFallback: NonNullable<ErrorBoundaryProps['fallback']> = ({ data, error }) => {
50
- return (
51
- <div className='flex flex-col gap-2 overflow-hidden border border-red-500 rounded-sm'>
52
- <h1 className='p-2'>ERROR: {error.message}</h1>
53
- <pre className='p-2 overflow-y-auto text-sm text-subdued'>{JSON.stringify(data, null, 2)}</pre>
54
- </div>
55
- );
56
- };
@@ -1,14 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- export * from './common';
6
- export * from './types';
7
-
8
- export * from './ErrorBoundary';
9
- export * from './PluginManagerProvider';
10
- export * from './Surface';
11
-
12
- export * from './useApp';
13
- export * from './useCapabilities';
14
- export * from './useOperationResolver';