@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
@@ -8,21 +8,20 @@ import * as Effect from 'effect/Effect';
8
8
  import { MemoizedAiService } from '@dxos/ai/testing';
9
9
  import { SpaceProperties } from '@dxos/client-protocol';
10
10
  import { Blueprint, Operation } from '@dxos/compute';
11
- import { Database, Feed, Obj, Query, Ref } from '@dxos/echo';
12
- import { Collection } from '@dxos/echo';
11
+ import { Collection, Database, Feed, Obj, Query, Ref } from '@dxos/echo';
13
12
  import { TestHelpers } from '@dxos/effect/testing';
14
13
  import { AgentService } from '@dxos/functions-runtime';
15
14
  import { AssistantTestLayer } from '@dxos/functions-runtime/testing';
16
15
  import { invariant } from '@dxos/invariant';
17
16
  import { ObjectId } from '@dxos/keys';
18
- import { Markdown } from '@dxos/plugin-markdown/types';
17
+ import { Markdown } from '@dxos/plugin-markdown';
19
18
  import { HasSubject } from '@dxos/types';
20
19
  import { trim } from '@dxos/util';
21
20
 
22
21
  import { WithProperties } from '#testing';
23
22
 
24
23
  import MarkdownBlueprint from '../blueprints/markdown-blueprint';
25
- import { Update } from './definitions';
24
+ import { MarkdownOperation } from '../types';
26
25
  import { MarkdownOperationHandlerSet } from './index';
27
26
 
28
27
  ObjectId.dangerouslyDisableRandomness();
@@ -53,7 +52,7 @@ describe('update', () => {
53
52
  });
54
53
  yield* Database.add(doc);
55
54
 
56
- yield* Operation.invoke(Update, {
55
+ yield* Operation.invoke(MarkdownOperation.Update, {
57
56
  doc: Ref.make(doc),
58
57
  edits: [{ oldString: 'Founders', newString: '# Founders' }],
59
58
  });
package/src/plugin.ts ADDED
@@ -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 MarkdownPlugin = Plugin.lazy(meta, () => import('#plugin'));
10
+
11
+ export { MarkdownOperationHandlerSet } from './operations';
package/src/testing.ts CHANGED
@@ -6,9 +6,11 @@ import * as Toolkit from '@effect/ai/Toolkit';
6
6
  import * as Effect from 'effect/Effect';
7
7
 
8
8
  import { SpaceProperties } from '@dxos/client-protocol';
9
- import { Obj, Ref } from '@dxos/echo';
10
- import { Database } from '@dxos/echo';
11
- import { Collection } from '@dxos/echo';
9
+ import { Collection, Database, Obj, Ref } from '@dxos/echo';
10
+
11
+ // Eager re-export of `MarkdownPlugin`. See `@dxos/plugin-testing/src/core.ts`
12
+ // for the rationale.
13
+ export * from './MarkdownPlugin';
12
14
 
13
15
  // TODO(wittjosiah): Factor out.
14
16
  export const WithProperties = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R | Database.Service> =>
@@ -4,10 +4,13 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
+ import { BlueprintsAnnotation, GraphPropsAnnotation } from '@dxos/app-toolkit';
7
8
  import { Annotation, Obj, Ref, Type } from '@dxos/echo';
8
9
  import { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';
9
10
  import { Text } from '@dxos/schema';
10
11
 
12
+ export const BLUEPRINT_KEY = 'org.dxos.blueprint.markdown';
13
+
11
14
  // Re-export Settings as merged const/type (not as namespace).
12
15
  import * as SettingsModule from './Settings';
13
16
  export const Settings = SettingsModule.Settings;
@@ -32,6 +35,8 @@ export const Document = Schema.Struct({
32
35
  icon: 'ph--text-aa--regular',
33
36
  hue: 'indigo',
34
37
  }),
38
+ BlueprintsAnnotation.set([BLUEPRINT_KEY]),
39
+ GraphPropsAnnotation.set({ managesAutofocus: true }),
35
40
  );
36
41
 
37
42
  export type Document = Schema.Schema.Type<typeof Document>;
@@ -2,6 +2,8 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ // @import-as-namespace
6
+
5
7
  import { type EditorView } from '@codemirror/view';
6
8
  import { type Atom } from '@effect-atom/atom-react';
7
9
  import * as Schema from 'effect/Schema';
@@ -16,7 +18,7 @@ import type * as Markdown from './Markdown';
16
18
  import { type MarkdownExtensionProvider } from './types';
17
19
 
18
20
  /** Schema for persisted markdown state. */
19
- export const MarkdownStateSchema = Schema.mutable(
21
+ export const StateSchema = Schema.mutable(
20
22
  Schema.Struct({
21
23
  viewMode: Schema.Record({ key: Schema.String, value: Schema.String }),
22
24
  }),
@@ -34,18 +36,16 @@ export type EditorViewRegistry = {
34
36
  get: (attendableId: string) => EditorViewEntry | undefined;
35
37
  };
36
38
 
37
- export namespace MarkdownCapabilities {
38
- export const Settings = Capability.make<Atom.Writable<Markdown.Settings>>(`${meta.id}.capability.settings`);
39
+ export const Settings = Capability.make<Atom.Writable<Markdown.Settings>>(`${meta.id}.capability.settings`);
39
40
 
40
- /** Persisted state atom for view mode per document. */
41
- export const State = Capability.make<Atom.Writable<MarkdownState>>(`${meta.id}.capability.state`);
41
+ /** Persisted state atom for view mode per document. */
42
+ export const State = Capability.make<Atom.Writable<MarkdownState>>(`${meta.id}.capability.state`);
42
43
 
43
- /** Editor state store for cursor positions, scroll state, etc. */
44
- export const EditorState = Capability.make<EditorStateStore>(`${meta.id}.capability.editor-state`);
44
+ /** Editor state store for cursor positions, scroll state, etc. */
45
+ export const EditorState = Capability.make<EditorStateStore>(`${meta.id}.capability.editor-state`);
45
46
 
46
- /** Registry of active EditorView instances keyed by attendable ID. */
47
- export const EditorViews = Capability.make<EditorViewRegistry>(`${meta.id}.capability.editor-views`);
47
+ /** Registry of active EditorView instances keyed by attendable ID. */
48
+ export const EditorViews = Capability.make<EditorViewRegistry>(`${meta.id}.capability.editor-views`);
48
49
 
49
- // TODO(burdon): Move to ./types (external API)?
50
- export const Extensions = Capability.make<MarkdownExtensionProvider[]>(`${meta.id}.capability.extensions`);
51
- }
50
+ // TODO(burdon): Move to ./types (external API)?
51
+ export const Extensions = Capability.make<MarkdownExtensionProvider[]>(`${meta.id}.capability.extensions`);
@@ -0,0 +1,14 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import { type ActivationEvent } from '@dxos/app-framework';
8
+ import { AppActivationEvents } from '@dxos/app-toolkit';
9
+
10
+ import { meta } from '#meta';
11
+
12
+ export const SetupExtensions: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(
13
+ `${meta.id}.event.setup-extensions`,
14
+ );
@@ -2,6 +2,8 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ // @import-as-namespace
6
+
5
7
  import * as Schema from 'effect/Schema';
6
8
 
7
9
  import { Capability } from '@dxos/app-framework';
@@ -12,7 +14,7 @@ import { trim } from '@dxos/util';
12
14
 
13
15
  import { meta } from '#meta';
14
16
 
15
- import { Markdown } from '../types';
17
+ import * as Markdown from './Markdown';
16
18
 
17
19
  const MARKDOWN_OPERATION = `${meta.id}.operation`;
18
20
 
@@ -2,9 +2,10 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- export * from './capabilities';
6
- export * from './events';
7
5
  export * from './types';
8
6
 
9
7
  export * as Markdown from './Markdown';
8
+ export * as MarkdownCapabilities from './MarkdownCapabilities';
9
+ export * as MarkdownEvents from './MarkdownEvents';
10
+ export * as MarkdownOperation from './MarkdownOperation';
10
11
  export * as Settings from './Settings';
package/src/util.tsx CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { debounce } from '@dxos/async';
6
6
  import { Obj } from '@dxos/echo';
7
- import { type TypedObjectSerializer } from '@dxos/plugin-space/types';
7
+ import { type TypedObjectSerializer } from '@dxos/plugin-space';
8
8
 
9
9
  import { Markdown } from '#types';
10
10
 
@@ -1,7 +0,0 @@
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 { Create, Open, Update } from '../operations/definitions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.markdown';\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Markdown',\n description: 'Work with markdown documents. Preferred over raw database operations.',\n tools: Blueprint.toolDefinitions({ operations: [Create, Open, Update] }),\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: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAIrB,IAAMC,gBAAgB;AAEtB,IAAMC,OAAO,MACXC,UAAUD,KAAK;EACbE,KAAKH;EACLI,MAAM;EACNC,aAAa;EACbC,OAAOJ,UAAUK,gBAAgB;IAAEC,YAAY;MAACC;MAAQC;MAAMC;;EAAQ,CAAA;EACtEC,cAAcC,SAASZ,KAAK;;IAE1Ba,QAAQC;;;;;;;;UAQJ,KAAA;;;;;UAKA,KAAA;;EAEN,CAAA;AACF,CAAA;AAEF,IAAMC,YAAkC;EACtCb,KAAKH;EACLC;AACF;AAEA,IAAA,6BAAee;",
6
- "names": ["Blueprint", "Template", "trim", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "tools", "toolDefinitions", "operations", "Create", "Open", "Update", "instructions", "Template", "source", "trim", "blueprint"]
7
- }
@@ -1,156 +0,0 @@
1
- import {
2
- Markdown_exports,
3
- __export
4
- } from "./chunk-SW6IK2GJ.mjs";
5
-
6
- // src/operations/definitions.ts
7
- var definitions_exports = {};
8
- __export(definitions_exports, {
9
- Create: () => Create,
10
- CreateMarkdown: () => CreateMarkdown,
11
- Open: () => Open,
12
- ScrollToAnchor: () => ScrollToAnchor,
13
- SetViewMode: () => SetViewMode,
14
- Update: () => Update
15
- });
16
- import * as Schema from "effect/Schema";
17
- import { Capability } from "@dxos/app-framework";
18
- import { Operation } from "@dxos/compute";
19
- import { Database, Ref } from "@dxos/echo";
20
- import { EditorViewMode } from "@dxos/ui-editor/types";
21
- import { trim } from "@dxos/util";
22
- import { meta } from "#meta";
23
- var MARKDOWN_OPERATION = `${meta.id}.operation`;
24
- var Edit = Schema.Struct({
25
- oldString: Schema.String.annotations({
26
- description: "The text to find in the document."
27
- }),
28
- newString: Schema.String.annotations({
29
- description: "The text to replace it with."
30
- }),
31
- replaceAll: Schema.optional(Schema.Boolean).annotations({
32
- description: "If true, replaces all occurrences. Defaults to false (first occurrence only)."
33
- })
34
- });
35
- var Create = Operation.make({
36
- meta: {
37
- key: "org.dxos.function.markdown.create",
38
- name: "Create",
39
- description: "Creates a new markdown document and adds it to the space."
40
- },
41
- input: Schema.Struct({
42
- name: Schema.String,
43
- content: Schema.String
44
- }),
45
- output: Schema.Struct({
46
- id: Schema.String.annotations({
47
- description: "The DXN of the created document."
48
- })
49
- }),
50
- services: [
51
- Database.Service
52
- ]
53
- });
54
- var CreateMarkdown = Operation.make({
55
- meta: {
56
- key: `${MARKDOWN_OPERATION}.create`,
57
- name: "Create Markdown Document"
58
- },
59
- services: [
60
- Capability.Service
61
- ],
62
- input: Schema.Struct({
63
- name: Schema.optional(Schema.String),
64
- content: Schema.optional(Schema.String)
65
- }),
66
- output: Schema.Struct({
67
- object: Markdown_exports.Document
68
- })
69
- });
70
- var Open = Operation.make({
71
- meta: {
72
- key: "org.dxos.function.markdown.open",
73
- name: "Open",
74
- description: "Opens and reads the contents of a new markdown document."
75
- },
76
- input: Schema.Struct({
77
- doc: Ref.Ref(Markdown_exports.Document).annotations({
78
- description: "The ID of the markdown document."
79
- })
80
- }),
81
- output: Schema.Struct({
82
- content: Schema.String
83
- }),
84
- services: [
85
- Database.Service
86
- ]
87
- });
88
- var ScrollToAnchor = Operation.make({
89
- meta: {
90
- key: `${MARKDOWN_OPERATION}.scroll-to-anchor`,
91
- name: "Scroll To Anchor"
92
- },
93
- services: [
94
- Capability.Service
95
- ],
96
- input: Schema.Struct({
97
- subject: Schema.String.annotations({
98
- description: "Attendable ID of the markdown editor."
99
- }),
100
- cursor: Schema.String.annotations({
101
- description: "Cursor position to scroll to."
102
- }),
103
- ref: Schema.optional(Schema.String.annotations({
104
- description: "Reference ID (e.g. thread ID)."
105
- }))
106
- }),
107
- output: Schema.Void
108
- });
109
- var SetViewMode = Operation.make({
110
- meta: {
111
- key: `${MARKDOWN_OPERATION}.set-view-mode`,
112
- name: "Set View Mode"
113
- },
114
- services: [
115
- Capability.Service
116
- ],
117
- input: Schema.Struct({
118
- id: Schema.String,
119
- viewMode: EditorViewMode
120
- }),
121
- output: Schema.Void
122
- });
123
- var Update = Operation.make({
124
- meta: {
125
- key: "org.dxos.function.markdown.update",
126
- name: "Update",
127
- description: trim`
128
- Applies a set of edits to the markdown document.
129
- `
130
- },
131
- input: Schema.Struct({
132
- doc: Ref.Ref(Markdown_exports.Document).annotations({
133
- description: "The ID of the markdown document."
134
- }),
135
- edits: Schema.Array(Edit).annotations({
136
- description: "The edits to apply to the document. Each edit finds oldString and replaces it with newString."
137
- })
138
- }),
139
- output: Schema.Struct({
140
- newContent: Schema.String
141
- }),
142
- services: [
143
- Database.Service
144
- ]
145
- });
146
-
147
- export {
148
- Create,
149
- CreateMarkdown,
150
- Open,
151
- ScrollToAnchor,
152
- SetViewMode,
153
- Update,
154
- definitions_exports
155
- };
156
- //# sourceMappingURL=chunk-DNSKDWUL.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/definitions.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\nimport { Database, Ref } from '@dxos/echo';\nimport { EditorViewMode } from '@dxos/ui-editor/types';\nimport { trim } from '@dxos/util';\n\nimport { meta } from '#meta';\n\nimport { Markdown } from '../types';\n\nconst MARKDOWN_OPERATION = `${meta.id}.operation`;\n\nconst Edit = Schema.Struct({\n oldString: Schema.String.annotations({\n description: 'The text to find in the document.',\n }),\n newString: Schema.String.annotations({\n description: 'The text to replace it with.',\n }),\n replaceAll: Schema.optional(Schema.Boolean).annotations({\n description: 'If true, replaces all occurrences. Defaults to false (first occurrence only).',\n }),\n});\n\nexport const Create = Operation.make({\n meta: {\n key: 'org.dxos.function.markdown.create',\n name: 'Create',\n description: 'Creates a new markdown document and adds it to the space.',\n },\n input: Schema.Struct({\n name: Schema.String,\n content: Schema.String,\n }),\n output: Schema.Struct({\n id: Schema.String.annotations({\n description: 'The DXN of the created document.',\n }),\n }),\n services: [Database.Service],\n});\n\nexport const CreateMarkdown = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}.create`, name: 'Create Markdown Document' },\n services: [Capability.Service],\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Markdown.Document,\n }),\n});\n\nexport const Open = Operation.make({\n meta: {\n key: 'org.dxos.function.markdown.open',\n name: 'Open',\n description: 'Opens and reads the contents of a new markdown document.',\n },\n input: Schema.Struct({\n doc: Ref.Ref(Markdown.Document).annotations({\n description: 'The ID of the markdown document.',\n }),\n }),\n output: Schema.Struct({\n content: Schema.String,\n }),\n services: [Database.Service],\n});\n\nexport const ScrollToAnchor = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}.scroll-to-anchor`, name: 'Scroll To Anchor' },\n services: [Capability.Service],\n input: Schema.Struct({\n subject: Schema.String.annotations({ description: 'Attendable ID of the markdown editor.' }),\n cursor: Schema.String.annotations({ description: 'Cursor position to scroll to.' }),\n ref: Schema.optional(Schema.String.annotations({ description: 'Reference ID (e.g. thread ID).' })),\n }),\n output: Schema.Void,\n});\n\n// TODO(wittjosiah): This appears to be unused.\nexport const SetViewMode = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}.set-view-mode`, name: 'Set View Mode' },\n services: [Capability.Service],\n input: Schema.Struct({\n id: Schema.String,\n viewMode: EditorViewMode,\n }),\n output: Schema.Void,\n});\n\nexport const Update = Operation.make({\n meta: {\n key: 'org.dxos.function.markdown.update',\n name: 'Update',\n description: trim`\n Applies a set of edits to the markdown document.\n `,\n },\n input: Schema.Struct({\n doc: Ref.Ref(Markdown.Document).annotations({\n description: 'The ID of the markdown document.',\n }),\n edits: Schema.Array(Edit).annotations({\n description: 'The edits to apply to the document. Each edit finds oldString and replaces it with newString.',\n }),\n }),\n output: Schema.Struct({\n newContent: Schema.String,\n }),\n services: [Database.Service],\n});\n"],
5
- "mappings": ";;;;;;AAAA;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,WAAW;AAC9B,SAASC,sBAAsB;AAC/B,SAASC,YAAY;AAErB,SAASC,YAAY;AAIrB,IAAMC,qBAAqB,GAAGC,KAAKC,EAAE;AAErC,IAAMC,OAAcC,cAAO;EACzBC,WAAkBC,cAAOC,YAAY;IACnCC,aAAa;EACf,CAAA;EACAC,WAAkBH,cAAOC,YAAY;IACnCC,aAAa;EACf,CAAA;EACAE,YAAmBC,gBAAgBC,cAAO,EAAEL,YAAY;IACtDC,aAAa;EACf,CAAA;AACF,CAAA;AAEO,IAAMK,SAASC,UAAUC,KAAK;EACnCd,MAAM;IACJe,KAAK;IACLC,MAAM;IACNT,aAAa;EACf;EACAU,OAAcd,cAAO;IACnBa,MAAaX;IACba,SAAgBb;EAClB,CAAA;EACAc,QAAehB,cAAO;IACpBF,IAAWI,cAAOC,YAAY;MAC5BC,aAAa;IACf,CAAA;EACF,CAAA;EACAa,UAAU;IAACC,SAASC;;AACtB,CAAA;AAEO,IAAMC,iBAAiBV,UAAUC,KAAK;EAC3Cd,MAAM;IAAEe,KAAK,GAAGhB,kBAAAA;IAA6BiB,MAAM;EAA2B;EAC9EI,UAAU;IAACI,WAAWF;;EACtBL,OAAcd,cAAO;IACnBa,MAAaN,gBAAgBL,aAAM;IACnCa,SAAgBR,gBAAgBL,aAAM;EACxC,CAAA;EACAc,QAAehB,cAAO;IACpBsB,QAAQC,iBAASC;EACnB,CAAA;AACF,CAAA;AAEO,IAAMC,OAAOf,UAAUC,KAAK;EACjCd,MAAM;IACJe,KAAK;IACLC,MAAM;IACNT,aAAa;EACf;EACAU,OAAcd,cAAO;IACnB0B,KAAKC,IAAIA,IAAIJ,iBAASC,QAAQ,EAAErB,YAAY;MAC1CC,aAAa;IACf,CAAA;EACF,CAAA;EACAY,QAAehB,cAAO;IACpBe,SAAgBb;EAClB,CAAA;EACAe,UAAU;IAACC,SAASC;;AACtB,CAAA;AAEO,IAAMS,iBAAiBlB,UAAUC,KAAK;EAC3Cd,MAAM;IAAEe,KAAK,GAAGhB,kBAAAA;IAAuCiB,MAAM;EAAmB;EAChFI,UAAU;IAACI,WAAWF;;EACtBL,OAAcd,cAAO;IACnB6B,SAAgB3B,cAAOC,YAAY;MAAEC,aAAa;IAAwC,CAAA;IAC1F0B,QAAe5B,cAAOC,YAAY;MAAEC,aAAa;IAAgC,CAAA;IACjF2B,KAAYxB,gBAAgBL,cAAOC,YAAY;MAAEC,aAAa;IAAiC,CAAA,CAAA;EACjG,CAAA;EACAY,QAAegB;AACjB,CAAA;AAGO,IAAMC,cAAcvB,UAAUC,KAAK;EACxCd,MAAM;IAAEe,KAAK,GAAGhB,kBAAAA;IAAoCiB,MAAM;EAAgB;EAC1EI,UAAU;IAACI,WAAWF;;EACtBL,OAAcd,cAAO;IACnBF,IAAWI;IACXgC,UAAUC;EACZ,CAAA;EACAnB,QAAegB;AACjB,CAAA;AAEO,IAAMI,SAAS1B,UAAUC,KAAK;EACnCd,MAAM;IACJe,KAAK;IACLC,MAAM;IACNT,aAAaiC;;;EAGf;EACAvB,OAAcd,cAAO;IACnB0B,KAAKC,IAAIA,IAAIJ,iBAASC,QAAQ,EAAErB,YAAY;MAC1CC,aAAa;IACf,CAAA;IACAkC,OAAcC,aAAMxC,IAAAA,EAAMI,YAAY;MACpCC,aAAa;IACf,CAAA;EACF,CAAA;EACAY,QAAehB,cAAO;IACpBwC,YAAmBtC;EACrB,CAAA;EACAe,UAAU;IAACC,SAASC;;AACtB,CAAA;",
6
- "names": ["Schema", "Capability", "Operation", "Database", "Ref", "EditorViewMode", "trim", "meta", "MARKDOWN_OPERATION", "meta", "id", "Edit", "Struct", "oldString", "String", "annotations", "description", "newString", "replaceAll", "optional", "Boolean", "Create", "Operation", "make", "key", "name", "input", "content", "output", "services", "Database", "Service", "CreateMarkdown", "Capability", "object", "Markdown", "Document", "Open", "doc", "Ref", "ScrollToAnchor", "subject", "cursor", "ref", "Void", "SetViewMode", "viewMode", "EditorViewMode", "Update", "trim", "edits", "Array", "newContent"]
7
- }
@@ -1,124 +0,0 @@
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
- // src/types/capabilities.ts
8
- import * as Schema from "effect/Schema";
9
- import { Capability } from "@dxos/app-framework";
10
- import { meta } from "#meta";
11
- var MarkdownStateSchema = Schema.mutable(Schema.Struct({
12
- viewMode: Schema.Record({
13
- key: Schema.String,
14
- value: Schema.String
15
- })
16
- }));
17
- (function(MarkdownCapabilities2) {
18
- MarkdownCapabilities2.Settings = Capability.make(`${meta.id}.capability.settings`);
19
- MarkdownCapabilities2.State = Capability.make(`${meta.id}.capability.state`);
20
- MarkdownCapabilities2.EditorState = Capability.make(`${meta.id}.capability.editor-state`);
21
- MarkdownCapabilities2.EditorViews = Capability.make(`${meta.id}.capability.editor-views`);
22
- MarkdownCapabilities2.Extensions = Capability.make(`${meta.id}.capability.extensions`);
23
- })(MarkdownCapabilities || (MarkdownCapabilities = {}));
24
- var MarkdownCapabilities;
25
-
26
- // src/types/events.ts
27
- import { AppActivationEvents } from "@dxos/app-toolkit";
28
- import { meta as meta2 } from "#meta";
29
- (function(MarkdownEvents2) {
30
- MarkdownEvents2.SetupExtensions = AppActivationEvents.createStateEvent(`${meta2.id}.event.setup-extensions`);
31
- })(MarkdownEvents || (MarkdownEvents = {}));
32
- var MarkdownEvents;
33
-
34
- // src/types/Markdown.ts
35
- var Markdown_exports = {};
36
- __export(Markdown_exports, {
37
- Document: () => Document,
38
- Settings: () => Settings2,
39
- make: () => make
40
- });
41
- import * as Schema3 from "effect/Schema";
42
- import { Annotation, Obj, Ref, Type } from "@dxos/echo";
43
- import { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
44
- import { Text } from "@dxos/schema";
45
-
46
- // src/types/Settings.ts
47
- var Settings_exports = {};
48
- __export(Settings_exports, {
49
- Settings: () => Settings
50
- });
51
- import * as Schema2 from "effect/Schema";
52
- import { EditorInputMode, EditorViewMode } from "@dxos/ui-editor/types";
53
- var Settings = Schema2.mutable(Schema2.Struct({
54
- defaultViewMode: EditorViewMode.annotations({
55
- title: "Default view mode",
56
- description: "Set whether documents open in editing or read-only mode."
57
- }),
58
- editorInputMode: Schema2.optional(EditorInputMode.annotations({
59
- title: "Editor input mode",
60
- description: "Choose keyboard bindings for the editor."
61
- })),
62
- toolbar: Schema2.optional(Schema2.Boolean.annotations({
63
- title: "Show toolbar",
64
- description: "Display a formatting toolbar above the editor."
65
- })),
66
- numberedHeadings: Schema2.optional(Schema2.Boolean.annotations({
67
- title: "Numbered headings",
68
- description: "Automatically number heading levels in the document."
69
- })),
70
- folding: Schema2.optional(Schema2.Boolean.annotations({
71
- title: "Folding",
72
- description: "Allow collapsing and expanding sections by heading."
73
- })),
74
- experimental: Schema2.optional(Schema2.Boolean.annotations({
75
- title: "Enable experimental features",
76
- description: "Turn on features that are still in development."
77
- })),
78
- debug: Schema2.optional(Schema2.Boolean.annotations({
79
- title: "Enable debugging features",
80
- description: "Show developer tools and diagnostics for the editor."
81
- })),
82
- snippets: Schema2.optional(Schema2.String.annotations({
83
- title: "Snippets",
84
- description: "Input snippets to replay for testing purposes."
85
- }))
86
- }));
87
-
88
- // src/types/Markdown.ts
89
- var Settings2 = Settings;
90
- var Document = Schema3.Struct({
91
- name: Schema3.optional(Schema3.String),
92
- description: Schema3.optional(Schema3.String),
93
- fallbackName: Schema3.String.pipe(FormInputAnnotation.set(false), Schema3.optional),
94
- content: Ref.Ref(Text.Text).pipe(FormInputAnnotation.set(false))
95
- }).pipe(Type.object({
96
- typename: "org.dxos.type.document",
97
- version: "0.1.0"
98
- }), LabelAnnotation.set([
99
- "name",
100
- "fallbackName"
101
- ]), DescriptionAnnotation.set("description"), Annotation.IconAnnotation.set({
102
- icon: "ph--text-aa--regular",
103
- hue: "indigo"
104
- }));
105
- var make = ({ content = "", ...props } = {}) => {
106
- const doc = Obj.make(Document, {
107
- ...props,
108
- content: Ref.make(Text.make({
109
- content
110
- }))
111
- });
112
- Obj.setParent(doc.content.target, doc);
113
- return doc;
114
- };
115
-
116
- export {
117
- __export,
118
- MarkdownStateSchema,
119
- MarkdownCapabilities,
120
- MarkdownEvents,
121
- Settings_exports,
122
- Markdown_exports
123
- };
124
- //# sourceMappingURL=chunk-SW6IK2GJ.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/capabilities.ts", "../../../src/types/events.ts", "../../../src/types/Markdown.ts", "../../../src/types/Settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type EditorStateStore } from '@dxos/ui-editor';\nimport { type EditorViewMode } from '@dxos/ui-editor/types';\n\nimport { meta } from '#meta';\n\nimport type * as Markdown from './Markdown';\nimport { type MarkdownExtensionProvider } from './types';\n\n/** Schema for persisted markdown state. */\nexport const MarkdownStateSchema = Schema.mutable(\n Schema.Struct({\n viewMode: Schema.Record({ key: Schema.String, value: Schema.String }),\n }),\n);\n\nexport type MarkdownState = {\n viewMode: Record<string, EditorViewMode>;\n};\n\nexport type EditorViewEntry = { view: EditorView; documentId: string };\n\nexport type EditorViewRegistry = {\n register: (attendableId: string, view: EditorView, documentId: string) => void;\n unregister: (attendableId: string) => void;\n get: (attendableId: string) => EditorViewEntry | undefined;\n};\n\nexport namespace MarkdownCapabilities {\n export const Settings = Capability.make<Atom.Writable<Markdown.Settings>>(`${meta.id}.capability.settings`);\n\n /** Persisted state atom for view mode per document. */\n export const State = Capability.make<Atom.Writable<MarkdownState>>(`${meta.id}.capability.state`);\n\n /** Editor state store for cursor positions, scroll state, etc. */\n export const EditorState = Capability.make<EditorStateStore>(`${meta.id}.capability.editor-state`);\n\n /** Registry of active EditorView instances keyed by attendable ID. */\n export const EditorViews = Capability.make<EditorViewRegistry>(`${meta.id}.capability.editor-views`);\n\n // TODO(burdon): Move to ./types (external API)?\n export const Extensions = Capability.make<MarkdownExtensionProvider[]>(`${meta.id}.capability.extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ActivationEvent } from '@dxos/app-framework';\nimport { AppActivationEvents } from '@dxos/app-toolkit';\n\nimport { meta } from '#meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(\n `${meta.id}.event.setup-extensions`,\n );\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Obj, Ref, Type } from '@dxos/echo';\nimport { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { Text } from '@dxos/schema';\n\n// Re-export Settings as merged const/type (not as namespace).\nimport * as SettingsModule from './Settings';\nexport const Settings = SettingsModule.Settings;\nexport type Settings = SettingsModule.Settings;\n\n/**\n * Document Item type.\n */\nexport const Document = Schema.Struct({\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),\n content: Ref.Ref(Text.Text).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.document',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name', 'fallbackName']),\n DescriptionAnnotation.set('description'),\n Annotation.IconAnnotation.set({\n icon: 'ph--text-aa--regular',\n hue: 'indigo',\n }),\n);\n\nexport type Document = Schema.Schema.Type<typeof Document>;\n\n/**\n * Document factory.\n */\nexport const make = ({\n content = '',\n ...props\n}: Partial<{ name: string; fallbackName: string; content: string }> = {}) => {\n const doc = Obj.make(Document, { ...props, content: Ref.make(Text.make({ content })) });\n // TODO(dmaretskyi): We need a better way to set parents when creating hierarchies.\n Obj.setParent(doc.content.target!, doc);\n return doc;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n defaultViewMode: EditorViewMode.annotations({\n title: 'Default view mode',\n description: 'Set whether documents open in editing or read-only mode.',\n }),\n editorInputMode: Schema.optional(\n EditorInputMode.annotations({\n title: 'Editor input mode',\n description: 'Choose keyboard bindings for the editor.',\n }),\n ),\n toolbar: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Show toolbar',\n description: 'Display a formatting toolbar above the editor.',\n }),\n ),\n numberedHeadings: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Numbered headings',\n description: 'Automatically number heading levels in the document.',\n }),\n ),\n folding: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Folding',\n description: 'Allow collapsing and expanding sections by heading.',\n }),\n ),\n experimental: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Enable experimental features',\n description: 'Turn on features that are still in development.',\n }),\n ),\n debug: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Enable debugging features',\n description: 'Show developer tools and diagnostics for the editor.',\n }),\n ),\n snippets: Schema.optional(\n Schema.String.annotations({\n title: 'Snippets',\n description: 'Input snippets to replay for testing purposes.',\n }),\n ),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "Capability", "meta", "MarkdownStateSchema", "mutable", "Struct", "viewMode", "Record", "key", "String", "value", "MarkdownCapabilities", "Settings", "make", "id", "State", "EditorState", "EditorViews", "Extensions", "AppActivationEvents", "meta", "MarkdownEvents", "SetupExtensions", "createStateEvent", "id", "Settings", "Schema", "Annotation", "Obj", "Ref", "Type", "DescriptionAnnotation", "FormInputAnnotation", "LabelAnnotation", "Text", "Schema", "EditorInputMode", "EditorViewMode", "Settings", "mutable", "Struct", "defaultViewMode", "annotations", "title", "description", "editorInputMode", "optional", "toolbar", "Boolean", "numberedHeadings", "folding", "experimental", "debug", "snippets", "String", "Settings", "Document", "Struct", "name", "optional", "String", "description", "fallbackName", "pipe", "FormInputAnnotation", "set", "content", "Ref", "Text", "Type", "object", "typename", "version", "LabelAnnotation", "DescriptionAnnotation", "Annotation", "IconAnnotation", "icon", "hue", "make", "props", "doc", "Obj", "setParent", "target"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/create.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { CollectionModel } from '@dxos/schema';\n\nimport { Markdown } from '../types';\nimport { Create } from './definitions';\n\nconst handler: Operation.WithHandler<typeof Create> = Create.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ name, content }) {\n const object = Markdown.make({ name, content });\n yield* CollectionModel.add({ object });\n\n return {\n id: Obj.getDXN(object).toString(),\n };\n }),\n ),\n);\n\nexport default handler;\n"],
5
- "mappings": ";;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,uBAAuB;AAKhC,IAAMC,UAAgDC,OAAOC,KAC3DC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,QAAO,GAAE;AACpC,QAAMC,SAASC,iBAASC,KAAK;IAAEJ;IAAMC;EAAQ,CAAA;AAC7C,SAAOI,gBAAgBC,IAAI;IAAEJ;EAAO,CAAA;AAEpC,SAAO;IACLK,IAAIC,IAAIC,OAAOP,MAAAA,EAAQQ,SAAQ;EACjC;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAehB;",
6
- "names": ["Effect", "Operation", "Obj", "CollectionModel", "handler", "Create", "pipe", "Operation", "withHandler", "fn", "name", "content", "object", "Markdown", "make", "CollectionModel", "add", "id", "Obj", "getDXN", "toString"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/create-markdown.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\n\nimport { Markdown } from '../types';\nimport { CreateMarkdown } from './definitions';\n\nconst handler: Operation.WithHandler<typeof CreateMarkdown> = CreateMarkdown.pipe(\n Operation.withHandler(({ name, content }) =>\n Effect.succeed({\n object: Markdown.make({ name, content }),\n }),\n ),\n);\n\nexport default handler;\n"],
5
- "mappings": ";;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAK1B,IAAMC,UAAwDC,eAAeC,KAC3EC,UAAUC,YAAY,CAAC,EAAEC,MAAMC,QAAO,MAC7BC,eAAQ;EACbC,QAAQC,iBAASC,KAAK;IAAEL;IAAMC;EAAQ,CAAA;AACxC,CAAA,CAAA,CAAA;AAIJ,IAAA,0BAAeN;",
6
- "names": ["Effect", "Operation", "handler", "CreateMarkdown", "pipe", "Operation", "withHandler", "name", "content", "succeed", "object", "Markdown", "make"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/index.ts", "../../../src/meta.ts", "../../../src/util.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport { MarkdownCapabilities, MarkdownEvents } from './types';\n\nexport * from './meta';\nexport * from './types';\nexport * from './util';\n\nexport const MarkdownPlugin = Plugin.lazy(meta, () => import('#plugin'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.markdown',\n name: 'Markdown',\n description: trim`\n Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.\n Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.\n `,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\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": ["Plugin", "trim", "meta", "id", "name", "description", "icon", "iconHue", "source", "screenshots", "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", "MarkdownPlugin", "Plugin", "lazy", "meta"]
7
- }