@dxos/plugin-markdown 0.8.2-main.f11618f → 0.8.2-staging.42af850

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 (210) hide show
  1. package/dist/lib/browser/MarkdownContainer-5IEINNQB.mjs +588 -0
  2. package/dist/lib/browser/MarkdownContainer-5IEINNQB.mjs.map +7 -0
  3. package/dist/lib/browser/MarkdownPreview-YW5CS3ID.mjs +87 -0
  4. package/dist/lib/browser/MarkdownPreview-YW5CS3ID.mjs.map +7 -0
  5. package/dist/lib/browser/anchor-sort-VS4OZVPP.mjs +32 -0
  6. package/dist/lib/browser/anchor-sort-VS4OZVPP.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-OCXP7PCK.mjs → app-graph-serializer-V6RLEHVY.mjs} +5 -6
  8. package/dist/lib/browser/app-graph-serializer-V6RLEHVY.mjs.map +7 -0
  9. package/dist/lib/browser/{artifact-definition-XTVOUMMI.mjs → artifact-definition-5NAODQLG.mjs} +65 -17
  10. package/dist/lib/browser/artifact-definition-5NAODQLG.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-QV6ZIXAD.mjs → chunk-77NGW7EO.mjs} +6 -7
  12. package/dist/lib/browser/chunk-77NGW7EO.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-ACAID3XF.mjs +20 -0
  14. package/dist/lib/browser/chunk-ACAID3XF.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-LJ2UFBJ2.mjs → chunk-C5RABVIX.mjs} +3 -4
  16. package/dist/lib/browser/chunk-C5RABVIX.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-ECSM56YC.mjs +80 -0
  18. package/dist/lib/browser/chunk-ECSM56YC.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-NAGMSX77.mjs → chunk-QVJETNGS.mjs} +2 -2
  20. package/dist/lib/{node-esm/chunk-ETXPC5VP.mjs.map → browser/chunk-QVJETNGS.mjs.map} +1 -1
  21. package/dist/lib/browser/index.mjs +31 -19
  22. package/dist/lib/browser/index.mjs.map +3 -3
  23. package/dist/lib/browser/intent-resolver-4GDYST4Y.mjs +65 -0
  24. package/dist/lib/browser/intent-resolver-4GDYST4Y.mjs.map +7 -0
  25. package/dist/lib/browser/meta.json +1 -1
  26. package/dist/lib/browser/{react-surface-LBCMSLJ5.mjs → react-surface-QE4SKXBT.mjs} +80 -66
  27. package/dist/lib/browser/react-surface-QE4SKXBT.mjs.map +7 -0
  28. package/dist/lib/browser/{settings-EQSDBX6O.mjs → settings-W5CK4PXP.mjs} +2 -2
  29. package/dist/lib/browser/{state-AIN4J7N5.mjs → state-KI6PJ6DT.mjs} +3 -3
  30. package/dist/lib/browser/state-KI6PJ6DT.mjs.map +7 -0
  31. package/dist/lib/browser/types/index.mjs +1 -1
  32. package/dist/lib/node/MarkdownContainer-LSNNPNRB.cjs +601 -0
  33. package/dist/lib/node/MarkdownContainer-LSNNPNRB.cjs.map +7 -0
  34. package/dist/lib/node/MarkdownPreview-G34HSQEB.cjs +110 -0
  35. package/dist/lib/node/MarkdownPreview-G34HSQEB.cjs.map +7 -0
  36. package/dist/lib/node/{thread-MXEGV6HS.cjs → anchor-sort-NHVF23EU.cjs} +15 -20
  37. package/dist/lib/node/anchor-sort-NHVF23EU.cjs.map +7 -0
  38. package/dist/lib/node/{app-graph-serializer-KBDLASRP.cjs → app-graph-serializer-CLALIYN3.cjs} +10 -11
  39. package/dist/lib/node/app-graph-serializer-CLALIYN3.cjs.map +7 -0
  40. package/dist/lib/node/{artifact-definition-ADEN2KD6.cjs → artifact-definition-VEAHK7BX.cjs} +68 -21
  41. package/dist/lib/node/artifact-definition-VEAHK7BX.cjs.map +7 -0
  42. package/dist/lib/node/{chunk-QRE5L6ZC.cjs → chunk-C4HR7UXE.cjs} +15 -15
  43. package/dist/lib/node/chunk-C4HR7UXE.cjs.map +7 -0
  44. package/dist/lib/node/{chunk-WGMVEPB3.cjs → chunk-G7RBJX22.cjs} +8 -9
  45. package/dist/lib/node/chunk-G7RBJX22.cjs.map +7 -0
  46. package/dist/lib/node/{chunk-DZXTXSXX.cjs → chunk-IFYSBQE5.cjs} +5 -5
  47. package/dist/lib/node/{chunk-DZXTXSXX.cjs.map → chunk-IFYSBQE5.cjs.map} +1 -1
  48. package/dist/lib/node/{chunk-YHL4JSA6.cjs → chunk-RQS4KBMG.cjs} +38 -42
  49. package/dist/lib/node/chunk-RQS4KBMG.cjs.map +7 -0
  50. package/dist/lib/node/{chunk-JO4SBK36.cjs → chunk-ZDTL47I7.cjs} +6 -7
  51. package/dist/lib/node/chunk-ZDTL47I7.cjs.map +7 -0
  52. package/dist/lib/node/index.cjs +42 -30
  53. package/dist/lib/node/index.cjs.map +3 -3
  54. package/dist/lib/node/intent-resolver-AUZVK3NZ.cjs +78 -0
  55. package/dist/lib/node/intent-resolver-AUZVK3NZ.cjs.map +7 -0
  56. package/dist/lib/node/meta.json +1 -1
  57. package/dist/lib/node/react-surface-WJZTEBYO.cjs +213 -0
  58. package/dist/lib/node/react-surface-WJZTEBYO.cjs.map +7 -0
  59. package/dist/lib/node/{settings-2JXASSLU.cjs → settings-IRKU3WPM.cjs} +6 -6
  60. package/dist/lib/node/{state-PC7IVXFP.cjs → state-KKDRAG7X.cjs} +7 -7
  61. package/dist/lib/node/state-KKDRAG7X.cjs.map +7 -0
  62. package/dist/lib/node/types/index.cjs +7 -7
  63. package/dist/lib/node/types/index.cjs.map +1 -1
  64. package/dist/lib/node-esm/MarkdownContainer-UZSLXMWO.mjs +589 -0
  65. package/dist/lib/node-esm/MarkdownContainer-UZSLXMWO.mjs.map +7 -0
  66. package/dist/lib/node-esm/MarkdownPreview-TCV7BI32.mjs +88 -0
  67. package/dist/lib/node-esm/MarkdownPreview-TCV7BI32.mjs.map +7 -0
  68. package/dist/lib/node-esm/anchor-sort-G2HLCYFK.mjs +33 -0
  69. package/dist/lib/node-esm/anchor-sort-G2HLCYFK.mjs.map +7 -0
  70. package/dist/lib/node-esm/{app-graph-serializer-67CO7ST3.mjs → app-graph-serializer-C3RNTQGM.mjs} +5 -6
  71. package/dist/lib/node-esm/app-graph-serializer-C3RNTQGM.mjs.map +7 -0
  72. package/dist/lib/node-esm/{artifact-definition-KTS5M2FW.mjs → artifact-definition-7TIJW2CO.mjs} +65 -17
  73. package/dist/lib/node-esm/artifact-definition-7TIJW2CO.mjs.map +7 -0
  74. package/dist/lib/node-esm/{chunk-4U2F4EB7.mjs → chunk-6RPARLIK.mjs} +6 -7
  75. package/dist/lib/node-esm/chunk-6RPARLIK.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-PALFXZBY.mjs → chunk-EIUTPXGL.mjs} +10 -10
  77. package/dist/lib/node-esm/chunk-EIUTPXGL.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-ETXPC5VP.mjs → chunk-JXXDCSMW.mjs} +2 -2
  79. package/dist/lib/{browser/chunk-NAGMSX77.mjs.map → node-esm/chunk-JXXDCSMW.mjs.map} +1 -1
  80. package/dist/lib/node-esm/chunk-NCMPVEXO.mjs +81 -0
  81. package/dist/lib/node-esm/chunk-NCMPVEXO.mjs.map +7 -0
  82. package/dist/lib/node-esm/{chunk-VQA6BQGT.mjs → chunk-TCFJNUAE.mjs} +3 -4
  83. package/dist/lib/node-esm/chunk-TCFJNUAE.mjs.map +7 -0
  84. package/dist/lib/node-esm/index.mjs +31 -19
  85. package/dist/lib/node-esm/index.mjs.map +3 -3
  86. package/dist/lib/node-esm/intent-resolver-FTNXUNI2.mjs +66 -0
  87. package/dist/lib/node-esm/intent-resolver-FTNXUNI2.mjs.map +7 -0
  88. package/dist/lib/node-esm/meta.json +1 -1
  89. package/dist/lib/node-esm/{react-surface-737EXAWT.mjs → react-surface-XNM3YDFB.mjs} +80 -66
  90. package/dist/lib/node-esm/react-surface-XNM3YDFB.mjs.map +7 -0
  91. package/dist/lib/node-esm/{settings-67RVIH3N.mjs → settings-MK7D7LHQ.mjs} +2 -2
  92. package/dist/lib/node-esm/{state-PNOPM4TS.mjs → state-LLGVRYKL.mjs} +3 -3
  93. package/dist/lib/node-esm/state-LLGVRYKL.mjs.map +7 -0
  94. package/dist/lib/node-esm/types/index.mjs +1 -1
  95. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/anchor-sort.d.ts +6 -0
  97. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
  98. package/dist/types/src/capabilities/app-graph-serializer.d.ts +2 -2
  99. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/index.d.ts +7 -7
  102. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  104. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/state.d.ts +2 -2
  107. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  108. package/dist/types/src/components/MarkdownContainer.d.ts +5 -3
  109. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  110. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +3 -18
  111. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  112. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +2 -2
  113. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +1 -1
  114. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +4 -172
  115. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  117. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  119. package/dist/types/src/components/index.d.ts +2 -2
  120. package/dist/types/src/components/index.d.ts.map +1 -1
  121. package/dist/types/src/extensions.d.ts +8 -5
  122. package/dist/types/src/extensions.d.ts.map +1 -1
  123. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  124. package/dist/types/src/translations.d.ts +2 -46
  125. package/dist/types/src/translations.d.ts.map +1 -1
  126. package/dist/types/src/types/schema.d.ts +21 -525
  127. package/dist/types/src/types/schema.d.ts.map +1 -1
  128. package/dist/types/src/types/types.d.ts +40 -200
  129. package/dist/types/src/types/types.d.ts.map +1 -1
  130. package/dist/types/src/util.d.ts.map +1 -1
  131. package/dist/types/tsconfig.tsbuildinfo +1 -1
  132. package/package.json +48 -39
  133. package/src/MarkdownPlugin.tsx +19 -9
  134. package/src/capabilities/anchor-sort.ts +30 -0
  135. package/src/capabilities/app-graph-serializer.ts +4 -5
  136. package/src/capabilities/artifact-definition.ts +48 -10
  137. package/src/capabilities/index.ts +1 -1
  138. package/src/capabilities/intent-resolver.ts +29 -34
  139. package/src/capabilities/react-surface.tsx +14 -6
  140. package/src/capabilities/state.ts +3 -3
  141. package/src/components/MarkdownContainer.tsx +19 -7
  142. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +1 -1
  143. package/src/components/MarkdownEditor/MarkdownEditor.tsx +29 -71
  144. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +9 -4
  145. package/src/components/MarkdownPreview/MarkdownPreview.tsx +8 -8
  146. package/src/components/Suggestions.stories.tsx +53 -21
  147. package/src/components/Toolbar.stories.tsx +16 -16
  148. package/src/extensions.tsx +45 -16
  149. package/src/hooks/useSelectCurrentThread.tsx +2 -2
  150. package/src/translations.ts +1 -3
  151. package/src/types/schema.ts +19 -17
  152. package/src/types/types.ts +23 -21
  153. package/src/util.tsx +4 -4
  154. package/dist/lib/browser/MarkdownContainer-5XV7K2NX.mjs +0 -567
  155. package/dist/lib/browser/MarkdownContainer-5XV7K2NX.mjs.map +0 -7
  156. package/dist/lib/browser/MarkdownPreview-DX5U5LCX.mjs +0 -81
  157. package/dist/lib/browser/MarkdownPreview-DX5U5LCX.mjs.map +0 -7
  158. package/dist/lib/browser/app-graph-serializer-OCXP7PCK.mjs.map +0 -7
  159. package/dist/lib/browser/artifact-definition-XTVOUMMI.mjs.map +0 -7
  160. package/dist/lib/browser/chunk-5QXYEKSX.mjs +0 -20
  161. package/dist/lib/browser/chunk-5QXYEKSX.mjs.map +0 -7
  162. package/dist/lib/browser/chunk-GVOEHF7E.mjs +0 -84
  163. package/dist/lib/browser/chunk-GVOEHF7E.mjs.map +0 -7
  164. package/dist/lib/browser/chunk-LJ2UFBJ2.mjs.map +0 -7
  165. package/dist/lib/browser/chunk-QV6ZIXAD.mjs.map +0 -7
  166. package/dist/lib/browser/intent-resolver-H37L3DBD.mjs +0 -86
  167. package/dist/lib/browser/intent-resolver-H37L3DBD.mjs.map +0 -7
  168. package/dist/lib/browser/react-surface-LBCMSLJ5.mjs.map +0 -7
  169. package/dist/lib/browser/state-AIN4J7N5.mjs.map +0 -7
  170. package/dist/lib/browser/thread-MFKBUVCB.mjs +0 -37
  171. package/dist/lib/browser/thread-MFKBUVCB.mjs.map +0 -7
  172. package/dist/lib/node/MarkdownContainer-5EQTBXV3.cjs +0 -580
  173. package/dist/lib/node/MarkdownContainer-5EQTBXV3.cjs.map +0 -7
  174. package/dist/lib/node/MarkdownPreview-W7QIN2KJ.cjs +0 -104
  175. package/dist/lib/node/MarkdownPreview-W7QIN2KJ.cjs.map +0 -7
  176. package/dist/lib/node/app-graph-serializer-KBDLASRP.cjs.map +0 -7
  177. package/dist/lib/node/artifact-definition-ADEN2KD6.cjs.map +0 -7
  178. package/dist/lib/node/chunk-JO4SBK36.cjs.map +0 -7
  179. package/dist/lib/node/chunk-QRE5L6ZC.cjs.map +0 -7
  180. package/dist/lib/node/chunk-WGMVEPB3.cjs.map +0 -7
  181. package/dist/lib/node/chunk-YHL4JSA6.cjs.map +0 -7
  182. package/dist/lib/node/intent-resolver-NX5QNRYF.cjs +0 -99
  183. package/dist/lib/node/intent-resolver-NX5QNRYF.cjs.map +0 -7
  184. package/dist/lib/node/react-surface-DJIZSVMN.cjs +0 -199
  185. package/dist/lib/node/react-surface-DJIZSVMN.cjs.map +0 -7
  186. package/dist/lib/node/state-PC7IVXFP.cjs.map +0 -7
  187. package/dist/lib/node/thread-MXEGV6HS.cjs.map +0 -7
  188. package/dist/lib/node-esm/MarkdownContainer-LONZOJJX.mjs +0 -568
  189. package/dist/lib/node-esm/MarkdownContainer-LONZOJJX.mjs.map +0 -7
  190. package/dist/lib/node-esm/MarkdownPreview-T3OW2EN4.mjs +0 -82
  191. package/dist/lib/node-esm/MarkdownPreview-T3OW2EN4.mjs.map +0 -7
  192. package/dist/lib/node-esm/app-graph-serializer-67CO7ST3.mjs.map +0 -7
  193. package/dist/lib/node-esm/artifact-definition-KTS5M2FW.mjs.map +0 -7
  194. package/dist/lib/node-esm/chunk-4U2F4EB7.mjs.map +0 -7
  195. package/dist/lib/node-esm/chunk-NUZHKZSZ.mjs +0 -85
  196. package/dist/lib/node-esm/chunk-NUZHKZSZ.mjs.map +0 -7
  197. package/dist/lib/node-esm/chunk-PALFXZBY.mjs.map +0 -7
  198. package/dist/lib/node-esm/chunk-VQA6BQGT.mjs.map +0 -7
  199. package/dist/lib/node-esm/intent-resolver-XES4ZCA6.mjs +0 -87
  200. package/dist/lib/node-esm/intent-resolver-XES4ZCA6.mjs.map +0 -7
  201. package/dist/lib/node-esm/react-surface-737EXAWT.mjs.map +0 -7
  202. package/dist/lib/node-esm/state-PNOPM4TS.mjs.map +0 -7
  203. package/dist/lib/node-esm/thread-5U4KSBED.mjs +0 -38
  204. package/dist/lib/node-esm/thread-5U4KSBED.mjs.map +0 -7
  205. package/dist/types/src/capabilities/thread.d.ts +0 -6
  206. package/dist/types/src/capabilities/thread.d.ts.map +0 -1
  207. package/src/capabilities/thread.ts +0 -35
  208. /package/dist/lib/browser/{settings-EQSDBX6O.mjs.map → settings-W5CK4PXP.mjs.map} +0 -0
  209. /package/dist/lib/node/{settings-2JXASSLU.cjs.map → settings-IRKU3WPM.cjs.map} +0 -0
  210. /package/dist/lib/node-esm/{settings-67RVIH3N.mjs.map → settings-MK7D7LHQ.mjs.map} +0 -0
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var state_PC7IVXFP_exports = {};
20
- __export(state_PC7IVXFP_exports, {
19
+ var state_KKDRAG7X_exports = {};
20
+ __export(state_KKDRAG7X_exports, {
21
21
  default: () => state_default
22
22
  });
23
- module.exports = __toCommonJS(state_PC7IVXFP_exports);
24
- var import_chunk_DZXTXSXX = require("./chunk-DZXTXSXX.cjs");
23
+ module.exports = __toCommonJS(state_KKDRAG7X_exports);
24
+ var import_chunk_IFYSBQE5 = require("./chunk-IFYSBQE5.cjs");
25
25
  var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
26
26
  var import_app_framework = require("@dxos/app-framework");
27
27
  var import_local_storage = require("@dxos/local-storage");
@@ -37,15 +37,15 @@ var state_default = (context) => {
37
37
  });
38
38
  const editorState = (0, import_react_ui_editor.createEditorStateStore)(`${import_chunk_ZU5OIHCY.MARKDOWN_PLUGIN}/editor`);
39
39
  const getViewMode = (id) => {
40
- const defaultViewMode = context.requestCapability(import_app_framework.Capabilities.SettingsStore).getStore(import_chunk_ZU5OIHCY.MARKDOWN_PLUGIN).value.defaultViewMode;
40
+ const defaultViewMode = context.getCapability(import_app_framework.Capabilities.SettingsStore).getStore(import_chunk_ZU5OIHCY.MARKDOWN_PLUGIN).value.defaultViewMode;
41
41
  return id && state.values.viewMode[id] || defaultViewMode;
42
42
  };
43
43
  const setViewMode = (id, viewMode) => state.values.viewMode[id] = viewMode;
44
- return (0, import_app_framework.contributes)(import_chunk_DZXTXSXX.MarkdownCapabilities.State, {
44
+ return (0, import_app_framework.contributes)(import_chunk_IFYSBQE5.MarkdownCapabilities.State, {
45
45
  state: state.values,
46
46
  editorState,
47
47
  getViewMode,
48
48
  setViewMode
49
49
  });
50
50
  };
51
- //# sourceMappingURL=state-PC7IVXFP.cjs.map
51
+ //# sourceMappingURL=state-KKDRAG7X.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/state.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { type EditorViewMode, createEditorStateStore } from '@dxos/react-ui-editor';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownPluginState, type MarkdownSettingsProps } from '../types';\n\nexport default (context: PluginContext) => {\n const state = new LocalStorageStore<MarkdownPluginState>(MARKDOWN_PLUGIN, { extensionProviders: [], viewMode: {} });\n state.prop({ key: 'viewMode', type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>() });\n\n // TODO(wittjosiah): Fold into state.\n const editorState = createEditorStateStore(`${MARKDOWN_PLUGIN}/editor`);\n\n const getViewMode = (id: string) => {\n const defaultViewMode = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value.defaultViewMode;\n return (id && state.values.viewMode[id]) || defaultViewMode;\n };\n\n const setViewMode = (id: string, viewMode: EditorViewMode) => (state.values.viewMode[id] = viewMode);\n\n // Return object with methods.\n return contributes(MarkdownCapabilities.State, { state: state.values, editorState, getViewMode, setViewMode });\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA8D;AAC9D,2BAAkC;AAClC,6BAA4D;AAM5D,IAAA,gBAAe,CAACA,YAAAA;AACd,QAAMC,QAAQ,IAAIC,uCAAuCC,uCAAiB;IAAEC,oBAAoB,CAAA;IAAIC,UAAU,CAAC;EAAE,CAAA;AACjHJ,QAAMK,KAAK;IAAEC,KAAK;IAAYC,MAAMN,uCAAkBO,KAAI;EAAsC,CAAA;AAGhG,QAAMC,kBAAcC,+CAAuB,GAAGR,qCAAAA,SAAwB;AAEtE,QAAMS,cAAc,CAACC,OAAAA;AACnB,UAAMC,kBAAkBd,QACrBe,cAAcC,kCAAaC,aAAa,EACxCC,SAAgCf,qCAAAA,EAAkBgB,MAAML;AAC3D,WAAQD,MAAMZ,MAAMmB,OAAOf,SAASQ,EAAAA,KAAQC;EAC9C;AAEA,QAAMO,cAAc,CAACR,IAAYR,aAA8BJ,MAAMmB,OAAOf,SAASQ,EAAAA,IAAMR;AAG3F,aAAOiB,kCAAYC,2CAAqBC,OAAO;IAAEvB,OAAOA,MAAMmB;IAAQV;IAAaE;IAAaS;EAAY,CAAA;AAC9G;",
6
+ "names": ["context", "state", "LocalStorageStore", "MARKDOWN_PLUGIN", "extensionProviders", "viewMode", "prop", "key", "type", "json", "editorState", "createEditorStateStore", "getViewMode", "id", "defaultViewMode", "getCapability", "Capabilities", "SettingsStore", "getStore", "value", "values", "setViewMode", "contributes", "MarkdownCapabilities", "State"]
7
+ }
@@ -18,15 +18,15 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var types_exports = {};
20
20
  __export(types_exports, {
21
- DocumentSchema: () => import_chunk_YHL4JSA6.DocumentSchema,
22
- DocumentType: () => import_chunk_YHL4JSA6.DocumentType,
23
- MarkdownAction: () => import_chunk_YHL4JSA6.MarkdownAction,
24
- MarkdownSettingsSchema: () => import_chunk_YHL4JSA6.MarkdownSettingsSchema,
25
- createDocument: () => import_chunk_YHL4JSA6.createDocument,
26
- isEditorModel: () => import_chunk_YHL4JSA6.isEditorModel
21
+ DocumentSchema: () => import_chunk_RQS4KBMG.DocumentSchema,
22
+ DocumentType: () => import_chunk_RQS4KBMG.DocumentType,
23
+ MarkdownAction: () => import_chunk_RQS4KBMG.MarkdownAction,
24
+ MarkdownSettingsSchema: () => import_chunk_RQS4KBMG.MarkdownSettingsSchema,
25
+ createDocument: () => import_chunk_RQS4KBMG.createDocument,
26
+ isEditorModel: () => import_chunk_RQS4KBMG.isEditorModel
27
27
  });
28
28
  module.exports = __toCommonJS(types_exports);
29
- var import_chunk_YHL4JSA6 = require("../chunk-YHL4JSA6.cjs");
29
+ var import_chunk_RQS4KBMG = require("../chunk-RQS4KBMG.cjs");
30
30
  var import_chunk_ZU5OIHCY = require("../chunk-ZU5OIHCY.cjs");
31
31
  // Annotate the CommonJS export names for ESM import in node:
32
32
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.cjs"],
4
- "sourcesContent": ["import {\n DocumentSchema,\n DocumentType,\n MarkdownAction,\n MarkdownSettingsSchema,\n createDocument,\n isEditorModel\n} from \"../chunk-YHL4JSA6.cjs\";\nimport \"../chunk-ZU5OIHCY.cjs\";\nexport {\n DocumentSchema,\n DocumentType,\n MarkdownAction,\n MarkdownSettingsSchema,\n createDocument,\n isEditorModel\n};\n//# sourceMappingURL=index.cjs.map\n"],
4
+ "sourcesContent": ["import {\n DocumentSchema,\n DocumentType,\n MarkdownAction,\n MarkdownSettingsSchema,\n createDocument,\n isEditorModel\n} from \"../chunk-RQS4KBMG.cjs\";\nimport \"../chunk-ZU5OIHCY.cjs\";\nexport {\n DocumentSchema,\n DocumentType,\n MarkdownAction,\n MarkdownSettingsSchema,\n createDocument,\n isEditorModel\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAOO;AACP,4BAAO;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,589 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import "./chunk-EIUTPXGL.mjs";
3
+ import {
4
+ MarkdownCapabilities
5
+ } from "./chunk-JXXDCSMW.mjs";
6
+ import {
7
+ getFallbackName,
8
+ setFallbackName
9
+ } from "./chunk-6RPARLIK.mjs";
10
+ import {
11
+ DocumentType
12
+ } from "./chunk-NCMPVEXO.mjs";
13
+ import {
14
+ MARKDOWN_PLUGIN
15
+ } from "./chunk-RX63ZNML.mjs";
16
+
17
+ // packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx
18
+ import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
19
+ import { Rx } from "@effect-rx/rx-react";
20
+ import React3, { useEffect as useEffect2, useMemo as useMemo4 } from "react";
21
+ import { Capabilities, useAppGraph, useCapabilities as useCapabilities2 } from "@dxos/app-framework";
22
+ import { isInstanceOf } from "@dxos/echo-schema";
23
+ import { fullyQualifiedId as fullyQualifiedId2, getSpace as getSpace2 } from "@dxos/react-client/echo";
24
+ import { DataType } from "@dxos/schema";
25
+
26
+ // packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx
27
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
28
+ import React, { useMemo as useMemo2, useEffect, useCallback } from "react";
29
+ import { useDropzone } from "react-dropzone";
30
+ import { invariant as invariant2 } from "@dxos/invariant";
31
+ import { useThemeContext, useTranslation } from "@dxos/react-ui";
32
+ import { EditorToolbar, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorSlots, editorGutter, processEditorPayload, stackItemContentEditorClassNames, useFormattingState, useTextEditor, useEditorToolbarState, addLink } from "@dxos/react-ui-editor";
33
+ import { StackItem } from "@dxos/react-ui-stack";
34
+ import { isNotFalsy, isNonNullable } from "@dxos/util";
35
+
36
+ // packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx
37
+ import { EditorView } from "@codemirror/view";
38
+ import { Schema } from "effect";
39
+ import { useMemo } from "react";
40
+ import { createResolver, LayoutAction, useIntentResolver } from "@dxos/app-framework";
41
+ import { invariant } from "@dxos/invariant";
42
+ import { Cursor, setSelection } from "@dxos/react-ui-editor";
43
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
44
+ var useSelectCurrentThread = (editorView, documentId2) => {
45
+ const scrollIntoViewResolver = useMemo(() => createResolver({
46
+ intent: LayoutAction.UpdateLayout,
47
+ position: "hoist",
48
+ filter: (data) => {
49
+ if (!Schema.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
50
+ return false;
51
+ }
52
+ return !!editorView && data.subject === documentId2 && !!data.options?.cursor;
53
+ },
54
+ resolve: ({ options: { cursor } }) => {
55
+ invariant(editorView, "Editor view is not defined.", {
56
+ F: __dxlog_file,
57
+ L: 32,
58
+ S: void 0,
59
+ A: [
60
+ "editorView",
61
+ "'Editor view is not defined.'"
62
+ ]
63
+ });
64
+ const range = Cursor.getRangeFromCursor(editorView.state, cursor);
65
+ if (range) {
66
+ const selection = editorView.state.selection.main.from !== range.from ? {
67
+ anchor: range.from
68
+ } : void 0;
69
+ const effects = [
70
+ // NOTE: This does not use the DOM scrollIntoView function.
71
+ EditorView.scrollIntoView(range.from, {
72
+ y: "start",
73
+ yMargin: 96
74
+ })
75
+ ];
76
+ if (selection) {
77
+ effects.push(setSelection.of({
78
+ current: documentId2
79
+ }));
80
+ }
81
+ editorView.dispatch({
82
+ effects,
83
+ selection: selection ? {
84
+ anchor: range.from
85
+ } : void 0
86
+ });
87
+ }
88
+ }
89
+ }), [
90
+ documentId2,
91
+ editorView
92
+ ]);
93
+ useIntentResolver(MARKDOWN_PLUGIN, scrollIntoViewResolver);
94
+ };
95
+
96
+ // packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx
97
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
98
+ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensionProviders, scrollPastEnd, toolbar, customActions, viewMode, editorStateStore, onFileUpload, onViewModeChange }) => {
99
+ var _effect = _useSignals();
100
+ try {
101
+ const { t } = useTranslation(MARKDOWN_PLUGIN);
102
+ const { themeMode } = useThemeContext();
103
+ const toolbarState = useEditorToolbarState({
104
+ viewMode
105
+ });
106
+ const formattingObserver = useFormattingState(toolbarState);
107
+ const { scrollTo, selection } = useMemo2(() => editorStateStore?.getState(id) ?? {}, [
108
+ id
109
+ ]);
110
+ const providerExtensions = useMemo2(() => extensionProviders?.flatMap((provider) => provider({})).filter(isNonNullable), [
111
+ extensionProviders
112
+ ]);
113
+ const handleDrop = async (view, { files }) => {
114
+ const file = files[0];
115
+ const info = file && onFileUpload ? await onFileUpload(file) : void 0;
116
+ if (info) {
117
+ processEditorPayload(view, {
118
+ type: "image",
119
+ data: info.url
120
+ });
121
+ }
122
+ };
123
+ const { parentRef, view: editorView, focusAttributes } = useTextEditor(() => ({
124
+ initialValue,
125
+ extensions: [
126
+ formattingObserver,
127
+ createBasicExtensions({
128
+ readOnly: viewMode === "readonly",
129
+ placeholder: t("editor placeholder"),
130
+ scrollPastEnd: role === "section" ? false : scrollPastEnd
131
+ }),
132
+ createMarkdownExtensions({
133
+ themeMode
134
+ }),
135
+ createThemeExtensions({
136
+ themeMode,
137
+ syntaxHighlighting: true,
138
+ slots: editorSlots
139
+ }),
140
+ editorGutter,
141
+ role !== "section" && onFileUpload && dropFile({
142
+ onDrop: handleDrop
143
+ }),
144
+ providerExtensions,
145
+ extensions
146
+ ].filter(isNotFalsy),
147
+ ...role !== "section" && {
148
+ id,
149
+ scrollTo,
150
+ selection,
151
+ // TODO(wittjosiah): Autofocus based on layout is racy.
152
+ // autoFocus: layoutPlugin?.provides.layout ? layoutPlugin?.provides.layout.scrollIntoView === id : true,
153
+ moveToEndOfLine: true
154
+ }
155
+ }), [
156
+ id,
157
+ formattingObserver,
158
+ viewMode,
159
+ themeMode,
160
+ extensions,
161
+ providerExtensions
162
+ ]);
163
+ useTest(editorView);
164
+ useSelectCurrentThread(editorView, id);
165
+ const { acceptedFiles, getInputProps, open } = useDropzone({
166
+ multiple: false,
167
+ noDrag: true,
168
+ accept: {
169
+ "image/*": [
170
+ ".jpg",
171
+ ".jpeg",
172
+ ".png",
173
+ ".gif"
174
+ ]
175
+ }
176
+ });
177
+ useEffect(() => {
178
+ if (editorView && onFileUpload && acceptedFiles.length) {
179
+ requestAnimationFrame(async () => {
180
+ const f = acceptedFiles[0];
181
+ const file = new File([
182
+ f
183
+ ], f.name, {
184
+ type: f.type,
185
+ lastModified: f.lastModified
186
+ });
187
+ const info = await onFileUpload(file);
188
+ if (info) {
189
+ addLink({
190
+ url: info.url,
191
+ image: true
192
+ })(editorView);
193
+ }
194
+ });
195
+ }
196
+ }, [
197
+ acceptedFiles,
198
+ editorView,
199
+ onFileUpload
200
+ ]);
201
+ const getView = useCallback(() => {
202
+ invariant2(editorView, void 0, {
203
+ F: __dxlog_file2,
204
+ L: 165,
205
+ S: void 0,
206
+ A: [
207
+ "editorView",
208
+ ""
209
+ ]
210
+ });
211
+ return editorView;
212
+ }, [
213
+ editorView
214
+ ]);
215
+ const handleViewModeChange = useCallback((mode) => onViewModeChange?.(id, mode), [
216
+ id,
217
+ onViewModeChange
218
+ ]);
219
+ const handleImageUpload = useCallback(() => {
220
+ if (onFileUpload) {
221
+ open();
222
+ }
223
+ }, [
224
+ onFileUpload
225
+ ]);
226
+ return /* @__PURE__ */ React.createElement(StackItem.Content, {
227
+ toolbar: !!toolbar
228
+ }, toolbar && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(EditorToolbar, {
229
+ attendableId: id,
230
+ role,
231
+ state: toolbarState,
232
+ customActions,
233
+ getView,
234
+ image: handleImageUpload,
235
+ viewMode: handleViewModeChange
236
+ }), /* @__PURE__ */ React.createElement("input", getInputProps())), /* @__PURE__ */ React.createElement("div", {
237
+ role: "none",
238
+ ref: parentRef,
239
+ "data-testid": "composer.markdownRoot",
240
+ "data-toolbar": toolbar ? "enabled" : "disabled",
241
+ className: stackItemContentEditorClassNames(role),
242
+ "data-popover-collision-boundary": true,
243
+ ...focusAttributes
244
+ }));
245
+ } finally {
246
+ _effect.f();
247
+ }
248
+ };
249
+ var useTest = (view) => {
250
+ useEffect(() => {
251
+ const composer = window.composer;
252
+ if (composer) {
253
+ composer.editorView = view;
254
+ }
255
+ }, [
256
+ view
257
+ ]);
258
+ };
259
+
260
+ // packages/plugins/plugin-markdown/src/extensions.tsx
261
+ import React2, { useMemo as useMemo3 } from "react";
262
+ import { createRoot } from "react-dom/client";
263
+ import { createIntent, LayoutAction as LayoutAction2, useCapabilities, useIntentDispatcher } from "@dxos/app-framework";
264
+ import { invariant as invariant3 } from "@dxos/invariant";
265
+ import { createDocAccessor, fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
266
+ import { useIdentity } from "@dxos/react-client/halo";
267
+ import { Icon, ThemeProvider } from "@dxos/react-ui";
268
+ import { InputModeExtensions, createDataExtensions, autocomplete, decorateMarkdown, folding, formattingKeymap, linkTooltip, listener, preview, selectionState, typewriter, EditorView as EditorView2, documentId, Cursor as Cursor2 } from "@dxos/react-ui-editor";
269
+ import { defaultTx } from "@dxos/react-ui-theme";
270
+ import { isNotFalsy as isNotFalsy2 } from "@dxos/util";
271
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
272
+ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore }) => {
273
+ const { dispatchPromise: dispatch } = useIntentDispatcher();
274
+ const identity = useIdentity();
275
+ const space = getSpace(document) ?? getSpace(text);
276
+ const baseExtensions = useMemo3(() => createBaseExtensions({
277
+ document,
278
+ id,
279
+ text,
280
+ settings,
281
+ selectionManager,
282
+ viewMode,
283
+ dispatch
284
+ }), [
285
+ document,
286
+ id,
287
+ text,
288
+ viewMode,
289
+ dispatch,
290
+ settings,
291
+ settings.editorInputMode,
292
+ settings.folding,
293
+ settings.numberedHeadings,
294
+ settings.debug,
295
+ settings.typewriter,
296
+ selectionManager
297
+ ]);
298
+ const extensionProviders = useCapabilities(MarkdownCapabilities.Extensions);
299
+ const pluginExtensions = useMemo3(() => {
300
+ if (!document) {
301
+ return [];
302
+ }
303
+ return extensionProviders.flat().reduce((acc, provider) => {
304
+ const extension = typeof provider === "function" ? provider({
305
+ document
306
+ }) : provider;
307
+ if (extension) {
308
+ acc.push(extension);
309
+ }
310
+ return acc;
311
+ }, []);
312
+ }, [
313
+ extensionProviders,
314
+ document
315
+ ]);
316
+ return useMemo3(() => [
317
+ // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
318
+ document && createDataExtensions({
319
+ id: document.id,
320
+ text: document.content.target && createDocAccessor(document.content.target, [
321
+ "content"
322
+ ]),
323
+ space,
324
+ identity
325
+ }),
326
+ text && id && createDataExtensions({
327
+ id,
328
+ text: createDocAccessor(text, [
329
+ "content"
330
+ ]),
331
+ space,
332
+ identity
333
+ }),
334
+ selectionState(editorStateStore),
335
+ document && listener({
336
+ onChange: (text2) => setFallbackName(document, text2)
337
+ }),
338
+ baseExtensions,
339
+ pluginExtensions
340
+ ].filter(isNotFalsy2), [
341
+ baseExtensions,
342
+ pluginExtensions,
343
+ document,
344
+ document?.content?.target,
345
+ text,
346
+ id,
347
+ space,
348
+ identity
349
+ ]);
350
+ };
351
+ var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, query, viewMode }) => {
352
+ const extensions = [
353
+ selectionManager && selectionChange(selectionManager),
354
+ settings.editorInputMode && InputModeExtensions[settings.editorInputMode],
355
+ settings.folding && folding()
356
+ ].filter(isNotFalsy2);
357
+ if (viewMode !== "source") {
358
+ extensions.push(...[
359
+ formattingKeymap(),
360
+ decorateMarkdown({
361
+ selectionChangeDelay: 100,
362
+ numberedHeadings: settings.numberedHeadings ? {
363
+ from: 2
364
+ } : void 0,
365
+ // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
366
+ renderLinkButton: dispatch && (document || id) ? createLinkRenderer((id2) => {
367
+ void dispatch(createIntent(LayoutAction2.Open, {
368
+ part: "main",
369
+ subject: [
370
+ id2
371
+ ],
372
+ options: {
373
+ pivotId: document ? fullyQualifiedId(document) : id2
374
+ }
375
+ }));
376
+ }) : void 0
377
+ }),
378
+ linkTooltip(renderLinkTooltip),
379
+ preview()
380
+ ]);
381
+ }
382
+ if (query) {
383
+ extensions.push(autocomplete({
384
+ onSearch: (text) => {
385
+ return query.objects.map((object) => object.name?.length && object.id !== document?.id ? {
386
+ label: object.name,
387
+ // TODO(burdon): Factor out URL builder.
388
+ apply: `[${object.name}](/${fullyQualifiedId(object)})`
389
+ } : void 0).filter(isNotFalsy2);
390
+ }
391
+ }));
392
+ }
393
+ if (settings.debug) {
394
+ const items = settings.typewriter?.split(/[,\n]/) ?? "";
395
+ if (items) {
396
+ extensions.push(typewriter({
397
+ items
398
+ }));
399
+ }
400
+ }
401
+ return extensions;
402
+ };
403
+ var selectionChange = (selectionManager) => {
404
+ return EditorView2.updateListener.of((update) => {
405
+ if (update.selectionSet) {
406
+ const id = update.state.facet(documentId);
407
+ const cursorConverter = update.state.facet(Cursor2.converter);
408
+ const selection = update.state.selection;
409
+ const ranges = selection.ranges.map((range) => ({
410
+ from: cursorConverter.toCursor(range.from),
411
+ to: cursorConverter.toCursor(range.to)
412
+ })).filter(({ from, to }) => to > from);
413
+ selectionManager.updateMultiRange(id, ranges);
414
+ }
415
+ });
416
+ };
417
+ var style = {
418
+ hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
419
+ icon: "inline-block leading-none mis-1 cursor-pointer"
420
+ };
421
+ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
422
+ const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
423
+ url.startsWith(window.location.origin);
424
+ const options = isInternal ? {
425
+ onClick: () => {
426
+ const qualifiedId = url.split("/").at(-1);
427
+ invariant3(qualifiedId, "Invalid link format.", {
428
+ F: __dxlog_file3,
429
+ L: 281,
430
+ S: void 0,
431
+ A: [
432
+ "qualifiedId",
433
+ "'Invalid link format.'"
434
+ ]
435
+ });
436
+ onSelectObject(qualifiedId);
437
+ }
438
+ } : {
439
+ href: url,
440
+ rel: "noreferrer",
441
+ target: "_blank"
442
+ };
443
+ renderRoot(el, /* @__PURE__ */ React2.createElement("a", {
444
+ ...options,
445
+ className: style.hover
446
+ }, /* @__PURE__ */ React2.createElement(Icon, {
447
+ icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
448
+ size: 4,
449
+ classNames: style.icon
450
+ })));
451
+ };
452
+ var renderLinkTooltip = (el, { url }) => {
453
+ const web = new URL(url);
454
+ renderRoot(el, /* @__PURE__ */ React2.createElement("a", {
455
+ href: url,
456
+ rel: "noreferrer",
457
+ target: "_blank",
458
+ className: style.hover
459
+ }, web.origin, /* @__PURE__ */ React2.createElement(Icon, {
460
+ icon: "ph--arrow-square-out--bold",
461
+ size: 4,
462
+ classNames: style.icon
463
+ })));
464
+ };
465
+ var renderRoot = (root, node) => {
466
+ createRoot(root).render(/* @__PURE__ */ React2.createElement(ThemeProvider, {
467
+ tx: defaultTx
468
+ }, node));
469
+ return root;
470
+ };
471
+
472
+ // packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx
473
+ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMode, editorStateStore, onViewModeChange }) => {
474
+ var _effect = _useSignals2();
475
+ try {
476
+ const scrollPastEnd = role === "article";
477
+ const doc = isInstanceOf(DocumentType, object) ? object : void 0;
478
+ const text = isInstanceOf(DataType.Text, object) ? object : void 0;
479
+ const extensions = useExtensions({
480
+ document: doc,
481
+ text,
482
+ id,
483
+ settings,
484
+ selectionManager,
485
+ viewMode,
486
+ editorStateStore
487
+ });
488
+ if (doc) {
489
+ return /* @__PURE__ */ React3.createElement(DocumentEditor, {
490
+ id: fullyQualifiedId2(object),
491
+ role,
492
+ document: doc,
493
+ extensions,
494
+ viewMode,
495
+ settings,
496
+ scrollPastEnd,
497
+ onViewModeChange
498
+ });
499
+ } else if (text) {
500
+ return /* @__PURE__ */ React3.createElement(MarkdownEditor, {
501
+ id,
502
+ role,
503
+ initialValue: text.content,
504
+ extensions,
505
+ viewMode,
506
+ toolbar: settings.toolbar,
507
+ inputMode: settings.editorInputMode,
508
+ scrollPastEnd,
509
+ onViewModeChange
510
+ });
511
+ } else {
512
+ return /* @__PURE__ */ React3.createElement(MarkdownEditor, {
513
+ id,
514
+ role,
515
+ initialValue: object.text,
516
+ extensions,
517
+ viewMode,
518
+ toolbar: settings.toolbar,
519
+ inputMode: settings.editorInputMode,
520
+ scrollPastEnd,
521
+ onViewModeChange
522
+ });
523
+ }
524
+ } finally {
525
+ _effect.f();
526
+ }
527
+ };
528
+ var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
529
+ var _effect = _useSignals2();
530
+ try {
531
+ const space = getSpace2(doc);
532
+ useEffect2(() => {
533
+ if (typeof doc.fallbackName === "string") {
534
+ return;
535
+ }
536
+ const fallbackName = doc.content?.target?.content ? getFallbackName(doc.content.target.content) : void 0;
537
+ if (fallbackName) {
538
+ doc.fallbackName = fallbackName;
539
+ }
540
+ }, [
541
+ doc,
542
+ doc.content
543
+ ]);
544
+ const [upload] = useCapabilities2(Capabilities.FileUploader);
545
+ const handleFileUpload = useMemo4(() => {
546
+ if (space === void 0 || upload === void 0) {
547
+ return void 0;
548
+ }
549
+ return async (file) => upload(file, space);
550
+ }, [
551
+ space,
552
+ upload
553
+ ]);
554
+ const { graph } = useAppGraph();
555
+ const customActions = useMemo4(() => {
556
+ return Rx.make((get) => {
557
+ const actions = get(graph.actions(id));
558
+ const nodes = actions.filter((action) => action.properties.disposition === "toolbar");
559
+ return {
560
+ nodes,
561
+ edges: nodes.map((node) => ({
562
+ source: "root",
563
+ target: node.id
564
+ }))
565
+ };
566
+ });
567
+ }, [
568
+ graph
569
+ ]);
570
+ return /* @__PURE__ */ React3.createElement(MarkdownEditor, {
571
+ id,
572
+ initialValue: doc.content?.target?.content,
573
+ viewMode,
574
+ toolbar: settings.toolbar,
575
+ customActions,
576
+ inputMode: settings.editorInputMode,
577
+ onFileUpload: handleFileUpload,
578
+ ...props
579
+ });
580
+ } finally {
581
+ _effect.f();
582
+ }
583
+ };
584
+ var MarkdownContainer_default = MarkdownContainer;
585
+ export {
586
+ DocumentEditor,
587
+ MarkdownContainer_default as default
588
+ };
589
+ //# sourceMappingURL=MarkdownContainer-UZSLXMWO.mjs.map