@dxos/plugin-markdown 0.8.4-main.28f8d3d → 0.8.4-main.406dc2a

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 (178) hide show
  1. package/dist/lib/browser/{MarkdownCard-IMCR4A4V.mjs → MarkdownCard-AGWOTODZ.mjs} +21 -18
  2. package/dist/lib/browser/MarkdownCard-AGWOTODZ.mjs.map +7 -0
  3. package/dist/lib/browser/{MarkdownContainer-VGJPHMVG.mjs → MarkdownContainer-MV2UNAUV.mjs} +64 -93
  4. package/dist/lib/browser/MarkdownContainer-MV2UNAUV.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-AJKRIWFD.mjs → anchor-sort-YWJI3BKT.mjs} +5 -5
  6. package/dist/lib/browser/{anchor-sort-AJKRIWFD.mjs.map → anchor-sort-YWJI3BKT.mjs.map} +1 -1
  7. package/dist/lib/browser/{app-graph-serializer-OIS3MZX2.mjs → app-graph-serializer-KYDFCUOW.mjs} +8 -9
  8. package/dist/lib/browser/app-graph-serializer-KYDFCUOW.mjs.map +7 -0
  9. package/dist/lib/browser/blueprint-definition-BHRMFZAC.mjs +11 -0
  10. package/dist/lib/browser/blueprint-definition-BHRMFZAC.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-JMBQG2ZC.mjs → chunk-6KU5DKP7.mjs} +6 -5
  12. package/dist/lib/browser/chunk-6KU5DKP7.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-HBBEHOP3.mjs +106 -0
  14. package/dist/lib/browser/chunk-HBBEHOP3.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-MVL4K3OD.mjs → chunk-O6XUPW6S.mjs} +4 -3
  16. package/dist/lib/browser/chunk-O6XUPW6S.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-IKPZHFTW.mjs → chunk-ODB2PTBP.mjs} +2 -4
  18. package/dist/lib/browser/{chunk-IKPZHFTW.mjs.map → chunk-ODB2PTBP.mjs.map} +3 -3
  19. package/dist/lib/browser/{chunk-LMJPXTPL.mjs → chunk-OY6CGPOO.mjs} +2 -2
  20. package/dist/lib/browser/{chunk-JTIGSUMB.mjs → chunk-XMT6PMU5.mjs} +11 -12
  21. package/dist/lib/browser/chunk-XMT6PMU5.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-Z5PDJNBV.mjs +22 -0
  23. package/dist/lib/browser/chunk-Z5PDJNBV.mjs.map +7 -0
  24. package/dist/lib/browser/index.mjs +31 -16
  25. package/dist/lib/browser/index.mjs.map +3 -3
  26. package/dist/lib/browser/{intent-resolver-BLLHRSTQ.mjs → intent-resolver-XHVCZZHU.mjs} +20 -18
  27. package/dist/lib/browser/intent-resolver-XHVCZZHU.mjs.map +7 -0
  28. package/dist/lib/browser/meta.json +1 -1
  29. package/dist/lib/browser/{react-surface-NL3BZR6H.mjs → react-surface-3A2GO3BN.mjs} +38 -31
  30. package/dist/lib/browser/react-surface-3A2GO3BN.mjs.map +7 -0
  31. package/dist/lib/browser/{settings-Z7ZV7SLC.mjs → settings-XY265Y2Q.mjs} +5 -5
  32. package/dist/lib/browser/{settings-Z7ZV7SLC.mjs.map → settings-XY265Y2Q.mjs.map} +1 -1
  33. package/dist/lib/browser/{state-ORTZIEJU.mjs → state-6QODXCSZ.mjs} +5 -5
  34. package/dist/lib/browser/{state-ORTZIEJU.mjs.map → state-6QODXCSZ.mjs.map} +1 -1
  35. package/dist/lib/browser/toolkit-YA65QX2S.mjs +76 -0
  36. package/dist/lib/browser/toolkit-YA65QX2S.mjs.map +7 -0
  37. package/dist/lib/browser/types/index.mjs +2 -2
  38. package/dist/lib/node-esm/{MarkdownCard-JV2YDV3M.mjs → MarkdownCard-B2IWTFOC.mjs} +21 -18
  39. package/dist/lib/node-esm/MarkdownCard-B2IWTFOC.mjs.map +7 -0
  40. package/dist/lib/node-esm/{MarkdownContainer-BJRNCXJZ.mjs → MarkdownContainer-J2R3DLCQ.mjs} +64 -93
  41. package/dist/lib/node-esm/MarkdownContainer-J2R3DLCQ.mjs.map +7 -0
  42. package/dist/lib/node-esm/{anchor-sort-N7WEA5E3.mjs → anchor-sort-FCRYL2FX.mjs} +5 -5
  43. package/dist/lib/node-esm/{anchor-sort-N7WEA5E3.mjs.map → anchor-sort-FCRYL2FX.mjs.map} +1 -1
  44. package/dist/lib/node-esm/{app-graph-serializer-Q3B44VFB.mjs → app-graph-serializer-FAUQM3BH.mjs} +8 -9
  45. package/dist/lib/node-esm/app-graph-serializer-FAUQM3BH.mjs.map +7 -0
  46. package/dist/lib/node-esm/blueprint-definition-XYFKMIDR.mjs +12 -0
  47. package/dist/lib/node-esm/blueprint-definition-XYFKMIDR.mjs.map +7 -0
  48. package/dist/lib/node-esm/chunk-7RDNIMTF.mjs +24 -0
  49. package/dist/lib/node-esm/chunk-7RDNIMTF.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-AYWAYBAY.mjs → chunk-CB2R4YIY.mjs} +2 -2
  51. package/dist/lib/node-esm/chunk-FVI7LPC3.mjs +107 -0
  52. package/dist/lib/node-esm/chunk-FVI7LPC3.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-KIRZFVX5.mjs → chunk-FWZKC6X5.mjs} +11 -12
  54. package/dist/lib/node-esm/chunk-FWZKC6X5.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-H4I2FGDZ.mjs → chunk-VCG2U522.mjs} +2 -4
  56. package/dist/lib/node-esm/{chunk-H4I2FGDZ.mjs.map → chunk-VCG2U522.mjs.map} +3 -3
  57. package/dist/lib/node-esm/{chunk-Z4XQ6C3D.mjs → chunk-XO3IEQJE.mjs} +4 -3
  58. package/dist/lib/node-esm/chunk-XO3IEQJE.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-JDMMLOB6.mjs → chunk-ZBXV4ON7.mjs} +6 -5
  60. package/dist/lib/node-esm/chunk-ZBXV4ON7.mjs.map +7 -0
  61. package/dist/lib/node-esm/index.mjs +31 -16
  62. package/dist/lib/node-esm/index.mjs.map +3 -3
  63. package/dist/lib/node-esm/{intent-resolver-NHPUPSWK.mjs → intent-resolver-7A2EXGZQ.mjs} +20 -18
  64. package/dist/lib/node-esm/intent-resolver-7A2EXGZQ.mjs.map +7 -0
  65. package/dist/lib/node-esm/meta.json +1 -1
  66. package/dist/lib/node-esm/{react-surface-XJ6ODCBE.mjs → react-surface-RCLL5WVQ.mjs} +38 -31
  67. package/dist/lib/node-esm/react-surface-RCLL5WVQ.mjs.map +7 -0
  68. package/dist/lib/node-esm/{settings-UCXEWBCT.mjs → settings-H3UDD3KO.mjs} +5 -5
  69. package/dist/lib/node-esm/{settings-UCXEWBCT.mjs.map → settings-H3UDD3KO.mjs.map} +1 -1
  70. package/dist/lib/node-esm/{state-47WSZG54.mjs → state-W3PECOJX.mjs} +5 -5
  71. package/dist/lib/node-esm/{state-47WSZG54.mjs.map → state-W3PECOJX.mjs.map} +1 -1
  72. package/dist/lib/node-esm/toolkit-HSIKUGNK.mjs +77 -0
  73. package/dist/lib/node-esm/toolkit-HSIKUGNK.mjs.map +7 -0
  74. package/dist/lib/node-esm/types/index.mjs +2 -2
  75. package/dist/types/src/MarkdownPlugin.d.ts +1 -1
  76. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -2
  78. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  79. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -8
  80. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  82. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/index.d.ts +11 -8
  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/settings.d.ts +1 -1
  89. package/dist/types/src/capabilities/state.d.ts +2 -2
  90. package/dist/types/src/capabilities/toolkit.d.ts +4 -0
  91. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
  92. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  93. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +5 -38
  94. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  96. package/dist/types/src/components/MarkdownContainer.stories.d.ts +51 -5
  97. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  98. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +5 -5
  99. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  100. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +111 -13
  101. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  102. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  103. package/dist/types/src/components/Suggestions.stories.d.ts +1 -2
  104. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  105. package/dist/types/src/components/Toolbar.stories.d.ts +45 -8
  106. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  107. package/dist/types/src/extensions.d.ts +0 -2
  108. package/dist/types/src/extensions.d.ts.map +1 -1
  109. package/dist/types/src/functions/diff.d.ts +6 -0
  110. package/dist/types/src/functions/diff.d.ts.map +1 -0
  111. package/dist/types/src/functions/index.d.ts +3 -0
  112. package/dist/types/src/functions/index.d.ts.map +1 -0
  113. package/dist/types/src/functions/open.d.ts +7 -0
  114. package/dist/types/src/functions/open.d.ts.map +1 -0
  115. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +1 -1
  116. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  117. package/dist/types/src/meta.d.ts +0 -1
  118. package/dist/types/src/meta.d.ts.map +1 -1
  119. package/dist/types/src/translations.d.ts +1 -0
  120. package/dist/types/src/translations.d.ts.map +1 -1
  121. package/dist/types/src/types/Markdown.d.ts +7 -5
  122. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  123. package/dist/types/src/types/MarkdownAction.d.ts +6 -14
  124. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -1
  125. package/dist/types/src/types/types.d.ts.map +1 -1
  126. package/dist/types/src/util.d.ts +1 -1
  127. package/dist/types/src/util.d.ts.map +1 -1
  128. package/dist/types/tsconfig.tsbuildinfo +1 -1
  129. package/package.json +55 -52
  130. package/src/MarkdownPlugin.tsx +100 -86
  131. package/src/capabilities/app-graph-serializer.ts +3 -3
  132. package/src/capabilities/artifact-definition.ts +9 -16
  133. package/src/capabilities/blueprint-definition.ts +39 -0
  134. package/src/capabilities/index.ts +3 -0
  135. package/src/capabilities/intent-resolver.ts +11 -11
  136. package/src/capabilities/toolkit.ts +49 -0
  137. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +8 -11
  138. package/src/components/MarkdownCard/MarkdownCard.tsx +17 -16
  139. package/src/components/MarkdownContainer.stories.tsx +46 -37
  140. package/src/components/MarkdownContainer.tsx +16 -14
  141. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +19 -16
  142. package/src/components/MarkdownEditor/MarkdownEditor.tsx +47 -48
  143. package/src/components/MarkdownSettings/MarkdownSettings.tsx +77 -74
  144. package/src/components/Suggestions.stories.tsx +36 -38
  145. package/src/components/Toolbar.stories.tsx +20 -14
  146. package/src/extensions.tsx +4 -32
  147. package/src/functions/diff.ts +37 -0
  148. package/src/functions/index.ts +6 -0
  149. package/src/functions/open.ts +32 -0
  150. package/src/hooks/useSelectCurrentThread.tsx +2 -2
  151. package/src/meta.ts +0 -3
  152. package/src/translations.ts +1 -0
  153. package/src/types/Markdown.ts +6 -3
  154. package/src/types/MarkdownAction.ts +4 -6
  155. package/src/types/types.ts +1 -0
  156. package/src/util.tsx +8 -2
  157. package/dist/lib/browser/MarkdownCard-IMCR4A4V.mjs.map +0 -7
  158. package/dist/lib/browser/MarkdownContainer-VGJPHMVG.mjs.map +0 -7
  159. package/dist/lib/browser/app-graph-serializer-OIS3MZX2.mjs.map +0 -7
  160. package/dist/lib/browser/chunk-JHH7VL52.mjs +0 -18
  161. package/dist/lib/browser/chunk-JHH7VL52.mjs.map +0 -7
  162. package/dist/lib/browser/chunk-JMBQG2ZC.mjs.map +0 -7
  163. package/dist/lib/browser/chunk-JTIGSUMB.mjs.map +0 -7
  164. package/dist/lib/browser/chunk-MVL4K3OD.mjs.map +0 -7
  165. package/dist/lib/browser/intent-resolver-BLLHRSTQ.mjs.map +0 -7
  166. package/dist/lib/browser/react-surface-NL3BZR6H.mjs.map +0 -7
  167. package/dist/lib/node-esm/MarkdownCard-JV2YDV3M.mjs.map +0 -7
  168. package/dist/lib/node-esm/MarkdownContainer-BJRNCXJZ.mjs.map +0 -7
  169. package/dist/lib/node-esm/app-graph-serializer-Q3B44VFB.mjs.map +0 -7
  170. package/dist/lib/node-esm/chunk-H6TITL7A.mjs +0 -20
  171. package/dist/lib/node-esm/chunk-H6TITL7A.mjs.map +0 -7
  172. package/dist/lib/node-esm/chunk-JDMMLOB6.mjs.map +0 -7
  173. package/dist/lib/node-esm/chunk-KIRZFVX5.mjs.map +0 -7
  174. package/dist/lib/node-esm/chunk-Z4XQ6C3D.mjs.map +0 -7
  175. package/dist/lib/node-esm/intent-resolver-NHPUPSWK.mjs.map +0 -7
  176. package/dist/lib/node-esm/react-surface-XJ6ODCBE.mjs.map +0 -7
  177. /package/dist/lib/browser/{chunk-LMJPXTPL.mjs.map → chunk-OY6CGPOO.mjs.map} +0 -0
  178. /package/dist/lib/node-esm/{chunk-AYWAYBAY.mjs.map → chunk-CB2R4YIY.mjs.map} +0 -0
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  Markdown_exports
3
- } from "./chunk-JTIGSUMB.mjs";
3
+ } from "./chunk-XMT6PMU5.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-IKPZHFTW.mjs";
6
+ } from "./chunk-ODB2PTBP.mjs";
7
7
 
8
8
  // src/capabilities/settings.ts
9
9
  import { Capabilities, contributes } from "@dxos/app-framework";
10
10
  import { live } from "@dxos/live-object";
11
- var settings_default = () => {
11
+ var settings_default = (() => {
12
12
  const settings = live({
13
13
  defaultViewMode: "preview",
14
14
  toolbar: true,
@@ -21,8 +21,8 @@ var settings_default = () => {
21
21
  schema: Markdown_exports.Settings,
22
22
  value: settings
23
23
  });
24
- };
24
+ });
25
25
  export {
26
26
  settings_default as default
27
27
  };
28
- //# sourceMappingURL=settings-Z7ZV7SLC.mjs.map
28
+ //# sourceMappingURL=settings-XY265Y2Q.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/settings.ts"],
4
4
  "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { meta } from '../meta';\nimport { Markdown } from '../types';\n\nexport default () => {\n const settings = live<Markdown.Settings>({\n defaultViewMode: 'preview',\n toolbar: true,\n numberedHeadings: true,\n folding: true,\n experimental: false,\n });\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: Markdown.Settings,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,KAAwB;IACvCC,iBAAiB;IACjBC,SAAS;IACTC,kBAAkB;IAClBC,SAAS;IACTC,cAAc;EAChB,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC,iBAASL;IACjBM,OAAOf;EACT,CAAA;AACF;",
5
+ "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,oBAAe,MAAA;AACb,QAAMC,WAAWC,KAAwB;IACvCC,iBAAiB;IACjBC,SAAS;IACTC,kBAAkB;IAClBC,SAAS;IACTC,cAAc;EAChB,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC,iBAASL;IACjBM,OAAOf;EACT,CAAA;AACF;",
6
6
  "names": ["Capabilities", "contributes", "live", "settings", "live", "defaultViewMode", "toolbar", "numberedHeadings", "folding", "experimental", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "Markdown", "value"]
7
7
  }
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  MarkdownCapabilities
3
- } from "./chunk-LMJPXTPL.mjs";
3
+ } from "./chunk-OY6CGPOO.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-IKPZHFTW.mjs";
6
+ } from "./chunk-ODB2PTBP.mjs";
7
7
 
8
8
  // src/capabilities/state.ts
9
9
  import { Capabilities, contributes } from "@dxos/app-framework";
10
10
  import { LocalStorageStore } from "@dxos/local-storage";
11
11
  import { createEditorStateStore } from "@dxos/react-ui-editor";
12
- var state_default = (context) => {
12
+ var state_default = ((context) => {
13
13
  const state = new LocalStorageStore(meta.id, {
14
14
  extensionProviders: [],
15
15
  viewMode: {}
@@ -30,8 +30,8 @@ var state_default = (context) => {
30
30
  getViewMode,
31
31
  setViewMode
32
32
  });
33
- };
33
+ });
34
34
  export {
35
35
  state_default as default
36
36
  };
37
- //# sourceMappingURL=state-ORTZIEJU.mjs.map
37
+ //# sourceMappingURL=state-6QODXCSZ.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/state.ts"],
4
4
  "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { type EditorViewMode, createEditorStateStore } from '@dxos/react-ui-editor';\n\nimport { meta } from '../meta';\nimport { type Markdown, type MarkdownPluginState } from '../types';\n\nimport { MarkdownCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const state = new LocalStorageStore<MarkdownPluginState>(meta.id, { extensionProviders: [], viewMode: {} });\n state.prop({ key: 'viewMode', type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>() });\n\n // TODO(wittjosiah): Fold into state.\n const editorState = createEditorStateStore(`${meta.id}/editor`);\n\n const getViewMode = (id: string) => {\n const defaultViewMode = context.getCapability(Capabilities.SettingsStore).getStore<Markdown.Settings>(meta.id)!\n .value.defaultViewMode;\n return (id && state.values.viewMode[id]) || defaultViewMode;\n };\n\n const setViewMode = (id: string, viewMode: EditorViewMode) => (state.values.viewMode[id] = viewMode);\n\n // Return object with methods.\n return contributes(MarkdownCapabilities.State, { state: state.values, editorState, getViewMode, setViewMode });\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,cAAkCC,mBAAmB;AAC9D,SAASC,yBAAyB;AAClC,SAA8BC,8BAA8B;AAO5D,IAAA,gBAAe,CAACC,YAAAA;AACd,QAAMC,QAAQ,IAAIC,kBAAuCC,KAAKC,IAAI;IAAEC,oBAAoB,CAAA;IAAIC,UAAU,CAAC;EAAE,CAAA;AACzGL,QAAMM,KAAK;IAAEC,KAAK;IAAYC,MAAMP,kBAAkBQ,KAAI;EAAsC,CAAA;AAGhG,QAAMC,cAAcC,uBAAuB,GAAGT,KAAKC,EAAE,SAAS;AAE9D,QAAMS,cAAc,CAACT,OAAAA;AACnB,UAAMU,kBAAkBd,QAAQe,cAAcC,aAAaC,aAAa,EAAEC,SAA4Bf,KAAKC,EAAE,EAC1Ge,MAAML;AACT,WAAQV,MAAMH,MAAMmB,OAAOd,SAASF,EAAAA,KAAQU;EAC9C;AAEA,QAAMO,cAAc,CAACjB,IAAYE,aAA8BL,MAAMmB,OAAOd,SAASF,EAAAA,IAAME;AAG3F,SAAOgB,YAAYC,qBAAqBC,OAAO;IAAEvB,OAAOA,MAAMmB;IAAQT;IAAaE;IAAaQ;EAAY,CAAA;AAC9G;",
5
+ "mappings": ";;;;;;;;AAIA,SAASA,cAAkCC,mBAAmB;AAC9D,SAASC,yBAAyB;AAClC,SAA8BC,8BAA8B;AAO5D,IAAA,iBAAe,CAACC,YAAAA;AACd,QAAMC,QAAQ,IAAIC,kBAAuCC,KAAKC,IAAI;IAAEC,oBAAoB,CAAA;IAAIC,UAAU,CAAC;EAAE,CAAA;AACzGL,QAAMM,KAAK;IAAEC,KAAK;IAAYC,MAAMP,kBAAkBQ,KAAI;EAAsC,CAAA;AAGhG,QAAMC,cAAcC,uBAAuB,GAAGT,KAAKC,EAAE,SAAS;AAE9D,QAAMS,cAAc,CAACT,OAAAA;AACnB,UAAMU,kBAAkBd,QAAQe,cAAcC,aAAaC,aAAa,EAAEC,SAA4Bf,KAAKC,EAAE,EAC1Ge,MAAML;AACT,WAAQV,MAAMH,MAAMmB,OAAOd,SAASF,EAAAA,KAAQU;EAC9C;AAEA,QAAMO,cAAc,CAACjB,IAAYE,aAA8BL,MAAMmB,OAAOd,SAASF,EAAAA,IAAME;AAG3F,SAAOgB,YAAYC,qBAAqBC,OAAO;IAAEvB,OAAOA,MAAMmB;IAAQT;IAAaE;IAAaQ;EAAY,CAAA;AAC9G;",
6
6
  "names": ["Capabilities", "contributes", "LocalStorageStore", "createEditorStateStore", "context", "state", "LocalStorageStore", "meta", "id", "extensionProviders", "viewMode", "prop", "key", "type", "json", "editorState", "createEditorStateStore", "getViewMode", "defaultViewMode", "getCapability", "Capabilities", "SettingsStore", "getStore", "value", "values", "setViewMode", "contributes", "MarkdownCapabilities", "State"]
7
7
  }
@@ -0,0 +1,76 @@
1
+ import {
2
+ MarkdownAction_exports
3
+ } from "./chunk-XMT6PMU5.mjs";
4
+ import "./chunk-ODB2PTBP.mjs";
5
+
6
+ // src/capabilities/toolkit.ts
7
+ import * as Tool from "@effect/ai/Tool";
8
+ import * as Toolkit from "@effect/ai/Toolkit";
9
+ import * as Effect from "effect/Effect";
10
+ import * as Schema from "effect/Schema";
11
+ import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
12
+ import { invariant } from "@dxos/invariant";
13
+ import { getActiveSpace } from "@dxos/plugin-space";
14
+ import { SpaceAction } from "@dxos/plugin-space/types";
15
+ function _define_property(obj, key, value) {
16
+ if (key in obj) {
17
+ Object.defineProperty(obj, key, {
18
+ value,
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true
22
+ });
23
+ } else {
24
+ obj[key] = value;
25
+ }
26
+ return obj;
27
+ }
28
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/capabilities/toolkit.ts";
29
+ var _Toolkit_make;
30
+ var MarkdownToolkit = class extends (_Toolkit_make = Toolkit.make(Tool.make("create-document", {
31
+ description: "Creates a new markdown document.",
32
+ parameters: {
33
+ name: Schema.optional(Schema.String),
34
+ content: Schema.optional(Schema.String)
35
+ },
36
+ // TODO(wittjosiah): Return document.
37
+ success: Schema.Any,
38
+ failure: Schema.Never
39
+ }))) {
40
+ };
41
+ _define_property(MarkdownToolkit, "layer", (context) => MarkdownToolkit.toLayer({
42
+ "create-document": ({ name, content }) => {
43
+ const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
44
+ const space = getActiveSpace(context);
45
+ invariant(space, "No active space", {
46
+ F: __dxlog_file,
47
+ L: 35,
48
+ S: MarkdownToolkit,
49
+ A: [
50
+ "space",
51
+ "'No active space'"
52
+ ]
53
+ });
54
+ return Effect.gen(function* () {
55
+ const { object } = yield* dispatch(createIntent(MarkdownAction_exports.Create, {
56
+ name,
57
+ content
58
+ }));
59
+ yield* dispatch(createIntent(SpaceAction.AddObject, {
60
+ object,
61
+ target: space
62
+ }));
63
+ return {
64
+ id: object.id
65
+ };
66
+ }).pipe(Effect.orDie);
67
+ }
68
+ }));
69
+ var toolkit_default = ((context) => [
70
+ contributes(Capabilities.Toolkit, MarkdownToolkit),
71
+ contributes(Capabilities.ToolkitHandler, MarkdownToolkit.layer(context))
72
+ ]);
73
+ export {
74
+ toolkit_default as default
75
+ };
76
+ //# sourceMappingURL=toolkit-YA65QX2S.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/toolkit.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Tool from '@effect/ai/Tool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Capabilities, type Capability, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { getActiveSpace } from '@dxos/plugin-space';\nimport { SpaceAction } from '@dxos/plugin-space/types';\n\nimport { MarkdownAction } from '../types';\n\n// TODO(burdon): Reconcile with functions (currently reuses plugin framework intents).\nclass MarkdownToolkit extends Toolkit.make(\n Tool.make('create-document', {\n description: 'Creates a new markdown document.',\n parameters: {\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n },\n // TODO(wittjosiah): Return document.\n success: Schema.Any,\n failure: Schema.Never,\n }),\n) {\n static layer = (context: PluginContext) =>\n MarkdownToolkit.toLayer({\n 'create-document': ({ name, content }) => {\n const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const space = getActiveSpace(context);\n invariant(space, 'No active space');\n\n return Effect.gen(function* () {\n const { object } = yield* dispatch(createIntent(MarkdownAction.Create, { name, content }));\n yield* dispatch(createIntent(SpaceAction.AddObject, { object, target: space }));\n return { id: object.id };\n }).pipe(Effect.orDie);\n },\n });\n}\n\nexport default (context: PluginContext): Capability<any>[] => [\n contributes(Capabilities.Toolkit, MarkdownToolkit),\n contributes(Capabilities.ToolkitHandler, MarkdownToolkit.layer(context)),\n];\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,UAAU;AACtB,YAAYC,aAAa;AACzB,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,cAAmDC,aAAaC,oBAAoB;AAC7F,SAASC,iBAAiB;AAC1B,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;;;;;;;;;;;;;;;IAKEC;AAA9B,IAAMC,kBAAN,eAA8BD,gBAAQE,aAC/BA,UAAK,mBAAmB;EAC3BC,aAAa;EACbC,YAAY;IACVC,MAAaC,gBAAgBC,aAAM;IACnCC,SAAgBF,gBAAgBC,aAAM;EACxC;;EAEAE,SAAgBC;EAChBC,SAAgBC;AAClB,CAAA,CAAA,GACF;AAeA;AAdE,iBAZIX,iBAYGY,SAAQ,CAACC,YACdb,gBAAgBc,QAAQ;EACtB,mBAAmB,CAAC,EAAEV,MAAMG,QAAO,MAAE;AACnC,UAAM,EAAEQ,SAAQ,IAAKF,QAAQG,cAAcC,aAAaC,gBAAgB;AACxE,UAAMC,QAAQC,eAAeP,OAAAA;AAC7BQ,cAAUF,OAAO,mBAAA;;;SAjBnBnB;;;;;;AAmBE,WAAcsB,WAAI,aAAA;AAChB,YAAM,EAAEC,OAAM,IAAK,OAAOR,SAASS,aAAaC,uBAAeC,QAAQ;QAAEtB;QAAMG;MAAQ,CAAA,CAAA;AACvF,aAAOQ,SAASS,aAAaG,YAAYC,WAAW;QAAEL;QAAQM,QAAQV;MAAM,CAAA,CAAA;AAC5E,aAAO;QAAEW,IAAIP,OAAOO;MAAG;IACzB,CAAA,EAAGC,KAAYC,YAAK;EACtB;AACF,CAAA,CAAA;AAGJ,IAAA,mBAAe,CAACnB,YAA8C;EAC5DoB,YAAYhB,aAAalB,SAASC,eAAAA;EAClCiC,YAAYhB,aAAaiB,gBAAgBlC,gBAAgBY,MAAMC,OAAAA,CAAAA;;",
6
+ "names": ["Tool", "Toolkit", "Effect", "Schema", "Capabilities", "contributes", "createIntent", "invariant", "getActiveSpace", "SpaceAction", "Toolkit", "MarkdownToolkit", "make", "description", "parameters", "name", "optional", "String", "content", "success", "Any", "failure", "Never", "layer", "context", "toLayer", "dispatch", "getCapability", "Capabilities", "IntentDispatcher", "space", "getActiveSpace", "invariant", "gen", "object", "createIntent", "MarkdownAction", "Create", "SpaceAction", "AddObject", "target", "id", "pipe", "orDie", "contributes", "ToolkitHandler"]
7
+ }
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  MarkdownAction_exports,
3
3
  Markdown_exports
4
- } from "../chunk-JTIGSUMB.mjs";
5
- import "../chunk-IKPZHFTW.mjs";
4
+ } from "../chunk-XMT6PMU5.mjs";
5
+ import "../chunk-ODB2PTBP.mjs";
6
6
  export {
7
7
  Markdown_exports as Markdown,
8
8
  MarkdownAction_exports as MarkdownAction
@@ -1,23 +1,23 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- getAbstract,
3
+ getContentSnippet,
4
4
  getFallbackName
5
- } from "./chunk-JDMMLOB6.mjs";
5
+ } from "./chunk-ZBXV4ON7.mjs";
6
6
  import {
7
7
  Markdown_exports
8
- } from "./chunk-KIRZFVX5.mjs";
8
+ } from "./chunk-FWZKC6X5.mjs";
9
9
  import {
10
10
  meta
11
- } from "./chunk-H4I2FGDZ.mjs";
11
+ } from "./chunk-VCG2U522.mjs";
12
12
 
13
13
  // src/components/MarkdownCard/MarkdownCard.tsx
14
14
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
15
- import { pipe } from "effect";
15
+ import * as Function from "effect/Function";
16
16
  import React, { useCallback } from "react";
17
17
  import { LayoutAction, chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
18
18
  import { Obj } from "@dxos/echo";
19
19
  import { fullyQualifiedId } from "@dxos/react-client/echo";
20
- import { Button, Icon, useTranslation } from "@dxos/react-ui";
20
+ import { IconButton, useTranslation } from "@dxos/react-ui";
21
21
  import { Card } from "@dxos/react-ui-stack";
22
22
  import { DataType } from "@dxos/schema";
23
23
  var getTitle = (subject, fallback) => {
@@ -29,9 +29,9 @@ var getTitle = (subject, fallback) => {
29
29
  };
30
30
  var getSnippet = (subject, fallback) => {
31
31
  if (Obj.instanceOf(Markdown_exports.Document, subject)) {
32
- return getAbstract(subject.content?.target?.content ?? fallback);
32
+ return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback);
33
33
  } else if (Obj.instanceOf(DataType.Text, subject)) {
34
- return getAbstract(subject.content);
34
+ return getContentSnippet(subject.content ?? fallback);
35
35
  }
36
36
  };
37
37
  var MarkdownCard = ({ subject, role }) => {
@@ -40,7 +40,7 @@ var MarkdownCard = ({ subject, role }) => {
40
40
  const { dispatchPromise: dispatch } = useIntentDispatcher();
41
41
  const { t } = useTranslation(meta.id);
42
42
  const snippet = getSnippet(subject, t("fallback abstract"));
43
- const handleNavigate = useCallback(() => dispatch(pipe(createIntent(LayoutAction.UpdatePopover, {
43
+ const handleNavigate = useCallback(() => dispatch(Function.pipe(createIntent(LayoutAction.UpdatePopover, {
44
44
  part: "popover",
45
45
  subject: null,
46
46
  options: {
@@ -58,15 +58,18 @@ var MarkdownCard = ({ subject, role }) => {
58
58
  ]);
59
59
  return /* @__PURE__ */ React.createElement(Card.SurfaceRoot, {
60
60
  role
61
- }, /* @__PURE__ */ React.createElement(Card.Heading, null, getTitle(subject, t("fallback title"))), snippet && /* @__PURE__ */ React.createElement(Card.Text, {
62
- classNames: "line-clamp-3 break-words col-span-2"
63
- }, snippet), role === "card--popover" && /* @__PURE__ */ React.createElement(Card.Chrome, null, /* @__PURE__ */ React.createElement(Button, {
64
- onClick: handleNavigate
65
- }, /* @__PURE__ */ React.createElement("span", {
61
+ }, /* @__PURE__ */ React.createElement(Card.Heading, {
62
+ classNames: "flex items-center"
63
+ }, getTitle(subject, t("fallback title")), /* @__PURE__ */ React.createElement("span", {
66
64
  className: "grow"
67
- }, t("navigate to document label")), /* @__PURE__ */ React.createElement(Icon, {
68
- icon: "ph--arrow-right--regular"
69
- }))));
65
+ }), /* @__PURE__ */ React.createElement(IconButton, {
66
+ iconOnly: true,
67
+ icon: "ph--arrow-right--regular",
68
+ label: t("navigate to document label"),
69
+ onClick: handleNavigate
70
+ })), snippet && /* @__PURE__ */ React.createElement(Card.Text, {
71
+ classNames: "line-clamp-3 text-sm text-description"
72
+ }, snippet));
70
73
  } finally {
71
74
  _effect.f();
72
75
  }
@@ -78,4 +81,4 @@ export {
78
81
  MarkdownCard,
79
82
  MarkdownCard_default as default
80
83
  };
81
- //# sourceMappingURL=MarkdownCard-JV2YDV3M.mjs.map
84
+ //# sourceMappingURL=MarkdownCard-B2IWTFOC.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/MarkdownCard/MarkdownCard.tsx", "../../../src/components/MarkdownCard/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { type PreviewProps } from '@dxos/plugin-preview';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { IconButton, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from '../../meta';\nimport { Markdown } from '../../types';\nimport { getContentSnippet, getFallbackName } from '../../util';\n\n// TODO(burdon): Factor out.\nconst getTitle = (subject: Markdown.Document | DataType.Text, fallback: string) => {\n if (Obj.instanceOf(Markdown.Document, subject)) {\n return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(DataType.Text, subject)) {\n return getFallbackName(subject.content);\n }\n};\n\n// TODO(burdon): Factor out.\nconst getSnippet = (subject: Markdown.Document | DataType.Text, fallback: string) => {\n if (Obj.instanceOf(Markdown.Document, subject)) {\n return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(DataType.Text, subject)) {\n return getContentSnippet(subject.content ?? fallback);\n }\n};\n\nexport type MarkdownCardProps = PreviewProps<Markdown.Document | DataType.Text>;\n\nexport const MarkdownCard = ({ subject, role }: MarkdownCardProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { t } = useTranslation(meta.id);\n const snippet = getSnippet(subject, t('fallback abstract'));\n\n // TODO(wittjosiah): Factor out so this component isn't dependent on the app framework.\n const handleNavigate = useCallback(\n () =>\n dispatch(\n Function.pipe(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: null,\n options: { state: false, anchorId: '' },\n }),\n chain(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(subject)] }),\n ),\n ),\n [dispatch, subject],\n );\n\n return (\n <Card.SurfaceRoot role={role}>\n <Card.Heading classNames='flex items-center'>\n {getTitle(subject, t('fallback title'))}\n <span className='grow' />\n <IconButton\n iconOnly\n icon='ph--arrow-right--regular'\n label={t('navigate to document label')}\n onClick={handleNavigate}\n />\n </Card.Heading>\n {snippet && <Card.Text classNames='line-clamp-3 text-sm text-description'>{snippet}</Card.Text>}\n </Card.SurfaceRoot>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { MarkdownCard } from './MarkdownCard';\n\nexport * from './MarkdownCard';\n\nexport default MarkdownCard;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAIA,YAAYA,cAAc;AAC1B,OAAOC,SAASC,mBAAmB;AAEnC,SAASC,cAAcC,OAAOC,cAAcC,2BAA2B;AACvE,SAASC,WAAW;AAEpB,SAASC,wBAAwB;AACjC,SAASC,YAAYC,sBAAsB;AAC3C,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAOzB,IAAMC,WAAW,CAACC,SAA4CC,aAAAA;AAC5D,MAAIC,IAAIC,WAAWC,iBAASC,UAAUL,OAAAA,GAAU;AAC9C,WAAOA,QAAQM,QAAQN,QAAQO,gBAAgBC,gBAAgBR,QAAQS,SAASC,QAAQD,WAAWR,QAAAA;EACrG,WAAWC,IAAIC,WAAWQ,SAASC,MAAMZ,OAAAA,GAAU;AACjD,WAAOQ,gBAAgBR,QAAQS,OAAO;EACxC;AACF;AAGA,IAAMI,aAAa,CAACb,SAA4CC,aAAAA;AAC9D,MAAIC,IAAIC,WAAWC,iBAASC,UAAUL,OAAAA,GAAU;AAC9C,WAAOE,IAAIY,eAAed,OAAAA,KAAYe,kBAAkBf,QAAQS,SAASC,QAAQD,WAAWR,QAAAA;EAC9F,WAAWC,IAAIC,WAAWQ,SAASC,MAAMZ,OAAAA,GAAU;AACjD,WAAOe,kBAAkBf,QAAQS,WAAWR,QAAAA;EAC9C;AACF;AAIO,IAAMe,eAAe,CAAC,EAAEhB,SAASiB,KAAI,MAAqB;;;AAC/D,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,UAAUZ,WAAWb,SAASqB,EAAE,mBAAA,CAAA;AAGtC,UAAMK,iBAAiBC,YACrB,MACER,SACWS,cACPC,aAAaC,aAAaC,eAAe;MACvCC,MAAM;MACNhC,SAAS;MACTiC,SAAS;QAAEC,OAAO;QAAOC,UAAU;MAAG;IACxC,CAAA,GACAC,MAAMN,aAAaO,MAAM;MAAEL,MAAM;MAAQhC,SAAS;QAACsC,iBAAiBtC,OAAAA;;IAAU,CAAA,CAAA,CAAA,GAGpF;MAACmB;MAAUnB;KAAQ;AAGrB,WACE,sBAAA,cAACuC,KAAKC,aAAW;MAACvB;OAChB,sBAAA,cAACsB,KAAKE,SAAO;MAACC,YAAW;OACtB3C,SAASC,SAASqB,EAAE,gBAAA,CAAA,GACrB,sBAAA,cAACsB,QAAAA;MAAKC,WAAU;QAChB,sBAAA,cAACC,YAAAA;MACCC,UAAAA;MACAC,MAAK;MACLC,OAAO3B,EAAE,4BAAA;MACT4B,SAASvB;SAGZD,WAAW,sBAAA,cAACc,KAAK3B,MAAI;MAAC8B,YAAW;OAAyCjB,OAAAA,CAAAA;;;;AAGjF;;;ACnEA,IAAA,uBAAeyB;",
6
+ "names": ["Function", "React", "useCallback", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "Obj", "fullyQualifiedId", "IconButton", "useTranslation", "Card", "DataType", "getTitle", "subject", "fallback", "Obj", "instanceOf", "Markdown", "Document", "name", "fallbackName", "getFallbackName", "content", "target", "DataType", "Text", "getSnippet", "getDescription", "getContentSnippet", "MarkdownCard", "role", "dispatchPromise", "dispatch", "useIntentDispatcher", "t", "useTranslation", "meta", "id", "snippet", "handleNavigate", "useCallback", "pipe", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "state", "anchorId", "chain", "Open", "fullyQualifiedId", "Card", "SurfaceRoot", "Heading", "classNames", "span", "className", "IconButton", "iconOnly", "icon", "label", "onClick", "MarkdownCard"]
7
+ }
@@ -1,18 +1,19 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import "./chunk-H6TITL7A.mjs";
2
+ import "./chunk-7RDNIMTF.mjs";
3
+ import "./chunk-FVI7LPC3.mjs";
3
4
  import {
4
5
  MarkdownCapabilities
5
- } from "./chunk-AYWAYBAY.mjs";
6
+ } from "./chunk-CB2R4YIY.mjs";
6
7
  import {
7
8
  getFallbackName,
8
9
  setFallbackName
9
- } from "./chunk-JDMMLOB6.mjs";
10
+ } from "./chunk-ZBXV4ON7.mjs";
10
11
  import {
11
12
  Markdown_exports
12
- } from "./chunk-KIRZFVX5.mjs";
13
+ } from "./chunk-FWZKC6X5.mjs";
13
14
  import {
14
15
  meta
15
- } from "./chunk-H4I2FGDZ.mjs";
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";
@@ -23,7 +24,8 @@ import { Capabilities, Surface, useAppGraph, useCapabilities as useCapabilities2
23
24
  import { DXN, Filter, Obj, Query, Type } from "@dxos/echo";
24
25
  import { ClientCapabilities } from "@dxos/plugin-client";
25
26
  import { SpaceCapabilities } from "@dxos/plugin-space";
26
- import { fullyQualifiedId as fullyQualifiedId2, getSpace as getSpace2, useQuery, useSpace } from "@dxos/react-client/echo";
27
+ import { useClient } from "@dxos/react-client";
28
+ import { fullyQualifiedId as fullyQualifiedId2, getSpace as getSpace2 } from "@dxos/react-client/echo";
27
29
  import { toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
28
30
  import { insertAtCursor, insertAtLineStart } from "@dxos/react-ui-editor";
29
31
  import { DataType } from "@dxos/schema";
@@ -37,9 +39,9 @@ import { invariant } from "@dxos/invariant";
37
39
  import { createDocAccessor, fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
38
40
  import { useIdentity } from "@dxos/react-client/halo";
39
41
  import { Icon, ThemeProvider } from "@dxos/react-ui";
40
- import { Cursor, EditorView, InputModeExtensions, autocomplete, createDataExtensions, decorateMarkdown, documentId, folding, formattingKeymap, linkTooltip, listener, preview, selectionState, typewriter } from "@dxos/react-ui-editor";
42
+ import { Cursor, EditorView, InputModeExtensions, createDataExtensions, decorateMarkdown, documentId, folding, formattingKeymap, linkTooltip, listener, preview, selectionState, typewriter } from "@dxos/react-ui-editor";
41
43
  import { defaultTx } from "@dxos/react-ui-theme";
42
- import { isNotFalsy } from "@dxos/util";
44
+ import { isTruthy } from "@dxos/util";
43
45
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
44
46
  var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
45
47
  const { dispatchPromise: dispatch } = useIntentDispatcher();
@@ -111,7 +113,7 @@ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode,
111
113
  }),
112
114
  baseExtensions,
113
115
  pluginExtensions
114
- ].filter(isNotFalsy), [
116
+ ].filter(isTruthy), [
115
117
  baseExtensions,
116
118
  pluginExtensions,
117
119
  document,
@@ -122,12 +124,12 @@ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode,
122
124
  identity
123
125
  ]);
124
126
  };
125
- var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, query, viewMode, previewOptions }) => {
127
+ var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, viewMode, previewOptions }) => {
126
128
  const extensions = [
127
129
  selectionManager && selectionChange(selectionManager),
128
130
  settings.editorInputMode && InputModeExtensions[settings.editorInputMode],
129
131
  settings.folding && folding()
130
- ].filter(isNotFalsy);
132
+ ].filter(isTruthy);
131
133
  if (viewMode !== "source") {
132
134
  extensions.push(...[
133
135
  formattingKeymap(),
@@ -153,17 +155,6 @@ var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager
153
155
  preview(previewOptions)
154
156
  ]);
155
157
  }
156
- if (query) {
157
- extensions.push(autocomplete({
158
- onSearch: (text) => {
159
- return query.objects.map((object) => object.name?.length && object.id !== document?.id ? {
160
- label: object.name,
161
- // TODO(burdon): Factor out URL builder.
162
- apply: `[${object.name}](/${fullyQualifiedId(object)})`
163
- } : void 0).filter(isNotFalsy);
164
- }
165
- }));
166
- }
167
158
  if (settings.debug) {
168
159
  const items = settings.typewriter?.split(/[,\n]/) ?? "";
169
160
  if (items) {
@@ -200,7 +191,7 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
200
191
  const qualifiedId = url.split("/").at(-1);
201
192
  invariant(qualifiedId, "Invalid link format.", {
202
193
  F: __dxlog_file,
203
- L: 291,
194
+ L: 263,
204
195
  S: void 0,
205
196
  A: [
206
197
  "qualifiedId",
@@ -248,14 +239,14 @@ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
248
239
  import React2, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo as useMemo3, useRef } from "react";
249
240
  import { useDropzone } from "react-dropzone";
250
241
  import { invariant as invariant3 } from "@dxos/invariant";
251
- import { toLocalizedString, useThemeContext, useTranslation } from "@dxos/react-ui";
252
- 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";
242
+ import { Domino, toLocalizedString, useThemeContext, useTranslation } from "@dxos/react-ui";
243
+ import { EditorToolbar, PopoverMenuProvider, addLink, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorGutter, editorSlots, filterMenuGroups, formattingCommands, linkSlashCommands, processEditorPayload, stackItemContentEditorClassNames, useEditorToolbarState, useFormattingState, usePopoverMenu, useTextEditor } from "@dxos/react-ui-editor";
253
244
  import { StackItem } from "@dxos/react-ui-stack";
254
- import { isNonNullable, isNotFalsy as isNotFalsy2 } from "@dxos/util";
245
+ import { isNonNullable, isTruthy as isTruthy2 } from "@dxos/util";
255
246
 
256
247
  // src/hooks/useSelectCurrentThread.tsx
257
248
  import { EditorView as EditorView2 } from "@codemirror/view";
258
- import { Schema } from "effect";
249
+ import * as Schema from "effect/Schema";
259
250
  import { useMemo as useMemo2 } from "react";
260
251
  import { LayoutAction as LayoutAction2, createResolver, useIntentResolver } from "@dxos/app-framework";
261
252
  import { invariant as invariant2 } from "@dxos/invariant";
@@ -315,22 +306,24 @@ var useSelectCurrentThread = (editorView, documentId2) => {
315
306
 
316
307
  // src/components/MarkdownEditor/MarkdownEditor.tsx
317
308
  var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
318
- var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery, ...props }) => {
309
+ var MarkdownEditor = ({ extensions: extensionsParam, slashCommandGroups, onLinkQuery, ...props }) => {
319
310
  var _effect = _useSignals();
320
311
  try {
321
312
  const { t } = useTranslation();
322
- const viewRef = useRef();
323
- const getMenu = useCallback((trigger, query) => {
313
+ const viewRef = useRef(null);
314
+ const getMenu = useCallback(({ text, trigger }) => {
324
315
  switch (trigger) {
325
- case "@":
326
- return onLinkQuery?.(query) ?? [];
316
+ case "@": {
317
+ return onLinkQuery?.(text) ?? [];
318
+ }
327
319
  case "/":
328
- default:
329
- return filterItems([
330
- coreSlashCommands,
320
+ default: {
321
+ return filterMenuGroups([
322
+ formattingCommands,
331
323
  linkSlashCommands,
332
324
  ...slashCommandGroups ?? []
333
- ], (item) => query ? toLocalizedString(item.label, t).toLowerCase().includes(query.toLowerCase()) : true);
325
+ ], (item) => text ? toLocalizedString(item.label, t).toLowerCase().includes(text.toLowerCase()) : true);
326
+ }
334
327
  }
335
328
  }, [
336
329
  onLinkQuery,
@@ -348,45 +341,30 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
348
341
  trigger,
349
342
  placeholder: {
350
343
  delay: 3e3,
351
- content: () => {
352
- return createElement("div", void 0, [
353
- createElement("span", {
354
- text: "Press"
355
- }),
356
- ...trigger.map((text) => createElement("span", {
357
- className: "border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]",
358
- text
359
- })),
360
- createElement("span", {
361
- text: "for commands."
362
- })
363
- ]);
364
- }
344
+ content: () => Domino.of("div").children(Domino.of("span").text("Press"), ...trigger.map((text) => Domino.of("span").classNames("mx-1 px-1.5 pt-[1px] pb-[2px] border border-separator rounded-sm").text(text)), Domino.of("span").text("for commands.")).build()
365
345
  },
366
346
  getMenu
367
347
  };
368
348
  }, [
349
+ onLinkQuery,
369
350
  getMenu
370
351
  ]);
371
- const { commandMenu, groupsRef, currentItem, onSelect, ...refPopoverProps } = useCommandMenu(options);
352
+ const { groupsRef, extension, ...commandMenuProps } = usePopoverMenu(options);
372
353
  const extensions = useMemo3(() => [
373
- _extensions,
374
- commandMenu
375
- ].filter(isNotFalsy2), [
376
- _extensions,
377
- commandMenu
354
+ extensionsParam,
355
+ extension
356
+ ].filter(isTruthy2), [
357
+ extensionsParam,
358
+ extension
378
359
  ]);
379
- return /* @__PURE__ */ React2.createElement(RefPopover, {
380
- modal: false,
381
- ...refPopoverProps
360
+ return /* @__PURE__ */ React2.createElement(PopoverMenuProvider, {
361
+ view: viewRef.current,
362
+ groups: groupsRef.current,
363
+ ...commandMenuProps
382
364
  }, /* @__PURE__ */ React2.createElement(MarkdownEditorImpl, {
383
365
  ref: viewRef,
384
366
  ...props,
385
367
  extensions
386
- }), /* @__PURE__ */ React2.createElement(CommandMenu, {
387
- groups: groupsRef.current,
388
- currentItem,
389
- onSelect
390
368
  }));
391
369
  } finally {
392
370
  _effect.f();
@@ -427,9 +405,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
427
405
  scrollPastEnd: role === "section" ? false : scrollPastEnd,
428
406
  search: true
429
407
  }),
430
- createMarkdownExtensions({
431
- themeMode
432
- }),
408
+ createMarkdownExtensions(),
433
409
  createThemeExtensions({
434
410
  themeMode,
435
411
  syntaxHighlighting: true,
@@ -441,7 +417,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
441
417
  }),
442
418
  providerExtensions,
443
419
  extensions
444
- ].filter(isNotFalsy2),
420
+ ].filter(isTruthy2),
445
421
  ...role !== "section" && {
446
422
  id,
447
423
  scrollTo,
@@ -502,7 +478,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
502
478
  const getView = useCallback(() => {
503
479
  invariant3(editorView, void 0, {
504
480
  F: __dxlog_file3,
505
- L: 241,
481
+ L: 240,
506
482
  S: void 0,
507
483
  A: [
508
484
  "editorView",
@@ -602,7 +578,7 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
602
578
  objectForms,
603
579
  schemaWhiteList
604
580
  ]);
605
- const onLinkQuery = useCallback2(async (query) => {
581
+ const handleLinkQuery = useCallback2(async (query) => {
606
582
  const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
607
583
  const results = await space?.db.query(Query.select(filter)).run();
608
584
  const getLabel = (object2) => {
@@ -628,7 +604,7 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
628
604
  label,
629
605
  icon: metadata.icon,
630
606
  onSelect: (view, head) => {
631
- const link = `[${label}][${Obj.getDXN(object2)}]`;
607
+ const link = `[${label}](${Obj.getDXN(object2)})`;
632
608
  if (query?.startsWith("@")) {
633
609
  insertAtLineStart(view, head, `!${link}
634
610
  `);
@@ -658,7 +634,7 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
658
634
  settings,
659
635
  scrollPastEnd,
660
636
  onViewModeChange,
661
- onLinkQuery: space ? onLinkQuery : void 0
637
+ onLinkQuery: space ? handleLinkQuery : void 0
662
638
  }) : text ? /* @__PURE__ */ React3.createElement(MarkdownEditor, {
663
639
  id,
664
640
  role,
@@ -669,22 +645,19 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
669
645
  inputMode: settings.editorInputMode,
670
646
  scrollPastEnd,
671
647
  onViewModeChange,
672
- onLinkQuery: space ? onLinkQuery : void 0
673
- }) : (
674
- // TODO(burdon): Normalize with above.
675
- /* @__PURE__ */ React3.createElement(MarkdownEditor, {
676
- id,
677
- role,
678
- initialValue: object.text,
679
- extensions,
680
- viewMode,
681
- toolbar: settings.toolbar,
682
- inputMode: settings.editorInputMode,
683
- scrollPastEnd,
684
- onViewModeChange,
685
- onLinkQuery: space ? onLinkQuery : void 0
686
- })
687
- );
648
+ onLinkQuery: space ? handleLinkQuery : void 0
649
+ }) : /* @__PURE__ */ React3.createElement(MarkdownEditor, {
650
+ id,
651
+ role,
652
+ initialValue: object.text,
653
+ extensions,
654
+ viewMode,
655
+ toolbar: settings.toolbar,
656
+ inputMode: settings.editorInputMode,
657
+ scrollPastEnd,
658
+ onViewModeChange,
659
+ onLinkQuery: space ? handleLinkQuery : void 0
660
+ });
688
661
  return /* @__PURE__ */ React3.createElement(React3.Fragment, null, editor, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React3.createElement(PreviewBlock, {
689
662
  key: link.ref,
690
663
  link,
@@ -697,11 +670,9 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
697
670
  var PreviewBlock = ({ link, el }) => {
698
671
  var _effect = _useSignals2();
699
672
  try {
700
- const echoDXN = useMemo4(() => DXN.parse(link.ref).asEchoDXN(), [
701
- link.ref
702
- ]);
703
- const space = useSpace(echoDXN?.spaceId);
704
- const [subject] = useQuery(space, Query.select(Filter.ids(echoDXN?.echoId ?? "")));
673
+ const client = useClient();
674
+ const dxn = DXN.parse(link.ref);
675
+ const subject = client.graph.ref(dxn).target;
705
676
  const data = useMemo4(() => ({
706
677
  subject
707
678
  }), [
@@ -778,4 +749,4 @@ export {
778
749
  MarkdownContainer,
779
750
  MarkdownContainer_default as default
780
751
  };
781
- //# sourceMappingURL=MarkdownContainer-BJRNCXJZ.mjs.map
752
+ //# sourceMappingURL=MarkdownContainer-J2R3DLCQ.mjs.map