@dxos/plugin-markdown 0.6.14-main.f49f251 → 0.6.14-staging.0f558a0
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-HRGXWEA4.mjs → MarkdownContainer-UBYHA366.mjs} +44 -54
- package/dist/lib/browser/MarkdownContainer-UBYHA366.mjs.map +7 -0
- package/dist/lib/browser/{chunk-DRJ3FPYF.mjs → chunk-4X6YX3KU.mjs} +3 -3
- package/dist/lib/browser/chunk-4X6YX3KU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VGIHBUXB.mjs → chunk-PV4AWYWK.mjs} +2 -2
- package/dist/lib/browser/{chunk-US5O2P3R.mjs → chunk-VZAGHNHU.mjs} +2 -2
- package/dist/lib/browser/index.mjs +13 -14
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/meta.mjs +1 -1
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node/{MarkdownContainer-QZ4YLO7M.cjs → MarkdownContainer-2S666KPG.cjs} +48 -58
- package/dist/lib/node/MarkdownContainer-2S666KPG.cjs.map +7 -0
- package/dist/lib/node/{chunk-6HPTH2F5.cjs → chunk-2A5P424C.cjs} +7 -7
- package/dist/lib/node/{chunk-UJMOZCIA.cjs → chunk-BHPFK7YI.cjs} +6 -6
- package/dist/lib/node/{chunk-P7YU53RP.cjs → chunk-PHHIPRJC.cjs} +6 -6
- package/dist/lib/node/chunk-PHHIPRJC.cjs.map +7 -0
- package/dist/lib/node/index.cjs +57 -58
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.cjs +3 -3
- package/dist/lib/node/meta.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/types/index.cjs +6 -6
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{MarkdownContainer-FSWQL76V.mjs → MarkdownContainer-IITZD46A.mjs} +44 -54
- package/dist/lib/node-esm/MarkdownContainer-IITZD46A.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NEVN5WR6.mjs → chunk-BABK7FMW.mjs} +3 -3
- package/dist/lib/node-esm/chunk-BABK7FMW.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HPOTHJC4.mjs → chunk-EREAR7QS.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-MIDCCMIX.mjs → chunk-OEMU3XY7.mjs} +2 -2
- package/dist/lib/node-esm/index.mjs +13 -14
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/meta.mjs +1 -1
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.d.ts +5 -5
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor.d.ts +1 -2
- package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions.d.ts +1 -1
- package/dist/types/src/extensions.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -1
- package/package.json +28 -29
- package/src/MarkdownPlugin.tsx +1 -4
- package/src/components/MarkdownContainer.tsx +29 -24
- package/src/components/MarkdownEditor.tsx +19 -41
- package/src/components/MarkdownSettings.tsx +15 -15
- package/src/extensions.tsx +25 -13
- package/src/meta.ts +2 -2
- package/dist/lib/browser/MarkdownContainer-HRGXWEA4.mjs.map +0 -7
- package/dist/lib/browser/chunk-DRJ3FPYF.mjs.map +0 -7
- package/dist/lib/node/MarkdownContainer-QZ4YLO7M.cjs.map +0 -7
- package/dist/lib/node/chunk-P7YU53RP.cjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-FSWQL76V.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NEVN5WR6.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-VGIHBUXB.mjs.map → chunk-PV4AWYWK.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-US5O2P3R.mjs.map → chunk-VZAGHNHU.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-6HPTH2F5.cjs.map → chunk-2A5P424C.cjs.map} +0 -0
- /package/dist/lib/node/{chunk-UJMOZCIA.cjs.map → chunk-BHPFK7YI.cjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-HPOTHJC4.mjs.map → chunk-EREAR7QS.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-MIDCCMIX.mjs.map → chunk-OEMU3XY7.mjs.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
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 { useResolvePlugin, parseFileManagerPlugin } from '@dxos/app-framework';\nimport { fullyQualifiedId, getSpace } from '@dxos/react-client/echo';\n\nimport { MarkdownEditor, type MarkdownEditorProps } from './MarkdownEditor';\nimport { useExtensions } from '../extensions';\nimport { DocumentType, type MarkdownSettingsProps } from '../types';\nimport { getFallbackName } from '../util';\n\nexport type MarkdownContainerProps = Pick<\n MarkdownEditorProps,\n 'role' | 'extensionProviders' | 'viewMode' | 'editorStateStore' | 'onViewModeChange'\n> & {\n id: string;\n object: DocumentType | any;\n settings: MarkdownSettingsProps;\n};\n\n// TODO(burdon): Move toolbar here.\n// TODO(burdon): Factor out difference for ECHO and non-ECHO objects; i.e., single component.\nconst MarkdownContainer = ({\n id,\n role,\n object,\n extensionProviders,\n settings,\n viewMode,\n editorStateStore,\n onViewModeChange,\n}: MarkdownContainerProps) => {\n const scrollPastEnd = role === 'article';\n const doc = object instanceof DocumentType ? object : undefined;\n const extensions = useExtensions({ extensionProviders, document: doc, settings, viewMode, editorStateStore });\n\n if (doc) {\n return (\n <DocumentEditor\n id={fullyQualifiedId(object)}\n role={role}\n document={doc}\n extensions={extensions}\n settings={settings}\n scrollPastEnd={scrollPastEnd}\n onViewModeChange={onViewModeChange}\n />\n );\n } else {\n return (\n <MarkdownEditor\n id={id}\n role={role}\n initialValue={object.text}\n extensions={extensions}\n viewMode={viewMode}\n toolbar={settings.toolbar}\n inputMode={settings.editorInputMode}\n scrollPastEnd={scrollPastEnd}\n onViewModeChange={onViewModeChange}\n />\n );\n }\n};\n\ntype DocumentEditorProps = Omit<MarkdownContainerProps, 'object' | 'extensionProviders' | 'editorStateStore'> &\n Pick<MarkdownEditorProps, 'id' | 'scrollPastEnd' | 'extensions'> & {\n document: DocumentType;\n };\n\nexport const DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }: DocumentEditorProps) => {\n const space = getSpace(doc);\n\n // Migrate gradually to `fallbackName`.\n useEffect(() => {\n if (!doc.fallbackName && doc.content?.content) {\n doc.fallbackName = getFallbackName(doc.content.content);\n }\n }, [doc, doc.content]);\n\n // File dragging.\n const fileManagerPlugin = useResolvePlugin(parseFileManagerPlugin);\n const handleFileUpload = useMemo(() => {\n if (space === undefined || fileManagerPlugin?.provides.file.upload === undefined) {\n return undefined;\n }\n\n // TODO(burdon): Re-order props: space, file.\n return async (file: File) => fileManagerPlugin?.provides?.file?.upload?.(file, space);\n }, [space, fileManagerPlugin]);\n\n return (\n <MarkdownEditor\n id={id}\n initialValue={doc.content?.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';\n\nimport { type FileInfo, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport {\n type Action,\n type DNDOptions,\n type EditorViewMode,\n type EditorInputMode,\n type EditorSelectionState,\n type EditorStateStore,\n Toolbar,\n type UseTextEditorProps,\n createBasicExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n dropFile,\n editorContent,\n editorGutter,\n processAction,\n useActionHandler,\n useCommentState,\n useCommentClickListener,\n useFormattingState,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { mx, textBlockWidth } from '@dxos/react-ui-theme';\nimport { isNotFalsy, nonNullable } from '@dxos/util';\n\nimport { useSelectCurrentThread } from '../hooks';\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownPluginState } from '../types';\n\nconst DEFAULT_VIEW_MODE: EditorViewMode = 'preview';\n\nexport type MarkdownEditorProps = {\n id: string;\n role?: string;\n inputMode?: EditorInputMode;\n scrollPastEnd?: boolean;\n toolbar?: boolean;\n viewMode?: EditorViewMode;\n editorStateStore?: EditorStateStore;\n onViewModeChange?: (id: string, mode: EditorViewMode) => void;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n} & Pick<UseTextEditorProps, 'initialValue' | 'extensions'> &\n Partial<Pick<MarkdownPluginState, 'extensionProviders'>>;\n\n/**\n * Base markdown editor component.\n *\n * This component provides all the features of the markdown editor that do no depend on ECHO.\n * This allows it to be used as a common editor for markdown content on arbitrary backends (e.g. files).\n */\nexport const MarkdownEditor = ({\n id,\n role = 'article',\n initialValue,\n extensions,\n extensionProviders,\n scrollPastEnd,\n toolbar,\n viewMode,\n editorStateStore,\n onFileUpload,\n onViewModeChange,\n}: MarkdownEditorProps) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n const { themeMode } = useThemeContext();\n const dispatch = useIntentDispatcher();\n const [formattingState, formattingObserver] = useFormattingState();\n const { hasAttention } = useAttention(id);\n\n // Restore last selection and scroll point.\n const { scrollTo, selection } = useMemo<EditorSelectionState>(() => editorStateStore?.getState(id) ?? {}, [id]);\n\n // Extensions from other plugins.\n // TODO(burdon): Reconcile with DocumentEditor.useExtensions.\n const providerExtensions = useMemo(\n () => extensionProviders?.flatMap((provider) => provider({})).filter(nonNullable),\n [extensionProviders],\n );\n\n // TODO(Zan): Move these into thread plugin as well?\n const [commentsState, commentObserver] = useCommentState();\n const onCommentClick = useCallback(() => {\n void dispatch({\n action: LayoutAction.SET_LAYOUT,\n data: { element: 'complementary', state: true },\n });\n }, [dispatch]);\n const commentClickObserver = useCommentClickListener(onCommentClick);\n\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 processAction(view, { type: 'image', data: info.url });\n }\n };\n\n const {\n parentRef,\n view: editorView,\n focusAttributes,\n } = useTextEditor(\n () => ({\n initialValue,\n extensions: [\n formattingObserver,\n commentObserver,\n commentClickObserver,\n createBasicExtensions({\n readonly: viewMode === 'readonly',\n placeholder: t('editor placeholder'),\n scrollPastEnd: role === 'section' ? false : scrollPastEnd,\n }),\n createMarkdownExtensions({ themeMode }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n slots: { content: { className: editorContent } },\n }),\n editorGutter,\n role !== 'section' && onFileUpload && dropFile({ onDrop: handleDrop }),\n providerExtensions,\n extensions,\n ].filter(isNotFalsy),\n ...(role !== 'section' && {\n id,\n scrollTo,\n selection,\n // TODO(wittjosiah): Autofocus based on layout is racy.\n // autoFocus: layoutPlugin?.provides.layout ? layoutPlugin?.provides.layout.scrollIntoView === id : true,\n moveToEndOfLine: true,\n }),\n }),\n [id, formattingObserver, viewMode, themeMode, extensions, providerExtensions],\n );\n\n useTest(editorView);\n useSelectCurrentThread(editorView, id);\n\n // Toolbar handler.\n const handleToolbarAction = useActionHandler(editorView);\n const handleAction = (action: Action) => {\n switch (action.type) {\n case 'search': {\n if (editorView) {\n openSearchPanel(editorView);\n }\n return;\n }\n case 'view-mode': {\n onViewModeChange?.(id, action.data);\n return;\n }\n }\n\n handleToolbarAction?.(action);\n };\n\n return (\n <StackItem.Content toolbar={toolbar} contentSize={role === 'article' ? 'cover' : 'intrinsic'}>\n {toolbar && (\n <div\n role='none'\n className={mx(\n 'attention-surface is-full',\n role === 'section' && 'sticky block-start-0 z-[1] border-be !border-separator -mbe-px min-is-0',\n )}\n >\n <Toolbar.Root\n classNames={[textBlockWidth, !hasAttention && 'opacity-20']}\n state={formattingState && { ...formattingState, ...commentsState }}\n onAction={handleAction}\n >\n <Toolbar.Markdown />\n {onFileUpload && <Toolbar.Custom onUpload={onFileUpload} />}\n <Toolbar.Separator />\n <Toolbar.View mode={viewMode ?? DEFAULT_VIEW_MODE} />\n <Toolbar.Actions />\n </Toolbar.Root>\n </div>\n )}\n <div\n role='none'\n ref={parentRef}\n data-testid='composer.markdownRoot'\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n className={mx(\n 'ch-focus-ring-inset data-[toolbar=disabled]:pbs-2 attention-surface',\n role === 'article' ? 'min-bs-0' : '[&_.cm-scroller]:overflow-hidden [&_.cm-scroller]:min-bs-24',\n )}\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", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\nimport { useCallback } from 'react';\n\nimport { LayoutAction, useIntentResolver } from '@dxos/app-framework';\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 handleScrollIntoView = useCallback(\n ({ action, data }: { action: string; data?: any }) => {\n if (action === LayoutAction.SCROLL_INTO_VIEW) {\n if (editorView && data?.id === documentId && data?.cursor) {\n // TODO(burdon): We need typed intents.\n const range = Cursor.getRangeFromCursor(editorView.state, data.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 },\n [documentId, editorView],\n );\n\n useIntentResolver(MARKDOWN_PLUGIN, handleScrollIntoView);\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 { type IntentDispatcher, NavigationAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { createDocAccessor, fullyQualifiedId, getSpace, type Query } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Icon, ThemeProvider } from '@dxos/react-ui';\nimport {\n type AutocompleteResult,\n type EditorStateStore,\n type EditorViewMode,\n type Extension,\n InputModeExtensions,\n createDataExtensions,\n autocomplete,\n decorateMarkdown,\n folding,\n formattingKeymap,\n linkTooltip,\n listener,\n selectionState,\n typewriter,\n} from '@dxos/react-ui-editor';\nimport { defaultTx } from '@dxos/react-ui-theme';\nimport { isNotFalsy } from '@dxos/util';\n\nimport { type DocumentType, type MarkdownPluginState, type MarkdownSettingsProps } from './types';\nimport { setFallbackName } from './util';\n\ntype ExtensionsOptions = {\n document?: DocumentType;\n dispatch?: IntentDispatcher;\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 settings,\n viewMode,\n editorStateStore,\n extensionProviders,\n}: ExtensionsOptions & Pick<MarkdownPluginState, 'extensionProviders'>): Extension[] => {\n const dispatch = useIntentDispatcher();\n const identity = useIdentity();\n const space = getSpace(document);\n\n // TODO(wittjosiah): Autocomplete is not working and this query is causing performance issues.\n // TODO(burdon): Unsubscribe.\n // const query = space?.db.query(Filter.schema(DocumentType));\n // query?.subscribe();\n const baseExtensions = useMemo(\n () =>\n createBaseExtensions({\n document,\n settings,\n viewMode,\n dispatch,\n // query,\n }),\n [\n document,\n viewMode,\n dispatch,\n settings,\n settings.editorInputMode,\n settings.folding,\n settings.numberedHeadings,\n settings.debug,\n settings.typewriter,\n ],\n );\n\n //\n // External extensions from other plugins.\n //\n const pluginExtensions = useMemo<Extension[] | undefined>(\n () =>\n extensionProviders?.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 && createDocAccessor(document.content, ['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, space, identity],\n );\n};\n\n/**\n * Create extension instances for editor.\n */\nconst createBaseExtensions = ({ document, dispatch, settings, query, viewMode }: ExtensionsOptions): Extension[] => {\n const extensions: Extension[] = [\n settings.editorInputMode && InputModeExtensions[settings.editorInputMode],\n settings.folding && folding(),\n ].filter(isNotFalsy);\n\n //\n // Markdown\n //\n if (viewMode !== 'source') {\n extensions.push(\n ...[\n formattingKeymap(),\n decorateMarkdown({\n selectionChangeDelay: 100,\n numberedHeadings: settings.numberedHeadings ? { from: 2 } : undefined,\n // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.\n renderLinkButton:\n dispatch && document\n ? onRenderLink((id: string) => {\n void dispatch({\n action: NavigationAction.ADD_TO_ACTIVE,\n data: {\n id,\n part: 'main',\n pivotId: fullyQualifiedId(document),\n scrollIntoView: true,\n },\n });\n })\n : undefined,\n }),\n linkTooltip(renderLinkTooltip),\n ],\n );\n }\n\n //\n // Autocomplete object links.\n //\n if (query) {\n extensions.push(\n autocomplete({\n onSearch: (text: string) => {\n // TODO(burdon): Specify filter (e.g., stack).\n return query.objects\n .map<AutocompleteResult | undefined>((object) =>\n object.name?.length && object.id !== document?.id\n ? {\n label: object.name,\n // TODO(burdon): Factor out URL builder.\n apply: `[${object.name}](/${fullyQualifiedId(object)})`,\n }\n : undefined,\n )\n .filter(isNotFalsy);\n },\n }),\n );\n }\n\n if (settings.debug) {\n const items = settings.typewriter?.split(/[,\\n]/) ?? '';\n if (items) {\n extensions.push(typewriter({ items }));\n }\n }\n\n return extensions;\n};\n\n// TODO(burdon): Factor out styles.\nconst style = {\n hover: 'rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400',\n icon: 'inline-block leading-none mis-1 cursor-pointer',\n};\n\nconst onRenderLink = (onSelectObject: (id: string) => void) => (el: Element, url: string) => {\n // TODO(burdon): Formalize/document internal link format.\n const isInternal =\n url.startsWith('/') ||\n // TODO(wittjosiah): This should probably be parsed out on paste?\n url.startsWith(window.location.origin);\n\n const options: AnchorHTMLAttributes<any> = isInternal\n ? {\n onClick: () => {\n const qualifiedId = url.split('/').at(-1);\n invariant(qualifiedId, 'Invalid link format.');\n onSelectObject(qualifiedId);\n },\n }\n : {\n href: url,\n rel: 'noreferrer',\n target: '_blank',\n };\n\n renderRoot(\n el,\n <a {...options} className={style.hover}>\n <Icon\n icon={isInternal ? 'ph--arrow-square-down--bold' : 'ph--arrow-square-out--bold'}\n size={4}\n classNames={style.icon}\n />\n </a>,\n );\n};\n\nconst renderLinkTooltip = (el: Element, url: string) => {\n const web = new URL(url);\n renderRoot(\n el,\n <a href={url} rel='noreferrer' target='_blank' className={style.hover}>\n {web.origin}\n <Icon icon='ph--arrow-square-out--bold' size={4} classNames={style.icon} />\n </a>,\n );\n};\n\n// TODO(burdon): Remove react rendering; use DOM directly.\nexport const renderRoot = <T extends Element>(root: T, node: ReactNode): T => {\n createRoot(root).render(<ThemeProvider tx={defaultTx}>{node}</ThemeProvider>);\n return root;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAA0C;AAE1C,2BAAyD;AACzD,kBAA2C;ACH3C,oBAAgC;AAEhC,IAAAA,gBAAuD;AAEvD,IAAAC,wBAAiE;AACjE,sBAAgD;AAChD,gCAA6B;AAC7B,6BAqBO;AACP,4BAA0B;AAC1B,4BAAmC;AACnC,kBAAwC;AC/BxC,kBAA2B;AAC3B,IAAAD,gBAA4B;AAE5B,IAAAC,wBAAgD;AAChD,IAAAC,0BAAqC;ACJrC,IAAAF,gBAA0E;AAC1E,oBAA2B;AAE3B,IAAAC,wBAA6E;AAC7E,uBAA0B;AAC1B,IAAAE,eAA0E;AAC1E,kBAA4B;AAC5B,IAAAC,mBAAoC;AACpC,IAAAF,0BAeO;AACP,IAAAG,yBAA0B;AAC1B,IAAAC,eAA2B;ADdpB,IAAMC,yBAAyB,CAACC,YAAoCC,eAAAA;AACzE,QAAMC,2BAAuBC,2BAC3B,CAAC,EAAEC,QAAQC,KAAI,MAAkC;AAC/C,QAAID,WAAWE,mCAAaC,kBAAkB;AAC5C,UAAIP,cAAcK,MAAMG,OAAOP,cAAcI,MAAMI,QAAQ;AAEzD,cAAMC,QAAQC,+BAAOC,mBAAmBZ,WAAWa,OAAOR,KAAKI,MAAM;AACrE,YAAIC,OAAO;AACT,gBAAMI,YAAYd,WAAWa,MAAMC,UAAUC,KAAKC,SAASN,MAAMM,OAAO;YAAEC,QAAQP,MAAMM;UAAK,IAAIE;AACjG,gBAAMC,UAAU;;YAEdC,uBAAWC,eAAeX,MAAMM,MAAM;cAAEM,GAAG;cAASC,SAAS;YAAG,CAAA;;AAElE,cAAIT,WAAW;AAEbK,oBAAQK,KAAKC,qCAAaC,GAAG;cAAEC,SAAS1B;YAAW,CAAA,CAAA;UACrD;AAEAD,qBAAW4B,SAAS;YAClBT;YACAL,WAAWA,YAAY;cAAEG,QAAQP,MAAMM;YAAK,IAAIE;UAClD,CAAA;QACF;MACF;IACF;EACF,GACA;IAACjB;IAAYD;GAAW;AAG1B6B,+CAAkBC,uCAAiB5B,oBAAAA;AACrC;ADJA,IAAM6B,oBAAoC;AAqBnC,IAAMC,iBAAiB,CAAC,EAC7BxB,IACAyB,OAAO,WACPC,cACAC,YACAC,oBACAC,eACAC,SACAC,UACAC,kBACAC,cACAC,iBAAgB,MACI;AACpB,QAAM,EAAEC,EAAC,QAAKC,gCAAed,qCAAAA;AAC7B,QAAM,EAAEe,UAAS,QAAKC,iCAAAA;AACtB,QAAMlB,eAAWmB,2CAAAA;AACjB,QAAM,CAACC,iBAAiBC,kBAAAA,QAAsBC,2CAAAA;AAC9C,QAAM,EAAEC,aAAY,QAAKC,wCAAa5C,EAAAA;AAGtC,QAAM,EAAE6C,UAAUvC,UAAS,QAAKwC,uBAA8B,MAAMd,kBAAkBe,SAAS/C,EAAAA,KAAO,CAAC,GAAG;IAACA;GAAG;AAI9G,QAAMgD,yBAAqBF,uBACzB,MAAMlB,oBAAoBqB,QAAQ,CAACC,aAAaA,SAAS,CAAC,CAAA,CAAA,EAAIC,OAAOC,uBAAAA,GACrE;IAACxB;GAAmB;AAItB,QAAM,CAACyB,eAAeC,eAAAA,QAAmBC,wCAAAA;AACzC,QAAMC,qBAAiB7D,cAAAA,aAAY,MAAA;AACjC,SAAKyB,SAAS;MACZxB,QAAQE,sBAAAA,aAAa2D;MACrB5D,MAAM;QAAE6D,SAAS;QAAiBrD,OAAO;MAAK;IAChD,CAAA;EACF,GAAG;IAACe;GAAS;AACb,QAAMuC,2BAAuBC,gDAAwBJ,cAAAA;AAGrD,QAAMK,aAAmC,OAAOC,MAAM,EAAEC,MAAK,MAAE;AAC7D,UAAMC,OAAOD,MAAM,CAAA;AACnB,UAAME,OAAOD,QAAQ/B,eAAe,MAAMA,aAAa+B,IAAAA,IAAQtD;AAC/D,QAAIuD,MAAM;AACRC,gDAAcJ,MAAM;QAAEK,MAAM;QAAStE,MAAMoE,KAAKG;MAAI,CAAA;IACtD;EACF;AAEA,QAAM,EACJC,WACAP,MAAMtE,YACN8E,gBAAe,QACbC,sCACF,OAAO;IACL7C;IACAC,YAAY;MACVc;MACAa;MACAK;UACAa,8CAAsB;QACpBC,UAAU1C,aAAa;QACvB2C,aAAavC,EAAE,oBAAA;QACfN,eAAeJ,SAAS,YAAY,QAAQI;MAC9C,CAAA;UACA8C,iDAAyB;QAAEtC;MAAU,CAAA;UACrCuC,8CAAsB;QACpBvC;QACAwC,oBAAoB;QACpBC,OAAO;UAAEC,SAAS;YAAEC,WAAWC;UAAc;QAAE;MACjD,CAAA;MACAC;MACAzD,SAAS,aAAaQ,oBAAgBkD,iCAAS;QAAEC,QAAQvB;MAAW,CAAA;MACpEb;MACArB;MACAwB,OAAOkC,sBAAAA;IACT,GAAI5D,SAAS,aAAa;MACxBzB;MACA6C;MACAvC;;;MAGAgF,iBAAiB;IACnB;EACF,IACA;IAACtF;IAAIyC;IAAoBV;IAAUM;IAAWV;IAAYqB;GAAmB;AAG/EuC,UAAQ/F,UAAAA;AACRD,yBAAuBC,YAAYQ,EAAAA;AAGnC,QAAMwF,0BAAsBC,yCAAiBjG,UAAAA;AAC7C,QAAMkG,eAAe,CAAC9F,WAAAA;AACpB,YAAQA,OAAOuE,MAAI;MACjB,KAAK,UAAU;AACb,YAAI3E,YAAY;AACdmG,6CAAgBnG,UAAAA;QAClB;AACA;MACF;MACA,KAAK,aAAa;AAChB0C,2BAAmBlC,IAAIJ,OAAOC,IAAI;AAClC;MACF;IACF;AAEA2F,0BAAsB5F,MAAAA;EACxB;AAEA,SACE,8BAAAgG,QAAA,cAACC,gCAAUC,SAAO;IAAChE;IAAkBiE,aAAatE,SAAS,YAAY,UAAU;KAC9EK,WACC,8BAAA8D,QAAA,cAACI,OAAAA;IACCvE,MAAK;IACLuD,eAAWiB,0BACT,6BACAxE,SAAS,aAAa,yEAAA;KAGxB,8BAAAmE,QAAA,cAACM,+BAAQC,MAAI;IACXC,YAAY;MAACC;MAAgB,CAAC1D,gBAAgB;;IAC9CtC,OAAOmC,mBAAmB;MAAE,GAAGA;MAAiB,GAAGa;IAAc;IACjEiD,UAAUZ;KAEV,8BAAAE,QAAA,cAACM,+BAAQK,UAAQ,IAAA,GAChBtE,gBAAgB,8BAAA2D,QAAA,cAACM,+BAAQM,QAAM;IAACC,UAAUxE;MAC3C,8BAAA2D,QAAA,cAACM,+BAAQQ,WAAS,IAAA,GAClB,8BAAAd,QAAA,cAACM,+BAAQS,MAAI;IAACC,MAAM7E,YAAYR;MAChC,8BAAAqE,QAAA,cAACM,+BAAQW,SAAO,IAAA,CAAA,CAAA,GAItB,8BAAAjB,QAAA,cAACI,OAAAA;IACCvE,MAAK;IACLqF,KAAKzC;IACL0C,eAAY;IACZC,gBAAclF,UAAU,YAAY;IACpCkD,eAAWiB,0BACT,uEACAxE,SAAS,YAAY,aAAa,6DAAA;IAEnC,GAAG6C;;AAIZ;AAIA,IAAMiB,UAAU,CAACzB,SAAAA;AACfmD,+BAAU,MAAA;AACR,UAAMC,WAAYC,OAAeD;AACjC,QAAIA,UAAU;AACZA,eAAS1H,aAAasE;IACxB;EACF,GAAG;IAACA;GAAK;AACX;;AE9KO,IAAMsD,gBAAgB,CAAC,EAC5BC,UACAC,UACAvF,UACAC,kBACAJ,mBAAkB,MACkD;AACpE,QAAMR,eAAWmB,sBAAAA,qBAAAA;AACjB,QAAMgF,eAAWC,yBAAAA;AACjB,QAAMC,YAAQC,uBAASL,QAAAA;AAMvB,QAAMM,qBAAiB7E,cAAAA,SACrB,MACE8E,qBAAqB;IACnBP;IACAC;IACAvF;IACAX;EAEF,CAAA,GACF;IACEiG;IACAtF;IACAX;IACAkG;IACAA,SAASO;IACTP,SAASQ;IACTR,SAASS;IACTT,SAASU;IACTV,SAASW;GACV;AAMH,QAAMC,uBAAmBpF,cAAAA,SACvB,MACElB,oBAAoBuG,OAAO,CAACC,KAAkBlF,aAAAA;AAC5C,UAAMmF,YAAY,OAAOnF,aAAa,aAAaA,SAAS;MAAEmE;IAAS,CAAA,IAAKnE;AAC5E,QAAImF,WAAW;AACbD,UAAIpH,KAAKqH,SAAAA;IACX;AAEA,WAAOD;EACT,GAAG,CAAA,CAAE,GACP;IAACxG;IAAoByF;GAAS;AAMhC,aAAOvE,cAAAA,SACL,MACE;;IAEEuE,gBACEiB,8CAAqB;MACnBtI,IAAIqH,SAASrH;MACbuI,MAAMlB,SAAStC,eAAWyD,gCAAkBnB,SAAStC,SAAS;QAAC;OAAU;MACzE0C;MACAF;IACF,CAAA;QACFkB,wCAAezG,gBAAAA;IACfqF,gBACEqB,kCAAS;MACPC,UAAU,CAACJ,aAASK,uCAAgBvB,UAAUkB,IAAAA;IAChD,CAAA;IACFZ;IACAO;IACA/E,OAAOkC,aAAAA,UAAAA,GACX;IAACsC;IAAgBO;IAAkBb;IAAUA,UAAUtC;IAAS0C;IAAOF;GAAS;AAEpF;AAKA,IAAMK,uBAAuB,CAAC,EAAEP,UAAUjG,UAAUkG,UAAUuB,OAAO9G,SAAQ,MAAqB;AAChG,QAAMJ,aAA0B;IAC9B2F,SAASO,mBAAmBiB,4CAAoBxB,SAASO,eAAe;IACxEP,SAASQ,eAAWA,iCAAAA;IACpB3E,OAAOkC,aAAAA,UAAAA;AAKT,MAAItD,aAAa,UAAU;AACzBJ,eAAWX,KAAI,GACV;UACD+H,0CAAAA;UACAC,0CAAiB;QACfC,sBAAsB;QACtBlB,kBAAkBT,SAASS,mBAAmB;UAAEvH,MAAM;QAAE,IAAIE;;QAE5DwI,kBACE9H,YAAYiG,WACR8B,aAAa,CAACnJ,OAAAA;AACZ,eAAKoB,SAAS;YACZxB,QAAQwJ,uCAAiBC;YACzBxJ,MAAM;cACJG;cACAsJ,MAAM;cACNC,aAASC,+BAAiBnC,QAAAA;cAC1BxG,gBAAgB;YAClB;UACF,CAAA;QACF,CAAA,IACAH;MACR,CAAA;UACA+I,qCAAYC,iBAAAA;KACb;EAEL;AAKA,MAAIb,OAAO;AACTlH,eAAWX,SACT2I,sCAAa;MACXC,UAAU,CAACrB,SAAAA;AAET,eAAOM,MAAMgB,QACVC,IAAoC,CAACC,WACpCA,OAAOC,MAAMC,UAAUF,OAAO/J,OAAOqH,UAAUrH,KAC3C;UACEkK,OAAOH,OAAOC;;UAEdG,OAAO,IAAIJ,OAAOC,IAAI,UAAMR,+BAAiBO,MAAAA,CAAAA;QAC/C,IACArJ,MAAAA,EAELyC,OAAOkC,aAAAA,UAAAA;MACZ;IACF,CAAA,CAAA;EAEJ;AAEA,MAAIiC,SAASU,OAAO;AAClB,UAAMoC,QAAQ9C,SAASW,YAAYoC,MAAM,OAAA,KAAY;AACrD,QAAID,OAAO;AACTzI,iBAAWX,SAAKiH,oCAAW;QAAEmC;MAAM,CAAA,CAAA;IACrC;EACF;AAEA,SAAOzI;AACT;AAGA,IAAM2I,QAAQ;EACZC,OAAO;EACPC,MAAM;AACR;AAEA,IAAMrB,eAAe,CAACsB,mBAAyC,CAACC,IAAatG,QAAAA;AAE3E,QAAMuG,aACJvG,IAAIwG,WAAW,GAAA;EAEfxG,IAAIwG,WAAWzD,OAAO0D,SAASC,MAAM;AAEvC,QAAMC,UAAqCJ,aACvC;IACEK,SAAS,MAAA;AACP,YAAMC,cAAc7G,IAAIiG,MAAM,GAAA,EAAKa,GAAG,EAAC;AACvCC,sCAAUF,aAAa,wBAAA;;;;;;;;;AACvBR,qBAAeQ,WAAAA;IACjB;EACF,IACA;IACEG,MAAMhH;IACNiH,KAAK;IACLC,QAAQ;EACV;AAEJC,aACEb,IACA9E,8BAAAA,QAAA,cAAC4F,KAAAA;IAAG,GAAGT;IAAS/F,WAAWsF,MAAMC;KAC/B3E,8BAAAA,QAAA,cAAC6F,uBAAAA;IACCjB,MAAMG,aAAa,gCAAgC;IACnDe,MAAM;IACNtF,YAAYkE,MAAME;;AAI1B;AAEA,IAAMd,oBAAoB,CAACgB,IAAatG,QAAAA;AACtC,QAAMuH,MAAM,IAAIC,IAAIxH,GAAAA;AACpBmH,aACEb,IACA9E,8BAAAA,QAAA,cAAC4F,KAAAA;IAAEJ,MAAMhH;IAAKiH,KAAI;IAAaC,QAAO;IAAStG,WAAWsF,MAAMC;KAC7DoB,IAAIb,QACLlF,8BAAAA,QAAA,cAAC6F,uBAAAA;IAAKjB,MAAK;IAA6BkB,MAAM;IAAGtF,YAAYkE,MAAME;;AAGzE;AAGO,IAAMe,aAAa,CAAoBM,MAASC,SAAAA;AACrDC,gCAAWF,IAAAA,EAAMG,OAAOpG,8BAAAA,QAAA,cAACqG,gCAAAA;IAAcC,IAAIC;KAAYL,IAAAA,CAAAA;AACvD,SAAOD;AACT;AHlOA,IAAMO,oBAAoB,CAAC,EACzBpM,IACAyB,MACAsI,QACAnI,oBACA0F,UACAvF,UACAC,kBACAE,iBAAgB,MACO;AACvB,QAAML,gBAAgBJ,SAAS;AAC/B,QAAM4K,MAAMtC,kBAAkBuC,qCAAevC,SAASrJ;AACtD,QAAMiB,aAAayF,cAAc;IAAExF;IAAoByF,UAAUgF;IAAK/E;IAAUvF;IAAUC;EAAiB,CAAA;AAE3G,MAAIqK,KAAK;AACP,WACEzG,6BAAAA,QAAA,cAAC2G,gBAAAA;MACCvM,QAAIwJ,YAAAA,kBAAiBO,MAAAA;MACrBtI;MACA4F,UAAUgF;MACV1K;MACA2F;MACAzF;MACAK;;EAGN,OAAO;AACL,WACE0D,6BAAAA,QAAA,cAACpE,gBAAAA;MACCxB;MACAyB;MACAC,cAAcqI,OAAOxB;MACrB5G;MACAI;MACAD,SAASwF,SAASxF;MAClB0K,WAAWlF,SAASO;MACpBhG;MACAK;;EAGN;AACF;AAOO,IAAMqK,iBAAiB,CAAC,EAAEvM,IAAIqH,UAAUgF,KAAK/E,UAAUvF,UAAU,GAAG0K,MAAAA,MAA4B;AACrG,QAAMhF,YAAQC,YAAAA,UAAS2E,GAAAA;AAGvBpF,mBAAAA,WAAU,MAAA;AACR,QAAI,CAACoF,IAAIK,gBAAgBL,IAAItH,SAASA,SAAS;AAC7CsH,UAAIK,mBAAeC,uCAAgBN,IAAItH,QAAQA,OAAO;IACxD;EACF,GAAG;IAACsH;IAAKA,IAAItH;GAAQ;AAGrB,QAAM6H,wBAAoBC,uCAAiBC,2CAAAA;AAC3C,QAAMC,uBAAmBjK,aAAAA,SAAQ,MAAA;AAC/B,QAAI2E,UAAU/G,UAAakM,mBAAmBI,SAAShJ,KAAKiJ,WAAWvM,QAAW;AAChF,aAAOA;IACT;AAGA,WAAO,OAAOsD,SAAe4I,mBAAmBI,UAAUhJ,MAAMiJ,SAASjJ,MAAMyD,KAAAA;EACjF,GAAG;IAACA;IAAOmF;GAAkB;AAE7B,SACEhH,6BAAAA,QAAA,cAACpE,gBAAAA;IACCxB;IACA0B,cAAc2K,IAAItH,SAASA;IAC3BhD;IACAD,SAASwF,SAASxF;IAClB0K,WAAWlF,SAASO;IACpB5F,cAAc8K;IACb,GAAGN;;AAGV;AAEA,IAAA,4BAAeL;",
|
|
6
|
+
"names": ["import_react", "import_app_framework", "import_react_ui_editor", "import_echo", "import_react_ui", "import_react_ui_theme", "import_util", "useSelectCurrentThread", "editorView", "documentId", "handleScrollIntoView", "useCallback", "action", "data", "LayoutAction", "SCROLL_INTO_VIEW", "id", "cursor", "range", "Cursor", "getRangeFromCursor", "state", "selection", "main", "from", "anchor", "undefined", "effects", "EditorView", "scrollIntoView", "y", "yMargin", "push", "setSelection", "of", "current", "dispatch", "useIntentResolver", "MARKDOWN_PLUGIN", "DEFAULT_VIEW_MODE", "MarkdownEditor", "role", "initialValue", "extensions", "extensionProviders", "scrollPastEnd", "toolbar", "viewMode", "editorStateStore", "onFileUpload", "onViewModeChange", "t", "useTranslation", "themeMode", "useThemeContext", "useIntentDispatcher", "formattingState", "formattingObserver", "useFormattingState", "hasAttention", "useAttention", "scrollTo", "useMemo", "getState", "providerExtensions", "flatMap", "provider", "filter", "nonNullable", "commentsState", "commentObserver", "useCommentState", "onCommentClick", "SET_LAYOUT", "element", "commentClickObserver", "useCommentClickListener", "handleDrop", "view", "files", "file", "info", "processAction", "type", "url", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "readonly", "placeholder", "createMarkdownExtensions", "createThemeExtensions", "syntaxHighlighting", "slots", "content", "className", "editorContent", "editorGutter", "dropFile", "onDrop", "isNotFalsy", "moveToEndOfLine", "useTest", "handleToolbarAction", "useActionHandler", "handleAction", "openSearchPanel", "React", "StackItem", "Content", "contentSize", "div", "mx", "Toolbar", "Root", "classNames", "textBlockWidth", "onAction", "Markdown", "Custom", "onUpload", "Separator", "View", "mode", "Actions", "ref", "data-testid", "data-toolbar", "useEffect", "composer", "window", "useExtensions", "document", "settings", "identity", "useIdentity", "space", "getSpace", "baseExtensions", "createBaseExtensions", "editorInputMode", "folding", "numberedHeadings", "debug", "typewriter", "pluginExtensions", "reduce", "acc", "extension", "createDataExtensions", "text", "createDocAccessor", "selectionState", "listener", "onChange", "setFallbackName", "query", "InputModeExtensions", "formattingKeymap", "decorateMarkdown", "selectionChangeDelay", "renderLinkButton", "onRenderLink", "NavigationAction", "ADD_TO_ACTIVE", "part", "pivotId", "fullyQualifiedId", "linkTooltip", "renderLinkTooltip", "autocomplete", "onSearch", "objects", "map", "object", "name", "length", "label", "apply", "items", "split", "style", "hover", "icon", "onSelectObject", "el", "isInternal", "startsWith", "location", "origin", "options", "onClick", "qualifiedId", "at", "invariant", "href", "rel", "target", "renderRoot", "a", "Icon", "size", "web", "URL", "root", "node", "createRoot", "render", "ThemeProvider", "tx", "defaultTx", "MarkdownContainer", "doc", "DocumentType", "DocumentEditor", "inputMode", "props", "fallbackName", "getFallbackName", "fileManagerPlugin", "useResolvePlugin", "parseFileManagerPlugin", "handleFileUpload", "provides", "upload"]
|
|
7
|
+
}
|
|
@@ -16,16 +16,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_2A5P424C_exports = {};
|
|
20
|
+
__export(chunk_2A5P424C_exports, {
|
|
21
21
|
getFallbackName: () => getFallbackName,
|
|
22
22
|
isMarkdownProperties: () => isMarkdownProperties,
|
|
23
23
|
markdownExtensionPlugins: () => markdownExtensionPlugins,
|
|
24
24
|
serializer: () => serializer,
|
|
25
25
|
setFallbackName: () => setFallbackName
|
|
26
26
|
});
|
|
27
|
-
module.exports = __toCommonJS(
|
|
28
|
-
var
|
|
27
|
+
module.exports = __toCommonJS(chunk_2A5P424C_exports);
|
|
28
|
+
var import_chunk_BHPFK7YI = require("./chunk-BHPFK7YI.cjs");
|
|
29
29
|
var import_async = require("@dxos/async");
|
|
30
30
|
var import_echo = require("@dxos/react-client/echo");
|
|
31
31
|
var isMarkdownProperties = (data) => (0, import_echo.isEchoObject)(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
|
|
@@ -53,10 +53,10 @@ var serializer = {
|
|
|
53
53
|
},
|
|
54
54
|
deserialize: async ({ content: serialized }) => {
|
|
55
55
|
const { name, fallbackName, content } = JSON.parse(serialized);
|
|
56
|
-
return (0, import_echo.createObject)((0, import_echo.create)(
|
|
56
|
+
return (0, import_echo.createObject)((0, import_echo.create)(import_chunk_BHPFK7YI.DocumentType, {
|
|
57
57
|
name,
|
|
58
58
|
fallbackName,
|
|
59
|
-
content: (0, import_echo.create)(
|
|
59
|
+
content: (0, import_echo.create)(import_chunk_BHPFK7YI.TextType, {
|
|
60
60
|
content
|
|
61
61
|
}),
|
|
62
62
|
threads: []
|
|
@@ -71,4 +71,4 @@ var serializer = {
|
|
|
71
71
|
serializer,
|
|
72
72
|
setFallbackName
|
|
73
73
|
});
|
|
74
|
-
//# sourceMappingURL=chunk-
|
|
74
|
+
//# sourceMappingURL=chunk-2A5P424C.cjs.map
|
|
@@ -16,15 +16,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_BHPFK7YI_exports = {};
|
|
20
|
+
__export(chunk_BHPFK7YI_exports, {
|
|
21
21
|
DocumentType: () => DocumentType,
|
|
22
22
|
MarkdownAction: () => MarkdownAction,
|
|
23
23
|
TextType: () => TextType,
|
|
24
24
|
isEditorModel: () => isEditorModel
|
|
25
25
|
});
|
|
26
|
-
module.exports = __toCommonJS(
|
|
27
|
-
var
|
|
26
|
+
module.exports = __toCommonJS(chunk_BHPFK7YI_exports);
|
|
27
|
+
var import_chunk_PHHIPRJC = require("./chunk-PHHIPRJC.cjs");
|
|
28
28
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
29
29
|
var import_types = require("@dxos/plugin-space/types");
|
|
30
30
|
var TextType = class extends (0, import_echo_schema.TypedObject)({
|
|
@@ -45,7 +45,7 @@ var DocumentType = class extends (0, import_echo_schema.TypedObject)({
|
|
|
45
45
|
}) {
|
|
46
46
|
};
|
|
47
47
|
var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
|
|
48
|
-
var MARKDOWN_ACTION = `${
|
|
48
|
+
var MARKDOWN_ACTION = `${import_chunk_PHHIPRJC.MARKDOWN_PLUGIN}/action`;
|
|
49
49
|
var MarkdownAction;
|
|
50
50
|
(function(MarkdownAction2) {
|
|
51
51
|
MarkdownAction2[MarkdownAction2["CREATE"] = `${MARKDOWN_ACTION}/create`] = "CREATE";
|
|
@@ -58,4 +58,4 @@ var MarkdownAction;
|
|
|
58
58
|
TextType,
|
|
59
59
|
isEditorModel
|
|
60
60
|
});
|
|
61
|
-
//# sourceMappingURL=chunk-
|
|
61
|
+
//# sourceMappingURL=chunk-BHPFK7YI.cjs.map
|
|
@@ -16,18 +16,18 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_PHHIPRJC_exports = {};
|
|
20
|
+
__export(chunk_PHHIPRJC_exports, {
|
|
21
21
|
MARKDOWN_PLUGIN: () => MARKDOWN_PLUGIN,
|
|
22
22
|
meta_default: () => meta_default
|
|
23
23
|
});
|
|
24
|
-
module.exports = __toCommonJS(
|
|
24
|
+
module.exports = __toCommonJS(chunk_PHHIPRJC_exports);
|
|
25
25
|
var MARKDOWN_PLUGIN = "dxos.org/plugin/markdown";
|
|
26
26
|
var meta_default = {
|
|
27
27
|
id: MARKDOWN_PLUGIN,
|
|
28
|
-
name: "Markdown
|
|
28
|
+
name: "Markdown",
|
|
29
29
|
description: "Text editor supporting extended Markdown.",
|
|
30
|
-
|
|
30
|
+
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
|
|
31
31
|
icon: "ph--text-aa--regular"
|
|
32
32
|
};
|
|
33
33
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -35,4 +35,4 @@ var meta_default = {
|
|
|
35
35
|
MARKDOWN_PLUGIN,
|
|
36
36
|
meta_default
|
|
37
37
|
});
|
|
38
|
-
//# sourceMappingURL=chunk-
|
|
38
|
+
//# sourceMappingURL=chunk-PHHIPRJC.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const MARKDOWN_PLUGIN = 'dxos.org/plugin/markdown';\n\nexport default {\n id: MARKDOWN_PLUGIN,\n name: 'Markdown',\n description: 'Text editor supporting extended Markdown.',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n icon: 'ph--text-aa--regular',\n} satisfies PluginMeta;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAMA,kBAAkB;AAE/B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;EACNC,aAAa;EACbC,QAAQ;EACRC,MAAM;AACR;",
|
|
6
|
+
"names": ["MARKDOWN_PLUGIN", "id", "name", "description", "source", "icon"]
|
|
7
|
+
}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -28,22 +28,22 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var node_exports = {};
|
|
30
30
|
__export(node_exports, {
|
|
31
|
-
DocumentType: () =>
|
|
32
|
-
MarkdownAction: () =>
|
|
31
|
+
DocumentType: () => import_chunk_BHPFK7YI.DocumentType,
|
|
32
|
+
MarkdownAction: () => import_chunk_BHPFK7YI.MarkdownAction,
|
|
33
33
|
MarkdownPlugin: () => MarkdownPlugin,
|
|
34
|
-
TextType: () =>
|
|
34
|
+
TextType: () => import_chunk_BHPFK7YI.TextType,
|
|
35
35
|
default: () => src_default,
|
|
36
|
-
getFallbackName: () =>
|
|
37
|
-
isEditorModel: () =>
|
|
38
|
-
isMarkdownProperties: () =>
|
|
39
|
-
markdownExtensionPlugins: () =>
|
|
40
|
-
serializer: () =>
|
|
41
|
-
setFallbackName: () =>
|
|
36
|
+
getFallbackName: () => import_chunk_2A5P424C.getFallbackName,
|
|
37
|
+
isEditorModel: () => import_chunk_BHPFK7YI.isEditorModel,
|
|
38
|
+
isMarkdownProperties: () => import_chunk_2A5P424C.isMarkdownProperties,
|
|
39
|
+
markdownExtensionPlugins: () => import_chunk_2A5P424C.markdownExtensionPlugins,
|
|
40
|
+
serializer: () => import_chunk_2A5P424C.serializer,
|
|
41
|
+
setFallbackName: () => import_chunk_2A5P424C.setFallbackName
|
|
42
42
|
});
|
|
43
43
|
module.exports = __toCommonJS(node_exports);
|
|
44
|
-
var
|
|
45
|
-
var
|
|
46
|
-
var
|
|
44
|
+
var import_chunk_2A5P424C = require("./chunk-2A5P424C.cjs");
|
|
45
|
+
var import_chunk_BHPFK7YI = require("./chunk-BHPFK7YI.cjs");
|
|
46
|
+
var import_chunk_PHHIPRJC = require("./chunk-PHHIPRJC.cjs");
|
|
47
47
|
var import_react = require("@phosphor-icons/react");
|
|
48
48
|
var import_react2 = __toESM(require("react"));
|
|
49
49
|
var import_app_framework = require("@dxos/app-framework");
|
|
@@ -61,8 +61,8 @@ var import_react_ui = require("@dxos/react-ui");
|
|
|
61
61
|
var import_react_ui_data = require("@dxos/react-ui-data");
|
|
62
62
|
var import_react_ui_editor2 = require("@dxos/react-ui-editor");
|
|
63
63
|
var MarkdownSettings = ({ settings }) => {
|
|
64
|
-
const { t } = (0, import_react_ui.useTranslation)(
|
|
65
|
-
return /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.
|
|
64
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_PHHIPRJC.MARKDOWN_PLUGIN);
|
|
65
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.DeprecatedFormInput, {
|
|
66
66
|
label: t("default view mode label")
|
|
67
67
|
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Select.Root, {
|
|
68
68
|
value: settings.defaultViewMode,
|
|
@@ -74,7 +74,7 @@ var MarkdownSettings = ({ settings }) => {
|
|
|
74
74
|
value: mode
|
|
75
75
|
}, t(`${mode} mode label`, {
|
|
76
76
|
ns: "react-ui-editor"
|
|
77
|
-
})))))))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.
|
|
77
|
+
})))))))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.DeprecatedFormInput, {
|
|
78
78
|
label: t("editor input mode label")
|
|
79
79
|
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Select.Root, {
|
|
80
80
|
value: settings.editorInputMode ?? "default",
|
|
@@ -86,27 +86,27 @@ var MarkdownSettings = ({ settings }) => {
|
|
|
86
86
|
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Select.Portal, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Select.Content, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Select.Viewport, null, import_react_ui_editor2.EditorInputModes.map((mode) => /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Select.Option, {
|
|
87
87
|
key: mode,
|
|
88
88
|
value: mode
|
|
89
|
-
}, t(`settings editor input mode ${mode} label`)))))))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.
|
|
89
|
+
}, t(`settings editor input mode ${mode} label`)))))))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.DeprecatedFormInput, {
|
|
90
90
|
label: t("settings toolbar label")
|
|
91
91
|
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Input.Switch, {
|
|
92
92
|
checked: settings.toolbar,
|
|
93
93
|
onCheckedChange: (checked) => settings.toolbar = !!checked
|
|
94
|
-
})), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.
|
|
94
|
+
})), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.DeprecatedFormInput, {
|
|
95
95
|
label: t("settings numbered headings label")
|
|
96
96
|
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Input.Switch, {
|
|
97
97
|
checked: settings.numberedHeadings,
|
|
98
98
|
onCheckedChange: (checked) => settings.numberedHeadings = !!checked
|
|
99
|
-
})), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.
|
|
99
|
+
})), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.DeprecatedFormInput, {
|
|
100
100
|
label: t("settings folding label")
|
|
101
101
|
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Input.Switch, {
|
|
102
102
|
checked: settings.folding,
|
|
103
103
|
onCheckedChange: (checked) => settings.folding = !!checked
|
|
104
|
-
})), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.
|
|
104
|
+
})), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.DeprecatedFormInput, {
|
|
105
105
|
label: t("settings experimental label")
|
|
106
106
|
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Input.Switch, {
|
|
107
107
|
checked: settings.experimental,
|
|
108
108
|
onCheckedChange: (checked) => settings.experimental = !!checked
|
|
109
|
-
})), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.
|
|
109
|
+
})), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_data.DeprecatedFormInput, {
|
|
110
110
|
label: t("settings debug label"),
|
|
111
111
|
secondary: settings.debug ? /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Input.TextArea, {
|
|
112
112
|
rows: 5,
|
|
@@ -119,11 +119,11 @@ var MarkdownSettings = ({ settings }) => {
|
|
|
119
119
|
onCheckedChange: (checked) => settings.debug = !!checked
|
|
120
120
|
})));
|
|
121
121
|
};
|
|
122
|
-
var MarkdownContainer = (0, import_react3.lazy)(() => import("./MarkdownContainer-
|
|
122
|
+
var MarkdownContainer = (0, import_react3.lazy)(() => import("./MarkdownContainer-2S666KPG.cjs"));
|
|
123
123
|
var translations_default = [
|
|
124
124
|
{
|
|
125
125
|
"en-US": {
|
|
126
|
-
[
|
|
126
|
+
[import_chunk_PHHIPRJC.MARKDOWN_PLUGIN]: {
|
|
127
127
|
"plugin name": "Editor",
|
|
128
128
|
"create stack section label": "Create document",
|
|
129
129
|
"document title placeholder": "New document",
|
|
@@ -150,24 +150,24 @@ var translations_default = [
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
];
|
|
153
|
-
var getDoc = (object) => object instanceof
|
|
153
|
+
var getDoc = (object) => object instanceof import_chunk_BHPFK7YI.DocumentType ? object : void 0;
|
|
154
154
|
var MarkdownPlugin = () => {
|
|
155
|
-
const settings = new import_local_storage.LocalStorageStore(
|
|
155
|
+
const settings = new import_local_storage.LocalStorageStore(import_chunk_PHHIPRJC.MARKDOWN_PLUGIN, {
|
|
156
156
|
defaultViewMode: "preview",
|
|
157
157
|
toolbar: true,
|
|
158
158
|
numberedHeadings: true,
|
|
159
159
|
folding: true,
|
|
160
160
|
experimental: false
|
|
161
161
|
});
|
|
162
|
-
const editorStateStore = (0, import_react_ui_editor.createEditorStateStore)(`${
|
|
163
|
-
const state = new import_local_storage.LocalStorageStore(
|
|
162
|
+
const editorStateStore = (0, import_react_ui_editor.createEditorStateStore)(`${import_chunk_PHHIPRJC.MARKDOWN_PLUGIN}/editor`);
|
|
163
|
+
const state = new import_local_storage.LocalStorageStore(import_chunk_PHHIPRJC.MARKDOWN_PLUGIN, {
|
|
164
164
|
extensionProviders: [],
|
|
165
165
|
viewMode: {}
|
|
166
166
|
});
|
|
167
167
|
const getViewMode = (id) => id && state.values.viewMode[id] || settings.values.defaultViewMode;
|
|
168
168
|
const setViewMode = (id, viewMode) => state.values.viewMode[id] = viewMode;
|
|
169
169
|
return {
|
|
170
|
-
meta:
|
|
170
|
+
meta: import_chunk_PHHIPRJC.meta_default,
|
|
171
171
|
ready: async (plugins) => {
|
|
172
172
|
settings.prop({
|
|
173
173
|
key: "defaultViewMode",
|
|
@@ -212,7 +212,7 @@ var MarkdownPlugin = () => {
|
|
|
212
212
|
key: "viewMode",
|
|
213
213
|
type: import_local_storage.LocalStorageStore.json()
|
|
214
214
|
});
|
|
215
|
-
(0,
|
|
215
|
+
(0, import_chunk_2A5P424C.markdownExtensionPlugins)(plugins).forEach((plugin) => {
|
|
216
216
|
const { extensions } = plugin.provides.markdown;
|
|
217
217
|
state.values.extensionProviders?.push(extensions);
|
|
218
218
|
});
|
|
@@ -221,12 +221,12 @@ var MarkdownPlugin = () => {
|
|
|
221
221
|
settings: settings.values,
|
|
222
222
|
metadata: {
|
|
223
223
|
records: {
|
|
224
|
-
[
|
|
225
|
-
label: (object) => object instanceof
|
|
224
|
+
[import_chunk_BHPFK7YI.DocumentType.typename]: {
|
|
225
|
+
label: (object) => object instanceof import_chunk_BHPFK7YI.DocumentType ? object.name || object.fallbackName : void 0,
|
|
226
226
|
placeholder: [
|
|
227
227
|
"document title placeholder",
|
|
228
228
|
{
|
|
229
|
-
ns:
|
|
229
|
+
ns: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN
|
|
230
230
|
}
|
|
231
231
|
],
|
|
232
232
|
icon: "ph--text-aa--regular",
|
|
@@ -238,7 +238,7 @@ var MarkdownPlugin = () => {
|
|
|
238
238
|
doc2.content,
|
|
239
239
|
...doc2.threads
|
|
240
240
|
]),
|
|
241
|
-
serializer:
|
|
241
|
+
serializer: import_chunk_2A5P424C.serializer
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
244
|
},
|
|
@@ -248,8 +248,8 @@ var MarkdownPlugin = () => {
|
|
|
248
248
|
],
|
|
249
249
|
echo: {
|
|
250
250
|
schema: [
|
|
251
|
-
|
|
252
|
-
|
|
251
|
+
import_chunk_BHPFK7YI.DocumentType,
|
|
252
|
+
import_chunk_BHPFK7YI.TextType
|
|
253
253
|
]
|
|
254
254
|
},
|
|
255
255
|
space: {
|
|
@@ -257,10 +257,10 @@ var MarkdownPlugin = () => {
|
|
|
257
257
|
label: [
|
|
258
258
|
"create document label",
|
|
259
259
|
{
|
|
260
|
-
ns:
|
|
260
|
+
ns: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN
|
|
261
261
|
}
|
|
262
262
|
],
|
|
263
|
-
action:
|
|
263
|
+
action: import_chunk_BHPFK7YI.MarkdownAction.CREATE
|
|
264
264
|
}
|
|
265
265
|
},
|
|
266
266
|
graph: {
|
|
@@ -271,7 +271,7 @@ var MarkdownPlugin = () => {
|
|
|
271
271
|
return [];
|
|
272
272
|
}
|
|
273
273
|
return (0, import_plugin_graph.createExtension)({
|
|
274
|
-
id:
|
|
274
|
+
id: import_chunk_BHPFK7YI.MarkdownAction.CREATE,
|
|
275
275
|
filter: (node) => (0, import_plugin_graph.isActionGroup)(node) && node.id.startsWith(import_plugin_space.SpaceAction.ADD_OBJECT),
|
|
276
276
|
actions: ({ node }) => {
|
|
277
277
|
const id = node.id.split("/").at(-1);
|
|
@@ -284,12 +284,12 @@ var MarkdownPlugin = () => {
|
|
|
284
284
|
}
|
|
285
285
|
return [
|
|
286
286
|
{
|
|
287
|
-
id: `${
|
|
287
|
+
id: `${import_chunk_PHHIPRJC.MARKDOWN_PLUGIN}/create/${node.id}`,
|
|
288
288
|
data: async () => {
|
|
289
289
|
await dispatch([
|
|
290
290
|
{
|
|
291
|
-
plugin:
|
|
292
|
-
action:
|
|
291
|
+
plugin: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN,
|
|
292
|
+
action: import_chunk_BHPFK7YI.MarkdownAction.CREATE
|
|
293
293
|
},
|
|
294
294
|
{
|
|
295
295
|
action: import_plugin_space.SpaceAction.ADD_OBJECT,
|
|
@@ -306,7 +306,7 @@ var MarkdownPlugin = () => {
|
|
|
306
306
|
label: [
|
|
307
307
|
"create document label",
|
|
308
308
|
{
|
|
309
|
-
ns:
|
|
309
|
+
ns: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN
|
|
310
310
|
}
|
|
311
311
|
],
|
|
312
312
|
icon: "ph--text-aa--regular",
|
|
@@ -324,14 +324,14 @@ var MarkdownPlugin = () => {
|
|
|
324
324
|
}
|
|
325
325
|
return [
|
|
326
326
|
{
|
|
327
|
-
inputType:
|
|
327
|
+
inputType: import_chunk_BHPFK7YI.DocumentType.typename,
|
|
328
328
|
outputType: "text/markdown",
|
|
329
329
|
// Reconcile with metadata serializers.
|
|
330
330
|
serialize: async (node) => {
|
|
331
331
|
const doc = node.data;
|
|
332
332
|
const content = await (0, import_echo.loadObjectReferences)(doc, (doc2) => doc2.content);
|
|
333
333
|
return {
|
|
334
|
-
name: doc.name || doc.fallbackName || translations_default[0]["en-US"][
|
|
334
|
+
name: doc.name || doc.fallbackName || translations_default[0]["en-US"][import_chunk_PHHIPRJC.MARKDOWN_PLUGIN]["document title placeholder"],
|
|
335
335
|
data: content.content,
|
|
336
336
|
type: "text/markdown"
|
|
337
337
|
};
|
|
@@ -344,8 +344,8 @@ var MarkdownPlugin = () => {
|
|
|
344
344
|
}
|
|
345
345
|
const result = await dispatch([
|
|
346
346
|
{
|
|
347
|
-
plugin:
|
|
348
|
-
action:
|
|
347
|
+
plugin: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN,
|
|
348
|
+
action: import_chunk_BHPFK7YI.MarkdownAction.CREATE,
|
|
349
349
|
data: {
|
|
350
350
|
name: data.name,
|
|
351
351
|
content: data.data
|
|
@@ -372,25 +372,25 @@ var MarkdownPlugin = () => {
|
|
|
372
372
|
type: [
|
|
373
373
|
"plugin name",
|
|
374
374
|
{
|
|
375
|
-
ns:
|
|
375
|
+
ns: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN
|
|
376
376
|
}
|
|
377
377
|
],
|
|
378
378
|
label: [
|
|
379
379
|
"create stack section label",
|
|
380
380
|
{
|
|
381
|
-
ns:
|
|
381
|
+
ns: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN
|
|
382
382
|
}
|
|
383
383
|
],
|
|
384
384
|
icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.TextAa, props),
|
|
385
385
|
intent: {
|
|
386
|
-
plugin:
|
|
387
|
-
action:
|
|
386
|
+
plugin: import_chunk_PHHIPRJC.MARKDOWN_PLUGIN,
|
|
387
|
+
action: import_chunk_BHPFK7YI.MarkdownAction.CREATE
|
|
388
388
|
}
|
|
389
389
|
}
|
|
390
390
|
]
|
|
391
391
|
},
|
|
392
392
|
thread: {
|
|
393
|
-
predicate: (obj) => obj instanceof
|
|
393
|
+
predicate: (obj) => obj instanceof import_chunk_BHPFK7YI.DocumentType,
|
|
394
394
|
createSort: (doc) => {
|
|
395
395
|
const accessor = doc.content ? (0, import_echo.createDocAccessor)(doc.content, [
|
|
396
396
|
"content"
|
|
@@ -417,8 +417,8 @@ var MarkdownPlugin = () => {
|
|
|
417
417
|
switch (role) {
|
|
418
418
|
case "section":
|
|
419
419
|
case "article": {
|
|
420
|
-
const doc = getDoc(data.
|
|
421
|
-
const { id, object } = (0,
|
|
420
|
+
const doc = getDoc(data.object);
|
|
421
|
+
const { id, object } = (0, import_chunk_BHPFK7YI.isEditorModel)(data.object) ? {
|
|
422
422
|
id: data.object.id,
|
|
423
423
|
object: data.object
|
|
424
424
|
} : doc ? {
|
|
@@ -432,7 +432,6 @@ var MarkdownPlugin = () => {
|
|
|
432
432
|
id,
|
|
433
433
|
object,
|
|
434
434
|
role,
|
|
435
|
-
coordinate: data.coordinate,
|
|
436
435
|
settings: settings.values,
|
|
437
436
|
extensionProviders: state.values.extensionProviders,
|
|
438
437
|
viewMode: getViewMode(id),
|
|
@@ -441,7 +440,7 @@ var MarkdownPlugin = () => {
|
|
|
441
440
|
});
|
|
442
441
|
}
|
|
443
442
|
case "settings": {
|
|
444
|
-
return data.plugin ===
|
|
443
|
+
return data.plugin === import_chunk_PHHIPRJC.meta_default.id ? /* @__PURE__ */ import_react2.default.createElement(MarkdownSettings, {
|
|
445
444
|
settings: settings.values
|
|
446
445
|
}) : null;
|
|
447
446
|
}
|
|
@@ -452,10 +451,10 @@ var MarkdownPlugin = () => {
|
|
|
452
451
|
intent: {
|
|
453
452
|
resolver: ({ action, data }) => {
|
|
454
453
|
switch (action) {
|
|
455
|
-
case
|
|
456
|
-
const doc = (0, import_echo_schema.create)(
|
|
454
|
+
case import_chunk_BHPFK7YI.MarkdownAction.CREATE: {
|
|
455
|
+
const doc = (0, import_echo_schema.create)(import_chunk_BHPFK7YI.DocumentType, {
|
|
457
456
|
name: data?.name,
|
|
458
|
-
content: (0, import_echo_schema.create)(
|
|
457
|
+
content: (0, import_echo_schema.create)(import_chunk_BHPFK7YI.TextType, {
|
|
459
458
|
content: data?.content ?? ""
|
|
460
459
|
}),
|
|
461
460
|
threads: []
|
|
@@ -474,7 +473,7 @@ var MarkdownPlugin = () => {
|
|
|
474
473
|
]
|
|
475
474
|
};
|
|
476
475
|
}
|
|
477
|
-
case
|
|
476
|
+
case import_chunk_BHPFK7YI.MarkdownAction.SET_VIEW_MODE: {
|
|
478
477
|
const { id, viewMode } = data ?? {};
|
|
479
478
|
if (typeof id === "string" && import_react_ui_editor.EditorViewModes.includes(viewMode)) {
|
|
480
479
|
state.values.viewMode[id] = viewMode;
|