@dxos/plugin-markdown 0.8.4-main.2c6827d → 0.8.4-main.3c1ae3b

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 (142) hide show
  1. package/dist/lib/browser/MarkdownCard-THZFDOOV.mjs +13 -0
  2. package/dist/lib/browser/MarkdownContainer-VKPSVI5F.mjs +16 -0
  3. package/dist/lib/browser/{anchor-sort-3HGPGCOO.mjs → anchor-sort-3MYLO74J.mjs} +6 -5
  4. package/dist/lib/browser/anchor-sort-3MYLO74J.mjs.map +7 -0
  5. package/dist/lib/browser/{app-graph-serializer-POZN234F.mjs → app-graph-serializer-BZJ4TQOE.mjs} +3 -3
  6. package/dist/lib/browser/{blueprint-definition-GIPKFDY5.mjs → blueprint-definition-R5T6LTPN.mjs} +3 -3
  7. package/dist/lib/browser/{chunk-K3LXOU3E.mjs → chunk-56SUMOIZ.mjs} +102 -195
  8. package/dist/lib/browser/chunk-56SUMOIZ.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-6OMOMVO7.mjs +107 -0
  10. package/dist/lib/browser/chunk-6OMOMVO7.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-QYSEJ5GP.mjs → chunk-CN35HEBX.mjs} +6 -6
  12. package/dist/lib/browser/chunk-CN35HEBX.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-PBJLFIOX.mjs → chunk-KCOBZZIL.mjs} +38 -23
  14. package/dist/lib/browser/chunk-KCOBZZIL.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-GH6GQSBL.mjs → chunk-KPH4ZPQN.mjs} +53 -5
  16. package/dist/lib/browser/chunk-KPH4ZPQN.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-22XSSNBS.mjs → chunk-NXT2E2BG.mjs} +4 -3
  18. package/dist/lib/browser/chunk-NXT2E2BG.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-Y53FQREH.mjs → chunk-RJPOHSYN.mjs} +8 -6
  20. package/dist/lib/browser/chunk-RJPOHSYN.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-2MLGSYRN.mjs → chunk-U6Y53XZK.mjs} +7 -7
  22. package/dist/lib/browser/index.mjs +10 -24
  23. package/dist/lib/browser/index.mjs.map +3 -3
  24. package/dist/lib/browser/{intent-resolver-Z5L7TXUK.mjs → intent-resolver-55ASQRIW.mjs} +3 -3
  25. package/dist/lib/browser/{intent-resolver-Z5L7TXUK.mjs.map → intent-resolver-55ASQRIW.mjs.map} +1 -1
  26. package/dist/lib/browser/meta.json +1 -1
  27. package/dist/lib/browser/{react-surface-GO5ZOKNN.mjs → react-surface-Q3C5H2KT.mjs} +21 -17
  28. package/dist/lib/browser/react-surface-Q3C5H2KT.mjs.map +7 -0
  29. package/dist/lib/browser/{settings-TZUDB5EW.mjs → settings-G3ZOXJQY.mjs} +2 -2
  30. package/dist/lib/browser/toolkit.mjs +2 -2
  31. package/dist/lib/browser/types/index.mjs +1 -1
  32. package/dist/lib/node-esm/{MarkdownCard-ZXPJLUYO.mjs → MarkdownCard-QHSSZGIY.mjs} +5 -4
  33. package/dist/lib/node-esm/{MarkdownContainer-YRDSRDCS.mjs → MarkdownContainer-G3ZQJS7A.mjs} +7 -6
  34. package/dist/lib/node-esm/{anchor-sort-PCDXEBJ2.mjs → anchor-sort-W4HCTYUQ.mjs} +6 -5
  35. package/dist/lib/node-esm/anchor-sort-W4HCTYUQ.mjs.map +7 -0
  36. package/dist/lib/node-esm/{app-graph-serializer-NF65JYAS.mjs → app-graph-serializer-OCTHXWLF.mjs} +3 -3
  37. package/dist/lib/node-esm/{blueprint-definition-ENKJZYQS.mjs → blueprint-definition-2JV3WV22.mjs} +3 -3
  38. package/dist/lib/node-esm/{chunk-PLZ7EVCT.mjs → chunk-6F6FCTIA.mjs} +53 -5
  39. package/dist/lib/node-esm/chunk-6F6FCTIA.mjs.map +7 -0
  40. package/dist/lib/node-esm/{chunk-HAIEWPU7.mjs → chunk-C5KXP2ZE.mjs} +8 -6
  41. package/dist/lib/node-esm/chunk-C5KXP2ZE.mjs.map +7 -0
  42. package/dist/lib/node-esm/{chunk-CT7CFX5G.mjs → chunk-FR6RW6DH.mjs} +102 -195
  43. package/dist/lib/node-esm/chunk-FR6RW6DH.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-AMHACOXW.mjs → chunk-I5JSQBPI.mjs} +4 -3
  45. package/dist/lib/node-esm/chunk-I5JSQBPI.mjs.map +7 -0
  46. package/dist/lib/node-esm/{chunk-KCHUTL3Q.mjs → chunk-KM7KYV6W.mjs} +7 -7
  47. package/dist/lib/node-esm/chunk-KYWXTMKI.mjs +108 -0
  48. package/dist/lib/node-esm/chunk-KYWXTMKI.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-PIOOG7A5.mjs → chunk-R3SGV4ES.mjs} +38 -23
  50. package/dist/lib/node-esm/chunk-R3SGV4ES.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-NGYJNQ6A.mjs → chunk-YFRTKXTB.mjs} +6 -6
  52. package/dist/lib/node-esm/chunk-YFRTKXTB.mjs.map +7 -0
  53. package/dist/lib/node-esm/index.mjs +10 -24
  54. package/dist/lib/node-esm/index.mjs.map +3 -3
  55. package/dist/lib/node-esm/{intent-resolver-6B3PFQ5F.mjs → intent-resolver-DTBVWCNO.mjs} +3 -3
  56. package/dist/lib/node-esm/{intent-resolver-6B3PFQ5F.mjs.map → intent-resolver-DTBVWCNO.mjs.map} +1 -1
  57. package/dist/lib/node-esm/meta.json +1 -1
  58. package/dist/lib/node-esm/{react-surface-I46BPCWT.mjs → react-surface-QWRT4SD6.mjs} +21 -17
  59. package/dist/lib/node-esm/react-surface-QWRT4SD6.mjs.map +7 -0
  60. package/dist/lib/node-esm/{settings-CJ3T5EX4.mjs → settings-IBFFCGNL.mjs} +2 -2
  61. package/dist/lib/node-esm/toolkit.mjs +2 -2
  62. package/dist/lib/node-esm/types/index.mjs +1 -1
  63. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  65. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +14 -1
  66. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  67. package/dist/types/src/components/MarkdownContainer.d.ts +6 -1
  68. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  69. package/dist/types/src/components/MarkdownContainer.stories.d.ts +1 -0
  70. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  71. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +8 -5
  72. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  73. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  74. package/dist/types/src/components/index.d.ts +5 -2
  75. package/dist/types/src/components/index.d.ts.map +1 -1
  76. package/dist/types/src/functions/open.d.ts.map +1 -1
  77. package/dist/types/src/functions/update.d.ts.map +1 -1
  78. package/dist/types/src/testing.d.ts +2 -2
  79. package/dist/types/src/testing.d.ts.map +1 -1
  80. package/dist/types/src/translations.d.ts +1 -0
  81. package/dist/types/src/translations.d.ts.map +1 -1
  82. package/dist/types/src/types/Markdown.d.ts +6 -6
  83. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  84. package/dist/types/src/types/MarkdownAction.d.ts +3 -3
  85. package/dist/types/src/util.d.ts +3 -0
  86. package/dist/types/src/util.d.ts.map +1 -1
  87. package/dist/types/src/util.test.d.ts +2 -0
  88. package/dist/types/src/util.test.d.ts.map +1 -0
  89. package/dist/types/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +44 -44
  91. package/src/MarkdownPlugin.tsx +5 -21
  92. package/src/capabilities/anchor-sort.ts +4 -3
  93. package/src/capabilities/artifact-definition.ts +1 -1
  94. package/src/capabilities/intent-resolver.ts +1 -1
  95. package/src/capabilities/react-surface.tsx +32 -28
  96. package/src/components/MarkdownCard/MarkdownCard.tsx +39 -32
  97. package/src/components/MarkdownContainer.tsx +68 -73
  98. package/src/components/MarkdownEditor/MarkdownEditor.tsx +5 -5
  99. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +24 -8
  100. package/src/components/Suggestions.stories.tsx +2 -1
  101. package/src/components/index.ts +8 -3
  102. package/src/functions/create.test.ts +14 -18
  103. package/src/functions/open.ts +3 -2
  104. package/src/functions/update.test.ts +17 -21
  105. package/src/functions/update.ts +3 -2
  106. package/src/hooks/useExtensions.tsx +2 -2
  107. package/src/hooks/useLinkQuery.ts +10 -10
  108. package/src/testing.ts +5 -5
  109. package/src/translations.ts +1 -0
  110. package/src/types/Markdown.ts +4 -5
  111. package/src/util.test.ts +44 -0
  112. package/src/util.tsx +72 -4
  113. package/dist/lib/browser/MarkdownCard-JYMDPKV5.mjs +0 -12
  114. package/dist/lib/browser/MarkdownContainer-Y75XSVBX.mjs +0 -15
  115. package/dist/lib/browser/anchor-sort-3HGPGCOO.mjs.map +0 -7
  116. package/dist/lib/browser/chunk-22XSSNBS.mjs.map +0 -7
  117. package/dist/lib/browser/chunk-GH6GQSBL.mjs.map +0 -7
  118. package/dist/lib/browser/chunk-K3LXOU3E.mjs.map +0 -7
  119. package/dist/lib/browser/chunk-PBJLFIOX.mjs.map +0 -7
  120. package/dist/lib/browser/chunk-QYSEJ5GP.mjs.map +0 -7
  121. package/dist/lib/browser/chunk-Y53FQREH.mjs.map +0 -7
  122. package/dist/lib/browser/react-surface-GO5ZOKNN.mjs.map +0 -7
  123. package/dist/lib/node-esm/anchor-sort-PCDXEBJ2.mjs.map +0 -7
  124. package/dist/lib/node-esm/chunk-AMHACOXW.mjs.map +0 -7
  125. package/dist/lib/node-esm/chunk-CT7CFX5G.mjs.map +0 -7
  126. package/dist/lib/node-esm/chunk-HAIEWPU7.mjs.map +0 -7
  127. package/dist/lib/node-esm/chunk-NGYJNQ6A.mjs.map +0 -7
  128. package/dist/lib/node-esm/chunk-PIOOG7A5.mjs.map +0 -7
  129. package/dist/lib/node-esm/chunk-PLZ7EVCT.mjs.map +0 -7
  130. package/dist/lib/node-esm/react-surface-I46BPCWT.mjs.map +0 -7
  131. /package/dist/lib/browser/{MarkdownCard-JYMDPKV5.mjs.map → MarkdownCard-THZFDOOV.mjs.map} +0 -0
  132. /package/dist/lib/browser/{MarkdownContainer-Y75XSVBX.mjs.map → MarkdownContainer-VKPSVI5F.mjs.map} +0 -0
  133. /package/dist/lib/browser/{app-graph-serializer-POZN234F.mjs.map → app-graph-serializer-BZJ4TQOE.mjs.map} +0 -0
  134. /package/dist/lib/browser/{blueprint-definition-GIPKFDY5.mjs.map → blueprint-definition-R5T6LTPN.mjs.map} +0 -0
  135. /package/dist/lib/browser/{chunk-2MLGSYRN.mjs.map → chunk-U6Y53XZK.mjs.map} +0 -0
  136. /package/dist/lib/browser/{settings-TZUDB5EW.mjs.map → settings-G3ZOXJQY.mjs.map} +0 -0
  137. /package/dist/lib/node-esm/{MarkdownCard-ZXPJLUYO.mjs.map → MarkdownCard-QHSSZGIY.mjs.map} +0 -0
  138. /package/dist/lib/node-esm/{MarkdownContainer-YRDSRDCS.mjs.map → MarkdownContainer-G3ZQJS7A.mjs.map} +0 -0
  139. /package/dist/lib/node-esm/{app-graph-serializer-NF65JYAS.mjs.map → app-graph-serializer-OCTHXWLF.mjs.map} +0 -0
  140. /package/dist/lib/node-esm/{blueprint-definition-ENKJZYQS.mjs.map → blueprint-definition-2JV3WV22.mjs.map} +0 -0
  141. /package/dist/lib/node-esm/{chunk-KCHUTL3Q.mjs.map → chunk-KM7KYV6W.mjs.map} +0 -0
  142. /package/dist/lib/node-esm/{settings-CJ3T5EX4.mjs.map → settings-IBFFCGNL.mjs.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Markdown_exports
3
- } from "./chunk-QYSEJ5GP.mjs";
3
+ } from "./chunk-CN35HEBX.mjs";
4
4
 
5
5
  // src/capabilities/blueprint-definition.ts
6
6
  import { Capabilities, contributes } from "@dxos/app-framework";
@@ -43,7 +43,8 @@ var create_default = defineFunction({
43
43
  import * as Effect2 from "effect/Effect";
44
44
  import * as Schema2 from "effect/Schema";
45
45
  import { ArtifactId as ArtifactId2 } from "@dxos/assistant";
46
- import { DatabaseService, defineFunction as defineFunction2 } from "@dxos/functions";
46
+ import { Database } from "@dxos/echo";
47
+ import { defineFunction as defineFunction2 } from "@dxos/functions";
47
48
  var open_default = defineFunction2({
48
49
  key: "dxos.org/function/markdown/open",
49
50
  name: "Open",
@@ -57,7 +58,7 @@ var open_default = defineFunction2({
57
58
  content: Schema2.String
58
59
  }),
59
60
  handler: Effect2.fn(function* ({ data: { id } }) {
60
- const object = yield* DatabaseService.resolve(ArtifactId2.toDXN(id), Markdown_exports.Document);
61
+ const object = yield* Database.Service.resolve(ArtifactId2.toDXN(id), Markdown_exports.Document);
61
62
  const { content } = yield* Effect2.promise(() => object.content.load());
62
63
  return {
63
64
  content
@@ -69,8 +70,9 @@ var open_default = defineFunction2({
69
70
  import * as Effect3 from "effect/Effect";
70
71
  import * as Schema3 from "effect/Schema";
71
72
  import { ArtifactId as ArtifactId3, applyDiffs } from "@dxos/assistant";
73
+ import { Database as Database2 } from "@dxos/echo";
72
74
  import { createDocAccessor } from "@dxos/echo-db";
73
- import { DatabaseService as DatabaseService2, defineFunction as defineFunction3 } from "@dxos/functions";
75
+ import { defineFunction as defineFunction3 } from "@dxos/functions";
74
76
  import { trim } from "@dxos/util";
75
77
  var update_default = defineFunction3({
76
78
  key: "dxos.org/function/markdown/update",
@@ -88,7 +90,7 @@ var update_default = defineFunction3({
88
90
  }),
89
91
  outputSchema: Schema3.Void,
90
92
  handler: Effect3.fn(function* ({ data: { id, diffs } }) {
91
- const object = yield* DatabaseService2.resolve(ArtifactId3.toDXN(id), Markdown_exports.Document);
93
+ const object = yield* Database2.Service.resolve(ArtifactId3.toDXN(id), Markdown_exports.Document);
92
94
  const content = yield* Effect3.promise(() => object.content.load());
93
95
  const accessor = createDocAccessor(content, [
94
96
  "content"
@@ -147,4 +149,4 @@ export {
147
149
  MarkdownBlueprint,
148
150
  blueprint_definition_default
149
151
  };
150
- //# sourceMappingURL=chunk-Y53FQREH.mjs.map
152
+ //# sourceMappingURL=chunk-RJPOHSYN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/blueprint-definition.ts", "../../../src/functions/create.ts", "../../../src/functions/open.ts", "../../../src/functions/update.ts", "../../../src/functions/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nimport { MarkdownFunction } from '../functions';\n\nconst functions: FunctionDefinition[] = [MarkdownFunction.create, MarkdownFunction.open, MarkdownFunction.update];\n\nexport const MARKDOWN_BLUEPRINT_KEY = 'dxos.org/blueprint/markdown';\n\nexport const MarkdownBlueprint: Blueprint.Blueprint = Blueprint.make({\n key: MARKDOWN_BLUEPRINT_KEY,\n name: 'Markdown',\n tools: Blueprint.toolDefinitions({ functions }),\n instructions: Template.make({\n // TODO(wittjosiah): Move example to function input schema annotation.\n source: trim`\n {{! Markdown }}\n\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n \n Example:\n ${'```'}diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ${'```'}\n `,\n }),\n});\n\nexport default () => [\n contributes(Capabilities.Functions, functions),\n contributes(Capabilities.BlueprintDefinition, MarkdownBlueprint),\n];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { ArtifactId } from '@dxos/assistant';\nimport { Obj } from '@dxos/echo';\nimport { defineFunction } from '@dxos/functions';\nimport { Collection } from '@dxos/schema';\n\nimport { Markdown } from '../types';\n\nexport default defineFunction({\n key: 'dxos.org/function/markdown/create',\n name: 'Create',\n description: 'Creates a new markdown document and adds it to the space.',\n inputSchema: Schema.Struct({\n name: Schema.String,\n content: Schema.String,\n }),\n outputSchema: Schema.Struct({\n id: ArtifactId,\n }),\n handler: Effect.fn(function* ({ data: { name, content } }) {\n const object = Markdown.make({ name, content });\n yield* Collection.add({ object });\n\n return {\n id: Obj.getDXN(object).toString(),\n };\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { ArtifactId } from '@dxos/assistant';\nimport { Database } from '@dxos/echo';\nimport { defineFunction } from '@dxos/functions';\n\nimport { Markdown } from '../types';\n\nexport default defineFunction({\n key: 'dxos.org/function/markdown/open',\n name: 'Open',\n description: 'Opens and reads the contents of a new markdown document.',\n inputSchema: Schema.Struct({\n id: ArtifactId.annotations({\n description: 'The ID of the markdown document.',\n }),\n }),\n outputSchema: Schema.Struct({\n content: Schema.String,\n }),\n handler: Effect.fn(function* ({ data: { id } }) {\n const object = yield* Database.Service.resolve(ArtifactId.toDXN(id), Markdown.Document);\n const { content } = yield* Effect.promise(() => object.content.load());\n return {\n content,\n };\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { ArtifactId, applyDiffs } from '@dxos/assistant';\nimport { Database } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { defineFunction } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nimport { Markdown } from '../types';\n\n// TODO(wittjosiah): Reconcile with ThreadAction.AddProposal.\nexport default defineFunction({\n key: 'dxos.org/function/markdown/update',\n name: 'Update',\n description: trim`\n Applies a set of diffs to the markdown document.\n `,\n inputSchema: Schema.Struct({\n id: ArtifactId.annotations({\n description: 'The ID of the markdown document.',\n }),\n diffs: Schema.Array(Schema.String).annotations({\n description: 'The diffs to apply to the document.',\n }),\n }),\n outputSchema: Schema.Void,\n handler: Effect.fn(function* ({ data: { id, diffs } }) {\n const object = yield* Database.Service.resolve(ArtifactId.toDXN(id), Markdown.Document);\n const content = yield* Effect.promise(() => object.content.load());\n const accessor = createDocAccessor(content, ['content']);\n applyDiffs(accessor, diffs);\n }),\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { default as create } from './create';\nimport { default as open } from './open';\nimport { default as update } from './update';\n\nexport const MarkdownFunction = {\n create,\n open,\n update,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Capabilities", "contributes", "Blueprint", "Template", "trim", "Effect", "Schema", "ArtifactId", "Obj", "defineFunction", "Collection", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "String", "content", "outputSchema", "id", "ArtifactId", "handler", "fn", "data", "object", "Markdown", "make", "Collection", "add", "Obj", "getDXN", "toString", "Effect", "Schema", "ArtifactId", "Database", "defineFunction", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "id", "ArtifactId", "annotations", "outputSchema", "content", "String", "handler", "fn", "data", "object", "Database", "Service", "resolve", "toDXN", "Markdown", "Document", "promise", "load", "Effect", "Schema", "ArtifactId", "applyDiffs", "Database", "createDocAccessor", "defineFunction", "trim", "defineFunction", "key", "name", "description", "trim", "inputSchema", "Struct", "id", "ArtifactId", "annotations", "diffs", "Array", "String", "outputSchema", "Void", "handler", "fn", "data", "object", "Database", "Service", "resolve", "toDXN", "Markdown", "Document", "content", "promise", "load", "accessor", "createDocAccessor", "applyDiffs", "MarkdownFunction", "create", "open", "update", "functions", "MarkdownFunction", "create", "open", "update", "MARKDOWN_BLUEPRINT_KEY", "MarkdownBlueprint", "Blueprint", "make", "key", "name", "tools", "toolDefinitions", "instructions", "Template", "source", "trim", "contributes", "Capabilities", "Functions", "BlueprintDefinition"]
7
+ }
@@ -1,11 +1,11 @@
1
1
  // src/capabilities/index.ts
2
2
  import { lazy } from "@dxos/app-framework";
3
- var AnchorSort = lazy(() => import("./anchor-sort-3HGPGCOO.mjs"));
4
- var AppGraphSerializer = lazy(() => import("./app-graph-serializer-POZN234F.mjs"));
5
- var BlueprintDefinition = lazy(() => import("./blueprint-definition-GIPKFDY5.mjs"));
6
- var IntentResolver = lazy(() => import("./intent-resolver-Z5L7TXUK.mjs"));
7
- var ReactSurface = lazy(() => import("./react-surface-GO5ZOKNN.mjs"));
8
- var MarkdownSettings = lazy(() => import("./settings-TZUDB5EW.mjs"));
3
+ var AnchorSort = lazy(() => import("./anchor-sort-3MYLO74J.mjs"));
4
+ var AppGraphSerializer = lazy(() => import("./app-graph-serializer-BZJ4TQOE.mjs"));
5
+ var BlueprintDefinition = lazy(() => import("./blueprint-definition-R5T6LTPN.mjs"));
6
+ var IntentResolver = lazy(() => import("./intent-resolver-55ASQRIW.mjs"));
7
+ var ReactSurface = lazy(() => import("./react-surface-Q3C5H2KT.mjs"));
8
+ var MarkdownSettings = lazy(() => import("./settings-G3ZOXJQY.mjs"));
9
9
  var MarkdownState = lazy(() => import("./state-BTUKVZHY.mjs"));
10
10
 
11
11
  export {
@@ -17,4 +17,4 @@ export {
17
17
  MarkdownSettings,
18
18
  MarkdownState
19
19
  };
20
- //# sourceMappingURL=chunk-2MLGSYRN.mjs.map
20
+ //# sourceMappingURL=chunk-U6Y53XZK.mjs.map
@@ -6,13 +6,13 @@ import {
6
6
  MarkdownSettings,
7
7
  MarkdownState,
8
8
  ReactSurface
9
- } from "./chunk-2MLGSYRN.mjs";
9
+ } from "./chunk-U6Y53XZK.mjs";
10
10
  import {
11
11
  MARKDOWN_BLUEPRINT_KEY
12
- } from "./chunk-Y53FQREH.mjs";
12
+ } from "./chunk-RJPOHSYN.mjs";
13
13
  import {
14
14
  translations
15
- } from "./chunk-22XSSNBS.mjs";
15
+ } from "./chunk-NXT2E2BG.mjs";
16
16
  import {
17
17
  MarkdownCapabilities
18
18
  } from "./chunk-IBCHVMZW.mjs";
@@ -23,11 +23,11 @@ import {
23
23
  isMarkdownProperties,
24
24
  serializer,
25
25
  setFallbackName
26
- } from "./chunk-GH6GQSBL.mjs";
26
+ } from "./chunk-KPH4ZPQN.mjs";
27
27
  import {
28
28
  MarkdownAction_exports,
29
29
  Markdown_exports
30
- } from "./chunk-QYSEJ5GP.mjs";
30
+ } from "./chunk-CN35HEBX.mjs";
31
31
  import {
32
32
  meta
33
33
  } from "./chunk-BQTYJOFB.mjs";
@@ -42,10 +42,8 @@ var MarkdownEvents;
42
42
  // src/MarkdownPlugin.tsx
43
43
  import { Capabilities, Events as Events2, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
44
44
  import { Ref } from "@dxos/echo";
45
+ import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
45
46
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
46
- import { SpaceCapabilities } from "@dxos/plugin-space";
47
- import { defineObjectForm } from "@dxos/plugin-space/types";
48
- import { createDocAccessor, getTextInRange } from "@dxos/react-client/echo";
49
47
  import { translations as editorTranslations } from "@dxos/react-ui-editor";
50
48
  import { Text } from "@dxos/schema";
51
49
  var MarkdownPlugin = definePlugin(meta, () => [
@@ -100,32 +98,20 @@ var MarkdownPlugin = definePlugin(meta, () => [
100
98
  "content"
101
99
  ]), start, end);
102
100
  }
103
- }
101
+ },
102
+ createObjectIntent: () => createIntent(MarkdownAction_exports.Create),
103
+ addToCollectionOnCreate: true
104
104
  }
105
105
  })
106
106
  }),
107
- defineModule({
108
- id: `${meta.id}/module/object-form`,
109
- activatesOn: ClientEvents.SetupSchema,
110
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
111
- objectSchema: Markdown_exports.Document,
112
- getIntent: () => createIntent(MarkdownAction_exports.Create, {})
113
- }))
114
- }),
115
107
  defineModule({
116
108
  id: `${meta.id}/module/schema`,
117
109
  activatesOn: ClientEvents.SetupSchema,
118
110
  activate: () => contributes(ClientCapabilities.Schema, [
111
+ Markdown_exports.Document,
119
112
  Text.Text
120
113
  ])
121
114
  }),
122
- defineModule({
123
- id: `${meta.id}/module/whitelist-schema`,
124
- activatesOn: ClientEvents.SetupSchema,
125
- activate: () => contributes(ClientCapabilities.SchemaWhiteList, [
126
- Markdown_exports.Document
127
- ])
128
- }),
129
115
  defineModule({
130
116
  id: `${meta.id}/module/react-surface`,
131
117
  activatesOn: Events2.SetupReactSurface,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/events.ts", "../../../src/MarkdownPlugin.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { createDocAccessor, getTextInRange } from '@dxos/react-client/echo';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\nimport { Text } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n BlueprintDefinition,\n IntentResolver,\n MARKDOWN_BLUEPRINT_KEY,\n MarkdownSettings,\n MarkdownState,\n ReactSurface,\n} from './capabilities';\nimport { MarkdownEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Markdown, MarkdownAction } from './types';\nimport { serializer } from './util';\n\nexport const MarkdownPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...editorTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: MarkdownSettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: MarkdownState,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: Markdown.Document.typename,\n metadata: {\n label: (object: Markdown.Document) => object.name || object.fallbackName,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n blueprints: [MARKDOWN_BLUEPRINT_KEY],\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (doc: Markdown.Document) => await Ref.Array.loadAll<Obj.Any>([doc.content]),\n serializer,\n // TODO(wittjosiah): Consider how to do generic comments without these.\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Markdown.Document,\n getIntent: () => createIntent(MarkdownAction.Create, {}),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [Text.Text]),\n }),\n defineModule({\n id: `${meta.id}/module/whitelist-schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.SchemaWhiteList, [Markdown.Document]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the editor is loaded when surfaces activation is more granular.\n activatesBefore: [MarkdownEvents.SetupExtensions],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/anchor-sort`,\n // TODO(wittjosiah): More relevant event?\n activatesOn: Events.AppGraphReady,\n activate: AnchorSort,\n }),\n defineModule({\n id: `${meta.id}/module/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n]);\n"],
5
- "mappings": "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",
6
- "names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "meta", "id", "Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "Ref", "ClientCapabilities", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "createDocAccessor", "getTextInRange", "translations", "editorTranslations", "Text", "MarkdownPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "editorTranslations", "SetupSettings", "MarkdownSettings", "MarkdownState", "SetupMetadata", "Metadata", "Markdown", "Document", "typename", "metadata", "label", "object", "name", "fallbackName", "icon", "iconHue", "blueprints", "MARKDOWN_BLUEPRINT_KEY", "graphProps", "managesAutofocus", "loadReferences", "doc", "Ref", "Array", "loadAll", "content", "serializer", "comments", "selectionMode", "getAnchorLabel", "anchor", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "createIntent", "MarkdownAction", "Create", "ClientCapabilities", "Schema", "Text", "SchemaWhiteList", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "BlueprintDefinition"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { createDocAccessor, getTextInRange } from '@dxos/echo-db';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { type CreateObjectIntent } from '@dxos/plugin-space/types';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\nimport { Text } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n BlueprintDefinition,\n IntentResolver,\n MARKDOWN_BLUEPRINT_KEY,\n MarkdownSettings,\n MarkdownState,\n ReactSurface,\n} from './capabilities';\nimport { MarkdownEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Markdown, MarkdownAction } from './types';\nimport { serializer } from './util';\n\nexport const MarkdownPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...editorTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: MarkdownSettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: MarkdownState,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: Markdown.Document.typename,\n metadata: {\n label: (object: Markdown.Document) => object.name || object.fallbackName,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n blueprints: [MARKDOWN_BLUEPRINT_KEY],\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (doc: Markdown.Document) => await Ref.Array.loadAll<Obj.Any>([doc.content]),\n serializer,\n // TODO(wittjosiah): Consider how to do generic comments without these.\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n createObjectIntent: (() => createIntent(MarkdownAction.Create)) satisfies CreateObjectIntent,\n addToCollectionOnCreate: true,\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [Markdown.Document, Text.Text]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the editor is loaded when surfaces activation is more granular.\n activatesBefore: [MarkdownEvents.SetupExtensions],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/anchor-sort`,\n // TODO(wittjosiah): More relevant event?\n activatesOn: Events.AppGraphReady,\n activate: AnchorSort,\n }),\n defineModule({\n id: `${meta.id}/module/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n]);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,cAAc;UAINC,iBAAAA;kBACFC,kBAAkBC,OAAOC,iBAAiB,GAAGC,KAAKC,EAAE,yBAAyB;AAC5F,GAFiBL,mBAAAA,iBAAAA,CAAAA,EAAAA;;;;ACJjB,SAASM,cAAcC,UAAAA,SAAQC,aAAaC,cAAcC,cAAcC,oBAAoB;AAC5F,SAAmBC,WAAW;AAC9B,SAASC,mBAAmBC,sBAAsB;AAClD,SAASC,oBAAoBC,oBAAoB;AAEjD,SAASC,gBAAgBC,0BAA0B;AACnD,SAASC,YAAY;AAkBd,IAAMC,iBAAiBC,aAAaC,MAAM,MAAM;EACrDC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAc;SAAIC;SAAiBC;KAAmB;EACjG,CAAA;EACAV,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOQ;IACpBN,UAAUO;EACZ,CAAA;EACAZ,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;;;;IAIdC,aAAaC,QAAOQ;IACpBN,UAAUQ;EACZ,CAAA;EACAb,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOW;IACpBT,UAAU,MACRC,YAAYC,aAAaQ,UAAU;MACjCd,IAAIe,iBAASC,SAASC;MACtBC,UAAU;QACRC,OAAO,CAACC,WAA8BA,OAAOC,QAAQD,OAAOE;QAC5DC,MAAM;QACNC,SAAS;QACTC,YAAY;UAACC;;QACbC,YAAY;UACVC,kBAAkB;QACpB;;QAEAC,gBAAgB,OAAOC,QAA2B,MAAMC,IAAIC,MAAMC,QAAiB;UAACH,IAAII;SAAQ;QAChGC;;QAEAC,UAAU;QACVC,eAAe;QACfC,gBAAgB,CAACR,KAAwBS,WAAAA;AACvC,cAAIT,IAAII,SAAS;AACf,kBAAM,CAACM,OAAOC,GAAAA,IAAOF,OAAOG,MAAM,GAAA;AAClC,mBAAOC,eAAeC,kBAAkBd,IAAII,QAAQW,QAAS;cAAC;aAAU,GAAGL,OAAOC,GAAAA;UACpF;QACF;QACAK,oBAAqB,MAAMC,aAAaC,uBAAeC,MAAM;QAC7DC,yBAAyB;MAC3B;IACF,CAAA;EACJ,CAAA;EACAnD,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAakD,aAAaC;IAC1BhD,UAAU,MAAMC,YAAYgD,mBAAmBC,QAAQ;MAACvC,iBAASC;MAAUuC,KAAKA;KAAK;EACvF,CAAA;EACAxD,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOsD;;IAEpBC,iBAAiB;MAACC,eAAeC;;IACjCvD,UAAUwD;EACZ,CAAA;EACA7D,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAO2D;IACpBzD,UAAU0D;EACZ,CAAA;EACA/D,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAO6D;IACpB3D,UAAU4D;EACZ,CAAA;EACAjE,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;;IAEdC,aAAaC,QAAO6D;IACpB3D,UAAU6D;EACZ,CAAA;EACAlE,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOgE;IACpB9D,UAAU+D;EACZ,CAAA;CACD;",
6
+ "names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "meta", "id", "Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "Ref", "createDocAccessor", "getTextInRange", "ClientCapabilities", "ClientEvents", "translations", "editorTranslations", "Text", "MarkdownPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "editorTranslations", "SetupSettings", "MarkdownSettings", "MarkdownState", "SetupMetadata", "Metadata", "Markdown", "Document", "typename", "metadata", "label", "object", "name", "fallbackName", "icon", "iconHue", "blueprints", "MARKDOWN_BLUEPRINT_KEY", "graphProps", "managesAutofocus", "loadReferences", "doc", "Ref", "Array", "loadAll", "content", "serializer", "comments", "selectionMode", "getAnchorLabel", "anchor", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "createObjectIntent", "createIntent", "MarkdownAction", "Create", "addToCollectionOnCreate", "ClientEvents", "SetupSchema", "ClientCapabilities", "Schema", "Text", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "BlueprintDefinition"]
7
7
  }
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  MarkdownAction_exports,
6
6
  Markdown_exports
7
- } from "./chunk-QYSEJ5GP.mjs";
7
+ } from "./chunk-CN35HEBX.mjs";
8
8
  import "./chunk-BQTYJOFB.mjs";
9
9
 
10
10
  // src/capabilities/intent-resolver.ts
@@ -12,7 +12,7 @@ import { next as A } from "@automerge/automerge";
12
12
  import * as Option from "effect/Option";
13
13
  import { Capabilities, CollaborationActions, contributes, createResolver } from "@dxos/app-framework";
14
14
  import { Obj } from "@dxos/echo";
15
- import { createDocAccessor, getRangeFromCursor } from "@dxos/react-client/echo";
15
+ import { createDocAccessor, getRangeFromCursor } from "@dxos/echo-db";
16
16
  var intent_resolver_default = ((context) => contributes(Capabilities.IntentResolver, [
17
17
  createResolver({
18
18
  intent: MarkdownAction_exports.Create,
@@ -59,4 +59,4 @@ var intent_resolver_default = ((context) => contributes(Capabilities.IntentResol
59
59
  export {
60
60
  intent_resolver_default as default
61
61
  };
62
- //# sourceMappingURL=intent-resolver-Z5L7TXUK.mjs.map
62
+ //# sourceMappingURL=intent-resolver-55ASQRIW.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { next as A } from '@automerge/automerge';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\n\nimport {\n Capabilities,\n CollaborationActions,\n type PluginContext,\n contributes,\n createResolver,\n} from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor, getRangeFromCursor } from '@dxos/react-client/echo';\n\nimport { Markdown, MarkdownAction } from '../types';\n\nimport { MarkdownCapabilities } from './capabilities';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: MarkdownAction.Create,\n resolve: ({ name, content }) => {\n return { data: { object: Markdown.make({ name, content }) } };\n },\n }),\n createResolver({\n intent: MarkdownAction.SetViewMode,\n resolve: ({ id, viewMode }) => {\n const { state } = context.getCapability(MarkdownCapabilities.State);\n state.viewMode[id] = viewMode;\n },\n }),\n createResolver({\n intent: CollaborationActions.AcceptProposal,\n filter: (\n data,\n ): data is Omit<Schema.Schema.Type<typeof CollaborationActions.AcceptProposal.fields.input>, 'subject'> & {\n subject: Markdown.Document;\n } => Obj.instanceOf(Markdown.Document, data.subject),\n resolve: async ({ subject, anchor, proposal }) => {\n const text = await subject.content.load();\n const accessor = createDocAccessor(text, ['content']);\n const { start, end } = Option.fromNullable(anchor).pipe(\n Option.flatMap((at) => Option.fromNullable(getRangeFromCursor(accessor, at))),\n // Fallback to the end of the document.\n Option.getOrElse(() => ({ start: text.content.length - 1, end: text.content.length - 1 })),\n );\n accessor.handle.change((doc) => {\n A.splice(doc, accessor.path.slice(), start, end - start, proposal.text);\n });\n },\n }),\n ]);\n"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { next as A } from '@automerge/automerge';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\n\nimport {\n Capabilities,\n CollaborationActions,\n type PluginContext,\n contributes,\n createResolver,\n} from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor, getRangeFromCursor } from '@dxos/echo-db';\n\nimport { Markdown, MarkdownAction } from '../types';\n\nimport { MarkdownCapabilities } from './capabilities';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: MarkdownAction.Create,\n resolve: ({ name, content }) => {\n return { data: { object: Markdown.make({ name, content }) } };\n },\n }),\n createResolver({\n intent: MarkdownAction.SetViewMode,\n resolve: ({ id, viewMode }) => {\n const { state } = context.getCapability(MarkdownCapabilities.State);\n state.viewMode[id] = viewMode;\n },\n }),\n createResolver({\n intent: CollaborationActions.AcceptProposal,\n filter: (\n data,\n ): data is Omit<Schema.Schema.Type<typeof CollaborationActions.AcceptProposal.fields.input>, 'subject'> & {\n subject: Markdown.Document;\n } => Obj.instanceOf(Markdown.Document, data.subject),\n resolve: async ({ subject, anchor, proposal }) => {\n const text = await subject.content.load();\n const accessor = createDocAccessor(text, ['content']);\n const { start, end } = Option.fromNullable(anchor).pipe(\n Option.flatMap((at) => Option.fromNullable(getRangeFromCursor(accessor, at))),\n // Fallback to the end of the document.\n Option.getOrElse(() => ({ start: text.content.length - 1, end: text.content.length - 1 })),\n );\n accessor.handle.change((doc) => {\n A.splice(doc, accessor.path.slice(), start, end - start, proposal.text);\n });\n },\n }),\n ]);\n"],
5
5
  "mappings": ";;;;;;;;;;AAIA,SAASA,QAAQC,SAAS;AAC1B,YAAYC,YAAY;AAGxB,SACEC,cACAC,sBAEAC,aACAC,sBACK;AACP,SAASC,WAAW;AACpB,SAASC,mBAAmBC,0BAA0B;AAMtD,IAAA,2BAAe,CAACC,YACdC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,uBAAeC;IACvBC,SAAS,CAAC,EAAEC,MAAMC,QAAO,MAAE;AACzB,aAAO;QAAEC,MAAM;UAAEC,QAAQC,iBAASC,KAAK;YAAEL;YAAMC;UAAQ,CAAA;QAAG;MAAE;IAC9D;EACF,CAAA;EACAN,eAAe;IACbC,QAAQC,uBAAeS;IACvBP,SAAS,CAAC,EAAEQ,IAAIC,SAAQ,MAAE;AACxB,YAAM,EAAEC,MAAK,IAAKlB,QAAQmB,cAAcC,qBAAqBC,KAAK;AAClEH,YAAMD,SAASD,EAAAA,IAAMC;IACvB;EACF,CAAA;EACAb,eAAe;IACbC,QAAQiB,qBAAqBC;IAC7BC,QAAQ,CACNb,SAGGc,IAAIC,WAAWb,iBAASc,UAAUhB,KAAKiB,OAAO;IACnDpB,SAAS,OAAO,EAAEoB,SAASC,QAAQC,SAAQ,MAAE;AAC3C,YAAMC,OAAO,MAAMH,QAAQlB,QAAQsB,KAAI;AACvC,YAAMC,WAAWC,kBAAkBH,MAAM;QAAC;OAAU;AACpD,YAAM,EAAEI,OAAOC,IAAG,IAAYC,oBAAaR,MAAAA,EAAQS;QAC1CC,eAAQ,CAACC,OAAcH,oBAAaI,mBAAmBR,UAAUO,EAAAA,CAAAA,CAAAA;;QAEjEE,iBAAU,OAAO;UAAEP,OAAOJ,KAAKrB,QAAQiC,SAAS;UAAGP,KAAKL,KAAKrB,QAAQiC,SAAS;QAAE,EAAA;MAAA;AAEzFV,eAASW,OAAOC,OAAO,CAACC,QAAAA;AACtBC,UAAEC,OAAOF,KAAKb,SAASgB,KAAKC,MAAK,GAAIf,OAAOC,MAAMD,OAAOL,SAASC,IAAI;MACxE,CAAA;IACF;EACF,CAAA;CACD;",
6
6
  "names": ["next", "A", "Option", "Capabilities", "CollaborationActions", "contributes", "createResolver", "Obj", "createDocAccessor", "getRangeFromCursor", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "MarkdownAction", "Create", "resolve", "name", "content", "data", "object", "Markdown", "make", "SetViewMode", "id", "viewMode", "state", "getCapability", "MarkdownCapabilities", "State", "CollaborationActions", "AcceptProposal", "filter", "Obj", "instanceOf", "Document", "subject", "anchor", "proposal", "text", "load", "accessor", "createDocAccessor", "start", "end", "fromNullable", "pipe", "flatMap", "at", "getRangeFromCursor", "getOrElse", "length", "handle", "change", "doc", "A", "splice", "path", "slice"]
7
7
  }