@dxos/plugin-markdown 0.8.4-main.21d9917 → 0.8.4-main.2244d791bb
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.
- package/dist/lib/browser/MarkdownCard-Z6PWYEHJ.mjs +11 -0
- package/dist/lib/browser/MarkdownContainer-KGEX4KEN.mjs +11 -0
- package/dist/lib/browser/{anchor-sort-WQ3TL7ZI.mjs → anchor-sort-QCUZGON5.mjs} +5 -4
- package/dist/lib/browser/anchor-sort-QCUZGON5.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-ULZUJKOD.mjs → app-graph-serializer-6NGPRTY6.mjs} +7 -6
- package/dist/lib/browser/app-graph-serializer-6NGPRTY6.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-HYSNAH6Z.mjs +17 -0
- package/dist/lib/browser/blueprint-definition-HYSNAH6Z.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +4 -4
- package/dist/lib/browser/{chunk-BX73DASG.mjs → chunk-IKUJPKAE.mjs} +130 -36
- package/dist/lib/browser/chunk-IKUJPKAE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-JOXYQLKH.mjs → chunk-JODBECJA.mjs} +5 -3
- package/dist/lib/browser/chunk-JODBECJA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-CUGDX7KA.mjs → chunk-KW4FLYZS.mjs} +2 -2
- package/dist/lib/browser/{chunk-FWQQW6KU.mjs → chunk-LIZX2OAT.mjs} +72 -38
- package/dist/lib/browser/chunk-LIZX2OAT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VQ3WOAB6.mjs → chunk-LRRS3L7O.mjs} +7 -9
- package/dist/lib/browser/chunk-LRRS3L7O.mjs.map +7 -0
- package/dist/lib/browser/{chunk-LMO5UVKL.mjs → chunk-PV7GW7CI.mjs} +3 -4
- package/dist/lib/browser/{chunk-LMO5UVKL.mjs.map → chunk-PV7GW7CI.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-KDKXFKDN.mjs → chunk-YZKNND37.mjs} +8 -7
- package/dist/lib/browser/chunk-YZKNND37.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +11 -10
- package/dist/lib/browser/cli/index.mjs.map +3 -3
- package/dist/lib/browser/index.mjs +45 -42
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-EGCWOQKJ.mjs → operation-resolver-EHCL5OS7.mjs} +5 -5
- package/dist/lib/browser/operation-resolver-EHCL5OS7.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-64FZ7T7F.mjs → react-surface-SQVRMKCQ.mjs} +27 -27
- package/dist/lib/browser/react-surface-SQVRMKCQ.mjs.map +7 -0
- package/dist/lib/browser/{settings-JY5JE7MI.mjs → settings-4DDC3NMP.mjs} +5 -4
- package/dist/lib/browser/settings-4DDC3NMP.mjs.map +7 -0
- package/dist/lib/browser/{state-QE7VSJWJ.mjs → state-UIZ3X7RA.mjs} +2 -2
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node-esm/{MarkdownCard-GMNXUWWR.mjs → MarkdownCard-NUGJRT43.mjs} +4 -5
- package/dist/lib/node-esm/{MarkdownContainer-LUSMORP2.mjs → MarkdownContainer-6D7OHAZA.mjs} +4 -5
- package/dist/lib/node-esm/{anchor-sort-G7D5TAI6.mjs → anchor-sort-ABOJXSU6.mjs} +5 -4
- package/dist/lib/node-esm/anchor-sort-ABOJXSU6.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-W5YMQP7P.mjs → app-graph-serializer-OYKI3LW2.mjs} +7 -6
- package/dist/lib/node-esm/app-graph-serializer-OYKI3LW2.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-SOC744SQ.mjs +18 -0
- package/dist/lib/node-esm/blueprint-definition-SOC744SQ.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +4 -4
- package/dist/lib/node-esm/{chunk-KXEQCFMB.mjs → chunk-A5WB5WP7.mjs} +7 -9
- package/dist/lib/node-esm/chunk-A5WB5WP7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-EYAFC4N7.mjs → chunk-BMKFZ5WK.mjs} +72 -38
- package/dist/lib/node-esm/chunk-BMKFZ5WK.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-W3IIKDV5.mjs → chunk-GXEX67UI.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-PRV35A7Z.mjs → chunk-KG7JF7PJ.mjs} +3 -4
- package/dist/lib/node-esm/{chunk-PRV35A7Z.mjs.map → chunk-KG7JF7PJ.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-44VJC3QF.mjs → chunk-PPGVKPFP.mjs} +5 -3
- package/dist/lib/node-esm/chunk-PPGVKPFP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3JYPCC7M.mjs → chunk-U4W25KQQ.mjs} +8 -7
- package/dist/lib/node-esm/chunk-U4W25KQQ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-D4BCFPKK.mjs → chunk-WJRTAU55.mjs} +130 -36
- package/dist/lib/node-esm/chunk-WJRTAU55.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +11 -10
- package/dist/lib/node-esm/cli/index.mjs.map +3 -3
- package/dist/lib/node-esm/index.mjs +45 -42
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{operation-resolver-2HIS2AQZ.mjs → operation-resolver-ILDFG244.mjs} +5 -5
- package/dist/lib/node-esm/operation-resolver-ILDFG244.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-PKEVHTJK.mjs → react-surface-5DVOPYF3.mjs} +27 -27
- package/dist/lib/node-esm/react-surface-5DVOPYF3.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-4UGMPIRY.mjs → settings-MHB4FPJU.mjs} +5 -4
- package/dist/lib/node-esm/settings-MHB4FPJU.mjs.map +7 -0
- package/dist/lib/node-esm/{state-LXE5XIN4.mjs → state-B2JSHJKS.mjs} +2 -2
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/blueprints/functions/create.d.ts.map +1 -1
- package/dist/types/src/blueprints/functions/index.d.ts +41 -3
- package/dist/types/src/blueprints/functions/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/functions/open.d.ts +8 -1
- package/dist/types/src/blueprints/functions/open.d.ts.map +1 -1
- package/dist/types/src/blueprints/functions/update.d.ts +16 -3
- package/dist/types/src/blueprints/functions/update.d.ts.map +1 -1
- package/dist/types/src/blueprints/index.d.ts +1 -1
- package/dist/types/src/blueprints/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/markdown-blueprint.d.ts +3 -20
- package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +3 -2
- package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort/index.d.ts +1 -1
- package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +2 -2
- package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -7
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings/index.d.ts +1 -1
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
- package/dist/types/src/cli/plugin.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.d.ts +1 -1
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.stories.d.ts +29 -0
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +2 -2
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +2 -2
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
- package/dist/types/src/hooks/useExtensions.d.ts +2 -2
- package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +29 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownAction.d.ts +1 -1
- package/dist/types/src/types/events.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +66 -59
- package/src/MarkdownPlugin.tsx +26 -25
- package/src/blueprints/functions/create.conversations.json +1 -1
- package/src/blueprints/functions/create.test.ts +23 -56
- package/src/blueprints/functions/create.ts +3 -2
- package/src/blueprints/functions/index.ts +11 -3
- package/src/blueprints/functions/open.ts +9 -9
- package/src/blueprints/functions/update.conversations.json +1 -1
- package/src/blueprints/functions/update.test.ts +132 -66
- package/src/blueprints/functions/update.ts +53 -12
- package/src/blueprints/index.ts +1 -1
- package/src/blueprints/markdown-blueprint.ts +14 -6
- package/src/capabilities/anchor-sort/anchor-sort.ts +3 -2
- package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +4 -3
- package/src/capabilities/artifact-definition/artifact-definition.ts +2 -2
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -14
- package/src/capabilities/operation-resolver/operation-resolver.ts +3 -3
- package/src/capabilities/react-surface/react-surface.tsx +12 -10
- package/src/capabilities/settings/settings.ts +3 -2
- package/src/cli/plugin.ts +5 -4
- package/src/components/MarkdownCard/MarkdownCard.stories.tsx +1 -1
- package/src/components/MarkdownCard/MarkdownCard.tsx +7 -5
- package/src/components/MarkdownContainer.stories.tsx +5 -5
- package/src/components/MarkdownContainer.tsx +6 -4
- package/src/components/MarkdownEditor/FileUpload.tsx +2 -2
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +2 -2
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +17 -11
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +2 -2
- package/src/components/MarkdownSettings/MarkdownSettings.tsx +24 -24
- package/src/components/Suggestions.stories.tsx +3 -3
- package/src/hooks/useExtensions.tsx +5 -4
- package/src/hooks/useLinkQuery.ts +3 -3
- package/src/hooks/useSelectCurrentThread.tsx +3 -3
- package/src/index.ts +2 -0
- package/src/testing.ts +1 -1
- package/src/translations.ts +2 -0
- package/src/types/events.ts +3 -2
- package/dist/lib/browser/MarkdownCard-HFNNE4B4.mjs +0 -12
- package/dist/lib/browser/MarkdownContainer-V7EAADMF.mjs +0 -12
- package/dist/lib/browser/anchor-sort-WQ3TL7ZI.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs +0 -19
- package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs.map +0 -7
- package/dist/lib/browser/chunk-BX73DASG.mjs.map +0 -7
- package/dist/lib/browser/chunk-FWQQW6KU.mjs.map +0 -7
- package/dist/lib/browser/chunk-JOXYQLKH.mjs.map +0 -7
- package/dist/lib/browser/chunk-KDKXFKDN.mjs.map +0 -7
- package/dist/lib/browser/chunk-S45ULIOG.mjs +0 -101
- package/dist/lib/browser/chunk-S45ULIOG.mjs.map +0 -7
- package/dist/lib/browser/chunk-VQ3WOAB6.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-64FZ7T7F.mjs.map +0 -7
- package/dist/lib/browser/settings-JY5JE7MI.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-G7D5TAI6.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs +0 -20
- package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3JYPCC7M.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-44VJC3QF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-D4BCFPKK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-EYAFC4N7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KXEQCFMB.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SDTYEGGL.mjs +0 -102
- package/dist/lib/node-esm/chunk-SDTYEGGL.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-PKEVHTJK.mjs.map +0 -7
- package/dist/lib/node-esm/settings-4UGMPIRY.mjs.map +0 -7
- /package/dist/lib/browser/{MarkdownCard-HFNNE4B4.mjs.map → MarkdownCard-Z6PWYEHJ.mjs.map} +0 -0
- /package/dist/lib/browser/{MarkdownContainer-V7EAADMF.mjs.map → MarkdownContainer-KGEX4KEN.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-CUGDX7KA.mjs.map → chunk-KW4FLYZS.mjs.map} +0 -0
- /package/dist/lib/browser/{state-QE7VSJWJ.mjs.map → state-UIZ3X7RA.mjs.map} +0 -0
- /package/dist/lib/node-esm/{MarkdownCard-GMNXUWWR.mjs.map → MarkdownCard-NUGJRT43.mjs.map} +0 -0
- /package/dist/lib/node-esm/{MarkdownContainer-LUSMORP2.mjs.map → MarkdownContainer-6D7OHAZA.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-W3IIKDV5.mjs.map → chunk-GXEX67UI.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-LXE5XIN4.mjs.map → state-B2JSHJKS.mjs.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/types/MarkdownAction.ts", "../../../src/meta.ts", "../../../src/types/Markdown.ts", "../../../src/types/capabilities.ts", "../../../src/types/events.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { Collection } from '@dxos/schema';\nimport { EditorViewMode } from '@dxos/ui-editor/types';\n\nimport { meta } from '../meta';\n\nimport { Document } from './Markdown';\n\nconst MARKDOWN_OPERATION = `${meta.id}/operation`;\n\nexport namespace MarkdownOperation {\n export const OnCreateSpace = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n isDefault: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Void,\n },\n });\n\n export const Create = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/create`, name: 'Create Markdown Document' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Document,\n }),\n },\n });\n\n // TODO(wittjosiah): This appears to be unused.\n export const SetViewMode = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/set-view-mode`, name: 'Set View Mode' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n id: Schema.String,\n viewMode: EditorViewMode,\n }),\n output: Schema.Void,\n },\n });\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/markdown',\n name: 'Markdown',\n description: trim`\n Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.\n Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.\n `,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { Text } from '@dxos/schema';\nimport { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';\n\n/**\n * Document Item type.\n */\nexport const Document = Schema.Struct({\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),\n content: Type.Ref(Text.Text).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/Document',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name', 'fallbackName']),\n DescriptionAnnotation.set('description'),\n);\n\nexport type Document = Schema.Schema.Type<typeof Document>;\n\n/**\n * Document factory.\n */\nexport const make = ({\n content = '',\n ...props\n}: Partial<{ name: string; fallbackName: string; content: string }> = {}) =>\n Obj.make(Document, { ...props, content: Ref.make(Text.make(content)) });\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n defaultViewMode: EditorViewMode,\n editorInputMode: Schema.optional(EditorInputMode),\n experimental: Schema.optional(Schema.Boolean),\n debug: Schema.optional(Schema.Boolean),\n toolbar: Schema.optional(Schema.Boolean),\n typewriter: Schema.optional(Schema.String),\n // TODO(burdon): Per document settings.\n numberedHeadings: Schema.optional(Schema.Boolean),\n folding: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type EditorStateStore, type EditorViewMode } from '@dxos/ui-editor';\n\nimport { meta } from '../meta';\n\nimport type * as Markdown from './Markdown';\nimport { type MarkdownExtensionProvider } from './types';\n\n/** Schema for persisted markdown state. */\nexport const MarkdownStateSchema = Schema.mutable(\n Schema.Struct({\n viewMode: Schema.Record({ key: Schema.String, value: Schema.String }),\n }),\n);\n\nexport type MarkdownState = {\n viewMode: Record<string, EditorViewMode>;\n};\n\nexport namespace MarkdownCapabilities {\n export const Settings = Capability.make<Atom.Writable<Markdown.Settings>>(`${meta.id}/capability/settings`);\n\n /** Persisted state atom for view mode per document. */\n export const State = Capability.make<Atom.Writable<MarkdownState>>(`${meta.id}/capability/state`);\n\n /** Editor state store for cursor positions, scroll state, etc. */\n export const EditorState = Capability.make<EditorStateStore>(`${meta.id}/capability/editor-state`);\n\n // TODO(burdon): Move to ./types (external API)?\n export const Extensions = Capability.make<MarkdownExtensionProvider[]>(`${meta.id}/capability/extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ActivationEvent
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["Schema", "Capability", "Operation", "SpaceSchema", "Collection", "EditorViewMode", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots", "Schema", "Obj", "Ref", "Type", "DescriptionAnnotation", "FormInputAnnotation", "LabelAnnotation", "Text", "EditorInputMode", "EditorViewMode", "Document", "Struct", "name", "optional", "String", "description", "fallbackName", "pipe", "FormInputAnnotation", "set", "content", "Type", "Ref", "Text", "object", "typename", "version", "LabelAnnotation", "DescriptionAnnotation", "make", "props", "Obj", "Settings", "mutable", "defaultViewMode", "EditorViewMode", "editorInputMode", "EditorInputMode", "experimental", "Boolean", "debug", "toolbar", "typewriter", "numberedHeadings", "folding", "MARKDOWN_OPERATION", "meta", "id", "MarkdownOperation", "OnCreateSpace", "Operation", "make", "key", "name", "services", "Capability", "Service", "schema", "input", "Struct", "space", "SpaceSchema", "rootCollection", "Collection", "isDefault", "optional", "Boolean", "output", "Void", "Create", "String", "content", "object", "Document", "SetViewMode", "viewMode", "EditorViewMode", "Schema", "Capability", "MarkdownStateSchema", "mutable", "Struct", "viewMode", "Record", "key", "String", "value", "MarkdownCapabilities", "Settings", "Capability", "make", "meta", "id", "State", "EditorState", "Extensions", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { Collection } from '@dxos/schema';\nimport { EditorViewMode } from '@dxos/ui-editor/types';\n\nimport { meta } from '../meta';\n\nimport { Document } from './Markdown';\n\nconst MARKDOWN_OPERATION = `${meta.id}/operation`;\n\nexport namespace MarkdownOperation {\n export const OnCreateSpace = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n isDefault: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Void,\n },\n });\n\n export const Create = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/create`, name: 'Create Markdown Document' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n content: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Document,\n }),\n },\n });\n\n // TODO(wittjosiah): This appears to be unused.\n export const SetViewMode = Operation.make({\n meta: { key: `${MARKDOWN_OPERATION}/set-view-mode`, name: 'Set View Mode' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n id: Schema.String,\n viewMode: EditorViewMode,\n }),\n output: Schema.Void,\n },\n });\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/markdown',\n name: 'Markdown',\n description: trim`\n Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.\n Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.\n `,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { Text } from '@dxos/schema';\nimport { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';\n\n/**\n * Document Item type.\n */\nexport const Document = Schema.Struct({\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),\n content: Type.Ref(Text.Text).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/Document',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name', 'fallbackName']),\n DescriptionAnnotation.set('description'),\n);\n\nexport type Document = Schema.Schema.Type<typeof Document>;\n\n/**\n * Document factory.\n */\nexport const make = ({\n content = '',\n ...props\n}: Partial<{ name: string; fallbackName: string; content: string }> = {}) =>\n Obj.make(Document, { ...props, content: Ref.make(Text.make(content)) });\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n defaultViewMode: EditorViewMode,\n editorInputMode: Schema.optional(EditorInputMode),\n experimental: Schema.optional(Schema.Boolean),\n debug: Schema.optional(Schema.Boolean),\n toolbar: Schema.optional(Schema.Boolean),\n typewriter: Schema.optional(Schema.String),\n // TODO(burdon): Per document settings.\n numberedHeadings: Schema.optional(Schema.Boolean),\n folding: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type EditorStateStore, type EditorViewMode } from '@dxos/ui-editor';\n\nimport { meta } from '../meta';\n\nimport type * as Markdown from './Markdown';\nimport { type MarkdownExtensionProvider } from './types';\n\n/** Schema for persisted markdown state. */\nexport const MarkdownStateSchema = Schema.mutable(\n Schema.Struct({\n viewMode: Schema.Record({ key: Schema.String, value: Schema.String }),\n }),\n);\n\nexport type MarkdownState = {\n viewMode: Record<string, EditorViewMode>;\n};\n\nexport namespace MarkdownCapabilities {\n export const Settings = Capability.make<Atom.Writable<Markdown.Settings>>(`${meta.id}/capability/settings`);\n\n /** Persisted state atom for view mode per document. */\n export const State = Capability.make<Atom.Writable<MarkdownState>>(`${meta.id}/capability/state`);\n\n /** Editor state store for cursor positions, scroll state, etc. */\n export const EditorState = Capability.make<EditorStateStore>(`${meta.id}/capability/editor-state`);\n\n // TODO(burdon): Move to ./types (external API)?\n export const Extensions = Capability.make<MarkdownExtensionProvider[]>(`${meta.id}/capability/extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ActivationEvent } from '@dxos/app-framework';\nimport { AppActivationEvents } from '@dxos/app-toolkit';\n\nimport { meta } from '../meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(\n `${meta.id}/event/setup-extensions`,\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Schema", "Capability", "Operation", "SpaceSchema", "Collection", "EditorViewMode", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots", "Schema", "Obj", "Ref", "Type", "DescriptionAnnotation", "FormInputAnnotation", "LabelAnnotation", "Text", "EditorInputMode", "EditorViewMode", "Document", "Struct", "name", "optional", "String", "description", "fallbackName", "pipe", "FormInputAnnotation", "set", "content", "Type", "Ref", "Text", "object", "typename", "version", "LabelAnnotation", "DescriptionAnnotation", "make", "props", "Obj", "Settings", "mutable", "defaultViewMode", "EditorViewMode", "editorInputMode", "EditorInputMode", "experimental", "Boolean", "debug", "toolbar", "typewriter", "numberedHeadings", "folding", "MARKDOWN_OPERATION", "meta", "id", "MarkdownOperation", "OnCreateSpace", "Operation", "make", "key", "name", "services", "Capability", "Service", "schema", "input", "Struct", "space", "SpaceSchema", "rootCollection", "Collection", "isDefault", "optional", "Boolean", "output", "Void", "Create", "String", "content", "object", "Document", "SetViewMode", "viewMode", "EditorViewMode", "Schema", "Capability", "MarkdownStateSchema", "mutable", "Struct", "viewMode", "Record", "key", "String", "value", "MarkdownCapabilities", "Settings", "Capability", "make", "meta", "id", "State", "EditorState", "Extensions", "AppActivationEvents", "MarkdownEvents", "SetupExtensions", "AppActivationEvents", "createStateEvent", "meta", "id"]
|
|
7
7
|
}
|
|
@@ -2,9 +2,10 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
2
2
|
import {
|
|
3
3
|
Markdown_exports,
|
|
4
4
|
meta
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KG7JF7PJ.mjs";
|
|
6
6
|
|
|
7
7
|
// src/translations.ts
|
|
8
|
+
import { translations as editorTranslations } from "@dxos/react-ui-editor";
|
|
8
9
|
var translations = [
|
|
9
10
|
{
|
|
10
11
|
"en-US": {
|
|
@@ -47,10 +48,11 @@ var translations = [
|
|
|
47
48
|
"words label_other": "words"
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
|
-
}
|
|
51
|
+
},
|
|
52
|
+
...editorTranslations
|
|
51
53
|
];
|
|
52
54
|
|
|
53
55
|
export {
|
|
54
56
|
translations
|
|
55
57
|
};
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
58
|
+
//# sourceMappingURL=chunk-PPGVKPFP.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\n\nimport { meta } from './meta';\nimport { Markdown } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Markdown.Document.typename]: {\n 'typename label': 'Document',\n 'typename label_zero': 'Documents',\n 'typename label_one': 'Document',\n 'typename label_other': 'Documents',\n 'object name placeholder': 'New document',\n 'rename object label': 'Rename document',\n 'delete object label': 'Delete document',\n 'object deleted label': 'Document deleted',\n },\n [meta.id]: {\n 'plugin name': 'Editor',\n 'settings title': 'Editor settings',\n 'choose markdown from space dialog title': 'Choose one or more documents to add',\n // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)\n 'empty choose markdown from space message': 'None available; try creating a new one instead?',\n 'chooser done label': 'Add selected',\n 'editor placeholder': '',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'settings toolbar label': 'Show toolbar',\n 'settings numbered headings label': 'Numbered headings',\n 'settings folding label': 'Folding',\n 'settings experimental label': 'Enable experimental features',\n 'settings debug label': 'Enable debugging features',\n 'settings debug placeholder': 'Typewriter script...',\n 'toggle view mode label': 'Toggle read-only',\n 'default view mode label': 'Default view mode',\n 'upload image label': 'Upload image',\n 'fallback title': 'Untitled',\n 'navigate to document label': 'Open document',\n 'words label_zero': 'words',\n 'words label_one': 'word',\n 'words label_other': 'words',\n },\n },\n },\n ...editorTranslations,\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAKA,SAASA,gBAAgBC,0BAA0B;AAK5C,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,iBAASC,SAASC,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,kBAAkB;QAClB,2CAA2C;;QAE3C,4CAA4C;QAC5C,sBAAsB;QACtB,sBAAsB;QACtB,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,0BAA0B;QAC1B,oCAAoC;QACpC,0BAA0B;QAC1B,+BAA+B;QAC/B,wBAAwB;QACxB,8BAA8B;QAC9B,0BAA0B;QAC1B,2BAA2B;QAC3B,sBAAsB;QACtB,kBAAkB;QAClB,8BAA8B;QAC9B,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;MACvB;IACF;EACF;KACGC;;",
|
|
6
|
+
"names": ["translations", "editorTranslations", "translations", "Markdown", "Document", "typename", "meta", "id", "editorTranslations"]
|
|
7
|
+
}
|
|
@@ -2,21 +2,22 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
2
2
|
import {
|
|
3
3
|
MarkdownEditor,
|
|
4
4
|
useLinkQuery
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-WJRTAU55.mjs";
|
|
6
6
|
import {
|
|
7
7
|
MarkdownCapabilities,
|
|
8
8
|
Markdown_exports
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KG7JF7PJ.mjs";
|
|
10
10
|
|
|
11
11
|
// src/components/MarkdownContainer.tsx
|
|
12
12
|
import { Atom } from "@effect-atom/atom-react";
|
|
13
13
|
import React, { forwardRef, useMemo } from "react";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
14
|
+
import { useCapabilities } from "@dxos/app-framework/ui";
|
|
15
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
16
|
+
import { useAppGraph } from "@dxos/app-toolkit/ui";
|
|
16
17
|
import { Obj } from "@dxos/echo";
|
|
17
18
|
import { useActionRunner } from "@dxos/plugin-graph";
|
|
18
19
|
import { useObject } from "@dxos/react-client/echo";
|
|
19
|
-
import { Layout } from "@dxos/react-ui
|
|
20
|
+
import { Layout } from "@dxos/react-ui";
|
|
20
21
|
import { Text } from "@dxos/schema";
|
|
21
22
|
var MarkdownContainer = /* @__PURE__ */ forwardRef(({ role, subject: object, id, settings, extensionProviders, ...props }, forwardedRef) => {
|
|
22
23
|
const db = Obj.isObject(object) ? Obj.getDatabase(object) : void 0;
|
|
@@ -64,7 +65,7 @@ var MarkdownContainer = /* @__PURE__ */ forwardRef(({ role, subject: object, id,
|
|
|
64
65
|
}, [
|
|
65
66
|
graph
|
|
66
67
|
]);
|
|
67
|
-
const [upload] = useCapabilities(
|
|
68
|
+
const [upload] = useCapabilities(AppCapabilities.FileUploader);
|
|
68
69
|
const handleFileUpload = useMemo(() => {
|
|
69
70
|
if (!db || !upload) {
|
|
70
71
|
return void 0;
|
|
@@ -102,4 +103,4 @@ export {
|
|
|
102
103
|
MarkdownContainer,
|
|
103
104
|
MarkdownContainer_default
|
|
104
105
|
};
|
|
105
|
-
//# sourceMappingURL=chunk-
|
|
106
|
+
//# sourceMappingURL=chunk-U4W25KQQ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/MarkdownContainer.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Extension } from '@codemirror/state';\nimport { Atom } from '@effect-atom/atom-react';\nimport React, { forwardRef, useMemo } from 'react';\n\nimport { useCapabilities } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { useAppGraph } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { useActionRunner } from '@dxos/plugin-graph';\nimport { useObject } from '@dxos/react-client/echo';\nimport { Layout } from '@dxos/react-ui';\nimport { type SelectionManager } from '@dxos/react-ui-attention';\nimport { Text } from '@dxos/schema';\n\nimport { useLinkQuery } from '../hooks';\nimport { Markdown, MarkdownCapabilities, type MarkdownPluginState } from '../types';\n\nimport { MarkdownEditor, type MarkdownEditorContentProps, type MarkdownEditorRootProps } from './MarkdownEditor';\n\nexport type MarkdownContainerProps = SurfaceComponentProps<\n Markdown.Document | Text.Text,\n {\n id: string;\n settings: Markdown.Settings;\n selectionManager?: SelectionManager;\n } & Pick<MarkdownEditorRootProps, 'viewMode' | 'onViewModeChange'> &\n Pick<MarkdownEditorContentProps, 'editorStateStore'> &\n Pick<MarkdownPluginState, 'extensionProviders'>\n>;\n\nexport const MarkdownContainer = forwardRef<HTMLDivElement, MarkdownContainerProps>(\n ({ role, subject: object, id, settings, extensionProviders, ...props }, forwardedRef) => {\n const db = Obj.isObject(object) ? Obj.getDatabase(object) : undefined;\n const attendableId = Obj.instanceOf(Markdown.Document, object) ? Obj.getDXN(object).toString() : undefined;\n const [docContent] = useObject(Obj.instanceOf(Markdown.Document, object) ? object.content : undefined, 'content');\n const [textContent] = useObject(Obj.instanceOf(Text.Text, object) ? object : undefined, 'content');\n const initialValue = docContent ?? textContent;\n\n // Extensions from other plugins.\n // TODO(burdon): Document MarkdownPluginState.extensionProviders\n const otherExtensionProviders = useCapabilities(MarkdownCapabilities.Extensions);\n const extensions = useMemo<Extension[]>(() => {\n if (!Obj.instanceOf(Markdown.Document, object) && !Obj.instanceOf(Text.Text, object)) {\n return [];\n }\n\n return [...(otherExtensionProviders ?? []), ...(extensionProviders ?? [])]\n .flat()\n .reduce((acc: Extension[], provider) => {\n const extension =\n typeof provider === 'function' ? provider({ document: object as Markdown.Document }) : provider;\n if (extension) {\n acc.push(extension);\n }\n\n return acc;\n }, []);\n }, [extensionProviders, otherExtensionProviders, object]);\n\n // Toolbar actions from app graph.\n const { graph } = useAppGraph();\n const runAction = useActionRunner();\n const customActions = useMemo(() => {\n return Atom.make((get) => {\n const actions = get(graph.actions(id));\n const nodes = actions.filter((action) => action.properties.disposition === 'toolbar');\n const edges = nodes.map((node) => ({ source: 'root', target: node.id }));\n return { nodes, edges };\n });\n }, [graph]);\n\n // File upload.\n const [upload] = useCapabilities(AppCapabilities.FileUploader);\n const handleFileUpload = useMemo(() => {\n if (!db || !upload) {\n return undefined;\n }\n\n return async (file: File) => upload(db, file);\n }, [db, upload]);\n\n // Query for @ refs.\n const handleLinkQuery = useLinkQuery(db);\n\n return (\n <Layout.Main toolbar={settings.toolbar} ref={forwardedRef}>\n <MarkdownEditor.Root\n id={attendableId ?? id}\n object={object}\n extensions={extensions}\n settings={settings}\n onAction={runAction}\n onFileUpload={handleFileUpload}\n onLinkQuery={handleLinkQuery}\n {...props}\n >\n {settings.toolbar && (\n <MarkdownEditor.Toolbar id={attendableId ?? id} role={role} customActions={customActions} />\n )}\n <MarkdownEditor.Content initialValue={initialValue} scrollPastEnd={role === 'article'} />\n <MarkdownEditor.Blocks />\n </MarkdownEditor.Root>\n </Layout.Main>\n );\n },\n);\n\nexport default MarkdownContainer;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Atom", "React", "forwardRef", "useMemo", "useCapabilities", "AppCapabilities", "useAppGraph", "Obj", "useActionRunner", "useObject", "Layout", "Text", "MarkdownContainer", "forwardRef", "role", "subject", "object", "id", "settings", "extensionProviders", "props", "forwardedRef", "db", "Obj", "isObject", "getDatabase", "undefined", "attendableId", "instanceOf", "Markdown", "Document", "getDXN", "toString", "docContent", "useObject", "content", "textContent", "Text", "initialValue", "otherExtensionProviders", "useCapabilities", "MarkdownCapabilities", "Extensions", "extensions", "useMemo", "flat", "reduce", "acc", "provider", "extension", "document", "push", "graph", "useAppGraph", "runAction", "useActionRunner", "customActions", "Atom", "make", "get", "actions", "nodes", "filter", "action", "properties", "disposition", "edges", "map", "node", "source", "target", "upload", "AppCapabilities", "FileUploader", "handleFileUpload", "file", "handleLinkQuery", "useLinkQuery", "Layout", "Main", "toolbar", "ref", "MarkdownEditor", "Root", "onAction", "onFileUpload", "onLinkQuery", "Toolbar", "Content", "scrollPastEnd", "Blocks"]
|
|
7
|
+
}
|
|
@@ -1,25 +1,110 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
setFallbackName
|
|
4
|
-
} from "./chunk-SDTYEGGL.mjs";
|
|
5
2
|
import {
|
|
6
3
|
Markdown_exports,
|
|
7
4
|
meta
|
|
8
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KG7JF7PJ.mjs";
|
|
6
|
+
|
|
7
|
+
// src/util.tsx
|
|
8
|
+
import { debounce } from "@dxos/async";
|
|
9
|
+
import { Obj } from "@dxos/echo";
|
|
10
|
+
var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
|
|
11
|
+
var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
|
|
12
|
+
var nonTitleChars = /[^\w ]/g;
|
|
13
|
+
var skipPatterns = [
|
|
14
|
+
/^!\[/,
|
|
15
|
+
/^---\s*$/,
|
|
16
|
+
/^```/,
|
|
17
|
+
/^\s*$/
|
|
18
|
+
];
|
|
19
|
+
var titlePatterns = [
|
|
20
|
+
/^#{1,6}\s+(.+)/
|
|
21
|
+
];
|
|
22
|
+
var getFallbackName = (content = "") => {
|
|
23
|
+
const len = content.length;
|
|
24
|
+
let i = 0;
|
|
25
|
+
while (i < len) {
|
|
26
|
+
let lineEnd = i;
|
|
27
|
+
while (lineEnd < len && content[lineEnd] !== "\n") {
|
|
28
|
+
lineEnd++;
|
|
29
|
+
}
|
|
30
|
+
const line = content.slice(i, lineEnd).trim();
|
|
31
|
+
i = lineEnd + 1;
|
|
32
|
+
if (skipPatterns.some((pattern) => pattern.test(line))) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
for (const pattern of titlePatterns) {
|
|
36
|
+
const match = pattern.exec(line);
|
|
37
|
+
if (match) {
|
|
38
|
+
const text2 = match[1].replaceAll(nonTitleChars, "").trim();
|
|
39
|
+
if (text2.length > 0) {
|
|
40
|
+
return text2;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const maxLen = 32;
|
|
45
|
+
const text = line.replaceAll(nonTitleChars, "").trim();
|
|
46
|
+
if (text.length > 0) {
|
|
47
|
+
if (text.length > maxLen) {
|
|
48
|
+
const words = text.split(/\s+/);
|
|
49
|
+
let result = "";
|
|
50
|
+
for (const word of words) {
|
|
51
|
+
const next = result.length === 0 ? word : result + " " + word;
|
|
52
|
+
if (next.length > maxLen) {
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
result = next;
|
|
56
|
+
}
|
|
57
|
+
return result + "\u2026";
|
|
58
|
+
}
|
|
59
|
+
return text;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return "";
|
|
63
|
+
};
|
|
64
|
+
var getContentSnippet = (content = "") => {
|
|
65
|
+
const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
|
|
66
|
+
return abstract.slice(0, 3).join("\n") ?? "";
|
|
67
|
+
};
|
|
68
|
+
var setFallbackName = debounce((doc, content = "") => {
|
|
69
|
+
const name = getFallbackName(content);
|
|
70
|
+
if (doc.fallbackName !== name) {
|
|
71
|
+
Obj.change(doc, (d) => {
|
|
72
|
+
d.fallbackName = name;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}, 200);
|
|
76
|
+
var serializer = {
|
|
77
|
+
serialize: async ({ object }) => {
|
|
78
|
+
const { content } = await object.content.load();
|
|
79
|
+
return JSON.stringify({
|
|
80
|
+
name: object.name,
|
|
81
|
+
fallbackName: object.fallbackName,
|
|
82
|
+
content
|
|
83
|
+
});
|
|
84
|
+
},
|
|
85
|
+
deserialize: async ({ content: serialized }) => {
|
|
86
|
+
const { name, fallbackName, content } = JSON.parse(serialized);
|
|
87
|
+
return Markdown_exports.make({
|
|
88
|
+
name,
|
|
89
|
+
fallbackName,
|
|
90
|
+
content
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
};
|
|
9
94
|
|
|
10
95
|
// src/hooks/useLinkQuery.ts
|
|
11
96
|
import * as Option from "effect/Option";
|
|
12
97
|
import { useCallback, useMemo } from "react";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { Filter, Obj, Query, Type } from "@dxos/echo";
|
|
98
|
+
import { usePluginManager } from "@dxos/app-framework/ui";
|
|
99
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
100
|
+
import { Filter, Obj as Obj2, Query, Type } from "@dxos/echo";
|
|
16
101
|
import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
|
|
17
102
|
import { toLocalizedString, useTranslation } from "@dxos/react-ui";
|
|
18
103
|
import { insertAtCursor, insertAtLineStart } from "@dxos/ui-editor";
|
|
19
104
|
var useLinkQuery = (db) => {
|
|
20
105
|
const { t } = useTranslation();
|
|
21
106
|
const manager = usePluginManager();
|
|
22
|
-
const resolve = useCallback((typename) => manager.capabilities.getAll(
|
|
107
|
+
const resolve = useCallback((typename) => manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
|
|
23
108
|
manager
|
|
24
109
|
]);
|
|
25
110
|
const filter = useMemo(() => Filter.or(...(db?.schemaRegistry.query({
|
|
@@ -34,11 +119,11 @@ var useLinkQuery = (db) => {
|
|
|
34
119
|
const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
|
|
35
120
|
const results = await db?.query(Query.select(filter)).run();
|
|
36
121
|
const getLabel = (object) => {
|
|
37
|
-
const label =
|
|
122
|
+
const label = Obj2.getLabel(object);
|
|
38
123
|
if (label) {
|
|
39
124
|
return label;
|
|
40
125
|
}
|
|
41
|
-
const type =
|
|
126
|
+
const type = Obj2.getTypename(object);
|
|
42
127
|
const metadata = resolve(type);
|
|
43
128
|
return metadata.label?.(object) || [
|
|
44
129
|
"object name placeholder",
|
|
@@ -49,14 +134,14 @@ var useLinkQuery = (db) => {
|
|
|
49
134
|
];
|
|
50
135
|
};
|
|
51
136
|
const items = results?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name)).map((object) => {
|
|
52
|
-
const metadata = resolve(
|
|
137
|
+
const metadata = resolve(Obj2.getTypename(object));
|
|
53
138
|
const label = toLocalizedString(getLabel(object), t);
|
|
54
139
|
return {
|
|
55
140
|
id: object.id,
|
|
56
141
|
label,
|
|
57
142
|
icon: metadata.icon,
|
|
58
143
|
onSelect: ({ view, head }) => {
|
|
59
|
-
const link = `[${label}](${
|
|
144
|
+
const link = `[${label}](${Obj2.getDXN(object)})`;
|
|
60
145
|
if (query?.startsWith("@")) {
|
|
61
146
|
insertAtLineStart(view, head, `!${link}
|
|
62
147
|
`);
|
|
@@ -137,10 +222,10 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
|
|
|
137
222
|
// src/hooks/useExtensions.tsx
|
|
138
223
|
import React, { useMemo as useMemo3 } from "react";
|
|
139
224
|
import { createRoot } from "react-dom/client";
|
|
140
|
-
import {
|
|
141
|
-
import {
|
|
225
|
+
import { useOperationInvoker } from "@dxos/app-framework/ui";
|
|
226
|
+
import { LayoutOperation } from "@dxos/app-toolkit";
|
|
142
227
|
import { debounceAndThrottle } from "@dxos/async";
|
|
143
|
-
import { Obj as
|
|
228
|
+
import { Obj as Obj3 } from "@dxos/echo";
|
|
144
229
|
import { createDocAccessor } from "@dxos/echo-db";
|
|
145
230
|
import { invariant } from "@dxos/invariant";
|
|
146
231
|
import { getSpace, useObject } from "@dxos/react-client/echo";
|
|
@@ -155,9 +240,9 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
|
|
|
155
240
|
const { invokePromise } = useOperationInvoker();
|
|
156
241
|
const identity = useIdentity();
|
|
157
242
|
const space = getSpace(object);
|
|
158
|
-
const contentRef =
|
|
243
|
+
const contentRef = Obj3.instanceOf(Markdown_exports.Document, object) ? object.content : void 0;
|
|
159
244
|
useObject(contentRef);
|
|
160
|
-
const target = contentRef?.target ?? (
|
|
245
|
+
const target = contentRef?.target ?? (Obj3.instanceOf(Text.Text, object) ? object : void 0);
|
|
161
246
|
const baseExtensions = useMemo3(() => createBaseExtensions({
|
|
162
247
|
id,
|
|
163
248
|
object,
|
|
@@ -192,7 +277,7 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
|
|
|
192
277
|
identity
|
|
193
278
|
}),
|
|
194
279
|
// TODO(burdon): Reconcile with effect in parent.
|
|
195
|
-
|
|
280
|
+
Obj3.instanceOf(Markdown_exports.Document, object) && listener({
|
|
196
281
|
onChange: ({ text }) => {
|
|
197
282
|
setFallbackName(object, text);
|
|
198
283
|
}
|
|
@@ -225,11 +310,11 @@ var createBaseExtensions = ({ id, object, invokePromise, settings, selectionMana
|
|
|
225
310
|
// TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
|
|
226
311
|
// TODO(burdon): Create dx-tag.
|
|
227
312
|
renderLinkButton: invokePromise && (object || id) ? createLinkRenderer((targetId) => {
|
|
228
|
-
void invokePromise(
|
|
313
|
+
void invokePromise(LayoutOperation.Open, {
|
|
229
314
|
subject: [
|
|
230
315
|
targetId
|
|
231
316
|
],
|
|
232
|
-
pivotId: object &&
|
|
317
|
+
pivotId: object && Obj3.isObject(object) ? Obj3.getDXN(object).toString() : id
|
|
233
318
|
});
|
|
234
319
|
}) : void 0
|
|
235
320
|
}),
|
|
@@ -274,7 +359,7 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
|
|
|
274
359
|
const qualifiedId = url.split("/").at(-1);
|
|
275
360
|
invariant(qualifiedId, "Invalid link format.", {
|
|
276
361
|
F: __dxlog_file,
|
|
277
|
-
L:
|
|
362
|
+
L: 238,
|
|
278
363
|
S: void 0,
|
|
279
364
|
A: [
|
|
280
365
|
"qualifiedId",
|
|
@@ -321,15 +406,15 @@ var renderRoot = (root, node) => {
|
|
|
321
406
|
import { EditorView as EditorView2 } from "@codemirror/view";
|
|
322
407
|
import * as Effect from "effect/Effect";
|
|
323
408
|
import { useMemo as useMemo4 } from "react";
|
|
324
|
-
import {
|
|
325
|
-
import {
|
|
409
|
+
import { useOperationResolver } from "@dxos/app-framework/ui";
|
|
410
|
+
import { LayoutOperation as LayoutOperation2 } from "@dxos/app-toolkit";
|
|
326
411
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
327
412
|
import { OperationResolver } from "@dxos/operation";
|
|
328
413
|
import { Cursor as Cursor2, setSelection } from "@dxos/ui-editor";
|
|
329
414
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
|
|
330
415
|
var useSelectCurrentThread = (editorView, documentId2) => {
|
|
331
416
|
const scrollIntoViewHandler = useMemo4(() => OperationResolver.make({
|
|
332
|
-
operation:
|
|
417
|
+
operation: LayoutOperation2.ScrollIntoView,
|
|
333
418
|
position: "hoist",
|
|
334
419
|
filter: (input) => !!editorView && input.subject === documentId2 && !!input.cursor,
|
|
335
420
|
handler: (input) => Effect.sync(() => {
|
|
@@ -382,7 +467,7 @@ var useSelectCurrentThread = (editorView, documentId2) => {
|
|
|
382
467
|
import { createContext } from "@radix-ui/react-context";
|
|
383
468
|
import React5, { useMemo as useMemo6, useState as useState2 } from "react";
|
|
384
469
|
import { createPortal as createPortal2 } from "react-dom";
|
|
385
|
-
import { Surface } from "@dxos/app-framework/
|
|
470
|
+
import { Surface } from "@dxos/app-framework/ui";
|
|
386
471
|
import { DXN } from "@dxos/keys";
|
|
387
472
|
import { useClient } from "@dxos/react-client";
|
|
388
473
|
import { EditorMenuProvider, useEditorMenu, useEditorToolbar } from "@dxos/react-ui-editor";
|
|
@@ -597,7 +682,7 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
|
|
|
597
682
|
]);
|
|
598
683
|
},
|
|
599
684
|
removeBlockContainer: ({ link }) => {
|
|
600
|
-
setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.
|
|
685
|
+
setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.dxn !== link.dxn));
|
|
601
686
|
}
|
|
602
687
|
}), []);
|
|
603
688
|
const toolbarState = useEditorToolbar({
|
|
@@ -640,8 +725,9 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
|
|
|
640
725
|
}, children);
|
|
641
726
|
};
|
|
642
727
|
MarkdownEditorRoot.displayName = "MarkdownEditor.Root";
|
|
728
|
+
var MARKDOWN_EDITOR_CONTENT_NAME = "MarkdownEditor.Content";
|
|
643
729
|
var MarkdownEditorContent2 = (props) => {
|
|
644
|
-
const { id, editorView, setEditorView, viewMode, toolbarState, extensions, popoverMenu: { groupsRef, ...menuProps } } = useMarkdownEditorContext(
|
|
730
|
+
const { id, editorView, setEditorView, viewMode, toolbarState, extensions, popoverMenu: { groupsRef, ...menuProps } } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
|
|
645
731
|
return /* @__PURE__ */ React5.createElement(EditorMenuProvider, {
|
|
646
732
|
view: editorView,
|
|
647
733
|
groups: groupsRef.current,
|
|
@@ -655,35 +741,37 @@ var MarkdownEditorContent2 = (props) => {
|
|
|
655
741
|
ref: setEditorView
|
|
656
742
|
}));
|
|
657
743
|
};
|
|
658
|
-
MarkdownEditorContent2.displayName =
|
|
744
|
+
MarkdownEditorContent2.displayName = MARKDOWN_EDITOR_CONTENT_NAME;
|
|
745
|
+
var MARKDOWN_EDITOR_TOOLBAR_NAME = "MarkdownEditor.Toolbar";
|
|
659
746
|
var MarkdownEditorToolbar2 = (props) => {
|
|
660
|
-
const { toolbarState, ...rootProps } = useMarkdownEditorContext(
|
|
747
|
+
const { toolbarState, ...rootProps } = useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
|
|
661
748
|
return /* @__PURE__ */ React5.createElement(MarkdownEditorToolbar, {
|
|
662
749
|
...props,
|
|
663
750
|
...rootProps,
|
|
664
751
|
state: toolbarState
|
|
665
752
|
});
|
|
666
753
|
};
|
|
667
|
-
MarkdownEditorToolbar2.displayName =
|
|
754
|
+
MarkdownEditorToolbar2.displayName = MARKDOWN_EDITOR_TOOLBAR_NAME;
|
|
755
|
+
var MARKDOWN_EDITOR_BLOCKS_NAME = "MarkdownEditor.Blocks";
|
|
668
756
|
var MarkdownEditorBlocks = (_props) => {
|
|
669
|
-
const { previewBlocks } = useMarkdownEditorContext(
|
|
757
|
+
const { previewBlocks } = useMarkdownEditorContext(MARKDOWN_EDITOR_BLOCKS_NAME);
|
|
670
758
|
return /* @__PURE__ */ React5.createElement(React5.Fragment, null, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React5.createElement(PreviewBlock, {
|
|
671
|
-
key: link.
|
|
759
|
+
key: link.dxn,
|
|
672
760
|
link,
|
|
673
761
|
el
|
|
674
762
|
})));
|
|
675
763
|
};
|
|
676
|
-
MarkdownEditorBlocks.displayName =
|
|
764
|
+
MarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;
|
|
677
765
|
var PreviewBlock = ({ el, link }) => {
|
|
678
766
|
const client = useClient();
|
|
679
|
-
const dxn = DXN.parse(link.
|
|
767
|
+
const dxn = DXN.parse(link.dxn);
|
|
680
768
|
const subject = client.graph.makeRef(dxn).target;
|
|
681
769
|
const data = useMemo6(() => ({
|
|
682
770
|
subject
|
|
683
771
|
}), [
|
|
684
772
|
subject
|
|
685
773
|
]);
|
|
686
|
-
return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React5.createElement(Surface, {
|
|
774
|
+
return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React5.createElement(Surface.Surface, {
|
|
687
775
|
role: "card--transclusion",
|
|
688
776
|
data,
|
|
689
777
|
limit: 1
|
|
@@ -697,7 +785,13 @@ var MarkdownEditor = {
|
|
|
697
785
|
};
|
|
698
786
|
|
|
699
787
|
export {
|
|
788
|
+
isEditorModel,
|
|
789
|
+
isMarkdownProperties,
|
|
790
|
+
getFallbackName,
|
|
791
|
+
getContentSnippet,
|
|
792
|
+
setFallbackName,
|
|
793
|
+
serializer,
|
|
700
794
|
useLinkQuery,
|
|
701
795
|
MarkdownEditor
|
|
702
796
|
};
|
|
703
|
-
//# sourceMappingURL=chunk-
|
|
797
|
+
//# sourceMappingURL=chunk-WJRTAU55.mjs.map
|