@dxos/app-framework 0.8.4-main.1da679c → 0.8.4-main.21d9917

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 (427) hide show
  1. package/.storybook/main.mts +11 -0
  2. package/.storybook/preview.mts +8 -0
  3. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +149 -0
  4. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +7 -0
  5. package/dist/lib/browser/capability-7PCNSWBT.mjs +33 -0
  6. package/dist/lib/browser/capability-7PCNSWBT.mjs.map +7 -0
  7. package/dist/lib/browser/capability-KP3PFEXD.mjs +31 -0
  8. package/dist/lib/browser/capability-KP3PFEXD.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-6Y7PZV72.mjs +77 -0
  10. package/dist/lib/browser/chunk-6Y7PZV72.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-7IQHKD4U.mjs +170 -0
  12. package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-BLQJSGL3.mjs +732 -0
  14. package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-FHQTHCX7.mjs +8 -0
  16. package/dist/lib/browser/chunk-FHQTHCX7.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-FMZN33N4.mjs +807 -0
  18. package/dist/lib/browser/chunk-FMZN33N4.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-H4WPA7U7.mjs +77 -0
  20. package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  22. package/dist/lib/browser/chunk-PKQT6C53.mjs +47 -0
  23. package/dist/lib/browser/chunk-PKQT6C53.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-TCLLRCS3.mjs +145 -0
  25. package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-XYNO72GQ.mjs +746 -0
  27. package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +7 -0
  28. package/dist/lib/browser/common/index.mjs +38 -0
  29. package/dist/lib/browser/core/activation-event.mjs +20 -0
  30. package/dist/lib/browser/core/capability.mjs +28 -0
  31. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  32. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  33. package/dist/lib/browser/core/plugin.mjs +27 -0
  34. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  35. package/dist/lib/browser/index.mjs +165 -145
  36. package/dist/lib/browser/index.mjs.map +4 -4
  37. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs +32 -0
  38. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +7 -0
  39. package/dist/lib/browser/meta.json +1 -1
  40. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +64 -0
  41. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +7 -0
  42. package/dist/lib/browser/react/index.mjs +46 -0
  43. package/dist/lib/browser/react/index.mjs.map +7 -0
  44. package/dist/lib/browser/testing/index.mjs +76 -32
  45. package/dist/lib/browser/testing/index.mjs.map +4 -4
  46. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +150 -0
  47. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +7 -0
  48. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs +34 -0
  49. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +7 -0
  50. package/dist/lib/node-esm/capability-RCUNM2M7.mjs +32 -0
  51. package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +7 -0
  52. package/dist/lib/node-esm/chunk-663A54LQ.mjs +171 -0
  53. package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +7 -0
  54. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs +747 -0
  55. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs +48 -0
  57. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +733 -0
  59. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs +146 -0
  61. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  63. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-STMXUEPO.mjs +78 -0
  65. package/dist/lib/node-esm/chunk-STMXUEPO.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs +10 -0
  67. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +78 -0
  69. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs +808 -0
  71. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +7 -0
  72. package/dist/lib/node-esm/common/index.mjs +39 -0
  73. package/dist/lib/node-esm/common/index.mjs.map +7 -0
  74. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  75. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  76. package/dist/lib/node-esm/core/capability.mjs +29 -0
  77. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  78. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  79. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  80. package/dist/lib/node-esm/core/plugin.mjs +28 -0
  81. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  82. package/dist/lib/node-esm/index.mjs +165 -145
  83. package/dist/lib/node-esm/index.mjs.map +4 -4
  84. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs +33 -0
  85. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +7 -0
  86. package/dist/lib/node-esm/meta.json +1 -1
  87. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +65 -0
  88. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +7 -0
  89. package/dist/lib/node-esm/react/index.mjs +47 -0
  90. package/dist/lib/node-esm/react/index.mjs.map +7 -0
  91. package/dist/lib/node-esm/testing/index.mjs +76 -32
  92. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  93. package/dist/types/src/cli.d.ts +39 -0
  94. package/dist/types/src/cli.d.ts.map +1 -0
  95. package/dist/types/src/common/activation-event.d.ts +66 -0
  96. package/dist/types/src/common/activation-event.d.ts.map +1 -0
  97. package/dist/types/src/common/capability.d.ts +265 -0
  98. package/dist/types/src/common/capability.d.ts.map +1 -0
  99. package/dist/types/src/common/collaboration.d.ts +24 -18
  100. package/dist/types/src/common/collaboration.d.ts.map +1 -1
  101. package/dist/types/src/common/file.d.ts +1 -1
  102. package/dist/types/src/common/file.d.ts.map +1 -1
  103. package/dist/types/src/common/graph.d.ts +2 -2
  104. package/dist/types/src/common/graph.d.ts.map +1 -1
  105. package/dist/types/src/common/index.d.ts +4 -3
  106. package/dist/types/src/common/index.d.ts.map +1 -1
  107. package/dist/types/src/common/operations.d.ts +380 -0
  108. package/dist/types/src/common/operations.d.ts.map +1 -0
  109. package/dist/types/src/common/plugin.d.ts +201 -0
  110. package/dist/types/src/common/plugin.d.ts.map +1 -0
  111. package/dist/types/src/common/surface.d.ts +50 -21
  112. package/dist/types/src/common/surface.d.ts.map +1 -1
  113. package/dist/types/src/common/translations.d.ts +10 -1
  114. package/dist/types/src/common/translations.d.ts.map +1 -1
  115. package/dist/types/src/context.d.ts +5 -0
  116. package/dist/types/src/context.d.ts.map +1 -0
  117. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +6 -6
  118. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  119. package/dist/types/src/core/capability-manager.d.ts +43 -0
  120. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  121. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  122. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  123. package/dist/types/src/core/capability.d.ts +150 -0
  124. package/dist/types/src/core/capability.d.ts.map +1 -0
  125. package/dist/types/src/core/index.d.ts +5 -4
  126. package/dist/types/src/core/index.d.ts.map +1 -1
  127. package/dist/types/src/core/plugin-manager.d.ts +66 -0
  128. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  129. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  130. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  131. package/dist/types/src/core/plugin.d.ts +97 -32
  132. package/dist/types/src/core/plugin.d.ts.map +1 -1
  133. package/dist/types/src/index.d.ts +5 -4
  134. package/dist/types/src/index.d.ts.map +1 -1
  135. package/dist/types/src/playground/debug/Debug.d.ts +4 -2
  136. package/dist/types/src/playground/debug/Debug.d.ts.map +1 -1
  137. package/dist/types/src/playground/debug/plugin.d.ts +2 -1
  138. package/dist/types/src/playground/debug/plugin.d.ts.map +1 -1
  139. package/dist/types/src/playground/generator/Main.d.ts +4 -2
  140. package/dist/types/src/playground/generator/Main.d.ts.map +1 -1
  141. package/dist/types/src/playground/generator/Toolbar.d.ts +4 -2
  142. package/dist/types/src/playground/generator/Toolbar.d.ts.map +1 -1
  143. package/dist/types/src/playground/generator/generator.d.ts +17 -5
  144. package/dist/types/src/playground/generator/generator.d.ts.map +1 -1
  145. package/dist/types/src/playground/generator/plugin.d.ts +2 -1
  146. package/dist/types/src/playground/generator/plugin.d.ts.map +1 -1
  147. package/dist/types/src/playground/layout/Layout.d.ts +4 -2
  148. package/dist/types/src/playground/layout/Layout.d.ts.map +1 -1
  149. package/dist/types/src/playground/layout/plugin.d.ts +2 -1
  150. package/dist/types/src/playground/layout/plugin.d.ts.map +1 -1
  151. package/dist/types/src/playground/logger/Toolbar.d.ts +4 -2
  152. package/dist/types/src/playground/logger/Toolbar.d.ts.map +1 -1
  153. package/dist/types/src/playground/logger/plugin.d.ts +2 -1
  154. package/dist/types/src/playground/logger/plugin.d.ts.map +1 -1
  155. package/dist/types/src/playground/logger/schema.d.ts +15 -1
  156. package/dist/types/src/playground/logger/schema.d.ts.map +1 -1
  157. package/dist/types/src/playground/playground.stories.d.ts +0 -1
  158. package/dist/types/src/playground/playground.stories.d.ts.map +1 -1
  159. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  160. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  161. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  162. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  163. package/dist/types/src/plugin-operation/history/errors.d.ts +5 -0
  164. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  165. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  166. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  167. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  168. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  169. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  170. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  171. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  172. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  173. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +93 -0
  174. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  175. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  176. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  177. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  178. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  179. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  180. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  181. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  182. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  183. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  184. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  185. package/dist/types/src/plugin-operation/testing.d.ts +109 -0
  186. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  187. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  188. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  189. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  190. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  191. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  192. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  193. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  194. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  195. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +2 -1
  196. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +1 -1
  197. package/dist/types/src/plugin-settings/actions.d.ts +41 -7
  198. package/dist/types/src/plugin-settings/actions.d.ts.map +1 -1
  199. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +4 -2
  200. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +1 -1
  201. package/dist/types/src/plugin-settings/meta.d.ts +3 -0
  202. package/dist/types/src/plugin-settings/meta.d.ts.map +1 -0
  203. package/dist/types/src/plugin-settings/operation-resolver.d.ts +6 -0
  204. package/dist/types/src/plugin-settings/operation-resolver.d.ts.map +1 -0
  205. package/dist/types/src/plugin-settings/translations.d.ts +2 -1
  206. package/dist/types/src/plugin-settings/translations.d.ts.map +1 -1
  207. package/dist/types/src/react/App.d.ts +8 -0
  208. package/dist/types/src/react/App.d.ts.map +1 -0
  209. package/dist/types/src/{components → react}/App.stories.d.ts +0 -1
  210. package/dist/types/src/react/App.stories.d.ts.map +1 -0
  211. package/dist/types/src/react/DefaultFallback.d.ts.map +1 -0
  212. package/dist/types/src/react/ErrorBoundary.d.ts +2 -2
  213. package/dist/types/src/react/ErrorBoundary.d.ts.map +1 -1
  214. package/dist/types/src/react/PluginManagerContext.stories.d.ts +13 -0
  215. package/dist/types/src/react/PluginManagerContext.stories.d.ts.map +1 -0
  216. package/dist/types/src/react/PluginManagerProvider.d.ts +2 -2
  217. package/dist/types/src/react/PluginManagerProvider.d.ts.map +1 -1
  218. package/dist/types/src/react/Surface.d.ts +9 -7
  219. package/dist/types/src/react/Surface.d.ts.map +1 -1
  220. package/dist/types/src/react/Surface.stories.d.ts +3 -7
  221. package/dist/types/src/react/Surface.stories.d.ts.map +1 -1
  222. package/dist/types/src/react/SurfaceInfo.d.ts +11 -0
  223. package/dist/types/src/react/SurfaceInfo.d.ts.map +1 -0
  224. package/dist/types/src/react/common.d.ts +13 -12
  225. package/dist/types/src/react/common.d.ts.map +1 -1
  226. package/dist/types/src/react/index.d.ts +3 -1
  227. package/dist/types/src/react/index.d.ts.map +1 -1
  228. package/dist/types/src/react/types.d.ts +12 -0
  229. package/dist/types/src/react/types.d.ts.map +1 -0
  230. package/dist/types/src/{components → react}/useApp.d.ts +7 -6
  231. package/dist/types/src/react/useApp.d.ts.map +1 -0
  232. package/dist/types/src/react/useCapabilities.d.ts +16 -3
  233. package/dist/types/src/react/useCapabilities.d.ts.map +1 -1
  234. package/dist/types/src/{components → react}/useLoading.d.ts +1 -2
  235. package/dist/types/src/react/useLoading.d.ts.map +1 -0
  236. package/dist/types/src/react/useOperationResolver.d.ts +19 -0
  237. package/dist/types/src/react/useOperationResolver.d.ts.map +1 -0
  238. package/dist/types/src/testing/index.d.ts +1 -0
  239. package/dist/types/src/testing/index.d.ts.map +1 -1
  240. package/dist/types/src/testing/service.d.ts +8 -0
  241. package/dist/types/src/testing/service.d.ts.map +1 -0
  242. package/dist/types/src/testing/withPluginManager.d.ts +8 -9
  243. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  244. package/dist/types/tsconfig.tsbuildinfo +1 -1
  245. package/moon.yml +10 -2
  246. package/package.json +101 -44
  247. package/src/cli.ts +107 -0
  248. package/src/common/activation-event.ts +99 -0
  249. package/src/common/capability.ts +343 -0
  250. package/src/common/collaboration.ts +24 -11
  251. package/src/common/file.ts +1 -1
  252. package/src/common/graph.ts +2 -2
  253. package/src/common/index.ts +4 -3
  254. package/src/common/operations.ts +412 -0
  255. package/src/common/plugin.ts +364 -0
  256. package/src/common/surface.ts +60 -26
  257. package/src/common/translations.ts +21 -1
  258. package/src/context.ts +9 -0
  259. package/src/core/{events.ts → activation-event.ts} +5 -5
  260. package/src/core/capability-manager.test.ts +151 -0
  261. package/src/core/capability-manager.ts +171 -0
  262. package/src/core/capability.ts +236 -0
  263. package/src/core/index.ts +5 -4
  264. package/src/core/plugin-manager.test.ts +845 -0
  265. package/src/core/plugin-manager.ts +696 -0
  266. package/src/core/plugin.ts +229 -36
  267. package/src/index.ts +5 -4
  268. package/src/playground/debug/Debug.tsx +26 -16
  269. package/src/playground/debug/plugin.ts +10 -11
  270. package/src/playground/generator/Main.tsx +20 -11
  271. package/src/playground/generator/Toolbar.tsx +26 -16
  272. package/src/playground/generator/generator.ts +28 -28
  273. package/src/playground/generator/plugin.ts +15 -17
  274. package/src/playground/layout/Layout.tsx +11 -7
  275. package/src/playground/layout/plugin.ts +12 -11
  276. package/src/playground/logger/Toolbar.tsx +19 -16
  277. package/src/playground/logger/plugin.ts +32 -27
  278. package/src/playground/logger/schema.ts +11 -1
  279. package/src/playground/playground.stories.tsx +16 -9
  280. package/src/plugin-operation/OperationPlugin.ts +25 -0
  281. package/src/plugin-operation/history/capability.ts +37 -0
  282. package/src/plugin-operation/history/errors.ts +11 -0
  283. package/src/plugin-operation/history/history-tracker.test.ts +380 -0
  284. package/src/plugin-operation/history/history-tracker.ts +129 -0
  285. package/src/plugin-operation/history/index.ts +9 -0
  286. package/src/plugin-operation/history/types.ts +17 -0
  287. package/src/plugin-operation/history/undo-mapping.ts +132 -0
  288. package/src/plugin-operation/history/undo-registry.test.ts +73 -0
  289. package/src/plugin-operation/history/undo-registry.ts +54 -0
  290. package/src/plugin-operation/index.ts +6 -0
  291. package/src/plugin-operation/invoker-capability.ts +40 -0
  292. package/src/plugin-operation/meta.ts +11 -0
  293. package/src/plugin-operation/testing.ts +174 -0
  294. package/src/plugin-runtime/RuntimePlugin.ts +20 -0
  295. package/src/plugin-runtime/capability.ts +53 -0
  296. package/src/{components → plugin-runtime}/index.ts +1 -1
  297. package/src/plugin-runtime/meta.ts +11 -0
  298. package/src/plugin-settings/SettingsPlugin.ts +12 -29
  299. package/src/plugin-settings/actions.ts +45 -10
  300. package/src/plugin-settings/app-graph-builder.ts +123 -141
  301. package/src/plugin-settings/meta.ts +10 -0
  302. package/src/plugin-settings/operation-resolver.ts +55 -0
  303. package/src/plugin-settings/translations.ts +4 -4
  304. package/src/react/App.stories.tsx +63 -0
  305. package/src/{components → react}/App.tsx +11 -10
  306. package/src/{components → react}/DefaultFallback.tsx +1 -1
  307. package/src/react/ErrorBoundary.tsx +10 -8
  308. package/src/react/PluginManagerContext.stories.tsx +184 -0
  309. package/src/react/PluginManagerProvider.ts +2 -2
  310. package/src/react/Surface.stories.tsx +92 -55
  311. package/src/react/Surface.tsx +235 -46
  312. package/src/react/SurfaceInfo.tsx +107 -0
  313. package/src/react/common.ts +29 -5
  314. package/src/react/index.ts +5 -1
  315. package/src/react/types.ts +27 -0
  316. package/src/react/useApp.tsx +209 -0
  317. package/src/react/useCapabilities.ts +37 -5
  318. package/src/{components → react}/useLoading.tsx +4 -6
  319. package/src/react/useOperationResolver.ts +40 -0
  320. package/src/testing/index.ts +1 -0
  321. package/src/testing/service.ts +52 -0
  322. package/src/testing/withPluginManager.stories.tsx +6 -6
  323. package/src/testing/withPluginManager.tsx +36 -37
  324. package/tsconfig.json +26 -8
  325. package/vitest.config.ts +8 -6
  326. package/.swc/plugins/linux_x86_64_19.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429.wasmer-v7 +0 -0
  327. package/dist/lib/browser/app-graph-builder-NJPA2G5W.mjs +0 -137
  328. package/dist/lib/browser/app-graph-builder-NJPA2G5W.mjs.map +0 -7
  329. package/dist/lib/browser/chunk-5PEC66SO.mjs +0 -471
  330. package/dist/lib/browser/chunk-5PEC66SO.mjs.map +0 -7
  331. package/dist/lib/browser/chunk-ORWHM7CO.mjs +0 -32
  332. package/dist/lib/browser/chunk-ORWHM7CO.mjs.map +0 -7
  333. package/dist/lib/browser/chunk-RAYLWQ5Q.mjs +0 -1645
  334. package/dist/lib/browser/chunk-RAYLWQ5Q.mjs.map +0 -7
  335. package/dist/lib/browser/intent-dispatcher-MDRGYJIB.mjs +0 -11
  336. package/dist/lib/browser/intent-resolver-M6FKP6GN.mjs +0 -39
  337. package/dist/lib/browser/intent-resolver-M6FKP6GN.mjs.map +0 -7
  338. package/dist/lib/browser/store-3APFOQKK.mjs +0 -30
  339. package/dist/lib/browser/store-3APFOQKK.mjs.map +0 -7
  340. package/dist/lib/browser/worker.mjs +0 -85
  341. package/dist/lib/node-esm/app-graph-builder-QSVQIJL5.mjs +0 -138
  342. package/dist/lib/node-esm/app-graph-builder-QSVQIJL5.mjs.map +0 -7
  343. package/dist/lib/node-esm/chunk-NL3BJGAH.mjs +0 -1647
  344. package/dist/lib/node-esm/chunk-NL3BJGAH.mjs.map +0 -7
  345. package/dist/lib/node-esm/chunk-TIGGOZBR.mjs +0 -472
  346. package/dist/lib/node-esm/chunk-TIGGOZBR.mjs.map +0 -7
  347. package/dist/lib/node-esm/chunk-UMZQERLE.mjs +0 -34
  348. package/dist/lib/node-esm/chunk-UMZQERLE.mjs.map +0 -7
  349. package/dist/lib/node-esm/intent-dispatcher-YFOVJIJP.mjs +0 -12
  350. package/dist/lib/node-esm/intent-resolver-KERU62QF.mjs +0 -40
  351. package/dist/lib/node-esm/intent-resolver-KERU62QF.mjs.map +0 -7
  352. package/dist/lib/node-esm/store-EZER6ON2.mjs +0 -31
  353. package/dist/lib/node-esm/store-EZER6ON2.mjs.map +0 -7
  354. package/dist/lib/node-esm/worker.mjs +0 -86
  355. package/dist/types/src/common/capabilities.d.ts +0 -198
  356. package/dist/types/src/common/capabilities.d.ts.map +0 -1
  357. package/dist/types/src/common/events.d.ts +0 -52
  358. package/dist/types/src/common/events.d.ts.map +0 -1
  359. package/dist/types/src/common/layout.d.ts +0 -281
  360. package/dist/types/src/common/layout.d.ts.map +0 -1
  361. package/dist/types/src/components/App.d.ts +0 -10
  362. package/dist/types/src/components/App.d.ts.map +0 -1
  363. package/dist/types/src/components/App.stories.d.ts.map +0 -1
  364. package/dist/types/src/components/DefaultFallback.d.ts.map +0 -1
  365. package/dist/types/src/components/index.d.ts +0 -2
  366. package/dist/types/src/components/index.d.ts.map +0 -1
  367. package/dist/types/src/components/useApp.d.ts.map +0 -1
  368. package/dist/types/src/components/useLoading.d.ts.map +0 -1
  369. package/dist/types/src/core/capabilities.d.ts +0 -117
  370. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  371. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  372. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  373. package/dist/types/src/core/events.d.ts.map +0 -1
  374. package/dist/types/src/core/manager.d.ts +0 -126
  375. package/dist/types/src/core/manager.d.ts.map +0 -1
  376. package/dist/types/src/core/manager.test.d.ts +0 -2
  377. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  378. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  379. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  380. package/dist/types/src/plugin-intent/actions.d.ts +0 -38
  381. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  382. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  383. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  384. package/dist/types/src/plugin-intent/index.d.ts +0 -6
  385. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  386. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  387. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  388. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  389. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  390. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  391. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  392. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  393. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  394. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  395. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  396. package/dist/types/src/react/IntentContext.d.ts +0 -8
  397. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  398. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  399. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  400. package/dist/types/src/worker.d.ts +0 -4
  401. package/dist/types/src/worker.d.ts.map +0 -1
  402. package/src/common/capabilities.ts +0 -212
  403. package/src/common/events.ts +0 -79
  404. package/src/common/layout.ts +0 -278
  405. package/src/components/App.stories.tsx +0 -35
  406. package/src/components/useApp.tsx +0 -166
  407. package/src/core/capabilities.test.ts +0 -136
  408. package/src/core/capabilities.ts +0 -259
  409. package/src/core/manager.test.ts +0 -516
  410. package/src/core/manager.ts +0 -597
  411. package/src/plugin-intent/IntentPlugin.ts +0 -21
  412. package/src/plugin-intent/actions.ts +0 -33
  413. package/src/plugin-intent/errors.ts +0 -39
  414. package/src/plugin-intent/index.ts +0 -9
  415. package/src/plugin-intent/intent-dispatcher.test.ts +0 -279
  416. package/src/plugin-intent/intent-dispatcher.ts +0 -335
  417. package/src/plugin-intent/intent.ts +0 -154
  418. package/src/plugin-settings/intent-resolver.ts +0 -35
  419. package/src/plugin-settings/store.ts +0 -33
  420. package/src/react/IntentContext.tsx +0 -35
  421. package/src/react/useIntentResolver.ts +0 -22
  422. package/src/worker.ts +0 -11
  423. /package/dist/lib/browser/{intent-dispatcher-MDRGYJIB.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  424. /package/dist/lib/browser/{worker.mjs.map → common/index.mjs.map} +0 -0
  425. /package/dist/lib/{node-esm/intent-dispatcher-YFOVJIJP.mjs.map → browser/core/activation-event.mjs.map} +0 -0
  426. /package/dist/lib/{node-esm/worker.mjs.map → browser/core/capability.mjs.map} +0 -0
  427. /package/dist/types/src/{components → react}/DefaultFallback.d.ts +0 -0
@@ -0,0 +1,184 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Atom, useAtomValue } from '@effect-atom/atom-react';
6
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
+ import * as Effect from 'effect/Effect';
8
+ import React, { useEffect, useMemo, useState } from 'react';
9
+
10
+ import { withTheme } from '@dxos/react-ui/testing';
11
+ import { useWebComponentContext } from '@dxos/web-context-react';
12
+
13
+ import * as Common from '../common';
14
+ import { PluginManagerContext } from '../context';
15
+ import { Capability, Plugin } from '../core';
16
+
17
+ import { useApp } from './useApp';
18
+
19
+ // Define the Counter capability
20
+ const Counter = Capability.make<{ count: number; increment: () => void }>('example/counter');
21
+
22
+ const CountStatus = () => {
23
+ const manager = useWebComponentContext(PluginManagerContext);
24
+ const capabilitiesAtom = useMemo(
25
+ () => manager?.capabilities.atom(Counter) ?? Atom.make<{ count: number; increment: () => void }[]>([]),
26
+ [manager],
27
+ );
28
+ const capabilities = useAtomValue(capabilitiesAtom);
29
+ const counter = (capabilities as any)[0];
30
+ const [count, setCount] = useState(counter?.count ?? 0);
31
+
32
+ useEffect(() => {
33
+ if (!counter) {
34
+ return;
35
+ }
36
+ setCount(counter.count);
37
+ if ('subscribe' in counter && typeof counter.subscribe === 'function') {
38
+ return counter.subscribe(() => setCount(counter.count));
39
+ }
40
+ }, [counter]);
41
+
42
+ if (!manager) return null;
43
+
44
+ const isEven = count % 2 === 0;
45
+
46
+ return (
47
+ <div
48
+ className={`mt-4 px-4 py-2 rounded-full text-sm font-medium transition-colors ${
49
+ isEven
50
+ ? 'bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400'
51
+ : 'bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-400'
52
+ }`}
53
+ >
54
+ Status: {isEven ? 'Even' : 'Odd'}
55
+ </div>
56
+ );
57
+ };
58
+
59
+ // A component that consumes the PluginManager via web context
60
+ const CounterComponent = () => {
61
+ // Use the web-context hook to get the PluginManager
62
+ const manager = useWebComponentContext(PluginManagerContext);
63
+ const capabilitiesAtom = useMemo(
64
+ () => manager?.capabilities.atom(Counter) ?? Atom.make<{ count: number; increment: () => void }[]>([]),
65
+ [manager],
66
+ );
67
+ const capabilities = useAtomValue(capabilitiesAtom);
68
+ const counter = (capabilities as any)[0];
69
+ const [count, setCount] = useState(counter?.count ?? 0);
70
+
71
+ useEffect(() => {
72
+ if (!counter) {
73
+ return;
74
+ }
75
+ setCount(counter.count);
76
+ if ('subscribe' in counter && typeof counter.subscribe === 'function') {
77
+ return counter.subscribe(() => setCount(counter.count));
78
+ }
79
+ }, [counter]);
80
+
81
+ if (!manager) {
82
+ return <div className='p-4 text-red-500'>Error: Context not found</div>;
83
+ }
84
+
85
+ return (
86
+ <div className='flex flex-col items-center justify-center h-screen bg-neutral-100 dark:bg-neutral-900 text-neutral-900 dark:text-white'>
87
+ <div className='p-8 bg-white dark:bg-neutral-800 rounded-lg shadow-xl border border-neutral-200 dark:border-neutral-700 max-w-md w-full'>
88
+ <h2 className='text-2xl font-bold mb-6 text-center text-primary-600 dark:text-primary-400'>
89
+ Web Context Counter
90
+ </h2>
91
+
92
+ <div className='flex flex-col items-center gap-6'>
93
+ <div className='text-6xl font-mono font-bold tabular-nums tracking-tighter'>{count}</div>
94
+
95
+ <button
96
+ className='px-6 py-3 bg-primary-600 hover:bg-primary-700 text-white font-semibold rounded-full transition-colors shadow-md active:transform active:scale-95'
97
+ onClick={() => {
98
+ const counter = manager.capabilities.get(Counter);
99
+ counter.increment();
100
+ }}
101
+ >
102
+ Increment
103
+ </button>
104
+
105
+ <CountStatus />
106
+ </div>
107
+
108
+ <div className='mt-8 pt-4 border-bs border-neutral-200 dark:border-neutral-700 text-center'>
109
+ <p className='text-sm text-neutral-500 dark:text-neutral-400'>
110
+ This component accesses the <code>PluginManager</code> via <code>useWebComponentContext</code>.
111
+ </p>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ );
116
+ };
117
+
118
+ // Plugin that provides the Counter capability and renders the UI
119
+ const CounterPlugin = Plugin.define({
120
+ id: 'dxos.org/plugin/counter',
121
+ name: 'Counter Plugin',
122
+ }).pipe(
123
+ Plugin.addModule({
124
+ id: 'CounterMain',
125
+ activatesOn: Common.ActivationEvent.Startup,
126
+ activate: () => {
127
+ const listeners = new Set<() => void>();
128
+ const counter = {
129
+ count: 0,
130
+ increment: () => {
131
+ counter.count++;
132
+ listeners.forEach((listener) => listener());
133
+ },
134
+ subscribe: (listener: () => void) => {
135
+ listeners.add(listener);
136
+ return () => listeners.delete(listener);
137
+ },
138
+ };
139
+
140
+ return Effect.succeed([
141
+ // Contribute the state/logic
142
+ Capability.contributes(Counter, counter),
143
+
144
+ // Contribute the UI
145
+ Capability.contributes(Common.Capability.ReactRoot, {
146
+ id: 'dxos.org/plugin/counter/root',
147
+ root: CounterComponent,
148
+ }),
149
+ ]);
150
+ },
151
+ }),
152
+ Plugin.make,
153
+ )();
154
+
155
+ const plugins = [CounterPlugin];
156
+ const core = ['dxos.org/plugin/counter'];
157
+ const placeholder = () => (
158
+ <div className='flex h-screen items-center justify-center p-4 text-lg text-neutral-500'>
159
+ Initializing Application...
160
+ </div>
161
+ );
162
+
163
+ const DefaultStory = () => {
164
+ const App = useApp({
165
+ plugins,
166
+ core,
167
+ placeholder,
168
+ });
169
+
170
+ return <App />;
171
+ };
172
+
173
+ const meta = {
174
+ title: 'sdk/app-framework/PluginManagerContext',
175
+ render: DefaultStory,
176
+ decorators: [withTheme],
177
+ parameters: {
178
+ layout: 'fullscreen',
179
+ },
180
+ } satisfies Meta;
181
+
182
+ export default meta;
183
+
184
+ export const Default: StoryObj<typeof meta> = {};
@@ -8,12 +8,12 @@ import { raise } from '@dxos/debug';
8
8
 
9
9
  import { type PluginManager } from '../core';
10
10
 
11
- const PluginManagerContext = createContext<PluginManager | undefined>(undefined);
11
+ const PluginManagerContext = createContext<PluginManager.PluginManager | undefined>(undefined);
12
12
 
13
13
  /**
14
14
  * Get the plugin manager.
15
15
  */
16
- export const usePluginManager = (): PluginManager =>
16
+ export const usePluginManager = (): PluginManager.PluginManager =>
17
17
  useContext(PluginManagerContext) ?? raise(new Error('Missing PluginManagerContext'));
18
18
 
19
19
  /**
@@ -2,98 +2,135 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
8
- import React, { useCallback, useState } from 'react';
6
+ import React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
9
7
 
10
8
  import { faker } from '@dxos/random';
11
- import { Button, List, ListItem } from '@dxos/react-ui';
12
- import { withLayout, withTheme } from '@dxos/storybook-utils';
9
+ import { List, ListItem, Toolbar } from '@dxos/react-ui';
10
+ import { withTheme } from '@dxos/react-ui/testing';
11
+ import { type ColorStyles, getHashStyles, mx } from '@dxos/ui-theme';
13
12
 
14
- import { Capabilities, createSurface } from '../common';
15
- import { type PluginManager } from '../core';
16
- import { setupPluginManager } from '../testing';
13
+ import * as Common from '../common';
14
+ import { withPluginManager } from '../testing';
17
15
 
18
- import { PluginManagerProvider, usePluginManager } from './PluginManagerProvider';
16
+ import { usePluginManager } from './PluginManagerProvider';
19
17
  import { Surface, useSurfaces } from './Surface';
20
18
 
21
- const randomColor = (): string => {
22
- const hue = faker.number.int({ min: 0, max: 360 });
23
- const saturation = faker.number.int({ min: 50, max: 90 });
24
- const lightness = faker.number.int({ min: 40, max: 70 });
25
- return `hsl(${hue}, ${saturation}%, ${lightness}%)`;
19
+ type TestComponentProps = {
20
+ id: string;
21
+ styles: ColorStyles;
26
22
  };
27
23
 
28
- const Component = () => {
24
+ const TestComponent = forwardRef<HTMLDivElement, TestComponentProps>(({ styles, id }, forwardedRef) => {
25
+ return (
26
+ <div
27
+ className={mx('flex justify-center items-center border rounded', styles.surface, styles.border)}
28
+ ref={forwardedRef}
29
+ >
30
+ <span className={mx('dx-tag font-mono text-lg', styles.text)}>{id}</span>
31
+ </div>
32
+ );
33
+ });
34
+
35
+ const DefaultStory = () => {
29
36
  const manager = usePluginManager();
30
37
  const surfaces = useSurfaces();
31
- const [picked, setPicked] = useState('test');
38
+ const [selected, setSelected] = useState<string | undefined>();
32
39
 
33
40
  const handleAdd = useCallback(() => {
34
- const id = `test-${faker.number.int({ min: 0, max: 1_000_000 })}`;
35
- const backgroundColor = randomColor();
36
-
37
- manager.context.contributeCapability({
41
+ const id = `test-${faker.number.int({ min: 0, max: 1_000 })}`;
42
+ const styles = getHashStyles(id);
43
+ manager.capabilities.contribute({
38
44
  module: 'test',
39
- interface: Capabilities.ReactSurface,
40
- implementation: createSurface({
45
+ interface: Common.Capability.ReactSurface,
46
+ implementation: Common.createSurface({
41
47
  id,
42
- role: id,
43
- component: () => (
44
- <div className='flex-1' style={{ backgroundColor }}>
45
- {id}
46
- </div>
47
- ),
48
+ role: 'item',
49
+ filter: (data): data is any => (data as any)?.id === id,
50
+ component: ({ ref }) => <TestComponent id={id} styles={styles} ref={ref} />,
48
51
  }),
49
52
  });
50
53
 
51
- setPicked(id);
54
+ setSelected(id);
52
55
  }, [manager]);
53
56
 
54
- const handlePick = useCallback(() => {
55
- setPicked(faker.helpers.arrayElement(surfaces).id);
57
+ const handleSelect = useCallback(() => {
58
+ setSelected(faker.helpers.arrayElement(surfaces)?.id);
56
59
  }, [surfaces]);
57
60
 
61
+ const handleError = useCallback(() => {
62
+ manager.capabilities.contribute({
63
+ module: 'error',
64
+ interface: Common.Capability.ReactSurface,
65
+ implementation: Common.createSurface({
66
+ id: 'error',
67
+ role: 'item',
68
+ filter: (data): data is any => (data as any)?.id === 'error',
69
+ component: () => {
70
+ const [count, setCount] = useState(3);
71
+ useEffect(() => {
72
+ const interval = setInterval(() => {
73
+ setCount((count) => {
74
+ if (count <= 1) {
75
+ clearInterval(interval);
76
+ }
77
+
78
+ return count - 1;
79
+ });
80
+ }, 1_000);
81
+ return () => clearInterval(interval);
82
+ }, []);
83
+
84
+ if (count <= 0) {
85
+ throw new Error('BANG!');
86
+ }
87
+
88
+ return (
89
+ <div className='flex justify-center items-center border border-roseFill rounded'>
90
+ <span className='font-mono'>Ticking... {count}</span>
91
+ </div>
92
+ );
93
+ },
94
+ }),
95
+ });
96
+
97
+ setSelected('error');
98
+ }, [manager]);
99
+
100
+ const ref = useRef<HTMLElement>(null);
101
+ useEffect(() => {
102
+ console.log(ref.current);
103
+ }, [ref]);
104
+
58
105
  return (
59
- <div className='flex flex-col gap-2'>
60
- <div className='flex gap-2'>
61
- <Button onClick={handleAdd}>Add</Button>
62
- <Button onClick={handlePick}>Pick</Button>
63
- </div>
64
- <div className='flex gap-2'>
65
- <div className='flex-1'>
66
- <List itemSizes='one'>
106
+ <div className='flex flex-col bs-full overflow-hidden'>
107
+ <Toolbar.Root>
108
+ <Toolbar.Button onClick={handleAdd}>Add</Toolbar.Button>
109
+ <Toolbar.Button onClick={handleSelect}>Pick</Toolbar.Button>
110
+ <Toolbar.Button onClick={handleError}>Error</Toolbar.Button>
111
+ </Toolbar.Root>
112
+ <div className='grid grid-cols-2 bs-full gap-4 overflow-hidden'>
113
+ <Surface role='item' data={selected ? { id: selected } : undefined} limit={1} ref={ref} />
114
+ <div className='overflow-y-auto bs-full'>
115
+ <List>
67
116
  {surfaces.map((surface) => (
68
117
  <ListItem.Root key={surface.id} id={surface.id}>
69
- <ListItem.Heading classNames='grow pbs-2'>{surface.id}</ListItem.Heading>
118
+ <ListItem.Heading classNames='flex items-center'>{surface.id}</ListItem.Heading>
70
119
  </ListItem.Root>
71
120
  ))}
72
121
  </List>
73
122
  </div>
74
- <div className='flex-1'>
75
- <Surface role={picked} limit={1} />
76
- </div>
77
123
  </div>
78
124
  </div>
79
125
  );
80
126
  };
81
127
 
82
- const DefaultStory = (props: { manager: PluginManager }) => {
83
- return (
84
- <PluginManagerProvider value={props.manager}>
85
- <Component />
86
- </PluginManagerProvider>
87
- );
88
- };
89
-
90
128
  const meta = {
91
129
  title: 'sdk/app-framework/Surface',
92
130
  render: DefaultStory,
93
- // NOTE: Intentionally not using withPluginManager to try to reduce surface area of the story.
94
- decorators: [withTheme, withLayout()],
95
- args: {
96
- manager: setupPluginManager(),
131
+ decorators: [withTheme, withPluginManager({ capabilities: [] })],
132
+ parameters: {
133
+ layout: 'fullscreen',
97
134
  },
98
135
  } satisfies Meta<typeof DefaultStory>;
99
136