@dxos/plugin-markdown 0.8.2-main.12df754 → 0.8.2-main.36232bc
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/{MarkdownContainer-MH6MMKA5.mjs → MarkdownContainer-PDIKEQQU.mjs} +5 -4
- package/dist/lib/{node-esm/MarkdownContainer-ERQH4SXI.mjs.map → browser/MarkdownContainer-PDIKEQQU.mjs.map} +2 -2
- package/dist/lib/browser/MarkdownPreview-2G2FVWO2.mjs +73 -0
- package/dist/lib/browser/MarkdownPreview-2G2FVWO2.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-BF7WSE3D.mjs → app-graph-serializer-OCXP7PCK.mjs} +2 -2
- package/dist/lib/browser/{chunk-2DKQKSBR.mjs → chunk-LJ2UFBJ2.mjs} +4 -2
- package/dist/lib/browser/{chunk-2DKQKSBR.mjs.map → chunk-LJ2UFBJ2.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-V54HDI7B.mjs → chunk-QV6ZIXAD.mjs} +6 -19
- package/dist/lib/browser/chunk-QV6ZIXAD.mjs.map +7 -0
- package/dist/lib/browser/chunk-UQ2W5NRK.mjs +20 -0
- package/dist/lib/browser/chunk-UQ2W5NRK.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +7 -3
- package/dist/lib/browser/index.mjs.map +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-RONTBOZZ.mjs → react-surface-OIHIDL6Q.mjs} +10 -3
- package/dist/lib/browser/react-surface-OIHIDL6Q.mjs.map +7 -0
- package/dist/lib/node/{MarkdownContainer-PCHMSPTC.cjs → MarkdownContainer-GYHFOCWZ.cjs} +8 -7
- package/dist/lib/node/MarkdownContainer-GYHFOCWZ.cjs.map +7 -0
- package/dist/lib/node/MarkdownPreview-T32LRPVG.cjs +96 -0
- package/dist/lib/node/MarkdownPreview-T32LRPVG.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-UVT5EAWW.cjs → app-graph-serializer-KBDLASRP.cjs} +6 -6
- package/dist/lib/node/chunk-HB44GO7V.cjs +58 -0
- package/dist/lib/node/chunk-HB44GO7V.cjs.map +7 -0
- package/dist/lib/node/{chunk-6ERKWMAU.cjs → chunk-JO4SBK36.cjs} +7 -5
- package/dist/lib/node/{chunk-6ERKWMAU.cjs.map → chunk-JO4SBK36.cjs.map} +2 -2
- package/dist/lib/node/{chunk-5XQ27MNY.cjs → chunk-WGMVEPB3.cjs} +9 -36
- package/dist/lib/node/chunk-WGMVEPB3.cjs.map +7 -0
- package/dist/lib/node/index.cjs +18 -15
- package/dist/lib/node/index.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-26PWFBBV.cjs → react-surface-JYGR4QB3.cjs} +12 -5
- package/dist/lib/node/react-surface-JYGR4QB3.cjs.map +7 -0
- package/dist/lib/node-esm/{MarkdownContainer-ERQH4SXI.mjs → MarkdownContainer-7T5H7ROL.mjs} +5 -4
- package/dist/lib/node-esm/MarkdownContainer-7T5H7ROL.mjs.map +7 -0
- package/dist/lib/node-esm/MarkdownPreview-MGR5BF6U.mjs +74 -0
- package/dist/lib/node-esm/MarkdownPreview-MGR5BF6U.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-LPRG2PFZ.mjs → app-graph-serializer-67CO7ST3.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-USLC246I.mjs → chunk-4U2F4EB7.mjs} +6 -19
- package/dist/lib/node-esm/chunk-4U2F4EB7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-JNA7GQEA.mjs +22 -0
- package/dist/lib/node-esm/chunk-JNA7GQEA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-IZUCQ5P5.mjs → chunk-VQA6BQGT.mjs} +4 -2
- package/dist/lib/node-esm/{chunk-IZUCQ5P5.mjs.map → chunk-VQA6BQGT.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +7 -3
- package/dist/lib/node-esm/index.mjs.map +1 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-ZEJSYIRX.mjs → react-surface-QIMBMILA.mjs} +10 -3
- package/dist/lib/node-esm/react-surface-QIMBMILA.mjs.map +7 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/{MarkdownEditor.d.ts → MarkdownEditor/MarkdownEditor.d.ts} +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/index.d.ts +2 -0
- package/dist/types/src/components/MarkdownEditor/index.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +6 -0
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +191 -0
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownPreview/index.d.ts +4 -0
- package/dist/types/src/components/MarkdownPreview/index.d.ts.map +1 -0
- package/dist/types/src/components/{MarkdownSettings.d.ts → MarkdownSettings/MarkdownSettings.d.ts} +1 -1
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownSettings/index.d.ts +2 -0
- package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +6 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +363 -39
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +120 -8
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -0
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +37 -36
- package/src/capabilities/react-surface.tsx +8 -1
- package/src/components/{MarkdownEditor.stories.tsx → MarkdownEditor/MarkdownEditor.stories.tsx} +1 -1
- package/src/components/{MarkdownEditor.tsx → MarkdownEditor/MarkdownEditor.tsx} +3 -3
- package/src/components/MarkdownEditor/index.ts +5 -0
- package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +68 -0
- package/src/components/MarkdownPreview/MarkdownPreview.tsx +59 -0
- package/src/components/MarkdownPreview/index.ts +9 -0
- package/src/components/{MarkdownSettings.tsx → MarkdownSettings/MarkdownSettings.tsx} +2 -2
- package/src/components/MarkdownSettings/index.ts +5 -0
- package/src/components/Suggestions.stories.tsx +4 -2
- package/src/components/index.ts +1 -0
- package/src/translations.ts +2 -0
- package/src/util.tsx +4 -0
- package/dist/lib/browser/MarkdownContainer-MH6MMKA5.mjs.map +0 -7
- package/dist/lib/browser/chunk-V54HDI7B.mjs.map +0 -7
- package/dist/lib/browser/react-surface-RONTBOZZ.mjs.map +0 -7
- package/dist/lib/node/MarkdownContainer-PCHMSPTC.cjs.map +0 -7
- package/dist/lib/node/chunk-5XQ27MNY.cjs.map +0 -7
- package/dist/lib/node/react-surface-26PWFBBV.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-USLC246I.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-ZEJSYIRX.mjs.map +0 -7
- package/dist/types/src/components/MarkdownEditor.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownEditor.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownSettings.d.ts.map +0 -1
- /package/dist/lib/browser/{app-graph-serializer-BF7WSE3D.mjs.map → app-graph-serializer-OCXP7PCK.mjs.map} +0 -0
- /package/dist/lib/node/{app-graph-serializer-UVT5EAWW.cjs.map → app-graph-serializer-KBDLASRP.cjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-LPRG2PFZ.mjs.map → app-graph-serializer-67CO7ST3.mjs.map} +0 -0
- /package/dist/types/src/components/{MarkdownEditor.stories.d.ts → MarkdownEditor/MarkdownEditor.stories.d.ts} +0 -0
|
@@ -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 { isInstanceOf } from '@dxos/echo-schema';\nimport { fullyQualifiedId, getSpace } from '@dxos/react-client/echo';\nimport { TextType } from '@dxos/schema';\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 | TextType | 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 = isInstanceOf(DocumentType, object) ? object : undefined;\n const text = isInstanceOf(TextType, object) ? object : undefined;\n const extensions = useExtensions({ document: doc, text, id, 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 if (text) {\n return (\n <MarkdownEditor\n id={id}\n role={role}\n initialValue={text.content}\n extensions={extensions}\n viewMode={viewMode}\n toolbar={settings.toolbar}\n comment={false}\n inputMode={settings.editorInputMode}\n scrollPastEnd={scrollPastEnd}\n onViewModeChange={onViewModeChange}\n />\n );\n } else {\n // TODO(burdon): Normalize with above.\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, useIntentDispatcher } from '@dxos/app-framework';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckAction } from '@dxos/plugin-deck/types';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n type DNDOptions,\n type EditorAction,\n type EditorViewMode,\n type EditorInputMode,\n type EditorSelectionState,\n type EditorStateStore,\n EditorToolbar,\n type UseTextEditorProps,\n createBasicExtensions,\n createEditorAction,\n createMarkdownExtensions,\n createThemeExtensions,\n dropFile,\n editorContent,\n editorGutter,\n processEditorPayload,\n stackItemContentEditorClassNames,\n useActionHandler,\n useCommentState,\n useCommentClickListener,\n useFormattingState,\n useTextEditor,\n useEditorToolbarState,\n} from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { isNotFalsy, isNonNullable } 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 // TODO(wittjosiah): Generalize custom toolbar actions (e.g. comment, upload, etc.)\n comment?: 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 comment = true,\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(isNonNullable),\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(\n createIntent(DeckAction.ChangeCompanion, {\n primary: id,\n companion: `${id}${ATTENDABLE_PATH_SEPARATOR}comments`,\n }),\n );\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 comment && commentObserver,\n comment && 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, comment, 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} classNames='is-full min-bs-0'>\n {toolbar && (\n <>\n <EditorToolbar\n attendableId={id}\n role={role}\n state={toolbarState}\n comment={comment}\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({ type: 'image', testId: 'editor.toolbar.image' }, 'ph--image-square--regular', [\n 'upload image label',\n { ns: MARKDOWN_PLUGIN },\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 { S } from '@dxos/echo-schema';\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 intent: LayoutAction.UpdateLayout,\n position: 'hoist',\n filter: (data): data is { part: 'current'; subject: string; options: { cursor: string } } => {\n if (!S.is(LayoutAction.ScrollIntoView.fields.input)(data)) {\n return false;\n }\n\n return !!editorView && data.subject === documentId && !!data.options?.cursor;\n },\n resolve: ({ options: { 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 [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 LayoutAction,\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 preview,\n selectionState,\n typewriter,\n type RenderCallback,\n} from '@dxos/react-ui-editor';\nimport { defaultTx } from '@dxos/react-ui-theme';\nimport { type TextType } from '@dxos/schema';\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 id?: string;\n text?: TextType;\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 = ({\n document,\n id,\n text,\n settings,\n viewMode,\n editorStateStore,\n}: ExtensionsOptions): Extension[] => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const identity = useIdentity();\n const space = getSpace(document) ?? getSpace(text);\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 id,\n text,\n settings,\n viewMode,\n dispatch,\n // query,\n }),\n [\n document,\n id,\n text,\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 text &&\n id &&\n createDataExtensions({\n id,\n text: createDocAccessor(text, ['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, text, id, space, identity],\n );\n};\n\n/**\n * Create extension instances for editor.\n */\nconst createBaseExtensions = ({\n document,\n id,\n dispatch,\n settings,\n query,\n viewMode,\n}: 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 || id)\n ? createLinkRenderer((id: string) => {\n void dispatch(\n createIntent(LayoutAction.Open, {\n part: 'main',\n subject: [id],\n options: {\n pivotId: document ? fullyQualifiedId(document) : id,\n },\n }),\n );\n })\n : undefined,\n }),\n linkTooltip(renderLinkTooltip),\n preview(),\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 createLinkRenderer =\n (onSelectObject: (id: string) => void): RenderCallback<{ url: string }> =>\n (el, { url }) => {\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: RenderCallback<{ url: string }> = (el, { url }) => {\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": ["import_react", "import_app_framework", "import_echo_schema", "import_react_ui_editor", "import_invariant", "import_echo", "import_react_ui", "import_util", "useSelectCurrentThread", "editorView", "documentId", "scrollIntoViewResolver", "useMemo", "createResolver", "intent", "LayoutAction", "UpdateLayout", "position", "filter", "data", "S", "is", "ScrollIntoView", "fields", "input", "subject", "options", "cursor", "resolve", "invariant", "range", "Cursor", "getRangeFromCursor", "state", "selection", "main", "from", "anchor", "undefined", "effects", "EditorView", "scrollIntoView", "y", "yMargin", "push", "setSelection", "of", "current", "dispatch", "useIntentResolver", "MARKDOWN_PLUGIN", "MarkdownEditor", "id", "role", "initialValue", "extensions", "extensionProviders", "scrollPastEnd", "toolbar", "comment", "viewMode", "editorStateStore", "onFileUpload", "onViewModeChange", "t", "useTranslation", "themeMode", "useThemeContext", "dispatchPromise", "useIntentDispatcher", "toolbarState", "useEditorToolbarState", "formattingObserver", "useFormattingState", "scrollTo", "getState", "providerExtensions", "flatMap", "provider", "isNonNullable", "commentObserver", "useCommentState", "onCommentClick", "useCallback", "createIntent", "DeckAction", "ChangeCompanion", "primary", "companion", "ATTENDABLE_PATH_SEPARATOR", "commentClickObserver", "useCommentClickListener", "handleDrop", "view", "files", "file", "info", "processEditorPayload", "type", "url", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "readOnly", "placeholder", "createMarkdownExtensions", "createThemeExtensions", "syntaxHighlighting", "slots", "content", "className", "editorContent", "editorGutter", "dropFile", "onDrop", "isNotFalsy", "moveToEndOfLine", "useTest", "acceptedFiles", "getInputProps", "open", "useDropzone", "multiple", "noDrag", "accept", "useEffect", "length", "requestAnimationFrame", "f", "File", "name", "lastModified", "handleToolbarAction", "useActionHandler", "handleAction", "action", "properties", "openSearchPanel", "React", "StackItem", "Content", "classNames", "EditorToolbar", "attendableId", "customActions", "createUploadAction", "onAction", "div", "ref", "data-testid", "data-toolbar", "stackItemContentEditorClassNames", "composer", "window", "nodes", "createEditorAction", "testId", "ns", "edges", "source", "target", "useExtensions", "document", "text", "settings", "identity", "useIdentity", "space", "getSpace", "baseExtensions", "createBaseExtensions", "editorInputMode", "folding", "numberedHeadings", "debug", "typewriter", "useCapabilities", "MarkdownCapabilities", "Extensions", "pluginExtensions", "flat", "reduce", "acc", "extension", "createDataExtensions", "createDocAccessor", "selectionState", "listener", "onChange", "setFallbackName", "query", "InputModeExtensions", "formattingKeymap", "decorateMarkdown", "selectionChangeDelay", "renderLinkButton", "createLinkRenderer", "Open", "part", "pivotId", "fullyQualifiedId", "linkTooltip", "renderLinkTooltip", "preview", "autocomplete", "onSearch", "objects", "map", "object", "label", "apply", "items", "split", "style", "hover", "icon", "onSelectObject", "el", "isInternal", "startsWith", "location", "origin", "onClick", "qualifiedId", "at", "href", "rel", "renderRoot", "a", "Icon", "size", "web", "URL", "root", "node", "createRoot", "render", "ThemeProvider", "tx", "defaultTx", "MarkdownContainer", "doc", "isInstanceOf", "DocumentType", "TextType", "DocumentEditor", "inputMode", "props", "fallbackName", "getFallbackName", "upload", "Capabilities", "FileUploader", "handleFileUpload"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/util.tsx", "../../../src/capabilities/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\nimport { live, createObject, isEchoObject, loadObjectReferences, makeRef } from '@dxos/react-client/echo';\nimport { TextType } from '@dxos/schema';\n\nimport { DocumentType, type MarkdownProperties } from './types';\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n isEchoObject(data)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\nexport const getFallbackName = (content: string) => {\n return content.substring(0, 31).split('\\n')[0].replaceAll(nonTitleChars, '').trim();\n};\n\nexport const setFallbackName = debounce((doc: DocumentType, content: string) => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n doc.fallbackName = name;\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<DocumentType> = {\n serialize: async ({ object }): Promise<string> => {\n const content = await loadObjectReferences(object, (doc) => doc.content);\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content: content.target?.content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return createObject(\n live(DocumentType, { name, fallbackName, content: makeRef(live(TextType, { content })), threads: [] }),\n );\n },\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphSerializer = lazy(() => import('./app-graph-serializer'));\nexport const ArtifactDefinition = lazy(() => import('./artifact-definition'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const MarkdownSettings = lazy(() => import('./settings'));\nexport const MarkdownState = lazy(() => import('./state'));\nexport const Thread = lazy(() => import('./thread'));\n\nexport * from './capabilities';\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAyB;AAEzB,kBAAgF;AAChF,oBAAyB;ACHzB,2BAAqB;ADOd,IAAMA,uBAAuB,CAACC,aACnCC,0BAAaD,IAAAA,IACT,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKE,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAEf,IAAMC,kBAAkB,CAACC,YAAAA;AAC9B,SAAOA,QAAQC,UAAU,GAAG,EAAA,EAAIC,MAAM,IAAA,EAAM,CAAA,EAAGC,WAAWL,eAAe,EAAA,EAAIM,KAAI;AACnF;AAEO,IAAMC,sBAAkBC,uBAAS,CAACC,KAAmBP,YAAAA;AAC1D,QAAMQ,OAAOT,gBAAgBC,OAAAA;AAC7B,MAAIO,IAAIE,iBAAiBD,MAAM;AAC7BD,QAAIE,eAAeD;EACrB;AACF,GAAG,GAAA;AAEI,IAAME,aAAkD;EAC7DC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAMZ,UAAU,UAAMa,kCAAqBD,QAAQ,CAACL,QAAQA,IAAIP,OAAO;AACvE,WAAOc,KAAKC,UAAU;MAAEP,MAAMI,OAAOJ;MAAMC,cAAcG,OAAOH;MAAcT,SAASA,QAAQgB,QAAQhB;IAAQ,CAAA;EACjH;EAEAiB,aAAa,OAAO,EAAEjB,SAASkB,WAAU,MAAE;AACzC,UAAM,EAAEV,MAAMC,cAAcT,QAAO,IAAKc,KAAKK,MAAMD,UAAAA;AACnD,eAAOE,8BACLC,kBAAKC,oCAAc;MAAEd;MAAMC;MAAcT,aAASuB,yBAAQF,kBAAKG,wBAAU;QAAExB;MAAQ,CAAA,CAAA;MAAKyB,SAAS,CAAA;IAAG,CAAA,CAAA;EAExG;AACF;ACrCO,IAAMC,yBAAqBC,2BAAK,MAAM,OAAO,qCAAA,CAAA;AAC7C,IAAMC,yBAAqBD,2BAAK,MAAM,OAAO,oCAAA,CAAA;AAC7C,IAAME,qBAAiBF,2BAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMG,mBAAeH,2BAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMI,uBAAmBJ,2BAAK,MAAM,OAAO,yBAAA,CAAA;AAC3C,IAAMK,oBAAgBL,2BAAK,MAAM,OAAO,sBAAA,CAAA;AACxC,IAAMM,aAASN,2BAAK,MAAM,OAAO,uBAAA,CAAA;",
|
|
6
|
-
"names": ["isMarkdownProperties", "data", "isEchoObject", "title", "nonTitleChars", "getFallbackName", "content", "substring", "split", "replaceAll", "trim", "setFallbackName", "debounce", "doc", "name", "fallbackName", "serializer", "serialize", "object", "loadObjectReferences", "JSON", "stringify", "target", "deserialize", "serialized", "parse", "createObject", "live", "DocumentType", "makeRef", "TextType", "threads", "AppGraphSerializer", "lazy", "ArtifactDefinition", "IntentResolver", "ReactSurface", "MarkdownSettings", "MarkdownState", "Thread"]
|
|
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 { isInstanceOf } from '@dxos/echo-schema';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { TextType } from '@dxos/schema';\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', 'tabpanel'],\n filter: (data): data is { subject: DocumentType; variant: undefined } =>\n isInstanceOf(DocumentType, data.subject) && !data.variant,\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}/text`,\n role: ['article', 'section', 'tabpanel'],\n filter: (data): data is { id: string; subject: TextType } =>\n typeof data.id === 'string' && isInstanceOf(TextType, 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.id}\n object={data.subject}\n role={role}\n settings={settings}\n extensionProviders={state.extensionProviders}\n viewMode={getViewMode(data.id)}\n editorStateStore={editorState}\n onViewModeChange={setViewMode}\n />\n );\n },\n }),\n createSurface({\n id: `${MARKDOWN_PLUGIN}/editor`,\n role: ['article', 'section'],\n filter: (data): data is { subject: { id: string; text: string } } => isEditorModel(data.subject),\n component: ({ data, role }) => {\n const 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}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<MarkdownSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === MARKDOWN_PLUGIN,\n component: ({ data: { subject } }) => <MarkdownSettings settings={subject.value} />,\n }),\n ]);\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 { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownSettingsProps } from '../types';\n\nexport const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps }) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n\n // TODO(wittjosiah): Add skill test confirmation for entering vim mode.\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('default view mode label')}>\n <Select.Root\n value={settings.defaultViewMode}\n onValueChange={(value) => {\n settings.defaultViewMode = value as EditorViewMode;\n }}\n >\n <Select.TriggerButton />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorViewModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`${mode} mode label`, { ns: 'react-ui-editor' })}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('editor input mode label')}>\n <Select.Root\n value={settings.editorInputMode ?? 'default'}\n onValueChange={(value) => {\n settings.editorInputMode = value as EditorInputMode;\n }}\n >\n <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorInputModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`settings editor input mode ${mode} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings toolbar label')}>\n <Input.Switch checked={settings.toolbar} onCheckedChange={(checked) => (settings.toolbar = !!checked)} />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings numbered headings label')}>\n <Input.Switch\n checked={settings.numberedHeadings}\n onCheckedChange={(checked) => (settings.numberedHeadings = !!checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings folding label')}>\n <Input.Switch checked={settings.folding} onCheckedChange={(checked) => (settings.folding = !!checked)} />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings experimental label')}>\n <Input.Switch\n checked={settings.experimental}\n onCheckedChange={(checked) => (settings.experimental = !!checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput\n label={t('settings debug label')}\n secondary={\n settings.debug ? (\n <Input.Root>\n <Input.TextArea\n rows={5}\n value={settings.typewriter}\n onChange={({ target: { value } }) => (settings.typewriter = value)}\n placeholder={t('settings debug placeholder')}\n />\n </Input.Root>\n ) : undefined\n }\n >\n <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_react", "MarkdownSettings", "settings", "t", "useTranslation", "MARKDOWN_PLUGIN", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Select", "Root", "value", "defaultViewMode", "onValueChange", "TriggerButton", "Portal", "Content", "Viewport", "EditorViewModes", "map", "mode", "Option", "key", "ns", "editorInputMode", "placeholder", "EditorInputModes", "Input", "Switch", "checked", "toolbar", "onCheckedChange", "numberedHeadings", "folding", "experimental", "secondary", "debug", "TextArea", "rows", "typewriter", "onChange", "target", "undefined", "MarkdownContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "role", "filter", "data", "isInstanceOf", "DocumentType", "subject", "variant", "component", "settingsStore", "useCapability", "SettingsStore", "getStore", "state", "editorState", "getViewMode", "setViewMode", "MarkdownCapabilities", "State", "fullyQualifiedId", "object", "extensionProviders", "viewMode", "editorStateStore", "onViewModeChange", "TextType", "isEditorModel", "prefix"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/util.tsx", "../../../src/capabilities/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\nimport { live, createObject, isEchoObject, loadObjectReferences, makeRef } from '@dxos/react-client/echo';\nimport { TextType } from '@dxos/schema';\n\nimport { DocumentType, type MarkdownProperties } from './types';\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n isEchoObject(data)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\nexport const getFallbackName = (content: string) => {\n return content.substring(0, 31).split('\\n')[0].replaceAll(nonTitleChars, '').trim();\n};\n\nexport const setFallbackName = debounce((doc: DocumentType, content: string) => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n doc.fallbackName = name;\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<DocumentType> = {\n serialize: async ({ object }): Promise<string> => {\n const content = await loadObjectReferences(object, (doc) => doc.content);\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content: content.target?.content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return createObject(\n live(DocumentType, { name, fallbackName, content: makeRef(live(TextType, { content })), threads: [] }),\n );\n },\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphSerializer = lazy(() => import('./app-graph-serializer'));\nexport const ArtifactDefinition = lazy(() => import('./artifact-definition'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const MarkdownSettings = lazy(() => import('./settings'));\nexport const MarkdownState = lazy(() => import('./state'));\nexport const Thread = lazy(() => import('./thread'));\n\nexport * from './capabilities';\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,SAASA,gBAAgB;AAEzB,SAASC,MAAMC,cAAcC,cAAcC,sBAAsBC,eAAe;AAChF,SAASC,gBAAgB;AAIlB,IAAMC,uBAAuB,CAACC,SACnCC,aAAaD,IAAAA,IACT,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKE,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAEf,IAAMC,kBAAkB,CAACC,YAAAA;AAC9B,SAAOA,QAAQC,UAAU,GAAG,EAAA,EAAIC,MAAM,IAAA,EAAM,CAAA,EAAGC,WAAWL,eAAe,EAAA,EAAIM,KAAI;AACnF;AAEO,IAAMC,kBAAkBC,SAAS,CAACC,KAAmBP,YAAAA;AAC1D,QAAMQ,OAAOT,gBAAgBC,OAAAA;AAC7B,MAAIO,IAAIE,iBAAiBD,MAAM;AAC7BD,QAAIE,eAAeD;EACrB;AACF,GAAG,GAAA;AAEI,IAAME,aAAkD;EAC7DC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAMZ,UAAU,MAAMa,qBAAqBD,QAAQ,CAACL,QAAQA,IAAIP,OAAO;AACvE,WAAOc,KAAKC,UAAU;MAAEP,MAAMI,OAAOJ;MAAMC,cAAcG,OAAOH;MAAcT,SAASA,QAAQgB,QAAQhB;IAAQ,CAAA;EACjH;EAEAiB,aAAa,OAAO,EAAEjB,SAASkB,WAAU,MAAE;AACzC,UAAM,EAAEV,MAAMC,cAAcT,QAAO,IAAKc,KAAKK,MAAMD,UAAAA;AACnD,WAAOE,aACLC,KAAKC,cAAc;MAAEd;MAAMC;MAAcT,SAASuB,QAAQF,KAAKG,UAAU;QAAExB;MAAQ,CAAA,CAAA;MAAKyB,SAAS,CAAA;IAAG,CAAA,CAAA;EAExG;AACF;;;ACvCA,SAASC,YAAY;AAEd,IAAMC,qBAAqBC,KAAK,MAAM,OAAO,qCAAA,CAAA;AAC7C,IAAMC,qBAAqBD,KAAK,MAAM,OAAO,oCAAA,CAAA;AAC7C,IAAME,iBAAiBF,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMG,eAAeH,KAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMI,mBAAmBJ,KAAK,MAAM,OAAO,yBAAA,CAAA;AAC3C,IAAMK,gBAAgBL,KAAK,MAAM,OAAO,sBAAA,CAAA;AACxC,IAAMM,SAASN,KAAK,MAAM,OAAO,uBAAA,CAAA;",
|
|
6
|
-
"names": ["debounce", "live", "createObject", "isEchoObject", "loadObjectReferences", "makeRef", "TextType", "isMarkdownProperties", "data", "isEchoObject", "title", "nonTitleChars", "getFallbackName", "content", "substring", "split", "replaceAll", "trim", "setFallbackName", "debounce", "doc", "name", "fallbackName", "serializer", "serialize", "object", "loadObjectReferences", "JSON", "stringify", "target", "deserialize", "serialized", "parse", "createObject", "live", "DocumentType", "makeRef", "TextType", "threads", "lazy", "AppGraphSerializer", "lazy", "ArtifactDefinition", "IntentResolver", "ReactSurface", "MarkdownSettings", "MarkdownState", "Thread"]
|
|
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 { isInstanceOf } from '@dxos/echo-schema';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { TextType } from '@dxos/schema';\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', 'tabpanel'],\n filter: (data): data is { subject: DocumentType; variant: undefined } =>\n isInstanceOf(DocumentType, data.subject) && !data.variant,\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}/text`,\n role: ['article', 'section', 'tabpanel'],\n filter: (data): data is { id: string; subject: TextType } =>\n typeof data.id === 'string' && isInstanceOf(TextType, 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.id}\n object={data.subject}\n role={role}\n settings={settings}\n extensionProviders={state.extensionProviders}\n viewMode={getViewMode(data.id)}\n editorStateStore={editorState}\n onViewModeChange={setViewMode}\n />\n );\n },\n }),\n createSurface({\n id: `${MARKDOWN_PLUGIN}/editor`,\n role: ['article', 'section'],\n filter: (data): data is { subject: { id: string; text: string } } => isEditorModel(data.subject),\n component: ({ data, role }) => {\n const 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}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<MarkdownSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === MARKDOWN_PLUGIN,\n component: ({ data: { subject } }) => <MarkdownSettings settings={subject.value} />,\n }),\n ]);\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 { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownSettingsProps } from '../types';\n\nexport const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps }) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n\n // TODO(wittjosiah): Add skill test confirmation for entering vim mode.\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('default view mode label')}>\n <Select.Root\n value={settings.defaultViewMode}\n onValueChange={(value) => {\n settings.defaultViewMode = value as EditorViewMode;\n }}\n >\n <Select.TriggerButton />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorViewModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`${mode} mode label`, { ns: 'react-ui-editor' })}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('editor input mode label')}>\n <Select.Root\n value={settings.editorInputMode ?? 'default'}\n onValueChange={(value) => {\n settings.editorInputMode = value as EditorInputMode;\n }}\n >\n <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorInputModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`settings editor input mode ${mode} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings toolbar label')}>\n <Input.Switch checked={settings.toolbar} onCheckedChange={(checked) => (settings.toolbar = !!checked)} />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings numbered headings label')}>\n <Input.Switch\n checked={settings.numberedHeadings}\n onCheckedChange={(checked) => (settings.numberedHeadings = !!checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings folding label')}>\n <Input.Switch checked={settings.folding} onCheckedChange={(checked) => (settings.folding = !!checked)} />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings experimental label')}>\n <Input.Switch\n checked={settings.experimental}\n onCheckedChange={(checked) => (settings.experimental = !!checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput\n label={t('settings debug label')}\n secondary={\n settings.debug ? (\n <Input.Root>\n <Input.TextArea\n rows={5}\n value={settings.typewriter}\n onChange={({ target: { value } }) => (settings.typewriter = value)}\n placeholder={t('settings debug placeholder')}\n />\n </Input.Root>\n ) : undefined\n }\n >\n <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "createSurface", "contributes", "Capabilities", "useCapability", "isInstanceOf", "SettingsStore", "fullyQualifiedId", "TextType", "lazy", "React", "Input", "Select", "useTranslation", "EditorInputModes", "EditorViewModes", "DeprecatedFormContainer", "DeprecatedFormInput", "MarkdownSettings", "settings", "t", "useTranslation", "MARKDOWN_PLUGIN", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Select", "Root", "value", "defaultViewMode", "onValueChange", "TriggerButton", "Portal", "Content", "Viewport", "EditorViewModes", "map", "mode", "Option", "key", "ns", "editorInputMode", "placeholder", "EditorInputModes", "Input", "Switch", "checked", "toolbar", "onCheckedChange", "numberedHeadings", "folding", "experimental", "secondary", "debug", "TextArea", "rows", "typewriter", "onChange", "target", "undefined", "MarkdownContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "MARKDOWN_PLUGIN", "role", "filter", "data", "isInstanceOf", "DocumentType", "subject", "variant", "component", "settingsStore", "useCapability", "SettingsStore", "settings", "getStore", "value", "state", "editorState", "getViewMode", "setViewMode", "MarkdownCapabilities", "State", "React", "MarkdownContainer", "fullyQualifiedId", "object", "extensionProviders", "viewMode", "editorStateStore", "onViewModeChange", "TextType", "isEditorModel", "prefix", "MarkdownSettings"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/MarkdownEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAG/D,OAAO,EAAgB,KAAK,QAAQ,EAAuB,MAAM,qBAAqB,CAAC;AAGvF,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EAgBxB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;CAC9D,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,YAAY,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,6JAaxB,mBAAmB,sBA+JrB,CAAC;AAaF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAQ7B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownEditor.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/MarkdownEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAU7C,OAAO,EAAE,cAAc,EAA4B,MAAM,kBAAkB,CAAC;AAgB5E,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAarC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/MarkdownSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD,eAAO,MAAM,gBAAgB,iBAAkB;IAAE,QAAQ,EAAE,qBAAqB,CAAA;CAAE,sBA2FjF,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|