@dxos/plugin-markdown 0.8.3 → 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 (219) hide show
  1. package/dist/lib/browser/{MarkdownContainer-EFWQ6DHD.mjs → MarkdownContainer-NNBPE6A5.mjs} +37 -28
  2. package/dist/lib/browser/MarkdownContainer-NNBPE6A5.mjs.map +7 -0
  3. package/dist/lib/browser/{MarkdownPreview-F4PYFW5L.mjs → MarkdownPreview-7VG3K24R.mjs} +13 -13
  4. package/dist/lib/browser/MarkdownPreview-7VG3K24R.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-BMAN2ABT.mjs → anchor-sort-Z7JQA7RL.mjs} +6 -6
  6. package/dist/lib/browser/anchor-sort-Z7JQA7RL.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-EI6TEHRQ.mjs → app-graph-serializer-ZT5OVF5G.mjs} +13 -13
  8. package/dist/lib/browser/app-graph-serializer-ZT5OVF5G.mjs.map +7 -0
  9. package/dist/lib/browser/{artifact-definition-FQ2R6KPT.mjs → artifact-definition-7VNP5PCP.mjs} +15 -15
  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-D767LUGU.mjs → chunk-K7ZFMSC4.mjs} +13 -12
  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-LXSRQPEP.mjs → chunk-VMX5SDGW.mjs} +9 -10
  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 +21 -19
  23. package/dist/lib/browser/index.mjs.map +3 -3
  24. package/dist/lib/browser/{intent-resolver-6ZOABX2J.mjs → intent-resolver-EBEF7WEI.mjs} +15 -19
  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-4B5ELMEW.mjs → react-surface-ZPMZT4VU.mjs} +31 -28
  28. package/dist/lib/browser/react-surface-ZPMZT4VU.mjs.map +7 -0
  29. package/dist/lib/browser/{settings-PLH54VC7.mjs → settings-MBDK4TWE.mjs} +6 -6
  30. package/dist/lib/browser/settings-MBDK4TWE.mjs.map +7 -0
  31. package/dist/lib/browser/{state-KI6PJ6DT.mjs → state-ZA6PZPUI.mjs} +8 -8
  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-O3SGMH4G.mjs → MarkdownContainer-Q6UO7DKT.mjs} +37 -28
  35. package/dist/lib/node-esm/MarkdownContainer-Q6UO7DKT.mjs.map +7 -0
  36. package/dist/lib/node-esm/{MarkdownPreview-KFDRV4GC.mjs → MarkdownPreview-UVWR2YK3.mjs} +13 -13
  37. package/dist/lib/node-esm/MarkdownPreview-UVWR2YK3.mjs.map +7 -0
  38. package/dist/lib/node-esm/{anchor-sort-BXL7BE67.mjs → anchor-sort-R6AAKYNG.mjs} +6 -6
  39. package/dist/lib/node-esm/anchor-sort-R6AAKYNG.mjs.map +7 -0
  40. package/dist/lib/node-esm/{app-graph-serializer-F7DGNF3G.mjs → app-graph-serializer-X4M5QEI6.mjs} +13 -13
  41. package/dist/lib/node-esm/app-graph-serializer-X4M5QEI6.mjs.map +7 -0
  42. package/dist/lib/node-esm/{artifact-definition-NQOHB6S5.mjs → artifact-definition-IRIILD7S.mjs} +15 -15
  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-A7LLVI34.mjs +22 -0
  47. package/dist/lib/node-esm/chunk-B3J2M4YL.mjs +17 -0
  48. package/dist/lib/node-esm/chunk-B3J2M4YL.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-K26TX5V4.mjs → chunk-LZK3TLKM.mjs} +9 -10
  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-BWDDFDJY.mjs → chunk-YGNVDYMB.mjs} +13 -12
  54. package/dist/lib/node-esm/chunk-YGNVDYMB.mjs.map +7 -0
  55. package/dist/lib/node-esm/index.mjs +21 -19
  56. package/dist/lib/node-esm/index.mjs.map +3 -3
  57. package/dist/lib/node-esm/{intent-resolver-CLMSVF2K.mjs → intent-resolver-L2UGZ72W.mjs} +15 -19
  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-YHFOQTVO.mjs → react-surface-3JJSTTQP.mjs} +31 -28
  61. package/dist/lib/node-esm/react-surface-3JJSTTQP.mjs.map +7 -0
  62. package/dist/lib/node-esm/{settings-SIY33P3F.mjs → settings-LBDWWPZJ.mjs} +6 -6
  63. package/dist/lib/node-esm/settings-LBDWWPZJ.mjs.map +7 -0
  64. package/dist/lib/node-esm/{state-LLGVRYKL.mjs → state-UIHO2SFZ.mjs} +8 -8
  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/artifact-definition.d.ts +1 -1
  69. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  70. package/dist/types/src/capabilities/index.d.ts +1 -1
  71. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  75. package/dist/types/src/components/MarkdownContainer.d.ts +5 -5
  76. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  77. package/dist/types/src/components/MarkdownContainer.stories.d.ts +1 -1
  78. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  79. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +1 -1
  80. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  81. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +1 -1
  82. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  83. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +2 -2
  84. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +1 -1
  85. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +5 -12
  86. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +2 -2
  88. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  89. package/dist/types/src/components/Suggestions.stories.d.ts +3 -3
  90. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  91. package/dist/types/src/components/Toolbar.stories.d.ts +1 -1
  92. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  93. package/dist/types/src/components/index.d.ts +1 -1
  94. package/dist/types/src/components/index.d.ts.map +1 -1
  95. package/dist/types/src/events.d.ts.map +1 -1
  96. package/dist/types/src/extensions.d.ts +4 -4
  97. package/dist/types/src/extensions.d.ts.map +1 -1
  98. package/dist/types/src/index.d.ts.map +1 -1
  99. package/dist/types/src/meta.d.ts +1 -1
  100. package/dist/types/src/meta.d.ts.map +1 -1
  101. package/dist/types/src/translations.d.ts +35 -80
  102. package/dist/types/src/translations.d.ts.map +1 -1
  103. package/dist/types/src/types/Markdown.d.ts +43 -0
  104. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  105. package/dist/types/src/types/MarkdownAction.d.ts +42 -0
  106. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
  107. package/dist/types/src/types/index.d.ts +2 -1
  108. package/dist/types/src/types/index.d.ts.map +1 -1
  109. package/dist/types/src/types/types.d.ts +4 -59
  110. package/dist/types/src/types/types.d.ts.map +1 -1
  111. package/dist/types/src/util.d.ts +12 -3
  112. package/dist/types/src/util.d.ts.map +1 -1
  113. package/dist/types/tsconfig.tsbuildinfo +1 -1
  114. package/package.json +47 -47
  115. package/src/MarkdownPlugin.tsx +7 -7
  116. package/src/capabilities/anchor-sort.ts +3 -3
  117. package/src/capabilities/app-graph-serializer.ts +8 -6
  118. package/src/capabilities/artifact-definition.ts +8 -8
  119. package/src/capabilities/capabilities.ts +4 -3
  120. package/src/capabilities/intent-resolver.ts +5 -11
  121. package/src/capabilities/react-surface.tsx +18 -17
  122. package/src/capabilities/settings.ts +3 -3
  123. package/src/capabilities/state.ts +6 -7
  124. package/src/components/MarkdownContainer.stories.tsx +7 -10
  125. package/src/components/MarkdownContainer.tsx +26 -13
  126. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +2 -2
  127. package/src/components/MarkdownEditor/MarkdownEditor.tsx +3 -3
  128. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +35 -32
  129. package/src/components/MarkdownPreview/MarkdownPreview.tsx +18 -16
  130. package/src/components/MarkdownSettings/MarkdownSettings.tsx +4 -4
  131. package/src/components/Suggestions.stories.tsx +22 -17
  132. package/src/components/Toolbar.stories.tsx +2 -3
  133. package/src/events.ts +2 -2
  134. package/src/extensions.tsx +22 -18
  135. package/src/hooks/useSelectCurrentThread.tsx +2 -2
  136. package/src/index.ts +1 -0
  137. package/src/meta.ts +10 -8
  138. package/src/translations.ts +9 -7
  139. package/src/types/Markdown.ts +55 -0
  140. package/src/types/MarkdownAction.ts +30 -0
  141. package/src/types/index.ts +2 -1
  142. package/src/types/types.ts +6 -51
  143. package/src/util.tsx +20 -6
  144. package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs.map +0 -7
  145. package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs.map +0 -7
  146. package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs.map +0 -7
  147. package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs.map +0 -7
  148. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs.map +0 -7
  149. package/dist/lib/browser/chunk-354IBM5X.mjs +0 -20
  150. package/dist/lib/browser/chunk-D767LUGU.mjs.map +0 -7
  151. package/dist/lib/browser/chunk-JX6XNEHE.mjs +0 -22
  152. package/dist/lib/browser/chunk-JX6XNEHE.mjs.map +0 -7
  153. package/dist/lib/browser/chunk-LXSRQPEP.mjs.map +0 -7
  154. package/dist/lib/browser/chunk-N2D26K6W.mjs +0 -79
  155. package/dist/lib/browser/chunk-N2D26K6W.mjs.map +0 -7
  156. package/dist/lib/browser/chunk-QVJETNGS.mjs +0 -16
  157. package/dist/lib/browser/chunk-QVJETNGS.mjs.map +0 -7
  158. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs.map +0 -7
  159. package/dist/lib/browser/react-surface-4B5ELMEW.mjs.map +0 -7
  160. package/dist/lib/browser/settings-PLH54VC7.mjs.map +0 -7
  161. package/dist/lib/browser/state-KI6PJ6DT.mjs.map +0 -7
  162. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs +0 -783
  163. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs.map +0 -7
  164. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs +0 -103
  165. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs.map +0 -7
  166. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs +0 -48
  167. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs.map +0 -7
  168. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs +0 -65
  169. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs.map +0 -7
  170. package/dist/lib/node/artifact-definition-U27MH5SC.cjs +0 -158
  171. package/dist/lib/node/artifact-definition-U27MH5SC.cjs.map +0 -7
  172. package/dist/lib/node/chunk-3HHV4MM6.cjs +0 -101
  173. package/dist/lib/node/chunk-3HHV4MM6.cjs.map +0 -7
  174. package/dist/lib/node/chunk-CJLYFGPI.cjs +0 -74
  175. package/dist/lib/node/chunk-CJLYFGPI.cjs.map +0 -7
  176. package/dist/lib/node/chunk-FU3XZZCO.cjs +0 -58
  177. package/dist/lib/node/chunk-FU3XZZCO.cjs.map +0 -7
  178. package/dist/lib/node/chunk-IFYSBQE5.cjs +0 -35
  179. package/dist/lib/node/chunk-IFYSBQE5.cjs.map +0 -7
  180. package/dist/lib/node/chunk-LQAC5HL7.cjs +0 -68
  181. package/dist/lib/node/chunk-LQAC5HL7.cjs.map +0 -7
  182. package/dist/lib/node/chunk-ZU5OIHCY.cjs +0 -45
  183. package/dist/lib/node/chunk-ZU5OIHCY.cjs.map +0 -7
  184. package/dist/lib/node/index.cjs +0 -165
  185. package/dist/lib/node/index.cjs.map +0 -7
  186. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs +0 -77
  187. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs.map +0 -7
  188. package/dist/lib/node/meta.json +0 -1
  189. package/dist/lib/node/react-surface-456HQ4KZ.cjs +0 -218
  190. package/dist/lib/node/react-surface-456HQ4KZ.cjs.map +0 -7
  191. package/dist/lib/node/settings-E3NUTXJ4.cjs +0 -42
  192. package/dist/lib/node/settings-E3NUTXJ4.cjs.map +0 -7
  193. package/dist/lib/node/state-KKDRAG7X.cjs +0 -51
  194. package/dist/lib/node/state-KKDRAG7X.cjs.map +0 -7
  195. package/dist/lib/node/types/index.cjs +0 -40
  196. package/dist/lib/node/types/index.cjs.map +0 -7
  197. package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs.map +0 -7
  198. package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs.map +0 -7
  199. package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs.map +0 -7
  200. package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs.map +0 -7
  201. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-BWDDFDJY.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs +0 -17
  204. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs.map +0 -7
  205. package/dist/lib/node-esm/chunk-K26TX5V4.mjs.map +0 -7
  206. package/dist/lib/node-esm/chunk-RX63ZNML.mjs +0 -24
  207. package/dist/lib/node-esm/chunk-RX63ZNML.mjs.map +0 -7
  208. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs +0 -80
  209. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs.map +0 -7
  210. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs +0 -22
  211. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs.map +0 -7
  212. package/dist/lib/node-esm/react-surface-YHFOQTVO.mjs.map +0 -7
  213. package/dist/lib/node-esm/settings-SIY33P3F.mjs.map +0 -7
  214. package/dist/lib/node-esm/state-LLGVRYKL.mjs.map +0 -7
  215. package/dist/types/src/types/schema.d.ts +0 -35
  216. package/dist/types/src/types/schema.d.ts.map +0 -1
  217. package/src/types/schema.ts +0 -39
  218. /package/dist/lib/browser/{chunk-354IBM5X.mjs.map → chunk-VCUKIILA.mjs.map} +0 -0
  219. /package/dist/lib/node-esm/{chunk-YOABAQ7A.mjs.map → chunk-A7LLVI34.mjs.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/MarkdownSettings/MarkdownSettings.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createSurface, contributes, Capabilities, useCapability } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { DataType } from '@dxos/schema';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { MarkdownContainer, MarkdownSettings, MarkdownPreview } from '../components';\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { DocumentType, isEditorModel, type MarkdownSettingsProps } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${MARKDOWN_PLUGIN}/document`,\n role: ['article', 'section', 'tabpanel'],\n filter: (data): data is { subject: DocumentType; variant: undefined } =>\n Obj.instanceOf(DocumentType, data.subject) && !data.variant,\n component: ({ data, role }) => {\n const selectionManager = useCapability(AttentionCapabilities.Selection);\n const settingsStore = useCapability(Capabilities.SettingsStore);\n const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;\n const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);\n const viewMode = getViewMode(fullyQualifiedId(data.subject));\n\n return (\n <MarkdownContainer\n id={fullyQualifiedId(data.subject)}\n object={data.subject}\n role={role}\n settings={settings}\n selectionManager={selectionManager}\n extensionProviders={state.extensionProviders}\n viewMode={viewMode}\n editorStateStore={editorState}\n onViewModeChange={setViewMode}\n />\n );\n },\n }),\n createSurface({\n id: `${MARKDOWN_PLUGIN}/text`,\n role: ['article', 'section', 'tabpanel'],\n filter: (data): data is { id: string; subject: DataType.Text } =>\n typeof data.id === 'string' && Obj.instanceOf(DataType.Text, data.subject),\n component: ({ data, role }) => {\n const selectionManager = useCapability(AttentionCapabilities.Selection);\n const settingsStore = useCapability(Capabilities.SettingsStore);\n const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;\n const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);\n\n return (\n <MarkdownContainer\n id={data.id}\n object={data.subject}\n role={role}\n settings={settings}\n selectionManager={selectionManager}\n extensionProviders={state.extensionProviders}\n viewMode={getViewMode(data.id)}\n editorStateStore={editorState}\n onViewModeChange={setViewMode}\n />\n );\n },\n }),\n createSurface({\n id: `${MARKDOWN_PLUGIN}/editor`,\n role: ['article', 'section'],\n filter: (data): data is { subject: { id: string; text: string } } => isEditorModel(data.subject),\n component: ({ data, role }) => {\n const selectionManager = useCapability(AttentionCapabilities.Selection);\n const settingsStore = useCapability(Capabilities.SettingsStore);\n const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;\n const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);\n\n return (\n <MarkdownContainer\n id={data.subject.id}\n object={data.subject}\n role={role}\n settings={settings}\n selectionManager={selectionManager}\n extensionProviders={state.extensionProviders}\n viewMode={getViewMode(data.subject.id)}\n editorStateStore={editorState}\n onViewModeChange={setViewMode}\n />\n );\n },\n }),\n createSurface({\n id: `${MARKDOWN_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<MarkdownSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === MARKDOWN_PLUGIN,\n component: ({ data: { subject } }) => <MarkdownSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${MARKDOWN_PLUGIN}/preview`,\n role: ['popover', 'card--kanban', 'card--document', 'card'],\n filter: (data): data is { subject: DocumentType | DataType.Text } =>\n Obj.instanceOf(DocumentType, data.subject) || Obj.instanceOf(DataType.Text, data.subject),\n component: ({ data, role }) => <MarkdownPreview {...data} role={role} />,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './MarkdownSettings';\n\nexport const MarkdownContainer = lazy(() => import('./MarkdownContainer'));\nexport const MarkdownPreview = lazy(() => import('./MarkdownPreview'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { type EditorInputMode, EditorInputModes, type EditorViewMode, EditorViewModes } from '@dxos/react-ui-editor';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { MARKDOWN_PLUGIN } from '../../meta';\nimport { type MarkdownSettingsProps } from '../../types';\n\nexport const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps }) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n\n // TODO(wittjosiah): Add skill test confirmation for entering vim mode.\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('default view mode label')}>\n <Select.Root\n value={settings.defaultViewMode}\n onValueChange={(value) => {\n settings.defaultViewMode = value as EditorViewMode;\n }}\n >\n <Select.TriggerButton />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorViewModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`${mode} mode label`, { ns: 'react-ui-editor' })}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('editor input mode label')}>\n <Select.Root\n value={settings.editorInputMode ?? 'default'}\n onValueChange={(value) => {\n settings.editorInputMode = value as EditorInputMode;\n }}\n >\n <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorInputModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`settings editor input mode ${mode} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings toolbar label')}>\n <Input.Switch checked={settings.toolbar} onCheckedChange={(checked) => (settings.toolbar = !!checked)} />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings numbered headings label')}>\n <Input.Switch\n checked={settings.numberedHeadings}\n onCheckedChange={(checked) => (settings.numberedHeadings = !!checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings folding label')}>\n <Input.Switch checked={settings.folding} onCheckedChange={(checked) => (settings.folding = !!checked)} />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings experimental label')}>\n <Input.Switch\n checked={settings.experimental}\n onCheckedChange={(checked) => (settings.experimental = !!checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput\n label={t('settings debug label')}\n secondary={\n settings.debug ? (\n <Input.Root>\n <Input.TextArea\n rows={5}\n value={settings.typewriter}\n onChange={({ target: { value } }) => (settings.typewriter = value)}\n placeholder={t('settings debug placeholder')}\n />\n </Input.Root>\n ) : undefined\n }\n >\n <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "createSurface", "contributes", "Capabilities", "useCapability", "Obj", "SettingsStore", "AttentionCapabilities", "fullyQualifiedId", "DataType", "lazy", "React", "Input", "Select", "useTranslation", "EditorInputModes", "EditorViewModes", "DeprecatedFormContainer", "DeprecatedFormInput", "MarkdownSettings", "settings", "t", "useTranslation", "MARKDOWN_PLUGIN", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Select", "Root", "value", "defaultViewMode", "onValueChange", "TriggerButton", "Portal", "Content", "Viewport", "EditorViewModes", "map", "mode", "Option", "key", "ns", "editorInputMode", "placeholder", "EditorInputModes", "Input", "Switch", "checked", "toolbar", "onCheckedChange", "numberedHeadings", "folding", "experimental", "secondary", "debug", "TextArea", "rows", "typewriter", "onChange", "target", "undefined", "MarkdownContainer", "lazy", "MarkdownPreview", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "MARKDOWN_PLUGIN", "role", "filter", "data", "Obj", "instanceOf", "DocumentType", "subject", "variant", "component", "selectionManager", "useCapability", "AttentionCapabilities", "Selection", "settingsStore", "SettingsStore", "settings", "getStore", "value", "state", "editorState", "getViewMode", "setViewMode", "MarkdownCapabilities", "State", "viewMode", "fullyQualifiedId", "React", "MarkdownContainer", "object", "extensionProviders", "editorStateStore", "onViewModeChange", "DataType", "Text", "isEditorModel", "prefix", "MarkdownSettings", "MarkdownPreview"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { live } from '@dxos/live-object';\n\nimport { meta } from '../meta';\nimport { type MarkdownSettingsProps, MarkdownSettingsSchema } from '../types';\n\nexport default () => {\n const settings = live<MarkdownSettingsProps>({\n defaultViewMode: 'preview',\n toolbar: true,\n numberedHeadings: true,\n folding: true,\n experimental: false,\n });\n\n return contributes(Capabilities.Settings, {\n prefix: meta.id,\n schema: MarkdownSettingsSchema,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AAKrB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,KAA4B;IAC3CC,iBAAiB;IACjBC,SAAS;IACTC,kBAAkB;IAClBC,SAAS;IACTC,cAAc;EAChB,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC,KAAKC;IACbC,QAAQC;IACRC,OAAOf;EACT,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "live", "settings", "live", "defaultViewMode", "toolbar", "numberedHeadings", "folding", "experimental", "contributes", "Capabilities", "Settings", "prefix", "meta", "id", "schema", "MarkdownSettingsSchema", "value"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/state.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { type EditorViewMode, createEditorStateStore } from '@dxos/react-ui-editor';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownPluginState, type MarkdownSettingsProps } from '../types';\n\nexport default (context: PluginContext) => {\n const state = new LocalStorageStore<MarkdownPluginState>(MARKDOWN_PLUGIN, { extensionProviders: [], viewMode: {} });\n state.prop({ key: 'viewMode', type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>() });\n\n // TODO(wittjosiah): Fold into state.\n const editorState = createEditorStateStore(`${MARKDOWN_PLUGIN}/editor`);\n\n const getViewMode = (id: string) => {\n const defaultViewMode = context\n .getCapability(Capabilities.SettingsStore)\n .getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value.defaultViewMode;\n return (id && state.values.viewMode[id]) || defaultViewMode;\n };\n\n const setViewMode = (id: string, viewMode: EditorViewMode) => (state.values.viewMode[id] = viewMode);\n\n // Return object with methods.\n return contributes(MarkdownCapabilities.State, { state: state.values, editorState, getViewMode, setViewMode });\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,mBAAuC;AAC9D,SAASC,yBAAyB;AAClC,SAA8BC,8BAA8B;AAM5D,IAAA,gBAAe,CAACC,YAAAA;AACd,QAAMC,QAAQ,IAAIC,kBAAuCC,iBAAiB;IAAEC,oBAAoB,CAAA;IAAIC,UAAU,CAAC;EAAE,CAAA;AACjHJ,QAAMK,KAAK;IAAEC,KAAK;IAAYC,MAAMN,kBAAkBO,KAAI;EAAsC,CAAA;AAGhG,QAAMC,cAAcC,uBAAuB,GAAGR,eAAAA,SAAwB;AAEtE,QAAMS,cAAc,CAACC,OAAAA;AACnB,UAAMC,kBAAkBd,QACrBe,cAAcC,aAAaC,aAAa,EACxCC,SAAgCf,eAAAA,EAAkBgB,MAAML;AAC3D,WAAQD,MAAMZ,MAAMmB,OAAOf,SAASQ,EAAAA,KAAQC;EAC9C;AAEA,QAAMO,cAAc,CAACR,IAAYR,aAA8BJ,MAAMmB,OAAOf,SAASQ,EAAAA,IAAMR;AAG3F,SAAOiB,YAAYC,qBAAqBC,OAAO;IAAEvB,OAAOA,MAAMmB;IAAQV;IAAaE;IAAaS;EAAY,CAAA;AAC9G;",
6
- "names": ["Capabilities", "contributes", "LocalStorageStore", "createEditorStateStore", "context", "state", "LocalStorageStore", "MARKDOWN_PLUGIN", "extensionProviders", "viewMode", "prop", "key", "type", "json", "editorState", "createEditorStateStore", "getViewMode", "id", "defaultViewMode", "getCapability", "Capabilities", "SettingsStore", "getStore", "value", "values", "setViewMode", "contributes", "MarkdownCapabilities", "State"]
7
- }
@@ -1,35 +0,0 @@
1
- import { Schema } from 'effect';
2
- import { Type } from '@dxos/echo';
3
- export declare const DocumentSchema: Schema.Struct<{
4
- name: Schema.optional<typeof Schema.String>;
5
- fallbackName: Schema.optional<typeof Schema.String>;
6
- content: Type.ref<Type.obj<Schema.Struct<{
7
- content: typeof import("effect/Schema").String;
8
- }>>>;
9
- }>;
10
- export declare const DocumentType: Type.obj<Schema.Struct<{
11
- name: Schema.optional<typeof Schema.String>;
12
- fallbackName: Schema.optional<typeof Schema.String>;
13
- content: Type.ref<Type.obj<Schema.Struct<{
14
- content: typeof import("effect/Schema").String;
15
- }>>>;
16
- }>>;
17
- export type DocumentType = Schema.Schema.Type<typeof DocumentType>;
18
- export declare const createDocument: ({ name, content }: {
19
- name: string;
20
- content: string;
21
- }) => import("@dxos/live-object").Live<Type.OfKind<Type.Kind.Object> & {
22
- name?: string | undefined;
23
- fallbackName?: string | undefined;
24
- content: import("@dxos/echo-schema").Ref<Type.OfKind<Type.Kind.Object> & {
25
- content: string;
26
- }>;
27
- }>;
28
- /**
29
- * Checks if an object conforms to the interface needed to render an editor.
30
- */
31
- export declare const isEditorModel: (data: any) => data is {
32
- id: string;
33
- text: string;
34
- };
35
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/types/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAY,IAAI,EAAE,MAAM,YAAY,CAAC;AAI5C,eAAO,MAAM,cAAc;;;;;;EAI2B,CAAC;AAEvD,eAAO,MAAM,YAAY;;;;;;GAKxB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC;AAGnE,eAAO,MAAM,cAAc,GAAI,mBAAmB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;;EACQ,CAAC;AAE5F;;GAEG;AAEH,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,IAAI,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAM7C,CAAC"}
@@ -1,39 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { Schema } from 'effect';
6
-
7
- import { Obj, Ref, Type } from '@dxos/echo';
8
- import { LabelAnnotation } from '@dxos/echo-schema';
9
- import { DataType } from '@dxos/schema';
10
-
11
- export const DocumentSchema = Schema.Struct({
12
- name: Schema.optional(Schema.String),
13
- fallbackName: Schema.optional(Schema.String),
14
- content: Type.Ref(DataType.Text),
15
- }).pipe(LabelAnnotation.set(['name', 'fallbackName']));
16
-
17
- export const DocumentType = DocumentSchema.pipe(
18
- Type.Obj({
19
- typename: 'dxos.org/type/Document',
20
- version: '0.1.0',
21
- }),
22
- );
23
- export type DocumentType = Schema.Schema.Type<typeof DocumentType>;
24
-
25
- // TODO(burdon): Replace when defaults are supported.
26
- export const createDocument = ({ name, content }: { name: string; content: string }) =>
27
- Obj.make(DocumentType, { name, content: Ref.make(Obj.make(DataType.Text, { content })) });
28
-
29
- /**
30
- * Checks if an object conforms to the interface needed to render an editor.
31
- */
32
- // TODO(burdon): Normalize types (from FilesPlugin).
33
- export const isEditorModel = (data: any): data is { id: string; text: string } =>
34
- data &&
35
- typeof data === 'object' &&
36
- 'id' in data &&
37
- typeof data.id === 'string' &&
38
- 'text' in data &&
39
- typeof data.text === 'string';