@dxos/plugin-markdown 0.8.2-main.fbd8ed0 → 0.8.2-staging.4d6ad0f

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 (171) hide show
  1. package/dist/lib/browser/{MarkdownContainer-KKWICAKV.mjs → MarkdownContainer-NNE5SMES.mjs} +299 -262
  2. package/dist/lib/browser/MarkdownContainer-NNE5SMES.mjs.map +7 -0
  3. package/dist/lib/browser/MarkdownPreview-YW5CS3ID.mjs +87 -0
  4. package/dist/lib/{node-esm/MarkdownPreview-KYWRMBRM.mjs.map → browser/MarkdownPreview-YW5CS3ID.mjs.map} +1 -1
  5. package/dist/lib/browser/anchor-sort-VS4OZVPP.mjs +32 -0
  6. package/dist/lib/browser/anchor-sort-VS4OZVPP.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-MPJQUYTQ.mjs → app-graph-serializer-V6RLEHVY.mjs} +3 -3
  8. package/dist/lib/browser/{artifact-definition-DAF3YCVL.mjs → artifact-definition-5NAODQLG.mjs} +61 -14
  9. package/dist/lib/browser/artifact-definition-5NAODQLG.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-S42YXFZ7.mjs → chunk-77NGW7EO.mjs} +5 -6
  11. package/dist/lib/browser/chunk-77NGW7EO.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-TUCSFCS5.mjs → chunk-C5RABVIX.mjs} +2 -2
  13. package/dist/lib/browser/{chunk-XP2ZPCLI.mjs → chunk-ECSM56YC.mjs} +15 -22
  14. package/dist/lib/browser/chunk-ECSM56YC.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-NAGMSX77.mjs → chunk-QVJETNGS.mjs} +2 -2
  16. package/dist/lib/{node-esm/chunk-ETXPC5VP.mjs.map → browser/chunk-QVJETNGS.mjs.map} +1 -1
  17. package/dist/lib/browser/chunk-Z7VSZKOO.mjs +20 -0
  18. package/dist/lib/browser/chunk-Z7VSZKOO.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +29 -17
  20. package/dist/lib/browser/index.mjs.map +3 -3
  21. package/dist/lib/browser/intent-resolver-4GDYST4Y.mjs +65 -0
  22. package/dist/lib/browser/intent-resolver-4GDYST4Y.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/{react-surface-EMQV3GVI.mjs → react-surface-LDVROHXZ.mjs} +75 -62
  25. package/dist/lib/browser/react-surface-LDVROHXZ.mjs.map +7 -0
  26. package/dist/lib/browser/{settings-GPB6WOIU.mjs → settings-W5CK4PXP.mjs} +2 -2
  27. package/dist/lib/browser/{state-XTP5IP3W.mjs → state-KI6PJ6DT.mjs} +2 -2
  28. package/dist/lib/browser/types/index.mjs +1 -1
  29. package/dist/lib/node/{MarkdownContainer-LBI6ZESS.cjs → MarkdownContainer-LFCR2YMB.cjs} +304 -267
  30. package/dist/lib/node/MarkdownContainer-LFCR2YMB.cjs.map +7 -0
  31. package/dist/lib/node/MarkdownPreview-G34HSQEB.cjs +110 -0
  32. package/dist/lib/node/{MarkdownPreview-O3BR4PZW.cjs.map → MarkdownPreview-G34HSQEB.cjs.map} +1 -1
  33. package/dist/lib/node/{thread-NWBGBGOR.cjs → anchor-sort-NHVF23EU.cjs} +15 -20
  34. package/dist/lib/node/anchor-sort-NHVF23EU.cjs.map +7 -0
  35. package/dist/lib/node/{app-graph-serializer-Z7UJYSSL.cjs → app-graph-serializer-CLALIYN3.cjs} +9 -9
  36. package/dist/lib/node/{artifact-definition-UIZSL2AL.cjs → artifact-definition-VEAHK7BX.cjs} +65 -19
  37. package/dist/lib/node/artifact-definition-VEAHK7BX.cjs.map +7 -0
  38. package/dist/lib/node/{chunk-AJHB57YQ.cjs → chunk-3KDAJADP.cjs} +15 -15
  39. package/dist/lib/node/chunk-3KDAJADP.cjs.map +7 -0
  40. package/dist/lib/node/{chunk-BWRBWEKN.cjs → chunk-G7RBJX22.cjs} +8 -9
  41. package/dist/lib/node/chunk-G7RBJX22.cjs.map +7 -0
  42. package/dist/lib/node/{chunk-DZXTXSXX.cjs → chunk-IFYSBQE5.cjs} +5 -5
  43. package/dist/lib/node/{chunk-DZXTXSXX.cjs.map → chunk-IFYSBQE5.cjs.map} +1 -1
  44. package/dist/lib/node/{chunk-EO5H4OZJ.cjs → chunk-RQS4KBMG.cjs} +13 -20
  45. package/dist/lib/node/chunk-RQS4KBMG.cjs.map +7 -0
  46. package/dist/lib/node/{chunk-4525YF72.cjs → chunk-ZDTL47I7.cjs} +6 -6
  47. package/dist/lib/node/index.cjs +41 -29
  48. package/dist/lib/node/index.cjs.map +3 -3
  49. package/dist/lib/node/intent-resolver-AUZVK3NZ.cjs +78 -0
  50. package/dist/lib/node/intent-resolver-AUZVK3NZ.cjs.map +7 -0
  51. package/dist/lib/node/meta.json +1 -1
  52. package/dist/lib/node/{react-surface-REHX3ABQ.cjs → react-surface-QM65PGDI.cjs} +84 -71
  53. package/dist/lib/node/react-surface-QM65PGDI.cjs.map +7 -0
  54. package/dist/lib/node/{settings-SF6JDJG6.cjs → settings-IRKU3WPM.cjs} +6 -6
  55. package/dist/lib/node/{state-K4IPZTRO.cjs → state-KKDRAG7X.cjs} +6 -6
  56. package/dist/lib/node/types/index.cjs +7 -7
  57. package/dist/lib/node/types/index.cjs.map +1 -1
  58. package/dist/lib/node-esm/{MarkdownContainer-62XZY5EP.mjs → MarkdownContainer-HUOBFKZR.mjs} +299 -262
  59. package/dist/lib/node-esm/MarkdownContainer-HUOBFKZR.mjs.map +7 -0
  60. package/dist/lib/node-esm/MarkdownPreview-TCV7BI32.mjs +88 -0
  61. package/dist/lib/{browser/MarkdownPreview-FVSYVJGN.mjs.map → node-esm/MarkdownPreview-TCV7BI32.mjs.map} +1 -1
  62. package/dist/lib/node-esm/anchor-sort-G2HLCYFK.mjs +33 -0
  63. package/dist/lib/node-esm/anchor-sort-G2HLCYFK.mjs.map +7 -0
  64. package/dist/lib/node-esm/{app-graph-serializer-DDMFMNYI.mjs → app-graph-serializer-C3RNTQGM.mjs} +3 -3
  65. package/dist/lib/node-esm/{artifact-definition-ER3446S7.mjs → artifact-definition-7TIJW2CO.mjs} +61 -14
  66. package/dist/lib/node-esm/artifact-definition-7TIJW2CO.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-T5Z5BIOF.mjs → chunk-4444OQSA.mjs} +10 -10
  68. package/dist/lib/node-esm/chunk-4444OQSA.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-PDD5B7EO.mjs → chunk-6RPARLIK.mjs} +5 -6
  70. package/dist/lib/node-esm/chunk-6RPARLIK.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-ETXPC5VP.mjs → chunk-JXXDCSMW.mjs} +2 -2
  72. package/dist/lib/{browser/chunk-NAGMSX77.mjs.map → node-esm/chunk-JXXDCSMW.mjs.map} +1 -1
  73. package/dist/lib/node-esm/{chunk-66XM3JMR.mjs → chunk-NCMPVEXO.mjs} +15 -22
  74. package/dist/lib/node-esm/chunk-NCMPVEXO.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-CXTVDT5U.mjs → chunk-TCFJNUAE.mjs} +2 -2
  76. package/dist/lib/node-esm/index.mjs +29 -17
  77. package/dist/lib/node-esm/index.mjs.map +3 -3
  78. package/dist/lib/node-esm/intent-resolver-FTNXUNI2.mjs +66 -0
  79. package/dist/lib/node-esm/intent-resolver-FTNXUNI2.mjs.map +7 -0
  80. package/dist/lib/node-esm/meta.json +1 -1
  81. package/dist/lib/node-esm/{react-surface-FA7JYF2A.mjs → react-surface-5QZ76RZA.mjs} +75 -62
  82. package/dist/lib/node-esm/react-surface-5QZ76RZA.mjs.map +7 -0
  83. package/dist/lib/node-esm/{settings-2DT2C4RA.mjs → settings-MK7D7LHQ.mjs} +2 -2
  84. package/dist/lib/node-esm/{state-7VFYPF6Z.mjs → state-LLGVRYKL.mjs} +2 -2
  85. package/dist/lib/node-esm/types/index.mjs +1 -1
  86. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/anchor-sort.d.ts +6 -0
  88. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/index.d.ts +4 -4
  91. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  94. package/dist/types/src/components/MarkdownContainer.d.ts +3 -1
  95. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  96. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +3 -3
  97. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  98. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -104
  99. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -1
  100. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/index.d.ts +1 -1
  102. package/dist/types/src/components/index.d.ts.map +1 -1
  103. package/dist/types/src/extensions.d.ts +4 -1
  104. package/dist/types/src/extensions.d.ts.map +1 -1
  105. package/dist/types/src/types/schema.d.ts +1 -314
  106. package/dist/types/src/types/schema.d.ts.map +1 -1
  107. package/dist/types/src/types/types.d.ts +7 -109
  108. package/dist/types/src/types/types.d.ts.map +1 -1
  109. package/package.json +47 -40
  110. package/src/MarkdownPlugin.tsx +17 -7
  111. package/src/capabilities/anchor-sort.ts +30 -0
  112. package/src/capabilities/artifact-definition.ts +43 -7
  113. package/src/capabilities/index.ts +1 -1
  114. package/src/capabilities/intent-resolver.ts +23 -28
  115. package/src/capabilities/react-surface.tsx +7 -0
  116. package/src/components/MarkdownContainer.tsx +16 -3
  117. package/src/components/MarkdownEditor/MarkdownEditor.tsx +8 -29
  118. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -1
  119. package/src/components/Suggestions.stories.tsx +40 -15
  120. package/src/components/Toolbar.stories.tsx +2 -2
  121. package/src/extensions.tsx +40 -11
  122. package/src/types/schema.ts +7 -13
  123. package/src/util.tsx +2 -2
  124. package/dist/lib/browser/MarkdownContainer-KKWICAKV.mjs.map +0 -7
  125. package/dist/lib/browser/MarkdownPreview-FVSYVJGN.mjs +0 -81
  126. package/dist/lib/browser/artifact-definition-DAF3YCVL.mjs.map +0 -7
  127. package/dist/lib/browser/chunk-JJY5LKZS.mjs +0 -20
  128. package/dist/lib/browser/chunk-JJY5LKZS.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-S42YXFZ7.mjs.map +0 -7
  130. package/dist/lib/browser/chunk-XP2ZPCLI.mjs.map +0 -7
  131. package/dist/lib/browser/intent-resolver-PVKVTAFF.mjs +0 -81
  132. package/dist/lib/browser/intent-resolver-PVKVTAFF.mjs.map +0 -7
  133. package/dist/lib/browser/react-surface-EMQV3GVI.mjs.map +0 -7
  134. package/dist/lib/browser/thread-KW43PJ53.mjs +0 -37
  135. package/dist/lib/browser/thread-KW43PJ53.mjs.map +0 -7
  136. package/dist/lib/node/MarkdownContainer-LBI6ZESS.cjs.map +0 -7
  137. package/dist/lib/node/MarkdownPreview-O3BR4PZW.cjs +0 -104
  138. package/dist/lib/node/artifact-definition-UIZSL2AL.cjs.map +0 -7
  139. package/dist/lib/node/chunk-AJHB57YQ.cjs.map +0 -7
  140. package/dist/lib/node/chunk-BWRBWEKN.cjs.map +0 -7
  141. package/dist/lib/node/chunk-EO5H4OZJ.cjs.map +0 -7
  142. package/dist/lib/node/intent-resolver-ND7PSRJX.cjs +0 -94
  143. package/dist/lib/node/intent-resolver-ND7PSRJX.cjs.map +0 -7
  144. package/dist/lib/node/react-surface-REHX3ABQ.cjs.map +0 -7
  145. package/dist/lib/node/thread-NWBGBGOR.cjs.map +0 -7
  146. package/dist/lib/node-esm/MarkdownContainer-62XZY5EP.mjs.map +0 -7
  147. package/dist/lib/node-esm/MarkdownPreview-KYWRMBRM.mjs +0 -82
  148. package/dist/lib/node-esm/artifact-definition-ER3446S7.mjs.map +0 -7
  149. package/dist/lib/node-esm/chunk-66XM3JMR.mjs.map +0 -7
  150. package/dist/lib/node-esm/chunk-PDD5B7EO.mjs.map +0 -7
  151. package/dist/lib/node-esm/chunk-T5Z5BIOF.mjs.map +0 -7
  152. package/dist/lib/node-esm/intent-resolver-5BF5PLSN.mjs +0 -82
  153. package/dist/lib/node-esm/intent-resolver-5BF5PLSN.mjs.map +0 -7
  154. package/dist/lib/node-esm/react-surface-FA7JYF2A.mjs.map +0 -7
  155. package/dist/lib/node-esm/thread-D2E6W44K.mjs +0 -38
  156. package/dist/lib/node-esm/thread-D2E6W44K.mjs.map +0 -7
  157. package/dist/types/src/capabilities/thread.d.ts +0 -6
  158. package/dist/types/src/capabilities/thread.d.ts.map +0 -1
  159. package/src/capabilities/thread.ts +0 -35
  160. /package/dist/lib/browser/{app-graph-serializer-MPJQUYTQ.mjs.map → app-graph-serializer-V6RLEHVY.mjs.map} +0 -0
  161. /package/dist/lib/browser/{chunk-TUCSFCS5.mjs.map → chunk-C5RABVIX.mjs.map} +0 -0
  162. /package/dist/lib/browser/{settings-GPB6WOIU.mjs.map → settings-W5CK4PXP.mjs.map} +0 -0
  163. /package/dist/lib/browser/{state-XTP5IP3W.mjs.map → state-KI6PJ6DT.mjs.map} +0 -0
  164. /package/dist/lib/node/{app-graph-serializer-Z7UJYSSL.cjs.map → app-graph-serializer-CLALIYN3.cjs.map} +0 -0
  165. /package/dist/lib/node/{chunk-4525YF72.cjs.map → chunk-ZDTL47I7.cjs.map} +0 -0
  166. /package/dist/lib/node/{settings-SF6JDJG6.cjs.map → settings-IRKU3WPM.cjs.map} +0 -0
  167. /package/dist/lib/node/{state-K4IPZTRO.cjs.map → state-KKDRAG7X.cjs.map} +0 -0
  168. /package/dist/lib/node-esm/{app-graph-serializer-DDMFMNYI.mjs.map → app-graph-serializer-C3RNTQGM.mjs.map} +0 -0
  169. /package/dist/lib/node-esm/{chunk-CXTVDT5U.mjs.map → chunk-TCFJNUAE.mjs.map} +0 -0
  170. /package/dist/lib/node-esm/{settings-2DT2C4RA.mjs.map → settings-MK7D7LHQ.mjs.map} +0 -0
  171. /package/dist/lib/node-esm/{state-7VFYPF6Z.mjs.map → state-LLGVRYKL.mjs.map} +0 -0
@@ -1,4 +1,5 @@
1
1
  import { Schema } from 'effect';
2
+ import { Type } from '@dxos/echo';
2
3
  import { type Extension, EditorViewMode } from '@dxos/react-ui-editor';
3
4
  import { DocumentType } from './schema';
4
5
  export declare namespace MarkdownAction {
@@ -6,12 +7,13 @@ export declare namespace MarkdownAction {
6
7
  readonly _tag: Schema.tag<"dxos.org/plugin/markdown/action">;
7
8
  } & {
8
9
  input: Schema.Struct<{
9
- spaceId: Schema.Schema<import("@dxos/keys").SpaceId, string, never> & {
10
+ spaceId: Schema.Schema<Type.SpaceId, string, never> & {
10
11
  byteLength: number;
11
- encode: (value: Uint8Array) => import("@dxos/keys").SpaceId;
12
- decode: (value: import("@dxos/keys").SpaceId) => Uint8Array;
13
- isValid: (value: string) => value is import("@dxos/keys").SpaceId;
14
- random: () => import("@dxos/keys").SpaceId;
12
+ encode: (value: Uint8Array) => Type.SpaceId;
13
+ decode: (value: Type.SpaceId) => Uint8Array;
14
+ isValid: (value: string) => value is Type.SpaceId;
15
+ make: (value: string) => Type.SpaceId;
16
+ random: () => Type.SpaceId;
15
17
  };
16
18
  name: Schema.optional<typeof Schema.String>;
17
19
  content: Schema.optional<typeof Schema.String>;
@@ -24,110 +26,6 @@ export declare namespace MarkdownAction {
24
26
  readonly id: string;
25
27
  content: string;
26
28
  }>;
27
- threads: Schema.mutable<Schema.Array$<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").TypedObjectFields<{
28
- name: Schema.optional<typeof Schema.String>;
29
- anchor: Schema.optional<typeof Schema.String>;
30
- status: Schema.optional<Schema.Union<[Schema.Literal<["staged"]>, Schema.Literal<["active"]>, Schema.Literal<["resolved"]>]>>;
31
- messages: Schema.mutable<Schema.Array$<import("@dxos/echo-schema").Ref$<{
32
- readonly id: string;
33
- created: string;
34
- sender: {
35
- name?: string | undefined;
36
- contact?: import("@dxos/echo-schema").Ref<{
37
- readonly id: string;
38
- fields?: {
39
- readonly value: string;
40
- readonly label: string;
41
- readonly category?: string | undefined;
42
- }[] | undefined;
43
- organization?: import("@dxos/echo-schema").Ref<{
44
- readonly id: string;
45
- description?: string | undefined;
46
- name?: string | undefined;
47
- status?: "prospect" | "qualified" | "active" | "commit" | "reject" | undefined;
48
- image?: string | undefined;
49
- website?: string | undefined;
50
- }> | undefined;
51
- image?: string | undefined;
52
- fullName?: string | undefined;
53
- preferredName?: string | undefined;
54
- nickname?: string | undefined;
55
- jobTitle?: string | undefined;
56
- department?: string | undefined;
57
- notes?: string | undefined;
58
- emails?: {
59
- readonly value: string;
60
- readonly label?: string | undefined;
61
- }[] | undefined;
62
- identities?: {
63
- readonly value: string;
64
- readonly label?: string | undefined;
65
- }[] | undefined;
66
- phoneNumbers?: {
67
- readonly value: string;
68
- readonly label?: string | undefined;
69
- }[] | undefined;
70
- addresses?: {
71
- readonly value: {
72
- readonly street?: string | undefined;
73
- readonly extended?: string | undefined;
74
- readonly locality?: string | undefined;
75
- readonly region?: string | undefined;
76
- readonly postalCode?: string | undefined;
77
- readonly postOfficeBoxNumber?: string | undefined;
78
- readonly country?: string | undefined;
79
- };
80
- readonly label?: string | undefined;
81
- }[] | undefined;
82
- urls?: {
83
- readonly value: string;
84
- readonly label?: string | undefined;
85
- }[] | undefined;
86
- birthday?: string | undefined;
87
- }> | undefined;
88
- identityDid?: string | undefined;
89
- identityKey?: string | undefined;
90
- email?: string | undefined;
91
- role?: "user" | "assistant" | undefined;
92
- };
93
- blocks: ({
94
- pending?: boolean | undefined;
95
- type: "text";
96
- disposition?: string | undefined;
97
- text: string;
98
- } | {
99
- pending?: boolean | undefined;
100
- type: "json";
101
- disposition?: string | undefined;
102
- data: string;
103
- } | {
104
- pending?: boolean | undefined;
105
- id?: string | undefined;
106
- type: "image";
107
- source?: {
108
- type: "base64";
109
- data: string;
110
- mediaType: string;
111
- } | {
112
- type: "http";
113
- url: string;
114
- } | undefined;
115
- } | {
116
- pending?: boolean | undefined;
117
- type: "reference";
118
- reference: import("@dxos/echo-schema").Ref<import("@dxos/echo-schema").Expando>;
119
- } | {
120
- pending?: boolean | undefined;
121
- type: "transcription";
122
- text: string;
123
- started: string;
124
- })[];
125
- properties?: {
126
- [x: string]: any;
127
- } | undefined;
128
- }>>>;
129
- }, import("@dxos/echo-schema").TypedObjectOptions>>>>;
130
- assistantChatQueue: Schema.optional<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").Expando>>;
131
29
  }>, {}>;
132
30
  }>;
133
31
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,KAAK,SAAS,EAAmB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,yBAAiB,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAYU,CAAC;mCAAyC,CAAC;;sCAEnE,CAAC;;;qDAO6B,CAAA;;4CAGI,CAAC;;+CAI5C,CAAC;wCACU,CAAC;0CACN,CAAC;yCAE6C,CAAC;2CAE5D,CAAD;;qCAG2B,CAAC;wCAEzB,CAAA;6CACc,CAAC;wCACT,CAAC;wCACL,CAAC;0CACI,CAAC;qCACH,CAAC;sCACH,CAAA;;kDACsC,CAAC;;0CAK9B,CAAC;;kDACL,CAAC;;4CAAmF,CAAC;;kDAAkF,CAAC;;yCAAgF,CAAC;;uDAAiF,CAAC;yDAA+D,CAAC;yDAA+D,CAAC;uDAA6D,CAAC;2DAAiE,CAAC;oEAA0E,CAAC;wDAA8D,CAAC;;kDAA+E,CAAC;;oCAA2E,CAAC;;kDAAkF,CAAC;;wCAA+E,CAAC;;uCAAyE,CAAC;uCAA6C,CAAC;iCAAuC,CAAC;gCAAsC,CAAC;;;mCAAqF,CAAC;;uCAAwE,CAAC;;;mCAAiF,CAAC;;uCAAwE,CAAC;;;mCAAiF,CAAC;8BAAqC,CAAC;;kCAAmE,CAAC;;;;;;;;;mCAA8O,CAAC;;;;mCAA4H,CAAC;;;;;kCAAiJ,CAAC;;;;;;;;;IAnDztE,MAAM,OAAO,MAAO,SAAQ,WAS1B;KAAG;;;;;;;;;;IAEL,MAAM,OAAO,WAAY,SAAQ,gBAM/B;KAAG;;CACN;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAGrD,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAE,KAAK,SAAS,GAAG,SAAS,CAAC;AAEtG,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG;IAEhC,kBAAkB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAIjD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;GAYlC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,KAAK,SAAS,EAAmB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,yBAAiB,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;IAC9B,MAAM,OAAO,MAAO,SAAQ,WAS1B;KAAG;;;;;;;;;;IAEL,MAAM,OAAO,WAAY,SAAQ,gBAM/B;KAAG;;CACN;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAGrD,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAE,KAAK,SAAS,GAAG,SAAS,CAAC;AAEtG,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG;IAEhC,kBAAkB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAIjD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;GAYlC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-markdown",
3
- "version": "0.8.2-main.fbd8ed0",
3
+ "version": "0.8.2-staging.4d6ad0f",
4
4
  "description": "DXOS Surface plugin for interacting with Markdown",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -33,62 +33,69 @@
33
33
  "src"
34
34
  ],
35
35
  "dependencies": {
36
- "@automerge/automerge": "3.0.0-beta.0",
36
+ "@automerge/automerge": "3.0.0-beta.4",
37
37
  "@codemirror/search": "^6.5.6",
38
38
  "@codemirror/view": "^6.34.1",
39
- "@preact/signals-core": "^1.6.0",
40
- "effect": "3.14.21",
39
+ "@preact-signals/safe-react": "^0.9.0",
40
+ "@preact/signals-core": "^1.9.0",
41
41
  "react-dropzone": "^14.2.3",
42
- "@dxos/app-framework": "0.8.2-main.fbd8ed0",
43
- "@dxos/artifact": "0.8.2-main.fbd8ed0",
44
- "@dxos/async": "0.8.2-main.fbd8ed0",
45
- "@dxos/echo-schema": "0.8.2-main.fbd8ed0",
46
- "@dxos/invariant": "0.8.2-main.fbd8ed0",
47
- "@dxos/lit-ui": "0.8.2-main.fbd8ed0",
48
- "@dxos/keys": "0.8.2-main.fbd8ed0",
49
- "@dxos/echo": "0.8.2-main.fbd8ed0",
50
- "@dxos/live-object": "0.8.2-main.fbd8ed0",
51
- "@dxos/local-storage": "0.8.2-main.fbd8ed0",
52
- "@dxos/log": "0.8.2-main.fbd8ed0",
53
- "@dxos/plugin-attention": "0.8.2-main.fbd8ed0",
54
- "@dxos/plugin-deck": "0.8.2-main.fbd8ed0",
55
- "@dxos/plugin-preview": "0.8.2-main.fbd8ed0",
56
- "@dxos/plugin-client": "0.8.2-main.fbd8ed0",
57
- "@dxos/plugin-graph": "0.8.2-main.fbd8ed0",
58
- "@dxos/plugin-theme": "0.8.2-main.fbd8ed0",
59
- "@dxos/plugin-space": "0.8.2-main.fbd8ed0",
60
- "@dxos/react-client": "0.8.2-main.fbd8ed0",
61
- "@dxos/react-hooks": "0.8.2-main.fbd8ed0",
62
- "@dxos/react-ui-attention": "0.8.2-main.fbd8ed0",
63
- "@dxos/react-ui-editor": "0.8.2-main.fbd8ed0",
64
- "@dxos/react-ui-card": "0.8.2-main.fbd8ed0",
65
- "@dxos/react-ui-form": "0.8.2-main.fbd8ed0",
66
- "@dxos/react-ui-stack": "0.8.2-main.fbd8ed0",
67
- "@dxos/schema": "0.8.2-main.fbd8ed0",
68
- "@dxos/util": "0.8.2-main.fbd8ed0"
42
+ "@dxos/ai": "0.8.2-staging.4d6ad0f",
43
+ "@dxos/app-framework": "0.8.2-staging.4d6ad0f",
44
+ "@dxos/async": "0.8.2-staging.4d6ad0f",
45
+ "@dxos/artifact": "0.8.2-staging.4d6ad0f",
46
+ "@dxos/assistant": "0.8.2-staging.4d6ad0f",
47
+ "@dxos/echo": "0.8.2-staging.4d6ad0f",
48
+ "@dxos/echo-schema": "0.8.2-staging.4d6ad0f",
49
+ "@dxos/invariant": "0.8.2-staging.4d6ad0f",
50
+ "@dxos/keys": "0.8.2-staging.4d6ad0f",
51
+ "@dxos/live-object": "0.8.2-staging.4d6ad0f",
52
+ "@dxos/lit-ui": "0.8.2-staging.4d6ad0f",
53
+ "@dxos/local-storage": "0.8.2-staging.4d6ad0f",
54
+ "@dxos/log": "0.8.2-staging.4d6ad0f",
55
+ "@dxos/plugin-deck": "0.8.2-staging.4d6ad0f",
56
+ "@dxos/plugin-graph": "0.8.2-staging.4d6ad0f",
57
+ "@dxos/plugin-preview": "0.8.2-staging.4d6ad0f",
58
+ "@dxos/plugin-attention": "0.8.2-staging.4d6ad0f",
59
+ "@dxos/plugin-client": "0.8.2-staging.4d6ad0f",
60
+ "@dxos/plugin-space": "0.8.2-staging.4d6ad0f",
61
+ "@dxos/plugin-theme": "0.8.2-staging.4d6ad0f",
62
+ "@dxos/react-hooks": "0.8.2-staging.4d6ad0f",
63
+ "@dxos/react-client": "0.8.2-staging.4d6ad0f",
64
+ "@dxos/react-ui-attention": "0.8.2-staging.4d6ad0f",
65
+ "@dxos/react-ui-card": "0.8.2-staging.4d6ad0f",
66
+ "@dxos/react-ui-editor": "0.8.2-staging.4d6ad0f",
67
+ "@dxos/react-ui-stack": "0.8.2-staging.4d6ad0f",
68
+ "@dxos/schema": "0.8.2-staging.4d6ad0f",
69
+ "@dxos/util": "0.8.2-staging.4d6ad0f",
70
+ "@dxos/react-ui-form": "0.8.2-staging.4d6ad0f"
69
71
  },
70
72
  "devDependencies": {
73
+ "@effect-rx/rx-react": "^0.34.1",
74
+ "@effect/platform": "0.80.12",
71
75
  "@phosphor-icons/react": "^2.1.5",
72
76
  "@types/react": "~18.2.0",
73
77
  "@types/react-dom": "~18.2.0",
78
+ "effect": "3.14.21",
74
79
  "react": "~18.2.0",
75
80
  "react-dom": "~18.2.0",
76
81
  "vite": "5.4.7",
77
- "@dxos/debug": "0.8.2-main.fbd8ed0",
78
- "@dxos/random": "0.8.2-main.fbd8ed0",
79
- "@dxos/plugin-storybook-layout": "0.8.2-main.fbd8ed0",
80
- "@dxos/react-ui": "0.8.2-main.fbd8ed0",
81
- "@dxos/react-ui-theme": "0.8.2-main.fbd8ed0",
82
- "@dxos/plugin-theme": "0.8.2-main.fbd8ed0",
83
- "@dxos/storybook-utils": "0.8.2-main.fbd8ed0"
82
+ "@dxos/plugin-theme": "0.8.2-staging.4d6ad0f",
83
+ "@dxos/plugin-storybook-layout": "0.8.2-staging.4d6ad0f",
84
+ "@dxos/random": "0.8.2-staging.4d6ad0f",
85
+ "@dxos/react-ui": "0.8.2-staging.4d6ad0f",
86
+ "@dxos/storybook-utils": "0.8.2-staging.4d6ad0f",
87
+ "@dxos/debug": "0.8.2-staging.4d6ad0f",
88
+ "@dxos/react-ui-theme": "0.8.2-staging.4d6ad0f"
84
89
  },
85
90
  "peerDependencies": {
91
+ "@effect-rx/rx-react": "^0.34.1",
92
+ "@effect/platform": "0.80.12",
86
93
  "@phosphor-icons/react": "^2.1.5",
87
94
  "effect": "^3.13.3",
88
95
  "react": "~18.2.0",
89
96
  "react-dom": "~18.2.0",
90
- "@dxos/react-ui": "0.8.2-main.fbd8ed0",
91
- "@dxos/react-ui-theme": "0.8.2-main.fbd8ed0"
97
+ "@dxos/react-ui": "0.8.2-staging.4d6ad0f",
98
+ "@dxos/react-ui-theme": "0.8.2-staging.4d6ad0f"
92
99
  },
93
100
  "publishConfig": {
94
101
  "access": "public"
@@ -6,19 +6,20 @@ import { Capabilities, contributes, createIntent, defineModule, definePlugin, Ev
6
6
  import { isInstanceOf, type BaseObject } from '@dxos/echo-schema';
7
7
  import { RefArray } from '@dxos/live-object';
8
8
  import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
9
- import { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';
9
+ import { SpaceCapabilities } from '@dxos/plugin-space';
10
10
  import { defineObjectForm } from '@dxos/plugin-space/types';
11
+ import { createDocAccessor, getTextInRange } from '@dxos/react-client/echo';
11
12
  import { translations as editorTranslations } from '@dxos/react-ui-editor';
12
13
  import { DataType } from '@dxos/schema';
13
14
 
14
15
  import {
16
+ AnchorSort,
15
17
  AppGraphSerializer,
16
18
  ArtifactDefinition,
17
19
  IntentResolver,
18
20
  MarkdownState,
19
21
  MarkdownSettings,
20
22
  ReactSurface,
21
- Thread,
22
23
  } from './capabilities';
23
24
  import { MarkdownEvents } from './events';
24
25
  import { meta } from './meta';
@@ -60,9 +61,17 @@ export const MarkdownPlugin = () =>
60
61
  managesAutofocus: true,
61
62
  },
62
63
  // TODO(wittjosiah): Move out of metadata.
63
- loadReferences: async (doc: DocumentType) =>
64
- await RefArray.loadAll<BaseObject>([doc.content, ...doc.threads]),
64
+ loadReferences: async (doc: DocumentType) => await RefArray.loadAll<BaseObject>([doc.content]),
65
65
  serializer,
66
+ // TODO(wittjosiah): Consider how to do generic comments without these.
67
+ comments: 'anchored',
68
+ selectionMode: 'multi-range',
69
+ getAnchorLabel: (doc: DocumentType, anchor: string): string | undefined => {
70
+ if (doc.content) {
71
+ const [start, end] = anchor.split(':');
72
+ return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);
73
+ }
74
+ },
66
75
  },
67
76
  }),
68
77
  }),
@@ -101,9 +110,10 @@ export const MarkdownPlugin = () =>
101
110
  activate: AppGraphSerializer,
102
111
  }),
103
112
  defineModule({
104
- id: `${meta.id}/module/thread`,
105
- activatesOn: ThreadEvents.SetupThread,
106
- activate: Thread,
113
+ id: `${meta.id}/module/anchor-sort`,
114
+ // TODO(wittjosiah): More relevant event?
115
+ activatesOn: Events.AppGraphReady,
116
+ activate: AnchorSort,
107
117
  }),
108
118
  defineModule({
109
119
  id: `${meta.id}/module/artifact-definition`,
@@ -0,0 +1,30 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capabilities, contributes } from '@dxos/app-framework';
6
+ import { getSchemaTypename } from '@dxos/echo-schema';
7
+ import { createDocAccessor, getRangeFromCursor, getTarget } from '@dxos/react-client/echo';
8
+
9
+ import { DocumentType } from '../types';
10
+
11
+ export default () =>
12
+ contributes(Capabilities.AnchorSort, {
13
+ key: getSchemaTypename(DocumentType)!,
14
+ sort: (anchorA, anchorB) => {
15
+ const doc = getTarget(anchorA) as DocumentType;
16
+ const accessor = doc.content.target ? createDocAccessor(doc.content.target, ['content']) : undefined;
17
+ if (doc !== getTarget(anchorB) || !accessor) {
18
+ return 0;
19
+ }
20
+
21
+ const getStartPosition = (cursor: string | undefined) => {
22
+ const range = cursor ? getRangeFromCursor(accessor, cursor) : undefined;
23
+ return range?.start ?? Number.MAX_SAFE_INTEGER;
24
+ };
25
+
26
+ const posA = getStartPosition(anchorA.anchor);
27
+ const posB = getStartPosition(anchorB.anchor);
28
+ return posA - posB;
29
+ },
30
+ });
@@ -2,16 +2,19 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import { pipe, Schema } from 'effect';
6
6
 
7
- import { Capabilities, contributes, type PromiseIntentDispatcher } from '@dxos/app-framework';
8
- import { ArtifactId, defineArtifact, defineTool, ToolResult } from '@dxos/artifact';
7
+ import { createTool, ToolResult } from '@dxos/ai';
8
+ import { Capabilities, chain, contributes, createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';
9
+ import { ArtifactId, defineArtifact } from '@dxos/artifact';
10
+ import { createArtifactElement } from '@dxos/assistant';
9
11
  import { isInstanceOf } from '@dxos/echo-schema';
10
12
  import { invariant, assertArgument } from '@dxos/invariant';
13
+ import { SpaceAction } from '@dxos/plugin-space/types';
11
14
  import { Filter, fullyQualifiedId, type Space } from '@dxos/react-client/echo';
12
15
 
13
16
  import { meta } from '../meta';
14
- import { DocumentType } from '../types';
17
+ import { DocumentType, MarkdownAction } from '../types';
15
18
 
16
19
  // TODO(burdon): Factor out.
17
20
  declare global {
@@ -32,7 +35,40 @@ export default () => {
32
35
  `,
33
36
  schema: DocumentType,
34
37
  tools: [
35
- defineTool(meta.id, {
38
+ createTool(meta.id, {
39
+ name: 'create',
40
+ description: 'Create a new markdown document',
41
+ caption: 'Creating document...',
42
+ schema: Schema.Struct({
43
+ name: Schema.optional(Schema.String).annotations({
44
+ description: 'Optional name for the document.',
45
+ }),
46
+ content: Schema.String.annotations({
47
+ description: 'The content of the document.',
48
+ }),
49
+ }),
50
+ execute: async ({ name, content }, { extensions }) => {
51
+ invariant(extensions?.space, 'No space');
52
+ invariant(extensions?.dispatch, 'No intent dispatcher');
53
+
54
+ const intent = pipe(
55
+ createIntent(MarkdownAction.Create, {
56
+ spaceId: extensions.space.id,
57
+ name,
58
+ content,
59
+ }),
60
+ chain(SpaceAction.AddObject, { target: extensions.space }),
61
+ );
62
+
63
+ const { data, error } = await extensions.dispatch(intent);
64
+ if (!data || error) {
65
+ return ToolResult.Error(error?.message ?? 'Failed to create document');
66
+ }
67
+
68
+ return ToolResult.Success(createArtifactElement(data.id));
69
+ },
70
+ }),
71
+ createTool(meta.id, {
36
72
  name: 'list',
37
73
  description: 'List all markdown documents in the current space.',
38
74
  caption: 'Listing markdown documents...',
@@ -53,7 +89,7 @@ export default () => {
53
89
  return ToolResult.Success(documentInfo);
54
90
  },
55
91
  }),
56
- defineTool(meta.id, {
92
+ createTool(meta.id, {
57
93
  name: 'inspect',
58
94
  description: 'Read the content of a markdown document.',
59
95
  caption: 'Inspecting markdown document...',
@@ -62,7 +98,7 @@ export default () => {
62
98
  }),
63
99
  execute: async ({ id }, { extensions }) => {
64
100
  invariant(extensions?.space, 'No space');
65
- const document = await extensions.space.db.query({ id: ArtifactId.toDXN(id).toString() }).first();
101
+ const document = await extensions.space.db.query(Filter.ids(ArtifactId.toDXN(id).toString())).first();
66
102
  assertArgument(isInstanceOf(DocumentType, document), 'Invalid type');
67
103
 
68
104
  const { content } = await document.content?.load();
@@ -4,12 +4,12 @@
4
4
 
5
5
  import { lazy } from '@dxos/app-framework';
6
6
 
7
+ export const AnchorSort = lazy(() => import('./anchor-sort'));
7
8
  export const AppGraphSerializer = lazy(() => import('./app-graph-serializer'));
8
9
  export const ArtifactDefinition = lazy(() => import('./artifact-definition'));
9
10
  export const IntentResolver = lazy(() => import('./intent-resolver'));
10
11
  export const ReactSurface = lazy(() => import('./react-surface'));
11
12
  export const MarkdownSettings = lazy(() => import('./settings'));
12
13
  export const MarkdownState = lazy(() => import('./state'));
13
- export const Thread = lazy(() => import('./thread'));
14
14
 
15
15
  export * from './capabilities';
@@ -3,6 +3,7 @@
3
3
  //
4
4
 
5
5
  import { next as A } from '@automerge/automerge';
6
+ import { Option, pipe, type Schema } from 'effect';
6
7
 
7
8
  import {
8
9
  Capabilities,
@@ -11,12 +12,9 @@ import {
11
12
  createResolver,
12
13
  type PluginContext,
13
14
  } from '@dxos/app-framework';
14
- import { createQueueDxn, isInstanceOf } from '@dxos/echo-schema';
15
- import { makeRef, live, refFromDXN } from '@dxos/live-object';
16
- import { log } from '@dxos/log';
17
- import { ClientCapabilities } from '@dxos/plugin-client';
18
- import { resolveRef } from '@dxos/react-client';
19
- import { createDocAccessor } from '@dxos/react-client/echo';
15
+ import { isInstanceOf } from '@dxos/echo-schema';
16
+ import { live } from '@dxos/live-object';
17
+ import { createDocAccessor, getRangeFromCursor, Ref } from '@dxos/react-client/echo';
20
18
  import { DataType } from '@dxos/schema';
21
19
 
22
20
  import { MarkdownCapabilities } from './capabilities';
@@ -26,12 +24,10 @@ export default (context: PluginContext) =>
26
24
  contributes(Capabilities.IntentResolver, [
27
25
  createResolver({
28
26
  intent: MarkdownAction.Create,
29
- resolve: ({ name, spaceId, content }) => {
27
+ resolve: ({ name, content }) => {
30
28
  const doc = live(DocumentType, {
31
29
  name,
32
- content: makeRef(live(DataType.Text, { content: content ?? '' })),
33
- assistantChatQueue: refFromDXN(createQueueDxn(spaceId)),
34
- threads: [],
30
+ content: Ref.make(live(DataType.Text, { content: content ?? '' })),
35
31
  });
36
32
 
37
33
  return { data: { object: doc } };
@@ -44,26 +40,25 @@ export default (context: PluginContext) =>
44
40
  state.viewMode[id] = viewMode;
45
41
  },
46
42
  }),
47
- // TODO(burdon): What is the error boundary for intents? Are errors reported back to caller?
48
43
  createResolver({
49
44
  intent: CollaborationActions.InsertContent,
50
- resolve: async ({ spaceId, target: targetRef, object: objectRef, label }) => {
51
- const client = context.getCapability(ClientCapabilities.Client);
52
- const space = client.spaces.get(spaceId);
53
- const target = await resolveRef(client, targetRef.dxn, space);
54
- if (target && isInstanceOf(DocumentType, target)) {
55
- const accessor = createDocAccessor(target, ['content']);
56
- // TODO(burdon): Should be a cursor that references a selected position.
57
- const index = 0;
58
- accessor.handle.change((doc) => {
59
- // TODO(burdon): Throws error:
60
- // intent-dispatcher.ts:270 Cannot read properties of undefined (reading 'annotations') (FiberFailure) TypeError: Cannot read properties of undefined (reading 'annotations')
61
- const ref = `[${label ?? 'Generated content'}]](${objectRef.dxn.toString()})\n`;
62
- A.splice(doc, accessor.path.slice(), index, 0, ref);
63
- });
64
- } else {
65
- log.warn('target is not a document', { targetRef, objectRef });
66
- }
45
+ filter: (
46
+ data,
47
+ ): data is Omit<Schema.Schema.Type<typeof CollaborationActions.InsertContent.fields.input>, 'target'> & {
48
+ target: DocumentType;
49
+ } => isInstanceOf(DocumentType, data.target),
50
+ resolve: async ({ target, object: objectRef, at, label }) => {
51
+ const text = await target.content.load();
52
+ const accessor = createDocAccessor(text, ['content']);
53
+ const { start, end } = pipe(
54
+ Option.fromNullable(at),
55
+ Option.flatMap((at) => Option.fromNullable(getRangeFromCursor(accessor, at))),
56
+ Option.getOrElse(() => ({ start: text.content.length - 1, end: text.content.length - 1 })),
57
+ );
58
+ accessor.handle.change((doc) => {
59
+ const ref = `[${label ?? 'Generated content'}]](${objectRef.dxn.toString()})\n`;
60
+ A.splice(doc, accessor.path.slice(), start, end - start, ref);
61
+ });
67
62
  },
68
63
  }),
69
64
  ]);
@@ -7,6 +7,7 @@ import React from 'react';
7
7
  import { createSurface, contributes, Capabilities, useCapability } from '@dxos/app-framework';
8
8
  import { isInstanceOf } from '@dxos/echo-schema';
9
9
  import { SettingsStore } from '@dxos/local-storage';
10
+ import { AttentionCapabilities } from '@dxos/plugin-attention';
10
11
  import { fullyQualifiedId } from '@dxos/react-client/echo';
11
12
  import { DataType } from '@dxos/schema';
12
13
 
@@ -23,6 +24,7 @@ export default () =>
23
24
  filter: (data): data is { subject: DocumentType; variant: undefined } =>
24
25
  isInstanceOf(DocumentType, data.subject) && !data.variant,
25
26
  component: ({ data, role }) => {
27
+ const selectionManager = useCapability(AttentionCapabilities.Selection);
26
28
  const settingsStore = useCapability(Capabilities.SettingsStore);
27
29
  const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;
28
30
  const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);
@@ -34,6 +36,7 @@ export default () =>
34
36
  object={data.subject}
35
37
  role={role}
36
38
  settings={settings}
39
+ selectionManager={selectionManager}
37
40
  extensionProviders={state.extensionProviders}
38
41
  viewMode={viewMode}
39
42
  editorStateStore={editorState}
@@ -48,6 +51,7 @@ export default () =>
48
51
  filter: (data): data is { id: string; subject: DataType.Text } =>
49
52
  typeof data.id === 'string' && isInstanceOf(DataType.Text, data.subject),
50
53
  component: ({ data, role }) => {
54
+ const selectionManager = useCapability(AttentionCapabilities.Selection);
51
55
  const settingsStore = useCapability(Capabilities.SettingsStore);
52
56
  const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;
53
57
  const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);
@@ -58,6 +62,7 @@ export default () =>
58
62
  object={data.subject}
59
63
  role={role}
60
64
  settings={settings}
65
+ selectionManager={selectionManager}
61
66
  extensionProviders={state.extensionProviders}
62
67
  viewMode={getViewMode(data.id)}
63
68
  editorStateStore={editorState}
@@ -71,6 +76,7 @@ export default () =>
71
76
  role: ['article', 'section'],
72
77
  filter: (data): data is { subject: { id: string; text: string } } => isEditorModel(data.subject),
73
78
  component: ({ data, role }) => {
79
+ const selectionManager = useCapability(AttentionCapabilities.Selection);
74
80
  const settingsStore = useCapability(Capabilities.SettingsStore);
75
81
  const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;
76
82
  const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);
@@ -81,6 +87,7 @@ export default () =>
81
87
  object={data.subject}
82
88
  role={role}
83
89
  settings={settings}
90
+ selectionManager={selectionManager}
84
91
  extensionProviders={state.extensionProviders}
85
92
  viewMode={getViewMode(data.subject.id)}
86
93
  editorStateStore={editorState}