@dxos/plugin-markdown 0.8.3-staging.0fa589b → 0.8.4-main.c1de068

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 (153) hide show
  1. package/dist/lib/browser/{MarkdownContainer-EFWQ6DHD.mjs → MarkdownContainer-F3WEEIBX.mjs} +31 -23
  2. package/dist/lib/browser/MarkdownContainer-F3WEEIBX.mjs.map +7 -0
  3. package/dist/lib/browser/{MarkdownPreview-F4PYFW5L.mjs → MarkdownPreview-S3C7CGAV.mjs} +8 -8
  4. package/dist/lib/browser/{MarkdownPreview-F4PYFW5L.mjs.map → MarkdownPreview-S3C7CGAV.mjs.map} +3 -3
  5. package/dist/lib/browser/{anchor-sort-BMAN2ABT.mjs → anchor-sort-UKJJ7ZNP.mjs} +4 -4
  6. package/dist/lib/browser/{app-graph-serializer-EI6TEHRQ.mjs → app-graph-serializer-ICLAF662.mjs} +9 -9
  7. package/dist/lib/browser/app-graph-serializer-ICLAF662.mjs.map +7 -0
  8. package/dist/lib/browser/{artifact-definition-FQ2R6KPT.mjs → artifact-definition-R2YYWOPN.mjs} +7 -7
  9. package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-QVJETNGS.mjs → chunk-777RIED6.mjs} +3 -3
  11. package/dist/lib/browser/{chunk-JX6XNEHE.mjs → chunk-EPTSAJZM.mjs} +2 -2
  12. package/dist/lib/browser/{chunk-LXSRQPEP.mjs → chunk-LFML7LC6.mjs} +3 -3
  13. package/dist/lib/browser/{chunk-D767LUGU.mjs → chunk-LHDCHDBW.mjs} +12 -11
  14. package/dist/lib/browser/chunk-LHDCHDBW.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-PHTD5DTR.mjs +20 -0
  16. package/dist/lib/browser/{chunk-N2D26K6W.mjs → chunk-UANWRJZU.mjs} +5 -5
  17. package/dist/lib/browser/chunk-UANWRJZU.mjs.map +7 -0
  18. package/dist/lib/browser/index.mjs +10 -10
  19. package/dist/lib/browser/index.mjs.map +1 -1
  20. package/dist/lib/browser/{intent-resolver-6ZOABX2J.mjs → intent-resolver-3MXYO3MW.mjs} +5 -5
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/{react-surface-4B5ELMEW.mjs → react-surface-C3Z423TV.mjs} +15 -14
  23. package/dist/lib/browser/{react-surface-4B5ELMEW.mjs.map → react-surface-C3Z423TV.mjs.map} +2 -2
  24. package/dist/lib/browser/{settings-PLH54VC7.mjs → settings-KN75ZQY6.mjs} +4 -4
  25. package/dist/lib/browser/{state-KI6PJ6DT.mjs → state-LZWTAS65.mjs} +4 -4
  26. package/dist/lib/browser/types/index.mjs +2 -2
  27. package/dist/lib/node-esm/{MarkdownContainer-O3SGMH4G.mjs → MarkdownContainer-VOUHL6IU.mjs} +31 -23
  28. package/dist/lib/node-esm/MarkdownContainer-VOUHL6IU.mjs.map +7 -0
  29. package/dist/lib/node-esm/{MarkdownPreview-KFDRV4GC.mjs → MarkdownPreview-77UFEWXT.mjs} +8 -8
  30. package/dist/lib/node-esm/{MarkdownPreview-KFDRV4GC.mjs.map → MarkdownPreview-77UFEWXT.mjs.map} +3 -3
  31. package/dist/lib/node-esm/{anchor-sort-BXL7BE67.mjs → anchor-sort-IPIS5D5B.mjs} +4 -4
  32. package/dist/lib/node-esm/{app-graph-serializer-F7DGNF3G.mjs → app-graph-serializer-FLBXQKKR.mjs} +9 -9
  33. package/dist/lib/node-esm/app-graph-serializer-FLBXQKKR.mjs.map +7 -0
  34. package/dist/lib/node-esm/{artifact-definition-NQOHB6S5.mjs → artifact-definition-MLTAY4LK.mjs} +7 -7
  35. package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs.map +7 -0
  36. package/dist/lib/node-esm/chunk-7X6TPTJK.mjs +22 -0
  37. package/dist/lib/node-esm/{chunk-JXXDCSMW.mjs → chunk-ACFGXH2K.mjs} +3 -3
  38. package/dist/lib/node-esm/{chunk-K26TX5V4.mjs → chunk-CWTFQSN7.mjs} +3 -3
  39. package/dist/lib/node-esm/{chunk-RX63ZNML.mjs → chunk-CXG7GMYP.mjs} +2 -2
  40. package/dist/lib/node-esm/{chunk-T2Y2BT53.mjs → chunk-JEEQLO7C.mjs} +5 -5
  41. package/dist/lib/{browser/chunk-N2D26K6W.mjs.map → node-esm/chunk-JEEQLO7C.mjs.map} +2 -2
  42. package/dist/lib/node-esm/{chunk-BWDDFDJY.mjs → chunk-VIR2ABYE.mjs} +12 -11
  43. package/dist/lib/node-esm/chunk-VIR2ABYE.mjs.map +7 -0
  44. package/dist/lib/node-esm/index.mjs +10 -10
  45. package/dist/lib/node-esm/index.mjs.map +1 -1
  46. package/dist/lib/node-esm/{intent-resolver-CLMSVF2K.mjs → intent-resolver-BZYWV53A.mjs} +5 -5
  47. package/dist/lib/node-esm/meta.json +1 -1
  48. package/dist/lib/node-esm/{react-surface-YHFOQTVO.mjs → react-surface-TTTBYNI2.mjs} +15 -14
  49. package/dist/lib/node-esm/{react-surface-YHFOQTVO.mjs.map → react-surface-TTTBYNI2.mjs.map} +2 -2
  50. package/dist/lib/node-esm/{settings-SIY33P3F.mjs → settings-KVP7TVX7.mjs} +4 -4
  51. package/dist/lib/node-esm/{state-LLGVRYKL.mjs → state-NW3W4JCQ.mjs} +4 -4
  52. package/dist/lib/node-esm/types/index.mjs +2 -2
  53. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
  54. package/dist/types/src/capabilities/index.d.ts +1 -1
  55. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  56. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  57. package/dist/types/src/components/MarkdownContainer.stories.d.ts +1 -1
  58. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  59. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +1 -1
  60. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  61. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +1 -1
  62. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +27 -2
  63. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -1
  64. package/dist/types/src/components/Suggestions.stories.d.ts +1 -1
  65. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  66. package/dist/types/src/components/Toolbar.stories.d.ts +1 -1
  67. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  68. package/dist/types/src/extensions.d.ts.map +1 -1
  69. package/dist/types/src/translations.d.ts +35 -80
  70. package/dist/types/src/translations.d.ts.map +1 -1
  71. package/dist/types/src/types/schema.d.ts +2 -2
  72. package/dist/types/src/types/types.d.ts +4 -3
  73. package/dist/types/src/types/types.d.ts.map +1 -1
  74. package/dist/types/src/util.d.ts +1 -1
  75. package/dist/types/src/util.d.ts.map +1 -1
  76. package/dist/types/tsconfig.tsbuildinfo +1 -1
  77. package/package.json +43 -45
  78. package/src/MarkdownPlugin.tsx +1 -1
  79. package/src/capabilities/app-graph-serializer.ts +3 -3
  80. package/src/capabilities/artifact-definition.ts +2 -2
  81. package/src/capabilities/react-surface.tsx +1 -1
  82. package/src/components/MarkdownContainer.stories.tsx +2 -2
  83. package/src/components/MarkdownContainer.tsx +20 -7
  84. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +2 -2
  85. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +24 -17
  86. package/src/components/MarkdownPreview/MarkdownPreview.tsx +10 -8
  87. package/src/components/Suggestions.stories.tsx +11 -5
  88. package/src/components/Toolbar.stories.tsx +1 -1
  89. package/src/extensions.tsx +18 -14
  90. package/src/translations.ts +8 -6
  91. package/src/types/types.ts +2 -2
  92. package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs.map +0 -7
  93. package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs.map +0 -7
  94. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs.map +0 -7
  95. package/dist/lib/browser/chunk-354IBM5X.mjs +0 -20
  96. package/dist/lib/browser/chunk-D767LUGU.mjs.map +0 -7
  97. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs +0 -783
  98. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs.map +0 -7
  99. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs +0 -103
  100. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs.map +0 -7
  101. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs +0 -48
  102. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs.map +0 -7
  103. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs +0 -65
  104. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs.map +0 -7
  105. package/dist/lib/node/artifact-definition-U27MH5SC.cjs +0 -158
  106. package/dist/lib/node/artifact-definition-U27MH5SC.cjs.map +0 -7
  107. package/dist/lib/node/chunk-3HHV4MM6.cjs +0 -101
  108. package/dist/lib/node/chunk-3HHV4MM6.cjs.map +0 -7
  109. package/dist/lib/node/chunk-CJLYFGPI.cjs +0 -74
  110. package/dist/lib/node/chunk-CJLYFGPI.cjs.map +0 -7
  111. package/dist/lib/node/chunk-FU3XZZCO.cjs +0 -58
  112. package/dist/lib/node/chunk-FU3XZZCO.cjs.map +0 -7
  113. package/dist/lib/node/chunk-IFYSBQE5.cjs +0 -35
  114. package/dist/lib/node/chunk-IFYSBQE5.cjs.map +0 -7
  115. package/dist/lib/node/chunk-LQAC5HL7.cjs +0 -68
  116. package/dist/lib/node/chunk-LQAC5HL7.cjs.map +0 -7
  117. package/dist/lib/node/chunk-ZU5OIHCY.cjs +0 -45
  118. package/dist/lib/node/chunk-ZU5OIHCY.cjs.map +0 -7
  119. package/dist/lib/node/index.cjs +0 -165
  120. package/dist/lib/node/index.cjs.map +0 -7
  121. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs +0 -77
  122. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs.map +0 -7
  123. package/dist/lib/node/meta.json +0 -1
  124. package/dist/lib/node/react-surface-456HQ4KZ.cjs +0 -218
  125. package/dist/lib/node/react-surface-456HQ4KZ.cjs.map +0 -7
  126. package/dist/lib/node/settings-E3NUTXJ4.cjs +0 -42
  127. package/dist/lib/node/settings-E3NUTXJ4.cjs.map +0 -7
  128. package/dist/lib/node/state-KKDRAG7X.cjs +0 -51
  129. package/dist/lib/node/state-KKDRAG7X.cjs.map +0 -7
  130. package/dist/lib/node/types/index.cjs +0 -40
  131. package/dist/lib/node/types/index.cjs.map +0 -7
  132. package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs.map +0 -7
  133. package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs.map +0 -7
  134. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs.map +0 -7
  135. package/dist/lib/node-esm/chunk-BWDDFDJY.mjs.map +0 -7
  136. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs.map +0 -7
  137. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs +0 -22
  138. /package/dist/lib/browser/{anchor-sort-BMAN2ABT.mjs.map → anchor-sort-UKJJ7ZNP.mjs.map} +0 -0
  139. /package/dist/lib/browser/{chunk-QVJETNGS.mjs.map → chunk-777RIED6.mjs.map} +0 -0
  140. /package/dist/lib/browser/{chunk-JX6XNEHE.mjs.map → chunk-EPTSAJZM.mjs.map} +0 -0
  141. /package/dist/lib/browser/{chunk-LXSRQPEP.mjs.map → chunk-LFML7LC6.mjs.map} +0 -0
  142. /package/dist/lib/browser/{chunk-354IBM5X.mjs.map → chunk-PHTD5DTR.mjs.map} +0 -0
  143. /package/dist/lib/browser/{intent-resolver-6ZOABX2J.mjs.map → intent-resolver-3MXYO3MW.mjs.map} +0 -0
  144. /package/dist/lib/browser/{settings-PLH54VC7.mjs.map → settings-KN75ZQY6.mjs.map} +0 -0
  145. /package/dist/lib/browser/{state-KI6PJ6DT.mjs.map → state-LZWTAS65.mjs.map} +0 -0
  146. /package/dist/lib/node-esm/{anchor-sort-BXL7BE67.mjs.map → anchor-sort-IPIS5D5B.mjs.map} +0 -0
  147. /package/dist/lib/node-esm/{chunk-YOABAQ7A.mjs.map → chunk-7X6TPTJK.mjs.map} +0 -0
  148. /package/dist/lib/node-esm/{chunk-JXXDCSMW.mjs.map → chunk-ACFGXH2K.mjs.map} +0 -0
  149. /package/dist/lib/node-esm/{chunk-K26TX5V4.mjs.map → chunk-CWTFQSN7.mjs.map} +0 -0
  150. /package/dist/lib/node-esm/{chunk-RX63ZNML.mjs.map → chunk-CXG7GMYP.mjs.map} +0 -0
  151. /package/dist/lib/node-esm/{intent-resolver-CLMSVF2K.mjs.map → intent-resolver-BZYWV53A.mjs.map} +0 -0
  152. /package/dist/lib/node-esm/{settings-SIY33P3F.mjs.map → settings-KVP7TVX7.mjs.map} +0 -0
  153. /package/dist/lib/node-esm/{state-LLGVRYKL.mjs.map → state-NW3W4JCQ.mjs.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-markdown",
3
- "version": "0.8.3-staging.0fa589b",
3
+ "version": "0.8.4-main.c1de068",
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,68 +33,66 @@
33
33
  "src"
34
34
  ],
35
35
  "dependencies": {
36
- "@automerge/automerge": "3.0.0-beta.4",
36
+ "@automerge/automerge": "3.0.0",
37
37
  "@codemirror/search": "^6.5.6",
38
38
  "@codemirror/view": "^6.34.1",
39
39
  "@preact-signals/safe-react": "^0.9.0",
40
40
  "@preact/signals-core": "^1.9.0",
41
41
  "react-dropzone": "^14.2.3",
42
- "@dxos/ai": "0.8.3-staging.0fa589b",
43
- "@dxos/app-framework": "0.8.3-staging.0fa589b",
44
- "@dxos/assistant": "0.8.3-staging.0fa589b",
45
- "@dxos/artifact": "0.8.3-staging.0fa589b",
46
- "@dxos/async": "0.8.3-staging.0fa589b",
47
- "@dxos/invariant": "0.8.3-staging.0fa589b",
48
- "@dxos/echo": "0.8.3-staging.0fa589b",
49
- "@dxos/keys": "0.8.3-staging.0fa589b",
50
- "@dxos/echo-schema": "0.8.3-staging.0fa589b",
51
- "@dxos/lit-ui": "0.8.3-staging.0fa589b",
52
- "@dxos/local-storage": "0.8.3-staging.0fa589b",
53
- "@dxos/log": "0.8.3-staging.0fa589b",
54
- "@dxos/live-object": "0.8.3-staging.0fa589b",
55
- "@dxos/plugin-attention": "0.8.3-staging.0fa589b",
56
- "@dxos/plugin-client": "0.8.3-staging.0fa589b",
57
- "@dxos/plugin-deck": "0.8.3-staging.0fa589b",
58
- "@dxos/plugin-preview": "0.8.3-staging.0fa589b",
59
- "@dxos/plugin-graph": "0.8.3-staging.0fa589b",
60
- "@dxos/plugin-space": "0.8.3-staging.0fa589b",
61
- "@dxos/plugin-theme": "0.8.3-staging.0fa589b",
62
- "@dxos/react-client": "0.8.3-staging.0fa589b",
63
- "@dxos/react-ui-attention": "0.8.3-staging.0fa589b",
64
- "@dxos/react-ui-editor": "0.8.3-staging.0fa589b",
65
- "@dxos/react-ui-form": "0.8.3-staging.0fa589b",
66
- "@dxos/react-hooks": "0.8.3-staging.0fa589b",
67
- "@dxos/react-ui-stack": "0.8.3-staging.0fa589b",
68
- "@dxos/schema": "0.8.3-staging.0fa589b",
69
- "@dxos/util": "0.8.3-staging.0fa589b"
42
+ "@dxos/ai": "0.8.4-main.c1de068",
43
+ "@dxos/app-framework": "0.8.4-main.c1de068",
44
+ "@dxos/assistant": "0.8.4-main.c1de068",
45
+ "@dxos/async": "0.8.4-main.c1de068",
46
+ "@dxos/blueprints": "0.8.4-main.c1de068",
47
+ "@dxos/echo": "0.8.4-main.c1de068",
48
+ "@dxos/invariant": "0.8.4-main.c1de068",
49
+ "@dxos/keys": "0.8.4-main.c1de068",
50
+ "@dxos/lit-ui": "0.8.4-main.c1de068",
51
+ "@dxos/echo-schema": "0.8.4-main.c1de068",
52
+ "@dxos/live-object": "0.8.4-main.c1de068",
53
+ "@dxos/local-storage": "0.8.4-main.c1de068",
54
+ "@dxos/log": "0.8.4-main.c1de068",
55
+ "@dxos/plugin-attention": "0.8.4-main.c1de068",
56
+ "@dxos/plugin-client": "0.8.4-main.c1de068",
57
+ "@dxos/plugin-deck": "0.8.4-main.c1de068",
58
+ "@dxos/plugin-graph": "0.8.4-main.c1de068",
59
+ "@dxos/plugin-preview": "0.8.4-main.c1de068",
60
+ "@dxos/plugin-space": "0.8.4-main.c1de068",
61
+ "@dxos/react-client": "0.8.4-main.c1de068",
62
+ "@dxos/plugin-theme": "0.8.4-main.c1de068",
63
+ "@dxos/react-hooks": "0.8.4-main.c1de068",
64
+ "@dxos/react-ui-attention": "0.8.4-main.c1de068",
65
+ "@dxos/react-ui-form": "0.8.4-main.c1de068",
66
+ "@dxos/react-ui-editor": "0.8.4-main.c1de068",
67
+ "@dxos/react-ui-stack": "0.8.4-main.c1de068",
68
+ "@dxos/schema": "0.8.4-main.c1de068",
69
+ "@dxos/util": "0.8.4-main.c1de068"
70
70
  },
71
71
  "devDependencies": {
72
- "@effect-rx/rx-react": "^0.34.1",
73
- "@effect/platform": "0.80.12",
74
- "@phosphor-icons/react": "^2.1.5",
72
+ "@effect-rx/rx-react": "0.38.0",
73
+ "@effect/platform": "0.89.0",
75
74
  "@types/react": "~18.2.0",
76
75
  "@types/react-dom": "~18.2.0",
77
- "effect": "3.14.21",
76
+ "effect": "3.17.0",
78
77
  "react": "~18.2.0",
79
78
  "react-dom": "~18.2.0",
80
79
  "vite": "5.4.7",
81
- "@dxos/debug": "0.8.3-staging.0fa589b",
82
- "@dxos/plugin-theme": "0.8.3-staging.0fa589b",
83
- "@dxos/plugin-storybook-layout": "0.8.3-staging.0fa589b",
84
- "@dxos/random": "0.8.3-staging.0fa589b",
85
- "@dxos/react-ui": "0.8.3-staging.0fa589b",
86
- "@dxos/react-ui-theme": "0.8.3-staging.0fa589b",
87
- "@dxos/storybook-utils": "0.8.3-staging.0fa589b"
80
+ "@dxos/plugin-storybook-layout": "0.8.4-main.c1de068",
81
+ "@dxos/plugin-theme": "0.8.4-main.c1de068",
82
+ "@dxos/debug": "0.8.4-main.c1de068",
83
+ "@dxos/random": "0.8.4-main.c1de068",
84
+ "@dxos/react-ui": "0.8.4-main.c1de068",
85
+ "@dxos/react-ui-theme": "0.8.4-main.c1de068",
86
+ "@dxos/storybook-utils": "0.8.4-main.c1de068"
88
87
  },
89
88
  "peerDependencies": {
90
89
  "@effect-rx/rx-react": "^0.34.1",
91
- "@effect/platform": "0.80.12",
92
- "@phosphor-icons/react": "^2.1.5",
90
+ "@effect/platform": "^0.80.12",
93
91
  "effect": "^3.13.3",
94
92
  "react": "~18.2.0",
95
93
  "react-dom": "~18.2.0",
96
- "@dxos/react-ui": "0.8.3-staging.0fa589b",
97
- "@dxos/react-ui-theme": "0.8.3-staging.0fa589b"
94
+ "@dxos/react-ui": "0.8.4-main.c1de068",
95
+ "@dxos/react-ui-theme": "0.8.4-main.c1de068"
98
96
  },
99
97
  "publishConfig": {
100
98
  "access": "public"
@@ -22,7 +22,7 @@ import {
22
22
  } from './capabilities';
23
23
  import { MarkdownEvents } from './events';
24
24
  import { meta } from './meta';
25
- import translations from './translations';
25
+ import { translations } from './translations';
26
26
  import { DocumentType, MarkdownAction } from './types';
27
27
  import { serializer } from './util';
28
28
 
@@ -5,12 +5,12 @@
5
5
  import { pipe } from 'effect';
6
6
 
7
7
  import { contributes, Capabilities, type PluginContext, chain, createIntent } from '@dxos/app-framework';
8
- import { Obj, Type } from '@dxos/echo';
8
+ import { Obj } from '@dxos/echo';
9
9
  import { SpaceAction } from '@dxos/plugin-space/types';
10
10
  import { isSpace } from '@dxos/react-client/echo';
11
11
  import { DataType } from '@dxos/schema';
12
12
 
13
- import translations from '../translations';
13
+ import { translations } from '../translations';
14
14
  import { MarkdownAction, DocumentType } from '../types';
15
15
 
16
16
  export default (context: PluginContext) =>
@@ -33,7 +33,7 @@ export default (context: PluginContext) =>
33
33
  const space = ancestors.find(isSpace);
34
34
  const target =
35
35
  ancestors.findLast((ancestor) => Obj.instanceOf(DataType.Collection, ancestor)) ??
36
- space?.properties[Type.getTypename(DataType.Collection)]?.target;
36
+ space?.properties[DataType.Collection.typename]?.target;
37
37
  if (!space || !target) {
38
38
  return;
39
39
  }
@@ -6,8 +6,8 @@ import { pipe, Schema } from 'effect';
6
6
 
7
7
  import { createTool, ToolResult } from '@dxos/ai';
8
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
+ import { createArtifactElement, ArtifactId } from '@dxos/assistant';
10
+ import { defineArtifact } from '@dxos/blueprints';
11
11
  import { Obj } from '@dxos/echo';
12
12
  import { invariant, assertArgument } from '@dxos/invariant';
13
13
  import { SpaceAction } from '@dxos/plugin-space/types';
@@ -105,7 +105,7 @@ export default () =>
105
105
  }),
106
106
  createSurface({
107
107
  id: `${MARKDOWN_PLUGIN}/preview`,
108
- role: ['popover', 'card--kanban', 'card--document', 'card'],
108
+ role: ['card--popover', 'card--intrinsic', 'card--extrinsic', 'card--transclusion', 'card'],
109
109
  filter: (data): data is { subject: DocumentType | DataType.Text } =>
110
110
  Obj.instanceOf(DocumentType, data.subject) || Obj.instanceOf(DataType.Text, data.subject),
111
111
  component: ({ data, role }) => <MarkdownPreview {...data} role={role} />,
@@ -4,7 +4,7 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react';
7
+ import { type Meta } from '@storybook/react-vite';
8
8
  import React, { useMemo } from 'react';
9
9
 
10
10
  import { Capabilities, contributes, IntentPlugin, SettingsPlugin, Surface } from '@dxos/app-framework';
@@ -26,7 +26,7 @@ import { createObjectFactory, Testing, type ValueGenerator } from '@dxos/schema/
26
26
  import { withLayout } from '@dxos/storybook-utils';
27
27
 
28
28
  import { MarkdownPlugin } from '../MarkdownPlugin';
29
- import translations from '../translations';
29
+ import { translations } from '../translations';
30
30
  import { DocumentType } from '../types';
31
31
 
32
32
  faker.seed(1);
@@ -7,7 +7,8 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
7
7
  import { createPortal } from 'react-dom';
8
8
 
9
9
  import { Capabilities, Surface, useAppGraph, useCapabilities, usePluginManager } from '@dxos/app-framework';
10
- import { DXN, Filter, Obj, Query } from '@dxos/echo';
10
+ import { DXN, Filter, Obj, Query, Type } from '@dxos/echo';
11
+ import { ClientCapabilities } from '@dxos/plugin-client';
11
12
  import { SpaceCapabilities } from '@dxos/plugin-space';
12
13
  import { fullyQualifiedId, getSpace, useQuery, useSpace } from '@dxos/react-client/echo';
13
14
  import { toLocalizedString, useTranslation } from '@dxos/react-ui';
@@ -83,18 +84,30 @@ const MarkdownContainer = ({
83
84
  );
84
85
  const space = getSpace(object);
85
86
  const objectForms = useCapabilities(SpaceCapabilities.ObjectForm);
86
- const filter = useMemo(() => Filter.or(...objectForms.map((form) => Filter.type(form.objectSchema))), [objectForms]);
87
+ const schemaWhiteList = useCapabilities(ClientCapabilities.SchemaWhiteList);
88
+ const filter = useMemo(
89
+ () =>
90
+ Filter.or(
91
+ ...objectForms.map((form) => Filter.type(form.objectSchema)),
92
+ ...schemaWhiteList.flat().map((schema) => Filter.typename(Type.getTypename(schema))),
93
+ ),
94
+ [objectForms, schemaWhiteList],
95
+ );
87
96
  const onLinkQuery = useCallback(
88
97
  async (query?: string): Promise<CommandMenuGroup[]> => {
89
- const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? '';
98
+ const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');
90
99
  const results = await space?.db.query(Query.select(filter)).run();
91
100
  // TODO(wittjosiah): Use `Obj.Any` type.
92
101
  const getLabel = (object: any) => {
102
+ const label = Obj.getLabel(object);
103
+ if (label) {
104
+ return label;
105
+ }
106
+
107
+ // TODO(wittjosiah): Remove metadata labels.
93
108
  const type = Obj.getTypename(object)!;
94
109
  const metadata = resolve(type);
95
- return (
96
- metadata.label?.(object) || object.name || ['object name placeholder', { ns: type, default: 'New object' }]
97
- );
110
+ return metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New object' }];
98
111
  };
99
112
  const items =
100
113
  results?.objects
@@ -181,7 +194,7 @@ const PreviewBlock = ({ link, el }: { link: PreviewLinkRef; el: HTMLElement }) =
181
194
  const [subject] = useQuery(space, Query.select(Filter.ids(echoDXN?.echoId ?? '')));
182
195
  const data = useMemo(() => ({ subject }), [subject]);
183
196
 
184
- return createPortal(<Surface role='card--document' data={data} limit={1} />, el);
197
+ return createPortal(<Surface role='card--transclusion' data={data} limit={1} />, el);
185
198
  };
186
199
 
187
200
  type DocumentEditorProps = Omit<MarkdownContainerProps, 'object' | 'extensionProviders' | 'editorStateStore'> &
@@ -4,7 +4,7 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react';
7
+ import { type Meta } from '@storybook/react-vite';
8
8
  import React, { useMemo } from 'react';
9
9
 
10
10
  import { IntentPlugin } from '@dxos/app-framework';
@@ -15,7 +15,7 @@ import { automerge, translations as editorTranslations } from '@dxos/react-ui-ed
15
15
  import { withLayout, withTheme } from '@dxos/storybook-utils';
16
16
 
17
17
  import { MarkdownEditor, type MarkdownEditorProps } from './MarkdownEditor';
18
- import translations from '../../translations';
18
+ import { translations } from '../../translations';
19
19
 
20
20
  const content = Array.from({ length: 100 }, (_, i) => `Line ${i + 1}`).join('\n');
21
21
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react';
7
+ import { type Meta } from '@storybook/react-vite';
8
8
  import React from 'react';
9
9
 
10
10
  import { IntentPlugin } from '@dxos/app-framework';
@@ -12,31 +12,23 @@ import { withPluginManager } from '@dxos/app-framework/testing';
12
12
  import { Obj, Ref } from '@dxos/echo';
13
13
  import { DocumentType } from '@dxos/plugin-markdown/types';
14
14
  import { faker } from '@dxos/random';
15
- import { Icon, Popover } from '@dxos/react-ui';
15
+ import { CardContainer } from '@dxos/react-ui-stack/testing';
16
16
  import { DataType } from '@dxos/schema';
17
17
  import { withTheme, withLayout } from '@dxos/storybook-utils';
18
18
 
19
19
  import { MarkdownPreview } from './MarkdownPreview';
20
- import translations from '../../translations';
20
+ import { translations } from '../../translations';
21
21
 
22
22
  faker.seed(1234);
23
23
 
24
24
  const meta: Meta<typeof MarkdownPreview> = {
25
- title: 'plugins/plugin-markdown/MarkdownPreview',
25
+ title: 'Cards/plugin-markdown',
26
26
  component: MarkdownPreview,
27
- render: ({ subject }) => {
27
+ render: ({ role, subject, ...args }) => {
28
28
  return (
29
- <Popover.Root open>
30
- <Popover.Content>
31
- <Popover.Viewport>
32
- <MarkdownPreview subject={subject} role='popover' />
33
- </Popover.Viewport>
34
- <Popover.Arrow />
35
- </Popover.Content>
36
- <Popover.Trigger>
37
- <Icon icon='ph--text-aa--regular' size={5} />
38
- </Popover.Trigger>
39
- </Popover.Root>
29
+ <CardContainer icon='ph--text-aa--regular' role={role}>
30
+ <MarkdownPreview subject={subject} role={role} />
31
+ </CardContainer>
40
32
  );
41
33
  },
42
34
  decorators: [
@@ -67,8 +59,23 @@ const data = (() => {
67
59
  return { document };
68
60
  })();
69
61
 
70
- export const Default = {
62
+ export const Popover = {
71
63
  args: {
72
64
  subject: Obj.make(DocumentType, data.document),
65
+ role: 'card--popover',
66
+ },
67
+ };
68
+
69
+ export const Extrinsic = {
70
+ args: {
71
+ subject: Obj.make(DocumentType, data.document),
72
+ role: 'card--extrinsic',
73
+ },
74
+ };
75
+
76
+ export const Intrinsic = {
77
+ args: {
78
+ subject: Obj.make(DocumentType, data.document),
79
+ role: 'card--intrinsic',
73
80
  },
74
81
  };
@@ -57,15 +57,17 @@ export const MarkdownPreview = ({ subject, role }: PreviewProps<DocumentType | D
57
57
  );
58
58
 
59
59
  return (
60
- <Card.Container role={role}>
60
+ <Card.SurfaceRoot role={role}>
61
61
  <Card.Heading>{getTitle(subject, t('fallback title'))}</Card.Heading>
62
62
  {snippet && <Card.Text classNames='line-clamp-3 break-words col-span-2'>{snippet}</Card.Text>}
63
- <Card.Chrome>
64
- <Button onClick={handleNavigate}>
65
- <span className='grow'>{t('navigate to document label')}</span>
66
- <Icon icon='ph--arrow-right--regular' />
67
- </Button>
68
- </Card.Chrome>
69
- </Card.Container>
63
+ {role === 'card--popover' && (
64
+ <Card.Chrome>
65
+ <Button onClick={handleNavigate}>
66
+ <span className='grow'>{t('navigate to document label')}</span>
67
+ <Icon icon='ph--arrow-right--regular' />
68
+ </Button>
69
+ </Card.Chrome>
70
+ )}
71
+ </Card.SurfaceRoot>
70
72
  );
71
73
  };
@@ -4,11 +4,10 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react';
7
+ import { type Meta } from '@storybook/react-vite';
8
8
  import { Match, Option, pipe, Schema } from 'effect';
9
9
  import React, { type FC, useEffect, useMemo, useState } from 'react';
10
10
 
11
- import { Message } from '@dxos/ai';
12
11
  import {
13
12
  Capabilities,
14
13
  CollaborationActions,
@@ -34,13 +33,14 @@ import { IconButton, Toolbar } from '@dxos/react-ui';
34
33
  import { command, type EditorSelection, type Range, useTextEditor } from '@dxos/react-ui-editor';
35
34
  import { StackItem } from '@dxos/react-ui-stack';
36
35
  import { defaultTx } from '@dxos/react-ui-theme';
36
+ import { DataType } from '@dxos/schema';
37
37
  import { withLayout } from '@dxos/storybook-utils';
38
38
 
39
39
  import MarkdownContainer from './MarkdownContainer';
40
40
  import { MarkdownPlugin } from '../MarkdownPlugin';
41
41
  import { MarkdownCapabilities } from '../capabilities';
42
42
  import { MARKDOWN_PLUGIN } from '../meta';
43
- import translations from '../translations';
43
+ import { translations } from '../translations';
44
44
  import { createDocument, DocumentType, type MarkdownSettingsProps } from '../types';
45
45
 
46
46
  faker.seed(1);
@@ -68,12 +68,18 @@ const TestChat: FC<{ doc: DocumentType; content: string }> = ({ doc, content })
68
68
 
69
69
  const space = useSpace();
70
70
  const queueDxn = useMemo(() => space && space.queues.create().dxn, [space]);
71
- const queue = useQueue<Message>(queueDxn);
71
+ const queue = useQueue<DataType.Message>(queueDxn);
72
72
 
73
73
  const handleInsert = async () => {
74
74
  invariant(space);
75
75
  invariant(queue);
76
- await queue.append([Obj.make(Message, { role: 'assistant', content: [{ type: 'text', text: 'Hello' }] })]);
76
+ await queue.append([
77
+ Obj.make(DataType.Message, {
78
+ created: new Date().toISOString(),
79
+ sender: { role: 'assistant' },
80
+ blocks: [{ _tag: 'text', text: 'Hello' }],
81
+ }),
82
+ ]);
77
83
  const message = queue.objects.at(-1);
78
84
  invariant(message);
79
85
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react';
7
+ import { type Meta } from '@storybook/react-vite';
8
8
  import React, { type FC, useCallback, useState } from 'react';
9
9
 
10
10
  import { Obj } from '@dxos/echo';
@@ -2,6 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { type ViewUpdate } from '@codemirror/view';
5
6
  import React, { type AnchorHTMLAttributes, type ReactNode, useMemo } from 'react';
6
7
  import { createRoot } from 'react-dom/client';
7
8
 
@@ -12,6 +13,7 @@ import {
12
13
  useCapabilities,
13
14
  useIntentDispatcher,
14
15
  } from '@dxos/app-framework';
16
+ import { debounceAndThrottle } from '@dxos/async';
15
17
  import { invariant } from '@dxos/invariant';
16
18
  import { createDocAccessor, fullyQualifiedId, getSpace, type QueryResult } from '@dxos/react-client/echo';
17
19
  import { useIdentity } from '@dxos/react-client/halo';
@@ -249,20 +251,22 @@ const createBaseExtensions = ({
249
251
  };
250
252
 
251
253
  export const selectionChange = (selectionManager: SelectionManager) => {
252
- return EditorView.updateListener.of((update) => {
253
- if (update.selectionSet) {
254
- const id = update.state.facet(documentId);
255
- const cursorConverter = update.state.facet(Cursor.converter);
256
- const selection = update.state.selection;
257
- const ranges = selection.ranges
258
- .map((range) => ({
259
- from: cursorConverter.toCursor(range.from),
260
- to: cursorConverter.toCursor(range.to),
261
- }))
262
- .filter(({ from, to }) => to > from);
263
- selectionManager.updateMultiRange(id, ranges);
264
- }
265
- });
254
+ return EditorView.updateListener.of(
255
+ debounceAndThrottle((update: ViewUpdate) => {
256
+ if (update.selectionSet) {
257
+ const id = update.state.facet(documentId);
258
+ const cursorConverter = update.state.facet(Cursor.converter);
259
+ const selection = update.state.selection;
260
+ const ranges = selection.ranges
261
+ .map((range) => ({
262
+ from: cursorConverter.toCursor(range.from),
263
+ to: cursorConverter.toCursor(range.to),
264
+ }))
265
+ .filter(({ from, to }) => to > from);
266
+ selectionManager.updateMultiRange(id, ranges);
267
+ }
268
+ }, 100),
269
+ );
266
270
  };
267
271
 
268
272
  // TODO(burdon): Factor out styles.
@@ -2,22 +2,24 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Type } from '@dxos/echo';
5
+ import { type Resource } from '@dxos/react-ui';
6
6
 
7
- import { MARKDOWN_PLUGIN } from './meta';
7
+ import { meta } from './meta';
8
8
  import { DocumentType } from './types';
9
9
 
10
- export default [
10
+ export const translations = [
11
11
  {
12
12
  'en-US': {
13
- [Type.getTypename(DocumentType)]: {
13
+ [DocumentType.typename]: {
14
14
  'typename label': 'Document',
15
15
  'typename label_zero': 'Documents',
16
16
  'typename label_one': 'Document',
17
17
  'typename label_other': 'Documents',
18
18
  'object name placeholder': 'New document',
19
+ 'rename object label': 'Rename document',
20
+ 'delete object label': 'Delete document',
19
21
  },
20
- [MARKDOWN_PLUGIN]: {
22
+ [meta.id]: {
21
23
  'plugin name': 'Editor',
22
24
  'choose markdown from space dialog title': 'Choose one or more documents to add',
23
25
  // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)
@@ -43,4 +45,4 @@ export default [
43
45
  },
44
46
  },
45
47
  },
46
- ];
48
+ ] as const satisfies Resource[];
@@ -5,8 +5,8 @@
5
5
  import { Schema } from 'effect';
6
6
 
7
7
  import { Type } from '@dxos/echo';
8
- // TODO(wittjosiah): This pulls in UI code into the types entrypoint.
9
- import { type Extension, EditorInputMode, EditorViewMode } from '@dxos/react-ui-editor';
8
+ import { type Extension } from '@dxos/react-ui-editor';
9
+ import { EditorInputMode, EditorViewMode } from '@dxos/react-ui-editor/types';
10
10
 
11
11
  import { DocumentType } from './schema';
12
12
  import { MARKDOWN_PLUGIN } from '../meta';