@dxos/plugin-markdown 0.8.4-main.422d1c7879 → 0.8.4-main.51f1e5ca51

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 (187) hide show
  1. package/dist/lib/browser/{MarkdownSettings-62YSRY7L.mjs → MarkdownSettings-YCTZJL5V.mjs} +4 -4
  2. package/dist/lib/browser/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
  3. package/dist/lib/browser/blueprints/index.mjs +3 -3
  4. package/dist/lib/browser/blueprints/index.mjs.map +2 -2
  5. package/dist/lib/browser/{chunk-QFPZONKP.mjs → chunk-5T3SYJIP.mjs} +3 -3
  6. package/dist/lib/browser/chunk-5T3SYJIP.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-4KOZEH2H.mjs → chunk-FG2ZL4PE.mjs} +4 -4
  8. package/dist/lib/browser/chunk-FG2ZL4PE.mjs.map +7 -0
  9. package/dist/lib/browser/cli/index.mjs +1 -1
  10. package/dist/lib/browser/cli/index.mjs.map +3 -3
  11. package/dist/lib/browser/{create-YL5ELZWP.mjs → create-VSHCHZS4.mjs} +4 -4
  12. package/dist/lib/browser/create-VSHCHZS4.mjs.map +7 -0
  13. package/dist/lib/browser/{create-markdown-LU5IDKMH.mjs → create-markdown-6LRG62W3.mjs} +4 -4
  14. package/dist/lib/browser/{create-markdown-LU5IDKMH.mjs.map → create-markdown-6LRG62W3.mjs.map} +1 -1
  15. package/dist/lib/browser/index.mjs +18 -63
  16. package/dist/lib/browser/index.mjs.map +4 -4
  17. package/dist/lib/browser/meta.json +1 -1
  18. package/dist/lib/browser/{open-AFSOZZ6G.mjs → open-TKTPEN3D.mjs} +4 -4
  19. package/dist/lib/browser/open-TKTPEN3D.mjs.map +7 -0
  20. package/dist/lib/browser/operations/index.mjs +4 -4
  21. package/dist/lib/browser/operations/index.mjs.map +3 -3
  22. package/dist/lib/browser/{scroll-to-anchor-IPXV32A6.mjs → scroll-to-anchor-HWERBJKN.mjs} +4 -4
  23. package/dist/lib/browser/{scroll-to-anchor-IPXV32A6.mjs.map → scroll-to-anchor-HWERBJKN.mjs.map} +1 -1
  24. package/dist/lib/browser/{set-view-mode-2QWB24RR.mjs → set-view-mode-Z7HGT7TY.mjs} +4 -4
  25. package/dist/lib/browser/{set-view-mode-2QWB24RR.mjs.map → set-view-mode-Z7HGT7TY.mjs.map} +1 -1
  26. package/dist/lib/browser/translations.mjs +43 -0
  27. package/dist/lib/browser/translations.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +1 -1
  29. package/dist/lib/browser/{update-HZNVYBMO.mjs → update-markdown-EJSHQRSC.mjs} +7 -7
  30. package/dist/lib/browser/update-markdown-EJSHQRSC.mjs.map +7 -0
  31. package/dist/lib/node-esm/{MarkdownSettings-QMPISOEU.mjs → MarkdownSettings-LE66LODL.mjs} +4 -4
  32. package/dist/lib/node-esm/MarkdownSettings-LE66LODL.mjs.map +7 -0
  33. package/dist/lib/node-esm/blueprints/index.mjs +3 -3
  34. package/dist/lib/node-esm/blueprints/index.mjs.map +2 -2
  35. package/dist/lib/node-esm/{chunk-JUGS6RKO.mjs → chunk-43GF7QLH.mjs} +3 -3
  36. package/dist/lib/node-esm/chunk-43GF7QLH.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-3OPDJJJH.mjs → chunk-IHC6DFTK.mjs} +4 -4
  38. package/dist/lib/node-esm/chunk-IHC6DFTK.mjs.map +7 -0
  39. package/dist/lib/node-esm/cli/index.mjs +1 -1
  40. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  41. package/dist/lib/node-esm/{create-SMQAIM3V.mjs → create-PDW42WOY.mjs} +4 -4
  42. package/dist/lib/node-esm/create-PDW42WOY.mjs.map +7 -0
  43. package/dist/lib/node-esm/{create-markdown-X2OASYKG.mjs → create-markdown-BBPZPLQN.mjs} +4 -4
  44. package/dist/lib/node-esm/{create-markdown-X2OASYKG.mjs.map → create-markdown-BBPZPLQN.mjs.map} +1 -1
  45. package/dist/lib/node-esm/index.mjs +18 -63
  46. package/dist/lib/node-esm/index.mjs.map +4 -4
  47. package/dist/lib/node-esm/meta.json +1 -1
  48. package/dist/lib/node-esm/{open-SRWLLOKE.mjs → open-B6GFN5DR.mjs} +4 -4
  49. package/dist/lib/node-esm/open-B6GFN5DR.mjs.map +7 -0
  50. package/dist/lib/node-esm/operations/index.mjs +4 -4
  51. package/dist/lib/node-esm/operations/index.mjs.map +3 -3
  52. package/dist/lib/node-esm/{scroll-to-anchor-M76GXKYQ.mjs → scroll-to-anchor-CWEWWIS7.mjs} +4 -4
  53. package/dist/lib/node-esm/{scroll-to-anchor-M76GXKYQ.mjs.map → scroll-to-anchor-CWEWWIS7.mjs.map} +1 -1
  54. package/dist/lib/node-esm/{set-view-mode-6BB6KIDS.mjs → set-view-mode-OMNNTSNM.mjs} +4 -4
  55. package/dist/lib/node-esm/{set-view-mode-6BB6KIDS.mjs.map → set-view-mode-OMNNTSNM.mjs.map} +1 -1
  56. package/dist/lib/node-esm/translations.mjs +44 -0
  57. package/dist/lib/node-esm/translations.mjs.map +7 -0
  58. package/dist/lib/node-esm/types/index.mjs +1 -1
  59. package/dist/lib/node-esm/{update-4CELTLXK.mjs → update-markdown-TAEAHVD2.mjs} +7 -7
  60. package/dist/lib/node-esm/update-markdown-TAEAHVD2.mjs.map +7 -0
  61. package/dist/types/src/blueprints/markdown-blueprint.d.ts +2 -2
  62. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/blueprint-definition.d.ts +1 -2
  67. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/index.d.ts +3 -3
  69. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  70. package/dist/types/src/capabilities/node.d.ts +1 -1
  71. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  73. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  76. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  77. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +13 -5
  78. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  79. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  80. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +2 -1
  81. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  82. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +1 -1
  83. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  84. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +46 -46
  85. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -1
  86. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  87. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +1 -1
  88. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
  89. package/dist/types/src/containers/MarkdownCard/MarkdownEditableCard.d.ts +15 -0
  90. package/dist/types/src/containers/MarkdownCard/MarkdownEditableCard.d.ts.map +1 -0
  91. package/dist/types/src/containers/MarkdownCard/index.d.ts +1 -0
  92. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -1
  93. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -1
  94. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +5 -5
  95. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -1
  96. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +70 -50
  97. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -1
  98. package/dist/types/src/containers/index.d.ts +1 -0
  99. package/dist/types/src/containers/index.d.ts.map +1 -1
  100. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  101. package/dist/types/src/hooks/useExtensions.d.ts +2 -1
  102. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  103. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  104. package/dist/types/src/index.d.ts +0 -1
  105. package/dist/types/src/index.d.ts.map +1 -1
  106. package/dist/types/src/operations/create-markdown.d.ts +1 -1
  107. package/dist/types/src/operations/create-markdown.d.ts.map +1 -1
  108. package/dist/types/src/operations/create.d.ts +1 -1
  109. package/dist/types/src/operations/create.d.ts.map +1 -1
  110. package/dist/types/src/operations/definitions.d.ts +4 -4
  111. package/dist/types/src/operations/definitions.d.ts.map +1 -1
  112. package/dist/types/src/operations/index.d.ts +1 -1
  113. package/dist/types/src/operations/index.d.ts.map +1 -1
  114. package/dist/types/src/operations/open.d.ts +1 -1
  115. package/dist/types/src/operations/open.d.ts.map +1 -1
  116. package/dist/types/src/operations/scroll-to-anchor.d.ts +1 -1
  117. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
  118. package/dist/types/src/operations/set-view-mode.d.ts +1 -1
  119. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -1
  120. package/dist/types/src/operations/{update.d.ts → update-markdown.d.ts} +2 -2
  121. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  122. package/dist/types/src/testing.d.ts.map +1 -1
  123. package/dist/types/src/translations.d.ts +70 -51
  124. package/dist/types/src/translations.d.ts.map +1 -1
  125. package/dist/types/src/types/Markdown.d.ts +3 -3
  126. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  127. package/dist/types/src/types/Settings.d.ts +1 -1
  128. package/dist/types/src/types/capabilities.d.ts +2 -1
  129. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  130. package/dist/types/src/types/events.d.ts.map +1 -1
  131. package/dist/types/src/types/types.d.ts +1 -0
  132. package/dist/types/src/types/types.d.ts.map +1 -1
  133. package/dist/types/src/util.d.ts.map +1 -1
  134. package/dist/types/tsconfig.tsbuildinfo +1 -1
  135. package/package.json +53 -48
  136. package/src/MarkdownPlugin.tsx +3 -3
  137. package/src/blueprints/markdown-blueprint.ts +2 -3
  138. package/src/capabilities/app-graph-serializer.ts +1 -2
  139. package/src/capabilities/artifact-definition.ts +1 -1
  140. package/src/capabilities/index.ts +1 -1
  141. package/src/capabilities/node.ts +1 -1
  142. package/src/capabilities/operation-handler.ts +1 -1
  143. package/src/capabilities/react-surface.tsx +9 -3
  144. package/src/cli/plugin.ts +1 -1
  145. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +3 -2
  146. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +1 -1
  147. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +2 -1
  148. package/src/components/MarkdownSettings/MarkdownSettings.tsx +3 -3
  149. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +2 -1
  150. package/src/containers/MarkdownCard/MarkdownEditableCard.tsx +42 -0
  151. package/src/containers/MarkdownCard/index.ts +1 -0
  152. package/src/containers/MarkdownCard/snippet.ts +3 -1
  153. package/src/containers/MarkdownContainer/MarkdownContainer.stories.tsx +1 -1
  154. package/src/containers/MarkdownContainer/MarkdownContainer.tsx +5 -4
  155. package/src/containers/index.ts +3 -0
  156. package/src/hooks/useExtensions.tsx +4 -6
  157. package/src/index.ts +0 -1
  158. package/src/operations/create-markdown.ts +1 -1
  159. package/src/operations/create.conversations.json +1 -1
  160. package/src/operations/create.test.ts +4 -4
  161. package/src/operations/create.ts +1 -1
  162. package/src/operations/definitions.ts +1 -1
  163. package/src/operations/index.ts +2 -2
  164. package/src/operations/open.ts +1 -1
  165. package/src/operations/scroll-to-anchor.ts +1 -1
  166. package/src/operations/set-view-mode.ts +1 -1
  167. package/src/operations/{update.ts → update-markdown.ts} +1 -1
  168. package/src/operations/update.conversations.json +1 -1
  169. package/src/operations/update.test.ts +4 -4
  170. package/src/translations.ts +2 -2
  171. package/src/types/Settings.ts +3 -3
  172. package/src/types/capabilities.ts +2 -1
  173. package/src/types/types.ts +4 -1
  174. package/src/util.tsx +1 -1
  175. package/dist/lib/browser/MarkdownSettings-62YSRY7L.mjs.map +0 -7
  176. package/dist/lib/browser/chunk-4KOZEH2H.mjs.map +0 -7
  177. package/dist/lib/browser/chunk-QFPZONKP.mjs.map +0 -7
  178. package/dist/lib/browser/create-YL5ELZWP.mjs.map +0 -7
  179. package/dist/lib/browser/open-AFSOZZ6G.mjs.map +0 -7
  180. package/dist/lib/browser/update-HZNVYBMO.mjs.map +0 -7
  181. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs.map +0 -7
  182. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs.map +0 -7
  184. package/dist/lib/node-esm/create-SMQAIM3V.mjs.map +0 -7
  185. package/dist/lib/node-esm/open-SRWLLOKE.mjs.map +0 -7
  186. package/dist/lib/node-esm/update-4CELTLXK.mjs.map +0 -7
  187. package/dist/types/src/operations/update.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operations/scroll-to-anchor.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { Cursor, setSelection } from '@dxos/ui-editor';\n\nimport { MarkdownCapabilities } from '../types';\nimport { ScrollToAnchor } from './definitions';\n\nconst handler: Operation.WithHandler<typeof ScrollToAnchor> = ScrollToAnchor.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ subject, cursor }) {\n const editorViews = yield* Capability.get(MarkdownCapabilities.EditorViews);\n const entry = editorViews.get(subject);\n if (!entry) {\n return;\n }\n const range = Cursor.getRangeFromCursor(entry.view.state, cursor);\n if (range) {\n const selection = entry.view.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;\n const effects: any[] = [EditorView.scrollIntoView(range.from, { y: 'start', yMargin: 96 })];\n if (selection) {\n effects.push(setSelection.of({ current: entry.documentId }));\n }\n entry.view.dispatch({\n effects,\n selection: selection ? { anchor: range.from } : undefined,\n });\n }\n }),\n ),\n);\n\nexport default handler;\n"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\nimport { Cursor, setSelection } from '@dxos/ui-editor';\n\nimport { MarkdownCapabilities } from '../types';\nimport { ScrollToAnchor } from './definitions';\n\nconst handler: Operation.WithHandler<typeof ScrollToAnchor> = ScrollToAnchor.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ subject, cursor }) {\n const editorViews = yield* Capability.get(MarkdownCapabilities.EditorViews);\n const entry = editorViews.get(subject);\n if (!entry) {\n return;\n }\n const range = Cursor.getRangeFromCursor(entry.view.state, cursor);\n if (range) {\n const selection = entry.view.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;\n const effects: any[] = [EditorView.scrollIntoView(range.from, { y: 'start', yMargin: 96 })];\n if (selection) {\n effects.push(setSelection.of({ current: entry.documentId }));\n }\n entry.view.dispatch({\n effects,\n selection: selection ? { anchor: range.from } : undefined,\n });\n }\n }),\n ),\n);\n\nexport default handler;\n"],
5
5
  "mappings": ";;;;;;;;;AAIA,SAASA,kBAAkB;AAC3B,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,oBAAoB;AAKrC,IAAMC,UAAwDC,eAAeC,KAC3EC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,SAASC,OAAM,GAAE;AAC9C,QAAMC,cAAc,OAAOC,WAAWC,IAAIC,qBAAqBC,WAAW;AAC1E,QAAMC,QAAQL,YAAYE,IAAIJ,OAAAA;AAC9B,MAAI,CAACO,OAAO;AACV;EACF;AACA,QAAMC,QAAQC,OAAOC,mBAAmBH,MAAMI,KAAKC,OAAOX,MAAAA;AAC1D,MAAIO,OAAO;AACT,UAAMK,YAAYN,MAAMI,KAAKC,MAAMC,UAAUC,KAAKC,SAASP,MAAMO,OAAO;MAAEC,QAAQR,MAAMO;IAAK,IAAIE;AACjG,UAAMC,UAAiB;MAACC,WAAWC,eAAeZ,MAAMO,MAAM;QAAEM,GAAG;QAASC,SAAS;MAAG,CAAA;;AACxF,QAAIT,WAAW;AACbK,cAAQK,KAAKC,aAAaC,GAAG;QAAEC,SAASnB,MAAMoB;MAAW,CAAA,CAAA;IAC3D;AACApB,UAAMI,KAAKiB,SAAS;MAClBV;MACAL,WAAWA,YAAY;QAAEG,QAAQR,MAAMO;MAAK,IAAIE;IAClD,CAAA;EACF;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,2BAAevB;",
6
6
  "names": ["EditorView", "Effect", "Capability", "Operation", "Cursor", "setSelection", "handler", "ScrollToAnchor", "pipe", "Operation", "withHandler", "fnUntraced", "subject", "cursor", "editorViews", "Capability", "get", "MarkdownCapabilities", "EditorViews", "entry", "range", "Cursor", "getRangeFromCursor", "view", "state", "selection", "main", "from", "anchor", "undefined", "effects", "EditorView", "scrollIntoView", "y", "yMargin", "push", "setSelection", "of", "current", "documentId", "dispatch"]
7
7
  }
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  SetViewMode
3
- } from "./chunk-QFPZONKP.mjs";
3
+ } from "./chunk-5T3SYJIP.mjs";
4
4
  import {
5
5
  MarkdownCapabilities
6
- } from "./chunk-4KOZEH2H.mjs";
6
+ } from "./chunk-FG2ZL4PE.mjs";
7
7
  import "./chunk-J5LGTIGS.mjs";
8
8
 
9
9
  // src/operations/set-view-mode.ts
10
10
  import * as Effect from "effect/Effect";
11
11
  import { Capabilities } from "@dxos/app-framework";
12
- import { Operation } from "@dxos/operation";
12
+ import { Operation } from "@dxos/compute";
13
13
  var handler = SetViewMode.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ id, viewMode }) {
14
14
  yield* Capabilities.updateAtomValue(MarkdownCapabilities.State, (current) => ({
15
15
  ...current,
@@ -23,4 +23,4 @@ var set_view_mode_default = handler;
23
23
  export {
24
24
  set_view_mode_default as default
25
25
  };
26
- //# sourceMappingURL=set-view-mode-2QWB24RR.mjs.map
26
+ //# sourceMappingURL=set-view-mode-Z7HGT7TY.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operations/set-view-mode.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\n\nimport { MarkdownCapabilities } from '../types';\nimport { SetViewMode } from './definitions';\n\nconst handler: Operation.WithHandler<typeof SetViewMode> = SetViewMode.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ id, viewMode }) {\n yield* Capabilities.updateAtomValue(MarkdownCapabilities.State, (current) => ({\n ...current,\n viewMode: { ...current.viewMode, [id]: viewMode },\n }));\n }),\n ),\n);\n\nexport default handler;\n"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\n\nimport { MarkdownCapabilities } from '../types';\nimport { SetViewMode } from './definitions';\n\nconst handler: Operation.WithHandler<typeof SetViewMode> = SetViewMode.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ id, viewMode }) {\n yield* Capabilities.updateAtomValue(MarkdownCapabilities.State, (current) => ({\n ...current,\n viewMode: { ...current.viewMode, [id]: viewMode },\n }));\n }),\n ),\n);\n\nexport default handler;\n"],
5
5
  "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,oBAAoB;AAC7B,SAASC,iBAAiB;AAK1B,IAAMC,UAAqDC,YAAYC,KACrEC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,IAAIC,SAAQ,GAAE;AAC3C,SAAOC,aAAaC,gBAAgBC,qBAAqBC,OAAO,CAACC,aAAa;IAC5E,GAAGA;IACHL,UAAU;MAAE,GAAGK,QAAQL;MAAU,CAACD,EAAAA,GAAKC;IAAS;EAClD,EAAA;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,wBAAeP;",
6
6
  "names": ["Effect", "Capabilities", "Operation", "handler", "SetViewMode", "pipe", "Operation", "withHandler", "fnUntraced", "id", "viewMode", "Capabilities", "updateAtomValue", "MarkdownCapabilities", "State", "current"]
7
7
  }
@@ -0,0 +1,43 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/translations.ts
4
+ import { translations as editorTranslations } from "@dxos/react-ui-editor/translations";
5
+ import { meta } from "#meta";
6
+ import { Markdown } from "#types";
7
+ var translations = [
8
+ {
9
+ "en-US": {
10
+ [Markdown.Document.typename]: {
11
+ "typename.label": "Document",
12
+ "typename.label_zero": "Documents",
13
+ "typename.label_one": "Document",
14
+ "typename.label_other": "Documents",
15
+ "object-name.placeholder": "New document",
16
+ "add-object.label": "Add document",
17
+ "rename-object.label": "Rename document",
18
+ "delete-object.label": "Delete document",
19
+ "object-deleted.label": "Document deleted"
20
+ },
21
+ [meta.id]: {
22
+ "plugin.name": "Editor",
23
+ "choose-markdown-from-space-dialog.title": "Choose one or more documents to add",
24
+ "empty-choose-markdown-from-space.message": "None available; try creating a new one instead?",
25
+ "chooser-done.label": "Add selected",
26
+ "editor.placeholder": "Enter text\u2026",
27
+ "toggle-view-mode.label": "Toggle read-only",
28
+ "upload-image.label": "Upload image",
29
+ "fallback.title": "Untitled",
30
+ "navigate-to-document.label": "Open document",
31
+ "words.label": "words",
32
+ "words.label_zero": "words",
33
+ "words.label_one": "word",
34
+ "words.label_other": "words"
35
+ }
36
+ }
37
+ },
38
+ ...editorTranslations
39
+ ];
40
+ export {
41
+ translations
42
+ };
43
+ //# sourceMappingURL=translations.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor/translations';\n\nimport { meta } from '#meta';\nimport { Markdown } from '#types';\n\nexport const translations = [\n {\n 'en-US': {\n [Markdown.Document.typename]: {\n 'typename.label': 'Document',\n 'typename.label_zero': 'Documents',\n 'typename.label_one': 'Document',\n 'typename.label_other': 'Documents',\n 'object-name.placeholder': 'New document',\n 'add-object.label': 'Add document',\n 'rename-object.label': 'Rename document',\n 'delete-object.label': 'Delete document',\n 'object-deleted.label': 'Document deleted',\n },\n [meta.id]: {\n 'plugin.name': 'Editor',\n 'choose-markdown-from-space-dialog.title': 'Choose one or more documents to add',\n 'empty-choose-markdown-from-space.message': 'None available; try creating a new one instead?',\n 'chooser-done.label': 'Add selected',\n 'editor.placeholder': 'Enter text…',\n 'toggle-view-mode.label': 'Toggle read-only',\n 'upload-image.label': 'Upload image',\n 'fallback.title': 'Untitled',\n 'navigate-to-document.label': 'Open document',\n 'words.label': 'words',\n 'words.label_zero': 'words',\n 'words.label_one': 'word',\n 'words.label_other': 'words',\n },\n },\n },\n ...editorTranslations,\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;AAKA,SAASA,gBAAgBC,0BAA0B;AAEnD,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAElB,IAAMH,eAAe;EAC1B;IACE,SAAS;MACP,CAACG,SAASC,SAASC,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACH,KAAKI,EAAE,GAAG;QACT,eAAe;QACf,2CAA2C;QAC3C,4CAA4C;QAC5C,sBAAsB;QACtB,sBAAsB;QACtB,0BAA0B;QAC1B,sBAAsB;QACtB,kBAAkB;QAClB,8BAA8B;QAC9B,eAAe;QACf,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;MACvB;IACF;EACF;KACGL;;",
6
+ "names": ["translations", "editorTranslations", "meta", "Markdown", "Document", "typename", "id"]
7
+ }
@@ -4,7 +4,7 @@ import {
4
4
  MarkdownStateSchema,
5
5
  Markdown_exports,
6
6
  Settings_exports
7
- } from "../chunk-4KOZEH2H.mjs";
7
+ } from "../chunk-FG2ZL4PE.mjs";
8
8
  import "../chunk-J5LGTIGS.mjs";
9
9
  export {
10
10
  Markdown_exports as Markdown,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  Update
3
- } from "./chunk-QFPZONKP.mjs";
4
- import "./chunk-4KOZEH2H.mjs";
3
+ } from "./chunk-5T3SYJIP.mjs";
4
+ import "./chunk-FG2ZL4PE.mjs";
5
5
  import "./chunk-J5LGTIGS.mjs";
6
6
 
7
- // src/operations/update.ts
7
+ // src/operations/update-markdown.ts
8
8
  import { next as A } from "@automerge/automerge";
9
9
  import * as Effect from "effect/Effect";
10
+ import { Operation } from "@dxos/compute";
10
11
  import { Database } from "@dxos/echo";
11
12
  import { DocAccessor, createDocAccessor } from "@dxos/echo-db";
12
- import { Operation } from "@dxos/operation";
13
13
  var handler = Update.pipe(Operation.withHandler(Effect.fn(function* ({ doc, edits }) {
14
14
  const content = yield* doc.pipe(Database.load, Effect.map((_) => _.content), Effect.flatMap(Database.load));
15
15
  const accessor = createDocAccessor(content, [
@@ -38,8 +38,8 @@ var handler = Update.pipe(Operation.withHandler(Effect.fn(function* ({ doc, edit
38
38
  newContent: DocAccessor.getValue(accessor)
39
39
  };
40
40
  })));
41
- var update_default = handler;
41
+ var update_markdown_default = handler;
42
42
  export {
43
- update_default as default
43
+ update_markdown_default as default
44
44
  };
45
- //# sourceMappingURL=update-HZNVYBMO.mjs.map
45
+ //# sourceMappingURL=update-markdown-EJSHQRSC.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/update-markdown.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { next as A, type Doc } from '@automerge/automerge';\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\nimport { DocAccessor, createDocAccessor } from '@dxos/echo-db';\n\nimport { Update } from './definitions';\n\nconst handler: Operation.WithHandler<typeof Update> = Update.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ doc, edits }) {\n const content = yield* doc.pipe(\n Database.load,\n Effect.map((_) => _.content),\n Effect.flatMap(Database.load),\n );\n const accessor = createDocAccessor(content, ['content']);\n\n for (const edit of edits) {\n accessor.handle.change((doc: Doc<typeof content>) => {\n const text = DocAccessor.getValue<string>(accessor);\n if (edit.replaceAll) {\n let idx = text.indexOf(edit.oldString);\n while (idx !== -1) {\n A.splice(doc, accessor.path as A.Prop[], idx, edit.oldString.length, edit.newString);\n const updated = DocAccessor.getValue<string>(accessor);\n idx = updated.indexOf(edit.oldString, idx + edit.newString.length);\n }\n } else {\n const idx = text.indexOf(edit.oldString);\n if (idx === -1) {\n throw new Error(`Edit not found: ${JSON.stringify(edit.oldString)}`);\n }\n A.splice(doc, accessor.path as A.Prop[], idx, edit.oldString.length, edit.newString);\n }\n });\n }\n\n return {\n newContent: DocAccessor.getValue<string>(accessor),\n };\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAIA,SAASA,QAAQC,SAAmB;AACpC,YAAYC,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,aAAaC,yBAAyB;AAI/C,IAAMC,UAAgDC,OAAOC,KAC3DC,UAAUC,YACDC,UAAG,WAAW,EAAEC,KAAKC,MAAK,GAAE;AACjC,QAAMC,UAAU,OAAOF,IAAIJ,KACzBO,SAASC,MACFC,WAAI,CAACC,MAAMA,EAAEJ,OAAO,GACpBK,eAAQJ,SAASC,IAAI,CAAA;AAE9B,QAAMI,WAAWC,kBAAkBP,SAAS;IAAC;GAAU;AAEvD,aAAWQ,QAAQT,OAAO;AACxBO,aAASG,OAAOC,OAAO,CAACZ,SAAAA;AACtB,YAAMa,OAAOC,YAAYC,SAAiBP,QAAAA;AAC1C,UAAIE,KAAKM,YAAY;AACnB,YAAIC,MAAMJ,KAAKK,QAAQR,KAAKS,SAAS;AACrC,eAAOF,QAAQ,IAAI;AACjBG,YAAEC,OAAOrB,MAAKQ,SAASc,MAAkBL,KAAKP,KAAKS,UAAUI,QAAQb,KAAKc,SAAS;AACnF,gBAAMC,UAAUX,YAAYC,SAAiBP,QAAAA;AAC7CS,gBAAMQ,QAAQP,QAAQR,KAAKS,WAAWF,MAAMP,KAAKc,UAAUD,MAAM;QACnE;MACF,OAAO;AACL,cAAMN,MAAMJ,KAAKK,QAAQR,KAAKS,SAAS;AACvC,YAAIF,QAAQ,IAAI;AACd,gBAAM,IAAIS,MAAM,mBAAmBC,KAAKC,UAAUlB,KAAKS,SAAS,CAAA,EAAG;QACrE;AACAC,UAAEC,OAAOrB,MAAKQ,SAASc,MAAkBL,KAAKP,KAAKS,UAAUI,QAAQb,KAAKc,SAAS;MACrF;IACF,CAAA;EACF;AAEA,SAAO;IACLK,YAAYf,YAAYC,SAAiBP,QAAAA;EAC3C;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,0BAAed;",
6
+ "names": ["next", "A", "Effect", "Operation", "Database", "DocAccessor", "createDocAccessor", "handler", "Update", "pipe", "Operation", "withHandler", "fn", "doc", "edits", "content", "Database", "load", "map", "_", "flatMap", "accessor", "createDocAccessor", "edit", "handle", "change", "text", "DocAccessor", "getValue", "replaceAll", "idx", "indexOf", "oldString", "A", "splice", "path", "length", "newString", "updated", "Error", "JSON", "stringify", "newContent"]
7
+ }
@@ -7,7 +7,7 @@ import { Input } from "@dxos/react-ui";
7
7
  import { Settings as SettingsForm } from "@dxos/react-ui-form";
8
8
  import { meta } from "#meta";
9
9
  import { Markdown } from "#types";
10
- var TypewriterField = ({ value, onChange, readonly }) => /* @__PURE__ */ React.createElement(Input.TextArea, {
10
+ var SnippetsField = ({ value, onChange, readonly }) => /* @__PURE__ */ React.createElement(Input.TextArea, {
11
11
  disabled: readonly,
12
12
  rows: 5,
13
13
  value: value ?? "",
@@ -19,9 +19,9 @@ var MarkdownSettings = ({ settings, onSettingsChange }) => {
19
19
  }, /* @__PURE__ */ React.createElement(SettingsForm.FieldSet, {
20
20
  readonly: !onSettingsChange,
21
21
  schema: Markdown.Settings,
22
- visible: (path, values) => path !== "typewriter" || !!values.debug,
22
+ visible: (path, values) => path !== "snippets" || !!values.debug,
23
23
  fieldMap: {
24
- typewriter: TypewriterField
24
+ snippets: SnippetsField
25
25
  },
26
26
  values: settings,
27
27
  onValuesChanged: (values) => onSettingsChange?.(() => values)
@@ -30,4 +30,4 @@ var MarkdownSettings = ({ settings, onSettingsChange }) => {
30
30
  export {
31
31
  MarkdownSettings as default
32
32
  };
33
- //# sourceMappingURL=MarkdownSettings-QMPISOEU.mjs.map
33
+ //# sourceMappingURL=MarkdownSettings-LE66LODL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/MarkdownSettings/MarkdownSettings.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Input } from '@dxos/react-ui';\nimport { Settings as SettingsForm, type SettingsFieldProps } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\nimport { Markdown } from '#types';\n\nexport type MarkdownSettingsProps = AppSurface.SettingsArticleProps<Markdown.Settings>;\n\nconst SnippetsField = ({ value, onChange, readonly }: SettingsFieldProps<string | undefined>) => (\n <Input.TextArea disabled={readonly} rows={5} value={value ?? ''} onChange={(event) => onChange(event.target.value)} />\n);\n\nexport const MarkdownSettings = ({ settings, onSettingsChange }: MarkdownSettingsProps) => {\n return (\n <SettingsForm.Viewport>\n <SettingsForm.Section title={meta.name ?? 'Editor'}>\n <SettingsForm.FieldSet\n readonly={!onSettingsChange}\n schema={Markdown.Settings}\n visible={(path, values) => path !== 'snippets' || !!values.debug}\n fieldMap={{ snippets: SnippetsField }}\n values={settings}\n onValuesChanged={(values) => onSettingsChange?.(() => values)}\n />\n </SettingsForm.Section>\n </SettingsForm.Viewport>\n );\n};\n"],
5
+ "mappings": ";;;;AAIA,OAAOA,WAAW;AAGlB,SAASC,aAAa;AACtB,SAASC,YAAYC,oBAA6C;AAElE,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAIzB,IAAMC,gBAAgB,CAAC,EAAEC,OAAOC,UAAUC,SAAQ,MAChD,sBAAA,cAACR,MAAMS,UAAQ;EAACC,UAAUF;EAAUG,MAAM;EAAGL,OAAOA,SAAS;EAAIC,UAAU,CAACK,UAAUL,SAASK,MAAMC,OAAOP,KAAK;;AAG5G,IAAMQ,mBAAmB,CAAC,EAAEC,UAAUC,iBAAgB,MAAyB;AACpF,SACE,sBAAA,cAACd,aAAae,UAAQ,MACpB,sBAAA,cAACf,aAAagB,SAAO;IAACC,OAAOhB,KAAKiB,QAAQ;KACxC,sBAAA,cAAClB,aAAamB,UAAQ;IACpBb,UAAU,CAACQ;IACXM,QAAQlB,SAASH;IACjBsB,SAAS,CAACC,MAAMC,WAAWD,SAAS,cAAc,CAAC,CAACC,OAAOC;IAC3DC,UAAU;MAAEC,UAAUvB;IAAc;IACpCoB,QAAQV;IACRc,iBAAiB,CAACJ,WAAWT,mBAAmB,MAAMS,MAAAA;;AAKhE;",
6
+ "names": ["React", "Input", "Settings", "SettingsForm", "meta", "Markdown", "SnippetsField", "value", "onChange", "readonly", "TextArea", "disabled", "rows", "event", "target", "MarkdownSettings", "settings", "onSettingsChange", "Viewport", "Section", "title", "name", "FieldSet", "schema", "visible", "path", "values", "debug", "fieldMap", "snippets", "onValuesChanged"]
7
+ }
@@ -3,12 +3,12 @@ import {
3
3
  Create,
4
4
  Open,
5
5
  Update
6
- } from "../chunk-JUGS6RKO.mjs";
7
- import "../chunk-3OPDJJJH.mjs";
6
+ } from "../chunk-43GF7QLH.mjs";
7
+ import "../chunk-IHC6DFTK.mjs";
8
8
  import "../chunk-HSLMI22Q.mjs";
9
9
 
10
10
  // src/blueprints/markdown-blueprint.ts
11
- import { Blueprint, Template } from "@dxos/blueprints";
11
+ import { Blueprint, Template } from "@dxos/compute";
12
12
  import { trim } from "@dxos/util";
13
13
  var BLUEPRINT_KEY = "org.dxos.blueprint.markdown";
14
14
  var make = () => Blueprint.make({
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/blueprints/markdown-blueprint.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AppCapabilities } from '@dxos/app-toolkit';\nimport { Blueprint, Template } from '@dxos/blueprints';\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: AppCapabilities.BlueprintDefinition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n"],
5
- "mappings": ";;;;;;;;;;AAKA,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,YAAiD;EACrDb,KAAKH;EACLC;AACF;AAEA,IAAA,6BAAee;",
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
6
  "names": ["Blueprint", "Template", "trim", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "tools", "toolDefinitions", "operations", "Create", "Open", "Update", "instructions", "Template", "source", "trim", "blueprint"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  Markdown_exports
4
- } from "./chunk-3OPDJJJH.mjs";
4
+ } from "./chunk-IHC6DFTK.mjs";
5
5
  import {
6
6
  __export
7
7
  } from "./chunk-HSLMI22Q.mjs";
@@ -18,8 +18,8 @@ __export(definitions_exports, {
18
18
  });
19
19
  import * as Schema from "effect/Schema";
20
20
  import { Capability } from "@dxos/app-framework";
21
+ import { Operation } from "@dxos/compute";
21
22
  import { Database, Ref } from "@dxos/echo";
22
- import { Operation } from "@dxos/operation";
23
23
  import { EditorViewMode } from "@dxos/ui-editor/types";
24
24
  import { trim } from "@dxos/util";
25
25
  import { meta } from "#meta";
@@ -156,4 +156,4 @@ export {
156
156
  Update,
157
157
  definitions_exports
158
158
  };
159
- //# sourceMappingURL=chunk-JUGS6RKO.mjs.map
159
+ //# sourceMappingURL=chunk-43GF7QLH.mjs.map
@@ -0,0 +1,7 @@
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
+ }
@@ -78,9 +78,9 @@ var Settings = Schema2.mutable(Schema2.Struct({
78
78
  title: "Enable debugging features",
79
79
  description: "Show developer tools and diagnostics for the editor."
80
80
  })),
81
- typewriter: Schema2.optional(Schema2.String.annotations({
82
- title: "Typewriter script",
83
- description: "Script to replay typed input for testing purposes."
81
+ snippets: Schema2.optional(Schema2.String.annotations({
82
+ title: "Snippets",
83
+ description: "Input snippets to replay for testing purposes."
84
84
  }))
85
85
  }));
86
86
 
@@ -119,4 +119,4 @@ export {
119
119
  Settings_exports,
120
120
  Markdown_exports
121
121
  };
122
- //# sourceMappingURL=chunk-3OPDJJJH.mjs.map
122
+ //# sourceMappingURL=chunk-IHC6DFTK.mjs.map
@@ -0,0 +1,7 @@
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": ";;;;;;AAMA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAI3B,SAASC,YAAY;AAMd,IAAMC,sBAA6BC,eACjCC,cAAO;EACZC,UAAiBC,cAAO;IAAEC,KAAYC;IAAQC,OAAcD;EAAO,CAAA;AACrE,CAAA,CAAA;UAeeE,uBAAAA;wBACFC,WAAWX,WAAWY,KAAuC,GAAGX,KAAKY,EAAE,sBAAsB;wBAG7FC,QAAQd,WAAWY,KAAmC,GAAGX,KAAKY,EAAE,mBAAmB;wBAGnFE,cAAcf,WAAWY,KAAuB,GAAGX,KAAKY,EAAE,0BAA0B;wBAGpFG,cAAchB,WAAWY,KAAyB,GAAGX,KAAKY,EAAE,0BAA0B;wBAGtFI,aAAajB,WAAWY,KAAkC,GAAGX,KAAKY,EAAE,wBAAwB;AAC3G,GAdiBH,yBAAAA,uBAAAA,CAAAA,EAAAA;;;;AC/BjB,SAASQ,2BAA2B;AAEpC,SAASC,QAAAA,aAAY;UAEJC,iBAAAA;kBACFC,kBAAmDH,oBAAoBI,iBAClF,GAAGH,MAAKI,EAAE,yBAAyB;AAEvC,GAJiBH,mBAAAA,iBAAAA,CAAAA,EAAAA;;;;ACTjB;;;kBAAAI;EAAA;;AAIA,YAAYC,aAAY;AAExB,SAASC,YAAYC,KAAKC,KAAKC,YAAY;AAC3C,SAASC,uBAAuBC,qBAAqBC,uBAAuB;AAC5E,SAASC,YAAY;;;ACRrB;;;;AAMA,YAAYC,aAAY;AAExB,SAASC,iBAAiBC,sBAAsB;AAKzC,IAAMC,WAAkBC,gBACtBC,eAAO;EACZC,iBAAiBJ,eAAeK,YAAY;IAC1CC,OAAO;IACPC,aAAa;EACf,CAAA;EACAC,iBAAwBC,iBACtBV,gBAAgBM,YAAY;IAC1BC,OAAO;IACPC,aAAa;EACf,CAAA,CAAA;EAEFG,SAAgBD,iBACPE,gBAAQN,YAAY;IACzBC,OAAO;IACPC,aAAa;EACf,CAAA,CAAA;EAEFK,kBAAyBH,iBAChBE,gBAAQN,YAAY;IACzBC,OAAO;IACPC,aAAa;EACf,CAAA,CAAA;EAEFM,SAAgBJ,iBACPE,gBAAQN,YAAY;IACzBC,OAAO;IACPC,aAAa;EACf,CAAA,CAAA;EAEFO,cAAqBL,iBACZE,gBAAQN,YAAY;IACzBC,OAAO;IACPC,aAAa;EACf,CAAA,CAAA;EAEFQ,OAAcN,iBACLE,gBAAQN,YAAY;IACzBC,OAAO;IACPC,aAAa;EACf,CAAA,CAAA;EAEFS,UAAiBP,iBACRQ,eAAOZ,YAAY;IACxBC,OAAO;IACPC,aAAa;EACf,CAAA,CAAA;AAEJ,CAAA,CAAA;;;ADjDK,IAAMW,YAA0BA;AAMhC,IAAMC,WAAkBC,eAAO;EACpCC,MAAaC,iBAAgBC,cAAM;EACnCC,aAAoBF,iBAAgBC,cAAM;EAC1CE,cAAqBF,eAAOG,KAAKC,oBAAoBC,IAAI,KAAA,GAAeN,gBAAQ;EAChFO,SAASC,IAAIA,IAAIC,KAAKA,IAAI,EAAEL,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;AAC3D,CAAA,EAAGF,KACDM,KAAKC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBR,IAAI;EAAC;EAAQ;CAAe,GAC5CS,sBAAsBT,IAAI,aAAA,GAC1BU,WAAWC,eAAeX,IAAI;EAC5BY,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAQK,IAAMC,OAAO,CAAC,EACnBb,UAAU,IACV,GAAGc,MAAAA,IACiE,CAAC,MAAC;AACtE,QAAMC,MAAMC,IAAIH,KAAKvB,UAAU;IAAE,GAAGwB;IAAOd,SAASC,IAAIY,KAAKX,KAAKW,KAAK;MAAEb;IAAQ,CAAA,CAAA;EAAI,CAAA;AAErFgB,MAAIC,UAAUF,IAAIf,QAAQkB,QAASH,GAAAA;AACnC,SAAOA;AACT;",
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
+ }
@@ -5,7 +5,7 @@ import "../chunk-HSLMI22Q.mjs";
5
5
  import * as Effect from "effect/Effect";
6
6
  import { Plugin } from "@dxos/app-framework";
7
7
  import { AppPlugin } from "@dxos/app-toolkit";
8
- import { Operation } from "@dxos/operation";
8
+ import { Operation } from "@dxos/compute";
9
9
  import { SpaceOperation } from "@dxos/plugin-space/operations";
10
10
  import { Text } from "@dxos/schema";
11
11
  import { OperationHandler } from "#capabilities";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/cli/plugin.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/operation';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { Text } from '@dxos/schema';\n\nimport { OperationHandler } from '#capabilities';\nimport { meta } from '#meta';\nimport { Markdown } from '#types';\n\nexport const MarkdownPlugin = Plugin.define(meta).pipe(\n AppPlugin.addMetadataModule({\n metadata: {\n id: Markdown.Document.typename,\n metadata: {\n createObject: ((props, options) =>\n Effect.gen(function* () {\n const object = Markdown.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n })) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({ schema: [Markdown.Document, Text.Text] }),\n Plugin.make,\n);\n"],
5
- "mappings": ";;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AAErB,SAASC,wBAAwB;AACjC,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAElB,IAAMC,iBAAiBC,OAAOC,OAAOC,IAAAA,EAAMC,KAChDC,UAAUC,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,SAASC,SAASC;IACtBJ,UAAU;MACRK,cAAe,CAACC,OAAOC,YACdC,WAAI,aAAA;AACT,cAAMC,SAASP,SAASQ,KAAKJ,KAAAA;AAC7B,eAAO,OAAOK,UAAUC,OAAOC,eAAeC,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ;EACF;AACF,CAAA,GACAnB,UAAUoB,0BAA0B;EAAEC,UAAUC;AAAiB,CAAA,GACjEtB,UAAUuB,gBAAgB;EAAEC,QAAQ;IAACpB,SAASC;IAAUoB,KAAKA;;AAAM,CAAA,GACnE7B,OAAOgB,IAAI;",
6
- "names": ["Effect", "Plugin", "AppPlugin", "Operation", "SpaceOperation", "Text", "OperationHandler", "meta", "Markdown", "MarkdownPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addMetadataModule", "metadata", "id", "Markdown", "Document", "typename", "createObject", "props", "options", "gen", "object", "make", "Operation", "invoke", "SpaceOperation", "AddObject", "target", "hidden", "targetNodeId", "addOperationHandlerModule", "activate", "OperationHandler", "addSchemaModule", "schema", "Text"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { Text } from '@dxos/schema';\n\nimport { OperationHandler } from '#capabilities';\nimport { meta } from '#meta';\nimport { Markdown } from '#types';\n\nexport const MarkdownPlugin = Plugin.define(meta).pipe(\n AppPlugin.addMetadataModule({\n metadata: {\n id: Markdown.Document.typename,\n metadata: {\n createObject: ((props, options) =>\n Effect.gen(function* () {\n const object = Markdown.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n })) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({ schema: [Markdown.Document, Text.Text] }),\n Plugin.make,\n);\n"],
5
+ "mappings": ";;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AAErB,SAASC,wBAAwB;AACjC,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAElB,IAAMC,iBAAiBR,OAAOS,OAAOH,IAAAA,EAAMI,KAChDT,UAAUU,kBAAkB;EAC1BC,UAAU;IACRC,IAAIN,SAASO,SAASC;IACtBH,UAAU;MACRI,cAAe,CAACC,OAAOC,YACdC,WAAI,aAAA;AACT,cAAMC,SAASb,SAASc,KAAKJ,KAAAA;AAC7B,eAAO,OAAOf,UAAUoB,OAAOnB,eAAeoB,WAAW;UACvDH;UACAI,QAAQN,QAAQM;UAChBC,QAAQ;UACRC,cAAcR,QAAQQ;QACxB,CAAA;MACF,CAAA;IACJ;EACF;AACF,CAAA,GACAzB,UAAU0B,0BAA0B;EAAEC,UAAUvB;AAAiB,CAAA,GACjEJ,UAAU4B,gBAAgB;EAAEC,QAAQ;IAACvB,SAASO;IAAUV,KAAKA;;AAAM,CAAA,GACnEJ,OAAOqB,IAAI;",
6
+ "names": ["Effect", "Plugin", "AppPlugin", "Operation", "SpaceOperation", "Text", "OperationHandler", "meta", "Markdown", "MarkdownPlugin", "define", "pipe", "addMetadataModule", "metadata", "id", "Document", "typename", "createObject", "props", "options", "gen", "object", "make", "invoke", "AddObject", "target", "hidden", "targetNodeId", "addOperationHandlerModule", "activate", "addSchemaModule", "schema"]
7
7
  }
@@ -1,16 +1,16 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  Create
4
- } from "./chunk-JUGS6RKO.mjs";
4
+ } from "./chunk-43GF7QLH.mjs";
5
5
  import {
6
6
  Markdown_exports
7
- } from "./chunk-3OPDJJJH.mjs";
7
+ } from "./chunk-IHC6DFTK.mjs";
8
8
  import "./chunk-HSLMI22Q.mjs";
9
9
 
10
10
  // src/operations/create.ts
11
11
  import * as Effect from "effect/Effect";
12
+ import { Operation } from "@dxos/compute";
12
13
  import { Obj } from "@dxos/echo";
13
- import { Operation } from "@dxos/operation";
14
14
  import { CollectionModel } from "@dxos/schema";
15
15
  var handler = Create.pipe(Operation.withHandler(Effect.fn(function* ({ name, content }) {
16
16
  const object = Markdown_exports.make({
@@ -28,4 +28,4 @@ var create_default = handler;
28
28
  export {
29
29
  create_default as default
30
30
  };
31
- //# sourceMappingURL=create-SMQAIM3V.mjs.map
31
+ //# sourceMappingURL=create-PDW42WOY.mjs.map
@@ -0,0 +1,7 @@
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,15 +1,15 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  CreateMarkdown
4
- } from "./chunk-JUGS6RKO.mjs";
4
+ } from "./chunk-43GF7QLH.mjs";
5
5
  import {
6
6
  Markdown_exports
7
- } from "./chunk-3OPDJJJH.mjs";
7
+ } from "./chunk-IHC6DFTK.mjs";
8
8
  import "./chunk-HSLMI22Q.mjs";
9
9
 
10
10
  // src/operations/create-markdown.ts
11
11
  import * as Effect from "effect/Effect";
12
- import { Operation } from "@dxos/operation";
12
+ import { Operation } from "@dxos/compute";
13
13
  var handler = CreateMarkdown.pipe(Operation.withHandler(({ name, content }) => Effect.succeed({
14
14
  object: Markdown_exports.make({
15
15
  name,
@@ -20,4 +20,4 @@ var create_markdown_default = handler;
20
20
  export {
21
21
  create_markdown_default as default
22
22
  };
23
- //# sourceMappingURL=create-markdown-X2OASYKG.mjs.map
23
+ //# sourceMappingURL=create-markdown-BBPZPLQN.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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/operation';\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"],
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
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
6
  "names": ["Effect", "Operation", "handler", "CreateMarkdown", "pipe", "Operation", "withHandler", "name", "content", "succeed", "object", "Markdown", "make"]
7
7
  }
@@ -1,11 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  MarkdownCapabilities,
4
- MarkdownEvents,
5
- MarkdownStateSchema,
6
- Markdown_exports,
7
- Settings_exports
8
- } from "./chunk-3OPDJJJH.mjs";
4
+ MarkdownEvents
5
+ } from "./chunk-IHC6DFTK.mjs";
9
6
  import "./chunk-HSLMI22Q.mjs";
10
7
 
11
8
  // src/meta.ts
@@ -90,7 +87,7 @@ var getContentSnippet = (content = "", maxLines = 3) => {
90
87
  var setFallbackName = debounce((doc, content = "") => {
91
88
  const name = getFallbackName(content);
92
89
  if (doc.fallbackName !== name) {
93
- Obj.change(doc, (doc2) => {
90
+ Obj.update(doc, (doc2) => {
94
91
  doc2.fallbackName = name;
95
92
  });
96
93
  }
@@ -119,67 +116,28 @@ import * as Effect from "effect/Effect";
119
116
  import * as Option from "effect/Option";
120
117
  import { Plugin } from "@dxos/app-framework";
121
118
  import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
119
+ import { Operation } from "@dxos/compute";
122
120
  import { Annotation, Ref } from "@dxos/echo";
123
121
  import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
124
- import { Operation } from "@dxos/operation";
125
122
  import { SpaceOperation } from "@dxos/plugin-space/operations";
126
- import { translations as editorTranslations2 } from "@dxos/react-ui-editor";
123
+ import { translations as editorTranslations } from "@dxos/react-ui-editor/translations";
127
124
  import { Text } from "@dxos/schema";
128
125
  import { MarkdownBlueprint } from "#blueprints";
129
126
  import { AnchorSort, AppGraphSerializer, BlueprintDefinition, MarkdownSettings, MarkdownState, OperationHandler, ReactSurface } from "#capabilities";
130
- import { meta as meta3 } from "#meta";
131
- import { MarkdownOperation } from "#operations";
132
- import { Markdown as Markdown3, MarkdownEvents as MarkdownEvents2 } from "#types";
133
-
134
- // src/translations.ts
135
- import { translations as editorTranslations } from "@dxos/react-ui-editor";
136
127
  import { meta as meta2 } from "#meta";
137
- import { Markdown as Markdown2 } from "#types";
138
- var translations = [
139
- {
140
- "en-US": {
141
- [Markdown2.Document.typename]: {
142
- "typename.label": "Document",
143
- "typename.label_zero": "Documents",
144
- "typename.label_one": "Document",
145
- "typename.label_other": "Documents",
146
- "object-name.placeholder": "New document",
147
- "add-object.label": "Add document",
148
- "rename-object.label": "Rename document",
149
- "delete-object.label": "Delete document",
150
- "object-deleted.label": "Document deleted"
151
- },
152
- [meta2.id]: {
153
- "plugin.name": "Editor",
154
- "choose-markdown-from-space-dialog.title": "Choose one or more documents to add",
155
- "empty-choose-markdown-from-space.message": "None available; try creating a new one instead?",
156
- "chooser-done.label": "Add selected",
157
- "editor.placeholder": "Start typing\u2026",
158
- "toggle-view-mode.label": "Toggle read-only",
159
- "upload-image.label": "Upload image",
160
- "fallback.title": "Untitled",
161
- "navigate-to-document.label": "Open document",
162
- "words.label": "words",
163
- "words.label_zero": "words",
164
- "words.label_one": "word",
165
- "words.label_other": "words"
166
- }
167
- }
168
- },
169
- ...editorTranslations
170
- ];
171
-
172
- // src/MarkdownPlugin.tsx
173
- var MarkdownPlugin = Plugin.define(meta3).pipe(AppPlugin.addBlueprintDefinitionModule({
128
+ import { MarkdownOperation } from "#operations";
129
+ import { translations } from "#translations";
130
+ import { Markdown as Markdown2, MarkdownEvents as MarkdownEvents2 } from "#types";
131
+ var MarkdownPlugin = Plugin.define(meta2).pipe(AppPlugin.addBlueprintDefinitionModule({
174
132
  activate: BlueprintDefinition
175
133
  }), AppPlugin.addMetadataModule({
176
134
  metadata: {
177
- id: Markdown3.Document.typename,
135
+ id: Markdown2.Document.typename,
178
136
  metadata: {
179
137
  // TODO(dmaretskyi): Remove label, icon and iconHue and query them of schema.
180
138
  label: (object) => object.name || object.fallbackName,
181
- icon: Annotation.IconAnnotation.get(Markdown3.Document).pipe(Option.getOrThrow).icon,
182
- iconHue: Annotation.IconAnnotation.get(Markdown3.Document).pipe(Option.getOrThrow).hue ?? "white",
139
+ icon: Annotation.IconAnnotation.get(Markdown2.Document).pipe(Option.getOrThrow).icon,
140
+ iconHue: Annotation.IconAnnotation.get(Markdown2.Document).pipe(Option.getOrThrow).hue ?? "white",
183
141
  blueprints: [
184
142
  MarkdownBlueprint.key
185
143
  ],
@@ -203,7 +161,7 @@ var MarkdownPlugin = Plugin.define(meta3).pipe(AppPlugin.addBlueprintDefinitionM
203
161
  }
204
162
  },
205
163
  createObject: (props, options) => Effect.gen(function* () {
206
- const object = Markdown3.make(props);
164
+ const object = Markdown2.make(props);
207
165
  return yield* Operation.invoke(SpaceOperation.AddObject, {
208
166
  object,
209
167
  target: options.target,
@@ -218,7 +176,7 @@ var MarkdownPlugin = Plugin.define(meta3).pipe(AppPlugin.addBlueprintDefinitionM
218
176
  activate: OperationHandler
219
177
  }), AppPlugin.addSchemaModule({
220
178
  schema: [
221
- Markdown3.Document,
179
+ Markdown2.Document,
222
180
  Text.Text
223
181
  ]
224
182
  }), AppPlugin.addSurfaceModule({
@@ -229,7 +187,7 @@ var MarkdownPlugin = Plugin.define(meta3).pipe(AppPlugin.addBlueprintDefinitionM
229
187
  }), AppPlugin.addTranslationsModule({
230
188
  translations: [
231
189
  ...translations,
232
- ...editorTranslations2
190
+ ...editorTranslations
233
191
  ]
234
192
  }), Plugin.addModule({
235
193
  activatesOn: AppActivationEvents.SetupSettings,
@@ -276,10 +234,10 @@ import { useTextEditor } from "@dxos/react-ui-editor";
276
234
  import { mobileSlots, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, documentSlots, formattingListener, processEditorPayload, editorClassNames } from "@dxos/ui-editor";
277
235
  import { mx } from "@dxos/ui-theme";
278
236
  import { isTruthy } from "@dxos/util";
279
- import { meta as meta4 } from "#meta";
237
+ import { meta as meta3 } from "#meta";
280
238
  import { MarkdownCapabilities as MarkdownCapabilities2 } from "#types";
281
239
  var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attendableId, role, compact, viewMode, initialValue, editorStateStore, toolbarState, extensions, slots, onFileUpload }, forwardedRef) => {
282
- const { t } = useTranslation(meta4.id);
240
+ const { t } = useTranslation(meta3.id);
283
241
  const { themeMode } = useThemeContext();
284
242
  const registry = useContext(RegistryContext);
285
243
  const updateToolbarState = useCallback((formatting) => {
@@ -612,16 +570,13 @@ var MarkdownEditor = {
612
570
  };
613
571
 
614
572
  // src/components/index.ts
615
- var MarkdownSettings2 = lazy(() => import("./MarkdownSettings-QMPISOEU.mjs"));
573
+ var MarkdownSettings2 = lazy(() => import("./MarkdownSettings-LE66LODL.mjs"));
616
574
  export {
617
- Markdown_exports as Markdown,
618
575
  MarkdownCapabilities,
619
576
  MarkdownEditor,
620
577
  MarkdownEditorProvider,
621
578
  MarkdownEvents,
622
579
  MarkdownPlugin,
623
- MarkdownStateSchema,
624
- Settings_exports as Settings,
625
580
  getContentSnippet,
626
581
  getFallbackName,
627
582
  isEditorModel,