@dxos/plugin-presenter 0.8.4-main.7996785055 → 0.8.4-main.8baae0fced

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 (203) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/{browser/CollectionPresenterContainer-JXB7MHRE.mjs → neutral/CollectionPresenterArticle-WWHFJYZA.mjs} +13 -20
  3. package/dist/lib/neutral/CollectionPresenterArticle-WWHFJYZA.mjs.map +7 -0
  4. package/dist/lib/{browser/DocumentPresenterContainer-ZGA4OUSU.mjs → neutral/DocumentPresenterContainer-KCDZ2O2C.mjs} +4 -9
  5. package/dist/lib/neutral/DocumentPresenterContainer-KCDZ2O2C.mjs.map +7 -0
  6. package/dist/lib/{browser/MarkdownSlide-JW66CKQF.mjs → neutral/MarkdownSlide-WXILOIBE.mjs} +3 -9
  7. package/dist/lib/neutral/MarkdownSlide-WXILOIBE.mjs.map +7 -0
  8. package/dist/lib/neutral/PresenterPlugin.mjs +23 -0
  9. package/dist/lib/neutral/PresenterPlugin.mjs.map +7 -0
  10. package/dist/lib/neutral/PresenterPlugin.node.mjs +16 -0
  11. package/dist/lib/neutral/PresenterPlugin.node.mjs.map +7 -0
  12. package/dist/lib/neutral/PresenterPlugin.workerd.mjs +12 -0
  13. package/dist/lib/neutral/PresenterPlugin.workerd.mjs.map +7 -0
  14. package/dist/lib/neutral/PresenterSettings-2G4XD4QY.mjs +25 -0
  15. package/dist/lib/neutral/PresenterSettings-2G4XD4QY.mjs.map +7 -0
  16. package/dist/lib/{browser/app-graph-builder-N6HFHTXF.mjs → neutral/app-graph-builder-DIEDSRPX.mjs} +20 -32
  17. package/dist/lib/neutral/app-graph-builder-DIEDSRPX.mjs.map +7 -0
  18. package/dist/lib/neutral/capabilities/index.mjs +13 -0
  19. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  20. package/dist/lib/neutral/chunk-DCPA267T.mjs +68 -0
  21. package/dist/lib/neutral/chunk-DCPA267T.mjs.map +7 -0
  22. package/dist/lib/{browser/chunk-PYBNNNNK.mjs → neutral/chunk-J5HP5KBM.mjs} +2 -1
  23. package/dist/lib/neutral/chunk-J5HP5KBM.mjs.map +7 -0
  24. package/dist/lib/{browser/chunk-GK6SUI2J.mjs → neutral/chunk-V323QBC3.mjs} +2 -3
  25. package/dist/lib/neutral/chunk-V323QBC3.mjs.map +7 -0
  26. package/dist/lib/{browser/chunk-NPELNO5W.mjs → neutral/components/index.mjs} +15 -8
  27. package/dist/lib/neutral/components/index.mjs.map +7 -0
  28. package/dist/lib/neutral/containers/index.mjs +13 -0
  29. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  30. package/dist/lib/neutral/index.mjs +18 -0
  31. package/dist/lib/neutral/meta.json +1 -0
  32. package/dist/lib/neutral/meta.mjs +8 -0
  33. package/dist/lib/neutral/meta.mjs.map +7 -0
  34. package/dist/lib/neutral/plugin.mjs +12 -0
  35. package/dist/lib/neutral/plugin.mjs.map +7 -0
  36. package/dist/lib/neutral/react-surface-DIDVKI5N.mjs +54 -0
  37. package/dist/lib/neutral/react-surface-DIDVKI5N.mjs.map +7 -0
  38. package/dist/lib/{browser/settings-NWPZKMSH.mjs → neutral/settings-R6LRDAAK.mjs} +6 -11
  39. package/dist/lib/neutral/settings-R6LRDAAK.mjs.map +7 -0
  40. package/dist/lib/neutral/translations.mjs +19 -0
  41. package/dist/lib/neutral/translations.mjs.map +7 -0
  42. package/dist/lib/neutral/types/index.mjs +14 -0
  43. package/dist/lib/neutral/types/index.mjs.map +7 -0
  44. package/dist/types/src/PresenterPlugin.d.ts +1 -0
  45. package/dist/types/src/PresenterPlugin.d.ts.map +1 -1
  46. package/dist/types/src/PresenterPlugin.node.d.ts +4 -0
  47. package/dist/types/src/PresenterPlugin.node.d.ts.map +1 -0
  48. package/dist/types/src/PresenterPlugin.test.d.ts +2 -0
  49. package/dist/types/src/PresenterPlugin.test.d.ts.map +1 -0
  50. package/dist/types/src/PresenterPlugin.workerd.d.ts +4 -0
  51. package/dist/types/src/PresenterPlugin.workerd.d.ts.map +1 -0
  52. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  53. package/dist/types/src/capabilities/index.d.ts +4 -3
  54. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  55. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  56. package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +2 -5
  57. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  58. package/dist/types/src/components/Markdown/Panel.d.ts.map +1 -1
  59. package/dist/types/src/components/Markdown/Panel.stories.d.ts.map +1 -1
  60. package/dist/types/src/components/Markdown/Slide.d.ts +1 -1
  61. package/dist/types/src/components/Markdown/Slide.d.ts.map +1 -1
  62. package/dist/types/src/components/Markdown/Slide.stories.d.ts.map +1 -1
  63. package/dist/types/src/components/Markdown/theme.d.ts.map +1 -1
  64. package/dist/types/src/components/Presenter/Layout.d.ts +1 -5
  65. package/dist/types/src/components/Presenter/Layout.d.ts.map +1 -1
  66. package/dist/types/src/components/Presenter/Pager.d.ts.map +1 -1
  67. package/dist/types/src/components/Presenter/Pager.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts +6 -0
  69. package/dist/types/src/components/PresenterSettings/PresenterSettings.d.ts.map +1 -0
  70. package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts +23 -0
  71. package/dist/types/src/components/PresenterSettings/PresenterSettings.stories.d.ts.map +1 -0
  72. package/dist/types/src/components/PresenterSettings/index.d.ts +2 -0
  73. package/dist/types/src/components/PresenterSettings/index.d.ts.map +1 -0
  74. package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts +1 -5
  75. package/dist/types/src/components/RevealPlayer/RevealPlayer.d.ts.map +1 -1
  76. package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts +5 -10
  77. package/dist/types/src/components/RevealPlayer/RevealPlayer.stories.d.ts.map +1 -1
  78. package/dist/types/src/components/index.d.ts +2 -0
  79. package/dist/types/src/components/index.d.ts.map +1 -1
  80. package/dist/types/src/containers/CollectionPresenterArticle/CollectionPresenterArticle.d.ts +6 -0
  81. package/dist/types/src/containers/CollectionPresenterArticle/CollectionPresenterArticle.d.ts.map +1 -0
  82. package/dist/types/src/containers/CollectionPresenterArticle/index.d.ts +2 -0
  83. package/dist/types/src/containers/CollectionPresenterArticle/index.d.ts.map +1 -0
  84. package/dist/types/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.d.ts +1 -1
  85. package/dist/types/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.d.ts.map +1 -1
  86. package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts +1 -2
  87. package/dist/types/src/containers/DocumentPresenterContainer/index.d.ts.map +1 -1
  88. package/dist/types/src/containers/MarkdownSlide/MarkdownSlide.d.ts +1 -1
  89. package/dist/types/src/containers/MarkdownSlide/MarkdownSlide.d.ts.map +1 -1
  90. package/dist/types/src/containers/MarkdownSlide/index.d.ts +1 -2
  91. package/dist/types/src/containers/MarkdownSlide/index.d.ts.map +1 -1
  92. package/dist/types/src/containers/index.d.ts +1 -2
  93. package/dist/types/src/containers/index.d.ts.map +1 -1
  94. package/dist/types/src/index.d.ts +1 -2
  95. package/dist/types/src/index.d.ts.map +1 -1
  96. package/dist/types/src/meta.d.ts.map +1 -1
  97. package/dist/types/src/plugin.d.ts +3 -0
  98. package/dist/types/src/plugin.d.ts.map +1 -0
  99. package/dist/types/src/testing.d.ts.map +1 -1
  100. package/dist/types/src/translations.d.ts +4 -6
  101. package/dist/types/src/translations.d.ts.map +1 -1
  102. package/dist/types/src/types/PresenterCapabilities.d.ts +4 -0
  103. package/dist/types/src/types/PresenterCapabilities.d.ts.map +1 -0
  104. package/dist/types/src/{operations/definitions.d.ts → types/PresenterOperation.d.ts} +6 -5
  105. package/dist/types/src/types/PresenterOperation.d.ts.map +1 -0
  106. package/dist/types/src/types/Settings.d.ts +7 -0
  107. package/dist/types/src/types/Settings.d.ts.map +1 -0
  108. package/dist/types/src/types/index.d.ts +11 -0
  109. package/dist/types/src/types/index.d.ts.map +1 -0
  110. package/dist/types/src/useExitPresenter.d.ts +1 -1
  111. package/dist/types/src/useExitPresenter.d.ts.map +1 -1
  112. package/dist/types/tsconfig.tsbuildinfo +1 -1
  113. package/package.json +85 -37
  114. package/src/PresenterPlugin.node.ts +16 -0
  115. package/src/PresenterPlugin.test.ts +23 -0
  116. package/src/PresenterPlugin.tsx +5 -3
  117. package/src/PresenterPlugin.workerd.ts +11 -0
  118. package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +17 -30
  119. package/src/capabilities/index.ts +5 -3
  120. package/src/capabilities/react-surface.tsx +67 -0
  121. package/src/capabilities/{settings/settings.ts → settings.ts} +4 -4
  122. package/src/components/Markdown/Panel.stories.tsx +1 -1
  123. package/src/components/Markdown/Slide.stories.tsx +1 -1
  124. package/src/components/Markdown/Slide.tsx +2 -2
  125. package/src/components/PresenterSettings/PresenterSettings.stories.tsx +32 -0
  126. package/src/components/PresenterSettings/PresenterSettings.tsx +31 -0
  127. package/src/components/PresenterSettings/index.ts +5 -0
  128. package/src/components/RevealPlayer/RevealPlayer.stories.tsx +2 -2
  129. package/src/components/RevealPlayer/RevealPlayer.tsx +1 -3
  130. package/src/components/index.ts +4 -0
  131. package/src/containers/{CollectionPresenterContainer/CollectionPresenterContainer.tsx → CollectionPresenterArticle/CollectionPresenterArticle.tsx} +14 -7
  132. package/src/containers/CollectionPresenterArticle/index.ts +5 -0
  133. package/src/containers/DocumentPresenterContainer/DocumentPresenterContainer.tsx +3 -2
  134. package/src/containers/DocumentPresenterContainer/index.ts +1 -3
  135. package/src/containers/MarkdownSlide/MarkdownSlide.tsx +2 -2
  136. package/src/containers/MarkdownSlide/index.ts +1 -3
  137. package/src/containers/index.ts +1 -2
  138. package/src/index.ts +1 -3
  139. package/src/meta.ts +1 -0
  140. package/src/plugin.ts +9 -0
  141. package/src/testing.ts +6 -6
  142. package/src/translations.ts +4 -5
  143. package/src/types/PresenterCapabilities.ts +15 -0
  144. package/src/{operations/definitions.ts → types/PresenterOperation.ts} +5 -3
  145. package/src/types/Settings.ts +20 -0
  146. package/src/types/index.ts +21 -0
  147. package/src/useExitPresenter.ts +1 -2
  148. package/dist/lib/browser/CollectionPresenterContainer-JXB7MHRE.mjs.map +0 -7
  149. package/dist/lib/browser/DocumentPresenterContainer-ZGA4OUSU.mjs.map +0 -7
  150. package/dist/lib/browser/MarkdownSlide-JW66CKQF.mjs.map +0 -7
  151. package/dist/lib/browser/PresenterSettings-XNHQGQTS.mjs +0 -32
  152. package/dist/lib/browser/PresenterSettings-XNHQGQTS.mjs.map +0 -7
  153. package/dist/lib/browser/app-graph-builder-N6HFHTXF.mjs.map +0 -7
  154. package/dist/lib/browser/chunk-2HIBOSEH.mjs +0 -29
  155. package/dist/lib/browser/chunk-2HIBOSEH.mjs.map +0 -7
  156. package/dist/lib/browser/chunk-GK6SUI2J.mjs.map +0 -7
  157. package/dist/lib/browser/chunk-JIHV5GLM.mjs +0 -33
  158. package/dist/lib/browser/chunk-JIHV5GLM.mjs.map +0 -7
  159. package/dist/lib/browser/chunk-NPELNO5W.mjs.map +0 -7
  160. package/dist/lib/browser/chunk-PYBNNNNK.mjs.map +0 -7
  161. package/dist/lib/browser/index.mjs +0 -66
  162. package/dist/lib/browser/index.mjs.map +0 -7
  163. package/dist/lib/browser/meta.json +0 -1
  164. package/dist/lib/browser/operations/index.mjs +0 -9
  165. package/dist/lib/browser/react-surface-6H73FBMG.mjs +0 -68
  166. package/dist/lib/browser/react-surface-6H73FBMG.mjs.map +0 -7
  167. package/dist/lib/browser/settings-NWPZKMSH.mjs.map +0 -7
  168. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  169. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  170. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  171. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  172. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  173. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  174. package/dist/types/src/capabilities/settings/index.d.ts +0 -7
  175. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  176. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  177. package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts +0 -7
  178. package/dist/types/src/containers/CollectionPresenterContainer/CollectionPresenterContainer.d.ts.map +0 -1
  179. package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts +0 -3
  180. package/dist/types/src/containers/CollectionPresenterContainer/index.d.ts.map +0 -1
  181. package/dist/types/src/containers/PresenterSettings/PresenterSettings.d.ts +0 -8
  182. package/dist/types/src/containers/PresenterSettings/PresenterSettings.d.ts.map +0 -1
  183. package/dist/types/src/containers/PresenterSettings/index.d.ts +0 -3
  184. package/dist/types/src/containers/PresenterSettings/index.d.ts.map +0 -1
  185. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  186. package/dist/types/src/operations/index.d.ts +0 -2
  187. package/dist/types/src/operations/index.d.ts.map +0 -1
  188. package/dist/types/src/types.d.ts +0 -22
  189. package/dist/types/src/types.d.ts.map +0 -1
  190. package/src/capabilities/app-graph-builder/index.ts +0 -7
  191. package/src/capabilities/react-surface/index.ts +0 -7
  192. package/src/capabilities/react-surface/react-surface.tsx +0 -71
  193. package/src/capabilities/settings/index.ts +0 -7
  194. package/src/containers/CollectionPresenterContainer/index.ts +0 -7
  195. package/src/containers/PresenterSettings/PresenterSettings.tsx +0 -35
  196. package/src/containers/PresenterSettings/index.ts +0 -7
  197. package/src/operations/index.ts +0 -5
  198. package/src/types.ts +0 -35
  199. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  200. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  201. /package/dist/lib/{browser/operations → neutral}/index.mjs.map +0 -0
  202. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  203. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-presenter",
3
- "version": "0.8.4-main.7996785055",
3
+ "version": "0.8.4-main.8baae0fced",
4
4
  "description": "Braneframe presenter plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -8,26 +8,72 @@
8
8
  "type": "git",
9
9
  "url": "https://github.com/dxos/dxos"
10
10
  },
11
- "license": "MIT",
11
+ "license": "FSL-1.1-Apache-2.0",
12
12
  "author": "DXOS.org",
13
13
  "sideEffects": true,
14
14
  "type": "module",
15
+ "imports": {
16
+ "#capabilities": {
17
+ "source": "./src/capabilities/index.ts",
18
+ "types": "./dist/types/src/capabilities/index.d.ts",
19
+ "default": "./dist/lib/neutral/capabilities/index.mjs"
20
+ },
21
+ "#components": {
22
+ "source": "./src/components/index.ts",
23
+ "types": "./dist/types/src/components/index.d.ts",
24
+ "default": "./dist/lib/neutral/components/index.mjs"
25
+ },
26
+ "#containers": {
27
+ "source": "./src/containers/index.ts",
28
+ "types": "./dist/types/src/containers/index.d.ts",
29
+ "default": "./dist/lib/neutral/containers/index.mjs"
30
+ },
31
+ "#meta": {
32
+ "source": "./src/meta.ts",
33
+ "types": "./dist/types/src/meta.d.ts",
34
+ "default": "./dist/lib/neutral/meta.mjs"
35
+ },
36
+ "#plugin": {
37
+ "source": {
38
+ "workerd": "./src/PresenterPlugin.workerd.ts",
39
+ "node": "./src/PresenterPlugin.node.ts",
40
+ "default": "./src/PresenterPlugin.tsx"
41
+ },
42
+ "types": "./dist/types/src/PresenterPlugin.d.ts",
43
+ "workerd": "./dist/lib/neutral/PresenterPlugin.workerd.mjs",
44
+ "node": "./dist/lib/neutral/PresenterPlugin.node.mjs",
45
+ "default": "./dist/lib/neutral/PresenterPlugin.mjs"
46
+ },
47
+ "#testing": "./src/testing.ts",
48
+ "#translations": {
49
+ "source": "./src/translations.ts",
50
+ "types": "./dist/types/src/translations.d.ts",
51
+ "default": "./dist/lib/neutral/translations.mjs"
52
+ },
53
+ "#types": {
54
+ "source": "./src/types/index.ts",
55
+ "types": "./dist/types/src/types/index.d.ts",
56
+ "default": "./dist/lib/neutral/types/index.mjs"
57
+ }
58
+ },
15
59
  "exports": {
16
60
  ".": {
17
61
  "source": "./src/index.ts",
18
- "browser": "./dist/lib/browser/index.mjs",
19
- "types": "./dist/types/src/index.d.ts"
62
+ "types": "./dist/types/src/index.d.ts",
63
+ "default": "./dist/lib/neutral/index.mjs"
20
64
  },
21
- "./operations": {
22
- "source": "./src/operations/index.ts",
23
- "types": "./dist/types/src/operations/index.d.ts",
24
- "browser": "./dist/lib/browser/operations/index.mjs"
65
+ "./plugin": {
66
+ "source": "./src/plugin.ts",
67
+ "types": "./dist/types/src/plugin.d.ts",
68
+ "default": "./dist/lib/neutral/plugin.mjs"
69
+ },
70
+ "./translations": {
71
+ "source": "./src/translations.ts",
72
+ "types": "./dist/types/src/translations.d.ts",
73
+ "default": "./dist/lib/neutral/translations.mjs"
25
74
  }
26
75
  },
27
76
  "types": "dist/types/src/index.d.ts",
28
- "typesVersions": {
29
- "*": {}
30
- },
31
77
  "files": [
32
78
  "dist",
33
79
  "src"
@@ -45,25 +91,26 @@
45
91
  "remark-frontmatter": "^5.0.0",
46
92
  "remark-parse-frontmatter": "^1.0.3",
47
93
  "reveal.js": "^5.1.0",
48
- "@dxos/app-framework": "0.8.4-main.7996785055",
49
- "@dxos/app-toolkit": "0.8.4-main.7996785055",
50
- "@dxos/async": "0.8.4-main.7996785055",
51
- "@dxos/log": "0.8.4-main.7996785055",
52
- "@dxos/echo": "0.8.4-main.7996785055",
53
- "@dxos/operation": "0.8.4-main.7996785055",
54
- "@dxos/plugin-client": "0.8.4-main.7996785055",
55
- "@dxos/plugin-graph": "0.8.4-main.7996785055",
56
- "@dxos/plugin-deck": "0.8.4-main.7996785055",
57
- "@dxos/plugin-markdown": "0.8.4-main.7996785055",
58
- "@dxos/plugin-stack": "0.8.4-main.7996785055",
59
- "@dxos/react-client": "0.8.4-main.7996785055",
60
- "@dxos/react-ui-form": "0.8.4-main.7996785055",
61
- "@dxos/react-ui-mosaic": "0.8.4-main.7996785055",
62
- "@dxos/types": "0.8.4-main.7996785055",
63
- "@dxos/schema": "0.8.4-main.7996785055",
64
- "@dxos/react-ui-stack": "0.8.4-main.7996785055",
65
- "@dxos/util": "0.8.4-main.7996785055",
66
- "@dxos/effect": "0.8.4-main.7996785055"
94
+ "@dxos/app-framework": "0.8.4-main.8baae0fced",
95
+ "@dxos/app-toolkit": "0.8.4-main.8baae0fced",
96
+ "@dxos/async": "0.8.4-main.8baae0fced",
97
+ "@dxos/compute": "0.8.4-main.8baae0fced",
98
+ "@dxos/echo": "0.8.4-main.8baae0fced",
99
+ "@dxos/effect": "0.8.4-main.8baae0fced",
100
+ "@dxos/log": "0.8.4-main.8baae0fced",
101
+ "@dxos/plugin-deck": "0.8.4-main.8baae0fced",
102
+ "@dxos/plugin-graph": "0.8.4-main.8baae0fced",
103
+ "@dxos/plugin-client": "0.8.4-main.8baae0fced",
104
+ "@dxos/plugin-markdown": "0.8.4-main.8baae0fced",
105
+ "@dxos/plugin-stack": "0.8.4-main.8baae0fced",
106
+ "@dxos/react-ui-attention": "0.8.4-main.8baae0fced",
107
+ "@dxos/react-client": "0.8.4-main.8baae0fced",
108
+ "@dxos/react-ui-mosaic": "0.8.4-main.8baae0fced",
109
+ "@dxos/react-ui-form": "0.8.4-main.8baae0fced",
110
+ "@dxos/react-ui-stack": "0.8.4-main.8baae0fced",
111
+ "@dxos/schema": "0.8.4-main.8baae0fced",
112
+ "@dxos/types": "0.8.4-main.8baae0fced",
113
+ "@dxos/util": "0.8.4-main.8baae0fced"
67
114
  },
68
115
  "devDependencies": {
69
116
  "@effect-atom/atom-react": "^0.5.0",
@@ -74,11 +121,12 @@
74
121
  "effect": "3.20.0",
75
122
  "react": "~19.2.3",
76
123
  "react-dom": "~19.2.3",
77
- "vite": "^7.1.11",
78
- "@dxos/random": "0.8.4-main.7996785055",
79
- "@dxos/react-ui": "0.8.4-main.7996785055",
80
- "@dxos/storybook-utils": "0.8.4-main.7996785055",
81
- "@dxos/ui-theme": "0.8.4-main.7996785055"
124
+ "vite": "^8.0.13",
125
+ "@dxos/plugin-testing": "0.8.4-main.8baae0fced",
126
+ "@dxos/random": "0.8.4-main.8baae0fced",
127
+ "@dxos/react-ui": "0.8.4-main.8baae0fced",
128
+ "@dxos/storybook-utils": "0.8.4-main.8baae0fced",
129
+ "@dxos/ui-theme": "0.8.4-main.8baae0fced"
82
130
  },
83
131
  "peerDependencies": {
84
132
  "@effect-atom/atom-react": "^0.5.0",
@@ -86,8 +134,8 @@
86
134
  "effect": "3.20.0",
87
135
  "react": "~19.2.3",
88
136
  "react-dom": "~19.2.3",
89
- "@dxos/ui-theme": "0.8.4-main.7996785055",
90
- "@dxos/react-ui": "0.8.4-main.7996785055"
137
+ "@dxos/react-ui": "0.8.4-main.8baae0fced",
138
+ "@dxos/ui-theme": "0.8.4-main.8baae0fced"
91
139
  },
92
140
  "publishConfig": {
93
141
  "access": "public"
@@ -0,0 +1,16 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { Plugin } from '@dxos/app-framework';
6
+ import { AppPlugin } from '@dxos/app-toolkit';
7
+
8
+ import { AppGraphBuilder } from '#capabilities';
9
+ import { meta } from '#meta';
10
+
11
+ export const PresenterPlugin = Plugin.define(meta).pipe(
12
+ AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),
13
+ Plugin.make,
14
+ );
15
+
16
+ export default PresenterPlugin;
@@ -0,0 +1,23 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { describe, test } from 'vitest';
6
+
7
+ import { createComposerTestApp } from '@dxos/plugin-testing/harness';
8
+
9
+ import { PresenterPlugin } from '#plugin';
10
+
11
+ import { meta } from './meta';
12
+
13
+ const moduleId = (name: string) => `${meta.id}.module.${name}`;
14
+
15
+ describe('PresenterPlugin', () => {
16
+ test('modules activate on the expected events', async ({ expect }) => {
17
+ await using harness = await createComposerTestApp({
18
+ plugins: [PresenterPlugin()],
19
+ });
20
+
21
+ expect(harness.manager.getActive()).toContain(moduleId('AppGraphBuilder'));
22
+ });
23
+ });
@@ -5,9 +5,9 @@
5
5
  import { Plugin } from '@dxos/app-framework';
6
6
  import { AppPlugin } from '@dxos/app-toolkit';
7
7
 
8
- import { AppGraphBuilder, PresenterSettings, ReactSurface } from './capabilities';
9
- import { meta } from './meta';
10
- import { translations } from './translations';
8
+ import { AppGraphBuilder, PresenterSettings, ReactSurface } from '#capabilities';
9
+ import { meta } from '#meta';
10
+ import { translations } from '#translations';
11
11
 
12
12
  // TODO(burdon): Only scale markdown content.
13
13
  // TODO(burdon): Map stack content; Slide content type (e.g., markdown, sketch, IPFS image, table, etc.)
@@ -19,3 +19,5 @@ export const PresenterPlugin = Plugin.define(meta).pipe(
19
19
  AppPlugin.addTranslationsModule({ translations }),
20
20
  Plugin.make,
21
21
  );
22
+
23
+ export default PresenterPlugin;
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { Plugin } from '@dxos/app-framework';
6
+
7
+ import { meta } from '#meta';
8
+
9
+ export const PresenterPlugin = Plugin.define(meta).pipe(Plugin.make);
10
+
11
+ export default PresenterPlugin;
@@ -6,26 +6,17 @@ import * as Effect from 'effect/Effect';
6
6
  import * as Option from 'effect/Option';
7
7
 
8
8
  import { Capabilities, Capability } from '@dxos/app-framework';
9
- import {
10
- AppCapabilities,
11
- LayoutOperation,
12
- companionId,
13
- companionSegment,
14
- getObjectPathFromObject,
15
- getSpacePath,
16
- } from '@dxos/app-toolkit';
17
- import { Obj } from '@dxos/echo';
18
- import { Collection } from '@dxos/echo';
19
- import { Operation } from '@dxos/operation';
20
- import { DeckCapabilities } from '@dxos/plugin-deck';
21
- import { PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
22
- import { DeckOperation } from '@dxos/plugin-deck/operations';
9
+ import { AppCapabilities, AppNode, LayoutOperation, getObjectPathFromObject, getSpacePath } from '@dxos/app-toolkit';
10
+ import { Operation } from '@dxos/compute';
11
+ import { Collection, Obj } from '@dxos/echo';
12
+ import { DeckCapabilities, DeckOperation } from '@dxos/plugin-deck';
23
13
  import { GraphBuilder, type Node, NodeMatcher } from '@dxos/plugin-graph';
24
- import { Markdown } from '@dxos/plugin-markdown/types';
14
+ import { Markdown } from '@dxos/plugin-markdown';
15
+ import { linkedSegment } from '@dxos/react-ui-attention';
25
16
 
26
- import { meta } from '../../meta';
27
- import { PresenterCapabilities } from '../../types';
28
- import { PresenterOperation } from '../../operations';
17
+ import { meta } from '#meta';
18
+ import { PresenterOperation } from '#types';
19
+ import { PresenterCapabilities } from '#types';
29
20
 
30
21
  /** Match nodes that can be presented (Collection or Document). */
31
22
  const whenPresentable = (node: Node.Node) =>
@@ -38,7 +29,7 @@ export default Capability.makeModule(
38
29
  const capabilities = yield* Capability.Service;
39
30
 
40
31
  const extensions = yield* GraphBuilder.createExtension({
41
- id: `${meta.id}.root`,
32
+ id: 'root',
42
33
  // TODO(wittjosiah): This is a hack to work around presenter previously relying on "variant". Remove.
43
34
  match: whenPresentable,
44
35
  connector: (object, get) => {
@@ -52,16 +43,12 @@ export default Capability.makeModule(
52
43
  }
53
44
 
54
45
  return Effect.succeed([
55
- {
56
- id: companionSegment('presenter'),
46
+ AppNode.makeCompanion({
47
+ id: linkedSegment('presenter'),
48
+ label: 'Presenter',
49
+ icon: 'ph--presentation--regular',
57
50
  data: { type: meta.id, object },
58
- type: PLANK_COMPANION_TYPE,
59
- properties: {
60
- label: 'Presenter',
61
- icon: 'ph--presentation--regular',
62
- disposition: 'hidden',
63
- },
64
- },
51
+ }),
65
52
  ]);
66
53
  },
67
54
  actions: (object, get) => {
@@ -84,7 +71,7 @@ export default Capability.makeModule(
84
71
  data: Effect.fnUntraced(function* () {
85
72
  const deckState = yield* Capabilities.getAtomValue(DeckCapabilities.State);
86
73
  const deck = deckState.decks[deckState.activeDeck];
87
- const presenterId = companionId(objectPath, 'presenter');
74
+ const presenterId = `${objectPath}/${linkedSegment('presenter')}`;
88
75
  if (!deck?.fullscreen) {
89
76
  yield* Operation.invoke(DeckOperation.Adjust, {
90
77
  type: 'solo--fullscreen' as const,
@@ -97,7 +84,7 @@ export default Capability.makeModule(
97
84
  });
98
85
  }),
99
86
  properties: {
100
- label: ['toggle presentation label', { ns: meta.id }],
87
+ label: ['toggle-presentation.label', { ns: meta.id }],
101
88
  icon: 'ph--presentation--regular',
102
89
  disposition: 'list-item',
103
90
  keyBinding: {
@@ -2,6 +2,8 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './app-graph-builder';
6
- export * from './react-surface';
7
- export * from './settings';
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));
8
+ export const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));
9
+ export const PresenterSettings = Capability.lazy('PresenterSettings', () => import('./settings'));
@@ -0,0 +1,67 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+ import React from 'react';
7
+
8
+ import { Capabilities, Capability } from '@dxos/app-framework';
9
+ import { Surface, useSettingsState } from '@dxos/app-framework/ui';
10
+ import { AppSurface } from '@dxos/app-toolkit/ui';
11
+ import { Collection, Obj } from '@dxos/echo';
12
+ import { Markdown } from '@dxos/plugin-markdown';
13
+
14
+ import { PresenterSettings } from '#components';
15
+ import { CollectionPresenterArticle, DocumentPresenterContainer, MarkdownSlide } from '#containers';
16
+ import { meta } from '#meta';
17
+ import { type Settings } from '#types';
18
+
19
+ export default Capability.makeModule(() =>
20
+ Effect.succeed(
21
+ Capability.contributes(Capabilities.ReactSurface, [
22
+ Surface.create({
23
+ id: 'document',
24
+ position: 'first',
25
+ filter: AppSurface.predicate(
26
+ AppSurface.Article,
27
+ (data): data is AppSurface.ArticleData<{ type: typeof meta.id; object: Markdown.Document }> =>
28
+ !!data.subject &&
29
+ typeof data.subject === 'object' &&
30
+ 'type' in data.subject &&
31
+ 'object' in data.subject &&
32
+ data.subject.type === meta.id &&
33
+ Obj.instanceOf(Markdown.Document, data.subject.object),
34
+ ),
35
+ component: ({ data }) => <DocumentPresenterContainer document={data.subject.object} />,
36
+ }),
37
+ Surface.create({
38
+ id: 'collection',
39
+ position: 'first',
40
+ filter: AppSurface.predicate(
41
+ AppSurface.Article,
42
+ (data): data is AppSurface.ArticleData<{ type: typeof meta.id; object: Collection.Collection }> =>
43
+ !!data.subject &&
44
+ typeof data.subject === 'object' &&
45
+ 'type' in data.subject &&
46
+ 'object' in data.subject &&
47
+ data.subject.type === meta.id &&
48
+ Obj.instanceOf(Collection.Collection, data.subject.object),
49
+ ),
50
+ component: ({ role, data }) => <CollectionPresenterArticle role={role} subject={data.subject.object} />,
51
+ }),
52
+ Surface.create({
53
+ id: 'slide',
54
+ filter: AppSurface.object(AppSurface.Slide, Markdown.Document),
55
+ component: ({ data }) => <MarkdownSlide document={data.subject} />,
56
+ }),
57
+ Surface.create({
58
+ id: 'plugin-settings',
59
+ filter: AppSurface.settings(AppSurface.Article, meta.id),
60
+ component: ({ data: { subject } }) => {
61
+ const { settings, updateSettings } = useSettingsState<Settings.Settings>(subject.atom);
62
+ return <PresenterSettings settings={settings} onSettingsChange={updateSettings} />;
63
+ },
64
+ }),
65
+ ]),
66
+ ),
67
+ );
@@ -8,14 +8,14 @@ import { Capability } from '@dxos/app-framework';
8
8
  import { AppCapabilities } from '@dxos/app-toolkit';
9
9
  import { createKvsStore } from '@dxos/effect';
10
10
 
11
- import { meta } from '../../meta';
12
- import { PresenterCapabilities, PresenterSettingsSchema } from '../../types';
11
+ import { meta } from '#meta';
12
+ import { PresenterCapabilities, Settings } from '#types';
13
13
 
14
14
  export default Capability.makeModule(() =>
15
15
  Effect.sync(() => {
16
16
  const settingsAtom = createKvsStore({
17
17
  key: meta.id,
18
- schema: PresenterSettingsSchema,
18
+ schema: Settings.Settings,
19
19
  defaultValue: () => ({}),
20
20
  });
21
21
 
@@ -23,7 +23,7 @@ export default Capability.makeModule(() =>
23
23
  Capability.contributes(PresenterCapabilities.Settings, settingsAtom),
24
24
  Capability.contributes(AppCapabilities.Settings, {
25
25
  prefix: meta.id,
26
- schema: PresenterSettingsSchema,
26
+ schema: Settings.Settings,
27
27
  atom: settingsAtom,
28
28
  }),
29
29
  ];
@@ -7,7 +7,7 @@ import React from 'react';
7
7
 
8
8
  import { withLayout, withTheme } from '@dxos/react-ui/testing';
9
9
 
10
- import { createSlide } from '../../testing';
10
+ import { createSlide } from '#testing';
11
11
 
12
12
  import { Panel } from './Panel';
13
13
  import { Slide, type SlideProps } from './Slide';
@@ -6,7 +6,7 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
 
7
7
  import { withLayout, withTheme } from '@dxos/react-ui/testing';
8
8
 
9
- import { createSlide } from '../../testing';
9
+ import { createSlide } from '#testing';
10
10
 
11
11
  import { Slide } from './Slide';
12
12
 
@@ -2,6 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import 'highlight.js/styles/github.css';
6
+
5
7
  import { h } from 'hastscript';
6
8
  import React from 'react';
7
9
  import ReactMarkdown, { type Options as ReactMarkdownOptions } from 'react-markdown';
@@ -10,8 +12,6 @@ import rehypeHighlight from 'rehype-highlight';
10
12
  import remarkFrontmatter from 'remark-frontmatter';
11
13
  import remarkParseFrontmatter from 'remark-parse-frontmatter';
12
14
 
13
- import 'highlight.js/styles/github.css';
14
-
15
15
  import styles from './styles.css?raw';
16
16
  import { theme } from './theme';
17
17
 
@@ -0,0 +1,32 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+
7
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
8
+
9
+ import { translations } from '#translations';
10
+
11
+ import { PresenterSettings } from './PresenterSettings';
12
+
13
+ const meta = {
14
+ title: 'plugins/plugin-presenter/components/PresenterSettings',
15
+ component: PresenterSettings,
16
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
17
+ tags: ['settings'],
18
+ parameters: {
19
+ layout: 'fullscreen',
20
+ translations,
21
+ },
22
+ } satisfies Meta<typeof PresenterSettings>;
23
+
24
+ export default meta;
25
+
26
+ type Story = StoryObj<typeof meta>;
27
+
28
+ export const Default: Story = {
29
+ args: {
30
+ settings: { presentCollections: true },
31
+ },
32
+ };
@@ -0,0 +1,31 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { type AppSurface } from '@dxos/app-toolkit/ui';
8
+ import { useTranslation } from '@dxos/react-ui';
9
+ import { Settings as SettingsForm } from '@dxos/react-ui-form';
10
+
11
+ import { meta } from '#meta';
12
+ import { Settings } from '#types';
13
+
14
+ export type PresenterSettingsProps = AppSurface.SettingsArticleProps<Settings.Settings>;
15
+
16
+ export const PresenterSettings = ({ settings, onSettingsChange }: PresenterSettingsProps) => {
17
+ const { t } = useTranslation(meta.id);
18
+
19
+ return (
20
+ <SettingsForm.Viewport>
21
+ <SettingsForm.Section title={t('settings.title', { ns: meta.id })}>
22
+ <SettingsForm.FieldSet
23
+ readonly={!onSettingsChange}
24
+ schema={Settings.Settings}
25
+ values={settings}
26
+ onValuesChanged={(values) => onSettingsChange?.(() => values)}
27
+ />
28
+ </SettingsForm.Section>
29
+ </SettingsForm.Viewport>
30
+ );
31
+ };
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ export { PresenterSettings as default } from './PresenterSettings';
@@ -6,9 +6,9 @@ import { type Meta } from '@storybook/react-vite';
6
6
 
7
7
  import { withLayout, withTheme } from '@dxos/react-ui/testing';
8
8
 
9
- import CONTENT from '../../../testing/deck.md?raw';
10
- import { translations } from '../../translations';
9
+ import { translations } from '#translations';
11
10
 
11
+ import CONTENT from '../../../testing/deck.md?raw';
12
12
  import { RevealPlayer } from './RevealPlayer';
13
13
 
14
14
  // https://revealjs.com/markdown
@@ -3,9 +3,7 @@
3
3
  //
4
4
 
5
5
  import 'reveal.js/dist/reveal.css';
6
-
7
6
  import 'reveal.js/dist/theme/black.css';
8
-
9
7
  // https://github.com/highlightjs/highlight.js/tree/main/src/styles
10
8
  // import 'highlight.js/styles/github-dark.css';
11
9
  import 'highlight.js/styles/tokyo-night-dark.css';
@@ -154,7 +152,7 @@ export const RevealPlayer = composable<HTMLDivElement, RevealProps>(
154
152
  })}
155
153
  ref={forwardedRef}
156
154
  >
157
- <div role='none' className='relative aspect-video h-full w-full h-auto max-h-full overflow-hidden'>
155
+ <div className='relative aspect-video h-full w-full h-auto max-h-full overflow-hidden'>
158
156
  <div ref={deckDivRef} className='absolute inset-0 reveal'>
159
157
  {/* NOTE: Must be in head. */}
160
158
  <style>
@@ -2,6 +2,10 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { type ComponentType, lazy } from 'react';
6
+
5
7
  export * from './Markdown';
6
8
  export * from './Presenter';
7
9
  export * from './RevealPlayer';
10
+
11
+ export const PresenterSettings: ComponentType<any> = lazy(() => import('./PresenterSettings'));
@@ -5,17 +5,18 @@
5
5
  import React, { useContext, useState } from 'react';
6
6
 
7
7
  import { Surface } from '@dxos/app-framework/ui';
8
- import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
9
- import { type Collection } from '@dxos/echo';
8
+ import { AppSurface } from '@dxos/app-toolkit/ui';
9
+ import { type Collection, Obj } from '@dxos/echo';
10
10
  import { Panel } from '@dxos/react-ui';
11
11
 
12
- import { PageNumber, Pager, Layout as PresenterLayout } from '../../components';
13
- import { PresenterContext } from '../../types';
12
+ import { PageNumber, Pager, Layout as PresenterLayout } from '#components';
13
+ import { PresenterContext } from '#types';
14
+
14
15
  import { useExitPresenter } from '../../useExitPresenter';
15
16
 
16
- type CollectionPresenterContainerProps = SurfaceComponentProps<Collection.Collection>;
17
+ export type CollectionPresenterArticleProps = AppSurface.ObjectArticleProps<Collection.Collection>;
17
18
 
18
- export const CollectionPresenterContainer = ({ role, subject: collection }: CollectionPresenterContainerProps) => {
19
+ export const CollectionPresenterArticle = ({ role, subject: collection }: CollectionPresenterArticleProps) => {
19
20
  const [slide, setSlide] = useState(0);
20
21
  const { running } = useContext(PresenterContext);
21
22
  const handleExit = useExitPresenter(collection);
@@ -35,7 +36,13 @@ export const CollectionPresenterContainer = ({ role, subject: collection }: Coll
35
36
  />
36
37
  }
37
38
  >
38
- <Surface.Surface role='slide' data={{ subject: collection.objects[slide] }} />
39
+ <Surface.Surface
40
+ type={AppSurface.Slide}
41
+ data={{
42
+ subject: collection.objects[slide],
43
+ attendableId: Obj.getDXN(collection).toString(),
44
+ }}
45
+ />
39
46
  </PresenterLayout>
40
47
  </Panel.Content>
41
48
  </Panel.Root>
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ export { CollectionPresenterArticle as default } from './CollectionPresenterArticle';
@@ -4,10 +4,11 @@
4
4
 
5
5
  import React, { type FC } from 'react';
6
6
 
7
- import { type Markdown } from '@dxos/plugin-markdown/types';
7
+ import { type Markdown } from '@dxos/plugin-markdown';
8
8
  import { Panel } from '@dxos/react-ui';
9
9
 
10
- import { RevealPlayer } from '../../components';
10
+ import { RevealPlayer } from '#components';
11
+
11
12
  import { useExitPresenter } from '../../useExitPresenter';
12
13
 
13
14
  export const DocumentPresenterContainer: FC<{ document: Markdown.Document }> = ({ document }) => {