@dxos/plugin-markdown 0.8.4-main.3eb6e50203 → 0.8.4-main.4a85c3132b

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 (203) hide show
  1. package/dist/lib/browser/{chunk-EZZFREFN.mjs → MarkdownCard-5NPSEJ2M.mjs} +26 -23
  2. package/dist/lib/browser/MarkdownCard-5NPSEJ2M.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-7AQTX6D5.mjs → MarkdownContainer-KER2N5M2.mjs} +19 -16
  4. package/dist/lib/browser/MarkdownContainer-KER2N5M2.mjs.map +7 -0
  5. package/dist/lib/browser/{react-surface-7Z6AB26V.mjs → MarkdownSettings-2N4TT2FG.mjs} +6 -113
  6. package/dist/lib/browser/MarkdownSettings-2N4TT2FG.mjs.map +7 -0
  7. package/dist/lib/browser/{anchor-sort-JBAZRPE7.mjs → anchor-sort-EHJGOCYW.mjs} +3 -2
  8. package/dist/lib/browser/{app-graph-serializer-6Q5YBUPW.mjs → app-graph-serializer-QBZDVASK.mjs} +5 -4
  9. package/dist/lib/browser/app-graph-serializer-QBZDVASK.mjs.map +7 -0
  10. package/dist/lib/browser/{blueprint-definition-6HOAW2E6.mjs → blueprint-definition-ASGDSKKE.mjs} +7 -9
  11. package/dist/lib/browser/blueprint-definition-ASGDSKKE.mjs.map +7 -0
  12. package/dist/lib/browser/blueprints/index.mjs +5 -4
  13. package/dist/lib/browser/{chunk-HHRUUWGH.mjs → chunk-7JEOX3X6.mjs} +169 -182
  14. package/dist/lib/browser/chunk-7JEOX3X6.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-6SM75KL3.mjs → chunk-HK6EGNP5.mjs} +2 -2
  16. package/dist/lib/browser/{chunk-4GT3QWMK.mjs → chunk-P3TN2W6M.mjs} +20 -33
  17. package/dist/lib/browser/chunk-P3TN2W6M.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-2AAD3W6X.mjs → chunk-RJO5W5YX.mjs} +5 -3
  19. package/dist/lib/{node-esm/chunk-MLZQCT2N.mjs.map → browser/chunk-RJO5W5YX.mjs.map} +1 -1
  20. package/dist/lib/browser/{chunk-HQTBT5IY.mjs → chunk-W24NJ6WB.mjs} +26 -24
  21. package/dist/lib/browser/chunk-W24NJ6WB.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-YBMRREXE.mjs +28 -0
  23. package/dist/lib/browser/chunk-YBMRREXE.mjs.map +7 -0
  24. package/dist/lib/browser/cli/index.mjs +5 -3
  25. package/dist/lib/browser/cli/index.mjs.map +1 -1
  26. package/dist/lib/browser/index.mjs +16 -14
  27. package/dist/lib/browser/index.mjs.map +3 -3
  28. package/dist/lib/browser/meta.json +1 -1
  29. package/dist/lib/browser/{operation-resolver-UBQUPSXC.mjs → operation-resolver-3KOXJM7P.mjs} +5 -4
  30. package/dist/lib/browser/operation-resolver-3KOXJM7P.mjs.map +7 -0
  31. package/dist/lib/browser/react-surface-WU4VTE43.mjs +115 -0
  32. package/dist/lib/browser/react-surface-WU4VTE43.mjs.map +7 -0
  33. package/dist/lib/browser/{settings-V2XOFSD5.mjs → settings-7FMWKB7N.mjs} +5 -3
  34. package/dist/lib/{node-esm/settings-EXSH2KF4.mjs.map → browser/settings-7FMWKB7N.mjs.map} +1 -1
  35. package/dist/lib/browser/{state-6Y3JB64H.mjs → state-7UJKJDGE.mjs} +5 -3
  36. package/dist/lib/{node-esm/state-TVF2XT2T.mjs.map → browser/state-7UJKJDGE.mjs.map} +1 -1
  37. package/dist/lib/browser/types/index.mjs +2 -1
  38. package/dist/lib/node-esm/{chunk-DCKB3AVD.mjs → MarkdownCard-4MXS7AQR.mjs} +26 -23
  39. package/dist/lib/node-esm/MarkdownCard-4MXS7AQR.mjs.map +7 -0
  40. package/dist/lib/node-esm/{chunk-K2IIYNCG.mjs → MarkdownContainer-BZ637MS3.mjs} +19 -16
  41. package/dist/lib/node-esm/MarkdownContainer-BZ637MS3.mjs.map +7 -0
  42. package/dist/lib/node-esm/{react-surface-VIXAH5CF.mjs → MarkdownSettings-FQTYCTD7.mjs} +6 -113
  43. package/dist/lib/node-esm/MarkdownSettings-FQTYCTD7.mjs.map +7 -0
  44. package/dist/lib/node-esm/{anchor-sort-IQMDZRA3.mjs → anchor-sort-QWZO6B2R.mjs} +3 -2
  45. package/dist/lib/{browser/anchor-sort-JBAZRPE7.mjs.map → node-esm/anchor-sort-QWZO6B2R.mjs.map} +1 -1
  46. package/dist/lib/node-esm/{app-graph-serializer-STEPJH57.mjs → app-graph-serializer-3UVXEHJG.mjs} +5 -4
  47. package/dist/lib/node-esm/app-graph-serializer-3UVXEHJG.mjs.map +7 -0
  48. package/dist/lib/node-esm/{blueprint-definition-UGDFF5OZ.mjs → blueprint-definition-TG7OZIWW.mjs} +7 -9
  49. package/dist/lib/node-esm/blueprint-definition-TG7OZIWW.mjs.map +7 -0
  50. package/dist/lib/node-esm/blueprints/index.mjs +5 -4
  51. package/dist/lib/node-esm/{chunk-MLZQCT2N.mjs → chunk-ANIFP6M2.mjs} +5 -3
  52. package/dist/lib/{browser/chunk-2AAD3W6X.mjs.map → node-esm/chunk-ANIFP6M2.mjs.map} +1 -1
  53. package/dist/lib/node-esm/{chunk-AGZOFIK2.mjs → chunk-KCH3EL53.mjs} +2 -2
  54. package/dist/lib/node-esm/{chunk-D46D75SK.mjs → chunk-N73JZ4CD.mjs} +169 -182
  55. package/dist/lib/node-esm/chunk-N73JZ4CD.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-LOZVC2WA.mjs → chunk-NBGAJPVH.mjs} +26 -24
  57. package/dist/lib/node-esm/chunk-NBGAJPVH.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-W7AM4HCG.mjs +29 -0
  59. package/dist/lib/node-esm/chunk-W7AM4HCG.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-USKAPINH.mjs → chunk-WBZQ246U.mjs} +20 -33
  61. package/dist/lib/node-esm/chunk-WBZQ246U.mjs.map +7 -0
  62. package/dist/lib/node-esm/cli/index.mjs +5 -3
  63. package/dist/lib/node-esm/cli/index.mjs.map +1 -1
  64. package/dist/lib/node-esm/index.mjs +16 -14
  65. package/dist/lib/node-esm/index.mjs.map +3 -3
  66. package/dist/lib/node-esm/meta.json +1 -1
  67. package/dist/lib/node-esm/{operation-resolver-QAGXDA5E.mjs → operation-resolver-2MEWKRFP.mjs} +5 -4
  68. package/dist/lib/node-esm/operation-resolver-2MEWKRFP.mjs.map +7 -0
  69. package/dist/lib/node-esm/react-surface-LC5CI6VP.mjs +116 -0
  70. package/dist/lib/node-esm/react-surface-LC5CI6VP.mjs.map +7 -0
  71. package/dist/lib/node-esm/{settings-EXSH2KF4.mjs → settings-DBK2SPWT.mjs} +5 -3
  72. package/dist/lib/{browser/settings-V2XOFSD5.mjs.map → node-esm/settings-DBK2SPWT.mjs.map} +1 -1
  73. package/dist/lib/node-esm/{state-TVF2XT2T.mjs → state-EEPLRAOT.mjs} +5 -3
  74. package/dist/lib/{browser/state-6Y3JB64H.mjs.map → node-esm/state-EEPLRAOT.mjs.map} +1 -1
  75. package/dist/lib/node-esm/types/index.mjs +2 -1
  76. package/dist/types/src/blueprints/functions/index.d.ts +41 -3
  77. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -1
  78. package/dist/types/src/blueprints/index.d.ts +1 -1
  79. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  80. package/dist/types/src/blueprints/markdown-blueprint.d.ts +3 -20
  81. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +1 -1
  83. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +1 -1
  84. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +1 -1
  85. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +1 -6
  86. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
  88. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +1 -1
  90. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +1 -1
  91. package/dist/types/src/capabilities/settings/settings.d.ts +1 -1
  92. package/dist/types/src/capabilities/state/state.d.ts +1 -1
  93. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  94. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  96. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +3 -3
  97. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  98. package/dist/types/src/components/index.d.ts +1 -8
  99. package/dist/types/src/components/index.d.ts.map +1 -1
  100. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  101. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  102. package/dist/types/src/{components → containers}/MarkdownCard/index.d.ts +0 -1
  103. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  104. package/dist/types/src/{components → containers/MarkdownContainer}/MarkdownContainer.d.ts +2 -3
  105. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
  106. package/dist/types/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.d.ts +1 -1
  107. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
  108. package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
  109. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
  110. package/dist/types/src/{components → containers}/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  111. package/dist/types/src/containers/MarkdownSettings/index.d.ts +3 -0
  112. package/dist/types/src/containers/MarkdownSettings/index.d.ts.map +1 -0
  113. package/dist/types/src/containers/index.d.ts +6 -0
  114. package/dist/types/src/containers/index.d.ts.map +1 -0
  115. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  116. package/dist/types/src/index.d.ts +1 -1
  117. package/dist/types/src/index.d.ts.map +1 -1
  118. package/dist/types/src/types/Markdown.d.ts +1 -1
  119. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  120. package/dist/types/src/types/MarkdownAction.d.ts +1 -1
  121. package/dist/types/src/util.d.ts +1 -1
  122. package/dist/types/src/util.d.ts.map +1 -1
  123. package/dist/types/tsconfig.tsbuildinfo +1 -1
  124. package/package.json +48 -48
  125. package/src/MarkdownPlugin.tsx +1 -1
  126. package/src/blueprints/functions/create.conversations.json +1 -1
  127. package/src/blueprints/functions/create.test.ts +2 -2
  128. package/src/blueprints/functions/create.ts +2 -2
  129. package/src/blueprints/functions/index.ts +11 -3
  130. package/src/blueprints/functions/open.ts +2 -2
  131. package/src/blueprints/functions/update.conversations.json +1 -1
  132. package/src/blueprints/functions/update.test.ts +2 -2
  133. package/src/blueprints/functions/update.ts +2 -2
  134. package/src/blueprints/index.ts +1 -1
  135. package/src/blueprints/markdown-blueprint.ts +14 -6
  136. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +1 -1
  137. package/src/capabilities/blueprint-definition/blueprint-definition.ts +4 -13
  138. package/src/capabilities/operation-resolver/operation-resolver.ts +2 -2
  139. package/src/capabilities/react-surface/react-surface.tsx +1 -1
  140. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +10 -8
  141. package/src/components/MarkdownEditor/MarkdownEditor.tsx +13 -3
  142. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +3 -4
  143. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +6 -5
  144. package/src/components/index.ts +2 -14
  145. package/src/{components → containers}/MarkdownCard/MarkdownCard.stories.tsx +16 -6
  146. package/src/{components → containers}/MarkdownCard/MarkdownCard.tsx +21 -24
  147. package/src/{components → containers}/MarkdownCard/index.ts +0 -2
  148. package/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.tsx +18 -5
  149. package/src/{components → containers/MarkdownContainer}/MarkdownContainer.tsx +25 -24
  150. package/src/containers/MarkdownContainer/index.ts +7 -0
  151. package/src/containers/MarkdownSettings/index.ts +7 -0
  152. package/src/containers/index.ts +11 -0
  153. package/src/hooks/useEditorMenuOptions.ts +1 -1
  154. package/src/hooks/useExtensions.tsx +51 -81
  155. package/src/index.ts +1 -1
  156. package/src/testing.ts +1 -1
  157. package/src/types/Markdown.ts +12 -4
  158. package/src/types/MarkdownAction.ts +1 -1
  159. package/src/util.tsx +2 -2
  160. package/dist/lib/browser/MarkdownCard-7VIO7R66.mjs +0 -11
  161. package/dist/lib/browser/MarkdownCard-7VIO7R66.mjs.map +0 -7
  162. package/dist/lib/browser/MarkdownContainer-6E43EDAU.mjs +0 -11
  163. package/dist/lib/browser/MarkdownContainer-6E43EDAU.mjs.map +0 -7
  164. package/dist/lib/browser/app-graph-serializer-6Q5YBUPW.mjs.map +0 -7
  165. package/dist/lib/browser/blueprint-definition-6HOAW2E6.mjs.map +0 -7
  166. package/dist/lib/browser/chunk-4GT3QWMK.mjs.map +0 -7
  167. package/dist/lib/browser/chunk-7AQTX6D5.mjs.map +0 -7
  168. package/dist/lib/browser/chunk-EZZFREFN.mjs.map +0 -7
  169. package/dist/lib/browser/chunk-HHRUUWGH.mjs.map +0 -7
  170. package/dist/lib/browser/chunk-HQTBT5IY.mjs.map +0 -7
  171. package/dist/lib/browser/operation-resolver-UBQUPSXC.mjs.map +0 -7
  172. package/dist/lib/browser/react-surface-7Z6AB26V.mjs.map +0 -7
  173. package/dist/lib/node-esm/MarkdownCard-YC3R2TQW.mjs +0 -12
  174. package/dist/lib/node-esm/MarkdownCard-YC3R2TQW.mjs.map +0 -7
  175. package/dist/lib/node-esm/MarkdownContainer-TTRUOXU6.mjs +0 -12
  176. package/dist/lib/node-esm/MarkdownContainer-TTRUOXU6.mjs.map +0 -7
  177. package/dist/lib/node-esm/app-graph-serializer-STEPJH57.mjs.map +0 -7
  178. package/dist/lib/node-esm/blueprint-definition-UGDFF5OZ.mjs.map +0 -7
  179. package/dist/lib/node-esm/chunk-D46D75SK.mjs.map +0 -7
  180. package/dist/lib/node-esm/chunk-DCKB3AVD.mjs.map +0 -7
  181. package/dist/lib/node-esm/chunk-K2IIYNCG.mjs.map +0 -7
  182. package/dist/lib/node-esm/chunk-LOZVC2WA.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-USKAPINH.mjs.map +0 -7
  184. package/dist/lib/node-esm/operation-resolver-QAGXDA5E.mjs.map +0 -7
  185. package/dist/lib/node-esm/react-surface-VIXAH5CF.mjs.map +0 -7
  186. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
  187. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
  188. package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
  189. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  190. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  191. package/dist/types/src/components/MarkdownSettings/index.d.ts +0 -2
  192. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +0 -1
  193. package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
  194. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  195. package/src/components/MarkdownSettings/index.ts +0 -5
  196. package/src/components/Suggestions.stories.tsx +0 -215
  197. /package/dist/lib/{node-esm/anchor-sort-IQMDZRA3.mjs.map → browser/anchor-sort-EHJGOCYW.mjs.map} +0 -0
  198. /package/dist/lib/browser/{chunk-6SM75KL3.mjs.map → chunk-HK6EGNP5.mjs.map} +0 -0
  199. /package/dist/lib/node-esm/{chunk-AGZOFIK2.mjs.map → chunk-KCH3EL53.mjs.map} +0 -0
  200. /package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.d.ts +0 -0
  201. /package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.stories.d.ts +0 -0
  202. /package/dist/types/src/{components → containers}/MarkdownSettings/MarkdownSettings.d.ts +0 -0
  203. /package/src/{components → containers}/MarkdownSettings/MarkdownSettings.tsx +0 -0
@@ -1,8 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- Markdown_exports,
3
+ Markdown_exports
4
+ } from "./chunk-WBZQ246U.mjs";
5
+ import {
4
6
  meta
5
- } from "./chunk-USKAPINH.mjs";
7
+ } from "./chunk-W7AM4HCG.mjs";
6
8
 
7
9
  // src/util.tsx
8
10
  import { debounce } from "@dxos/async";
@@ -61,9 +63,9 @@ var getFallbackName = (content = "") => {
61
63
  }
62
64
  return "";
63
65
  };
64
- var getContentSnippet = (content = "") => {
66
+ var getContentSnippet = (content = "", maxLines = 3) => {
65
67
  const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
66
- return abstract.slice(0, 3).join("\n") ?? "";
68
+ return abstract.slice(0, maxLines).join("\n") ?? "";
67
69
  };
68
70
  var setFallbackName = debounce((doc, content = "") => {
69
71
  const name = getFallbackName(content);
@@ -92,87 +94,24 @@ var serializer = {
92
94
  }
93
95
  };
94
96
 
95
- // src/hooks/useLinkQuery.ts
96
- import * as Option from "effect/Option";
97
- import { useCallback, useMemo } from "react";
98
- import { usePluginManager } from "@dxos/app-framework/ui";
99
- import { AppCapabilities } from "@dxos/app-toolkit";
100
- import { Filter, Obj as Obj2, Query, Type } from "@dxos/echo";
101
- import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
102
- import { toLocalizedString, useTranslation } from "@dxos/react-ui";
103
- import { insertAtCursor, insertAtLineStart } from "@dxos/ui-editor";
104
- var useLinkQuery = (db) => {
105
- const { t } = useTranslation();
106
- const manager = usePluginManager();
107
- const resolve = useCallback((typename) => manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
108
- manager
109
- ]);
110
- const filter = useMemo(() => Filter.or(...(db?.schemaRegistry.query({
111
- location: [
112
- "database",
113
- "runtime"
114
- ]
115
- }).runSync() ?? []).filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation).filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false))).map((schema) => Filter.typename(Type.getTypename(schema)))), [
116
- db
117
- ]);
118
- const handleLinkQuery = useCallback(async (query) => {
119
- const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
120
- const results = await db?.query(Query.select(filter)).run();
121
- const getLabel = (object) => {
122
- const label = Obj2.getLabel(object);
123
- if (label) {
124
- return label;
125
- }
126
- const type = Obj2.getTypename(object);
127
- const metadata = resolve(type);
128
- return metadata.label?.(object) || [
129
- "object name placeholder",
130
- {
131
- ns: type,
132
- default: "New object"
133
- }
134
- ];
135
- };
136
- const items = results?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name)).map((object) => {
137
- const metadata = resolve(Obj2.getTypename(object));
138
- const label = toLocalizedString(getLabel(object), t);
139
- return {
140
- id: object.id,
141
- label,
142
- icon: metadata.icon,
143
- onSelect: ({ view, head }) => {
144
- const link = `[${label}](${Obj2.getDXN(object)})`;
145
- if (query?.startsWith("@")) {
146
- insertAtLineStart(view, head, `!${link}
147
- `);
148
- } else {
149
- insertAtCursor(view, head, `${link} `);
150
- }
151
- }
152
- };
153
- }) ?? [];
154
- return [
155
- {
156
- id: "echo",
157
- items
158
- }
159
- ];
160
- }, [
161
- db,
162
- filter,
163
- resolve
164
- ]);
165
- return handleLinkQuery;
166
- };
97
+ // src/components/MarkdownEditor/MarkdownEditor.tsx
98
+ import { createContext } from "@radix-ui/react-context";
99
+ import React4, { useMemo as useMemo6, useState as useState2 } from "react";
100
+ import { createPortal as createPortal2 } from "react-dom";
101
+ import { Surface } from "@dxos/app-framework/ui";
102
+ import { DXN } from "@dxos/keys";
103
+ import { useClient } from "@dxos/react-client";
104
+ import { EditorMenuProvider, useEditorMenu, useEditorToolbar } from "@dxos/react-ui-editor";
105
+ import { isNonNullable } from "@dxos/util";
167
106
 
168
107
  // src/hooks/useEditorMenuOptions.ts
169
- import { useCallback as useCallback2, useMemo as useMemo2, useRef } from "react";
170
- import { toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
108
+ import { useCallback, useMemo, useRef } from "react";
109
+ import { toLocalizedString, useTranslation } from "@dxos/react-ui";
171
110
  import { filterMenuGroups, formattingCommands, linkSlashCommands } from "@dxos/react-ui-editor";
172
111
  import { Domino } from "@dxos/ui";
173
112
  var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) => {
174
- const { t } = useTranslation2(meta.id);
175
- const getMenu = useCallback2(({ text, trigger }) => {
113
+ const { t } = useTranslation(meta.id);
114
+ const getMenu = useCallback(({ text, trigger }) => {
176
115
  switch (trigger) {
177
116
  case "@": {
178
117
  return onLinkQuery?.(text) ?? [];
@@ -183,7 +122,7 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
183
122
  formattingCommands,
184
123
  linkSlashCommands,
185
124
  ...slashCommandGroups ?? []
186
- ], (item) => text ? toLocalizedString2(item.label, t).toLowerCase().includes(text.toLowerCase()) : true);
125
+ ], (item) => text ? toLocalizedString(item.label, t).toLowerCase().includes(text.toLowerCase()) : true);
187
126
  }
188
127
  }
189
128
  }, [
@@ -191,7 +130,7 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
191
130
  onLinkQuery
192
131
  ]);
193
132
  const viewRef = useRef(editorView);
194
- return useMemo2(() => {
133
+ return useMemo(() => {
195
134
  const trigger = onLinkQuery ? [
196
135
  "/",
197
136
  "@"
@@ -202,7 +141,7 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
202
141
  delay: 3e3,
203
142
  content: () => {
204
143
  const pressEl = Domino.of("span").text("Press");
205
- const triggerEls = trigger.map((text) => Domino.of("span").classNames("mx-1 pli-1.5 pt-[1px] pb-[2px] border border-separator rounded-sm").text(text));
144
+ const triggerEls = trigger.map((text) => Domino.of("span").classNames("mx-1 px-1.5 pt-[1px] pb-[2px] border border-separator rounded-xs").text(text));
206
145
  const forCommandsEl = Domino.of("span").text("for commands.");
207
146
  return Domino.of("div").children(pressEl, ...triggerEls, forCommandsEl).root;
208
147
  }
@@ -220,30 +159,28 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
220
159
  };
221
160
 
222
161
  // src/hooks/useExtensions.tsx
223
- import React, { useMemo as useMemo3 } from "react";
224
- import { createRoot } from "react-dom/client";
162
+ import { useMemo as useMemo2 } from "react";
225
163
  import { useOperationInvoker } from "@dxos/app-framework/ui";
226
164
  import { LayoutOperation } from "@dxos/app-toolkit";
227
165
  import { debounceAndThrottle } from "@dxos/async";
228
- import { Obj as Obj3 } from "@dxos/echo";
166
+ import { Obj as Obj2 } from "@dxos/echo";
229
167
  import { createDocAccessor } from "@dxos/echo-db";
230
168
  import { invariant } from "@dxos/invariant";
231
169
  import { getSpace, useObject } from "@dxos/react-client/echo";
232
170
  import { useIdentity } from "@dxos/react-client/halo";
233
- import { Icon, ThemeProvider } from "@dxos/react-ui";
234
171
  import { Text } from "@dxos/schema";
172
+ import { Domino as Domino2 } from "@dxos/ui";
235
173
  import { Cursor, EditorView, InputModeExtensions, createDataExtensions, decorateMarkdown, documentId, folding, formattingKeymap, linkTooltip, listener, preview, replacer, selectionState, typewriter } from "@dxos/ui-editor";
236
- import { defaultTx } from "@dxos/ui-theme";
237
- import { isTruthy } from "@dxos/util";
174
+ import { isTruthy, safeUrl } from "@dxos/util";
238
175
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useExtensions.tsx";
239
176
  var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
240
177
  const { invokePromise } = useOperationInvoker();
241
178
  const identity = useIdentity();
242
179
  const space = getSpace(object);
243
- const contentRef = Obj3.instanceOf(Markdown_exports.Document, object) ? object.content : void 0;
180
+ const contentRef = Obj2.instanceOf(Markdown_exports.Document, object) ? object.content : void 0;
244
181
  useObject(contentRef);
245
- const target = contentRef?.target ?? (Obj3.instanceOf(Text.Text, object) ? object : void 0);
246
- const baseExtensions = useMemo3(() => createBaseExtensions({
182
+ const target = contentRef?.target ?? (Obj2.instanceOf(Text.Text, object) ? object : void 0);
183
+ const baseExtensions = useMemo2(() => createBaseExtensions({
247
184
  id,
248
185
  object,
249
186
  settings,
@@ -265,7 +202,7 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
265
202
  settings?.typewriter,
266
203
  selectionManager
267
204
  ]);
268
- return useMemo3(() => [
205
+ return useMemo2(() => [
269
206
  // TODO(burdon): Pass this in?
270
207
  // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
271
208
  target && createDataExtensions({
@@ -277,7 +214,7 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
277
214
  identity
278
215
  }),
279
216
  // TODO(burdon): Reconcile with effect in parent.
280
- Obj3.instanceOf(Markdown_exports.Document, object) && listener({
217
+ Obj2.instanceOf(Markdown_exports.Document, object) && listener({
281
218
  onChange: ({ text }) => {
282
219
  setFallbackName(object, text);
283
220
  }
@@ -307,16 +244,15 @@ var createBaseExtensions = ({ id, object, invokePromise, settings, selectionMana
307
244
  numberedHeadings: settings?.numberedHeadings ? {
308
245
  from: 2
309
246
  } : void 0,
310
- // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
311
- // TODO(burdon): Create dx-tag.
312
- renderLinkButton: invokePromise && (object || id) ? createLinkRenderer((targetId) => {
313
- void invokePromise(LayoutOperation.Open, {
247
+ // TODO(wittjosiah): For internal links render the label of the object.
248
+ renderLinkButton: createRenderLink((targetId) => {
249
+ void invokePromise?.(LayoutOperation.Open, {
314
250
  subject: [
315
251
  targetId
316
252
  ],
317
- pivotId: object && Obj3.isObject(object) ? Obj3.getDXN(object).toString() : id
253
+ pivotId: object && Obj2.isObject(object) ? Obj2.getDXN(object).toString() : id
318
254
  });
319
- }) : void 0
255
+ })
320
256
  }),
321
257
  linkTooltip(renderLinkTooltip),
322
258
  preview(previewOptions),
@@ -334,32 +270,31 @@ var createBaseExtensions = ({ id, object, invokePromise, settings, selectionMana
334
270
  return extensions;
335
271
  };
336
272
  var selectionChange = (selectionManager) => {
337
- return EditorView.updateListener.of(debounceAndThrottle((update) => {
273
+ const debouncedHandler = debounceAndThrottle((update) => {
274
+ const id = update.state.facet(documentId);
275
+ const cursorConverter = update.state.facet(Cursor.converter);
276
+ const selection = update.state.selection;
277
+ const ranges = selection.ranges.map((range) => ({
278
+ from: cursorConverter.toCursor(range.from),
279
+ to: cursorConverter.toCursor(range.to)
280
+ })).filter(({ from, to }) => to > from);
281
+ selectionManager.updateMultiRange(id, ranges);
282
+ }, 100);
283
+ return EditorView.updateListener.of((update) => {
338
284
  if (update.selectionSet) {
339
- const id = update.state.facet(documentId);
340
- const cursorConverter = update.state.facet(Cursor.converter);
341
- const selection = update.state.selection;
342
- const ranges = selection.ranges.map((range) => ({
343
- from: cursorConverter.toCursor(range.from),
344
- to: cursorConverter.toCursor(range.to)
345
- })).filter(({ from, to }) => to > from);
346
- selectionManager.updateMultiRange(id, ranges);
285
+ debouncedHandler(update);
347
286
  }
348
- }, 100));
349
- };
350
- var style = {
351
- hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
352
- icon: "inline-block leading-none mis-1 cursor-pointer"
287
+ });
353
288
  };
354
- var createLinkRenderer = (onSelectObject) => (el, { url }) => {
355
- const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
356
- url.startsWith(window.location.origin);
357
- const options = isInternal ? {
358
- onClick: () => {
289
+ var createRenderLink = (onSelectObject) => (el, { url }) => {
290
+ const isInternal = url.startsWith("/") || url.startsWith(window.location.origin);
291
+ const anchor = Domino2.of("a").classNames("dx-link dx-icon-inline ms-1").children(Domino2.svg(isInternal ? "ph--arrow-square-down--regular" : "ph--arrow-square-out--regular"));
292
+ if (isInternal) {
293
+ anchor.on("click", () => {
359
294
  const qualifiedId = url.split("/").at(-1);
360
295
  invariant(qualifiedId, "Invalid link format.", {
361
296
  F: __dxlog_file,
362
- L: 238,
297
+ L: 227,
363
298
  S: void 0,
364
299
  A: [
365
300
  "qualifiedId",
@@ -367,39 +302,95 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
367
302
  ]
368
303
  });
369
304
  onSelectObject(qualifiedId);
370
- }
371
- } : {
372
- href: url,
373
- rel: "noreferrer",
374
- target: "_blank"
375
- };
376
- renderRoot(el, /* @__PURE__ */ React.createElement("a", {
377
- ...options,
378
- className: style.hover
379
- }, /* @__PURE__ */ React.createElement(Icon, {
380
- icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
381
- size: 4,
382
- classNames: style.icon
383
- })));
305
+ });
306
+ } else {
307
+ anchor.attributes({
308
+ href: url,
309
+ rel: "noreferrer",
310
+ target: "_blank"
311
+ });
312
+ }
313
+ el.appendChild(anchor.root);
384
314
  };
385
315
  var renderLinkTooltip = (el, { url }) => {
386
- const web = new URL(url);
387
- renderRoot(el, /* @__PURE__ */ React.createElement("a", {
316
+ el.appendChild(Domino2.of("a").attributes({
388
317
  href: url,
389
- rel: "noreferrer",
390
318
  target: "_blank",
391
- className: style.hover
392
- }, web.origin, /* @__PURE__ */ React.createElement(Icon, {
393
- icon: "ph--arrow-square-out--bold",
394
- size: 4,
395
- classNames: style.icon
396
- })));
319
+ rel: "noreferrer"
320
+ }).classNames("dx-link flex items-center gap-2").text(safeUrl(url)?.origin ?? url).children(Domino2.svg("ph--arrow-square-out--regular")).root);
397
321
  };
398
- var renderRoot = (root, node) => {
399
- createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
400
- tx: defaultTx
401
- }, node));
402
- return root;
322
+
323
+ // src/hooks/useLinkQuery.ts
324
+ import * as Option from "effect/Option";
325
+ import { useCallback as useCallback2, useMemo as useMemo3 } from "react";
326
+ import { usePluginManager } from "@dxos/app-framework/ui";
327
+ import { AppCapabilities } from "@dxos/app-toolkit";
328
+ import { Filter, Obj as Obj3, Query, Type } from "@dxos/echo";
329
+ import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
330
+ import { toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
331
+ import { insertAtCursor, insertAtLineStart } from "@dxos/ui-editor";
332
+ var useLinkQuery = (db) => {
333
+ const { t } = useTranslation2();
334
+ const manager = usePluginManager();
335
+ const resolve = useCallback2((typename) => manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
336
+ manager
337
+ ]);
338
+ const filter = useMemo3(() => Filter.or(...(db?.schemaRegistry.query({
339
+ location: [
340
+ "database",
341
+ "runtime"
342
+ ]
343
+ }).runSync() ?? []).filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation).filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false))).map((schema) => Filter.typename(Type.getTypename(schema)))), [
344
+ db
345
+ ]);
346
+ const handleLinkQuery = useCallback2(async (query) => {
347
+ const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
348
+ const results = await db?.query(Query.select(filter)).run();
349
+ const getLabel = (object) => {
350
+ const label = Obj3.getLabel(object);
351
+ if (label) {
352
+ return label;
353
+ }
354
+ const type = Obj3.getTypename(object);
355
+ const metadata = resolve(type);
356
+ return metadata.label?.(object) || [
357
+ "object name placeholder",
358
+ {
359
+ ns: type,
360
+ default: "New object"
361
+ }
362
+ ];
363
+ };
364
+ const items = results?.filter((object) => toLocalizedString2(getLabel(object), t).toLowerCase().includes(name)).map((object) => {
365
+ const metadata = resolve(Obj3.getTypename(object));
366
+ const label = toLocalizedString2(getLabel(object), t);
367
+ return {
368
+ id: object.id,
369
+ label,
370
+ icon: metadata.icon,
371
+ onSelect: ({ view, head }) => {
372
+ const link = `[${label}](${Obj3.getDXN(object)})`;
373
+ if (query?.startsWith("@")) {
374
+ insertAtLineStart(view, head, `!${link}
375
+ `);
376
+ } else {
377
+ insertAtCursor(view, head, `${link} `);
378
+ }
379
+ }
380
+ };
381
+ }) ?? [];
382
+ return [
383
+ {
384
+ id: "echo",
385
+ items
386
+ }
387
+ ];
388
+ }, [
389
+ db,
390
+ filter,
391
+ resolve
392
+ ]);
393
+ return handleLinkQuery;
403
394
  };
404
395
 
405
396
  // src/hooks/useSelectCurrentThread.tsx
@@ -463,19 +454,9 @@ var useSelectCurrentThread = (editorView, documentId2) => {
463
454
  useOperationResolver(meta.id, scrollIntoViewHandler);
464
455
  };
465
456
 
466
- // src/components/MarkdownEditor/MarkdownEditor.tsx
467
- import { createContext } from "@radix-ui/react-context";
468
- import React5, { useMemo as useMemo6, useState as useState2 } from "react";
469
- import { createPortal as createPortal2 } from "react-dom";
470
- import { Surface } from "@dxos/app-framework/ui";
471
- import { DXN } from "@dxos/keys";
472
- import { useClient } from "@dxos/react-client";
473
- import { EditorMenuProvider, useEditorMenu, useEditorToolbar } from "@dxos/react-ui-editor";
474
- import { isNonNullable } from "@dxos/util";
475
-
476
457
  // src/components/MarkdownEditor/MarkdownEditorContent.tsx
477
458
  import { RegistryContext } from "@effect-atom/atom-react";
478
- import React2, { forwardRef, useCallback as useCallback3, useContext, useEffect, useImperativeHandle, useMemo as useMemo5 } from "react";
459
+ import React, { forwardRef, useCallback as useCallback3, useContext, useEffect, useImperativeHandle, useMemo as useMemo5 } from "react";
479
460
  import { useThemeContext, useTranslation as useTranslation3 } from "@dxos/react-ui";
480
461
  import { useTextEditor } from "@dxos/react-ui-editor";
481
462
  import { createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorSlots, formattingListener, processEditorPayload, stackItemContentEditorClassNames } from "@dxos/ui-editor";
@@ -549,13 +530,13 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, role,
549
530
  ]);
550
531
  useSelectCurrentThread(editorView, id);
551
532
  useTest(editorView);
552
- return /* @__PURE__ */ React2.createElement("div", {
533
+ return /* @__PURE__ */ React.createElement("div", {
534
+ ...focusAttributes,
553
535
  role: "none",
554
- ref: parentRef,
555
536
  "data-testid": "composer.markdownRoot",
556
- className: mx(stackItemContentEditorClassNames(role), classNames),
557
537
  "data-popover-collision-boundary": true,
558
- ...focusAttributes
538
+ className: mx(stackItemContentEditorClassNames(role), classNames),
539
+ ref: parentRef
559
540
  });
560
541
  });
561
542
  var useTest = (view) => {
@@ -570,12 +551,12 @@ var useTest = (view) => {
570
551
  };
571
552
 
572
553
  // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
573
- import React4, { useCallback as useCallback4, useState } from "react";
554
+ import React3, { useCallback as useCallback4, useState } from "react";
574
555
  import { invariant as invariant3 } from "@dxos/invariant";
575
556
  import { EditorToolbar } from "@dxos/react-ui-editor";
576
557
 
577
558
  // src/components/MarkdownEditor/FileUpload.tsx
578
- import React3, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
559
+ import React2, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
579
560
  import { createPortal } from "react-dom";
580
561
  import { useDropzone } from "react-dropzone";
581
562
  import { addLink } from "@dxos/ui-editor";
@@ -622,14 +603,14 @@ var FileUpload = /* @__PURE__ */ forwardRef2(({ editorView, onFileUpload }, forw
622
603
  if (!onFileUpload) {
623
604
  return null;
624
605
  }
625
- return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ createPortal(/* @__PURE__ */ React3.createElement("input", {
606
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ createPortal(/* @__PURE__ */ React2.createElement("input", {
626
607
  ref: inputRef
627
608
  }), document.body), " ");
628
609
  });
629
610
 
630
611
  // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
631
612
  var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx";
632
- var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customActions, onAction, onFileUpload, onViewModeChange }) => {
613
+ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customActions, onAction, onFileUpload, onViewModeChange, ...props }) => {
633
614
  const [upload, setUpload] = useState(null);
634
615
  const uploadRef = useCallback4((next) => setUpload(() => next), []);
635
616
  const handleViewModeChange = useCallback4((mode) => onViewModeChange?.(mode), [
@@ -638,7 +619,7 @@ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customAc
638
619
  const getView = useCallback4(() => {
639
620
  invariant3(editorView, void 0, {
640
621
  F: __dxlog_file3,
641
- L: 41,
622
+ L: 42,
642
623
  S: void 0,
643
624
  A: [
644
625
  "editorView",
@@ -650,9 +631,12 @@ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customAc
650
631
  editorView
651
632
  ]);
652
633
  if (!editorView) {
653
- return /* @__PURE__ */ React4.createElement("div", null);
634
+ return /* @__PURE__ */ React3.createElement("div", props);
654
635
  }
655
- return /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(EditorToolbar, {
636
+ return /* @__PURE__ */ React3.createElement("div", {
637
+ role: "none",
638
+ ...props
639
+ }, /* @__PURE__ */ React3.createElement(EditorToolbar, {
656
640
  classNames,
657
641
  attendableId: id,
658
642
  role,
@@ -662,7 +646,7 @@ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customAc
662
646
  onAction,
663
647
  onImageUpload: upload ?? void 0,
664
648
  onViewModeChange: handleViewModeChange
665
- }), onFileUpload && /* @__PURE__ */ React4.createElement(FileUpload, {
649
+ }), onFileUpload && /* @__PURE__ */ React3.createElement(FileUpload, {
666
650
  ref: uploadRef,
667
651
  editorView,
668
652
  onFileUpload
@@ -712,7 +696,7 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
712
696
  menuExtension,
713
697
  extensionsProp
714
698
  ]);
715
- return /* @__PURE__ */ React5.createElement(MarkdownEditorContextProvider, {
699
+ return /* @__PURE__ */ React4.createElement(MarkdownEditorContextProvider, {
716
700
  id,
717
701
  editorView,
718
702
  setEditorView,
@@ -728,11 +712,11 @@ MarkdownEditorRoot.displayName = "MarkdownEditor.Root";
728
712
  var MARKDOWN_EDITOR_CONTENT_NAME = "MarkdownEditor.Content";
729
713
  var MarkdownEditorContent2 = (props) => {
730
714
  const { id, editorView, setEditorView, viewMode, toolbarState, extensions, popoverMenu: { groupsRef, ...menuProps } } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
731
- return /* @__PURE__ */ React5.createElement(EditorMenuProvider, {
715
+ return /* @__PURE__ */ React4.createElement(EditorMenuProvider, {
732
716
  view: editorView,
733
717
  groups: groupsRef.current,
734
718
  ...menuProps
735
- }, /* @__PURE__ */ React5.createElement(MarkdownEditorContent, {
719
+ }, /* @__PURE__ */ React4.createElement(MarkdownEditorContent, {
736
720
  ...props,
737
721
  id,
738
722
  viewMode,
@@ -744,18 +728,21 @@ var MarkdownEditorContent2 = (props) => {
744
728
  MarkdownEditorContent2.displayName = MARKDOWN_EDITOR_CONTENT_NAME;
745
729
  var MARKDOWN_EDITOR_TOOLBAR_NAME = "MarkdownEditor.Toolbar";
746
730
  var MarkdownEditorToolbar2 = (props) => {
747
- const { toolbarState, ...rootProps } = useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
748
- return /* @__PURE__ */ React5.createElement(MarkdownEditorToolbar, {
731
+ const { editorView, toolbarState, onAction, onFileUpload, onViewModeChange } = useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
732
+ return /* @__PURE__ */ React4.createElement(MarkdownEditorToolbar, {
749
733
  ...props,
750
- ...rootProps,
751
- state: toolbarState
734
+ editorView,
735
+ state: toolbarState,
736
+ onAction,
737
+ onFileUpload,
738
+ onViewModeChange
752
739
  });
753
740
  };
754
741
  MarkdownEditorToolbar2.displayName = MARKDOWN_EDITOR_TOOLBAR_NAME;
755
742
  var MARKDOWN_EDITOR_BLOCKS_NAME = "MarkdownEditor.Blocks";
756
743
  var MarkdownEditorBlocks = (_props) => {
757
744
  const { previewBlocks } = useMarkdownEditorContext(MARKDOWN_EDITOR_BLOCKS_NAME);
758
- return /* @__PURE__ */ React5.createElement(React5.Fragment, null, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React5.createElement(PreviewBlock, {
745
+ return /* @__PURE__ */ React4.createElement(React4.Fragment, null, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React4.createElement(PreviewBlock, {
759
746
  key: link.dxn,
760
747
  link,
761
748
  el
@@ -771,8 +758,8 @@ var PreviewBlock = ({ el, link }) => {
771
758
  }), [
772
759
  subject
773
760
  ]);
774
- return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React5.createElement(Surface.Surface, {
775
- role: "card--transclusion",
761
+ return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React4.createElement(Surface.Surface, {
762
+ role: "card--content",
776
763
  data,
777
764
  limit: 1
778
765
  }), el);
@@ -794,4 +781,4 @@ export {
794
781
  useLinkQuery,
795
782
  MarkdownEditor
796
783
  };
797
- //# sourceMappingURL=chunk-D46D75SK.mjs.map
784
+ //# sourceMappingURL=chunk-N73JZ4CD.mjs.map