@dxos/plugin-markdown 0.8.4-main.abd8ff62ef → 0.8.4-main.bc2380dfbc

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 (254) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/EditableMarkdownCard-LXBXN3OW.mjs +32 -0
  4. package/dist/lib/neutral/EditableMarkdownCard-LXBXN3OW.mjs.map +7 -0
  5. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs +126 -0
  6. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs.map +7 -0
  7. package/dist/lib/neutral/MarkdownCard-INMBLUL4.mjs +102 -0
  8. package/dist/lib/neutral/MarkdownCard-INMBLUL4.mjs.map +7 -0
  9. package/dist/lib/neutral/MarkdownPlugin.mjs +10 -0
  10. package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
  11. package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
  12. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs +23 -0
  13. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs.map +7 -0
  14. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs +32 -0
  15. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
  16. package/dist/lib/neutral/anchor-sort-L4VCKDO6.mjs +32 -0
  17. package/dist/lib/neutral/anchor-sort-L4VCKDO6.mjs.map +7 -0
  18. package/dist/lib/neutral/app-graph-serializer-YI72EEVM.mjs +55 -0
  19. package/dist/lib/neutral/app-graph-serializer-YI72EEVM.mjs.map +7 -0
  20. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs +15 -0
  21. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs.map +7 -0
  22. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  23. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  24. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  25. package/dist/lib/neutral/capabilities/node.mjs +11 -0
  26. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-5JWFZVBC.mjs +8 -0
  28. package/dist/lib/neutral/chunk-5JWFZVBC.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  30. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  31. package/dist/lib/{browser/index.mjs → neutral/chunk-KDN4GKG2.mjs} +5 -42
  32. package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
  33. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-LXNSKCPD.mjs} +9 -15
  34. package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-LYUELXJH.mjs +57 -0
  36. package/dist/lib/neutral/chunk-LYUELXJH.mjs.map +7 -0
  37. package/dist/lib/neutral/chunk-SOLAMEK3.mjs +276 -0
  38. package/dist/lib/neutral/chunk-SOLAMEK3.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-YC2OAUM7.mjs +22 -0
  40. package/dist/lib/neutral/chunk-YC2OAUM7.mjs.map +7 -0
  41. package/dist/lib/neutral/comment-config-7VTHRUIZ.mjs +30 -0
  42. package/dist/lib/neutral/comment-config-7VTHRUIZ.mjs.map +7 -0
  43. package/dist/lib/neutral/components/index.mjs +370 -0
  44. package/dist/lib/neutral/components/index.mjs.map +7 -0
  45. package/dist/lib/neutral/containers/index.mjs +13 -0
  46. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  47. package/dist/lib/{browser/create-SRADQOTE.mjs → neutral/create-3PGJ2NEK.mjs} +5 -6
  48. package/dist/lib/neutral/create-3PGJ2NEK.mjs.map +7 -0
  49. package/dist/lib/{browser/create-markdown-A2ERCEOZ.mjs → neutral/create-markdown-5LS46GMH.mjs} +5 -6
  50. package/dist/lib/neutral/create-markdown-5LS46GMH.mjs.map +7 -0
  51. package/dist/lib/neutral/create-object-ZA6VXLJJ.mjs +27 -0
  52. package/dist/lib/neutral/create-object-ZA6VXLJJ.mjs.map +7 -0
  53. package/dist/lib/neutral/hooks/index.mjs +321 -0
  54. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  55. package/dist/lib/neutral/index.mjs +42 -0
  56. package/dist/lib/neutral/index.mjs.map +7 -0
  57. package/dist/lib/neutral/meta.json +1 -0
  58. package/dist/lib/neutral/meta.mjs +8 -0
  59. package/dist/lib/neutral/meta.mjs.map +7 -0
  60. package/dist/lib/{browser/open-ANTKMST5.mjs → neutral/open-WCYGBLAG.mjs} +5 -5
  61. package/dist/lib/neutral/open-WCYGBLAG.mjs.map +7 -0
  62. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
  63. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
  64. package/dist/lib/neutral/operations/index.mjs +8 -0
  65. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  66. package/dist/lib/neutral/plugin.mjs +16 -0
  67. package/dist/lib/neutral/plugin.mjs.map +7 -0
  68. package/dist/lib/neutral/react-surface-SCIL76V5.mjs +119 -0
  69. package/dist/lib/neutral/react-surface-SCIL76V5.mjs.map +7 -0
  70. package/dist/lib/{browser/scroll-to-anchor-4RJ6MQ7I.mjs → neutral/scroll-to-anchor-6FIOKVKT.mjs} +7 -8
  71. package/dist/lib/neutral/scroll-to-anchor-6FIOKVKT.mjs.map +7 -0
  72. package/dist/lib/neutral/set-view-mode-37RSPFEN.mjs +24 -0
  73. package/dist/lib/neutral/set-view-mode-37RSPFEN.mjs.map +7 -0
  74. package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
  75. package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
  76. package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
  77. package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
  78. package/dist/lib/neutral/testing.mjs +22 -0
  79. package/dist/lib/neutral/testing.mjs.map +7 -0
  80. package/dist/lib/neutral/translations.mjs +43 -0
  81. package/dist/lib/neutral/translations.mjs.map +7 -0
  82. package/dist/lib/neutral/types/index.mjs +16 -0
  83. package/dist/lib/neutral/types/index.mjs.map +7 -0
  84. package/dist/lib/{browser/update-markdown-CPM5KOQW.mjs → neutral/update-markdown-5EDRD3SH.mjs} +5 -5
  85. package/dist/lib/neutral/update-markdown-5EDRD3SH.mjs.map +7 -0
  86. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  87. package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -1
  88. package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
  89. package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  91. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  92. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  93. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/index.d.ts +15 -2
  95. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/node.d.ts +6 -0
  97. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/state.d.ts +2 -2
  99. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  100. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  101. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  102. package/dist/types/src/containers/{MarkdownCard/MarkdownEditableCard.d.ts → EditableMarkdownCard/EditableMarkdownCard.d.ts} +4 -4
  103. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
  104. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
  105. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
  106. package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.d.ts → MarkdownArticle/MarkdownArticle.d.ts} +3 -3
  107. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
  108. package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.stories.d.ts → MarkdownArticle/MarkdownArticle.stories.d.ts} +1 -1
  109. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
  110. package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
  111. package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
  112. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  113. package/dist/types/src/containers/MarkdownCard/index.d.ts +0 -1
  114. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -1
  115. package/dist/types/src/containers/index.d.ts +3 -3
  116. package/dist/types/src/containers/index.d.ts.map +1 -1
  117. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  118. package/dist/types/src/index.d.ts +2 -3
  119. package/dist/types/src/index.d.ts.map +1 -1
  120. package/dist/types/src/meta.d.ts.map +1 -1
  121. package/dist/types/src/operations/create-markdown.d.ts +2 -2
  122. package/dist/types/src/operations/create-markdown.d.ts.map +1 -1
  123. package/dist/types/src/operations/create.d.ts +2 -2
  124. package/dist/types/src/operations/create.d.ts.map +1 -1
  125. package/dist/types/src/operations/index.d.ts +0 -1
  126. package/dist/types/src/operations/index.d.ts.map +1 -1
  127. package/dist/types/src/operations/open.d.ts +2 -2
  128. package/dist/types/src/operations/open.d.ts.map +1 -1
  129. package/dist/types/src/operations/scroll-to-anchor.d.ts +2 -2
  130. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
  131. package/dist/types/src/operations/set-view-mode.d.ts +2 -2
  132. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -1
  133. package/dist/types/src/operations/update-markdown.d.ts +2 -2
  134. package/dist/types/src/operations/update-markdown.d.ts.map +1 -1
  135. package/dist/types/src/plugin.d.ts +4 -0
  136. package/dist/types/src/plugin.d.ts.map +1 -0
  137. package/dist/types/src/testing.d.ts +1 -0
  138. package/dist/types/src/testing.d.ts.map +1 -1
  139. package/dist/types/src/types/Markdown.d.ts +1 -0
  140. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  141. package/dist/types/src/types/{capabilities.d.ts → MarkdownCapabilities.d.ts} +10 -12
  142. package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
  143. package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
  144. package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
  145. package/dist/types/src/{operations/definitions.d.ts → types/MarkdownOperation.d.ts} +1 -1
  146. package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
  147. package/dist/types/src/types/index.d.ts +3 -2
  148. package/dist/types/src/types/index.d.ts.map +1 -1
  149. package/dist/types/src/util.d.ts +1 -1
  150. package/dist/types/src/util.d.ts.map +1 -1
  151. package/dist/types/tsconfig.tsbuildinfo +1 -1
  152. package/package.json +117 -87
  153. package/src/MarkdownPlugin.node.ts +2 -23
  154. package/src/MarkdownPlugin.test.ts +2 -2
  155. package/src/MarkdownPlugin.tsx +4 -50
  156. package/src/MarkdownPlugin.workerd.ts +19 -0
  157. package/src/blueprints/markdown-blueprint.ts +6 -6
  158. package/src/capabilities/app-graph-serializer.ts +3 -4
  159. package/src/capabilities/artifact-definition.ts +2 -3
  160. package/src/capabilities/comment-config.ts +32 -0
  161. package/src/capabilities/create-object.ts +30 -0
  162. package/src/capabilities/index.ts +3 -1
  163. package/src/capabilities/node.ts +2 -0
  164. package/src/capabilities/react-surface.tsx +5 -5
  165. package/src/capabilities/state.ts +4 -4
  166. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +1 -1
  167. package/src/components/MarkdownEditor/MarkdownEditor.tsx +32 -25
  168. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +1 -2
  169. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +1 -1
  170. package/src/containers/{MarkdownCard/MarkdownEditableCard.tsx → EditableMarkdownCard/EditableMarkdownCard.tsx} +5 -5
  171. package/src/containers/EditableMarkdownCard/index.ts +6 -0
  172. package/src/containers/{MarkdownContainer/MarkdownContainer.stories.tsx → MarkdownArticle/MarkdownArticle.stories.tsx} +3 -3
  173. package/src/containers/{MarkdownContainer/MarkdownContainer.tsx → MarkdownArticle/MarkdownArticle.tsx} +2 -2
  174. package/src/containers/MarkdownArticle/index.ts +6 -0
  175. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +2 -2
  176. package/src/containers/MarkdownCard/MarkdownCard.tsx +0 -1
  177. package/src/containers/MarkdownCard/index.ts +0 -1
  178. package/src/containers/index.ts +3 -5
  179. package/src/hooks/useLinkQuery.ts +9 -26
  180. package/src/index.ts +2 -8
  181. package/src/meta.ts +4 -1
  182. package/src/operations/create-markdown.ts +2 -3
  183. package/src/operations/create.conversations.json +1 -1
  184. package/src/operations/create.test.ts +4 -5
  185. package/src/operations/create.ts +2 -3
  186. package/src/operations/index.ts +0 -2
  187. package/src/operations/open.ts +2 -2
  188. package/src/operations/scroll-to-anchor.ts +2 -3
  189. package/src/operations/set-view-mode.ts +2 -3
  190. package/src/operations/update-markdown.ts +2 -2
  191. package/src/operations/update.conversations.json +1 -1
  192. package/src/operations/update.test.ts +4 -5
  193. package/src/plugin.ts +11 -0
  194. package/src/testing.ts +5 -3
  195. package/src/types/Markdown.ts +5 -0
  196. package/src/types/{capabilities.ts → MarkdownCapabilities.ts} +12 -12
  197. package/src/types/MarkdownEvents.ts +14 -0
  198. package/src/{operations/definitions.ts → types/MarkdownOperation.ts} +3 -1
  199. package/src/types/index.ts +3 -2
  200. package/src/util.tsx +1 -1
  201. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  202. package/dist/lib/browser/chunk-DNSKDWUL.mjs +0 -156
  203. package/dist/lib/browser/chunk-DNSKDWUL.mjs.map +0 -7
  204. package/dist/lib/browser/chunk-SW6IK2GJ.mjs +0 -124
  205. package/dist/lib/browser/chunk-SW6IK2GJ.mjs.map +0 -7
  206. package/dist/lib/browser/create-SRADQOTE.mjs.map +0 -7
  207. package/dist/lib/browser/create-markdown-A2ERCEOZ.mjs.map +0 -7
  208. package/dist/lib/browser/index.mjs.map +0 -7
  209. package/dist/lib/browser/meta.json +0 -1
  210. package/dist/lib/browser/open-ANTKMST5.mjs.map +0 -7
  211. package/dist/lib/browser/operations/index.mjs +0 -13
  212. package/dist/lib/browser/operations/index.mjs.map +0 -7
  213. package/dist/lib/browser/scroll-to-anchor-4RJ6MQ7I.mjs.map +0 -7
  214. package/dist/lib/browser/set-view-mode-2S7KKY7C.mjs +0 -25
  215. package/dist/lib/browser/set-view-mode-2S7KKY7C.mjs.map +0 -7
  216. package/dist/lib/browser/types/index.mjs +0 -15
  217. package/dist/lib/browser/update-markdown-CPM5KOQW.mjs.map +0 -7
  218. package/dist/lib/node-esm/blueprints/index.mjs +0 -51
  219. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  220. package/dist/lib/node-esm/chunk-MWYFGI2J.mjs +0 -157
  221. package/dist/lib/node-esm/chunk-MWYFGI2J.mjs.map +0 -7
  222. package/dist/lib/node-esm/chunk-ZE6QJ4S5.mjs +0 -125
  223. package/dist/lib/node-esm/chunk-ZE6QJ4S5.mjs.map +0 -7
  224. package/dist/lib/node-esm/create-6JGQPPQ6.mjs +0 -30
  225. package/dist/lib/node-esm/create-6JGQPPQ6.mjs.map +0 -7
  226. package/dist/lib/node-esm/create-markdown-KXSM2I2M.mjs +0 -22
  227. package/dist/lib/node-esm/create-markdown-KXSM2I2M.mjs.map +0 -7
  228. package/dist/lib/node-esm/index.mjs +0 -136
  229. package/dist/lib/node-esm/index.mjs.map +0 -7
  230. package/dist/lib/node-esm/meta.json +0 -1
  231. package/dist/lib/node-esm/open-GB6HNBHS.mjs +0 -21
  232. package/dist/lib/node-esm/open-GB6HNBHS.mjs.map +0 -7
  233. package/dist/lib/node-esm/operations/index.mjs +0 -14
  234. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  235. package/dist/lib/node-esm/scroll-to-anchor-UABP74RR.mjs +0 -49
  236. package/dist/lib/node-esm/scroll-to-anchor-UABP74RR.mjs.map +0 -7
  237. package/dist/lib/node-esm/set-view-mode-JEDC5ZL7.mjs +0 -26
  238. package/dist/lib/node-esm/set-view-mode-JEDC5ZL7.mjs.map +0 -7
  239. package/dist/lib/node-esm/types/index.mjs +0 -16
  240. package/dist/lib/node-esm/update-markdown-AXLYHK6S.mjs +0 -45
  241. package/dist/lib/node-esm/update-markdown-AXLYHK6S.mjs.map +0 -7
  242. package/dist/types/src/containers/MarkdownCard/MarkdownEditableCard.d.ts.map +0 -1
  243. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +0 -1
  244. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +0 -1
  245. package/dist/types/src/containers/MarkdownContainer/index.d.ts +0 -3
  246. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +0 -1
  247. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  248. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  249. package/dist/types/src/types/events.d.ts +0 -5
  250. package/dist/types/src/types/events.d.ts.map +0 -1
  251. package/src/containers/MarkdownContainer/index.ts +0 -6
  252. package/src/types/events.ts +0 -14
  253. /package/dist/lib/{browser/types/index.mjs.map → neutral/MarkdownPlugin.mjs.map} +0 -0
  254. /package/dist/lib/{node-esm/types → neutral/blueprints}/index.mjs.map +0 -0
@@ -0,0 +1,55 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/app-graph-serializer.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capabilities, Capability } from "@dxos/app-framework";
6
+ import { AppCapabilities } from "@dxos/app-toolkit";
7
+ import { Collection, Obj } from "@dxos/echo";
8
+ import { SpaceOperation } from "@dxos/plugin-space";
9
+ import { isSpace } from "@dxos/react-client/echo";
10
+ import { translations } from "#translations";
11
+ import { MarkdownOperation } from "#types";
12
+ import { Markdown } from "#types";
13
+ var app_graph_serializer_default = Capability.makeModule(Effect.fnUntraced(function* () {
14
+ const capabilities = yield* Capability.Service;
15
+ return Capability.contributes(AppCapabilities.AppGraphSerializer, [
16
+ {
17
+ inputType: Markdown.Document.typename,
18
+ outputType: "text/markdown",
19
+ // Reconcile with metadata serializers.
20
+ serialize: async (node) => {
21
+ const doc = node.data;
22
+ const content = await doc.content.load();
23
+ return {
24
+ name: doc.name || doc.fallbackName || translations[0]["en-US"][Markdown.Document.typename]["object-name.placeholder"],
25
+ data: content.content,
26
+ type: "text/markdown"
27
+ };
28
+ },
29
+ deserialize: async (data, ancestors) => {
30
+ const space = ancestors.find(isSpace);
31
+ const target = ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ?? space?.properties[Collection.Collection.typename]?.target;
32
+ if (!space || !target) {
33
+ return;
34
+ }
35
+ const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
36
+ const createResult = await invokePromise(MarkdownOperation.CreateMarkdown, {
37
+ name: data.name,
38
+ content: data.data
39
+ });
40
+ if (!createResult.data?.object) {
41
+ return void 0;
42
+ }
43
+ await invokePromise(SpaceOperation.AddObject, {
44
+ target,
45
+ object: createResult.data.object
46
+ });
47
+ return createResult.data.object;
48
+ }
49
+ }
50
+ ]);
51
+ }));
52
+ export {
53
+ app_graph_serializer_default as default
54
+ };
55
+ //# sourceMappingURL=app-graph-serializer-YI72EEVM.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-serializer.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Collection, Obj } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { isSpace } from '@dxos/react-client/echo';\n\nimport { translations } from '#translations';\nimport { MarkdownOperation } from '#types';\nimport { Markdown } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n // Get context for lazy capability access in callbacks.\n const capabilities = yield* Capability.Service;\n\n return Capability.contributes(AppCapabilities.AppGraphSerializer, [\n {\n inputType: Markdown.Document.typename,\n outputType: 'text/markdown',\n // Reconcile with metadata serializers.\n serialize: async (node) => {\n const doc = node.data;\n const content = await doc.content.load();\n return {\n name:\n doc.name ||\n doc.fallbackName ||\n translations[0]['en-US'][Markdown.Document.typename]['object-name.placeholder'],\n data: content.content,\n type: 'text/markdown',\n };\n },\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const target =\n ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ??\n space?.properties[Collection.Collection.typename]?.target;\n if (!space || !target) {\n return;\n }\n\n const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);\n const createResult = await invokePromise(MarkdownOperation.CreateMarkdown, {\n name: data.name,\n content: data.data,\n });\n if (!createResult.data?.object) {\n return undefined;\n }\n await invokePromise(SpaceOperation.AddObject, { target, object: createResult.data.object });\n\n return createResult.data.object;\n },\n },\n ]);\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,uBAAuB;AAChC,SAASC,YAAYC,WAAW;AAChC,SAASC,sBAAsB;AAC/B,SAASC,eAAe;AAExB,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AAEzB,IAAA,+BAAeR,WAAWS,WACjBC,kBAAW,aAAA;AAEhB,QAAMC,eAAe,OAAOX,WAAWY;AAEvC,SAAOZ,WAAWa,YAAYZ,gBAAgBa,oBAAoB;IAChE;MACEC,WAAWP,SAASQ,SAASC;MAC7BC,YAAY;;MAEZC,WAAW,OAAOC,SAAAA;AAChB,cAAMC,MAAMD,KAAKE;AACjB,cAAMC,UAAU,MAAMF,IAAIE,QAAQC,KAAI;AACtC,eAAO;UACLC,MACEJ,IAAII,QACJJ,IAAIK,gBACJpB,aAAa,CAAA,EAAG,OAAA,EAASE,SAASQ,SAASC,QAAQ,EAAE,yBAAA;UACvDK,MAAMC,QAAQA;UACdI,MAAM;QACR;MACF;MACAC,aAAa,OAAON,MAAMO,cAAAA;AACxB,cAAMC,QAAQD,UAAUE,KAAK1B,OAAAA;AAC7B,cAAM2B,SACJH,UAAUI,SAAS,CAACC,aAAa/B,IAAIgC,WAAWjC,WAAWA,YAAYgC,QAAAA,CAAAA,KACvEJ,OAAOM,WAAWlC,WAAWA,WAAWe,QAAQ,GAAGe;AACrD,YAAI,CAACF,SAAS,CAACE,QAAQ;AACrB;QACF;AAEA,cAAM,EAAEK,cAAa,IAAK1B,aAAa2B,IAAIvC,aAAawC,gBAAgB;AACxE,cAAMC,eAAe,MAAMH,cAAc9B,kBAAkBkC,gBAAgB;UACzEhB,MAAMH,KAAKG;UACXF,SAASD,KAAKA;QAChB,CAAA;AACA,YAAI,CAACkB,aAAalB,MAAMoB,QAAQ;AAC9B,iBAAOC;QACT;AACA,cAAMN,cAAcjC,eAAewC,WAAW;UAAEZ;UAAQU,QAAQF,aAAalB,KAAKoB;QAAO,CAAA;AAEzF,eAAOF,aAAalB,KAAKoB;MAC3B;IACF;GACD;AACH,CAAA,CAAA;",
6
+ "names": ["Effect", "Capabilities", "Capability", "AppCapabilities", "Collection", "Obj", "SpaceOperation", "isSpace", "translations", "MarkdownOperation", "Markdown", "makeModule", "fnUntraced", "capabilities", "Service", "contributes", "AppGraphSerializer", "inputType", "Document", "typename", "outputType", "serialize", "node", "doc", "data", "content", "load", "name", "fallbackName", "type", "deserialize", "ancestors", "space", "find", "target", "findLast", "ancestor", "instanceOf", "properties", "invokePromise", "get", "OperationInvoker", "createResult", "CreateMarkdown", "object", "undefined", "AddObject"]
7
+ }
@@ -0,0 +1,15 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/blueprint-definition.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { AppCapabilities } from "@dxos/app-toolkit";
7
+ import { MarkdownBlueprint } from "#blueprints";
8
+ var blueprintDefinition = Capability.makeModule(() => Effect.succeed([
9
+ Capability.contributes(AppCapabilities.BlueprintDefinition, MarkdownBlueprint)
10
+ ]));
11
+ var blueprint_definition_default = blueprintDefinition;
12
+ export {
13
+ blueprint_definition_default as default
14
+ };
15
+ //# sourceMappingURL=blueprint-definition-33OK2KUL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/blueprint-definition.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n// eslint-disable-next-line unused-imports/no-unused-imports\nimport type { Blueprint } from '@dxos/compute';\n\nimport { MarkdownBlueprint } from '#blueprints';\n\nconst blueprintDefinition = Capability.makeModule<\n [],\n Capability.Capability<typeof AppCapabilities.BlueprintDefinition>[]\n>(() => Effect.succeed([Capability.contributes(AppCapabilities.BlueprintDefinition, MarkdownBlueprint)]));\n\nexport default blueprintDefinition;\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAIhC,SAASC,yBAAyB;AAElC,IAAMC,sBAAsBH,WAAWI,WAGrC,MAAaC,eAAQ;EAACL,WAAWM,YAAYL,gBAAgBM,qBAAqBL,iBAAAA;CAAmB,CAAA;AAEvG,IAAA,+BAAeC;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "MarkdownBlueprint", "blueprintDefinition", "makeModule", "succeed", "contributes", "BlueprintDefinition"]
7
+ }
@@ -0,0 +1,8 @@
1
+ import {
2
+ markdown_blueprint_default
3
+ } from "../chunk-LXNSKCPD.mjs";
4
+ import "../chunk-J5LGTIGS.mjs";
5
+ export {
6
+ markdown_blueprint_default as MarkdownBlueprint
7
+ };
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,25 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/index.ts
4
+ import { Capability } from "@dxos/app-framework";
5
+ var AnchorSort = Capability.lazy("AnchorSort", () => import("../anchor-sort-L4VCKDO6.mjs"));
6
+ var AppGraphSerializer = Capability.lazy("AppGraphSerializer", () => import("../app-graph-serializer-YI72EEVM.mjs"));
7
+ var CommentConfig = Capability.lazy("CommentConfig", () => import("../comment-config-7VTHRUIZ.mjs"));
8
+ var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-ZA6VXLJJ.mjs"));
9
+ var BlueprintDefinition = Capability.lazy("BlueprintDefinition", () => import("../blueprint-definition-33OK2KUL.mjs"));
10
+ var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-2ARMPBGZ.mjs"));
11
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-SCIL76V5.mjs"));
12
+ var MarkdownSettings = Capability.lazy("MarkdownSettings", () => import("../settings-TDGDLCUR.mjs"));
13
+ var MarkdownState = Capability.lazy("MarkdownState", () => import("../state-5COCF5PN.mjs"));
14
+ export {
15
+ AnchorSort,
16
+ AppGraphSerializer,
17
+ BlueprintDefinition,
18
+ CommentConfig,
19
+ CreateObject,
20
+ MarkdownSettings,
21
+ MarkdownState,
22
+ OperationHandler,
23
+ ReactSurface
24
+ };
25
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n// eslint-disable-next-line unused-imports/no-unused-imports\nimport type { Blueprint, Operation, OperationHandlerSet } from '@dxos/compute';\n\nexport const AnchorSort = Capability.lazy('AnchorSort', () => import('./anchor-sort'));\nexport const AppGraphSerializer = Capability.lazy('AppGraphSerializer', () => import('./app-graph-serializer'));\nexport const CommentConfig = Capability.lazy('CommentConfig', () => import('./comment-config'));\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\nexport const MarkdownSettings = Capability.lazy('MarkdownSettings', () => import('./settings'));\nexport const MarkdownState = Capability.lazy('MarkdownState', () => import('./state'));\n"],
5
+ "mappings": ";;;AAIA,SAASA,kBAAkB;AAIpB,IAAMC,aAAaD,WAAWE,KAAK,cAAc,MAAM,OAAO,6BAAA,CAAA;AAC9D,IAAMC,qBAAqBH,WAAWE,KAAK,sBAAsB,MAAM,OAAO,sCAAA,CAAA;AAC9E,IAAME,gBAAgBJ,WAAWE,KAAK,iBAAiB,MAAM,OAAO,gCAAA,CAAA;AACpE,IAAMG,eAAeL,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMI,sBAAsBN,WAAWE,KAAK,uBAAuB,MAAM,OAAO,sCAAA,CAAA;AAChF,IAAMK,mBAAmBP,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;AAER,IAAMM,eAAeR,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMO,mBAAmBT,WAAWE,KAAK,oBAAoB,MAAM,OAAO,0BAAA,CAAA;AAC1E,IAAMQ,gBAAgBV,WAAWE,KAAK,iBAAiB,MAAM,OAAO,uBAAA,CAAA;",
6
+ "names": ["Capability", "AnchorSort", "lazy", "AppGraphSerializer", "CommentConfig", "CreateObject", "BlueprintDefinition", "OperationHandler", "ReactSurface", "MarkdownSettings", "MarkdownState"]
7
+ }
@@ -0,0 +1,11 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/node.ts
4
+ import { Capability } from "@dxos/app-framework";
5
+ var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-ZA6VXLJJ.mjs"));
6
+ var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-2ARMPBGZ.mjs"));
7
+ export {
8
+ CreateObject,
9
+ OperationHandler
10
+ };
11
+ //# sourceMappingURL=node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\n\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\n"],
5
+ "mappings": ";;;AAIA,SAASA,kBAAkB;AAGpB,IAAMC,eAAeD,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAElE,IAAMC,mBAAmBH,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;",
6
+ "names": ["Capability", "CreateObject", "lazy", "OperationHandler"]
7
+ }
@@ -0,0 +1,8 @@
1
+ // src/operations/index.ts
2
+ import { OperationHandlerSet } from "@dxos/compute";
3
+ var MarkdownOperationHandlerSet = OperationHandlerSet.lazy(() => import("./create-3PGJ2NEK.mjs"), () => import("./create-markdown-5LS46GMH.mjs"), () => import("./open-WCYGBLAG.mjs"), () => import("./scroll-to-anchor-6FIOKVKT.mjs"), () => import("./set-view-mode-37RSPFEN.mjs"), () => import("./update-markdown-5EDRD3SH.mjs"));
4
+
5
+ export {
6
+ MarkdownOperationHandlerSet
7
+ };
8
+ //# sourceMappingURL=chunk-5JWFZVBC.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const MarkdownOperationHandlerSet = OperationHandlerSet.lazy(\n () => import('./create'),\n () => import('./create-markdown'),\n () => import('./open'),\n () => import('./scroll-to-anchor'),\n () => import('./set-view-mode'),\n () => import('./update-markdown'),\n);\n"],
5
+ "mappings": ";AAIA,SAASA,2BAA2B;AAE7B,IAAMC,8BAA8BD,oBAAoBE,KAC7D,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,gCAAA,GACb,MAAM,OAAO,qBAAA,GACb,MAAM,OAAO,iCAAA,GACb,MAAM,OAAO,8BAAA,GACb,MAAM,OAAO,gCAAA,CAAA;",
6
+ "names": ["OperationHandlerSet", "MarkdownOperationHandlerSet", "lazy"]
7
+ }
@@ -0,0 +1,10 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
10
+ //# sourceMappingURL=chunk-J5LGTIGS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,31 +1,3 @@
1
- import {
2
- MarkdownCapabilities,
3
- MarkdownEvents,
4
- MarkdownStateSchema,
5
- Markdown_exports,
6
- Settings_exports
7
- } from "./chunk-SW6IK2GJ.mjs";
8
-
9
- // src/index.ts
10
- import { Plugin } from "@dxos/app-framework";
11
-
12
- // src/meta.ts
13
- import { trim } from "@dxos/util";
14
- var meta = {
15
- id: "org.dxos.plugin.markdown",
16
- name: "Markdown",
17
- description: trim`
18
- Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
19
- Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
20
- `,
21
- icon: "ph--text-aa--regular",
22
- iconHue: "indigo",
23
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
24
- screenshots: [
25
- "https://dxos.network/plugin-details-markdown-dark.png"
26
- ]
27
- };
28
-
29
1
  // src/util.tsx
30
2
  import { debounce } from "@dxos/async";
31
3
  import { Obj } from "@dxos/echo";
@@ -115,21 +87,12 @@ var serializer = {
115
87
  }
116
88
  };
117
89
 
118
- // src/index.ts
119
- var MarkdownPlugin = Plugin.lazy(meta, () => import("#plugin"));
120
90
  export {
121
- Markdown_exports as Markdown,
122
- MarkdownCapabilities,
123
- MarkdownEvents,
124
- MarkdownPlugin,
125
- MarkdownStateSchema,
126
- Settings_exports as Settings,
127
- getContentSnippet,
128
- getFallbackName,
129
91
  isEditorModel,
130
92
  isMarkdownProperties,
131
- meta,
132
- serializer,
133
- setFallbackName
93
+ getFallbackName,
94
+ getContentSnippet,
95
+ setFallbackName,
96
+ serializer
134
97
  };
135
- //# sourceMappingURL=index.mjs.map
98
+ //# sourceMappingURL=chunk-KDN4GKG2.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space';\n\nimport { Markdown } from '#types';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n * @deprecated Use Schema.instanceOf(Markdown.Document, data)\n */\n// TODO(burdon): Normalize types (from FilesPlugin).\nexport const isEditorModel = (data: any): data is { id: string; text: string } =>\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string';\n\nexport type MarkdownProperties = Record<string, any>;\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n (Obj.isObject(data) as boolean)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\n// Lines matching these patterns are skipped.\nconst skipPatterns = [\n /^!\\[/, // Image.\n /^---\\s*$/, // Horizontal rule.\n /^```/, // Code block fence.\n /^\\s*$/, // Empty or whitespace-only.\n];\n\n// Patterns to extract title text (first capture group is used).\nconst titlePatterns = [\n /^#{1,6}\\s+(.+)/, // Heading.\n];\n\n/**\n * Extracts a fallback name by scanning lines for the first heading or text fragment.\n */\nexport const getFallbackName = (content = ''): string => {\n const len = content.length;\n\n let i = 0;\n while (i < len) {\n // Find end of line.\n let lineEnd = i;\n while (lineEnd < len && content[lineEnd] !== '\\n') {\n lineEnd++;\n }\n\n const line = content.slice(i, lineEnd).trim();\n i = lineEnd + 1;\n\n // Skip lines matching skip patterns.\n if (skipPatterns.some((pattern) => pattern.test(line))) {\n continue;\n }\n\n // Check for title patterns.\n for (const pattern of titlePatterns) {\n const match = pattern.exec(line);\n if (match) {\n const text = match[1].replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n return text;\n }\n }\n }\n\n // Use line as plain text fallback.\n const maxLen = 32;\n const text = line.replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n if (text.length > maxLen) {\n const words = text.split(/\\s+/);\n let result = '';\n for (const word of words) {\n const next = result.length === 0 ? word : result + ' ' + word;\n if (next.length > maxLen) {\n break;\n }\n result = next;\n }\n\n return result + '…';\n }\n\n return text;\n }\n }\n\n return '';\n};\n\n// TODO(burdon): Option to strip Markdown.\nexport const getContentSnippet = (content = '', maxLines = 3) => {\n const abstract = content\n .split('\\n')\n .filter((line) => !line.startsWith('!'))\n .filter((line) => line.trim() !== '');\n\n return abstract.slice(0, maxLines).join('\\n') ?? '';\n};\n\nexport const setFallbackName = debounce((doc: Markdown.Document, content = '') => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n Obj.update(doc, (doc) => {\n doc.fallbackName = name;\n });\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<Markdown.Document> = {\n serialize: async ({ object }): Promise<string> => {\n const { content } = await object.content.load();\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return Markdown.make({ name, fallbackName, content });\n },\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["debounce", "Obj", "Markdown", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "isObject", "title", "nonTitleChars", "skipPatterns", "titlePatterns", "getFallbackName", "content", "len", "length", "i", "lineEnd", "line", "slice", "trim", "some", "pattern", "test", "match", "exec", "replaceAll", "maxLen", "words", "split", "result", "word", "next", "getContentSnippet", "maxLines", "abstract", "filter", "startsWith", "join", "setFallbackName", "doc", "name", "fallbackName", "update", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "make"]
7
+ }
@@ -1,23 +1,16 @@
1
- import {
2
- Create,
3
- Open,
4
- Update
5
- } from "../chunk-DNSKDWUL.mjs";
6
- import "../chunk-SW6IK2GJ.mjs";
7
-
8
1
  // src/blueprints/markdown-blueprint.ts
9
2
  import { Blueprint, Template } from "@dxos/compute";
10
3
  import { trim } from "@dxos/util";
11
- var BLUEPRINT_KEY = "org.dxos.blueprint.markdown";
4
+ import { Markdown, MarkdownOperation } from "#types";
12
5
  var make = () => Blueprint.make({
13
- key: BLUEPRINT_KEY,
6
+ key: Markdown.BLUEPRINT_KEY,
14
7
  name: "Markdown",
15
8
  description: "Work with markdown documents. Preferred over raw database operations.",
16
9
  tools: Blueprint.toolDefinitions({
17
10
  operations: [
18
- Create,
19
- Open,
20
- Update
11
+ MarkdownOperation.Create,
12
+ MarkdownOperation.Open,
13
+ MarkdownOperation.Update
21
14
  ]
22
15
  }),
23
16
  instructions: Template.make({
@@ -40,11 +33,12 @@ var make = () => Blueprint.make({
40
33
  })
41
34
  });
42
35
  var blueprint = {
43
- key: BLUEPRINT_KEY,
36
+ key: Markdown.BLUEPRINT_KEY,
44
37
  make
45
38
  };
46
39
  var markdown_blueprint_default = blueprint;
40
+
47
41
  export {
48
- markdown_blueprint_default as MarkdownBlueprint
42
+ markdown_blueprint_default
49
43
  };
50
- //# sourceMappingURL=index.mjs.map
44
+ //# sourceMappingURL=chunk-LXNSKCPD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/markdown-blueprint.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint, Template } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nimport { Markdown, MarkdownOperation } from '#types';\n\nconst make = () =>\n Blueprint.make({\n key: Markdown.BLUEPRINT_KEY,\n name: 'Markdown',\n description: 'Work with markdown documents. Preferred over raw database operations.',\n tools: Blueprint.toolDefinitions({\n operations: [MarkdownOperation.Create, MarkdownOperation.Open, MarkdownOperation.Update],\n }),\n instructions: Template.make({\n // TODO(wittjosiah): Move example to function input schema annotation.\n source: trim`\n {{! Markdown }}\n\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n\n Example:\n ${'```'}diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ${'```'}\n `,\n }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: Markdown.BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n"],
5
+ "mappings": ";AAIA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAErB,SAASC,UAAUC,yBAAyB;AAE5C,IAAMC,OAAO,MACXL,UAAUK,KAAK;EACbC,KAAKH,SAASI;EACdC,MAAM;EACNC,aAAa;EACbC,OAAOV,UAAUW,gBAAgB;IAC/BC,YAAY;MAACR,kBAAkBS;MAAQT,kBAAkBU;MAAMV,kBAAkBW;;EACnF,CAAA;EACAC,cAAcf,SAASI,KAAK;;IAE1BY,QAAQf;;;;;;;;UAQJ,KAAA;;;;;UAKA,KAAA;;EAEN,CAAA;AACF,CAAA;AAEF,IAAMgB,YAAkC;EACtCZ,KAAKH,SAASI;EACdF;AACF;AAEA,IAAA,6BAAea;",
6
+ "names": ["Blueprint", "Template", "trim", "Markdown", "MarkdownOperation", "make", "key", "BLUEPRINT_KEY", "name", "description", "tools", "toolDefinitions", "operations", "Create", "Open", "Update", "instructions", "source", "blueprint"]
7
+ }
@@ -0,0 +1,57 @@
1
+ // src/MarkdownPlugin.tsx
2
+ import { Plugin } from "@dxos/app-framework";
3
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
4
+ import { translations as editorTranslations } from "@dxos/react-ui-editor/translations";
5
+ import { Text } from "@dxos/schema";
6
+ import { AnchorSort, AppGraphSerializer, BlueprintDefinition, CommentConfig, CreateObject, MarkdownSettings, MarkdownState, OperationHandler, ReactSurface } from "#capabilities";
7
+ import { meta } from "#meta";
8
+ import { translations } from "#translations";
9
+ import { Markdown, MarkdownEvents } from "#types";
10
+ var MarkdownPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionModule({
11
+ activate: BlueprintDefinition
12
+ }), AppPlugin.addCommentConfigModule({
13
+ activate: CommentConfig
14
+ }), AppPlugin.addCreateObjectModule({
15
+ activate: CreateObject
16
+ }), AppPlugin.addOperationHandlerModule({
17
+ activate: OperationHandler
18
+ }), AppPlugin.addSchemaModule({
19
+ schema: [
20
+ Markdown.Document,
21
+ Text.Text
22
+ ]
23
+ }), AppPlugin.addSurfaceModule({
24
+ activate: ReactSurface,
25
+ firesBeforeActivation: [
26
+ MarkdownEvents.SetupExtensions
27
+ ]
28
+ }), AppPlugin.addTranslationsModule({
29
+ translations: [
30
+ ...translations,
31
+ ...editorTranslations
32
+ ]
33
+ }), Plugin.addModule({
34
+ activatesOn: AppActivationEvents.SetupSettings,
35
+ activate: MarkdownSettings
36
+ }), Plugin.addModule({
37
+ id: "state",
38
+ // TODO(wittjosiah): Does not integrate with settings store.
39
+ // Should this be a different event?
40
+ // Should settings store be renamed to be more generic?
41
+ activatesOn: AppActivationEvents.SetupSettings,
42
+ activate: MarkdownState
43
+ }), Plugin.addModule({
44
+ activatesOn: AppActivationEvents.AppGraphReady,
45
+ activate: AppGraphSerializer
46
+ }), Plugin.addModule({
47
+ // TODO(wittjosiah): More relevant event?
48
+ activatesOn: AppActivationEvents.AppGraphReady,
49
+ activate: AnchorSort
50
+ }), Plugin.make);
51
+ var MarkdownPlugin_default = MarkdownPlugin;
52
+
53
+ export {
54
+ MarkdownPlugin,
55
+ MarkdownPlugin_default
56
+ };
57
+ //# sourceMappingURL=chunk-LYUELXJH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/MarkdownPlugin.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor/translations';\nimport { Text } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n BlueprintDefinition,\n CommentConfig,\n CreateObject,\n MarkdownSettings,\n MarkdownState,\n OperationHandler,\n ReactSurface,\n} from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { Markdown, MarkdownEvents } from '#types';\n\nexport const MarkdownPlugin = Plugin.define(meta).pipe(\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addCommentConfigModule({ activate: CommentConfig }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({ schema: [Markdown.Document, Text.Text] }),\n AppPlugin.addSurfaceModule({\n activate: ReactSurface,\n firesBeforeActivation: [MarkdownEvents.SetupExtensions],\n }),\n AppPlugin.addTranslationsModule({ translations: [...translations, ...editorTranslations] }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.SetupSettings,\n activate: MarkdownSettings,\n }),\n Plugin.addModule({\n id: 'state',\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: AppActivationEvents.SetupSettings,\n activate: MarkdownState,\n }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n Plugin.addModule({\n // TODO(wittjosiah): More relevant event?\n activatesOn: AppActivationEvents.AppGraphReady,\n activate: AnchorSort,\n }),\n Plugin.make,\n);\n\nexport default MarkdownPlugin;\n"],
5
+ "mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,qBAAqBC,iBAAiB;AAC/C,SAASC,gBAAgBC,0BAA0B;AACnD,SAASC,YAAY;AAErB,SACEC,YACAC,oBACAC,qBACAC,eACAC,cACAC,kBACAC,eACAC,kBACAC,oBACK;AACP,SAASC,YAAY;AACrB,SAASZ,oBAAoB;AAC7B,SAASa,UAAUC,sBAAsB;AAElC,IAAMC,iBAAiBlB,OAAOmB,OAAOJ,IAAAA,EAAMK,KAChDlB,UAAUmB,6BAA6B;EAAEC,UAAUd;AAAoB,CAAA,GACvEN,UAAUqB,uBAAuB;EAAED,UAAUb;AAAc,CAAA,GAC3DP,UAAUsB,sBAAsB;EAAEF,UAAUZ;AAAa,CAAA,GACzDR,UAAUuB,0BAA0B;EAAEH,UAAUT;AAAiB,CAAA,GACjEX,UAAUwB,gBAAgB;EAAEC,QAAQ;IAACX,SAASY;IAAUvB,KAAKA;;AAAM,CAAA,GACnEH,UAAU2B,iBAAiB;EACzBP,UAAUR;EACVgB,uBAAuB;IAACb,eAAec;;AACzC,CAAA,GACA7B,UAAU8B,sBAAsB;EAAE7B,cAAc;OAAIA;OAAiBC;;AAAoB,CAAA,GACzFJ,OAAOiC,UAAU;EACfC,aAAajC,oBAAoBkC;EACjCb,UAAUX;AACZ,CAAA,GACAX,OAAOiC,UAAU;EACfG,IAAI;;;;EAIJF,aAAajC,oBAAoBkC;EACjCb,UAAUV;AACZ,CAAA,GACAZ,OAAOiC,UAAU;EACfC,aAAajC,oBAAoBoC;EACjCf,UAAUf;AACZ,CAAA,GACAP,OAAOiC,UAAU;;EAEfC,aAAajC,oBAAoBoC;EACjCf,UAAUhB;AACZ,CAAA,GACAN,OAAOsC,IAAI;AAGb,IAAA,yBAAepB;",
6
+ "names": ["Plugin", "AppActivationEvents", "AppPlugin", "translations", "editorTranslations", "Text", "AnchorSort", "AppGraphSerializer", "BlueprintDefinition", "CommentConfig", "CreateObject", "MarkdownSettings", "MarkdownState", "OperationHandler", "ReactSurface", "meta", "Markdown", "MarkdownEvents", "MarkdownPlugin", "define", "pipe", "addBlueprintDefinitionModule", "activate", "addCommentConfigModule", "addCreateObjectModule", "addOperationHandlerModule", "addSchemaModule", "schema", "Document", "addSurfaceModule", "firesBeforeActivation", "SetupExtensions", "addTranslationsModule", "addModule", "activatesOn", "SetupSettings", "id", "AppGraphReady", "make"]
7
+ }