@dxos/plugin-markdown 0.8.4-main.21d9917 → 0.8.4-main.2244d791bb

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 (202) hide show
  1. package/dist/lib/browser/MarkdownCard-Z6PWYEHJ.mjs +11 -0
  2. package/dist/lib/browser/MarkdownContainer-KGEX4KEN.mjs +11 -0
  3. package/dist/lib/browser/{anchor-sort-WQ3TL7ZI.mjs → anchor-sort-QCUZGON5.mjs} +5 -4
  4. package/dist/lib/browser/anchor-sort-QCUZGON5.mjs.map +7 -0
  5. package/dist/lib/browser/{app-graph-serializer-ULZUJKOD.mjs → app-graph-serializer-6NGPRTY6.mjs} +7 -6
  6. package/dist/lib/browser/app-graph-serializer-6NGPRTY6.mjs.map +7 -0
  7. package/dist/lib/browser/blueprint-definition-HYSNAH6Z.mjs +17 -0
  8. package/dist/lib/browser/blueprint-definition-HYSNAH6Z.mjs.map +7 -0
  9. package/dist/lib/browser/blueprints/index.mjs +4 -4
  10. package/dist/lib/browser/{chunk-BX73DASG.mjs → chunk-IKUJPKAE.mjs} +130 -36
  11. package/dist/lib/browser/chunk-IKUJPKAE.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-JOXYQLKH.mjs → chunk-JODBECJA.mjs} +5 -3
  13. package/dist/lib/browser/chunk-JODBECJA.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-CUGDX7KA.mjs → chunk-KW4FLYZS.mjs} +2 -2
  15. package/dist/lib/browser/{chunk-FWQQW6KU.mjs → chunk-LIZX2OAT.mjs} +72 -38
  16. package/dist/lib/browser/chunk-LIZX2OAT.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-VQ3WOAB6.mjs → chunk-LRRS3L7O.mjs} +7 -9
  18. package/dist/lib/browser/chunk-LRRS3L7O.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-LMO5UVKL.mjs → chunk-PV7GW7CI.mjs} +3 -4
  20. package/dist/lib/browser/{chunk-LMO5UVKL.mjs.map → chunk-PV7GW7CI.mjs.map} +3 -3
  21. package/dist/lib/browser/{chunk-KDKXFKDN.mjs → chunk-YZKNND37.mjs} +8 -7
  22. package/dist/lib/browser/chunk-YZKNND37.mjs.map +7 -0
  23. package/dist/lib/browser/cli/index.mjs +11 -10
  24. package/dist/lib/browser/cli/index.mjs.map +3 -3
  25. package/dist/lib/browser/index.mjs +45 -42
  26. package/dist/lib/browser/index.mjs.map +3 -3
  27. package/dist/lib/browser/meta.json +1 -1
  28. package/dist/lib/browser/{operation-resolver-EGCWOQKJ.mjs → operation-resolver-EHCL5OS7.mjs} +5 -5
  29. package/dist/lib/browser/operation-resolver-EHCL5OS7.mjs.map +7 -0
  30. package/dist/lib/browser/{react-surface-64FZ7T7F.mjs → react-surface-SQVRMKCQ.mjs} +27 -27
  31. package/dist/lib/browser/react-surface-SQVRMKCQ.mjs.map +7 -0
  32. package/dist/lib/browser/{settings-JY5JE7MI.mjs → settings-4DDC3NMP.mjs} +5 -4
  33. package/dist/lib/browser/settings-4DDC3NMP.mjs.map +7 -0
  34. package/dist/lib/browser/{state-QE7VSJWJ.mjs → state-UIZ3X7RA.mjs} +2 -2
  35. package/dist/lib/browser/types/index.mjs +1 -1
  36. package/dist/lib/node-esm/{MarkdownCard-GMNXUWWR.mjs → MarkdownCard-NUGJRT43.mjs} +4 -5
  37. package/dist/lib/node-esm/{MarkdownContainer-LUSMORP2.mjs → MarkdownContainer-6D7OHAZA.mjs} +4 -5
  38. package/dist/lib/node-esm/{anchor-sort-G7D5TAI6.mjs → anchor-sort-ABOJXSU6.mjs} +5 -4
  39. package/dist/lib/node-esm/anchor-sort-ABOJXSU6.mjs.map +7 -0
  40. package/dist/lib/node-esm/{app-graph-serializer-W5YMQP7P.mjs → app-graph-serializer-OYKI3LW2.mjs} +7 -6
  41. package/dist/lib/node-esm/app-graph-serializer-OYKI3LW2.mjs.map +7 -0
  42. package/dist/lib/node-esm/blueprint-definition-SOC744SQ.mjs +18 -0
  43. package/dist/lib/node-esm/blueprint-definition-SOC744SQ.mjs.map +7 -0
  44. package/dist/lib/node-esm/blueprints/index.mjs +4 -4
  45. package/dist/lib/node-esm/{chunk-KXEQCFMB.mjs → chunk-A5WB5WP7.mjs} +7 -9
  46. package/dist/lib/node-esm/chunk-A5WB5WP7.mjs.map +7 -0
  47. package/dist/lib/node-esm/{chunk-EYAFC4N7.mjs → chunk-BMKFZ5WK.mjs} +72 -38
  48. package/dist/lib/node-esm/chunk-BMKFZ5WK.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-W3IIKDV5.mjs → chunk-GXEX67UI.mjs} +2 -2
  50. package/dist/lib/node-esm/{chunk-PRV35A7Z.mjs → chunk-KG7JF7PJ.mjs} +3 -4
  51. package/dist/lib/node-esm/{chunk-PRV35A7Z.mjs.map → chunk-KG7JF7PJ.mjs.map} +3 -3
  52. package/dist/lib/node-esm/{chunk-44VJC3QF.mjs → chunk-PPGVKPFP.mjs} +5 -3
  53. package/dist/lib/node-esm/chunk-PPGVKPFP.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-3JYPCC7M.mjs → chunk-U4W25KQQ.mjs} +8 -7
  55. package/dist/lib/node-esm/chunk-U4W25KQQ.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-D4BCFPKK.mjs → chunk-WJRTAU55.mjs} +130 -36
  57. package/dist/lib/node-esm/chunk-WJRTAU55.mjs.map +7 -0
  58. package/dist/lib/node-esm/cli/index.mjs +11 -10
  59. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  60. package/dist/lib/node-esm/index.mjs +45 -42
  61. package/dist/lib/node-esm/index.mjs.map +3 -3
  62. package/dist/lib/node-esm/meta.json +1 -1
  63. package/dist/lib/node-esm/{operation-resolver-2HIS2AQZ.mjs → operation-resolver-ILDFG244.mjs} +5 -5
  64. package/dist/lib/node-esm/operation-resolver-ILDFG244.mjs.map +7 -0
  65. package/dist/lib/node-esm/{react-surface-PKEVHTJK.mjs → react-surface-5DVOPYF3.mjs} +27 -27
  66. package/dist/lib/node-esm/react-surface-5DVOPYF3.mjs.map +7 -0
  67. package/dist/lib/node-esm/{settings-4UGMPIRY.mjs → settings-MHB4FPJU.mjs} +5 -4
  68. package/dist/lib/node-esm/settings-MHB4FPJU.mjs.map +7 -0
  69. package/dist/lib/node-esm/{state-LXE5XIN4.mjs → state-B2JSHJKS.mjs} +2 -2
  70. package/dist/lib/node-esm/types/index.mjs +1 -1
  71. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  72. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -1
  73. package/dist/types/src/blueprints/functions/index.d.ts +41 -3
  74. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -1
  75. package/dist/types/src/blueprints/functions/open.d.ts +8 -1
  76. package/dist/types/src/blueprints/functions/open.d.ts.map +1 -1
  77. package/dist/types/src/blueprints/functions/update.d.ts +16 -3
  78. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -1
  79. package/dist/types/src/blueprints/index.d.ts +1 -1
  80. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  81. package/dist/types/src/blueprints/markdown-blueprint.d.ts +3 -20
  82. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +3 -2
  84. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/anchor-sort/index.d.ts +1 -1
  86. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +2 -2
  88. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +1 -1
  90. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -7
  93. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
  95. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  97. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  99. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  101. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  103. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  105. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
  107. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  108. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  109. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  110. package/dist/types/src/components/MarkdownContainer.d.ts +1 -1
  111. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  112. package/dist/types/src/components/MarkdownContainer.stories.d.ts +29 -0
  113. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  114. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +2 -2
  115. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
  116. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  117. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +2 -2
  118. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  119. package/dist/types/src/hooks/useExtensions.d.ts +2 -2
  120. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  121. package/dist/types/src/index.d.ts +1 -0
  122. package/dist/types/src/index.d.ts.map +1 -1
  123. package/dist/types/src/translations.d.ts +29 -0
  124. package/dist/types/src/translations.d.ts.map +1 -1
  125. package/dist/types/src/types/MarkdownAction.d.ts +1 -1
  126. package/dist/types/src/types/events.d.ts.map +1 -1
  127. package/dist/types/tsconfig.tsbuildinfo +1 -1
  128. package/package.json +66 -59
  129. package/src/MarkdownPlugin.tsx +26 -25
  130. package/src/blueprints/functions/create.conversations.json +1 -1
  131. package/src/blueprints/functions/create.test.ts +23 -56
  132. package/src/blueprints/functions/create.ts +3 -2
  133. package/src/blueprints/functions/index.ts +11 -3
  134. package/src/blueprints/functions/open.ts +9 -9
  135. package/src/blueprints/functions/update.conversations.json +1 -1
  136. package/src/blueprints/functions/update.test.ts +132 -66
  137. package/src/blueprints/functions/update.ts +53 -12
  138. package/src/blueprints/index.ts +1 -1
  139. package/src/blueprints/markdown-blueprint.ts +14 -6
  140. package/src/capabilities/anchor-sort/anchor-sort.ts +3 -2
  141. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +4 -3
  142. package/src/capabilities/artifact-definition/artifact-definition.ts +2 -2
  143. package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -14
  144. package/src/capabilities/operation-resolver/operation-resolver.ts +3 -3
  145. package/src/capabilities/react-surface/react-surface.tsx +12 -10
  146. package/src/capabilities/settings/settings.ts +3 -2
  147. package/src/cli/plugin.ts +5 -4
  148. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +1 -1
  149. package/src/components/MarkdownCard/MarkdownCard.tsx +7 -5
  150. package/src/components/MarkdownContainer.stories.tsx +5 -5
  151. package/src/components/MarkdownContainer.tsx +6 -4
  152. package/src/components/MarkdownEditor/FileUpload.tsx +2 -2
  153. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +2 -2
  154. package/src/components/MarkdownEditor/MarkdownEditor.tsx +17 -11
  155. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +2 -2
  156. package/src/components/MarkdownSettings/MarkdownSettings.tsx +24 -24
  157. package/src/components/Suggestions.stories.tsx +3 -3
  158. package/src/hooks/useExtensions.tsx +5 -4
  159. package/src/hooks/useLinkQuery.ts +3 -3
  160. package/src/hooks/useSelectCurrentThread.tsx +3 -3
  161. package/src/index.ts +2 -0
  162. package/src/testing.ts +1 -1
  163. package/src/translations.ts +2 -0
  164. package/src/types/events.ts +3 -2
  165. package/dist/lib/browser/MarkdownCard-HFNNE4B4.mjs +0 -12
  166. package/dist/lib/browser/MarkdownContainer-V7EAADMF.mjs +0 -12
  167. package/dist/lib/browser/anchor-sort-WQ3TL7ZI.mjs.map +0 -7
  168. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs.map +0 -7
  169. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs +0 -19
  170. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs.map +0 -7
  171. package/dist/lib/browser/chunk-BX73DASG.mjs.map +0 -7
  172. package/dist/lib/browser/chunk-FWQQW6KU.mjs.map +0 -7
  173. package/dist/lib/browser/chunk-JOXYQLKH.mjs.map +0 -7
  174. package/dist/lib/browser/chunk-KDKXFKDN.mjs.map +0 -7
  175. package/dist/lib/browser/chunk-S45ULIOG.mjs +0 -101
  176. package/dist/lib/browser/chunk-S45ULIOG.mjs.map +0 -7
  177. package/dist/lib/browser/chunk-VQ3WOAB6.mjs.map +0 -7
  178. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs.map +0 -7
  179. package/dist/lib/browser/react-surface-64FZ7T7F.mjs.map +0 -7
  180. package/dist/lib/browser/settings-JY5JE7MI.mjs.map +0 -7
  181. package/dist/lib/node-esm/anchor-sort-G7D5TAI6.mjs.map +0 -7
  182. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs.map +0 -7
  183. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs +0 -20
  184. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs.map +0 -7
  185. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs.map +0 -7
  186. package/dist/lib/node-esm/chunk-44VJC3QF.mjs.map +0 -7
  187. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs.map +0 -7
  188. package/dist/lib/node-esm/chunk-EYAFC4N7.mjs.map +0 -7
  189. package/dist/lib/node-esm/chunk-KXEQCFMB.mjs.map +0 -7
  190. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs +0 -102
  191. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs.map +0 -7
  192. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs.map +0 -7
  193. package/dist/lib/node-esm/react-surface-PKEVHTJK.mjs.map +0 -7
  194. package/dist/lib/node-esm/settings-4UGMPIRY.mjs.map +0 -7
  195. /package/dist/lib/browser/{MarkdownCard-HFNNE4B4.mjs.map → MarkdownCard-Z6PWYEHJ.mjs.map} +0 -0
  196. /package/dist/lib/browser/{MarkdownContainer-V7EAADMF.mjs.map → MarkdownContainer-KGEX4KEN.mjs.map} +0 -0
  197. /package/dist/lib/browser/{chunk-CUGDX7KA.mjs.map → chunk-KW4FLYZS.mjs.map} +0 -0
  198. /package/dist/lib/browser/{state-QE7VSJWJ.mjs.map → state-UIZ3X7RA.mjs.map} +0 -0
  199. /package/dist/lib/node-esm/{MarkdownCard-GMNXUWWR.mjs.map → MarkdownCard-NUGJRT43.mjs.map} +0 -0
  200. /package/dist/lib/node-esm/{MarkdownContainer-LUSMORP2.mjs.map → MarkdownContainer-6D7OHAZA.mjs.map} +0 -0
  201. /package/dist/lib/node-esm/{chunk-W3IIKDV5.mjs.map → chunk-GXEX67UI.mjs.map} +0 -0
  202. /package/dist/lib/node-esm/{state-LXE5XIN4.mjs.map → state-B2JSHJKS.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/MarkdownAction.ts", "../../../src/meta.ts", "../../../src/types/Markdown.ts", "../../../src/types/capabilities.ts", "../../../src/types/events.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { Collection } from '@dxos/schema';\nimport { EditorViewMode } from '@dxos/ui-editor/types';\n\nimport { meta } from '../meta';\n\nimport { Document } from './Markdown';\n\nconst MARKDOWN_OPERATION = `${meta.id}/operation`;\n\nexport namespace MarkdownOperation {\n export const OnCreateSpace = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n isDefault: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Void,\n },\n });\n\n export const Create = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/create`, name: 'Create Markdown Document' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Document,\n }),\n },\n });\n\n // TODO(wittjosiah): This appears to be unused.\n export const SetViewMode = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/set-view-mode`, name: 'Set View Mode' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n id: Schema.String,\n viewMode: EditorViewMode,\n }),\n output: Schema.Void,\n },\n });\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/markdown',\n name: 'Markdown',\n description: trim`\n Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.\n Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.\n `,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { Text } from '@dxos/schema';\nimport { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';\n\n/**\n * Document Item type.\n */\nexport const Document = Schema.Struct({\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),\n content: Type.Ref(Text.Text).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/Document',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name', 'fallbackName']),\n DescriptionAnnotation.set('description'),\n);\n\nexport type Document = Schema.Schema.Type<typeof Document>;\n\n/**\n * Document factory.\n */\nexport const make = ({\n content = '',\n ...props\n}: Partial<{ name: string; fallbackName: string; content: string }> = {}) =>\n Obj.make(Document, { ...props, content: Ref.make(Text.make(content)) });\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n defaultViewMode: EditorViewMode,\n editorInputMode: Schema.optional(EditorInputMode),\n experimental: Schema.optional(Schema.Boolean),\n debug: Schema.optional(Schema.Boolean),\n toolbar: Schema.optional(Schema.Boolean),\n typewriter: Schema.optional(Schema.String),\n // TODO(burdon): Per document settings.\n numberedHeadings: Schema.optional(Schema.Boolean),\n folding: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type EditorStateStore, type EditorViewMode } from '@dxos/ui-editor';\n\nimport { meta } from '../meta';\n\nimport type * as Markdown from './Markdown';\nimport { type MarkdownExtensionProvider } from './types';\n\n/** Schema for persisted markdown state. */\nexport const MarkdownStateSchema = Schema.mutable(\n Schema.Struct({\n viewMode: Schema.Record({ key: Schema.String, value: Schema.String }),\n }),\n);\n\nexport type MarkdownState = {\n viewMode: Record<string, EditorViewMode>;\n};\n\nexport namespace MarkdownCapabilities {\n export const Settings = Capability.make<Atom.Writable<Markdown.Settings>>(`${meta.id}/capability/settings`);\n\n /** Persisted state atom for view mode per document. */\n export const State = Capability.make<Atom.Writable<MarkdownState>>(`${meta.id}/capability/state`);\n\n /** Editor state store for cursor positions, scroll state, etc. */\n export const EditorState = Capability.make<EditorStateStore>(`${meta.id}/capability/editor-state`);\n\n // TODO(burdon): Move to ./types (external API)?\n export const Extensions = Capability.make<MarkdownExtensionProvider[]>(`${meta.id}/capability/extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ActivationEvent, Common } from '@dxos/app-framework';\n\nimport { meta } from '../meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions: ActivationEvent.ActivationEvent = Common.ActivationEvent.createStateEvent(\n `${meta.id}/event/setup-extensions`,\n );\n}\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "Capability", "Operation", "SpaceSchema", "Collection", "EditorViewMode", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots", "Schema", "Obj", "Ref", "Type", "DescriptionAnnotation", "FormInputAnnotation", "LabelAnnotation", "Text", "EditorInputMode", "EditorViewMode", "Document", "Struct", "name", "optional", "String", "description", "fallbackName", "pipe", "FormInputAnnotation", "set", "content", "Type", "Ref", "Text", "object", "typename", "version", "LabelAnnotation", "DescriptionAnnotation", "make", "props", "Obj", "Settings", "mutable", "defaultViewMode", "EditorViewMode", "editorInputMode", "EditorInputMode", "experimental", "Boolean", "debug", "toolbar", "typewriter", "numberedHeadings", "folding", "MARKDOWN_OPERATION", "meta", "id", "MarkdownOperation", "OnCreateSpace", "Operation", "make", "key", "name", "services", "Capability", "Service", "schema", "input", "Struct", "space", "SpaceSchema", "rootCollection", "Collection", "isDefault", "optional", "Boolean", "output", "Void", "Create", "String", "content", "object", "Document", "SetViewMode", "viewMode", "EditorViewMode", "Schema", "Capability", "MarkdownStateSchema", "mutable", "Struct", "viewMode", "Record", "key", "String", "value", "MarkdownCapabilities", "Settings", "Capability", "make", "meta", "id", "State", "EditorState", "Extensions", "Common", "MarkdownEvents", "SetupExtensions", "Common", "ActivationEvent", "createStateEvent", "meta", "id"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { Collection } from '@dxos/schema';\nimport { EditorViewMode } from '@dxos/ui-editor/types';\n\nimport { meta } from '../meta';\n\nimport { Document } from './Markdown';\n\nconst MARKDOWN_OPERATION = `${meta.id}/operation`;\n\nexport namespace MarkdownOperation {\n export const OnCreateSpace = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n isDefault: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Void,\n },\n });\n\n export const Create = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/create`, name: 'Create Markdown Document' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Document,\n }),\n },\n });\n\n // TODO(wittjosiah): This appears to be unused.\n export const SetViewMode = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/set-view-mode`, name: 'Set View Mode' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n id: Schema.String,\n viewMode: EditorViewMode,\n }),\n output: Schema.Void,\n },\n });\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/markdown',\n name: 'Markdown',\n description: trim`\n Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.\n Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.\n `,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { Text } from '@dxos/schema';\nimport { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';\n\n/**\n * Document Item type.\n */\nexport const Document = Schema.Struct({\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),\n content: Type.Ref(Text.Text).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/Document',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name', 'fallbackName']),\n DescriptionAnnotation.set('description'),\n);\n\nexport type Document = Schema.Schema.Type<typeof Document>;\n\n/**\n * Document factory.\n */\nexport const make = ({\n content = '',\n ...props\n}: Partial<{ name: string; fallbackName: string; content: string }> = {}) =>\n Obj.make(Document, { ...props, content: Ref.make(Text.make(content)) });\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n defaultViewMode: EditorViewMode,\n editorInputMode: Schema.optional(EditorInputMode),\n experimental: Schema.optional(Schema.Boolean),\n debug: Schema.optional(Schema.Boolean),\n toolbar: Schema.optional(Schema.Boolean),\n typewriter: Schema.optional(Schema.String),\n // TODO(burdon): Per document settings.\n numberedHeadings: Schema.optional(Schema.Boolean),\n folding: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type EditorStateStore, type EditorViewMode } from '@dxos/ui-editor';\n\nimport { meta } from '../meta';\n\nimport type * as Markdown from './Markdown';\nimport { type MarkdownExtensionProvider } from './types';\n\n/** Schema for persisted markdown state. */\nexport const MarkdownStateSchema = Schema.mutable(\n Schema.Struct({\n viewMode: Schema.Record({ key: Schema.String, value: Schema.String }),\n }),\n);\n\nexport type MarkdownState = {\n viewMode: Record<string, EditorViewMode>;\n};\n\nexport namespace MarkdownCapabilities {\n export const Settings = Capability.make<Atom.Writable<Markdown.Settings>>(`${meta.id}/capability/settings`);\n\n /** Persisted state atom for view mode per document. */\n export const State = Capability.make<Atom.Writable<MarkdownState>>(`${meta.id}/capability/state`);\n\n /** Editor state store for cursor positions, scroll state, etc. */\n export const EditorState = Capability.make<EditorStateStore>(`${meta.id}/capability/editor-state`);\n\n // TODO(burdon): Move to ./types (external API)?\n export const Extensions = Capability.make<MarkdownExtensionProvider[]>(`${meta.id}/capability/extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ActivationEvent } from '@dxos/app-framework';\nimport { AppActivationEvents } from '@dxos/app-toolkit';\n\nimport { meta } from '../meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(\n `${meta.id}/event/setup-extensions`,\n );\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "Capability", "Operation", "SpaceSchema", "Collection", "EditorViewMode", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots", "Schema", "Obj", "Ref", "Type", "DescriptionAnnotation", "FormInputAnnotation", "LabelAnnotation", "Text", "EditorInputMode", "EditorViewMode", "Document", "Struct", "name", "optional", "String", "description", "fallbackName", "pipe", "FormInputAnnotation", "set", "content", "Type", "Ref", "Text", "object", "typename", "version", "LabelAnnotation", "DescriptionAnnotation", "make", "props", "Obj", "Settings", "mutable", "defaultViewMode", "EditorViewMode", "editorInputMode", "EditorInputMode", "experimental", "Boolean", "debug", "toolbar", "typewriter", "numberedHeadings", "folding", "MARKDOWN_OPERATION", "meta", "id", "MarkdownOperation", "OnCreateSpace", "Operation", "make", "key", "name", "services", "Capability", "Service", "schema", "input", "Struct", "space", "SpaceSchema", "rootCollection", "Collection", "isDefault", "optional", "Boolean", "output", "Void", "Create", "String", "content", "object", "Document", "SetViewMode", "viewMode", "EditorViewMode", "Schema", "Capability", "MarkdownStateSchema", "mutable", "Struct", "viewMode", "Record", "key", "String", "value", "MarkdownCapabilities", "Settings", "Capability", "make", "meta", "id", "State", "EditorState", "Extensions", "AppActivationEvents", "MarkdownEvents", "SetupExtensions", "AppActivationEvents", "createStateEvent", "meta", "id"]
7
7
  }
@@ -2,9 +2,10 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  Markdown_exports,
4
4
  meta
5
- } from "./chunk-PRV35A7Z.mjs";
5
+ } from "./chunk-KG7JF7PJ.mjs";
6
6
 
7
7
  // src/translations.ts
8
+ import { translations as editorTranslations } from "@dxos/react-ui-editor";
8
9
  var translations = [
9
10
  {
10
11
  "en-US": {
@@ -47,10 +48,11 @@ var translations = [
47
48
  "words label_other": "words"
48
49
  }
49
50
  }
50
- }
51
+ },
52
+ ...editorTranslations
51
53
  ];
52
54
 
53
55
  export {
54
56
  translations
55
57
  };
56
- //# sourceMappingURL=chunk-44VJC3QF.mjs.map
58
+ //# sourceMappingURL=chunk-PPGVKPFP.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\n\nimport { meta } from './meta';\nimport { Markdown } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Markdown.Document.typename]: {\n 'typename label': 'Document',\n 'typename label_zero': 'Documents',\n 'typename label_one': 'Document',\n 'typename label_other': 'Documents',\n 'object name placeholder': 'New document',\n 'rename object label': 'Rename document',\n 'delete object label': 'Delete document',\n 'object deleted label': 'Document deleted',\n },\n [meta.id]: {\n 'plugin name': 'Editor',\n 'settings title': 'Editor settings',\n 'choose markdown from space dialog title': 'Choose one or more documents to add',\n // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)\n 'empty choose markdown from space message': 'None available; try creating a new one instead?',\n 'chooser done label': 'Add selected',\n 'editor placeholder': '',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'settings toolbar label': 'Show toolbar',\n 'settings numbered headings label': 'Numbered headings',\n 'settings folding label': 'Folding',\n 'settings experimental label': 'Enable experimental features',\n 'settings debug label': 'Enable debugging features',\n 'settings debug placeholder': 'Typewriter script...',\n 'toggle view mode label': 'Toggle read-only',\n 'default view mode label': 'Default view mode',\n 'upload image label': 'Upload image',\n 'fallback title': 'Untitled',\n 'navigate to document label': 'Open document',\n 'words label_zero': 'words',\n 'words label_one': 'word',\n 'words label_other': 'words',\n },\n },\n },\n ...editorTranslations,\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;;;AAKA,SAASA,gBAAgBC,0BAA0B;AAK5C,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,iBAASC,SAASC,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,kBAAkB;QAClB,2CAA2C;;QAE3C,4CAA4C;QAC5C,sBAAsB;QACtB,sBAAsB;QACtB,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,0BAA0B;QAC1B,oCAAoC;QACpC,0BAA0B;QAC1B,+BAA+B;QAC/B,wBAAwB;QACxB,8BAA8B;QAC9B,0BAA0B;QAC1B,2BAA2B;QAC3B,sBAAsB;QACtB,kBAAkB;QAClB,8BAA8B;QAC9B,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;MACvB;IACF;EACF;KACGC;;",
6
+ "names": ["translations", "editorTranslations", "translations", "Markdown", "Document", "typename", "meta", "id", "editorTranslations"]
7
+ }
@@ -2,21 +2,22 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  MarkdownEditor,
4
4
  useLinkQuery
5
- } from "./chunk-D4BCFPKK.mjs";
5
+ } from "./chunk-WJRTAU55.mjs";
6
6
  import {
7
7
  MarkdownCapabilities,
8
8
  Markdown_exports
9
- } from "./chunk-PRV35A7Z.mjs";
9
+ } from "./chunk-KG7JF7PJ.mjs";
10
10
 
11
11
  // src/components/MarkdownContainer.tsx
12
12
  import { Atom } from "@effect-atom/atom-react";
13
13
  import React, { forwardRef, useMemo } from "react";
14
- import { Common } from "@dxos/app-framework";
15
- import { useAppGraph, useCapabilities } from "@dxos/app-framework/react";
14
+ import { useCapabilities } from "@dxos/app-framework/ui";
15
+ import { AppCapabilities } from "@dxos/app-toolkit";
16
+ import { useAppGraph } from "@dxos/app-toolkit/ui";
16
17
  import { Obj } from "@dxos/echo";
17
18
  import { useActionRunner } from "@dxos/plugin-graph";
18
19
  import { useObject } from "@dxos/react-client/echo";
19
- import { Layout } from "@dxos/react-ui-mosaic";
20
+ import { Layout } from "@dxos/react-ui";
20
21
  import { Text } from "@dxos/schema";
21
22
  var MarkdownContainer = /* @__PURE__ */ forwardRef(({ role, subject: object, id, settings, extensionProviders, ...props }, forwardedRef) => {
22
23
  const db = Obj.isObject(object) ? Obj.getDatabase(object) : void 0;
@@ -64,7 +65,7 @@ var MarkdownContainer = /* @__PURE__ */ forwardRef(({ role, subject: object, id,
64
65
  }, [
65
66
  graph
66
67
  ]);
67
- const [upload] = useCapabilities(Common.Capability.FileUploader);
68
+ const [upload] = useCapabilities(AppCapabilities.FileUploader);
68
69
  const handleFileUpload = useMemo(() => {
69
70
  if (!db || !upload) {
70
71
  return void 0;
@@ -102,4 +103,4 @@ export {
102
103
  MarkdownContainer,
103
104
  MarkdownContainer_default
104
105
  };
105
- //# sourceMappingURL=chunk-3JYPCC7M.mjs.map
106
+ //# sourceMappingURL=chunk-U4W25KQQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/MarkdownContainer.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Extension } from '@codemirror/state';\nimport { Atom } from '@effect-atom/atom-react';\nimport React, { forwardRef, useMemo } from 'react';\n\nimport { useCapabilities } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { useAppGraph } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { useActionRunner } from '@dxos/plugin-graph';\nimport { useObject } from '@dxos/react-client/echo';\nimport { Layout } from '@dxos/react-ui';\nimport { type SelectionManager } from '@dxos/react-ui-attention';\nimport { Text } from '@dxos/schema';\n\nimport { useLinkQuery } from '../hooks';\nimport { Markdown, MarkdownCapabilities, type MarkdownPluginState } from '../types';\n\nimport { MarkdownEditor, type MarkdownEditorContentProps, type MarkdownEditorRootProps } from './MarkdownEditor';\n\nexport type MarkdownContainerProps = SurfaceComponentProps<\n Markdown.Document | Text.Text,\n {\n id: string;\n settings: Markdown.Settings;\n selectionManager?: SelectionManager;\n } & Pick<MarkdownEditorRootProps, 'viewMode' | 'onViewModeChange'> &\n Pick<MarkdownEditorContentProps, 'editorStateStore'> &\n Pick<MarkdownPluginState, 'extensionProviders'>\n>;\n\nexport const MarkdownContainer = forwardRef<HTMLDivElement, MarkdownContainerProps>(\n ({ role, subject: object, id, settings, extensionProviders, ...props }, forwardedRef) => {\n const db = Obj.isObject(object) ? Obj.getDatabase(object) : undefined;\n const attendableId = Obj.instanceOf(Markdown.Document, object) ? Obj.getDXN(object).toString() : undefined;\n const [docContent] = useObject(Obj.instanceOf(Markdown.Document, object) ? object.content : undefined, 'content');\n const [textContent] = useObject(Obj.instanceOf(Text.Text, object) ? object : undefined, 'content');\n const initialValue = docContent ?? textContent;\n\n // Extensions from other plugins.\n // TODO(burdon): Document MarkdownPluginState.extensionProviders\n const otherExtensionProviders = useCapabilities(MarkdownCapabilities.Extensions);\n const extensions = useMemo<Extension[]>(() => {\n if (!Obj.instanceOf(Markdown.Document, object) && !Obj.instanceOf(Text.Text, object)) {\n return [];\n }\n\n return [...(otherExtensionProviders ?? []), ...(extensionProviders ?? [])]\n .flat()\n .reduce((acc: Extension[], provider) => {\n const extension =\n typeof provider === 'function' ? provider({ document: object as Markdown.Document }) : provider;\n if (extension) {\n acc.push(extension);\n }\n\n return acc;\n }, []);\n }, [extensionProviders, otherExtensionProviders, object]);\n\n // Toolbar actions from app graph.\n const { graph } = useAppGraph();\n const runAction = useActionRunner();\n const customActions = useMemo(() => {\n return Atom.make((get) => {\n const actions = get(graph.actions(id));\n const nodes = actions.filter((action) => action.properties.disposition === 'toolbar');\n const edges = nodes.map((node) => ({ source: 'root', target: node.id }));\n return { nodes, edges };\n });\n }, [graph]);\n\n // File upload.\n const [upload] = useCapabilities(AppCapabilities.FileUploader);\n const handleFileUpload = useMemo(() => {\n if (!db || !upload) {\n return undefined;\n }\n\n return async (file: File) => upload(db, file);\n }, [db, upload]);\n\n // Query for @ refs.\n const handleLinkQuery = useLinkQuery(db);\n\n return (\n <Layout.Main toolbar={settings.toolbar} ref={forwardedRef}>\n <MarkdownEditor.Root\n id={attendableId ?? id}\n object={object}\n extensions={extensions}\n settings={settings}\n onAction={runAction}\n onFileUpload={handleFileUpload}\n onLinkQuery={handleLinkQuery}\n {...props}\n >\n {settings.toolbar && (\n <MarkdownEditor.Toolbar id={attendableId ?? id} role={role} customActions={customActions} />\n )}\n <MarkdownEditor.Content initialValue={initialValue} scrollPastEnd={role === 'article'} />\n <MarkdownEditor.Blocks />\n </MarkdownEditor.Root>\n </Layout.Main>\n );\n },\n);\n\nexport default MarkdownContainer;\n"],
5
+ "mappings": "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",
6
+ "names": ["Atom", "React", "forwardRef", "useMemo", "useCapabilities", "AppCapabilities", "useAppGraph", "Obj", "useActionRunner", "useObject", "Layout", "Text", "MarkdownContainer", "forwardRef", "role", "subject", "object", "id", "settings", "extensionProviders", "props", "forwardedRef", "db", "Obj", "isObject", "getDatabase", "undefined", "attendableId", "instanceOf", "Markdown", "Document", "getDXN", "toString", "docContent", "useObject", "content", "textContent", "Text", "initialValue", "otherExtensionProviders", "useCapabilities", "MarkdownCapabilities", "Extensions", "extensions", "useMemo", "flat", "reduce", "acc", "provider", "extension", "document", "push", "graph", "useAppGraph", "runAction", "useActionRunner", "customActions", "Atom", "make", "get", "actions", "nodes", "filter", "action", "properties", "disposition", "edges", "map", "node", "source", "target", "upload", "AppCapabilities", "FileUploader", "handleFileUpload", "file", "handleLinkQuery", "useLinkQuery", "Layout", "Main", "toolbar", "ref", "MarkdownEditor", "Root", "onAction", "onFileUpload", "onLinkQuery", "Toolbar", "Content", "scrollPastEnd", "Blocks"]
7
+ }
@@ -1,25 +1,110 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- setFallbackName
4
- } from "./chunk-SDTYEGGL.mjs";
5
2
  import {
6
3
  Markdown_exports,
7
4
  meta
8
- } from "./chunk-PRV35A7Z.mjs";
5
+ } from "./chunk-KG7JF7PJ.mjs";
6
+
7
+ // src/util.tsx
8
+ import { debounce } from "@dxos/async";
9
+ import { Obj } from "@dxos/echo";
10
+ var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
11
+ var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
12
+ var nonTitleChars = /[^\w ]/g;
13
+ var skipPatterns = [
14
+ /^!\[/,
15
+ /^---\s*$/,
16
+ /^```/,
17
+ /^\s*$/
18
+ ];
19
+ var titlePatterns = [
20
+ /^#{1,6}\s+(.+)/
21
+ ];
22
+ var getFallbackName = (content = "") => {
23
+ const len = content.length;
24
+ let i = 0;
25
+ while (i < len) {
26
+ let lineEnd = i;
27
+ while (lineEnd < len && content[lineEnd] !== "\n") {
28
+ lineEnd++;
29
+ }
30
+ const line = content.slice(i, lineEnd).trim();
31
+ i = lineEnd + 1;
32
+ if (skipPatterns.some((pattern) => pattern.test(line))) {
33
+ continue;
34
+ }
35
+ for (const pattern of titlePatterns) {
36
+ const match = pattern.exec(line);
37
+ if (match) {
38
+ const text2 = match[1].replaceAll(nonTitleChars, "").trim();
39
+ if (text2.length > 0) {
40
+ return text2;
41
+ }
42
+ }
43
+ }
44
+ const maxLen = 32;
45
+ const text = line.replaceAll(nonTitleChars, "").trim();
46
+ if (text.length > 0) {
47
+ if (text.length > maxLen) {
48
+ const words = text.split(/\s+/);
49
+ let result = "";
50
+ for (const word of words) {
51
+ const next = result.length === 0 ? word : result + " " + word;
52
+ if (next.length > maxLen) {
53
+ break;
54
+ }
55
+ result = next;
56
+ }
57
+ return result + "\u2026";
58
+ }
59
+ return text;
60
+ }
61
+ }
62
+ return "";
63
+ };
64
+ var getContentSnippet = (content = "") => {
65
+ const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
66
+ return abstract.slice(0, 3).join("\n") ?? "";
67
+ };
68
+ var setFallbackName = debounce((doc, content = "") => {
69
+ const name = getFallbackName(content);
70
+ if (doc.fallbackName !== name) {
71
+ Obj.change(doc, (d) => {
72
+ d.fallbackName = name;
73
+ });
74
+ }
75
+ }, 200);
76
+ var serializer = {
77
+ serialize: async ({ object }) => {
78
+ const { content } = await object.content.load();
79
+ return JSON.stringify({
80
+ name: object.name,
81
+ fallbackName: object.fallbackName,
82
+ content
83
+ });
84
+ },
85
+ deserialize: async ({ content: serialized }) => {
86
+ const { name, fallbackName, content } = JSON.parse(serialized);
87
+ return Markdown_exports.make({
88
+ name,
89
+ fallbackName,
90
+ content
91
+ });
92
+ }
93
+ };
9
94
 
10
95
  // src/hooks/useLinkQuery.ts
11
96
  import * as Option from "effect/Option";
12
97
  import { useCallback, useMemo } from "react";
13
- import { Common } from "@dxos/app-framework";
14
- import { usePluginManager } from "@dxos/app-framework/react";
15
- import { Filter, Obj, Query, Type } from "@dxos/echo";
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";
16
101
  import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
17
102
  import { toLocalizedString, useTranslation } from "@dxos/react-ui";
18
103
  import { insertAtCursor, insertAtLineStart } from "@dxos/ui-editor";
19
104
  var useLinkQuery = (db) => {
20
105
  const { t } = useTranslation();
21
106
  const manager = usePluginManager();
22
- const resolve = useCallback((typename) => manager.capabilities.getAll(Common.Capability.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
107
+ const resolve = useCallback((typename) => manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
23
108
  manager
24
109
  ]);
25
110
  const filter = useMemo(() => Filter.or(...(db?.schemaRegistry.query({
@@ -34,11 +119,11 @@ var useLinkQuery = (db) => {
34
119
  const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
35
120
  const results = await db?.query(Query.select(filter)).run();
36
121
  const getLabel = (object) => {
37
- const label = Obj.getLabel(object);
122
+ const label = Obj2.getLabel(object);
38
123
  if (label) {
39
124
  return label;
40
125
  }
41
- const type = Obj.getTypename(object);
126
+ const type = Obj2.getTypename(object);
42
127
  const metadata = resolve(type);
43
128
  return metadata.label?.(object) || [
44
129
  "object name placeholder",
@@ -49,14 +134,14 @@ var useLinkQuery = (db) => {
49
134
  ];
50
135
  };
51
136
  const items = results?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name)).map((object) => {
52
- const metadata = resolve(Obj.getTypename(object));
137
+ const metadata = resolve(Obj2.getTypename(object));
53
138
  const label = toLocalizedString(getLabel(object), t);
54
139
  return {
55
140
  id: object.id,
56
141
  label,
57
142
  icon: metadata.icon,
58
143
  onSelect: ({ view, head }) => {
59
- const link = `[${label}](${Obj.getDXN(object)})`;
144
+ const link = `[${label}](${Obj2.getDXN(object)})`;
60
145
  if (query?.startsWith("@")) {
61
146
  insertAtLineStart(view, head, `!${link}
62
147
  `);
@@ -137,10 +222,10 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
137
222
  // src/hooks/useExtensions.tsx
138
223
  import React, { useMemo as useMemo3 } from "react";
139
224
  import { createRoot } from "react-dom/client";
140
- import { Common as Common2 } from "@dxos/app-framework";
141
- import { useOperationInvoker } from "@dxos/app-framework/react";
225
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
226
+ import { LayoutOperation } from "@dxos/app-toolkit";
142
227
  import { debounceAndThrottle } from "@dxos/async";
143
- import { Obj as Obj2 } from "@dxos/echo";
228
+ import { Obj as Obj3 } from "@dxos/echo";
144
229
  import { createDocAccessor } from "@dxos/echo-db";
145
230
  import { invariant } from "@dxos/invariant";
146
231
  import { getSpace, useObject } from "@dxos/react-client/echo";
@@ -155,9 +240,9 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
155
240
  const { invokePromise } = useOperationInvoker();
156
241
  const identity = useIdentity();
157
242
  const space = getSpace(object);
158
- const contentRef = Obj2.instanceOf(Markdown_exports.Document, object) ? object.content : void 0;
243
+ const contentRef = Obj3.instanceOf(Markdown_exports.Document, object) ? object.content : void 0;
159
244
  useObject(contentRef);
160
- const target = contentRef?.target ?? (Obj2.instanceOf(Text.Text, object) ? object : void 0);
245
+ const target = contentRef?.target ?? (Obj3.instanceOf(Text.Text, object) ? object : void 0);
161
246
  const baseExtensions = useMemo3(() => createBaseExtensions({
162
247
  id,
163
248
  object,
@@ -192,7 +277,7 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
192
277
  identity
193
278
  }),
194
279
  // TODO(burdon): Reconcile with effect in parent.
195
- Obj2.instanceOf(Markdown_exports.Document, object) && listener({
280
+ Obj3.instanceOf(Markdown_exports.Document, object) && listener({
196
281
  onChange: ({ text }) => {
197
282
  setFallbackName(object, text);
198
283
  }
@@ -225,11 +310,11 @@ var createBaseExtensions = ({ id, object, invokePromise, settings, selectionMana
225
310
  // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
226
311
  // TODO(burdon): Create dx-tag.
227
312
  renderLinkButton: invokePromise && (object || id) ? createLinkRenderer((targetId) => {
228
- void invokePromise(Common2.LayoutOperation.Open, {
313
+ void invokePromise(LayoutOperation.Open, {
229
314
  subject: [
230
315
  targetId
231
316
  ],
232
- pivotId: object && Obj2.isObject(object) ? Obj2.getDXN(object).toString() : id
317
+ pivotId: object && Obj3.isObject(object) ? Obj3.getDXN(object).toString() : id
233
318
  });
234
319
  }) : void 0
235
320
  }),
@@ -274,7 +359,7 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
274
359
  const qualifiedId = url.split("/").at(-1);
275
360
  invariant(qualifiedId, "Invalid link format.", {
276
361
  F: __dxlog_file,
277
- L: 237,
362
+ L: 238,
278
363
  S: void 0,
279
364
  A: [
280
365
  "qualifiedId",
@@ -321,15 +406,15 @@ var renderRoot = (root, node) => {
321
406
  import { EditorView as EditorView2 } from "@codemirror/view";
322
407
  import * as Effect from "effect/Effect";
323
408
  import { useMemo as useMemo4 } from "react";
324
- import { Common as Common3 } from "@dxos/app-framework";
325
- import { useOperationResolver } from "@dxos/app-framework/react";
409
+ import { useOperationResolver } from "@dxos/app-framework/ui";
410
+ import { LayoutOperation as LayoutOperation2 } from "@dxos/app-toolkit";
326
411
  import { invariant as invariant2 } from "@dxos/invariant";
327
412
  import { OperationResolver } from "@dxos/operation";
328
413
  import { Cursor as Cursor2, setSelection } from "@dxos/ui-editor";
329
414
  var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
330
415
  var useSelectCurrentThread = (editorView, documentId2) => {
331
416
  const scrollIntoViewHandler = useMemo4(() => OperationResolver.make({
332
- operation: Common3.LayoutOperation.ScrollIntoView,
417
+ operation: LayoutOperation2.ScrollIntoView,
333
418
  position: "hoist",
334
419
  filter: (input) => !!editorView && input.subject === documentId2 && !!input.cursor,
335
420
  handler: (input) => Effect.sync(() => {
@@ -382,7 +467,7 @@ var useSelectCurrentThread = (editorView, documentId2) => {
382
467
  import { createContext } from "@radix-ui/react-context";
383
468
  import React5, { useMemo as useMemo6, useState as useState2 } from "react";
384
469
  import { createPortal as createPortal2 } from "react-dom";
385
- import { Surface } from "@dxos/app-framework/react";
470
+ import { Surface } from "@dxos/app-framework/ui";
386
471
  import { DXN } from "@dxos/keys";
387
472
  import { useClient } from "@dxos/react-client";
388
473
  import { EditorMenuProvider, useEditorMenu, useEditorToolbar } from "@dxos/react-ui-editor";
@@ -597,7 +682,7 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
597
682
  ]);
598
683
  },
599
684
  removeBlockContainer: ({ link }) => {
600
- setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.ref !== link.ref));
685
+ setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.dxn !== link.dxn));
601
686
  }
602
687
  }), []);
603
688
  const toolbarState = useEditorToolbar({
@@ -640,8 +725,9 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
640
725
  }, children);
641
726
  };
642
727
  MarkdownEditorRoot.displayName = "MarkdownEditor.Root";
728
+ var MARKDOWN_EDITOR_CONTENT_NAME = "MarkdownEditor.Content";
643
729
  var MarkdownEditorContent2 = (props) => {
644
- const { id, editorView, setEditorView, viewMode, toolbarState, extensions, popoverMenu: { groupsRef, ...menuProps } } = useMarkdownEditorContext(MarkdownEditorContent2.displayName);
730
+ const { id, editorView, setEditorView, viewMode, toolbarState, extensions, popoverMenu: { groupsRef, ...menuProps } } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
645
731
  return /* @__PURE__ */ React5.createElement(EditorMenuProvider, {
646
732
  view: editorView,
647
733
  groups: groupsRef.current,
@@ -655,35 +741,37 @@ var MarkdownEditorContent2 = (props) => {
655
741
  ref: setEditorView
656
742
  }));
657
743
  };
658
- MarkdownEditorContent2.displayName = "MarkdownEditor.Content";
744
+ MarkdownEditorContent2.displayName = MARKDOWN_EDITOR_CONTENT_NAME;
745
+ var MARKDOWN_EDITOR_TOOLBAR_NAME = "MarkdownEditor.Toolbar";
659
746
  var MarkdownEditorToolbar2 = (props) => {
660
- const { toolbarState, ...rootProps } = useMarkdownEditorContext(MarkdownEditorToolbar2.displayName);
747
+ const { toolbarState, ...rootProps } = useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
661
748
  return /* @__PURE__ */ React5.createElement(MarkdownEditorToolbar, {
662
749
  ...props,
663
750
  ...rootProps,
664
751
  state: toolbarState
665
752
  });
666
753
  };
667
- MarkdownEditorToolbar2.displayName = "MarkdownEditor.Toolbar";
754
+ MarkdownEditorToolbar2.displayName = MARKDOWN_EDITOR_TOOLBAR_NAME;
755
+ var MARKDOWN_EDITOR_BLOCKS_NAME = "MarkdownEditor.Blocks";
668
756
  var MarkdownEditorBlocks = (_props) => {
669
- const { previewBlocks } = useMarkdownEditorContext(MarkdownEditorBlocks.displayName);
757
+ const { previewBlocks } = useMarkdownEditorContext(MARKDOWN_EDITOR_BLOCKS_NAME);
670
758
  return /* @__PURE__ */ React5.createElement(React5.Fragment, null, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React5.createElement(PreviewBlock, {
671
- key: link.ref,
759
+ key: link.dxn,
672
760
  link,
673
761
  el
674
762
  })));
675
763
  };
676
- MarkdownEditorBlocks.displayName = "MarkdownEditor.Blocks";
764
+ MarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;
677
765
  var PreviewBlock = ({ el, link }) => {
678
766
  const client = useClient();
679
- const dxn = DXN.parse(link.ref);
767
+ const dxn = DXN.parse(link.dxn);
680
768
  const subject = client.graph.makeRef(dxn).target;
681
769
  const data = useMemo6(() => ({
682
770
  subject
683
771
  }), [
684
772
  subject
685
773
  ]);
686
- return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React5.createElement(Surface, {
774
+ return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React5.createElement(Surface.Surface, {
687
775
  role: "card--transclusion",
688
776
  data,
689
777
  limit: 1
@@ -697,7 +785,13 @@ var MarkdownEditor = {
697
785
  };
698
786
 
699
787
  export {
788
+ isEditorModel,
789
+ isMarkdownProperties,
790
+ getFallbackName,
791
+ getContentSnippet,
792
+ setFallbackName,
793
+ serializer,
700
794
  useLinkQuery,
701
795
  MarkdownEditor
702
796
  };
703
- //# sourceMappingURL=chunk-D4BCFPKK.mjs.map
797
+ //# sourceMappingURL=chunk-WJRTAU55.mjs.map