@dxos/plugin-markdown 0.8.4-main.2e9d522 → 0.8.4-main.5ea62a8

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 (229) hide show
  1. package/dist/lib/browser/{MarkdownPreview-S3C7CGAV.mjs → MarkdownCard-JLUQITYK.mjs} +16 -16
  2. package/dist/lib/browser/MarkdownCard-JLUQITYK.mjs.map +7 -0
  3. package/dist/lib/browser/{MarkdownContainer-F3WEEIBX.mjs → MarkdownContainer-7M37DXAD.mjs} +263 -260
  4. package/dist/lib/browser/MarkdownContainer-7M37DXAD.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-UKJJ7ZNP.mjs → anchor-sort-E33BSTYF.mjs} +5 -5
  6. package/dist/lib/browser/anchor-sort-E33BSTYF.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-ICLAF662.mjs → app-graph-serializer-OX62DNPT.mjs} +10 -11
  8. package/dist/lib/browser/app-graph-serializer-OX62DNPT.mjs.map +7 -0
  9. package/dist/lib/browser/blueprint-definition-Z3RQGWUD.mjs +11 -0
  10. package/dist/lib/browser/blueprint-definition-Z3RQGWUD.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-BEE7VQPU.mjs +78 -0
  12. package/dist/lib/browser/chunk-BEE7VQPU.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-D7UYVHL6.mjs +20 -0
  14. package/dist/lib/browser/{chunk-PHTD5DTR.mjs.map → chunk-D7UYVHL6.mjs.map} +3 -3
  15. package/dist/lib/browser/{chunk-LFML7LC6.mjs → chunk-LAVZ2W6X.mjs} +8 -9
  16. package/dist/lib/browser/chunk-LAVZ2W6X.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-ODB2PTBP.mjs +28 -0
  18. package/dist/lib/browser/chunk-ODB2PTBP.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-OY6CGPOO.mjs +16 -0
  20. package/dist/lib/browser/chunk-OY6CGPOO.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-LHDCHDBW.mjs → chunk-Z7P6JGGW.mjs} +6 -5
  22. package/dist/lib/browser/chunk-Z7P6JGGW.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-ZVVKLB5L.mjs +121 -0
  24. package/dist/lib/browser/chunk-ZVVKLB5L.mjs.map +7 -0
  25. package/dist/lib/browser/index.mjs +26 -20
  26. package/dist/lib/browser/index.mjs.map +3 -3
  27. package/dist/lib/browser/intent-resolver-WDDH56JC.mjs +62 -0
  28. package/dist/lib/browser/intent-resolver-WDDH56JC.mjs.map +7 -0
  29. package/dist/lib/browser/meta.json +1 -1
  30. package/dist/lib/browser/{react-surface-C3Z423TV.mjs → react-surface-LN2XK2UN.mjs} +53 -44
  31. package/dist/lib/browser/react-surface-LN2XK2UN.mjs.map +7 -0
  32. package/dist/lib/browser/{settings-KN75ZQY6.mjs → settings-AABBTB4Q.mjs} +5 -5
  33. package/dist/lib/browser/settings-AABBTB4Q.mjs.map +7 -0
  34. package/dist/lib/browser/{state-LZWTAS65.mjs → state-FTHQQX7V.mjs} +7 -7
  35. package/dist/lib/browser/state-FTHQQX7V.mjs.map +7 -0
  36. package/dist/lib/browser/types/index.mjs +6 -14
  37. package/dist/lib/node-esm/{MarkdownPreview-77UFEWXT.mjs → MarkdownCard-XL5EVSJ7.mjs} +16 -16
  38. package/dist/lib/node-esm/MarkdownCard-XL5EVSJ7.mjs.map +7 -0
  39. package/dist/lib/node-esm/{MarkdownContainer-VOUHL6IU.mjs → MarkdownContainer-K3BPAGWO.mjs} +263 -260
  40. package/dist/lib/node-esm/MarkdownContainer-K3BPAGWO.mjs.map +7 -0
  41. package/dist/lib/node-esm/{anchor-sort-IPIS5D5B.mjs → anchor-sort-ALP2NH24.mjs} +5 -5
  42. package/dist/lib/node-esm/anchor-sort-ALP2NH24.mjs.map +7 -0
  43. package/dist/lib/node-esm/{app-graph-serializer-FLBXQKKR.mjs → app-graph-serializer-56TD3BMX.mjs} +10 -11
  44. package/dist/lib/node-esm/app-graph-serializer-56TD3BMX.mjs.map +7 -0
  45. package/dist/lib/node-esm/blueprint-definition-735OAX33.mjs +12 -0
  46. package/dist/lib/node-esm/blueprint-definition-735OAX33.mjs.map +7 -0
  47. package/dist/lib/node-esm/{chunk-ACFGXH2K.mjs → chunk-CB2R4YIY.mjs} +5 -5
  48. package/dist/lib/node-esm/chunk-CB2R4YIY.mjs.map +7 -0
  49. package/dist/lib/node-esm/chunk-FXILAQ5F.mjs +79 -0
  50. package/dist/lib/node-esm/chunk-FXILAQ5F.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-VIR2ABYE.mjs → chunk-J7A6TUB2.mjs} +6 -5
  52. package/dist/lib/node-esm/chunk-J7A6TUB2.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-JPXFCBC4.mjs +22 -0
  54. package/dist/lib/node-esm/{chunk-7X6TPTJK.mjs.map → chunk-JPXFCBC4.mjs.map} +3 -3
  55. package/dist/lib/node-esm/{chunk-CWTFQSN7.mjs → chunk-O6EXWGGS.mjs} +8 -9
  56. package/dist/lib/node-esm/chunk-O6EXWGGS.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-VCG2U522.mjs +29 -0
  58. package/dist/lib/node-esm/chunk-VCG2U522.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-Y422WR6A.mjs +122 -0
  60. package/dist/lib/node-esm/chunk-Y422WR6A.mjs.map +7 -0
  61. package/dist/lib/node-esm/index.mjs +26 -20
  62. package/dist/lib/node-esm/index.mjs.map +3 -3
  63. package/dist/lib/node-esm/intent-resolver-2I5HKCUU.mjs +63 -0
  64. package/dist/lib/node-esm/intent-resolver-2I5HKCUU.mjs.map +7 -0
  65. package/dist/lib/node-esm/meta.json +1 -1
  66. package/dist/lib/node-esm/{react-surface-TTTBYNI2.mjs → react-surface-DJGGKYBD.mjs} +53 -44
  67. package/dist/lib/node-esm/react-surface-DJGGKYBD.mjs.map +7 -0
  68. package/dist/lib/node-esm/{settings-KVP7TVX7.mjs → settings-CXGR6DH4.mjs} +5 -5
  69. package/dist/lib/node-esm/settings-CXGR6DH4.mjs.map +7 -0
  70. package/dist/lib/node-esm/{state-NW3W4JCQ.mjs → state-NWMQ3XAI.mjs} +7 -7
  71. package/dist/lib/node-esm/state-NWMQ3XAI.mjs.map +7 -0
  72. package/dist/lib/node-esm/types/index.mjs +6 -14
  73. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -2
  75. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  76. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -9
  78. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  80. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/capabilities.d.ts +1 -1
  82. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/index.d.ts +11 -10
  84. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  86. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  88. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/settings.d.ts +1 -1
  90. package/dist/types/src/capabilities/state.d.ts +2 -2
  91. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  92. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +7 -0
  93. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  94. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +10 -0
  95. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  96. package/dist/types/src/components/MarkdownCard/index.d.ts +4 -0
  97. package/dist/types/src/components/MarkdownCard/index.d.ts.map +1 -0
  98. package/dist/types/src/components/MarkdownContainer.d.ts +5 -5
  99. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  100. package/dist/types/src/components/MarkdownContainer.stories.d.ts +50 -4
  101. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  102. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +1 -1
  103. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  104. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +110 -12
  105. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  106. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +2 -2
  107. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  108. package/dist/types/src/components/Suggestions.stories.d.ts +2 -2
  109. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  110. package/dist/types/src/components/Toolbar.stories.d.ts +44 -7
  111. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/index.d.ts +1 -1
  113. package/dist/types/src/components/index.d.ts.map +1 -1
  114. package/dist/types/src/events.d.ts.map +1 -1
  115. package/dist/types/src/extensions.d.ts +4 -4
  116. package/dist/types/src/extensions.d.ts.map +1 -1
  117. package/dist/types/src/functions/create.d.ts +12 -0
  118. package/dist/types/src/functions/create.d.ts.map +1 -0
  119. package/dist/types/src/functions/diff.d.ts +6 -0
  120. package/dist/types/src/functions/diff.d.ts.map +1 -0
  121. package/dist/types/src/functions/index.d.ts +4 -0
  122. package/dist/types/src/functions/index.d.ts.map +1 -0
  123. package/dist/types/src/functions/open.d.ts +7 -0
  124. package/dist/types/src/functions/open.d.ts.map +1 -0
  125. package/dist/types/src/index.d.ts +2 -1
  126. package/dist/types/src/index.d.ts.map +1 -1
  127. package/dist/types/src/meta.d.ts +0 -1
  128. package/dist/types/src/meta.d.ts.map +1 -1
  129. package/dist/types/src/translations.d.ts +3 -2
  130. package/dist/types/src/translations.d.ts.map +1 -1
  131. package/dist/types/src/types/Markdown.d.ts +43 -0
  132. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  133. package/dist/types/src/types/MarkdownAction.d.ts +33 -0
  134. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
  135. package/dist/types/src/types/index.d.ts +2 -1
  136. package/dist/types/src/types/index.d.ts.map +1 -1
  137. package/dist/types/src/types/types.d.ts +3 -59
  138. package/dist/types/src/types/types.d.ts.map +1 -1
  139. package/dist/types/src/util.d.ts +12 -3
  140. package/dist/types/src/util.d.ts.map +1 -1
  141. package/dist/types/tsconfig.tsbuildinfo +1 -1
  142. package/package.json +46 -41
  143. package/src/MarkdownPlugin.tsx +14 -12
  144. package/src/capabilities/anchor-sort.ts +3 -3
  145. package/src/capabilities/app-graph-serializer.ts +7 -5
  146. package/src/capabilities/artifact-definition.ts +18 -23
  147. package/src/capabilities/blueprint-definition.ts +39 -0
  148. package/src/capabilities/capabilities.ts +5 -4
  149. package/src/capabilities/index.ts +2 -1
  150. package/src/capabilities/intent-resolver.ts +15 -21
  151. package/src/capabilities/react-surface.tsx +21 -19
  152. package/src/capabilities/settings.ts +3 -3
  153. package/src/capabilities/state.ts +8 -8
  154. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +79 -0
  155. package/src/components/{MarkdownPreview/MarkdownPreview.tsx → MarkdownCard/MarkdownCard.tsx} +11 -9
  156. package/src/components/MarkdownCard/index.ts +9 -0
  157. package/src/components/MarkdownContainer.stories.tsx +12 -15
  158. package/src/components/MarkdownContainer.tsx +10 -9
  159. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +10 -7
  160. package/src/components/MarkdownEditor/MarkdownEditor.tsx +9 -8
  161. package/src/components/MarkdownSettings/MarkdownSettings.tsx +81 -78
  162. package/src/components/Suggestions.stories.tsx +24 -27
  163. package/src/components/Toolbar.stories.tsx +18 -13
  164. package/src/components/index.ts +1 -1
  165. package/src/events.ts +2 -2
  166. package/src/extensions.tsx +12 -12
  167. package/src/functions/create.ts +23 -0
  168. package/src/functions/diff.ts +35 -0
  169. package/src/functions/index.ts +7 -0
  170. package/src/functions/open.ts +30 -0
  171. package/src/hooks/useSelectCurrentThread.tsx +3 -3
  172. package/src/index.ts +4 -1
  173. package/src/meta.ts +7 -8
  174. package/src/translations.ts +3 -2
  175. package/src/types/Markdown.ts +56 -0
  176. package/src/types/MarkdownAction.ts +29 -0
  177. package/src/types/index.ts +2 -1
  178. package/src/types/types.ts +6 -50
  179. package/src/util.tsx +20 -6
  180. package/dist/lib/browser/MarkdownContainer-F3WEEIBX.mjs.map +0 -7
  181. package/dist/lib/browser/MarkdownPreview-S3C7CGAV.mjs.map +0 -7
  182. package/dist/lib/browser/anchor-sort-UKJJ7ZNP.mjs.map +0 -7
  183. package/dist/lib/browser/app-graph-serializer-ICLAF662.mjs.map +0 -7
  184. package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs +0 -145
  185. package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-777RIED6.mjs +0 -16
  187. package/dist/lib/browser/chunk-777RIED6.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-EPTSAJZM.mjs +0 -22
  189. package/dist/lib/browser/chunk-EPTSAJZM.mjs.map +0 -7
  190. package/dist/lib/browser/chunk-LFML7LC6.mjs.map +0 -7
  191. package/dist/lib/browser/chunk-LHDCHDBW.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-PHTD5DTR.mjs +0 -20
  193. package/dist/lib/browser/chunk-UANWRJZU.mjs +0 -79
  194. package/dist/lib/browser/chunk-UANWRJZU.mjs.map +0 -7
  195. package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs +0 -64
  196. package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs.map +0 -7
  197. package/dist/lib/browser/react-surface-C3Z423TV.mjs.map +0 -7
  198. package/dist/lib/browser/settings-KN75ZQY6.mjs.map +0 -7
  199. package/dist/lib/browser/state-LZWTAS65.mjs.map +0 -7
  200. package/dist/lib/node-esm/MarkdownContainer-VOUHL6IU.mjs.map +0 -7
  201. package/dist/lib/node-esm/MarkdownPreview-77UFEWXT.mjs.map +0 -7
  202. package/dist/lib/node-esm/anchor-sort-IPIS5D5B.mjs.map +0 -7
  203. package/dist/lib/node-esm/app-graph-serializer-FLBXQKKR.mjs.map +0 -7
  204. package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs +0 -146
  205. package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs.map +0 -7
  206. package/dist/lib/node-esm/chunk-7X6TPTJK.mjs +0 -22
  207. package/dist/lib/node-esm/chunk-ACFGXH2K.mjs.map +0 -7
  208. package/dist/lib/node-esm/chunk-CWTFQSN7.mjs.map +0 -7
  209. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs +0 -24
  210. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs.map +0 -7
  211. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs +0 -80
  212. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs.map +0 -7
  213. package/dist/lib/node-esm/chunk-VIR2ABYE.mjs.map +0 -7
  214. package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs +0 -65
  215. package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs.map +0 -7
  216. package/dist/lib/node-esm/react-surface-TTTBYNI2.mjs.map +0 -7
  217. package/dist/lib/node-esm/settings-KVP7TVX7.mjs.map +0 -7
  218. package/dist/lib/node-esm/state-NW3W4JCQ.mjs.map +0 -7
  219. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
  220. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
  221. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -42
  222. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
  223. package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
  224. package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
  225. package/dist/types/src/types/schema.d.ts +0 -35
  226. package/dist/types/src/types/schema.d.ts.map +0 -1
  227. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -81
  228. package/src/components/MarkdownPreview/index.ts +0 -9
  229. package/src/types/schema.ts +0 -39
@@ -1,18 +1,19 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import "./chunk-7X6TPTJK.mjs";
2
+ import "./chunk-JPXFCBC4.mjs";
3
+ import "./chunk-Y422WR6A.mjs";
3
4
  import {
4
5
  MarkdownCapabilities
5
- } from "./chunk-ACFGXH2K.mjs";
6
+ } from "./chunk-CB2R4YIY.mjs";
6
7
  import {
7
8
  getFallbackName,
8
9
  setFallbackName
9
- } from "./chunk-CWTFQSN7.mjs";
10
+ } from "./chunk-O6EXWGGS.mjs";
10
11
  import {
11
- DocumentType
12
- } from "./chunk-JEEQLO7C.mjs";
12
+ Markdown_exports
13
+ } from "./chunk-FXILAQ5F.mjs";
13
14
  import {
14
- MARKDOWN_PLUGIN
15
- } from "./chunk-CXG7GMYP.mjs";
15
+ meta
16
+ } from "./chunk-VCG2U522.mjs";
16
17
 
17
18
  // src/components/MarkdownContainer.tsx
18
19
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
@@ -28,37 +29,252 @@ import { toLocalizedString as toLocalizedString2, useTranslation as useTranslati
28
29
  import { insertAtCursor, insertAtLineStart } from "@dxos/react-ui-editor";
29
30
  import { DataType } from "@dxos/schema";
30
31
 
32
+ // src/extensions.tsx
33
+ import React, { useMemo } from "react";
34
+ import { createRoot } from "react-dom/client";
35
+ import { LayoutAction, createIntent, useCapabilities, useIntentDispatcher } from "@dxos/app-framework";
36
+ import { debounceAndThrottle } from "@dxos/async";
37
+ import { invariant } from "@dxos/invariant";
38
+ import { createDocAccessor, fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
39
+ import { useIdentity } from "@dxos/react-client/halo";
40
+ import { Icon, ThemeProvider } from "@dxos/react-ui";
41
+ import { Cursor, EditorView, InputModeExtensions, autocomplete, createDataExtensions, decorateMarkdown, documentId, folding, formattingKeymap, linkTooltip, listener, preview, selectionState, typewriter } from "@dxos/react-ui-editor";
42
+ import { defaultTx } from "@dxos/react-ui-theme";
43
+ import { isNotFalsy } from "@dxos/util";
44
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
45
+ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
46
+ const { dispatchPromise: dispatch } = useIntentDispatcher();
47
+ const identity = useIdentity();
48
+ const space = getSpace(document) ?? getSpace(text);
49
+ const baseExtensions = useMemo(() => createBaseExtensions({
50
+ document,
51
+ id,
52
+ text,
53
+ settings,
54
+ selectionManager,
55
+ viewMode,
56
+ previewOptions,
57
+ dispatch
58
+ }), [
59
+ document,
60
+ id,
61
+ text,
62
+ viewMode,
63
+ dispatch,
64
+ previewOptions,
65
+ settings,
66
+ settings.editorInputMode,
67
+ settings.folding,
68
+ settings.numberedHeadings,
69
+ settings.debug,
70
+ settings.typewriter,
71
+ selectionManager
72
+ ]);
73
+ const extensionProviders = useCapabilities(MarkdownCapabilities.Extensions);
74
+ const pluginExtensions = useMemo(() => {
75
+ if (!document) {
76
+ return [];
77
+ }
78
+ return extensionProviders.flat().reduce((acc, provider) => {
79
+ const extension = typeof provider === "function" ? provider({
80
+ document
81
+ }) : provider;
82
+ if (extension) {
83
+ acc.push(extension);
84
+ }
85
+ return acc;
86
+ }, []);
87
+ }, [
88
+ extensionProviders,
89
+ document
90
+ ]);
91
+ return useMemo(() => [
92
+ // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
93
+ document && createDataExtensions({
94
+ id: document.id,
95
+ text: document.content.target && createDocAccessor(document.content.target, [
96
+ "content"
97
+ ]),
98
+ space,
99
+ identity
100
+ }),
101
+ text && id && createDataExtensions({
102
+ id,
103
+ text: createDocAccessor(text, [
104
+ "content"
105
+ ]),
106
+ space,
107
+ identity
108
+ }),
109
+ selectionState(editorStateStore),
110
+ document && listener({
111
+ onChange: (text2) => setFallbackName(document, text2)
112
+ }),
113
+ baseExtensions,
114
+ pluginExtensions
115
+ ].filter(isNotFalsy), [
116
+ baseExtensions,
117
+ pluginExtensions,
118
+ document,
119
+ document?.content?.target,
120
+ text,
121
+ id,
122
+ space,
123
+ identity
124
+ ]);
125
+ };
126
+ var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, query, viewMode, previewOptions }) => {
127
+ const extensions = [
128
+ selectionManager && selectionChange(selectionManager),
129
+ settings.editorInputMode && InputModeExtensions[settings.editorInputMode],
130
+ settings.folding && folding()
131
+ ].filter(isNotFalsy);
132
+ if (viewMode !== "source") {
133
+ extensions.push(...[
134
+ formattingKeymap(),
135
+ decorateMarkdown({
136
+ selectionChangeDelay: 100,
137
+ numberedHeadings: settings.numberedHeadings ? {
138
+ from: 2
139
+ } : void 0,
140
+ // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
141
+ renderLinkButton: dispatch && (document || id) ? createLinkRenderer((id2) => {
142
+ void dispatch(createIntent(LayoutAction.Open, {
143
+ part: "main",
144
+ subject: [
145
+ id2
146
+ ],
147
+ options: {
148
+ pivotId: document ? fullyQualifiedId(document) : id2
149
+ }
150
+ }));
151
+ }) : void 0
152
+ }),
153
+ linkTooltip(renderLinkTooltip),
154
+ preview(previewOptions)
155
+ ]);
156
+ }
157
+ if (query) {
158
+ extensions.push(autocomplete({
159
+ onSearch: (text) => {
160
+ return query.objects.map((object) => object.name?.length && object.id !== document?.id ? {
161
+ label: object.name,
162
+ // TODO(burdon): Factor out URL builder.
163
+ apply: `[${object.name}](/${fullyQualifiedId(object)})`
164
+ } : void 0).filter(isNotFalsy);
165
+ }
166
+ }));
167
+ }
168
+ if (settings.debug) {
169
+ const items = settings.typewriter?.split(/[,\n]/) ?? "";
170
+ if (items) {
171
+ extensions.push(typewriter({
172
+ items
173
+ }));
174
+ }
175
+ }
176
+ return extensions;
177
+ };
178
+ var selectionChange = (selectionManager) => {
179
+ return EditorView.updateListener.of(debounceAndThrottle((update) => {
180
+ if (update.selectionSet) {
181
+ const id = update.state.facet(documentId);
182
+ const cursorConverter = update.state.facet(Cursor.converter);
183
+ const selection = update.state.selection;
184
+ const ranges = selection.ranges.map((range) => ({
185
+ from: cursorConverter.toCursor(range.from),
186
+ to: cursorConverter.toCursor(range.to)
187
+ })).filter(({ from, to }) => to > from);
188
+ selectionManager.updateMultiRange(id, ranges);
189
+ }
190
+ }, 100));
191
+ };
192
+ var style = {
193
+ hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
194
+ icon: "inline-block leading-none mis-1 cursor-pointer"
195
+ };
196
+ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
197
+ const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
198
+ url.startsWith(window.location.origin);
199
+ const options = isInternal ? {
200
+ onClick: () => {
201
+ const qualifiedId = url.split("/").at(-1);
202
+ invariant(qualifiedId, "Invalid link format.", {
203
+ F: __dxlog_file,
204
+ L: 291,
205
+ S: void 0,
206
+ A: [
207
+ "qualifiedId",
208
+ "'Invalid link format.'"
209
+ ]
210
+ });
211
+ onSelectObject(qualifiedId);
212
+ }
213
+ } : {
214
+ href: url,
215
+ rel: "noreferrer",
216
+ target: "_blank"
217
+ };
218
+ renderRoot(el, /* @__PURE__ */ React.createElement("a", {
219
+ ...options,
220
+ className: style.hover
221
+ }, /* @__PURE__ */ React.createElement(Icon, {
222
+ icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
223
+ size: 4,
224
+ classNames: style.icon
225
+ })));
226
+ };
227
+ var renderLinkTooltip = (el, { url }) => {
228
+ const web = new URL(url);
229
+ renderRoot(el, /* @__PURE__ */ React.createElement("a", {
230
+ href: url,
231
+ rel: "noreferrer",
232
+ target: "_blank",
233
+ className: style.hover
234
+ }, web.origin, /* @__PURE__ */ React.createElement(Icon, {
235
+ icon: "ph--arrow-square-out--bold",
236
+ size: 4,
237
+ classNames: style.icon
238
+ })));
239
+ };
240
+ var renderRoot = (root, node) => {
241
+ createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
242
+ tx: defaultTx
243
+ }, node));
244
+ return root;
245
+ };
246
+
31
247
  // src/components/MarkdownEditor/MarkdownEditor.tsx
32
248
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
33
- import React, { forwardRef, useMemo as useMemo2, useEffect, useCallback, useImperativeHandle, useRef } from "react";
249
+ import React2, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo as useMemo3, useRef } from "react";
34
250
  import { useDropzone } from "react-dropzone";
35
- import { invariant as invariant2 } from "@dxos/invariant";
251
+ import { invariant as invariant3 } from "@dxos/invariant";
36
252
  import { toLocalizedString, useThemeContext, useTranslation } from "@dxos/react-ui";
37
- import { CommandMenu, EditorToolbar, RefPopover, addLink, createElement, coreSlashCommands, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorGutter, editorSlots, filterItems, linkSlashCommands, processEditorPayload, stackItemContentEditorClassNames, useEditorToolbarState, useFormattingState, useTextEditor, useCommandMenu } from "@dxos/react-ui-editor";
253
+ import { CommandMenu, EditorToolbar, RefPopover, addLink, coreSlashCommands, createBasicExtensions, createElement, createMarkdownExtensions, createThemeExtensions, dropFile, editorGutter, editorSlots, filterItems, linkSlashCommands, processEditorPayload, stackItemContentEditorClassNames, useCommandMenu, useEditorToolbarState, useFormattingState, useTextEditor } from "@dxos/react-ui-editor";
38
254
  import { StackItem } from "@dxos/react-ui-stack";
39
- import { isNotFalsy, isNonNullable } from "@dxos/util";
255
+ import { isNonNullable, isNotFalsy as isNotFalsy2 } from "@dxos/util";
40
256
 
41
257
  // src/hooks/useSelectCurrentThread.tsx
42
- import { EditorView } from "@codemirror/view";
258
+ import { EditorView as EditorView2 } from "@codemirror/view";
43
259
  import { Schema } from "effect";
44
- import { useMemo } from "react";
45
- import { createResolver, LayoutAction, useIntentResolver } from "@dxos/app-framework";
46
- import { invariant } from "@dxos/invariant";
47
- import { Cursor, setSelection } from "@dxos/react-ui-editor";
48
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
260
+ import { useMemo as useMemo2 } from "react";
261
+ import { LayoutAction as LayoutAction2, createResolver, useIntentResolver } from "@dxos/app-framework";
262
+ import { invariant as invariant2 } from "@dxos/invariant";
263
+ import { Cursor as Cursor2, setSelection } from "@dxos/react-ui-editor";
264
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
49
265
  var useSelectCurrentThread = (editorView, documentId2) => {
50
- const scrollIntoViewResolver = useMemo(() => createResolver({
51
- intent: LayoutAction.UpdateLayout,
266
+ const scrollIntoViewResolver = useMemo2(() => createResolver({
267
+ intent: LayoutAction2.UpdateLayout,
52
268
  position: "hoist",
53
269
  filter: (data) => {
54
- if (!Schema.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
270
+ if (!Schema.is(LayoutAction2.ScrollIntoView.fields.input)(data)) {
55
271
  return false;
56
272
  }
57
273
  return !!editorView && data.subject === documentId2 && !!data.options?.cursor;
58
274
  },
59
275
  resolve: ({ options: { cursor } }) => {
60
- invariant(editorView, "Editor view is not defined.", {
61
- F: __dxlog_file,
276
+ invariant2(editorView, "Editor view is not defined.", {
277
+ F: __dxlog_file2,
62
278
  L: 32,
63
279
  S: void 0,
64
280
  A: [
@@ -66,14 +282,14 @@ var useSelectCurrentThread = (editorView, documentId2) => {
66
282
  "'Editor view is not defined.'"
67
283
  ]
68
284
  });
69
- const range = Cursor.getRangeFromCursor(editorView.state, cursor);
285
+ const range = Cursor2.getRangeFromCursor(editorView.state, cursor);
70
286
  if (range) {
71
287
  const selection = editorView.state.selection.main.from !== range.from ? {
72
288
  anchor: range.from
73
289
  } : void 0;
74
290
  const effects = [
75
291
  // NOTE: This does not use the DOM scrollIntoView function.
76
- EditorView.scrollIntoView(range.from, {
292
+ EditorView2.scrollIntoView(range.from, {
77
293
  y: "start",
78
294
  yMargin: 96
79
295
  })
@@ -95,11 +311,11 @@ var useSelectCurrentThread = (editorView, documentId2) => {
95
311
  documentId2,
96
312
  editorView
97
313
  ]);
98
- useIntentResolver(MARKDOWN_PLUGIN, scrollIntoViewResolver);
314
+ useIntentResolver(meta.id, scrollIntoViewResolver);
99
315
  };
100
316
 
101
317
  // src/components/MarkdownEditor/MarkdownEditor.tsx
102
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
318
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
103
319
  var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery, ...props }) => {
104
320
  var _effect = _useSignals();
105
321
  try {
@@ -121,7 +337,7 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
121
337
  onLinkQuery,
122
338
  slashCommandGroups
123
339
  ]);
124
- const options = useMemo2(() => {
340
+ const options = useMemo3(() => {
125
341
  const trigger = onLinkQuery ? [
126
342
  "/",
127
343
  "@"
@@ -154,21 +370,21 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
154
370
  getMenu
155
371
  ]);
156
372
  const { commandMenu, groupsRef, currentItem, onSelect, ...refPopoverProps } = useCommandMenu(options);
157
- const extensions = useMemo2(() => [
373
+ const extensions = useMemo3(() => [
158
374
  _extensions,
159
375
  commandMenu
160
- ].filter(isNotFalsy), [
376
+ ].filter(isNotFalsy2), [
161
377
  _extensions,
162
378
  commandMenu
163
379
  ]);
164
- return /* @__PURE__ */ React.createElement(RefPopover, {
380
+ return /* @__PURE__ */ React2.createElement(RefPopover, {
165
381
  modal: false,
166
382
  ...refPopoverProps
167
- }, /* @__PURE__ */ React.createElement(MarkdownEditorImpl, {
383
+ }, /* @__PURE__ */ React2.createElement(MarkdownEditorImpl, {
168
384
  ref: viewRef,
169
385
  ...props,
170
386
  extensions
171
- }), /* @__PURE__ */ React.createElement(CommandMenu, {
387
+ }), /* @__PURE__ */ React2.createElement(CommandMenu, {
172
388
  groups: groupsRef.current,
173
389
  currentItem,
174
390
  onSelect
@@ -180,16 +396,16 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
180
396
  var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", initialValue, customActions, editorStateStore, extensions, extensionProviders, scrollPastEnd, toolbar, viewMode, onFileUpload, onViewModeChange }, forwardedRef) => {
181
397
  var _effect = _useSignals();
182
398
  try {
183
- const { t } = useTranslation(MARKDOWN_PLUGIN);
399
+ const { t } = useTranslation(meta.id);
184
400
  const { themeMode } = useThemeContext();
185
401
  const toolbarState = useEditorToolbarState({
186
402
  viewMode
187
403
  });
188
404
  const formattingObserver = useFormattingState(toolbarState);
189
- const { scrollTo, selection } = useMemo2(() => editorStateStore?.getState(id) ?? {}, [
405
+ const { scrollTo, selection } = useMemo3(() => editorStateStore?.getState(id) ?? {}, [
190
406
  id
191
407
  ]);
192
- const providerExtensions = useMemo2(() => extensionProviders?.flatMap((provider) => provider({})).filter(isNonNullable), [
408
+ const providerExtensions = useMemo3(() => extensionProviders?.flatMap((provider) => provider({})).filter(isNonNullable), [
193
409
  extensionProviders
194
410
  ]);
195
411
  const handleDrop = async (view, { files }) => {
@@ -209,7 +425,8 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
209
425
  createBasicExtensions({
210
426
  readOnly: viewMode === "readonly",
211
427
  placeholder: t("editor placeholder"),
212
- scrollPastEnd: role === "section" ? false : scrollPastEnd
428
+ scrollPastEnd: role === "section" ? false : scrollPastEnd,
429
+ search: true
213
430
  }),
214
431
  createMarkdownExtensions({
215
432
  themeMode
@@ -225,7 +442,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
225
442
  }),
226
443
  providerExtensions,
227
444
  extensions
228
- ].filter(isNotFalsy),
445
+ ].filter(isNotFalsy2),
229
446
  ...role !== "section" && {
230
447
  id,
231
448
  scrollTo,
@@ -284,9 +501,9 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
284
501
  onFileUpload
285
502
  ]);
286
503
  const getView = useCallback(() => {
287
- invariant2(editorView, void 0, {
288
- F: __dxlog_file2,
289
- L: 240,
504
+ invariant3(editorView, void 0, {
505
+ F: __dxlog_file3,
506
+ L: 241,
290
507
  S: void 0,
291
508
  A: [
292
509
  "editorView",
@@ -308,9 +525,9 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
308
525
  }, [
309
526
  onFileUpload
310
527
  ]);
311
- return /* @__PURE__ */ React.createElement(StackItem.Content, {
528
+ return /* @__PURE__ */ React2.createElement(StackItem.Content, {
312
529
  toolbar: !!toolbar
313
- }, toolbar && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(EditorToolbar, {
530
+ }, toolbar && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(EditorToolbar, {
314
531
  attendableId: id,
315
532
  role,
316
533
  state: toolbarState,
@@ -318,7 +535,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
318
535
  getView,
319
536
  image: handleImageUpload,
320
537
  viewMode: handleViewModeChange
321
- }), /* @__PURE__ */ React.createElement("input", getInputProps())), /* @__PURE__ */ React.createElement("div", {
538
+ }), /* @__PURE__ */ React2.createElement("input", getInputProps())), /* @__PURE__ */ React2.createElement("div", {
322
539
  role: "none",
323
540
  ref: parentRef,
324
541
  "data-testid": "composer.markdownRoot",
@@ -342,228 +559,13 @@ var useTest = (view) => {
342
559
  ]);
343
560
  };
344
561
 
345
- // src/extensions.tsx
346
- import React2, { useMemo as useMemo3 } from "react";
347
- import { createRoot } from "react-dom/client";
348
- import { createIntent, LayoutAction as LayoutAction2, useCapabilities, useIntentDispatcher } from "@dxos/app-framework";
349
- import { debounceAndThrottle } from "@dxos/async";
350
- import { invariant as invariant3 } from "@dxos/invariant";
351
- import { createDocAccessor, fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
352
- import { useIdentity } from "@dxos/react-client/halo";
353
- import { Icon, ThemeProvider } from "@dxos/react-ui";
354
- import { InputModeExtensions, createDataExtensions, autocomplete, decorateMarkdown, folding, formattingKeymap, linkTooltip, listener, preview, selectionState, typewriter, EditorView as EditorView2, documentId, Cursor as Cursor2 } from "@dxos/react-ui-editor";
355
- import { defaultTx } from "@dxos/react-ui-theme";
356
- import { isNotFalsy as isNotFalsy2 } from "@dxos/util";
357
- var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
358
- var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
359
- const { dispatchPromise: dispatch } = useIntentDispatcher();
360
- const identity = useIdentity();
361
- const space = getSpace(document) ?? getSpace(text);
362
- const baseExtensions = useMemo3(() => createBaseExtensions({
363
- document,
364
- id,
365
- text,
366
- settings,
367
- selectionManager,
368
- viewMode,
369
- previewOptions,
370
- dispatch
371
- }), [
372
- document,
373
- id,
374
- text,
375
- viewMode,
376
- dispatch,
377
- previewOptions,
378
- settings,
379
- settings.editorInputMode,
380
- settings.folding,
381
- settings.numberedHeadings,
382
- settings.debug,
383
- settings.typewriter,
384
- selectionManager
385
- ]);
386
- const extensionProviders = useCapabilities(MarkdownCapabilities.Extensions);
387
- const pluginExtensions = useMemo3(() => {
388
- if (!document) {
389
- return [];
390
- }
391
- return extensionProviders.flat().reduce((acc, provider) => {
392
- const extension = typeof provider === "function" ? provider({
393
- document
394
- }) : provider;
395
- if (extension) {
396
- acc.push(extension);
397
- }
398
- return acc;
399
- }, []);
400
- }, [
401
- extensionProviders,
402
- document
403
- ]);
404
- return useMemo3(() => [
405
- // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
406
- document && createDataExtensions({
407
- id: document.id,
408
- text: document.content.target && createDocAccessor(document.content.target, [
409
- "content"
410
- ]),
411
- space,
412
- identity
413
- }),
414
- text && id && createDataExtensions({
415
- id,
416
- text: createDocAccessor(text, [
417
- "content"
418
- ]),
419
- space,
420
- identity
421
- }),
422
- selectionState(editorStateStore),
423
- document && listener({
424
- onChange: (text2) => setFallbackName(document, text2)
425
- }),
426
- baseExtensions,
427
- pluginExtensions
428
- ].filter(isNotFalsy2), [
429
- baseExtensions,
430
- pluginExtensions,
431
- document,
432
- document?.content?.target,
433
- text,
434
- id,
435
- space,
436
- identity
437
- ]);
438
- };
439
- var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, query, viewMode, previewOptions }) => {
440
- const extensions = [
441
- selectionManager && selectionChange(selectionManager),
442
- settings.editorInputMode && InputModeExtensions[settings.editorInputMode],
443
- settings.folding && folding()
444
- ].filter(isNotFalsy2);
445
- if (viewMode !== "source") {
446
- extensions.push(...[
447
- formattingKeymap(),
448
- decorateMarkdown({
449
- selectionChangeDelay: 100,
450
- numberedHeadings: settings.numberedHeadings ? {
451
- from: 2
452
- } : void 0,
453
- // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
454
- renderLinkButton: dispatch && (document || id) ? createLinkRenderer((id2) => {
455
- void dispatch(createIntent(LayoutAction2.Open, {
456
- part: "main",
457
- subject: [
458
- id2
459
- ],
460
- options: {
461
- pivotId: document ? fullyQualifiedId(document) : id2
462
- }
463
- }));
464
- }) : void 0
465
- }),
466
- linkTooltip(renderLinkTooltip),
467
- preview(previewOptions)
468
- ]);
469
- }
470
- if (query) {
471
- extensions.push(autocomplete({
472
- onSearch: (text) => {
473
- return query.objects.map((object) => object.name?.length && object.id !== document?.id ? {
474
- label: object.name,
475
- // TODO(burdon): Factor out URL builder.
476
- apply: `[${object.name}](/${fullyQualifiedId(object)})`
477
- } : void 0).filter(isNotFalsy2);
478
- }
479
- }));
480
- }
481
- if (settings.debug) {
482
- const items = settings.typewriter?.split(/[,\n]/) ?? "";
483
- if (items) {
484
- extensions.push(typewriter({
485
- items
486
- }));
487
- }
488
- }
489
- return extensions;
490
- };
491
- var selectionChange = (selectionManager) => {
492
- return EditorView2.updateListener.of(debounceAndThrottle((update) => {
493
- if (update.selectionSet) {
494
- const id = update.state.facet(documentId);
495
- const cursorConverter = update.state.facet(Cursor2.converter);
496
- const selection = update.state.selection;
497
- const ranges = selection.ranges.map((range) => ({
498
- from: cursorConverter.toCursor(range.from),
499
- to: cursorConverter.toCursor(range.to)
500
- })).filter(({ from, to }) => to > from);
501
- selectionManager.updateMultiRange(id, ranges);
502
- }
503
- }, 100));
504
- };
505
- var style = {
506
- hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
507
- icon: "inline-block leading-none mis-1 cursor-pointer"
508
- };
509
- var createLinkRenderer = (onSelectObject) => (el, { url }) => {
510
- const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
511
- url.startsWith(window.location.origin);
512
- const options = isInternal ? {
513
- onClick: () => {
514
- const qualifiedId = url.split("/").at(-1);
515
- invariant3(qualifiedId, "Invalid link format.", {
516
- F: __dxlog_file3,
517
- L: 291,
518
- S: void 0,
519
- A: [
520
- "qualifiedId",
521
- "'Invalid link format.'"
522
- ]
523
- });
524
- onSelectObject(qualifiedId);
525
- }
526
- } : {
527
- href: url,
528
- rel: "noreferrer",
529
- target: "_blank"
530
- };
531
- renderRoot(el, /* @__PURE__ */ React2.createElement("a", {
532
- ...options,
533
- className: style.hover
534
- }, /* @__PURE__ */ React2.createElement(Icon, {
535
- icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
536
- size: 4,
537
- classNames: style.icon
538
- })));
539
- };
540
- var renderLinkTooltip = (el, { url }) => {
541
- const web = new URL(url);
542
- renderRoot(el, /* @__PURE__ */ React2.createElement("a", {
543
- href: url,
544
- rel: "noreferrer",
545
- target: "_blank",
546
- className: style.hover
547
- }, web.origin, /* @__PURE__ */ React2.createElement(Icon, {
548
- icon: "ph--arrow-square-out--bold",
549
- size: 4,
550
- classNames: style.icon
551
- })));
552
- };
553
- var renderRoot = (root, node) => {
554
- createRoot(root).render(/* @__PURE__ */ React2.createElement(ThemeProvider, {
555
- tx: defaultTx
556
- }, node));
557
- return root;
558
- };
559
-
560
562
  // src/components/MarkdownContainer.tsx
561
563
  var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMode, editorStateStore, onViewModeChange }) => {
562
564
  var _effect = _useSignals2();
563
565
  try {
564
566
  const { t } = useTranslation2();
565
567
  const scrollPastEnd = role === "article";
566
- const doc = Obj.instanceOf(DocumentType, object) ? object : void 0;
568
+ const doc = Obj.instanceOf(Markdown_exports.Document, object) ? object : void 0;
567
569
  const text = Obj.instanceOf(DataType.Text, object) ? object : void 0;
568
570
  const [previewBlocks, setPreviewBlocks] = useState([]);
569
571
  const previewOptions = useMemo4(() => ({
@@ -774,6 +776,7 @@ var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
774
776
  var MarkdownContainer_default = MarkdownContainer;
775
777
  export {
776
778
  DocumentEditor,
779
+ MarkdownContainer,
777
780
  MarkdownContainer_default as default
778
781
  };
779
- //# sourceMappingURL=MarkdownContainer-VOUHL6IU.mjs.map
782
+ //# sourceMappingURL=MarkdownContainer-K3BPAGWO.mjs.map