@dxos/plugin-markdown 0.8.4-main.c1de068 → 0.8.4-main.dedc0f3

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 (235) 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-JW7TRDSA.mjs} +256 -279
  4. package/dist/lib/browser/MarkdownContainer-JW7TRDSA.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-5YKFUHRU.mjs +11 -0
  10. package/dist/lib/browser/blueprint-definition-5YKFUHRU.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-F6JJLKLN.mjs +102 -0
  14. package/dist/lib/browser/chunk-F6JJLKLN.mjs.map +7 -0
  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-SUOK6YMI.mjs +22 -0
  22. package/dist/lib/browser/chunk-SUOK6YMI.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-LHDCHDBW.mjs → chunk-Z7P6JGGW.mjs} +6 -5
  24. package/dist/lib/browser/chunk-Z7P6JGGW.mjs.map +7 -0
  25. package/dist/lib/browser/index.mjs +34 -21
  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-L3NTMD4D.mjs} +53 -44
  31. package/dist/lib/browser/react-surface-L3NTMD4D.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/toolkit-2AJTHG74.mjs +74 -0
  37. package/dist/lib/browser/toolkit-2AJTHG74.mjs.map +7 -0
  38. package/dist/lib/browser/types/index.mjs +6 -14
  39. package/dist/lib/node-esm/{MarkdownPreview-77UFEWXT.mjs → MarkdownCard-XL5EVSJ7.mjs} +16 -16
  40. package/dist/lib/node-esm/MarkdownCard-XL5EVSJ7.mjs.map +7 -0
  41. package/dist/lib/node-esm/{MarkdownContainer-VOUHL6IU.mjs → MarkdownContainer-HRGQXIXP.mjs} +256 -279
  42. package/dist/lib/node-esm/MarkdownContainer-HRGQXIXP.mjs.map +7 -0
  43. package/dist/lib/node-esm/{anchor-sort-IPIS5D5B.mjs → anchor-sort-ALP2NH24.mjs} +5 -5
  44. package/dist/lib/node-esm/anchor-sort-ALP2NH24.mjs.map +7 -0
  45. package/dist/lib/node-esm/{app-graph-serializer-FLBXQKKR.mjs → app-graph-serializer-56TD3BMX.mjs} +10 -11
  46. package/dist/lib/node-esm/app-graph-serializer-56TD3BMX.mjs.map +7 -0
  47. package/dist/lib/node-esm/blueprint-definition-GVW67KGV.mjs +12 -0
  48. package/dist/lib/node-esm/blueprint-definition-GVW67KGV.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-ACFGXH2K.mjs → chunk-CB2R4YIY.mjs} +5 -5
  50. package/dist/lib/node-esm/chunk-CB2R4YIY.mjs.map +7 -0
  51. package/dist/lib/node-esm/chunk-DVK63TD3.mjs +103 -0
  52. package/dist/lib/node-esm/chunk-DVK63TD3.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-FXILAQ5F.mjs +79 -0
  54. package/dist/lib/node-esm/chunk-FXILAQ5F.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-VIR2ABYE.mjs → chunk-J7A6TUB2.mjs} +6 -5
  56. package/dist/lib/node-esm/chunk-J7A6TUB2.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-JC2YWB5D.mjs +24 -0
  58. package/dist/lib/node-esm/chunk-JC2YWB5D.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-CWTFQSN7.mjs → chunk-O6EXWGGS.mjs} +8 -9
  60. package/dist/lib/node-esm/chunk-O6EXWGGS.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-VCG2U522.mjs +29 -0
  62. package/dist/lib/node-esm/chunk-VCG2U522.mjs.map +7 -0
  63. package/dist/lib/node-esm/index.mjs +34 -21
  64. package/dist/lib/node-esm/index.mjs.map +3 -3
  65. package/dist/lib/node-esm/intent-resolver-2I5HKCUU.mjs +63 -0
  66. package/dist/lib/node-esm/intent-resolver-2I5HKCUU.mjs.map +7 -0
  67. package/dist/lib/node-esm/meta.json +1 -1
  68. package/dist/lib/node-esm/{react-surface-TTTBYNI2.mjs → react-surface-YZSZFR5D.mjs} +53 -44
  69. package/dist/lib/node-esm/react-surface-YZSZFR5D.mjs.map +7 -0
  70. package/dist/lib/node-esm/{settings-KVP7TVX7.mjs → settings-CXGR6DH4.mjs} +5 -5
  71. package/dist/lib/node-esm/settings-CXGR6DH4.mjs.map +7 -0
  72. package/dist/lib/node-esm/{state-NW3W4JCQ.mjs → state-NWMQ3XAI.mjs} +7 -7
  73. package/dist/lib/node-esm/state-NWMQ3XAI.mjs.map +7 -0
  74. package/dist/lib/node-esm/toolkit-RC44I2MI.mjs +75 -0
  75. package/dist/lib/node-esm/toolkit-RC44I2MI.mjs.map +7 -0
  76. package/dist/lib/node-esm/types/index.mjs +6 -14
  77. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -2
  79. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  80. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -9
  82. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  84. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/capabilities.d.ts +1 -1
  86. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/index.d.ts +12 -10
  88. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  90. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  92. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/settings.d.ts +1 -1
  94. package/dist/types/src/capabilities/state.d.ts +2 -2
  95. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/toolkit.d.ts +4 -0
  97. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
  98. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +7 -0
  99. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  100. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +10 -0
  101. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/MarkdownCard/index.d.ts +4 -0
  103. package/dist/types/src/components/MarkdownCard/index.d.ts.map +1 -0
  104. package/dist/types/src/components/MarkdownContainer.d.ts +5 -5
  105. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  106. package/dist/types/src/components/MarkdownContainer.stories.d.ts +50 -4
  107. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  108. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +2 -2
  109. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  110. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +110 -12
  111. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +2 -2
  113. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  114. package/dist/types/src/components/Suggestions.stories.d.ts +2 -2
  115. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/Toolbar.stories.d.ts +44 -7
  117. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/index.d.ts +1 -1
  119. package/dist/types/src/components/index.d.ts.map +1 -1
  120. package/dist/types/src/events.d.ts.map +1 -1
  121. package/dist/types/src/extensions.d.ts +3 -5
  122. package/dist/types/src/extensions.d.ts.map +1 -1
  123. package/dist/types/src/functions/diff.d.ts +6 -0
  124. package/dist/types/src/functions/diff.d.ts.map +1 -0
  125. package/dist/types/src/functions/index.d.ts +3 -0
  126. package/dist/types/src/functions/index.d.ts.map +1 -0
  127. package/dist/types/src/functions/open.d.ts +7 -0
  128. package/dist/types/src/functions/open.d.ts.map +1 -0
  129. package/dist/types/src/index.d.ts +2 -1
  130. package/dist/types/src/index.d.ts.map +1 -1
  131. package/dist/types/src/meta.d.ts +0 -1
  132. package/dist/types/src/meta.d.ts.map +1 -1
  133. package/dist/types/src/translations.d.ts +3 -2
  134. package/dist/types/src/translations.d.ts.map +1 -1
  135. package/dist/types/src/types/Markdown.d.ts +43 -0
  136. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  137. package/dist/types/src/types/MarkdownAction.d.ts +33 -0
  138. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
  139. package/dist/types/src/types/index.d.ts +2 -1
  140. package/dist/types/src/types/index.d.ts.map +1 -1
  141. package/dist/types/src/types/types.d.ts +3 -59
  142. package/dist/types/src/types/types.d.ts.map +1 -1
  143. package/dist/types/src/util.d.ts +12 -3
  144. package/dist/types/src/util.d.ts.map +1 -1
  145. package/dist/types/tsconfig.tsbuildinfo +1 -1
  146. package/package.json +49 -44
  147. package/src/MarkdownPlugin.tsx +21 -12
  148. package/src/capabilities/anchor-sort.ts +3 -3
  149. package/src/capabilities/app-graph-serializer.ts +7 -5
  150. package/src/capabilities/artifact-definition.ts +18 -23
  151. package/src/capabilities/blueprint-definition.ts +39 -0
  152. package/src/capabilities/capabilities.ts +5 -4
  153. package/src/capabilities/index.ts +3 -1
  154. package/src/capabilities/intent-resolver.ts +15 -21
  155. package/src/capabilities/react-surface.tsx +21 -19
  156. package/src/capabilities/settings.ts +3 -3
  157. package/src/capabilities/state.ts +8 -8
  158. package/src/capabilities/toolkit.ts +47 -0
  159. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +79 -0
  160. package/src/components/{MarkdownPreview/MarkdownPreview.tsx → MarkdownCard/MarkdownCard.tsx} +11 -9
  161. package/src/components/MarkdownCard/index.ts +9 -0
  162. package/src/components/MarkdownContainer.stories.tsx +12 -15
  163. package/src/components/MarkdownContainer.tsx +10 -9
  164. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +10 -7
  165. package/src/components/MarkdownEditor/MarkdownEditor.tsx +24 -24
  166. package/src/components/MarkdownSettings/MarkdownSettings.tsx +81 -78
  167. package/src/components/Suggestions.stories.tsx +24 -27
  168. package/src/components/Toolbar.stories.tsx +19 -14
  169. package/src/components/index.ts +1 -1
  170. package/src/events.ts +2 -2
  171. package/src/extensions.tsx +10 -38
  172. package/src/functions/diff.ts +35 -0
  173. package/src/functions/index.ts +6 -0
  174. package/src/functions/open.ts +30 -0
  175. package/src/hooks/useSelectCurrentThread.tsx +3 -3
  176. package/src/index.ts +4 -1
  177. package/src/meta.ts +7 -8
  178. package/src/translations.ts +3 -2
  179. package/src/types/Markdown.ts +56 -0
  180. package/src/types/MarkdownAction.ts +29 -0
  181. package/src/types/index.ts +2 -1
  182. package/src/types/types.ts +6 -50
  183. package/src/util.tsx +20 -6
  184. package/dist/lib/browser/MarkdownContainer-F3WEEIBX.mjs.map +0 -7
  185. package/dist/lib/browser/MarkdownPreview-S3C7CGAV.mjs.map +0 -7
  186. package/dist/lib/browser/anchor-sort-UKJJ7ZNP.mjs.map +0 -7
  187. package/dist/lib/browser/app-graph-serializer-ICLAF662.mjs.map +0 -7
  188. package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs +0 -145
  189. package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs.map +0 -7
  190. package/dist/lib/browser/chunk-777RIED6.mjs +0 -16
  191. package/dist/lib/browser/chunk-777RIED6.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-EPTSAJZM.mjs +0 -22
  193. package/dist/lib/browser/chunk-EPTSAJZM.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-LFML7LC6.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-LHDCHDBW.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-PHTD5DTR.mjs +0 -20
  197. package/dist/lib/browser/chunk-PHTD5DTR.mjs.map +0 -7
  198. package/dist/lib/browser/chunk-UANWRJZU.mjs +0 -79
  199. package/dist/lib/browser/chunk-UANWRJZU.mjs.map +0 -7
  200. package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs +0 -64
  201. package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs.map +0 -7
  202. package/dist/lib/browser/react-surface-C3Z423TV.mjs.map +0 -7
  203. package/dist/lib/browser/settings-KN75ZQY6.mjs.map +0 -7
  204. package/dist/lib/browser/state-LZWTAS65.mjs.map +0 -7
  205. package/dist/lib/node-esm/MarkdownContainer-VOUHL6IU.mjs.map +0 -7
  206. package/dist/lib/node-esm/MarkdownPreview-77UFEWXT.mjs.map +0 -7
  207. package/dist/lib/node-esm/anchor-sort-IPIS5D5B.mjs.map +0 -7
  208. package/dist/lib/node-esm/app-graph-serializer-FLBXQKKR.mjs.map +0 -7
  209. package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs +0 -146
  210. package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs.map +0 -7
  211. package/dist/lib/node-esm/chunk-7X6TPTJK.mjs +0 -22
  212. package/dist/lib/node-esm/chunk-7X6TPTJK.mjs.map +0 -7
  213. package/dist/lib/node-esm/chunk-ACFGXH2K.mjs.map +0 -7
  214. package/dist/lib/node-esm/chunk-CWTFQSN7.mjs.map +0 -7
  215. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs +0 -24
  216. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs.map +0 -7
  217. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs +0 -80
  218. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs.map +0 -7
  219. package/dist/lib/node-esm/chunk-VIR2ABYE.mjs.map +0 -7
  220. package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs +0 -65
  221. package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs.map +0 -7
  222. package/dist/lib/node-esm/react-surface-TTTBYNI2.mjs.map +0 -7
  223. package/dist/lib/node-esm/settings-KVP7TVX7.mjs.map +0 -7
  224. package/dist/lib/node-esm/state-NW3W4JCQ.mjs.map +0 -7
  225. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
  226. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
  227. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -42
  228. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
  229. package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
  230. package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
  231. package/dist/types/src/types/schema.d.ts +0 -35
  232. package/dist/types/src/types/schema.d.ts.map +0 -1
  233. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -81
  234. package/src/components/MarkdownPreview/index.ts +0 -9
  235. 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-JC2YWB5D.mjs";
3
+ import "./chunk-DVK63TD3.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,241 @@ 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, 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, 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 (settings.debug) {
158
+ const items = settings.typewriter?.split(/[,\n]/) ?? "";
159
+ if (items) {
160
+ extensions.push(typewriter({
161
+ items
162
+ }));
163
+ }
164
+ }
165
+ return extensions;
166
+ };
167
+ var selectionChange = (selectionManager) => {
168
+ return EditorView.updateListener.of(debounceAndThrottle((update) => {
169
+ if (update.selectionSet) {
170
+ const id = update.state.facet(documentId);
171
+ const cursorConverter = update.state.facet(Cursor.converter);
172
+ const selection = update.state.selection;
173
+ const ranges = selection.ranges.map((range) => ({
174
+ from: cursorConverter.toCursor(range.from),
175
+ to: cursorConverter.toCursor(range.to)
176
+ })).filter(({ from, to }) => to > from);
177
+ selectionManager.updateMultiRange(id, ranges);
178
+ }
179
+ }, 100));
180
+ };
181
+ var style = {
182
+ hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
183
+ icon: "inline-block leading-none mis-1 cursor-pointer"
184
+ };
185
+ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
186
+ const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
187
+ url.startsWith(window.location.origin);
188
+ const options = isInternal ? {
189
+ onClick: () => {
190
+ const qualifiedId = url.split("/").at(-1);
191
+ invariant(qualifiedId, "Invalid link format.", {
192
+ F: __dxlog_file,
193
+ L: 263,
194
+ S: void 0,
195
+ A: [
196
+ "qualifiedId",
197
+ "'Invalid link format.'"
198
+ ]
199
+ });
200
+ onSelectObject(qualifiedId);
201
+ }
202
+ } : {
203
+ href: url,
204
+ rel: "noreferrer",
205
+ target: "_blank"
206
+ };
207
+ renderRoot(el, /* @__PURE__ */ React.createElement("a", {
208
+ ...options,
209
+ className: style.hover
210
+ }, /* @__PURE__ */ React.createElement(Icon, {
211
+ icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
212
+ size: 4,
213
+ classNames: style.icon
214
+ })));
215
+ };
216
+ var renderLinkTooltip = (el, { url }) => {
217
+ const web = new URL(url);
218
+ renderRoot(el, /* @__PURE__ */ React.createElement("a", {
219
+ href: url,
220
+ rel: "noreferrer",
221
+ target: "_blank",
222
+ className: style.hover
223
+ }, web.origin, /* @__PURE__ */ React.createElement(Icon, {
224
+ icon: "ph--arrow-square-out--bold",
225
+ size: 4,
226
+ classNames: style.icon
227
+ })));
228
+ };
229
+ var renderRoot = (root, node) => {
230
+ createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
231
+ tx: defaultTx
232
+ }, node));
233
+ return root;
234
+ };
235
+
31
236
  // src/components/MarkdownEditor/MarkdownEditor.tsx
32
237
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
33
- import React, { forwardRef, useMemo as useMemo2, useEffect, useCallback, useImperativeHandle, useRef } from "react";
238
+ import React2, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo as useMemo3, useRef } from "react";
34
239
  import { useDropzone } from "react-dropzone";
35
- import { invariant as invariant2 } from "@dxos/invariant";
240
+ import { invariant as invariant3 } from "@dxos/invariant";
36
241
  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";
242
+ import { CommandMenu, Domino, EditorToolbar, RefPopover, addLink, coreSlashCommands, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorGutter, editorSlots, filterItems, linkSlashCommands, processEditorPayload, stackItemContentEditorClassNames, useCommandMenu, useEditorToolbarState, useFormattingState, useTextEditor } from "@dxos/react-ui-editor";
38
243
  import { StackItem } from "@dxos/react-ui-stack";
39
- import { isNotFalsy, isNonNullable } from "@dxos/util";
244
+ import { isNonNullable, isNotFalsy as isNotFalsy2 } from "@dxos/util";
40
245
 
41
246
  // src/hooks/useSelectCurrentThread.tsx
42
- import { EditorView } from "@codemirror/view";
247
+ import { EditorView as EditorView2 } from "@codemirror/view";
43
248
  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";
249
+ import { useMemo as useMemo2 } from "react";
250
+ import { LayoutAction as LayoutAction2, createResolver, useIntentResolver } from "@dxos/app-framework";
251
+ import { invariant as invariant2 } from "@dxos/invariant";
252
+ import { Cursor as Cursor2, setSelection } from "@dxos/react-ui-editor";
253
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
49
254
  var useSelectCurrentThread = (editorView, documentId2) => {
50
- const scrollIntoViewResolver = useMemo(() => createResolver({
51
- intent: LayoutAction.UpdateLayout,
255
+ const scrollIntoViewResolver = useMemo2(() => createResolver({
256
+ intent: LayoutAction2.UpdateLayout,
52
257
  position: "hoist",
53
258
  filter: (data) => {
54
- if (!Schema.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
259
+ if (!Schema.is(LayoutAction2.ScrollIntoView.fields.input)(data)) {
55
260
  return false;
56
261
  }
57
262
  return !!editorView && data.subject === documentId2 && !!data.options?.cursor;
58
263
  },
59
264
  resolve: ({ options: { cursor } }) => {
60
- invariant(editorView, "Editor view is not defined.", {
61
- F: __dxlog_file,
265
+ invariant2(editorView, "Editor view is not defined.", {
266
+ F: __dxlog_file2,
62
267
  L: 32,
63
268
  S: void 0,
64
269
  A: [
@@ -66,14 +271,14 @@ var useSelectCurrentThread = (editorView, documentId2) => {
66
271
  "'Editor view is not defined.'"
67
272
  ]
68
273
  });
69
- const range = Cursor.getRangeFromCursor(editorView.state, cursor);
274
+ const range = Cursor2.getRangeFromCursor(editorView.state, cursor);
70
275
  if (range) {
71
276
  const selection = editorView.state.selection.main.from !== range.from ? {
72
277
  anchor: range.from
73
278
  } : void 0;
74
279
  const effects = [
75
280
  // NOTE: This does not use the DOM scrollIntoView function.
76
- EditorView.scrollIntoView(range.from, {
281
+ EditorView2.scrollIntoView(range.from, {
77
282
  y: "start",
78
283
  yMargin: 96
79
284
  })
@@ -95,12 +300,12 @@ var useSelectCurrentThread = (editorView, documentId2) => {
95
300
  documentId2,
96
301
  editorView
97
302
  ]);
98
- useIntentResolver(MARKDOWN_PLUGIN, scrollIntoViewResolver);
303
+ useIntentResolver(meta.id, scrollIntoViewResolver);
99
304
  };
100
305
 
101
306
  // src/components/MarkdownEditor/MarkdownEditor.tsx
102
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
103
- var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery, ...props }) => {
307
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
308
+ var MarkdownEditor = ({ extensions: extensionsParam, slashCommandGroups, onLinkQuery, ...props }) => {
104
309
  var _effect = _useSignals();
105
310
  try {
106
311
  const { t } = useTranslation();
@@ -121,7 +326,7 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
121
326
  onLinkQuery,
122
327
  slashCommandGroups
123
328
  ]);
124
- const options = useMemo2(() => {
329
+ const options = useMemo3(() => {
125
330
  const trigger = onLinkQuery ? [
126
331
  "/",
127
332
  "@"
@@ -133,20 +338,7 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
133
338
  trigger,
134
339
  placeholder: {
135
340
  delay: 3e3,
136
- content: () => {
137
- return createElement("div", void 0, [
138
- createElement("span", {
139
- text: "Press"
140
- }),
141
- ...trigger.map((text) => createElement("span", {
142
- className: "border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]",
143
- text
144
- })),
145
- createElement("span", {
146
- text: "for commands."
147
- })
148
- ]);
149
- }
341
+ content: () => Domino.of("div").child(Domino.of("span").text("Press"), ...trigger.map((text) => Domino.of("span").classNames("border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]").text(text)), Domino.of("span").text("for commands.")).build()
150
342
  },
151
343
  getMenu
152
344
  };
@@ -154,21 +346,21 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
154
346
  getMenu
155
347
  ]);
156
348
  const { commandMenu, groupsRef, currentItem, onSelect, ...refPopoverProps } = useCommandMenu(options);
157
- const extensions = useMemo2(() => [
158
- _extensions,
349
+ const extensions = useMemo3(() => [
350
+ extensionsParam,
159
351
  commandMenu
160
- ].filter(isNotFalsy), [
161
- _extensions,
352
+ ].filter(isNotFalsy2), [
353
+ extensionsParam,
162
354
  commandMenu
163
355
  ]);
164
- return /* @__PURE__ */ React.createElement(RefPopover, {
356
+ return /* @__PURE__ */ React2.createElement(RefPopover, {
165
357
  modal: false,
166
358
  ...refPopoverProps
167
- }, /* @__PURE__ */ React.createElement(MarkdownEditorImpl, {
359
+ }, /* @__PURE__ */ React2.createElement(MarkdownEditorImpl, {
168
360
  ref: viewRef,
169
361
  ...props,
170
362
  extensions
171
- }), /* @__PURE__ */ React.createElement(CommandMenu, {
363
+ }), /* @__PURE__ */ React2.createElement(CommandMenu, {
172
364
  groups: groupsRef.current,
173
365
  currentItem,
174
366
  onSelect
@@ -180,16 +372,16 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
180
372
  var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", initialValue, customActions, editorStateStore, extensions, extensionProviders, scrollPastEnd, toolbar, viewMode, onFileUpload, onViewModeChange }, forwardedRef) => {
181
373
  var _effect = _useSignals();
182
374
  try {
183
- const { t } = useTranslation(MARKDOWN_PLUGIN);
375
+ const { t } = useTranslation(meta.id);
184
376
  const { themeMode } = useThemeContext();
185
377
  const toolbarState = useEditorToolbarState({
186
378
  viewMode
187
379
  });
188
380
  const formattingObserver = useFormattingState(toolbarState);
189
- const { scrollTo, selection } = useMemo2(() => editorStateStore?.getState(id) ?? {}, [
381
+ const { scrollTo, selection } = useMemo3(() => editorStateStore?.getState(id) ?? {}, [
190
382
  id
191
383
  ]);
192
- const providerExtensions = useMemo2(() => extensionProviders?.flatMap((provider) => provider({})).filter(isNonNullable), [
384
+ const providerExtensions = useMemo3(() => extensionProviders?.flatMap((provider) => provider({})).filter(isNonNullable), [
193
385
  extensionProviders
194
386
  ]);
195
387
  const handleDrop = async (view, { files }) => {
@@ -209,11 +401,10 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
209
401
  createBasicExtensions({
210
402
  readOnly: viewMode === "readonly",
211
403
  placeholder: t("editor placeholder"),
212
- scrollPastEnd: role === "section" ? false : scrollPastEnd
213
- }),
214
- createMarkdownExtensions({
215
- themeMode
404
+ scrollPastEnd: role === "section" ? false : scrollPastEnd,
405
+ search: true
216
406
  }),
407
+ createMarkdownExtensions(),
217
408
  createThemeExtensions({
218
409
  themeMode,
219
410
  syntaxHighlighting: true,
@@ -225,7 +416,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
225
416
  }),
226
417
  providerExtensions,
227
418
  extensions
228
- ].filter(isNotFalsy),
419
+ ].filter(isNotFalsy2),
229
420
  ...role !== "section" && {
230
421
  id,
231
422
  scrollTo,
@@ -284,8 +475,8 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
284
475
  onFileUpload
285
476
  ]);
286
477
  const getView = useCallback(() => {
287
- invariant2(editorView, void 0, {
288
- F: __dxlog_file2,
478
+ invariant3(editorView, void 0, {
479
+ F: __dxlog_file3,
289
480
  L: 240,
290
481
  S: void 0,
291
482
  A: [
@@ -308,9 +499,9 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
308
499
  }, [
309
500
  onFileUpload
310
501
  ]);
311
- return /* @__PURE__ */ React.createElement(StackItem.Content, {
502
+ return /* @__PURE__ */ React2.createElement(StackItem.Content, {
312
503
  toolbar: !!toolbar
313
- }, toolbar && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(EditorToolbar, {
504
+ }, toolbar && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(EditorToolbar, {
314
505
  attendableId: id,
315
506
  role,
316
507
  state: toolbarState,
@@ -318,7 +509,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
318
509
  getView,
319
510
  image: handleImageUpload,
320
511
  viewMode: handleViewModeChange
321
- }), /* @__PURE__ */ React.createElement("input", getInputProps())), /* @__PURE__ */ React.createElement("div", {
512
+ }), /* @__PURE__ */ React2.createElement("input", getInputProps())), /* @__PURE__ */ React2.createElement("div", {
322
513
  role: "none",
323
514
  ref: parentRef,
324
515
  "data-testid": "composer.markdownRoot",
@@ -342,228 +533,13 @@ var useTest = (view) => {
342
533
  ]);
343
534
  };
344
535
 
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
536
  // src/components/MarkdownContainer.tsx
561
537
  var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMode, editorStateStore, onViewModeChange }) => {
562
538
  var _effect = _useSignals2();
563
539
  try {
564
540
  const { t } = useTranslation2();
565
541
  const scrollPastEnd = role === "article";
566
- const doc = Obj.instanceOf(DocumentType, object) ? object : void 0;
542
+ const doc = Obj.instanceOf(Markdown_exports.Document, object) ? object : void 0;
567
543
  const text = Obj.instanceOf(DataType.Text, object) ? object : void 0;
568
544
  const [previewBlocks, setPreviewBlocks] = useState([]);
569
545
  const previewOptions = useMemo4(() => ({
@@ -774,6 +750,7 @@ var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
774
750
  var MarkdownContainer_default = MarkdownContainer;
775
751
  export {
776
752
  DocumentEditor,
753
+ MarkdownContainer,
777
754
  MarkdownContainer_default as default
778
755
  };
779
- //# sourceMappingURL=MarkdownContainer-VOUHL6IU.mjs.map
756
+ //# sourceMappingURL=MarkdownContainer-HRGQXIXP.mjs.map