@dxos/plugin-markdown 0.7.5-labs.a279d8c → 0.7.5-labs.c0e040f

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 (123) hide show
  1. package/dist/lib/browser/{MarkdownContainer-ARRY4I6S.mjs → MarkdownContainer-EGJXNFJQ.mjs} +70 -56
  2. package/dist/lib/browser/MarkdownContainer-EGJXNFJQ.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-HHWSLYIW.mjs → app-graph-serializer-BG3MHYI4.mjs} +4 -4
  4. package/dist/lib/browser/{chunk-ADAYSA5G.mjs → chunk-2NGDXMOE.mjs} +8 -8
  5. package/dist/lib/browser/{chunk-FSAYVXSE.mjs → chunk-EZ65DY2X.mjs} +2 -2
  6. package/dist/lib/browser/{chunk-EMIIXXVX.mjs → chunk-P4K367ZX.mjs} +2 -2
  7. package/dist/lib/browser/{chunk-YPDWX3WI.mjs → chunk-ROJ4VUZB.mjs} +4 -4
  8. package/dist/lib/browser/{chunk-YPDWX3WI.mjs.map → chunk-ROJ4VUZB.mjs.map} +1 -1
  9. package/dist/lib/browser/chunk-YTHIPV5Q.mjs +22 -0
  10. package/dist/lib/browser/chunk-YTHIPV5Q.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +9 -9
  12. package/dist/lib/browser/index.mjs.map +3 -3
  13. package/dist/lib/browser/intent-resolver-CCOPGHVY.mjs +43 -0
  14. package/dist/lib/browser/intent-resolver-CCOPGHVY.mjs.map +7 -0
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/{react-surface-RL4CISJZ.mjs → react-surface-F37UFPRD.mjs} +13 -16
  17. package/dist/lib/browser/react-surface-F37UFPRD.mjs.map +7 -0
  18. package/dist/lib/browser/{settings-PTF73JDL.mjs → settings-U7E4DUWJ.mjs} +3 -3
  19. package/dist/lib/browser/{state-DOVZP7XJ.mjs → state-QMQXUPSI.mjs} +3 -3
  20. package/dist/lib/browser/{thread-G4RS7NBZ.mjs → thread-Y4WMNFBC.mjs} +3 -3
  21. package/dist/lib/browser/types/index.mjs +2 -2
  22. package/dist/lib/node/{MarkdownContainer-TV6W64EN.cjs → MarkdownContainer-X34QJ6K5.cjs} +76 -62
  23. package/dist/lib/node/MarkdownContainer-X34QJ6K5.cjs.map +7 -0
  24. package/dist/lib/node/{app-graph-serializer-PJRST43Q.cjs → app-graph-serializer-QZWERV4M.cjs} +10 -10
  25. package/dist/lib/node/{chunk-G7WKHUGU.cjs → chunk-23NQGZX3.cjs} +7 -7
  26. package/dist/lib/node/{chunk-UFFFUC6W.cjs → chunk-7TQWRIQB.cjs} +12 -12
  27. package/dist/lib/node/{chunk-34WFGSZU.cjs → chunk-CZXXBKMN.cjs} +6 -6
  28. package/dist/lib/node/{chunk-HTWAAR54.cjs → chunk-QZ4XQYNC.cjs} +13 -6
  29. package/dist/lib/node/chunk-QZ4XQYNC.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-7WZANRNS.cjs → chunk-ZO5ABSHT.cjs} +9 -9
  31. package/dist/lib/node/{chunk-7WZANRNS.cjs.map → chunk-ZO5ABSHT.cjs.map} +1 -1
  32. package/dist/lib/node/index.cjs +38 -38
  33. package/dist/lib/node/index.cjs.map +3 -3
  34. package/dist/lib/node/intent-resolver-5LCIY27K.cjs +56 -0
  35. package/dist/lib/node/intent-resolver-5LCIY27K.cjs.map +7 -0
  36. package/dist/lib/node/meta.json +1 -1
  37. package/dist/lib/node/{react-surface-RZ2XV56V.cjs → react-surface-BGRH7FYJ.cjs} +25 -28
  38. package/dist/lib/node/react-surface-BGRH7FYJ.cjs.map +7 -0
  39. package/dist/lib/node/{settings-BO5P5R4I.cjs → settings-4OYDMRVY.cjs} +8 -8
  40. package/dist/lib/node/{state-F26NQP7F.cjs → state-QSA5AOLH.cjs} +10 -10
  41. package/dist/lib/node/{thread-THWQ67WS.cjs → thread-BZE6RKFE.cjs} +7 -7
  42. package/dist/lib/node/types/index.cjs +6 -6
  43. package/dist/lib/node/types/index.cjs.map +1 -1
  44. package/dist/lib/node-esm/{MarkdownContainer-3ZHQTTMQ.mjs → MarkdownContainer-S7FV63XR.mjs} +70 -56
  45. package/dist/lib/node-esm/MarkdownContainer-S7FV63XR.mjs.map +7 -0
  46. package/dist/lib/node-esm/{app-graph-serializer-JTHJUUS2.mjs → app-graph-serializer-H7LI476D.mjs} +4 -4
  47. package/dist/lib/node-esm/{chunk-Y5RSQVGH.mjs → chunk-5J2NP73F.mjs} +8 -8
  48. package/dist/lib/node-esm/chunk-BBVPC53M.mjs +24 -0
  49. package/dist/lib/node-esm/chunk-BBVPC53M.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-CDFNMFGT.mjs → chunk-MMVIEZ43.mjs} +2 -2
  51. package/dist/lib/node-esm/{chunk-HLP536EW.mjs → chunk-OXPPXUUU.mjs} +4 -4
  52. package/dist/lib/node-esm/{chunk-HLP536EW.mjs.map → chunk-OXPPXUUU.mjs.map} +1 -1
  53. package/dist/lib/node-esm/{chunk-2GHK262V.mjs → chunk-Y5QKDC4V.mjs} +2 -2
  54. package/dist/lib/node-esm/index.mjs +9 -9
  55. package/dist/lib/node-esm/index.mjs.map +3 -3
  56. package/dist/lib/node-esm/intent-resolver-HFEI5NFC.mjs +44 -0
  57. package/dist/lib/node-esm/intent-resolver-HFEI5NFC.mjs.map +7 -0
  58. package/dist/lib/node-esm/meta.json +1 -1
  59. package/dist/lib/node-esm/{react-surface-RRXHEW4R.mjs → react-surface-GUW3DPKT.mjs} +13 -16
  60. package/dist/lib/node-esm/react-surface-GUW3DPKT.mjs.map +7 -0
  61. package/dist/lib/node-esm/{settings-E7P5FQ3F.mjs → settings-MEN2YBLA.mjs} +3 -3
  62. package/dist/lib/node-esm/{state-HXSOQNOV.mjs → state-FF4NXLWU.mjs} +3 -3
  63. package/dist/lib/node-esm/{thread-CYEXBXTW.mjs → thread-O2YDKT77.mjs} +3 -3
  64. package/dist/lib/node-esm/types/index.mjs +2 -2
  65. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/index.d.ts +8 -8
  67. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  70. package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
  71. package/dist/types/src/extensions.d.ts.map +1 -1
  72. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  73. package/dist/types/src/meta.d.ts +1 -0
  74. package/dist/types/src/meta.d.ts.map +1 -1
  75. package/dist/types/tsconfig.tsbuildinfo +1 -1
  76. package/package.json +30 -31
  77. package/src/MarkdownPlugin.tsx +4 -12
  78. package/src/capabilities/intent-resolver.ts +16 -10
  79. package/src/capabilities/react-surface.tsx +5 -7
  80. package/src/components/MarkdownEditor.tsx +13 -9
  81. package/src/components/MarkdownSettings.tsx +3 -3
  82. package/src/extensions.tsx +6 -5
  83. package/src/hooks/useSelectCurrentThread.tsx +13 -8
  84. package/src/meta.ts +6 -1
  85. package/src/translations.ts +1 -1
  86. package/dist/lib/browser/MarkdownContainer-ARRY4I6S.mjs.map +0 -7
  87. package/dist/lib/browser/chunk-YB2TJFNH.mjs +0 -15
  88. package/dist/lib/browser/chunk-YB2TJFNH.mjs.map +0 -7
  89. package/dist/lib/browser/intent-resolver-4KWMUMND.mjs +0 -37
  90. package/dist/lib/browser/intent-resolver-4KWMUMND.mjs.map +0 -7
  91. package/dist/lib/browser/react-surface-RL4CISJZ.mjs.map +0 -7
  92. package/dist/lib/node/MarkdownContainer-TV6W64EN.cjs.map +0 -7
  93. package/dist/lib/node/chunk-HTWAAR54.cjs.map +0 -7
  94. package/dist/lib/node/intent-resolver-QN25AFOP.cjs +0 -50
  95. package/dist/lib/node/intent-resolver-QN25AFOP.cjs.map +0 -7
  96. package/dist/lib/node/react-surface-RZ2XV56V.cjs.map +0 -7
  97. package/dist/lib/node-esm/MarkdownContainer-3ZHQTTMQ.mjs.map +0 -7
  98. package/dist/lib/node-esm/chunk-AOKWCL3O.mjs +0 -17
  99. package/dist/lib/node-esm/chunk-AOKWCL3O.mjs.map +0 -7
  100. package/dist/lib/node-esm/intent-resolver-F7MQOTG7.mjs +0 -38
  101. package/dist/lib/node-esm/intent-resolver-F7MQOTG7.mjs.map +0 -7
  102. package/dist/lib/node-esm/react-surface-RRXHEW4R.mjs.map +0 -7
  103. /package/dist/lib/browser/{app-graph-serializer-HHWSLYIW.mjs.map → app-graph-serializer-BG3MHYI4.mjs.map} +0 -0
  104. /package/dist/lib/browser/{chunk-ADAYSA5G.mjs.map → chunk-2NGDXMOE.mjs.map} +0 -0
  105. /package/dist/lib/browser/{chunk-FSAYVXSE.mjs.map → chunk-EZ65DY2X.mjs.map} +0 -0
  106. /package/dist/lib/browser/{chunk-EMIIXXVX.mjs.map → chunk-P4K367ZX.mjs.map} +0 -0
  107. /package/dist/lib/browser/{settings-PTF73JDL.mjs.map → settings-U7E4DUWJ.mjs.map} +0 -0
  108. /package/dist/lib/browser/{state-DOVZP7XJ.mjs.map → state-QMQXUPSI.mjs.map} +0 -0
  109. /package/dist/lib/browser/{thread-G4RS7NBZ.mjs.map → thread-Y4WMNFBC.mjs.map} +0 -0
  110. /package/dist/lib/node/{app-graph-serializer-PJRST43Q.cjs.map → app-graph-serializer-QZWERV4M.cjs.map} +0 -0
  111. /package/dist/lib/node/{chunk-G7WKHUGU.cjs.map → chunk-23NQGZX3.cjs.map} +0 -0
  112. /package/dist/lib/node/{chunk-UFFFUC6W.cjs.map → chunk-7TQWRIQB.cjs.map} +0 -0
  113. /package/dist/lib/node/{chunk-34WFGSZU.cjs.map → chunk-CZXXBKMN.cjs.map} +0 -0
  114. /package/dist/lib/node/{settings-BO5P5R4I.cjs.map → settings-4OYDMRVY.cjs.map} +0 -0
  115. /package/dist/lib/node/{state-F26NQP7F.cjs.map → state-QSA5AOLH.cjs.map} +0 -0
  116. /package/dist/lib/node/{thread-THWQ67WS.cjs.map → thread-BZE6RKFE.cjs.map} +0 -0
  117. /package/dist/lib/node-esm/{app-graph-serializer-JTHJUUS2.mjs.map → app-graph-serializer-H7LI476D.mjs.map} +0 -0
  118. /package/dist/lib/node-esm/{chunk-Y5RSQVGH.mjs.map → chunk-5J2NP73F.mjs.map} +0 -0
  119. /package/dist/lib/node-esm/{chunk-CDFNMFGT.mjs.map → chunk-MMVIEZ43.mjs.map} +0 -0
  120. /package/dist/lib/node-esm/{chunk-2GHK262V.mjs.map → chunk-Y5QKDC4V.mjs.map} +0 -0
  121. /package/dist/lib/node-esm/{settings-E7P5FQ3F.mjs.map → settings-MEN2YBLA.mjs.map} +0 -0
  122. /package/dist/lib/node-esm/{state-HXSOQNOV.mjs.map → state-FF4NXLWU.mjs.map} +0 -0
  123. /package/dist/lib/node-esm/{thread-CYEXBXTW.mjs.map → thread-O2YDKT77.mjs.map} +0 -0
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var intent_resolver_QN25AFOP_exports = {};
20
- __export(intent_resolver_QN25AFOP_exports, {
21
- default: () => intent_resolver_default
22
- });
23
- module.exports = __toCommonJS(intent_resolver_QN25AFOP_exports);
24
- var import_chunk_34WFGSZU = require("./chunk-34WFGSZU.cjs");
25
- var import_chunk_G7WKHUGU = require("./chunk-G7WKHUGU.cjs");
26
- var import_chunk_HTWAAR54 = require("./chunk-HTWAAR54.cjs");
27
- var import_app_framework = require("@dxos/app-framework");
28
- var import_live_object = require("@dxos/live-object");
29
- var import_schema = require("@dxos/schema");
30
- var intent_resolver_default = (context) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.IntentResolver, [
31
- (0, import_app_framework.createResolver)(import_chunk_34WFGSZU.MarkdownAction.Create, ({ name, content }) => {
32
- const doc = (0, import_live_object.create)(import_chunk_34WFGSZU.DocumentType, {
33
- name,
34
- content: (0, import_live_object.makeRef)((0, import_live_object.create)(import_schema.TextType, {
35
- content: content ?? ""
36
- })),
37
- threads: []
38
- });
39
- return {
40
- data: {
41
- object: doc
42
- }
43
- };
44
- }),
45
- (0, import_app_framework.createResolver)(import_chunk_34WFGSZU.MarkdownAction.SetViewMode, ({ id, viewMode }) => {
46
- const { state } = context.requestCapability(import_chunk_G7WKHUGU.MarkdownCapabilities.State);
47
- state.viewMode[id] = viewMode;
48
- })
49
- ]);
50
- //# sourceMappingURL=intent-resolver-QN25AFOP.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver, type PluginsContext } from '@dxos/app-framework';\nimport { makeRef, create } from '@dxos/live-object';\nimport { TextType } from '@dxos/schema';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { DocumentType, MarkdownAction } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver(MarkdownAction.Create, ({ name, content }) => {\n const doc = create(DocumentType, {\n name,\n content: makeRef(create(TextType, { content: content ?? '' })),\n threads: [],\n });\n\n return { data: { object: doc } };\n }),\n createResolver(MarkdownAction.SetViewMode, ({ id, viewMode }) => {\n const { state } = context.requestCapability(MarkdownCapabilities.State);\n state.viewMode[id] = viewMode;\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA+E;AAC/E,yBAAgC;AAChC,oBAAyB;AAKzB,IAAA,0BAAe,CAACA,gBACdC,kCAAYC,kCAAaC,gBAAgB;MACvCC,qCAAeC,qCAAeC,QAAQ,CAAC,EAAEC,MAAMC,QAAO,MAAE;AACtD,UAAMC,UAAMC,2BAAOC,oCAAc;MAC/BJ;MACAC,aAASI,gCAAQF,2BAAOG,wBAAU;QAAEL,SAASA,WAAW;MAAG,CAAA,CAAA;MAC3DM,SAAS,CAAA;IACX,CAAA;AAEA,WAAO;MAAEC,MAAM;QAAEC,QAAQP;MAAI;IAAE;EACjC,CAAA;MACAL,qCAAeC,qCAAeY,aAAa,CAAC,EAAEC,IAAIC,SAAQ,MAAE;AAC1D,UAAM,EAAEC,MAAK,IAAKpB,QAAQqB,kBAAkBC,2CAAqBC,KAAK;AACtEH,UAAMD,SAASD,EAAAA,IAAMC;EACvB,CAAA;CACD;",
6
- "names": ["context", "contributes", "Capabilities", "IntentResolver", "createResolver", "MarkdownAction", "Create", "name", "content", "doc", "create", "DocumentType", "makeRef", "TextType", "threads", "data", "object", "SetViewMode", "id", "viewMode", "state", "requestCapability", "MarkdownCapabilities", "State"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/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 { fullyQualifiedId } from '@dxos/react-client/echo';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { MarkdownContainer, MarkdownSettings } 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'],\n filter: (data): data is { subject: DocumentType } => data.subject instanceof DocumentType,\n component: ({ data, role }) => {\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={fullyQualifiedId(data.subject)}\n object={data.subject}\n role={role}\n settings={settings}\n extensionProviders={state.extensionProviders}\n viewMode={getViewMode(fullyQualifiedId(data.subject))}\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 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 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}/settings`,\n role: 'settings',\n filter: (data): data is any => data.subject === MARKDOWN_PLUGIN,\n component: () => {\n const settingsStore = useCapability(Capabilities.SettingsStore);\n const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;\n return <MarkdownSettings settings={settings} />;\n },\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'));\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 { 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 <>\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 </>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["import_react", "MarkdownSettings", "settings", "t", "useTranslation", "MARKDOWN_PLUGIN", "React", "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", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "role", "filter", "data", "subject", "DocumentType", "component", "settingsStore", "useCapability", "SettingsStore", "getStore", "state", "editorState", "getViewMode", "setViewMode", "MarkdownCapabilities", "State", "fullyQualifiedId", "object", "extensionProviders", "viewMode", "editorStateStore", "onViewModeChange", "isEditorModel"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/MarkdownContainer.tsx", "../../../src/components/MarkdownEditor.tsx", "../../../src/hooks/useSelectCurrentThread.tsx", "../../../src/extensions.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport { Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { fullyQualifiedId, getSpace } from '@dxos/react-client/echo';\n\nimport { MarkdownEditor, type MarkdownEditorProps } from './MarkdownEditor';\nimport { useExtensions } from '../extensions';\nimport { DocumentType, type MarkdownSettingsProps } from '../types';\nimport { getFallbackName } from '../util';\n\nexport type MarkdownContainerProps = Pick<\n MarkdownEditorProps,\n 'role' | 'extensionProviders' | 'viewMode' | 'editorStateStore' | 'onViewModeChange'\n> & {\n id: string;\n object: DocumentType | any;\n settings: MarkdownSettingsProps;\n};\n\n// TODO(burdon): Move toolbar here.\n// TODO(burdon): Factor out difference for ECHO and non-ECHO objects; i.e., single component.\nconst MarkdownContainer = ({\n id,\n role,\n object,\n settings,\n viewMode,\n editorStateStore,\n onViewModeChange,\n}: MarkdownContainerProps) => {\n const scrollPastEnd = role === 'article';\n const doc = object instanceof DocumentType ? object : undefined;\n const extensions = useExtensions({ document: doc, settings, viewMode, editorStateStore });\n\n if (doc) {\n return (\n <DocumentEditor\n id={fullyQualifiedId(object)}\n role={role}\n document={doc}\n extensions={extensions}\n viewMode={viewMode}\n settings={settings}\n scrollPastEnd={scrollPastEnd}\n onViewModeChange={onViewModeChange}\n />\n );\n } else {\n return (\n <MarkdownEditor\n id={id}\n role={role}\n initialValue={object.text}\n extensions={extensions}\n viewMode={viewMode}\n toolbar={settings.toolbar}\n inputMode={settings.editorInputMode}\n scrollPastEnd={scrollPastEnd}\n onViewModeChange={onViewModeChange}\n />\n );\n }\n};\n\ntype DocumentEditorProps = Omit<MarkdownContainerProps, 'object' | 'extensionProviders' | 'editorStateStore'> &\n Pick<MarkdownEditorProps, 'id' | 'scrollPastEnd' | 'extensions'> & {\n document: DocumentType;\n };\n\nexport const DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }: DocumentEditorProps) => {\n const space = getSpace(doc);\n\n // Migrate gradually to `fallbackName`.\n useEffect(() => {\n if (typeof doc.fallbackName === 'string') {\n return;\n }\n\n const fallbackName = doc.content?.target?.content ? getFallbackName(doc.content.target.content) : undefined;\n if (fallbackName) {\n doc.fallbackName = fallbackName;\n }\n }, [doc, doc.content]);\n\n // File dragging.\n const [upload] = useCapabilities(Capabilities.FileUploader);\n const handleFileUpload = useMemo(() => {\n if (space === undefined || upload === undefined) {\n return undefined;\n }\n\n // TODO(burdon): Re-order props: space, file.\n return async (file: File) => upload!(file, space);\n }, [space, upload]);\n\n return (\n <MarkdownEditor\n id={id}\n initialValue={doc.content?.target?.content}\n viewMode={viewMode}\n toolbar={settings.toolbar}\n inputMode={settings.editorInputMode}\n onFileUpload={handleFileUpload}\n {...props}\n />\n );\n};\n\nexport default MarkdownContainer;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { openSearchPanel } from '@codemirror/search';\nimport { type EditorView } from '@codemirror/view';\nimport React, { useMemo, useEffect, useCallback } from 'react';\nimport { useDropzone } from 'react-dropzone';\n\nimport { createIntent, type FileInfo, LayoutAction, NavigationAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n type EditorAction,\n type DNDOptions,\n type EditorViewMode,\n type EditorInputMode,\n type EditorSelectionState,\n type EditorStateStore,\n EditorToolbar,\n type UseTextEditorProps,\n createBasicExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n dropFile,\n editorContent,\n editorGutter,\n processEditorPayload,\n useActionHandler,\n useCommentState,\n useCommentClickListener,\n useFormattingState,\n useTextEditor,\n stackItemContentEditorClassNames,\n useEditorToolbarState,\n createEditorAction,\n} from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { isNotFalsy, nonNullable } from '@dxos/util';\n\nimport { useSelectCurrentThread } from '../hooks';\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownPluginState } from '../types';\n\nexport type MarkdownEditorProps = {\n id: string;\n role?: string;\n inputMode?: EditorInputMode;\n scrollPastEnd?: boolean;\n toolbar?: boolean;\n viewMode?: EditorViewMode;\n editorStateStore?: EditorStateStore;\n onViewModeChange?: (id: string, mode: EditorViewMode) => void;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n} & Pick<UseTextEditorProps, 'initialValue' | 'extensions'> &\n Partial<Pick<MarkdownPluginState, 'extensionProviders'>>;\n\n/**\n * Base markdown editor component.\n *\n * This component provides all the features of the markdown editor that do no depend on ECHO.\n * This allows it to be used as a common editor for markdown content on arbitrary backends (e.g. files).\n */\nexport const MarkdownEditor = ({\n id,\n role = 'article',\n initialValue,\n extensions,\n extensionProviders,\n scrollPastEnd,\n toolbar,\n viewMode,\n editorStateStore,\n onFileUpload,\n onViewModeChange,\n}: MarkdownEditorProps) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n const { themeMode } = useThemeContext();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const toolbarState = useEditorToolbarState({ viewMode });\n const formattingObserver = useFormattingState(toolbarState);\n\n // Restore last selection and scroll point.\n const { scrollTo, selection } = useMemo<EditorSelectionState>(() => editorStateStore?.getState(id) ?? {}, [id]);\n\n // Extensions from other plugins.\n // TODO(burdon): Reconcile with DocumentEditor.useExtensions.\n const providerExtensions = useMemo(\n () => extensionProviders?.flatMap((provider) => provider({})).filter(nonNullable),\n [extensionProviders],\n );\n\n // TODO(Zan): Factor out to thread plugin.\n const commentObserver = useCommentState(toolbarState);\n const onCommentClick = useCallback(async () => {\n await dispatch(createIntent(NavigationAction.Open, { activeParts: { complementary: 'comments' } }));\n await dispatch(createIntent(LayoutAction.SetLayout, { element: 'complementary', state: true }));\n }, [dispatch]);\n const commentClickObserver = useCommentClickListener(onCommentClick);\n\n // TODO(wittjosiah): Factor out to file uploader plugin.\n // Drag files.\n const handleDrop: DNDOptions['onDrop'] = async (view, { files }) => {\n const file = files[0];\n const info = file && onFileUpload ? await onFileUpload(file) : undefined;\n if (info) {\n processEditorPayload(view, { type: 'image', data: info.url });\n }\n };\n\n const {\n parentRef,\n view: editorView,\n focusAttributes,\n } = useTextEditor(\n () => ({\n initialValue,\n extensions: [\n formattingObserver,\n commentObserver,\n commentClickObserver,\n createBasicExtensions({\n readonly: viewMode === 'readonly',\n placeholder: t('editor placeholder'),\n scrollPastEnd: role === 'section' ? false : scrollPastEnd,\n }),\n createMarkdownExtensions({ themeMode }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n slots: { content: { className: editorContent } },\n }),\n editorGutter,\n role !== 'section' && onFileUpload && dropFile({ onDrop: handleDrop }),\n providerExtensions,\n extensions,\n ].filter(isNotFalsy),\n ...(role !== 'section' && {\n id,\n scrollTo,\n selection,\n // TODO(wittjosiah): Autofocus based on layout is racy.\n // autoFocus: layoutPlugin?.provides.layout ? layoutPlugin?.provides.layout.scrollIntoView === id : true,\n moveToEndOfLine: true,\n }),\n }),\n [id, formattingObserver, viewMode, themeMode, extensions, providerExtensions],\n );\n\n useTest(editorView);\n useSelectCurrentThread(editorView, id);\n\n // https://react-dropzone.js.org/#src\n const { acceptedFiles, getInputProps, open } = useDropzone({\n multiple: false,\n noDrag: true,\n accept: {\n 'image/*': ['.jpg', '.jpeg', '.png', '.gif'],\n },\n });\n\n useEffect(() => {\n if (editorView && onFileUpload && acceptedFiles.length) {\n requestAnimationFrame(async () => {\n // NOTE: Clone file since react-dropzone patches in a non-standard `path` property, which confuses IPFS.\n const f = acceptedFiles[0];\n const file = new File([f], f.name, {\n type: f.type,\n lastModified: f.lastModified,\n });\n\n const info = await onFileUpload(file);\n if (info) {\n processEditorPayload(editorView, { type: 'image', data: info.url });\n }\n });\n }\n }, [acceptedFiles, editorView]);\n\n // Toolbar handler.\n const handleToolbarAction = useActionHandler(editorView);\n const handleAction = useCallback(\n (action: EditorAction) => {\n switch (action.properties.type) {\n case 'search': {\n if (editorView) {\n openSearchPanel(editorView);\n }\n return;\n }\n case 'view-mode': {\n onViewModeChange?.(id, action.properties.data);\n return;\n }\n case 'image': {\n open();\n return;\n }\n }\n\n handleToolbarAction?.(action);\n },\n [editorView, onViewModeChange, open],\n );\n\n return (\n <StackItem.Content toolbar={!!toolbar}>\n {toolbar && (\n <>\n <EditorToolbar\n attendableId={id}\n role={role}\n state={toolbarState}\n customActions={onFileUpload ? createUploadAction : undefined}\n onAction={handleAction}\n />\n <input {...getInputProps()} />\n </>\n )}\n <div\n role='none'\n ref={parentRef}\n data-testid='composer.markdownRoot'\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n className={stackItemContentEditorClassNames(role)}\n {...focusAttributes}\n />\n </StackItem.Content>\n );\n};\n\n// Expose editor view for playwright tests.\n// TODO(wittjosiah): Find a better way to expose this or find a way to limit it to test runs.\nconst useTest = (view?: EditorView) => {\n useEffect(() => {\n const composer = (window as any).composer;\n if (composer) {\n composer.editorView = view;\n }\n }, [view]);\n};\n\nexport const createUploadAction = () => ({\n nodes: [\n createEditorAction(\n { type: 'image', testId: 'editor.toolbar.image' },\n 'ph--image-square--regular',\n 'upload image label',\n ),\n ],\n edges: [{ source: 'root', target: 'image' }],\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport { useMemo } from 'react';\n\nimport { createResolver, LayoutAction, useIntentResolver } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { Cursor, setSelection } from '@dxos/react-ui-editor';\n\nimport { MARKDOWN_PLUGIN } from '../meta';\n\n/**\n * Handle scrolling and selection of the current thread in a markdown editor.\n */\nexport const useSelectCurrentThread = (editorView: EditorView | undefined, documentId: string) => {\n const scrollIntoViewResolver = useMemo(\n () =>\n createResolver(\n LayoutAction.ScrollIntoView,\n ({ cursor }) => {\n invariant(editorView, 'Editor view is not defined.');\n const range = Cursor.getRangeFromCursor(editorView.state, cursor!);\n if (range) {\n const selection = editorView.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;\n const effects = [\n // NOTE: This does not use the DOM scrollIntoView function.\n EditorView.scrollIntoView(range.from, { y: 'start', yMargin: 96 }),\n ];\n if (selection) {\n // Update the editor selection to get bi-directional highlighting.\n effects.push(setSelection.of({ current: documentId }));\n }\n\n editorView.dispatch({\n effects,\n selection: selection ? { anchor: range.from } : undefined,\n });\n }\n },\n {\n disposition: 'hoist',\n filter: (data) => !!editorView && data.id === documentId && !!data.cursor,\n },\n ),\n [documentId, editorView],\n );\n\n useIntentResolver(MARKDOWN_PLUGIN, scrollIntoViewResolver);\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type AnchorHTMLAttributes, type ReactNode, useMemo } from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport {\n createIntent,\n NavigationAction,\n type PromiseIntentDispatcher,\n useCapabilities,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { createDocAccessor, fullyQualifiedId, getSpace, type Query } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Icon, ThemeProvider } from '@dxos/react-ui';\nimport {\n type AutocompleteResult,\n type EditorStateStore,\n type EditorViewMode,\n type Extension,\n InputModeExtensions,\n createDataExtensions,\n autocomplete,\n decorateMarkdown,\n folding,\n formattingKeymap,\n linkTooltip,\n listener,\n selectionState,\n typewriter,\n} from '@dxos/react-ui-editor';\nimport { defaultTx } from '@dxos/react-ui-theme';\nimport { isNotFalsy } from '@dxos/util';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { type DocumentType, type MarkdownSettingsProps } from './types';\nimport { setFallbackName } from './util';\n\ntype ExtensionsOptions = {\n document?: DocumentType;\n dispatch?: PromiseIntentDispatcher;\n query?: Query<DocumentType>;\n settings: MarkdownSettingsProps;\n viewMode?: EditorViewMode;\n editorStateStore?: EditorStateStore;\n};\n\n// TODO(burdon): Merge with createBaseExtensions below.\nexport const useExtensions = ({ document, settings, viewMode, editorStateStore }: ExtensionsOptions): Extension[] => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const identity = useIdentity();\n const space = getSpace(document);\n\n // TODO(wittjosiah): Autocomplete is not working and this query is causing performance issues.\n // TODO(burdon): Unsubscribe.\n // const query = space?.db.query(Filter.schema(DocumentType));\n // query?.subscribe();\n const baseExtensions = useMemo(\n () =>\n createBaseExtensions({\n document,\n settings,\n viewMode,\n dispatch,\n // query,\n }),\n [\n document,\n viewMode,\n dispatch,\n settings,\n settings.editorInputMode,\n settings.folding,\n settings.numberedHeadings,\n settings.debug,\n settings.typewriter,\n ],\n );\n\n const extensionProviders = useCapabilities(MarkdownCapabilities.Extensions);\n\n //\n // External extensions from other plugins.\n //\n const pluginExtensions = useMemo<Extension[] | undefined>(\n () =>\n extensionProviders.flat().reduce((acc: Extension[], provider) => {\n const extension = typeof provider === 'function' ? provider({ document }) : provider;\n if (extension) {\n acc.push(extension);\n }\n\n return acc;\n }, []),\n [extensionProviders, document],\n );\n\n //\n // Basic plugins.\n //\n return useMemo<Extension[]>(\n () =>\n [\n // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.\n document &&\n createDataExtensions({\n id: document.id,\n text: document.content.target && createDocAccessor(document.content.target, ['content']),\n space,\n identity,\n }),\n selectionState(editorStateStore),\n document &&\n listener({\n onChange: (text) => setFallbackName(document, text),\n }),\n baseExtensions,\n pluginExtensions,\n ].filter(isNotFalsy),\n [baseExtensions, pluginExtensions, document, document?.content?.target, space, identity],\n );\n};\n\n/**\n * Create extension instances for editor.\n */\nconst createBaseExtensions = ({ document, dispatch, settings, query, viewMode }: ExtensionsOptions): Extension[] => {\n const extensions: Extension[] = [\n settings.editorInputMode && InputModeExtensions[settings.editorInputMode],\n settings.folding && folding(),\n ].filter(isNotFalsy);\n\n //\n // Markdown\n //\n if (viewMode !== 'source') {\n extensions.push(\n ...[\n formattingKeymap(),\n decorateMarkdown({\n selectionChangeDelay: 100,\n numberedHeadings: settings.numberedHeadings ? { from: 2 } : undefined,\n // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.\n renderLinkButton:\n dispatch && document\n ? onRenderLink((id: string) => {\n void dispatch(\n createIntent(NavigationAction.AddToActive, {\n id,\n part: 'main',\n pivotId: fullyQualifiedId(document),\n scrollIntoView: true,\n }),\n );\n })\n : undefined,\n }),\n linkTooltip(renderLinkTooltip),\n ],\n );\n }\n\n //\n // Autocomplete object links.\n //\n if (query) {\n extensions.push(\n autocomplete({\n onSearch: (text: string) => {\n // TODO(burdon): Specify filter (e.g., stack).\n return query.objects\n .map<AutocompleteResult | undefined>((object) =>\n object.name?.length && object.id !== document?.id\n ? {\n label: object.name,\n // TODO(burdon): Factor out URL builder.\n apply: `[${object.name}](/${fullyQualifiedId(object)})`,\n }\n : undefined,\n )\n .filter(isNotFalsy);\n },\n }),\n );\n }\n\n if (settings.debug) {\n const items = settings.typewriter?.split(/[,\\n]/) ?? '';\n if (items) {\n extensions.push(typewriter({ items }));\n }\n }\n\n return extensions;\n};\n\n// TODO(burdon): Factor out styles.\nconst style = {\n hover: 'rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400',\n icon: 'inline-block leading-none mis-1 cursor-pointer',\n};\n\nconst onRenderLink = (onSelectObject: (id: string) => void) => (el: Element, url: string) => {\n // TODO(burdon): Formalize/document internal link format.\n const isInternal =\n url.startsWith('/') ||\n // TODO(wittjosiah): This should probably be parsed out on paste?\n url.startsWith(window.location.origin);\n\n const options: AnchorHTMLAttributes<any> = isInternal\n ? {\n onClick: () => {\n const qualifiedId = url.split('/').at(-1);\n invariant(qualifiedId, 'Invalid link format.');\n onSelectObject(qualifiedId);\n },\n }\n : {\n href: url,\n rel: 'noreferrer',\n target: '_blank',\n };\n\n renderRoot(\n el,\n <a {...options} className={style.hover}>\n <Icon\n icon={isInternal ? 'ph--arrow-square-down--bold' : 'ph--arrow-square-out--bold'}\n size={4}\n classNames={style.icon}\n />\n </a>,\n );\n};\n\nconst renderLinkTooltip = (el: Element, url: string) => {\n const web = new URL(url);\n renderRoot(\n el,\n <a href={url} rel='noreferrer' target='_blank' className={style.hover}>\n {web.origin}\n <Icon icon='ph--arrow-square-out--bold' size={4} classNames={style.icon} />\n </a>,\n );\n};\n\n// TODO(burdon): Remove react rendering; use DOM directly.\nexport const renderRoot = <T extends Element>(root: T, node: ReactNode): T => {\n createRoot(root).render(<ThemeProvider tx={defaultTx}>{node}</ThemeProvider>);\n return root;\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "useEffect", "useMemo", "Capabilities", "useCapabilities", "fullyQualifiedId", "getSpace", "openSearchPanel", "React", "useMemo", "useEffect", "useCallback", "useDropzone", "createIntent", "LayoutAction", "NavigationAction", "useIntentDispatcher", "useThemeContext", "useTranslation", "EditorToolbar", "createBasicExtensions", "createMarkdownExtensions", "createThemeExtensions", "dropFile", "editorContent", "editorGutter", "processEditorPayload", "useActionHandler", "useCommentState", "useCommentClickListener", "useFormattingState", "useTextEditor", "stackItemContentEditorClassNames", "useEditorToolbarState", "createEditorAction", "StackItem", "isNotFalsy", "nonNullable", "EditorView", "useMemo", "createResolver", "LayoutAction", "useIntentResolver", "invariant", "Cursor", "setSelection", "useSelectCurrentThread", "editorView", "documentId", "scrollIntoViewResolver", "useMemo", "createResolver", "LayoutAction", "ScrollIntoView", "cursor", "invariant", "range", "Cursor", "getRangeFromCursor", "state", "selection", "main", "from", "anchor", "undefined", "effects", "EditorView", "scrollIntoView", "y", "yMargin", "push", "setSelection", "of", "current", "dispatch", "disposition", "filter", "data", "id", "useIntentResolver", "MARKDOWN_PLUGIN", "MarkdownEditor", "id", "role", "initialValue", "extensions", "extensionProviders", "scrollPastEnd", "toolbar", "viewMode", "editorStateStore", "onFileUpload", "onViewModeChange", "t", "useTranslation", "MARKDOWN_PLUGIN", "themeMode", "useThemeContext", "dispatchPromise", "dispatch", "useIntentDispatcher", "toolbarState", "useEditorToolbarState", "formattingObserver", "useFormattingState", "scrollTo", "selection", "useMemo", "getState", "providerExtensions", "flatMap", "provider", "filter", "nonNullable", "commentObserver", "useCommentState", "onCommentClick", "useCallback", "createIntent", "NavigationAction", "Open", "activeParts", "complementary", "LayoutAction", "SetLayout", "element", "state", "commentClickObserver", "useCommentClickListener", "handleDrop", "view", "files", "file", "info", "undefined", "processEditorPayload", "type", "data", "url", "parentRef", "editorView", "focusAttributes", "useTextEditor", "createBasicExtensions", "readonly", "placeholder", "createMarkdownExtensions", "createThemeExtensions", "syntaxHighlighting", "slots", "content", "className", "editorContent", "editorGutter", "dropFile", "onDrop", "isNotFalsy", "moveToEndOfLine", "useTest", "useSelectCurrentThread", "acceptedFiles", "getInputProps", "open", "useDropzone", "multiple", "noDrag", "accept", "useEffect", "length", "requestAnimationFrame", "f", "File", "name", "lastModified", "handleToolbarAction", "useActionHandler", "handleAction", "action", "properties", "openSearchPanel", "StackItem", "Content", "EditorToolbar", "attendableId", "customActions", "createUploadAction", "onAction", "input", "div", "ref", "data-testid", "data-toolbar", "stackItemContentEditorClassNames", "composer", "window", "nodes", "createEditorAction", "testId", "edges", "source", "target", "React", "useMemo", "createRoot", "createIntent", "NavigationAction", "useCapabilities", "useIntentDispatcher", "invariant", "createDocAccessor", "fullyQualifiedId", "getSpace", "useIdentity", "Icon", "ThemeProvider", "InputModeExtensions", "createDataExtensions", "autocomplete", "decorateMarkdown", "folding", "formattingKeymap", "linkTooltip", "listener", "selectionState", "typewriter", "defaultTx", "isNotFalsy", "useExtensions", "document", "settings", "viewMode", "editorStateStore", "dispatchPromise", "dispatch", "useIntentDispatcher", "identity", "useIdentity", "space", "getSpace", "baseExtensions", "useMemo", "createBaseExtensions", "editorInputMode", "folding", "numberedHeadings", "debug", "typewriter", "extensionProviders", "useCapabilities", "MarkdownCapabilities", "Extensions", "pluginExtensions", "flat", "reduce", "acc", "provider", "extension", "push", "createDataExtensions", "id", "text", "content", "target", "createDocAccessor", "selectionState", "listener", "onChange", "setFallbackName", "filter", "isNotFalsy", "query", "extensions", "InputModeExtensions", "formattingKeymap", "decorateMarkdown", "selectionChangeDelay", "from", "undefined", "renderLinkButton", "onRenderLink", "createIntent", "NavigationAction", "AddToActive", "part", "pivotId", "fullyQualifiedId", "scrollIntoView", "linkTooltip", "renderLinkTooltip", "autocomplete", "onSearch", "objects", "map", "object", "name", "length", "label", "apply", "items", "split", "style", "hover", "icon", "onSelectObject", "el", "url", "isInternal", "startsWith", "window", "location", "origin", "options", "onClick", "qualifiedId", "at", "invariant", "href", "rel", "renderRoot", "React", "a", "className", "Icon", "size", "classNames", "web", "URL", "root", "node", "createRoot", "render", "ThemeProvider", "tx", "defaultTx", "MarkdownContainer", "id", "role", "object", "settings", "viewMode", "editorStateStore", "onViewModeChange", "scrollPastEnd", "doc", "DocumentType", "undefined", "extensions", "useExtensions", "document", "React", "DocumentEditor", "fullyQualifiedId", "MarkdownEditor", "initialValue", "text", "toolbar", "inputMode", "editorInputMode", "props", "space", "getSpace", "useEffect", "fallbackName", "content", "target", "getFallbackName", "upload", "useCapabilities", "Capabilities", "FileUploader", "handleFileUpload", "useMemo", "file", "onFileUpload"]
7
- }
@@ -1,17 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // packages/plugins/plugin-markdown/src/meta.ts
4
- var MARKDOWN_PLUGIN = "dxos.org/plugin/markdown";
5
- var meta = {
6
- id: MARKDOWN_PLUGIN,
7
- name: "Markdown",
8
- description: "Text editor supporting extended Markdown.",
9
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
10
- icon: "ph--text-aa--regular"
11
- };
12
-
13
- export {
14
- MARKDOWN_PLUGIN,
15
- meta
16
- };
17
- //# sourceMappingURL=chunk-AOKWCL3O.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const MARKDOWN_PLUGIN = 'dxos.org/plugin/markdown';\n\nexport const meta = {\n id: MARKDOWN_PLUGIN,\n name: 'Markdown',\n description: 'Text editor supporting extended Markdown.',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n icon: 'ph--text-aa--regular',\n} satisfies PluginMeta;\n"],
5
- "mappings": ";;;AAMO,IAAMA,kBAAkB;AAExB,IAAMC,OAAO;EAClBC,IAAIF;EACJG,MAAM;EACNC,aAAa;EACbC,QAAQ;EACRC,MAAM;AACR;",
6
- "names": ["MARKDOWN_PLUGIN", "meta", "id", "name", "description", "source", "icon"]
7
- }
@@ -1,38 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- DocumentType,
4
- MarkdownAction
5
- } from "./chunk-CDFNMFGT.mjs";
6
- import {
7
- MarkdownCapabilities
8
- } from "./chunk-2GHK262V.mjs";
9
- import "./chunk-AOKWCL3O.mjs";
10
-
11
- // packages/plugins/plugin-markdown/src/capabilities/intent-resolver.ts
12
- import { Capabilities, contributes, createResolver } from "@dxos/app-framework";
13
- import { makeRef, create } from "@dxos/live-object";
14
- import { TextType } from "@dxos/schema";
15
- var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
16
- createResolver(MarkdownAction.Create, ({ name, content }) => {
17
- const doc = create(DocumentType, {
18
- name,
19
- content: makeRef(create(TextType, {
20
- content: content ?? ""
21
- })),
22
- threads: []
23
- });
24
- return {
25
- data: {
26
- object: doc
27
- }
28
- };
29
- }),
30
- createResolver(MarkdownAction.SetViewMode, ({ id, viewMode }) => {
31
- const { state } = context.requestCapability(MarkdownCapabilities.State);
32
- state.viewMode[id] = viewMode;
33
- })
34
- ]);
35
- export {
36
- intent_resolver_default as default
37
- };
38
- //# sourceMappingURL=intent-resolver-F7MQOTG7.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver, type PluginsContext } from '@dxos/app-framework';\nimport { makeRef, create } from '@dxos/live-object';\nimport { TextType } from '@dxos/schema';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { DocumentType, MarkdownAction } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver(MarkdownAction.Create, ({ name, content }) => {\n const doc = create(DocumentType, {\n name,\n content: makeRef(create(TextType, { content: content ?? '' })),\n threads: [],\n });\n\n return { data: { object: doc } };\n }),\n createResolver(MarkdownAction.SetViewMode, ({ id, viewMode }) => {\n const { state } = context.requestCapability(MarkdownCapabilities.State);\n state.viewMode[id] = viewMode;\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,sBAA2C;AAC/E,SAASC,SAASC,cAAc;AAChC,SAASC,gBAAgB;AAKzB,IAAA,0BAAe,CAACC,YACdC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAeC,eAAeC,QAAQ,CAAC,EAAEC,MAAMC,QAAO,MAAE;AACtD,UAAMC,MAAMC,OAAOC,cAAc;MAC/BJ;MACAC,SAASI,QAAQF,OAAOG,UAAU;QAAEL,SAASA,WAAW;MAAG,CAAA,CAAA;MAC3DM,SAAS,CAAA;IACX,CAAA;AAEA,WAAO;MAAEC,MAAM;QAAEC,QAAQP;MAAI;IAAE;EACjC,CAAA;EACAL,eAAeC,eAAeY,aAAa,CAAC,EAAEC,IAAIC,SAAQ,MAAE;AAC1D,UAAM,EAAEC,MAAK,IAAKpB,QAAQqB,kBAAkBC,qBAAqBC,KAAK;AACtEH,UAAMD,SAASD,EAAAA,IAAMC;EACvB,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "createResolver", "makeRef", "create", "TextType", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "MarkdownAction", "Create", "name", "content", "doc", "create", "DocumentType", "makeRef", "TextType", "threads", "data", "object", "SetViewMode", "id", "viewMode", "state", "requestCapability", "MarkdownCapabilities", "State"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/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 { fullyQualifiedId } from '@dxos/react-client/echo';\n\nimport { MarkdownCapabilities } from './capabilities';\nimport { MarkdownContainer, MarkdownSettings } 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'],\n filter: (data): data is { subject: DocumentType } => data.subject instanceof DocumentType,\n component: ({ data, role }) => {\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={fullyQualifiedId(data.subject)}\n object={data.subject}\n role={role}\n settings={settings}\n extensionProviders={state.extensionProviders}\n viewMode={getViewMode(fullyQualifiedId(data.subject))}\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 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 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}/settings`,\n role: 'settings',\n filter: (data): data is any => data.subject === MARKDOWN_PLUGIN,\n component: () => {\n const settingsStore = useCapability(Capabilities.SettingsStore);\n const settings = settingsStore.getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;\n return <MarkdownSettings settings={settings} />;\n },\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'));\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 { 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 <>\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 </>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "createSurface", "contributes", "Capabilities", "useCapability", "fullyQualifiedId", "lazy", "React", "Input", "Select", "useTranslation", "EditorInputModes", "EditorViewModes", "DeprecatedFormInput", "MarkdownSettings", "settings", "t", "useTranslation", "MARKDOWN_PLUGIN", "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", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "MARKDOWN_PLUGIN", "role", "filter", "data", "subject", "DocumentType", "component", "settingsStore", "useCapability", "SettingsStore", "settings", "getStore", "value", "state", "editorState", "getViewMode", "setViewMode", "MarkdownCapabilities", "State", "React", "MarkdownContainer", "fullyQualifiedId", "object", "extensionProviders", "viewMode", "editorStateStore", "onViewModeChange", "isEditorModel", "MarkdownSettings"]
7
- }