@dxos/plugin-markdown 0.8.4-main.2e9d522 → 0.8.4-main.5acf9ea

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 (174) hide show
  1. package/dist/lib/browser/{MarkdownContainer-F3WEEIBX.mjs → MarkdownContainer-NNBPE6A5.mjs} +12 -11
  2. package/dist/lib/browser/MarkdownContainer-NNBPE6A5.mjs.map +7 -0
  3. package/dist/lib/browser/{MarkdownPreview-S3C7CGAV.mjs → MarkdownPreview-7VG3K24R.mjs} +9 -9
  4. package/dist/lib/browser/MarkdownPreview-7VG3K24R.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-UKJJ7ZNP.mjs → anchor-sort-Z7JQA7RL.mjs} +5 -5
  6. package/dist/lib/browser/anchor-sort-Z7JQA7RL.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-ICLAF662.mjs → app-graph-serializer-ZT5OVF5G.mjs} +9 -9
  8. package/dist/lib/browser/app-graph-serializer-ZT5OVF5G.mjs.map +7 -0
  9. package/dist/lib/browser/{artifact-definition-R2YYWOPN.mjs → artifact-definition-7VNP5PCP.mjs} +11 -11
  10. package/dist/lib/browser/artifact-definition-7VNP5PCP.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-CD4E4K7J.mjs +16 -0
  12. package/dist/lib/browser/chunk-CD4E4K7J.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-LHDCHDBW.mjs → chunk-K7ZFMSC4.mjs} +5 -5
  14. package/dist/lib/browser/chunk-K7ZFMSC4.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-VCUKIILA.mjs +20 -0
  16. package/dist/lib/browser/{chunk-LFML7LC6.mjs → chunk-VMX5SDGW.mjs} +8 -9
  17. package/dist/lib/browser/chunk-VMX5SDGW.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-YHMGUSO7.mjs +80 -0
  19. package/dist/lib/browser/chunk-YHMGUSO7.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-ZGY3DYC2.mjs +30 -0
  21. package/dist/lib/browser/chunk-ZGY3DYC2.mjs.map +7 -0
  22. package/dist/lib/browser/index.mjs +17 -15
  23. package/dist/lib/browser/index.mjs.map +3 -3
  24. package/dist/lib/browser/{intent-resolver-3MXYO3MW.mjs → intent-resolver-EBEF7WEI.mjs} +14 -18
  25. package/dist/lib/browser/intent-resolver-EBEF7WEI.mjs.map +7 -0
  26. package/dist/lib/browser/meta.json +1 -1
  27. package/dist/lib/browser/{react-surface-C3Z423TV.mjs → react-surface-ZPMZT4VU.mjs} +22 -20
  28. package/dist/lib/browser/react-surface-ZPMZT4VU.mjs.map +7 -0
  29. package/dist/lib/browser/{settings-KN75ZQY6.mjs → settings-MBDK4TWE.mjs} +5 -5
  30. package/dist/lib/browser/settings-MBDK4TWE.mjs.map +7 -0
  31. package/dist/lib/browser/{state-LZWTAS65.mjs → state-ZA6PZPUI.mjs} +7 -7
  32. package/dist/lib/browser/state-ZA6PZPUI.mjs.map +7 -0
  33. package/dist/lib/browser/types/index.mjs +6 -14
  34. package/dist/lib/node-esm/{MarkdownContainer-VOUHL6IU.mjs → MarkdownContainer-Q6UO7DKT.mjs} +12 -11
  35. package/dist/lib/node-esm/MarkdownContainer-Q6UO7DKT.mjs.map +7 -0
  36. package/dist/lib/node-esm/{MarkdownPreview-77UFEWXT.mjs → MarkdownPreview-UVWR2YK3.mjs} +9 -9
  37. package/dist/lib/node-esm/MarkdownPreview-UVWR2YK3.mjs.map +7 -0
  38. package/dist/lib/node-esm/{anchor-sort-IPIS5D5B.mjs → anchor-sort-R6AAKYNG.mjs} +5 -5
  39. package/dist/lib/node-esm/anchor-sort-R6AAKYNG.mjs.map +7 -0
  40. package/dist/lib/node-esm/{app-graph-serializer-FLBXQKKR.mjs → app-graph-serializer-X4M5QEI6.mjs} +9 -9
  41. package/dist/lib/node-esm/app-graph-serializer-X4M5QEI6.mjs.map +7 -0
  42. package/dist/lib/node-esm/{artifact-definition-MLTAY4LK.mjs → artifact-definition-IRIILD7S.mjs} +11 -11
  43. package/dist/lib/node-esm/artifact-definition-IRIILD7S.mjs.map +7 -0
  44. package/dist/lib/node-esm/chunk-6GCOJS4Y.mjs +81 -0
  45. package/dist/lib/node-esm/chunk-6GCOJS4Y.mjs.map +7 -0
  46. package/dist/lib/node-esm/{chunk-7X6TPTJK.mjs → chunk-A7LLVI34.mjs} +8 -8
  47. package/dist/lib/node-esm/{chunk-ACFGXH2K.mjs → chunk-B3J2M4YL.mjs} +5 -5
  48. package/dist/lib/node-esm/chunk-B3J2M4YL.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-CWTFQSN7.mjs → chunk-LZK3TLKM.mjs} +8 -9
  50. package/dist/lib/node-esm/chunk-LZK3TLKM.mjs.map +7 -0
  51. package/dist/lib/node-esm/chunk-RCIXKCVG.mjs +31 -0
  52. package/dist/lib/node-esm/chunk-RCIXKCVG.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-VIR2ABYE.mjs → chunk-YGNVDYMB.mjs} +5 -5
  54. package/dist/lib/node-esm/chunk-YGNVDYMB.mjs.map +7 -0
  55. package/dist/lib/node-esm/index.mjs +17 -15
  56. package/dist/lib/node-esm/index.mjs.map +3 -3
  57. package/dist/lib/node-esm/{intent-resolver-BZYWV53A.mjs → intent-resolver-L2UGZ72W.mjs} +14 -18
  58. package/dist/lib/node-esm/intent-resolver-L2UGZ72W.mjs.map +7 -0
  59. package/dist/lib/node-esm/meta.json +1 -1
  60. package/dist/lib/node-esm/{react-surface-TTTBYNI2.mjs → react-surface-3JJSTTQP.mjs} +22 -20
  61. package/dist/lib/node-esm/react-surface-3JJSTTQP.mjs.map +7 -0
  62. package/dist/lib/node-esm/{settings-KVP7TVX7.mjs → settings-LBDWWPZJ.mjs} +5 -5
  63. package/dist/lib/node-esm/settings-LBDWWPZJ.mjs.map +7 -0
  64. package/dist/lib/node-esm/{state-NW3W4JCQ.mjs → state-UIHO2SFZ.mjs} +7 -7
  65. package/dist/lib/node-esm/state-UIHO2SFZ.mjs.map +7 -0
  66. package/dist/lib/node-esm/types/index.mjs +6 -14
  67. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  70. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  72. package/dist/types/src/components/MarkdownContainer.d.ts +5 -5
  73. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  74. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  75. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +1 -1
  76. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  77. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +2 -2
  78. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +1 -1
  79. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +5 -37
  80. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -1
  81. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +2 -2
  82. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  83. package/dist/types/src/components/Suggestions.stories.d.ts +2 -2
  84. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  86. package/dist/types/src/components/index.d.ts +1 -1
  87. package/dist/types/src/components/index.d.ts.map +1 -1
  88. package/dist/types/src/events.d.ts.map +1 -1
  89. package/dist/types/src/extensions.d.ts +4 -4
  90. package/dist/types/src/extensions.d.ts.map +1 -1
  91. package/dist/types/src/index.d.ts.map +1 -1
  92. package/dist/types/src/meta.d.ts +1 -1
  93. package/dist/types/src/meta.d.ts.map +1 -1
  94. package/dist/types/src/translations.d.ts +2 -2
  95. package/dist/types/src/translations.d.ts.map +1 -1
  96. package/dist/types/src/types/Markdown.d.ts +43 -0
  97. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  98. package/dist/types/src/types/MarkdownAction.d.ts +42 -0
  99. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
  100. package/dist/types/src/types/index.d.ts +2 -1
  101. package/dist/types/src/types/index.d.ts.map +1 -1
  102. package/dist/types/src/types/types.d.ts +3 -59
  103. package/dist/types/src/types/types.d.ts.map +1 -1
  104. package/dist/types/src/util.d.ts +12 -3
  105. package/dist/types/src/util.d.ts.map +1 -1
  106. package/dist/types/tsconfig.tsbuildinfo +1 -1
  107. package/package.json +42 -40
  108. package/src/MarkdownPlugin.tsx +6 -6
  109. package/src/capabilities/anchor-sort.ts +3 -3
  110. package/src/capabilities/app-graph-serializer.ts +5 -3
  111. package/src/capabilities/artifact-definition.ts +6 -6
  112. package/src/capabilities/capabilities.ts +4 -3
  113. package/src/capabilities/intent-resolver.ts +5 -11
  114. package/src/capabilities/react-surface.tsx +17 -16
  115. package/src/capabilities/settings.ts +3 -3
  116. package/src/capabilities/state.ts +6 -7
  117. package/src/components/MarkdownContainer.stories.tsx +5 -8
  118. package/src/components/MarkdownContainer.tsx +6 -6
  119. package/src/components/MarkdownEditor/MarkdownEditor.tsx +3 -3
  120. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +19 -23
  121. package/src/components/MarkdownPreview/MarkdownPreview.tsx +8 -8
  122. package/src/components/MarkdownSettings/MarkdownSettings.tsx +4 -4
  123. package/src/components/Suggestions.stories.tsx +11 -12
  124. package/src/components/Toolbar.stories.tsx +1 -2
  125. package/src/events.ts +2 -2
  126. package/src/extensions.tsx +4 -4
  127. package/src/hooks/useSelectCurrentThread.tsx +2 -2
  128. package/src/index.ts +1 -0
  129. package/src/meta.ts +10 -8
  130. package/src/translations.ts +2 -2
  131. package/src/types/Markdown.ts +55 -0
  132. package/src/types/MarkdownAction.ts +30 -0
  133. package/src/types/index.ts +2 -1
  134. package/src/types/types.ts +5 -50
  135. package/src/util.tsx +20 -6
  136. package/dist/lib/browser/MarkdownContainer-F3WEEIBX.mjs.map +0 -7
  137. package/dist/lib/browser/MarkdownPreview-S3C7CGAV.mjs.map +0 -7
  138. package/dist/lib/browser/anchor-sort-UKJJ7ZNP.mjs.map +0 -7
  139. package/dist/lib/browser/app-graph-serializer-ICLAF662.mjs.map +0 -7
  140. package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs.map +0 -7
  141. package/dist/lib/browser/chunk-777RIED6.mjs +0 -16
  142. package/dist/lib/browser/chunk-777RIED6.mjs.map +0 -7
  143. package/dist/lib/browser/chunk-EPTSAJZM.mjs +0 -22
  144. package/dist/lib/browser/chunk-EPTSAJZM.mjs.map +0 -7
  145. package/dist/lib/browser/chunk-LFML7LC6.mjs.map +0 -7
  146. package/dist/lib/browser/chunk-LHDCHDBW.mjs.map +0 -7
  147. package/dist/lib/browser/chunk-PHTD5DTR.mjs +0 -20
  148. package/dist/lib/browser/chunk-UANWRJZU.mjs +0 -79
  149. package/dist/lib/browser/chunk-UANWRJZU.mjs.map +0 -7
  150. package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs.map +0 -7
  151. package/dist/lib/browser/react-surface-C3Z423TV.mjs.map +0 -7
  152. package/dist/lib/browser/settings-KN75ZQY6.mjs.map +0 -7
  153. package/dist/lib/browser/state-LZWTAS65.mjs.map +0 -7
  154. package/dist/lib/node-esm/MarkdownContainer-VOUHL6IU.mjs.map +0 -7
  155. package/dist/lib/node-esm/MarkdownPreview-77UFEWXT.mjs.map +0 -7
  156. package/dist/lib/node-esm/anchor-sort-IPIS5D5B.mjs.map +0 -7
  157. package/dist/lib/node-esm/app-graph-serializer-FLBXQKKR.mjs.map +0 -7
  158. package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs.map +0 -7
  159. package/dist/lib/node-esm/chunk-ACFGXH2K.mjs.map +0 -7
  160. package/dist/lib/node-esm/chunk-CWTFQSN7.mjs.map +0 -7
  161. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs +0 -24
  162. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs.map +0 -7
  163. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs +0 -80
  164. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs.map +0 -7
  165. package/dist/lib/node-esm/chunk-VIR2ABYE.mjs.map +0 -7
  166. package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs.map +0 -7
  167. package/dist/lib/node-esm/react-surface-TTTBYNI2.mjs.map +0 -7
  168. package/dist/lib/node-esm/settings-KVP7TVX7.mjs.map +0 -7
  169. package/dist/lib/node-esm/state-NW3W4JCQ.mjs.map +0 -7
  170. package/dist/types/src/types/schema.d.ts +0 -35
  171. package/dist/types/src/types/schema.d.ts.map +0 -1
  172. package/src/types/schema.ts +0 -39
  173. /package/dist/lib/browser/{chunk-PHTD5DTR.mjs.map → chunk-VCUKIILA.mjs.map} +0 -0
  174. /package/dist/lib/node-esm/{chunk-7X6TPTJK.mjs.map → chunk-A7LLVI34.mjs.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-markdown",
3
- "version": "0.8.4-main.2e9d522",
3
+ "version": "0.8.4-main.5acf9ea",
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",
@@ -12,12 +12,14 @@
12
12
  ".": {
13
13
  "types": "./dist/types/src/index.d.ts",
14
14
  "browser": "./dist/lib/browser/index.mjs",
15
- "node": "./dist/lib/node-esm/index.mjs"
15
+ "node": "./dist/lib/node-esm/index.mjs",
16
+ "source": "./src/index.ts"
16
17
  },
17
18
  "./types": {
18
19
  "types": "./dist/types/src/types/index.d.ts",
19
20
  "browser": "./dist/lib/browser/types/index.mjs",
20
- "node": "./dist/lib/node-esm/types/index.mjs"
21
+ "node": "./dist/lib/node-esm/types/index.mjs",
22
+ "source": "./src/types/index.ts"
21
23
  }
22
24
  },
23
25
  "types": "dist/types/src/index.d.ts",
@@ -39,34 +41,34 @@
39
41
  "@preact-signals/safe-react": "^0.9.0",
40
42
  "@preact/signals-core": "^1.9.0",
41
43
  "react-dropzone": "^14.2.3",
42
- "@dxos/ai": "0.8.4-main.2e9d522",
43
- "@dxos/app-framework": "0.8.4-main.2e9d522",
44
- "@dxos/assistant": "0.8.4-main.2e9d522",
45
- "@dxos/async": "0.8.4-main.2e9d522",
46
- "@dxos/blueprints": "0.8.4-main.2e9d522",
47
- "@dxos/echo": "0.8.4-main.2e9d522",
48
- "@dxos/invariant": "0.8.4-main.2e9d522",
49
- "@dxos/echo-schema": "0.8.4-main.2e9d522",
50
- "@dxos/lit-ui": "0.8.4-main.2e9d522",
51
- "@dxos/keys": "0.8.4-main.2e9d522",
52
- "@dxos/live-object": "0.8.4-main.2e9d522",
53
- "@dxos/local-storage": "0.8.4-main.2e9d522",
54
- "@dxos/log": "0.8.4-main.2e9d522",
55
- "@dxos/plugin-client": "0.8.4-main.2e9d522",
56
- "@dxos/plugin-deck": "0.8.4-main.2e9d522",
57
- "@dxos/plugin-graph": "0.8.4-main.2e9d522",
58
- "@dxos/plugin-attention": "0.8.4-main.2e9d522",
59
- "@dxos/plugin-preview": "0.8.4-main.2e9d522",
60
- "@dxos/plugin-space": "0.8.4-main.2e9d522",
61
- "@dxos/plugin-theme": "0.8.4-main.2e9d522",
62
- "@dxos/react-client": "0.8.4-main.2e9d522",
63
- "@dxos/react-hooks": "0.8.4-main.2e9d522",
64
- "@dxos/react-ui-attention": "0.8.4-main.2e9d522",
65
- "@dxos/react-ui-editor": "0.8.4-main.2e9d522",
66
- "@dxos/react-ui-stack": "0.8.4-main.2e9d522",
67
- "@dxos/react-ui-form": "0.8.4-main.2e9d522",
68
- "@dxos/schema": "0.8.4-main.2e9d522",
69
- "@dxos/util": "0.8.4-main.2e9d522"
44
+ "@dxos/app-framework": "0.8.4-main.5acf9ea",
45
+ "@dxos/ai": "0.8.4-main.5acf9ea",
46
+ "@dxos/assistant": "0.8.4-main.5acf9ea",
47
+ "@dxos/async": "0.8.4-main.5acf9ea",
48
+ "@dxos/blueprints": "0.8.4-main.5acf9ea",
49
+ "@dxos/echo": "0.8.4-main.5acf9ea",
50
+ "@dxos/echo-schema": "0.8.4-main.5acf9ea",
51
+ "@dxos/invariant": "0.8.4-main.5acf9ea",
52
+ "@dxos/keys": "0.8.4-main.5acf9ea",
53
+ "@dxos/lit-ui": "0.8.4-main.5acf9ea",
54
+ "@dxos/live-object": "0.8.4-main.5acf9ea",
55
+ "@dxos/local-storage": "0.8.4-main.5acf9ea",
56
+ "@dxos/log": "0.8.4-main.5acf9ea",
57
+ "@dxos/plugin-client": "0.8.4-main.5acf9ea",
58
+ "@dxos/plugin-attention": "0.8.4-main.5acf9ea",
59
+ "@dxos/plugin-deck": "0.8.4-main.5acf9ea",
60
+ "@dxos/plugin-graph": "0.8.4-main.5acf9ea",
61
+ "@dxos/plugin-preview": "0.8.4-main.5acf9ea",
62
+ "@dxos/plugin-theme": "0.8.4-main.5acf9ea",
63
+ "@dxos/plugin-space": "0.8.4-main.5acf9ea",
64
+ "@dxos/react-client": "0.8.4-main.5acf9ea",
65
+ "@dxos/react-hooks": "0.8.4-main.5acf9ea",
66
+ "@dxos/react-ui-attention": "0.8.4-main.5acf9ea",
67
+ "@dxos/react-ui-editor": "0.8.4-main.5acf9ea",
68
+ "@dxos/react-ui-form": "0.8.4-main.5acf9ea",
69
+ "@dxos/react-ui-stack": "0.8.4-main.5acf9ea",
70
+ "@dxos/schema": "0.8.4-main.5acf9ea",
71
+ "@dxos/util": "0.8.4-main.5acf9ea"
70
72
  },
71
73
  "devDependencies": {
72
74
  "@effect-rx/rx-react": "0.38.0",
@@ -77,13 +79,13 @@
77
79
  "react": "~18.2.0",
78
80
  "react-dom": "~18.2.0",
79
81
  "vite": "5.4.7",
80
- "@dxos/debug": "0.8.4-main.2e9d522",
81
- "@dxos/plugin-storybook-layout": "0.8.4-main.2e9d522",
82
- "@dxos/plugin-theme": "0.8.4-main.2e9d522",
83
- "@dxos/random": "0.8.4-main.2e9d522",
84
- "@dxos/react-ui": "0.8.4-main.2e9d522",
85
- "@dxos/storybook-utils": "0.8.4-main.2e9d522",
86
- "@dxos/react-ui-theme": "0.8.4-main.2e9d522"
82
+ "@dxos/debug": "0.8.4-main.5acf9ea",
83
+ "@dxos/plugin-theme": "0.8.4-main.5acf9ea",
84
+ "@dxos/plugin-storybook-layout": "0.8.4-main.5acf9ea",
85
+ "@dxos/random": "0.8.4-main.5acf9ea",
86
+ "@dxos/react-ui": "0.8.4-main.5acf9ea",
87
+ "@dxos/react-ui-theme": "0.8.4-main.5acf9ea",
88
+ "@dxos/storybook-utils": "0.8.4-main.5acf9ea"
87
89
  },
88
90
  "peerDependencies": {
89
91
  "@effect-rx/rx-react": "^0.34.1",
@@ -91,8 +93,8 @@
91
93
  "effect": "^3.13.3",
92
94
  "react": "~18.2.0",
93
95
  "react-dom": "~18.2.0",
94
- "@dxos/react-ui": "0.8.4-main.2e9d522",
95
- "@dxos/react-ui-theme": "0.8.4-main.2e9d522"
96
+ "@dxos/react-ui": "0.8.4-main.5acf9ea",
97
+ "@dxos/react-ui-theme": "0.8.4-main.5acf9ea"
96
98
  },
97
99
  "publishConfig": {
98
100
  "access": "public"
@@ -23,7 +23,7 @@ import {
23
23
  import { MarkdownEvents } from './events';
24
24
  import { meta } from './meta';
25
25
  import { translations } from './translations';
26
- import { DocumentType, MarkdownAction } from './types';
26
+ import { Markdown, MarkdownAction } from './types';
27
27
  import { serializer } from './util';
28
28
 
29
29
  export const MarkdownPlugin = () =>
@@ -51,20 +51,20 @@ export const MarkdownPlugin = () =>
51
51
  activatesOn: Events.SetupMetadata,
52
52
  activate: () =>
53
53
  contributes(Capabilities.Metadata, {
54
- id: DocumentType.typename,
54
+ id: Markdown.Document.typename,
55
55
  metadata: {
56
- label: (object: DocumentType) => object.name || object.fallbackName,
56
+ label: (object: Markdown.Document) => object.name || object.fallbackName,
57
57
  icon: 'ph--text-aa--regular',
58
58
  graphProps: {
59
59
  managesAutofocus: true,
60
60
  },
61
61
  // TODO(wittjosiah): Move out of metadata.
62
- loadReferences: async (doc: DocumentType) => await Ref.Array.loadAll<Obj.Any>([doc.content]),
62
+ loadReferences: async (doc: Markdown.Document) => await Ref.Array.loadAll<Obj.Any>([doc.content]),
63
63
  serializer,
64
64
  // TODO(wittjosiah): Consider how to do generic comments without these.
65
65
  comments: 'anchored',
66
66
  selectionMode: 'multi-range',
67
- getAnchorLabel: (doc: DocumentType, anchor: string): string | undefined => {
67
+ getAnchorLabel: (doc: Markdown.Document, anchor: string): string | undefined => {
68
68
  if (doc.content) {
69
69
  const [start, end] = anchor.split(':');
70
70
  return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);
@@ -80,7 +80,7 @@ export const MarkdownPlugin = () =>
80
80
  contributes(
81
81
  SpaceCapabilities.ObjectForm,
82
82
  defineObjectForm({
83
- objectSchema: DocumentType,
83
+ objectSchema: Markdown.Document,
84
84
  getIntent: (_, { space }) => createIntent(MarkdownAction.Create, { spaceId: space.id }),
85
85
  }),
86
86
  ),
@@ -6,13 +6,13 @@ import { Capabilities, contributes } from '@dxos/app-framework';
6
6
  import { Type } from '@dxos/echo';
7
7
  import { createDocAccessor, getRangeFromCursor, getTarget } from '@dxos/react-client/echo';
8
8
 
9
- import { DocumentType } from '../types';
9
+ import { Markdown } from '../types';
10
10
 
11
11
  export default () =>
12
12
  contributes(Capabilities.AnchorSort, {
13
- key: Type.getTypename(DocumentType)!,
13
+ key: Type.getTypename(Markdown.Document)!,
14
14
  sort: (anchorA, anchorB) => {
15
- const doc = getTarget(anchorA) as DocumentType;
15
+ const doc = getTarget(anchorA) as Markdown.Document;
16
16
  const accessor = doc.content.target ? createDocAccessor(doc.content.target, ['content']) : undefined;
17
17
  if (doc !== getTarget(anchorB) || !accessor) {
18
18
  return 0;
@@ -11,12 +11,12 @@ import { isSpace } from '@dxos/react-client/echo';
11
11
  import { DataType } from '@dxos/schema';
12
12
 
13
13
  import { translations } from '../translations';
14
- import { MarkdownAction, DocumentType } from '../types';
14
+ import { Markdown, MarkdownAction } from '../types';
15
15
 
16
16
  export default (context: PluginContext) =>
17
17
  contributes(Capabilities.AppGraphSerializer, [
18
18
  {
19
- inputType: DocumentType.typename,
19
+ inputType: Markdown.Document.typename,
20
20
  outputType: 'text/markdown',
21
21
  // Reconcile with metadata serializers.
22
22
  serialize: async (node) => {
@@ -24,7 +24,9 @@ export default (context: PluginContext) =>
24
24
  const content = await doc.content.load();
25
25
  return {
26
26
  name:
27
- doc.name || doc.fallbackName || translations[0]['en-US'][DocumentType.typename]['object name placeholder'],
27
+ doc.name ||
28
+ doc.fallbackName ||
29
+ translations[0]['en-US'][Markdown.Document.typename]['object name placeholder'],
28
30
  data: content.content,
29
31
  type: 'text/markdown',
30
32
  };
@@ -14,7 +14,7 @@ import { SpaceAction } from '@dxos/plugin-space/types';
14
14
  import { Filter, fullyQualifiedId, type Space } from '@dxos/react-client/echo';
15
15
 
16
16
  import { meta } from '../meta';
17
- import { DocumentType, MarkdownAction } from '../types';
17
+ import { Markdown, MarkdownAction } from '../types';
18
18
 
19
19
  // TODO(burdon): Factor out.
20
20
  declare global {
@@ -26,14 +26,14 @@ declare global {
26
26
 
27
27
  export default () => {
28
28
  const definition = defineArtifact({
29
- id: `artifact:${meta.id}`,
29
+ id: `artifact:${meta.id}`, // TODO(burdon): meta.id/artifact?
30
30
  name: meta.name,
31
31
  instructions: `
32
32
  - The markdown plugin allows you to work with text documents in the current space.
33
33
  - Use these tools to interact with documents, including listing available documents and retrieving their content.
34
34
  - Documents are stored in Markdown format.
35
35
  `,
36
- schema: DocumentType,
36
+ schema: Markdown.Document,
37
37
  tools: [
38
38
  createTool(meta.id, {
39
39
  name: 'create',
@@ -76,9 +76,9 @@ export default () => {
76
76
  execute: async (_input, { extensions }) => {
77
77
  invariant(extensions?.space, 'No space');
78
78
  const space = extensions.space;
79
- const { objects: documents } = await space.db.query(Filter.type(DocumentType)).run();
79
+ const { objects: documents } = await space.db.query(Filter.type(Markdown.Document)).run();
80
80
  const documentInfo = documents.map((doc) => {
81
- invariant(Obj.instanceOf(DocumentType, doc));
81
+ invariant(Obj.instanceOf(Markdown.Document, doc));
82
82
  return {
83
83
  id: fullyQualifiedId(doc),
84
84
  name: doc.name || doc.fallbackName || 'Unnamed Document',
@@ -99,7 +99,7 @@ export default () => {
99
99
  execute: async ({ id }, { extensions }) => {
100
100
  invariant(extensions?.space, 'No space');
101
101
  const document = await extensions.space.db.query(Filter.ids(ArtifactId.toDXN(id).toString())).first();
102
- assertArgument(Obj.instanceOf(DocumentType, document), 'Invalid type');
102
+ assertArgument(Obj.instanceOf(Markdown.Document, document), 'Invalid type');
103
103
 
104
104
  const { content } = await document.content?.load();
105
105
  return ToolResult.Success({
@@ -5,7 +5,7 @@
5
5
  import { defineCapability } from '@dxos/app-framework';
6
6
  import { type EditorViewMode, type EditorStateStore } from '@dxos/react-ui-editor';
7
7
 
8
- import { MARKDOWN_PLUGIN } from '../meta';
8
+ import { meta } from '../meta';
9
9
  import { type MarkdownExtensionProvider, type MarkdownPluginState } from '../types';
10
10
 
11
11
  export namespace MarkdownCapabilities {
@@ -14,7 +14,8 @@ export namespace MarkdownCapabilities {
14
14
  editorState: EditorStateStore;
15
15
  getViewMode: (id: string) => EditorViewMode;
16
16
  setViewMode: (id: string, viewMode: EditorViewMode) => void;
17
- }>(`${MARKDOWN_PLUGIN}/capability/state`);
17
+ }>(`${meta.id}/capability/state`);
18
18
 
19
- export const Extensions = defineCapability<MarkdownExtensionProvider[]>(`${MARKDOWN_PLUGIN}/capability/extensions`);
19
+ // TODO(burdon): Move to ./types (external API)?
20
+ export const Extensions = defineCapability<MarkdownExtensionProvider[]>(`${meta.id}/capability/extensions`);
20
21
  }
@@ -13,23 +13,17 @@ import {
13
13
  type PluginContext,
14
14
  } from '@dxos/app-framework';
15
15
  import { Obj } from '@dxos/echo';
16
- import { createDocAccessor, getRangeFromCursor, Ref } from '@dxos/react-client/echo';
17
- import { DataType } from '@dxos/schema';
16
+ import { createDocAccessor, getRangeFromCursor } from '@dxos/react-client/echo';
18
17
 
19
18
  import { MarkdownCapabilities } from './capabilities';
20
- import { DocumentType, MarkdownAction } from '../types';
19
+ import { Markdown, MarkdownAction } from '../types';
21
20
 
22
21
  export default (context: PluginContext) =>
23
22
  contributes(Capabilities.IntentResolver, [
24
23
  createResolver({
25
24
  intent: MarkdownAction.Create,
26
25
  resolve: ({ name, content }) => {
27
- const doc = Obj.make(DocumentType, {
28
- name,
29
- content: Ref.make(Obj.make(DataType.Text, { content: content ?? '' })),
30
- });
31
-
32
- return { data: { object: doc } };
26
+ return { data: { object: Markdown.makeDocument({ name, content }) } };
33
27
  },
34
28
  }),
35
29
  createResolver({
@@ -44,8 +38,8 @@ export default (context: PluginContext) =>
44
38
  filter: (
45
39
  data,
46
40
  ): data is Omit<Schema.Schema.Type<typeof CollaborationActions.InsertContent.fields.input>, 'target'> & {
47
- target: DocumentType;
48
- } => Obj.instanceOf(DocumentType, data.target),
41
+ target: Markdown.Document;
42
+ } => Obj.instanceOf(Markdown.Document, data.target),
49
43
  resolve: async ({ target, object: objectRef, at, label }) => {
50
44
  const text = await target.content.load();
51
45
  const accessor = createDocAccessor(text, ['content']);
@@ -13,20 +13,21 @@ import { DataType } from '@dxos/schema';
13
13
 
14
14
  import { MarkdownCapabilities } from './capabilities';
15
15
  import { MarkdownContainer, MarkdownSettings, MarkdownPreview } from '../components';
16
- import { MARKDOWN_PLUGIN } from '../meta';
17
- import { DocumentType, isEditorModel, type MarkdownSettingsProps } from '../types';
16
+ import { meta } from '../meta';
17
+ import { Markdown } from '../types';
18
+ import { isEditorModel } from '../util';
18
19
 
19
20
  export default () =>
20
21
  contributes(Capabilities.ReactSurface, [
21
22
  createSurface({
22
- id: `${MARKDOWN_PLUGIN}/document`,
23
+ id: `${meta.id}/surface/document`,
23
24
  role: ['article', 'section', 'tabpanel'],
24
- filter: (data): data is { subject: DocumentType; variant: undefined } =>
25
- Obj.instanceOf(DocumentType, data.subject) && !data.variant,
25
+ filter: (data): data is { subject: Markdown.Document; variant: undefined } =>
26
+ Obj.instanceOf(Markdown.Document, data.subject) && !data.variant,
26
27
  component: ({ data, role }) => {
27
28
  const selectionManager = useCapability(AttentionCapabilities.Selection);
28
29
  const settingsStore = useCapability(Capabilities.SettingsStore);
29
- const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;
30
+ const settings = settingsStore.getStore<Markdown.Settings>(meta.id)!.value;
30
31
  const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);
31
32
  const viewMode = getViewMode(fullyQualifiedId(data.subject));
32
33
 
@@ -46,14 +47,14 @@ export default () =>
46
47
  },
47
48
  }),
48
49
  createSurface({
49
- id: `${MARKDOWN_PLUGIN}/text`,
50
+ id: `${meta.id}/surface/text`,
50
51
  role: ['article', 'section', 'tabpanel'],
51
52
  filter: (data): data is { id: string; subject: DataType.Text } =>
52
53
  typeof data.id === 'string' && Obj.instanceOf(DataType.Text, data.subject),
53
54
  component: ({ data, role }) => {
54
55
  const selectionManager = useCapability(AttentionCapabilities.Selection);
55
56
  const settingsStore = useCapability(Capabilities.SettingsStore);
56
- const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;
57
+ const settings = settingsStore.getStore<Markdown.Settings>(meta.id)!.value;
57
58
  const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);
58
59
 
59
60
  return (
@@ -72,13 +73,13 @@ export default () =>
72
73
  },
73
74
  }),
74
75
  createSurface({
75
- id: `${MARKDOWN_PLUGIN}/editor`,
76
+ id: `${meta.id}/surface/editor`,
76
77
  role: ['article', 'section'],
77
78
  filter: (data): data is { subject: { id: string; text: string } } => isEditorModel(data.subject),
78
79
  component: ({ data, role }) => {
79
80
  const selectionManager = useCapability(AttentionCapabilities.Selection);
80
81
  const settingsStore = useCapability(Capabilities.SettingsStore);
81
- const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;
82
+ const settings = settingsStore.getStore<Markdown.Settings>(meta.id)!.value;
82
83
  const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);
83
84
 
84
85
  return (
@@ -97,17 +98,17 @@ export default () =>
97
98
  },
98
99
  }),
99
100
  createSurface({
100
- id: `${MARKDOWN_PLUGIN}/plugin-settings`,
101
+ id: `${meta.id}/surface/plugin-settings`,
101
102
  role: 'article',
102
- filter: (data): data is { subject: SettingsStore<MarkdownSettingsProps> } =>
103
- data.subject instanceof SettingsStore && data.subject.prefix === MARKDOWN_PLUGIN,
103
+ filter: (data): data is { subject: SettingsStore<Markdown.Settings> } =>
104
+ data.subject instanceof SettingsStore && data.subject.prefix === meta.id,
104
105
  component: ({ data: { subject } }) => <MarkdownSettings settings={subject.value} />,
105
106
  }),
106
107
  createSurface({
107
- id: `${MARKDOWN_PLUGIN}/preview`,
108
+ id: `${meta.id}/surface/preview`,
108
109
  role: ['card--popover', 'card--intrinsic', 'card--extrinsic', 'card--transclusion', 'card'],
109
- filter: (data): data is { subject: DocumentType | DataType.Text } =>
110
- Obj.instanceOf(DocumentType, data.subject) || Obj.instanceOf(DataType.Text, data.subject),
110
+ filter: (data): data is { subject: Markdown.Document | DataType.Text } =>
111
+ Obj.instanceOf(Markdown.Document, data.subject) || Obj.instanceOf(DataType.Text, data.subject),
111
112
  component: ({ data, role }) => <MarkdownPreview {...data} role={role} />,
112
113
  }),
113
114
  ]);
@@ -6,10 +6,10 @@ import { Capabilities, contributes } from '@dxos/app-framework';
6
6
  import { live } from '@dxos/live-object';
7
7
 
8
8
  import { meta } from '../meta';
9
- import { type MarkdownSettingsProps, MarkdownSettingsSchema } from '../types';
9
+ import { Markdown } from '../types';
10
10
 
11
11
  export default () => {
12
- const settings = live<MarkdownSettingsProps>({
12
+ const settings = live<Markdown.Settings>({
13
13
  defaultViewMode: 'preview',
14
14
  toolbar: true,
15
15
  numberedHeadings: true,
@@ -19,7 +19,7 @@ export default () => {
19
19
 
20
20
  return contributes(Capabilities.Settings, {
21
21
  prefix: meta.id,
22
- schema: MarkdownSettingsSchema,
22
+ schema: Markdown.Settings,
23
23
  value: settings,
24
24
  });
25
25
  };
@@ -7,20 +7,19 @@ import { LocalStorageStore } from '@dxos/local-storage';
7
7
  import { type EditorViewMode, createEditorStateStore } from '@dxos/react-ui-editor';
8
8
 
9
9
  import { MarkdownCapabilities } from './capabilities';
10
- import { MARKDOWN_PLUGIN } from '../meta';
11
- import { type MarkdownPluginState, type MarkdownSettingsProps } from '../types';
10
+ import { meta } from '../meta';
11
+ import { type Markdown, type MarkdownPluginState } from '../types';
12
12
 
13
13
  export default (context: PluginContext) => {
14
- const state = new LocalStorageStore<MarkdownPluginState>(MARKDOWN_PLUGIN, { extensionProviders: [], viewMode: {} });
14
+ const state = new LocalStorageStore<MarkdownPluginState>(meta.id, { extensionProviders: [], viewMode: {} });
15
15
  state.prop({ key: 'viewMode', type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>() });
16
16
 
17
17
  // TODO(wittjosiah): Fold into state.
18
- const editorState = createEditorStateStore(`${MARKDOWN_PLUGIN}/editor`);
18
+ const editorState = createEditorStateStore(`${meta.id}/editor`);
19
19
 
20
20
  const getViewMode = (id: string) => {
21
- const defaultViewMode = context
22
- .getCapability(Capabilities.SettingsStore)
23
- .getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value.defaultViewMode;
21
+ const defaultViewMode = context.getCapability(Capabilities.SettingsStore).getStore<Markdown.Settings>(meta.id)!
22
+ .value.defaultViewMode;
24
23
  return (id && state.values.viewMode[id]) || defaultViewMode;
25
24
  };
26
25
 
@@ -10,7 +10,7 @@ import React, { useMemo } from 'react';
10
10
  import { Capabilities, contributes, IntentPlugin, SettingsPlugin, Surface } from '@dxos/app-framework';
11
11
  import { withPluginManager } from '@dxos/app-framework/testing';
12
12
  import { todo } from '@dxos/debug';
13
- import { Obj, Query, Ref, Type } from '@dxos/echo';
13
+ import { Query, Type } from '@dxos/echo';
14
14
  import { AttentionPlugin } from '@dxos/plugin-attention';
15
15
  import { ClientPlugin } from '@dxos/plugin-client';
16
16
  import { GraphPlugin } from '@dxos/plugin-graph';
@@ -27,7 +27,7 @@ import { withLayout } from '@dxos/storybook-utils';
27
27
 
28
28
  import { MarkdownPlugin } from '../MarkdownPlugin';
29
29
  import { translations } from '../translations';
30
- import { DocumentType } from '../types';
30
+ import { Markdown } from '../types';
31
31
 
32
32
  faker.seed(1);
33
33
 
@@ -35,7 +35,7 @@ const generator: ValueGenerator = faker as any;
35
35
 
36
36
  const DefaultStory = () => {
37
37
  const space = useSpace();
38
- const [doc] = useQuery(space, Query.type(DocumentType));
38
+ const [doc] = useQuery(space, Query.type(Markdown.Document));
39
39
  const data = useMemo(() => ({ subject: doc }), [doc]);
40
40
 
41
41
  return <Surface role='article' data={data} />;
@@ -51,16 +51,13 @@ const meta: Meta<typeof DefaultStory> = {
51
51
  ThemePlugin({ tx: defaultTx }),
52
52
  StorybookLayoutPlugin(),
53
53
  ClientPlugin({
54
- types: [DocumentType, DataType.Text, Testing.Contact],
54
+ types: [Markdown.Document, DataType.Text, Testing.Contact],
55
55
  onClientInitialized: async (_, client) => {
56
56
  await client.halo.createIdentity();
57
57
  await client.spaces.waitUntilReady();
58
58
  await client.spaces.default.waitUntilReady();
59
59
  const space = client.spaces.default;
60
- const doc = Obj.make(DocumentType, {
61
- name: 'Test',
62
- content: Ref.make(Obj.make(DataType.Text, { content: '# Test\n\n' })),
63
- });
60
+ const doc = Markdown.makeDocument({ name: 'Test', content: '# Test\n\n' });
64
61
  space.db.add(doc);
65
62
  const createObjects = createObjectFactory(space.db, generator);
66
63
  await createObjects([{ type: Testing.Contact, count: 10 }]);
@@ -25,7 +25,7 @@ import { DataType } from '@dxos/schema';
25
25
 
26
26
  import { MarkdownEditor, type MarkdownEditorProps } from './MarkdownEditor';
27
27
  import { useExtensions } from '../extensions';
28
- import { DocumentType, type MarkdownSettingsProps } from '../types';
28
+ import { Markdown } from '../types';
29
29
  import { getFallbackName } from '../util';
30
30
 
31
31
  export type MarkdownContainerProps = Pick<
@@ -33,12 +33,12 @@ export type MarkdownContainerProps = Pick<
33
33
  'role' | 'extensionProviders' | 'viewMode' | 'editorStateStore' | 'onViewModeChange'
34
34
  > & {
35
35
  id: string;
36
- object: DocumentType | DataType.Text | any;
37
- settings: MarkdownSettingsProps;
36
+ object: Markdown.Document | DataType.Text | any;
37
+ settings: Markdown.Settings;
38
38
  selectionManager?: SelectionManager;
39
39
  };
40
40
 
41
- const MarkdownContainer = ({
41
+ export const MarkdownContainer = ({
42
42
  id,
43
43
  role,
44
44
  object,
@@ -50,7 +50,7 @@ const MarkdownContainer = ({
50
50
  }: MarkdownContainerProps) => {
51
51
  const { t } = useTranslation();
52
52
  const scrollPastEnd = role === 'article';
53
- const doc = Obj.instanceOf(DocumentType, object) ? object : undefined;
53
+ const doc = Obj.instanceOf(Markdown.Document, object) ? object : undefined;
54
54
  const text = Obj.instanceOf(DataType.Text, object) ? object : undefined;
55
55
  const [previewBlocks, setPreviewBlocks] = useState<{ link: PreviewLinkRef; el: HTMLElement }[]>([]);
56
56
  const previewOptions = useMemo(
@@ -199,7 +199,7 @@ const PreviewBlock = ({ link, el }: { link: PreviewLinkRef; el: HTMLElement }) =
199
199
 
200
200
  type DocumentEditorProps = Omit<MarkdownContainerProps, 'object' | 'extensionProviders' | 'editorStateStore'> &
201
201
  Pick<MarkdownEditorProps, 'id' | 'scrollPastEnd' | 'extensions' | 'onLinkQuery'> & {
202
- document: DocumentType;
202
+ document: Markdown.Document;
203
203
  };
204
204
 
205
205
  export const DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }: DocumentEditorProps) => {
@@ -44,16 +44,16 @@ import { StackItem } from '@dxos/react-ui-stack';
44
44
  import { isNotFalsy, isNonNullable } from '@dxos/util';
45
45
 
46
46
  import { useSelectCurrentThread } from '../../hooks';
47
- import { MARKDOWN_PLUGIN } from '../../meta';
47
+ import { meta } from '../../meta';
48
48
  import { type MarkdownPluginState } from '../../types';
49
49
 
50
50
  export type MarkdownEditorProps = {
51
51
  id: string;
52
52
  role?: string;
53
+ toolbar?: boolean;
53
54
  inputMode?: EditorInputMode;
54
55
  scrollPastEnd?: boolean;
55
56
  slashCommandGroups?: CommandMenuGroup[];
56
- toolbar?: boolean;
57
57
  customActions?: EditorToolbarActionGraphProps['customActions'];
58
58
  // TODO(wittjosiah): Generalize custom toolbar actions (e.g. comment, upload, etc.)
59
59
  viewMode?: EditorViewMode;
@@ -147,7 +147,7 @@ const MarkdownEditorImpl = forwardRef<EditorView | undefined, MarkdownEditorProp
147
147
  },
148
148
  forwardedRef,
149
149
  ) => {
150
- const { t } = useTranslation(MARKDOWN_PLUGIN);
150
+ const { t } = useTranslation(meta.id);
151
151
  const { themeMode } = useThemeContext();
152
152
  const toolbarState = useEditorToolbarState({ viewMode });
153
153
  const formattingObserver = useFormattingState(toolbarState);
@@ -4,16 +4,14 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react-vite';
7
+ import { type StoryObj, type Meta } from '@storybook/react-vite';
8
8
  import React from 'react';
9
9
 
10
10
  import { IntentPlugin } from '@dxos/app-framework';
11
11
  import { withPluginManager } from '@dxos/app-framework/testing';
12
- import { Obj, Ref } from '@dxos/echo';
13
- import { DocumentType } from '@dxos/plugin-markdown/types';
12
+ import { Markdown } from '@dxos/plugin-markdown/types';
14
13
  import { faker } from '@dxos/random';
15
14
  import { CardContainer } from '@dxos/react-ui-stack/testing';
16
- import { DataType } from '@dxos/schema';
17
15
  import { withTheme, withLayout } from '@dxos/storybook-utils';
18
16
 
19
17
  import { MarkdownPreview } from './MarkdownPreview';
@@ -27,7 +25,7 @@ const meta: Meta<typeof MarkdownPreview> = {
27
25
  render: ({ role, subject, ...args }) => {
28
26
  return (
29
27
  <CardContainer icon='ph--text-aa--regular' role={role}>
30
- <MarkdownPreview subject={subject} role={role} />
28
+ <MarkdownPreview role={role} subject={subject} {...args} />
31
29
  </CardContainer>
32
30
  );
33
31
  },
@@ -46,36 +44,34 @@ const meta: Meta<typeof MarkdownPreview> = {
46
44
 
47
45
  export default meta;
48
46
 
49
- const data = (() => {
50
- const document = Obj.make(DocumentType, {
51
- name: faker.lorem.words(3),
52
- content: Ref.make(
53
- Obj.make(DataType.Text, {
54
- content: faker.lorem.paragraphs(3),
55
- }),
56
- ),
57
- });
47
+ type Story = StoryObj<typeof meta>;
58
48
 
59
- return { document };
60
- })();
61
-
62
- export const Popover = {
49
+ export const Popover: Story = {
63
50
  args: {
64
- subject: Obj.make(DocumentType, data.document),
65
51
  role: 'card--popover',
52
+ subject: Markdown.makeDocument({
53
+ name: faker.lorem.words(3),
54
+ content: faker.lorem.paragraphs(3),
55
+ }),
66
56
  },
67
57
  };
68
58
 
69
- export const Extrinsic = {
59
+ export const Extrinsic: Story = {
70
60
  args: {
71
- subject: Obj.make(DocumentType, data.document),
72
61
  role: 'card--extrinsic',
62
+ subject: Markdown.makeDocument({
63
+ name: faker.lorem.words(3),
64
+ content: faker.lorem.paragraphs(3),
65
+ }),
73
66
  },
74
67
  };
75
68
 
76
- export const Intrinsic = {
69
+ export const Intrinsic: Story = {
77
70
  args: {
78
- subject: Obj.make(DocumentType, data.document),
79
71
  role: 'card--intrinsic',
72
+ subject: Markdown.makeDocument({
73
+ name: faker.lorem.words(3),
74
+ content: faker.lorem.paragraphs(3),
75
+ }),
80
76
  },
81
77
  };