@dxos/plugin-markdown 0.6.11-staging.e6894a4 → 0.6.11
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/{DocumentEditor-HOQEHRNG.mjs → DocumentEditor-GPWV3VN3.mjs} +3 -3
- package/dist/lib/browser/{MarkdownEditor-5DHI4ORZ.mjs → MarkdownEditor-EKJJQEFL.mjs} +2 -2
- package/dist/lib/browser/{chunk-NSVC456H.mjs → chunk-7AF2JLK4.mjs} +2 -2
- package/dist/lib/browser/{chunk-CJO5DJVS.mjs → chunk-VUN4QKTT.mjs} +3 -1
- package/dist/lib/browser/{chunk-CJO5DJVS.mjs.map → chunk-VUN4QKTT.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +6 -5
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/{DocumentEditor-MV3S4FKT.cjs → DocumentEditor-I5GCRBKU.cjs} +7 -7
- package/dist/lib/node/{DocumentEditor-MV3S4FKT.cjs.map → DocumentEditor-I5GCRBKU.cjs.map} +2 -2
- package/dist/lib/node/{MarkdownEditor-X3U7B4FU.cjs → MarkdownEditor-UE23H75V.cjs} +7 -7
- package/dist/lib/node/{MarkdownEditor-X3U7B4FU.cjs.map → MarkdownEditor-UE23H75V.cjs.map} +2 -2
- package/dist/lib/node/{chunk-MMYLEP2V.cjs → chunk-7XIBNEI7.cjs} +6 -4
- package/dist/lib/node/{chunk-MMYLEP2V.cjs.map → chunk-7XIBNEI7.cjs.map} +3 -3
- package/dist/lib/node/{chunk-CIIALZRA.cjs → chunk-RVGN72IX.cjs} +6 -6
- package/dist/lib/node/index.cjs +13 -12
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
- package/package.json +28 -28
- package/src/MarkdownPlugin.tsx +1 -0
- package/src/components/MarkdownEditor.stories.tsx +5 -8
- package/src/components/MarkdownEditor.tsx +5 -1
- package/src/components/Toolbar.stories.tsx +14 -16
- /package/dist/lib/browser/{DocumentEditor-HOQEHRNG.mjs.map → DocumentEditor-GPWV3VN3.mjs.map} +0 -0
- /package/dist/lib/browser/{MarkdownEditor-5DHI4ORZ.mjs.map → MarkdownEditor-EKJJQEFL.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-NSVC456H.mjs.map → chunk-7AF2JLK4.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-CIIALZRA.cjs.map → chunk-RVGN72IX.cjs.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DocumentEditor_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7AF2JLK4.mjs";
|
|
4
4
|
import "./chunk-CQJL4G4X.mjs";
|
|
5
5
|
import "./chunk-354DCID5.mjs";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-VUN4QKTT.mjs";
|
|
7
7
|
import "./chunk-4GGD6YJO.mjs";
|
|
8
8
|
export {
|
|
9
9
|
DocumentEditor_default as default
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=DocumentEditor-
|
|
11
|
+
//# sourceMappingURL=DocumentEditor-GPWV3VN3.mjs.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MarkdownEditor,
|
|
3
3
|
MarkdownEditor_default
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VUN4QKTT.mjs";
|
|
5
5
|
import "./chunk-4GGD6YJO.mjs";
|
|
6
6
|
export {
|
|
7
7
|
MarkdownEditor,
|
|
8
8
|
MarkdownEditor_default as default
|
|
9
9
|
};
|
|
10
|
-
//# sourceMappingURL=MarkdownEditor-
|
|
10
|
+
//# sourceMappingURL=MarkdownEditor-EKJJQEFL.mjs.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-354DCID5.mjs";
|
|
8
8
|
import {
|
|
9
9
|
MarkdownEditor_default
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VUN4QKTT.mjs";
|
|
11
11
|
|
|
12
12
|
// packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx
|
|
13
13
|
import React, { useEffect, useMemo } from "react";
|
|
@@ -161,4 +161,4 @@ export {
|
|
|
161
161
|
serializer,
|
|
162
162
|
DocumentEditor_default
|
|
163
163
|
};
|
|
164
|
-
//# sourceMappingURL=chunk-
|
|
164
|
+
//# sourceMappingURL=chunk-7AF2JLK4.mjs.map
|
|
@@ -42,6 +42,7 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
42
42
|
const commentClickObserver = useCommentClickListener(onCommentClick);
|
|
43
43
|
useIntentResolver(MARKDOWN_PLUGIN, ({ action, data }) => {
|
|
44
44
|
switch (action) {
|
|
45
|
+
// TODO(burdon): Use fully qualified ids everywhere.
|
|
45
46
|
case LayoutAction.SCROLL_INTO_VIEW: {
|
|
46
47
|
if (editorView && data?.id === id && data?.cursor) {
|
|
47
48
|
const range = Cursor.getRangeFromCursor(editorView.state, data.cursor);
|
|
@@ -99,6 +100,7 @@ var MarkdownEditor = ({ id, role = "article", initialValue, extensions, extensio
|
|
|
99
100
|
}),
|
|
100
101
|
createThemeExtensions({
|
|
101
102
|
themeMode,
|
|
103
|
+
syntaxHighlighting: true,
|
|
102
104
|
slots: {
|
|
103
105
|
content: {
|
|
104
106
|
className: editorContent
|
|
@@ -203,4 +205,4 @@ export {
|
|
|
203
205
|
MarkdownEditor,
|
|
204
206
|
MarkdownEditor_default
|
|
205
207
|
};
|
|
206
|
-
//# sourceMappingURL=chunk-
|
|
208
|
+
//# sourceMappingURL=chunk-VUN4QKTT.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/MarkdownEditor.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { openSearchPanel } from '@codemirror/search';\nimport { EditorView } from '@codemirror/view';\nimport React, { useMemo, useEffect, useCallback } from 'react';\n\nimport {\n type FileInfo,\n LayoutAction,\n type LayoutCoordinate,\n useResolvePlugin,\n useIntentResolver,\n parseLayoutPlugin,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport { parseAttentionPlugin } from '@dxos/plugin-attention';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n type Action,\n type DNDOptions,\n type EditorViewMode,\n type EditorInputMode,\n type UseTextEditorProps,\n Toolbar,\n createBasicExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n dropFile,\n processAction,\n useActionHandler,\n useCommentState,\n useCommentClickListener,\n useFormattingState,\n useTextEditor,\n editorContent,\n editorGutter,\n Cursor,\n setSelection,\n} from '@dxos/react-ui-editor';\nimport { sectionToolbarLayout } from '@dxos/react-ui-stack';\nimport { textBlockWidth, focusRing, mx } from '@dxos/react-ui-theme';\nimport { nonNullable } from '@dxos/util';\n\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport type { MarkdownPluginState } from '../types';\n\nconst attentionFragment = mx(\n 'group-focus-within/editor:attention-surface group-[[aria-current]]/editor:attention-surface',\n 'group-focus-within/editor:border-separator',\n);\n\nconst DEFAULT_VIEW_MODE: EditorViewMode = 'preview';\n\nexport type MarkdownEditorProps = {\n id: string;\n coordinate?: LayoutCoordinate;\n inputMode?: EditorInputMode;\n role?: string;\n scrollPastEnd?: boolean;\n toolbar?: boolean;\n viewMode?: EditorViewMode;\n onViewModeChange?: (id: string, mode: EditorViewMode) => void;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n} & Pick<UseTextEditorProps, 'initialValue' | 'scrollTo' | 'selection' | 'extensions'> &\n Partial<Pick<MarkdownPluginState, 'extensionProviders'>>;\n\nexport const MarkdownEditor = ({\n id,\n role = 'article',\n initialValue,\n extensions,\n extensionProviders,\n scrollPastEnd,\n scrollTo,\n selection,\n toolbar,\n viewMode,\n onFileUpload,\n onViewModeChange,\n}: MarkdownEditorProps) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n const { themeMode } = useThemeContext();\n const dispatch = useIntentDispatcher();\n const attentionPlugin = useResolvePlugin(parseAttentionPlugin);\n const layoutPlugin = useResolvePlugin(parseLayoutPlugin);\n const attended = Array.from(attentionPlugin?.provides.attention?.attended ?? []);\n const isDirectlyAttended = attended.length === 1 && attended[0] === id;\n const [formattingState, formattingObserver] = useFormattingState();\n\n // Extensions from other plugins.\n const providerExtensions = useMemo(() => extensionProviders?.map((provider) => provider({})), [extensionProviders]);\n\n // TODO(Zan): Move these into thread plugin as well?\n const [commentsState, commentObserver] = useCommentState();\n const onCommentClick = useCallback(() => {\n void dispatch({ action: LayoutAction.SET_LAYOUT, data: { element: 'complementary', state: true } });\n }, [dispatch]);\n const commentClickObserver = useCommentClickListener(onCommentClick);\n\n // Focus the space that references the comment.\n useIntentResolver(MARKDOWN_PLUGIN, ({ action, data }) => {\n switch (action) {\n // TODO(burdon): Use fully qualified ids everywhere.\n case LayoutAction.SCROLL_INTO_VIEW: {\n if (editorView && data?.id === id && 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: id }));\n }\n\n editorView.dispatch({\n effects,\n selection: selection ? { anchor: range.from } : undefined,\n });\n }\n }\n break;\n }\n }\n });\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({
|
|
5
|
-
"mappings": ";;;;;AAIA,SAASA,uBAAuB;AAChC,SAASC,kBAAkB;AAC3B,OAAOC,SAASC,SAASC,WAAWC,mBAAmB;AAEvD,SAEEC,cAEAC,kBACAC,mBACAC,mBACAC,2BACK;AACP,SAASC,4BAA4B;AACrC,SAASC,iBAAiBC,sBAAsB;AAChD,SAMEC,SACAC,uBACAC,0BACAC,uBACAC,UACAC,eACAC,kBACAC,iBACAC,yBACAC,oBACAC,eACAC,eACAC,cACAC,QACAC,oBACK;AACP,SAASC,4BAA4B;AACrC,SAASC,gBAAgBC,WAAWC,UAAU;AAC9C,SAASC,mBAAmB;AAK5B,IAAMC,oBAAoBC,GACxB,+FACA,4CAAA;AAGF,IAAMC,oBAAoC;AAenC,IAAMC,iBAAiB,CAAC,EAC7BC,IACAC,OAAO,WACPC,cACAC,YACAC,oBACAC,eACAC,UACAC,WACAC,SACAC,UACAC,cACAC,iBAAgB,MACI;AACpB,QAAM,EAAEC,EAAC,IAAKC,eAAeC,eAAAA;AAC7B,QAAM,EAAEC,UAAS,IAAKC,gBAAAA;AACtB,QAAMC,WAAWC,oBAAAA;AACjB,QAAMC,kBAAkBC,iBAAiBC,oBAAAA;AACzC,QAAMC,eAAeF,iBAAiBG,iBAAAA;AACtC,QAAMC,WAAWC,MAAMC,KAAKP,iBAAiBQ,SAASC,WAAWJ,YAAY,CAAA,CAAE;AAC/E,QAAMK,qBAAqBL,SAASM,WAAW,KAAKN,SAAS,CAAA,MAAOxB;AACpE,QAAM,CAAC+B,iBAAiBC,kBAAAA,IAAsBC,mBAAAA;AAG9C,QAAMC,qBAAqBC,QAAQ,MAAM/B,oBAAoBgC,IAAI,CAACC,aAAaA,SAAS,CAAC,CAAA,CAAA,GAAK;IAACjC;GAAmB;AAGlH,QAAM,CAACkC,eAAeC,eAAAA,IAAmBC,gBAAAA;AACzC,QAAMC,iBAAiBC,YAAY,MAAA;AACjC,SAAKzB,SAAS;MAAE0B,QAAQC,aAAaC;MAAYC,MAAM;QAAEC,SAAS;QAAiBC,OAAO;MAAK;IAAE,CAAA;EACnG,GAAG;IAAC/B;GAAS;AACb,QAAMgC,uBAAuBC,wBAAwBT,cAAAA;AAGrDU,oBAAkBrC,iBAAiB,CAAC,EAAE6B,QAAQG,KAAI,MAAE;AAClD,YAAQH,QAAAA
|
|
6
|
-
"names": ["openSearchPanel", "EditorView", "React", "useMemo", "useEffect", "useCallback", "LayoutAction", "useResolvePlugin", "useIntentResolver", "parseLayoutPlugin", "useIntentDispatcher", "parseAttentionPlugin", "useThemeContext", "useTranslation", "Toolbar", "createBasicExtensions", "createMarkdownExtensions", "createThemeExtensions", "dropFile", "processAction", "useActionHandler", "useCommentState", "useCommentClickListener", "useFormattingState", "useTextEditor", "editorContent", "editorGutter", "Cursor", "setSelection", "sectionToolbarLayout", "textBlockWidth", "focusRing", "mx", "nonNullable", "attentionFragment", "mx", "DEFAULT_VIEW_MODE", "MarkdownEditor", "id", "role", "initialValue", "extensions", "extensionProviders", "scrollPastEnd", "scrollTo", "selection", "toolbar", "viewMode", "onFileUpload", "onViewModeChange", "t", "useTranslation", "MARKDOWN_PLUGIN", "themeMode", "useThemeContext", "dispatch", "useIntentDispatcher", "attentionPlugin", "useResolvePlugin", "parseAttentionPlugin", "layoutPlugin", "parseLayoutPlugin", "attended", "Array", "from", "provides", "attention", "isDirectlyAttended", "length", "formattingState", "formattingObserver", "useFormattingState", "providerExtensions", "useMemo", "map", "provider", "commentsState", "commentObserver", "useCommentState", "onCommentClick", "useCallback", "action", "LayoutAction", "SET_LAYOUT", "data", "element", "state", "commentClickObserver", "useCommentClickListener", "useIntentResolver", "SCROLL_INTO_VIEW", "editorView", "cursor", "range", "Cursor", "getRangeFromCursor", "main", "anchor", "undefined", "effects", "EditorView", "scrollIntoView", "y", "yMargin", "push", "setSelection", "of", "current", "handleDrop", "view", "files", "file", "info", "processAction", "type", "url", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "readonly", "placeholder", "createMarkdownExtensions", "createThemeExtensions", "slots", "content", "className", "editorContent", "editorGutter", "dropFile", "onDrop", "filter", "nonNullable", "autoFocus", "layout", "moveToEndOfLine", "useTest", "handleToolbarAction", "useActionHandler", "handleAction", "openSearchPanel", "div", "Toolbar", "Root", "classNames", "textBlockWidth", "sectionToolbarLayout", "onAction", "Markdown", "Custom", "onUpload", "Separator", "View", "mode", "Actions", "ref", "data-testid", "data-toolbar", "focusRing", "useEffect", "composer", "window"]
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { openSearchPanel } from '@codemirror/search';\nimport { EditorView } from '@codemirror/view';\nimport React, { useMemo, useEffect, useCallback } from 'react';\n\nimport {\n type FileInfo,\n LayoutAction,\n type LayoutCoordinate,\n useResolvePlugin,\n useIntentResolver,\n parseLayoutPlugin,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport { parseAttentionPlugin } from '@dxos/plugin-attention';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n type Action,\n type DNDOptions,\n type EditorViewMode,\n type EditorInputMode,\n type UseTextEditorProps,\n Toolbar,\n createBasicExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n dropFile,\n processAction,\n useActionHandler,\n useCommentState,\n useCommentClickListener,\n useFormattingState,\n useTextEditor,\n editorContent,\n editorGutter,\n Cursor,\n setSelection,\n} from '@dxos/react-ui-editor';\nimport { sectionToolbarLayout } from '@dxos/react-ui-stack';\nimport { textBlockWidth, focusRing, mx } from '@dxos/react-ui-theme';\nimport { nonNullable } from '@dxos/util';\n\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport type { MarkdownPluginState } from '../types';\n\nconst attentionFragment = mx(\n 'group-focus-within/editor:attention-surface group-[[aria-current]]/editor:attention-surface',\n 'group-focus-within/editor:border-separator',\n);\n\nconst DEFAULT_VIEW_MODE: EditorViewMode = 'preview';\n\nexport type MarkdownEditorProps = {\n id: string;\n coordinate?: LayoutCoordinate;\n inputMode?: EditorInputMode;\n role?: string;\n scrollPastEnd?: boolean;\n toolbar?: boolean;\n viewMode?: EditorViewMode;\n onViewModeChange?: (id: string, mode: EditorViewMode) => void;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n} & Pick<UseTextEditorProps, 'initialValue' | 'scrollTo' | 'selection' | 'extensions'> &\n Partial<Pick<MarkdownPluginState, 'extensionProviders'>>;\n\nexport const MarkdownEditor = ({\n id,\n role = 'article',\n initialValue,\n extensions,\n extensionProviders,\n scrollPastEnd,\n scrollTo,\n selection,\n toolbar,\n viewMode,\n onFileUpload,\n onViewModeChange,\n}: MarkdownEditorProps) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n const { themeMode } = useThemeContext();\n const dispatch = useIntentDispatcher();\n const attentionPlugin = useResolvePlugin(parseAttentionPlugin);\n const layoutPlugin = useResolvePlugin(parseLayoutPlugin);\n const attended = Array.from(attentionPlugin?.provides.attention?.attended ?? []);\n const isDirectlyAttended = attended.length === 1 && attended[0] === id;\n const [formattingState, formattingObserver] = useFormattingState();\n\n // Extensions from other plugins.\n const providerExtensions = useMemo(() => extensionProviders?.map((provider) => provider({})), [extensionProviders]);\n\n // TODO(Zan): Move these into thread plugin as well?\n const [commentsState, commentObserver] = useCommentState();\n const onCommentClick = useCallback(() => {\n void dispatch({ action: LayoutAction.SET_LAYOUT, data: { element: 'complementary', state: true } });\n }, [dispatch]);\n const commentClickObserver = useCommentClickListener(onCommentClick);\n\n // Focus the space that references the comment.\n useIntentResolver(MARKDOWN_PLUGIN, ({ action, data }) => {\n switch (action) {\n // TODO(burdon): Use fully qualified ids everywhere.\n case LayoutAction.SCROLL_INTO_VIEW: {\n if (editorView && data?.id === id && 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: id }));\n }\n\n editorView.dispatch({\n effects,\n selection: selection ? { anchor: range.from } : undefined,\n });\n }\n }\n break;\n }\n }\n });\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(nonNullable),\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, initialValue, formattingObserver, viewMode, themeMode, extensions, providerExtensions],\n );\n\n useTest(editorView);\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 <div\n role='none'\n // TODO(burdon): Move role logic out of here (see sheet, table, sketch, etc.)\n {...(role === 'section'\n ? { className: 'flex flex-col' }\n : {\n className: 'contents group/editor',\n ...(isDirectlyAttended && { 'aria-current': 'location' }),\n })}\n >\n {toolbar && (\n <div role='none' className={mx('flex shrink-0 justify-center overflow-x-auto', attentionFragment)}>\n <Toolbar.Root\n classNames={\n role === 'section'\n ? [\n textBlockWidth,\n 'z-[2] group-focus-within/section:visible',\n !isDirectlyAttended && 'invisible',\n sectionToolbarLayout,\n ]\n : [\n textBlockWidth,\n 'group-focus-within/editor:border-separator group-[[aria-current]]/editor:border-separator',\n ]\n }\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={\n role === 'section'\n ? mx('flex flex-col flex-1 min-bs-[12rem]', focusRing)\n : mx(\n 'flex is-full bs-full overflow-hidden',\n focusRing,\n attentionFragment,\n 'focus-visible:ring-inset',\n 'data-[toolbar=disabled]:pbs-2 data-[toolbar=disabled]:row-span-2',\n )\n }\n {...focusAttributes}\n />\n </div>\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 default MarkdownEditor;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["openSearchPanel", "EditorView", "React", "useMemo", "useEffect", "useCallback", "LayoutAction", "useResolvePlugin", "useIntentResolver", "parseLayoutPlugin", "useIntentDispatcher", "parseAttentionPlugin", "useThemeContext", "useTranslation", "Toolbar", "createBasicExtensions", "createMarkdownExtensions", "createThemeExtensions", "dropFile", "processAction", "useActionHandler", "useCommentState", "useCommentClickListener", "useFormattingState", "useTextEditor", "editorContent", "editorGutter", "Cursor", "setSelection", "sectionToolbarLayout", "textBlockWidth", "focusRing", "mx", "nonNullable", "attentionFragment", "mx", "DEFAULT_VIEW_MODE", "MarkdownEditor", "id", "role", "initialValue", "extensions", "extensionProviders", "scrollPastEnd", "scrollTo", "selection", "toolbar", "viewMode", "onFileUpload", "onViewModeChange", "t", "useTranslation", "MARKDOWN_PLUGIN", "themeMode", "useThemeContext", "dispatch", "useIntentDispatcher", "attentionPlugin", "useResolvePlugin", "parseAttentionPlugin", "layoutPlugin", "parseLayoutPlugin", "attended", "Array", "from", "provides", "attention", "isDirectlyAttended", "length", "formattingState", "formattingObserver", "useFormattingState", "providerExtensions", "useMemo", "map", "provider", "commentsState", "commentObserver", "useCommentState", "onCommentClick", "useCallback", "action", "LayoutAction", "SET_LAYOUT", "data", "element", "state", "commentClickObserver", "useCommentClickListener", "useIntentResolver", "SCROLL_INTO_VIEW", "editorView", "cursor", "range", "Cursor", "getRangeFromCursor", "main", "anchor", "undefined", "effects", "EditorView", "scrollIntoView", "y", "yMargin", "push", "setSelection", "of", "current", "handleDrop", "view", "files", "file", "info", "processAction", "type", "url", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "readonly", "placeholder", "createMarkdownExtensions", "createThemeExtensions", "syntaxHighlighting", "slots", "content", "className", "editorContent", "editorGutter", "dropFile", "onDrop", "filter", "nonNullable", "autoFocus", "layout", "moveToEndOfLine", "useTest", "handleToolbarAction", "useActionHandler", "handleAction", "openSearchPanel", "div", "Toolbar", "Root", "classNames", "textBlockWidth", "sectionToolbarLayout", "onAction", "Markdown", "Custom", "onUpload", "Separator", "View", "mode", "Actions", "ref", "data-testid", "data-toolbar", "focusRing", "useEffect", "composer", "window"]
|
|
7
7
|
}
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
markdownExtensionPlugins,
|
|
6
6
|
serializer,
|
|
7
7
|
setFallbackName
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-7AF2JLK4.mjs";
|
|
9
9
|
import {
|
|
10
10
|
DocumentType,
|
|
11
11
|
MarkdownAction,
|
|
12
12
|
TextType
|
|
13
13
|
} from "./chunk-CQJL4G4X.mjs";
|
|
14
14
|
import "./chunk-354DCID5.mjs";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-VUN4QKTT.mjs";
|
|
16
16
|
import {
|
|
17
17
|
MARKDOWN_PLUGIN,
|
|
18
18
|
meta_default
|
|
@@ -116,8 +116,8 @@ var MarkdownSettings = ({ settings }) => {
|
|
|
116
116
|
|
|
117
117
|
// packages/plugins/plugin-markdown/src/components/index.ts
|
|
118
118
|
var DocumentCard = React4.lazy(() => import("./DocumentCard-2P4EICBA.mjs"));
|
|
119
|
-
var DocumentEditor = React4.lazy(() => import("./DocumentEditor-
|
|
120
|
-
var MarkdownEditor = React4.lazy(() => import("./MarkdownEditor-
|
|
119
|
+
var DocumentEditor = React4.lazy(() => import("./DocumentEditor-GPWV3VN3.mjs"));
|
|
120
|
+
var MarkdownEditor = React4.lazy(() => import("./MarkdownEditor-EKJJQEFL.mjs"));
|
|
121
121
|
|
|
122
122
|
// packages/plugins/plugin-markdown/src/translations.ts
|
|
123
123
|
var translations_default = [
|
|
@@ -160,6 +160,7 @@ var MarkdownPlugin = () => {
|
|
|
160
160
|
const settings = new LocalStorageStore(MARKDOWN_PLUGIN, {
|
|
161
161
|
defaultViewMode: "preview",
|
|
162
162
|
toolbar: true,
|
|
163
|
+
folding: false,
|
|
163
164
|
experimental: false
|
|
164
165
|
});
|
|
165
166
|
const state = new LocalStorageStore(MARKDOWN_PLUGIN, {
|
|
@@ -399,7 +400,7 @@ var MarkdownPlugin = () => {
|
|
|
399
400
|
if (!accessor) {
|
|
400
401
|
log.warn("No accessor found for document content.", void 0, {
|
|
401
402
|
F: __dxlog_file,
|
|
402
|
-
L:
|
|
403
|
+
L: 250,
|
|
403
404
|
S: void 0,
|
|
404
405
|
C: (f, a) => f(...a)
|
|
405
406
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/MarkdownPlugin.tsx", "../../../src/components/index.ts", "../../../src/components/HeadingMenu.tsx", "../../../src/components/Layout.tsx", "../../../src/components/MarkdownSettings.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IconProps, TextAa } from '@phosphor-icons/react';\nimport React, { type Ref } from 'react';\n\nimport {\n isObject,\n parseIntentPlugin,\n resolvePlugin,\n LayoutAction,\n type LayoutCoordinate,\n NavigationAction,\n type PluginDefinition,\n} from '@dxos/app-framework';\nimport { create } from '@dxos/echo-schema';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { log } from '@dxos/log';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { type ActionGroup, createExtension, isActionGroup } from '@dxos/plugin-graph';\nimport { SpaceAction } from '@dxos/plugin-space';\nimport { CollectionType } from '@dxos/plugin-space/types';\nimport {\n createDocAccessor,\n fullyQualifiedId,\n getRangeFromCursor,\n isSpace,\n loadObjectReferences,\n} from '@dxos/react-client/echo';\nimport {\n type EditorInputMode,\n type EditorViewMode,\n EditorViewModes,\n translations as editorTranslations,\n} from '@dxos/react-ui-editor';\nimport { isTileComponentProps } from '@dxos/react-ui-mosaic';\n\nimport { type DocumentItemProps, DocumentCard, DocumentEditor, MarkdownEditor, MarkdownSettings } from './components';\nimport meta, { MARKDOWN_PLUGIN } from './meta';\nimport translations from './translations';\nimport { DocumentType, TextType } from './types';\nimport {\n type MarkdownPluginProvides,\n type MarkdownSettingsProps,\n MarkdownAction,\n type MarkdownPluginState,\n} from './types';\nimport { markdownExtensionPlugins, serializer } from './util';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n */\nconst isEditorModel = (data: any): data is { id: string; text: string } => {\n return (\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string'\n );\n};\n\nexport const MarkdownPlugin = (): PluginDefinition<MarkdownPluginProvides> => {\n const settings = new LocalStorageStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN, {\n defaultViewMode: 'preview',\n toolbar: true,\n experimental: false,\n });\n\n const state = new LocalStorageStore<MarkdownPluginState>(MARKDOWN_PLUGIN, { extensionProviders: [], viewMode: {} });\n\n const getViewMode = (id?: string) => {\n return (id && state.values.viewMode[id]) || settings.values.defaultViewMode;\n };\n\n const setViewMode = (id: string, nextViewMode: EditorViewMode) => {\n state.values.viewMode[id] = nextViewMode;\n };\n\n return {\n meta,\n ready: async (plugins) => {\n settings\n .prop({\n key: 'defaultViewMode',\n storageKey: 'default-view-mode',\n type: LocalStorageStore.enum<EditorViewMode>(),\n })\n .prop({\n key: 'editorInputMode',\n storageKey: 'editor-mode',\n type: LocalStorageStore.enum<EditorInputMode>({ allowUndefined: true }),\n })\n .prop({ key: 'toolbar', type: LocalStorageStore.bool({ allowUndefined: true }) })\n .prop({ key: 'experimental', type: LocalStorageStore.bool({ allowUndefined: true }) })\n .prop({ key: 'debug', type: LocalStorageStore.bool({ allowUndefined: true }) })\n .prop({ key: 'typewriter', type: LocalStorageStore.string({ allowUndefined: true }) })\n .prop({ key: 'numberedHeadings', type: LocalStorageStore.bool({ allowUndefined: true }) })\n .prop({ key: 'folding', type: LocalStorageStore.bool({ allowUndefined: true }) });\n\n state.prop({\n key: 'viewMode',\n storageKey: 'view-mode',\n type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>(),\n });\n\n markdownExtensionPlugins(plugins).forEach((plugin) => {\n const { extensions } = plugin.provides.markdown;\n state.values.extensionProviders.push(extensions);\n });\n },\n provides: {\n settings: settings.values,\n metadata: {\n records: {\n [DocumentType.typename]: {\n label: (object: any) => (object instanceof DocumentType ? object.name ?? object.fallbackName : undefined),\n placeholder: ['document title placeholder', { ns: MARKDOWN_PLUGIN }],\n icon: (props: IconProps) => <TextAa {...props} />,\n iconSymbol: 'ph--text-aa--regular',\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (doc: DocumentType) => loadObjectReferences(doc, (doc) => [doc.content, ...doc.threads]),\n serializer,\n },\n },\n },\n translations: [...translations, ...editorTranslations],\n echo: {\n schema: [DocumentType, TextType],\n },\n graph: {\n builder: (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!client || !dispatch) {\n return [];\n }\n\n return createExtension({\n id: MarkdownAction.CREATE,\n filter: (node): node is ActionGroup => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),\n actions: ({ node }) => {\n const id = node.id.split('/').at(-1);\n const [spaceId, objectId] = id?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const object = objectId && space?.db.getObjectById(objectId);\n const target = objectId ? object : space;\n if (!target) {\n return;\n }\n\n return [\n {\n id: `${MARKDOWN_PLUGIN}/create/${node.id}`,\n data: async () => {\n await dispatch([\n { plugin: MARKDOWN_PLUGIN, action: MarkdownAction.CREATE },\n { action: SpaceAction.ADD_OBJECT, data: { target } },\n { action: NavigationAction.OPEN },\n ]);\n },\n properties: {\n label: ['create document label', { ns: MARKDOWN_PLUGIN }],\n icon: (props: IconProps) => <TextAa {...props} />,\n iconSymbol: 'ph--text-aa--regular',\n testId: 'markdownPlugin.createObject',\n },\n },\n ];\n },\n });\n },\n serializer: (plugins) => {\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!dispatch) {\n return [];\n }\n return [\n {\n inputType: DocumentType.typename,\n outputType: 'text/markdown',\n // Reconcile with metadata serializers.\n serialize: async (node) => {\n const doc = node.data;\n const content = await loadObjectReferences(doc, (doc) => doc.content);\n return {\n name:\n doc.name ||\n doc.fallbackName ||\n translations[0]['en-US'][MARKDOWN_PLUGIN]['document title placeholder'],\n data: content.content,\n type: 'text/markdown',\n };\n },\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const target =\n ancestors.findLast((ancestor) => ancestor instanceof CollectionType) ??\n space?.properties[CollectionType.typename];\n if (!space || !target) {\n return;\n }\n\n const result = await dispatch([\n {\n plugin: MARKDOWN_PLUGIN,\n action: MarkdownAction.CREATE,\n data: { name: data.name, content: data.data },\n },\n {\n action: SpaceAction.ADD_OBJECT,\n data: { target },\n },\n ]);\n\n return result?.data.object;\n },\n },\n ];\n },\n },\n stack: {\n creators: [\n {\n id: 'create-stack-section-doc',\n testId: 'markdownPlugin.createSection',\n type: ['plugin name', { ns: MARKDOWN_PLUGIN }],\n label: ['create stack section label', { ns: MARKDOWN_PLUGIN }],\n icon: (props: any) => <TextAa {...props} />,\n intent: {\n plugin: MARKDOWN_PLUGIN,\n action: MarkdownAction.CREATE,\n },\n },\n ],\n },\n thread: {\n // TODO(Zan): How to better handle the type predicate?\n predicate: (obj) => obj instanceof DocumentType,\n createSort: (doc: DocumentType) => {\n const accessor = doc.content ? createDocAccessor(doc.content, ['content']) : undefined;\n\n if (!accessor) {\n log.warn('No accessor found for document content.');\n return (_) => 0;\n }\n\n const getStartPosition = (cursor: string | undefined) => {\n const range = cursor ? getRangeFromCursor(accessor, cursor) : undefined;\n return range?.start ?? Number.MAX_SAFE_INTEGER;\n };\n\n return (anchorA: string, anchorB: string) => getStartPosition(anchorA) - getStartPosition(anchorB);\n },\n },\n surface: {\n component: ({ data, role, ...props }, forwardedRef) => {\n const doc =\n data.active instanceof DocumentType\n ? data.active\n : data.object instanceof DocumentType\n ? data.object\n : undefined;\n\n switch (role) {\n case 'section':\n case 'article': {\n if (doc && doc.content) {\n return (\n <DocumentEditor\n role={role}\n coordinate={data.coordinate as LayoutCoordinate}\n document={doc}\n extensionProviders={state.values.extensionProviders}\n settings={settings.values}\n scrollPastEnd\n viewMode={getViewMode(fullyQualifiedId(doc))}\n onViewModeChange={setViewMode}\n />\n );\n } else if (isEditorModel(data.object)) {\n return (\n <MarkdownEditor\n id={data.object.id}\n role={role}\n coordinate={data.coordinate as LayoutCoordinate}\n initialValue={data.object.text}\n extensionProviders={state.values.extensionProviders}\n inputMode={settings.values.editorInputMode}\n toolbar={settings.values.toolbar}\n scrollPastEnd\n viewMode={getViewMode(data.object.id)}\n onViewModeChange={setViewMode}\n />\n );\n }\n break;\n }\n\n case 'card': {\n if (\n isObject(data.content) &&\n typeof data.content.id === 'string' &&\n data.content.object instanceof DocumentType\n ) {\n // isTileComponentProps is a type guard for these props.\n // `props` will not pass this guard without transforming `data` into `item`.\n const cardProps = {\n ...props,\n item: {\n id: data.content.id,\n object: data.content.object,\n color: typeof data.content.color === 'string' ? data.content.color : undefined,\n } as DocumentItemProps,\n };\n\n return isTileComponentProps(cardProps) ? (\n <DocumentCard {...cardProps} settings={settings.values} ref={forwardedRef as Ref<HTMLDivElement>} />\n ) : null;\n }\n break;\n }\n\n case 'settings': {\n return data.plugin === meta.id ? <MarkdownSettings settings={settings.values} /> : null;\n }\n }\n\n return null;\n },\n },\n intent: {\n resolver: ({ action, data }) => {\n switch (action) {\n case MarkdownAction.CREATE: {\n const doc = create(DocumentType, {\n name: data?.name,\n content: create(TextType, { content: data?.content ?? '' }),\n threads: [],\n });\n\n return {\n data: doc,\n intents: [[{ action: LayoutAction.SCROLL_INTO_VIEW, data: { id: fullyQualifiedId(doc) } }]],\n };\n }\n\n case MarkdownAction.SET_VIEW_MODE: {\n const { id, viewMode } = data ?? {};\n if (typeof id === 'string' && EditorViewModes.includes(viewMode)) {\n state.values.viewMode[id] = viewMode;\n return { data: true };\n }\n\n break;\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type LazyExoticComponent } from 'react';\n\nimport { type DocumentEditor as DocumentEditorType } from './DocumentEditor';\n\nexport { type DocumentCardProps, type DocumentItemProps } from './DocumentCard';\n\nexport * from './DocumentCard';\nexport * from './DocumentEditor';\nexport * from './MarkdownEditor';\nexport * from './HeadingMenu';\nexport * from './Layout';\nexport * from './MarkdownSettings';\n\n// Lazily load components for content surfaces.\nexport const DocumentCard = React.lazy(() => import('./DocumentCard'));\nexport const DocumentEditor: LazyExoticComponent<DocumentEditorType> = React.lazy(() => import('./DocumentEditor'));\nexport const MarkdownEditor = React.lazy(() => import('./MarkdownEditor'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DotsThreeVertical } from '@phosphor-icons/react';\nimport React, { type PropsWithChildren, type FC } from 'react';\n\nimport { Surface } from '@dxos/app-framework';\nimport { Button, DropdownMenu } from '@dxos/react-ui';\nimport { fineButtonDimensions, getSize } from '@dxos/react-ui-theme';\n\nimport { type DocumentType, type MarkdownProperties } from '../types';\n\n// TODO(thure): This needs to be refactored into a graph node action.\nexport const DocumentHeadingMenu: FC<{ document: DocumentType }> = ({ document }) => {\n return <HeadingMenu properties={document} content={document.content?.content} />;\n};\n\n/**\n * Menu for the layout heading.\n */\nexport const HeadingMenu = ({\n content,\n properties,\n}: PropsWithChildren<{\n content: string | undefined;\n properties: MarkdownProperties;\n}>) => {\n return (\n <DropdownMenu.Root modal={false}>\n <DropdownMenu.Trigger asChild>\n <Button variant='ghost' classNames={fineButtonDimensions}>\n <DotsThreeVertical className={getSize(4)} />\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content sideOffset={8} classNames='z-10'>\n <DropdownMenu.Viewport>\n <Surface data={{ content, properties }} role='menuitem' />\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type PropsWithChildren } from 'react';\n\nimport { Main } from '@dxos/react-ui';\nimport { editorWithToolbarLayout } from '@dxos/react-ui-editor';\nimport { topbarBlockPaddingStart } from '@dxos/react-ui-theme';\n\nexport const MainLayout = ({ children, toolbar }: PropsWithChildren<{ toolbar?: boolean }>) => {\n return (\n <Main.Content\n bounce\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n classNames={[topbarBlockPaddingStart, editorWithToolbarLayout]}\n >\n {children}\n </Main.Content>\n );\n};\n\n// Used when the editor is embedded in another context (e.g., iframe) and has no topbar/sidebar/etc.\n// TODO(wittjosiah): What's the difference between this and Section/Card?\nexport const EmbeddedLayout = ({ children }: PropsWithChildren) => {\n return <Main.Content classNames='min-bs-[100dvh] grid p-0.5'>{children}</Main.Content>;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { SettingsValue } from '@dxos/plugin-settings';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { type EditorInputMode, EditorInputModes, type EditorViewMode, EditorViewModes } from '@dxos/react-ui-editor';\n\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownSettingsProps } from '../types';\n\nexport const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps }) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n\n // TODO(wittjosiah): Add skill test confirmation for entering vim mode.\n return (\n <>\n <SettingsValue 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 </SettingsValue>\n\n <SettingsValue 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 </SettingsValue>\n\n <SettingsValue label={t('settings toolbar label')}>\n <Input.Switch checked={settings.toolbar} onCheckedChange={(checked) => (settings.toolbar = !!checked)} />\n </SettingsValue>\n\n <SettingsValue label={t('settings numbered headings label')}>\n <Input.Switch\n checked={settings.numberedHeadings}\n onCheckedChange={(checked) => (settings.numberedHeadings = !!checked)}\n />\n </SettingsValue>\n\n <SettingsValue label={t('settings folding label')}>\n <Input.Switch checked={settings.folding} onCheckedChange={(checked) => (settings.folding = !!checked)} />\n </SettingsValue>\n\n <SettingsValue label={t('settings experimental label')}>\n <Input.Switch\n checked={settings.experimental}\n onCheckedChange={(checked) => (settings.experimental = !!checked)}\n />\n </SettingsValue>\n\n <SettingsValue\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 </SettingsValue>\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { MARKDOWN_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [MARKDOWN_PLUGIN]: {\n 'plugin name': 'Editor',\n 'create stack section label': 'Create document',\n 'document title placeholder': 'New document',\n 'choose markdown from space dialog title': 'Choose one or more documents to add',\n // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)\n 'empty choose markdown from space message': 'None available; try creating a new one instead?',\n 'chooser done label': 'Add selected',\n 'create document label': 'Create document',\n 'editor placeholder': 'New document',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'settings toolbar label': 'Show toolbar',\n 'settings numbered headings label': 'Numbered headings',\n 'settings folding label': 'Folding',\n 'settings experimental label': 'Enable experimental features',\n 'settings debug label': 'Enable debugging features',\n 'settings debug placeholder': 'Typewriter script...',\n 'toggle view mode label': 'Toggle read-only',\n 'default view mode label': 'Default view mode',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { MarkdownPlugin } from './MarkdownPlugin';\n\nexport default MarkdownPlugin;\n\nexport * from './MarkdownPlugin';\nexport * from './types';\nexport * from './util';\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["TextAa", "React", "isObject", "parseIntentPlugin", "resolvePlugin", "LayoutAction", "NavigationAction", "create", "LocalStorageStore", "log", "parseClientPlugin", "createExtension", "isActionGroup", "SpaceAction", "CollectionType", "createDocAccessor", "fullyQualifiedId", "getRangeFromCursor", "isSpace", "loadObjectReferences", "EditorViewModes", "translations", "editorTranslations", "isTileComponentProps", "React", "DotsThreeVertical", "React", "Surface", "Button", "DropdownMenu", "fineButtonDimensions", "getSize", "React", "Main", "editorWithToolbarLayout", "topbarBlockPaddingStart", "React", "SettingsValue", "Input", "Select", "useTranslation", "EditorInputModes", "EditorViewModes", "MarkdownSettings", "settings", "t", "useTranslation", "MARKDOWN_PLUGIN", "React", "SettingsValue", "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", "DocumentCard", "React", "lazy", "DocumentEditor", "MarkdownEditor", "MARKDOWN_PLUGIN", "isEditorModel", "data", "id", "text", "MarkdownPlugin", "settings", "LocalStorageStore", "MARKDOWN_PLUGIN", "defaultViewMode", "toolbar", "experimental", "state", "extensionProviders", "viewMode", "getViewMode", "values", "setViewMode", "nextViewMode", "meta", "ready", "plugins", "prop", "key", "storageKey", "type", "enum", "allowUndefined", "bool", "string", "json", "markdownExtensionPlugins", "forEach", "plugin", "extensions", "provides", "markdown", "push", "metadata", "records", "DocumentType", "typename", "label", "object", "name", "fallbackName", "undefined", "placeholder", "ns", "icon", "props", "React", "TextAa", "iconSymbol", "graphProps", "managesAutofocus", "loadReferences", "doc", "loadObjectReferences", "content", "threads", "serializer", "translations", "editorTranslations", "echo", "schema", "TextType", "graph", "builder", "client", "resolvePlugin", "parseClientPlugin", "dispatch", "parseIntentPlugin", "intent", "createExtension", "MarkdownAction", "CREATE", "filter", "node", "isActionGroup", "startsWith", "SpaceAction", "ADD_OBJECT", "actions", "split", "at", "spaceId", "objectId", "space", "spaces", "get", "find", "db", "getObjectById", "target", "action", "NavigationAction", "OPEN", "properties", "testId", "inputType", "outputType", "serialize", "deserialize", "ancestors", "isSpace", "findLast", "ancestor", "CollectionType", "result", "stack", "creators", "thread", "predicate", "obj", "createSort", "accessor", "createDocAccessor", "log", "warn", "_", "getStartPosition", "cursor", "range", "getRangeFromCursor", "start", "Number", "MAX_SAFE_INTEGER", "anchorA", "anchorB", "surface", "component", "role", "forwardedRef", "active", "DocumentEditor", "coordinate", "document", "scrollPastEnd", "fullyQualifiedId", "onViewModeChange", "MarkdownEditor", "initialValue", "inputMode", "editorInputMode", "isObject", "cardProps", "item", "color", "isTileComponentProps", "DocumentCard", "ref", "MarkdownSettings", "resolver", "create", "intents", "LayoutAction", "SCROLL_INTO_VIEW", "SET_VIEW_MODE", "EditorViewModes", "includes", "MarkdownPlugin"]
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IconProps, TextAa } from '@phosphor-icons/react';\nimport React, { type Ref } from 'react';\n\nimport {\n isObject,\n parseIntentPlugin,\n resolvePlugin,\n LayoutAction,\n type LayoutCoordinate,\n NavigationAction,\n type PluginDefinition,\n} from '@dxos/app-framework';\nimport { create } from '@dxos/echo-schema';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { log } from '@dxos/log';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { type ActionGroup, createExtension, isActionGroup } from '@dxos/plugin-graph';\nimport { SpaceAction } from '@dxos/plugin-space';\nimport { CollectionType } from '@dxos/plugin-space/types';\nimport {\n createDocAccessor,\n fullyQualifiedId,\n getRangeFromCursor,\n isSpace,\n loadObjectReferences,\n} from '@dxos/react-client/echo';\nimport {\n type EditorInputMode,\n type EditorViewMode,\n EditorViewModes,\n translations as editorTranslations,\n} from '@dxos/react-ui-editor';\nimport { isTileComponentProps } from '@dxos/react-ui-mosaic';\n\nimport { type DocumentItemProps, DocumentCard, DocumentEditor, MarkdownEditor, MarkdownSettings } from './components';\nimport meta, { MARKDOWN_PLUGIN } from './meta';\nimport translations from './translations';\nimport { DocumentType, TextType } from './types';\nimport {\n type MarkdownPluginProvides,\n type MarkdownSettingsProps,\n MarkdownAction,\n type MarkdownPluginState,\n} from './types';\nimport { markdownExtensionPlugins, serializer } from './util';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n */\nconst isEditorModel = (data: any): data is { id: string; text: string } => {\n return (\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string'\n );\n};\n\nexport const MarkdownPlugin = (): PluginDefinition<MarkdownPluginProvides> => {\n const settings = new LocalStorageStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN, {\n defaultViewMode: 'preview',\n toolbar: true,\n folding: false,\n experimental: false,\n });\n\n const state = new LocalStorageStore<MarkdownPluginState>(MARKDOWN_PLUGIN, { extensionProviders: [], viewMode: {} });\n\n const getViewMode = (id?: string) => {\n return (id && state.values.viewMode[id]) || settings.values.defaultViewMode;\n };\n\n const setViewMode = (id: string, nextViewMode: EditorViewMode) => {\n state.values.viewMode[id] = nextViewMode;\n };\n\n return {\n meta,\n ready: async (plugins) => {\n settings\n .prop({\n key: 'defaultViewMode',\n storageKey: 'default-view-mode',\n type: LocalStorageStore.enum<EditorViewMode>(),\n })\n .prop({\n key: 'editorInputMode',\n storageKey: 'editor-mode',\n type: LocalStorageStore.enum<EditorInputMode>({ allowUndefined: true }),\n })\n .prop({ key: 'toolbar', type: LocalStorageStore.bool({ allowUndefined: true }) })\n .prop({ key: 'experimental', type: LocalStorageStore.bool({ allowUndefined: true }) })\n .prop({ key: 'debug', type: LocalStorageStore.bool({ allowUndefined: true }) })\n .prop({ key: 'typewriter', type: LocalStorageStore.string({ allowUndefined: true }) })\n .prop({ key: 'numberedHeadings', type: LocalStorageStore.bool({ allowUndefined: true }) })\n .prop({ key: 'folding', type: LocalStorageStore.bool({ allowUndefined: true }) });\n\n state.prop({\n key: 'viewMode',\n storageKey: 'view-mode',\n type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>(),\n });\n\n markdownExtensionPlugins(plugins).forEach((plugin) => {\n const { extensions } = plugin.provides.markdown;\n state.values.extensionProviders.push(extensions);\n });\n },\n provides: {\n settings: settings.values,\n metadata: {\n records: {\n [DocumentType.typename]: {\n label: (object: any) => (object instanceof DocumentType ? object.name ?? object.fallbackName : undefined),\n placeholder: ['document title placeholder', { ns: MARKDOWN_PLUGIN }],\n icon: (props: IconProps) => <TextAa {...props} />,\n iconSymbol: 'ph--text-aa--regular',\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (doc: DocumentType) => loadObjectReferences(doc, (doc) => [doc.content, ...doc.threads]),\n serializer,\n },\n },\n },\n translations: [...translations, ...editorTranslations],\n echo: {\n schema: [DocumentType, TextType],\n },\n graph: {\n builder: (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!client || !dispatch) {\n return [];\n }\n\n return createExtension({\n id: MarkdownAction.CREATE,\n filter: (node): node is ActionGroup => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),\n actions: ({ node }) => {\n const id = node.id.split('/').at(-1);\n const [spaceId, objectId] = id?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const object = objectId && space?.db.getObjectById(objectId);\n const target = objectId ? object : space;\n if (!target) {\n return;\n }\n\n return [\n {\n id: `${MARKDOWN_PLUGIN}/create/${node.id}`,\n data: async () => {\n await dispatch([\n { plugin: MARKDOWN_PLUGIN, action: MarkdownAction.CREATE },\n { action: SpaceAction.ADD_OBJECT, data: { target } },\n { action: NavigationAction.OPEN },\n ]);\n },\n properties: {\n label: ['create document label', { ns: MARKDOWN_PLUGIN }],\n icon: (props: IconProps) => <TextAa {...props} />,\n iconSymbol: 'ph--text-aa--regular',\n testId: 'markdownPlugin.createObject',\n },\n },\n ];\n },\n });\n },\n serializer: (plugins) => {\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!dispatch) {\n return [];\n }\n return [\n {\n inputType: DocumentType.typename,\n outputType: 'text/markdown',\n // Reconcile with metadata serializers.\n serialize: async (node) => {\n const doc = node.data;\n const content = await loadObjectReferences(doc, (doc) => doc.content);\n return {\n name:\n doc.name ||\n doc.fallbackName ||\n translations[0]['en-US'][MARKDOWN_PLUGIN]['document title placeholder'],\n data: content.content,\n type: 'text/markdown',\n };\n },\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const target =\n ancestors.findLast((ancestor) => ancestor instanceof CollectionType) ??\n space?.properties[CollectionType.typename];\n if (!space || !target) {\n return;\n }\n\n const result = await dispatch([\n {\n plugin: MARKDOWN_PLUGIN,\n action: MarkdownAction.CREATE,\n data: { name: data.name, content: data.data },\n },\n {\n action: SpaceAction.ADD_OBJECT,\n data: { target },\n },\n ]);\n\n return result?.data.object;\n },\n },\n ];\n },\n },\n stack: {\n creators: [\n {\n id: 'create-stack-section-doc',\n testId: 'markdownPlugin.createSection',\n type: ['plugin name', { ns: MARKDOWN_PLUGIN }],\n label: ['create stack section label', { ns: MARKDOWN_PLUGIN }],\n icon: (props: any) => <TextAa {...props} />,\n intent: {\n plugin: MARKDOWN_PLUGIN,\n action: MarkdownAction.CREATE,\n },\n },\n ],\n },\n thread: {\n // TODO(Zan): How to better handle the type predicate?\n predicate: (obj) => obj instanceof DocumentType,\n createSort: (doc: DocumentType) => {\n const accessor = doc.content ? createDocAccessor(doc.content, ['content']) : undefined;\n\n if (!accessor) {\n log.warn('No accessor found for document content.');\n return (_) => 0;\n }\n\n const getStartPosition = (cursor: string | undefined) => {\n const range = cursor ? getRangeFromCursor(accessor, cursor) : undefined;\n return range?.start ?? Number.MAX_SAFE_INTEGER;\n };\n\n return (anchorA: string, anchorB: string) => getStartPosition(anchorA) - getStartPosition(anchorB);\n },\n },\n surface: {\n component: ({ data, role, ...props }, forwardedRef) => {\n const doc =\n data.active instanceof DocumentType\n ? data.active\n : data.object instanceof DocumentType\n ? data.object\n : undefined;\n\n switch (role) {\n case 'section':\n case 'article': {\n if (doc && doc.content) {\n return (\n <DocumentEditor\n role={role}\n coordinate={data.coordinate as LayoutCoordinate}\n document={doc}\n extensionProviders={state.values.extensionProviders}\n settings={settings.values}\n scrollPastEnd\n viewMode={getViewMode(fullyQualifiedId(doc))}\n onViewModeChange={setViewMode}\n />\n );\n } else if (isEditorModel(data.object)) {\n return (\n <MarkdownEditor\n id={data.object.id}\n role={role}\n coordinate={data.coordinate as LayoutCoordinate}\n initialValue={data.object.text}\n extensionProviders={state.values.extensionProviders}\n inputMode={settings.values.editorInputMode}\n toolbar={settings.values.toolbar}\n scrollPastEnd\n viewMode={getViewMode(data.object.id)}\n onViewModeChange={setViewMode}\n />\n );\n }\n break;\n }\n\n case 'card': {\n if (\n isObject(data.content) &&\n typeof data.content.id === 'string' &&\n data.content.object instanceof DocumentType\n ) {\n // isTileComponentProps is a type guard for these props.\n // `props` will not pass this guard without transforming `data` into `item`.\n const cardProps = {\n ...props,\n item: {\n id: data.content.id,\n object: data.content.object,\n color: typeof data.content.color === 'string' ? data.content.color : undefined,\n } as DocumentItemProps,\n };\n\n return isTileComponentProps(cardProps) ? (\n <DocumentCard {...cardProps} settings={settings.values} ref={forwardedRef as Ref<HTMLDivElement>} />\n ) : null;\n }\n break;\n }\n\n case 'settings': {\n return data.plugin === meta.id ? <MarkdownSettings settings={settings.values} /> : null;\n }\n }\n\n return null;\n },\n },\n intent: {\n resolver: ({ action, data }) => {\n switch (action) {\n case MarkdownAction.CREATE: {\n const doc = create(DocumentType, {\n name: data?.name,\n content: create(TextType, { content: data?.content ?? '' }),\n threads: [],\n });\n\n return {\n data: doc,\n intents: [[{ action: LayoutAction.SCROLL_INTO_VIEW, data: { id: fullyQualifiedId(doc) } }]],\n };\n }\n\n case MarkdownAction.SET_VIEW_MODE: {\n const { id, viewMode } = data ?? {};\n if (typeof id === 'string' && EditorViewModes.includes(viewMode)) {\n state.values.viewMode[id] = viewMode;\n return { data: true };\n }\n\n break;\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type LazyExoticComponent } from 'react';\n\nimport { type DocumentEditor as DocumentEditorType } from './DocumentEditor';\n\nexport { type DocumentCardProps, type DocumentItemProps } from './DocumentCard';\n\nexport * from './DocumentCard';\nexport * from './DocumentEditor';\nexport * from './MarkdownEditor';\nexport * from './HeadingMenu';\nexport * from './Layout';\nexport * from './MarkdownSettings';\n\n// Lazily load components for content surfaces.\nexport const DocumentCard = React.lazy(() => import('./DocumentCard'));\nexport const DocumentEditor: LazyExoticComponent<DocumentEditorType> = React.lazy(() => import('./DocumentEditor'));\nexport const MarkdownEditor = React.lazy(() => import('./MarkdownEditor'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DotsThreeVertical } from '@phosphor-icons/react';\nimport React, { type PropsWithChildren, type FC } from 'react';\n\nimport { Surface } from '@dxos/app-framework';\nimport { Button, DropdownMenu } from '@dxos/react-ui';\nimport { fineButtonDimensions, getSize } from '@dxos/react-ui-theme';\n\nimport { type DocumentType, type MarkdownProperties } from '../types';\n\n// TODO(thure): This needs to be refactored into a graph node action.\nexport const DocumentHeadingMenu: FC<{ document: DocumentType }> = ({ document }) => {\n return <HeadingMenu properties={document} content={document.content?.content} />;\n};\n\n/**\n * Menu for the layout heading.\n */\nexport const HeadingMenu = ({\n content,\n properties,\n}: PropsWithChildren<{\n content: string | undefined;\n properties: MarkdownProperties;\n}>) => {\n return (\n <DropdownMenu.Root modal={false}>\n <DropdownMenu.Trigger asChild>\n <Button variant='ghost' classNames={fineButtonDimensions}>\n <DotsThreeVertical className={getSize(4)} />\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content sideOffset={8} classNames='z-10'>\n <DropdownMenu.Viewport>\n <Surface data={{ content, properties }} role='menuitem' />\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type PropsWithChildren } from 'react';\n\nimport { Main } from '@dxos/react-ui';\nimport { editorWithToolbarLayout } from '@dxos/react-ui-editor';\nimport { topbarBlockPaddingStart } from '@dxos/react-ui-theme';\n\nexport const MainLayout = ({ children, toolbar }: PropsWithChildren<{ toolbar?: boolean }>) => {\n return (\n <Main.Content\n bounce\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n classNames={[topbarBlockPaddingStart, editorWithToolbarLayout]}\n >\n {children}\n </Main.Content>\n );\n};\n\n// Used when the editor is embedded in another context (e.g., iframe) and has no topbar/sidebar/etc.\n// TODO(wittjosiah): What's the difference between this and Section/Card?\nexport const EmbeddedLayout = ({ children }: PropsWithChildren) => {\n return <Main.Content classNames='min-bs-[100dvh] grid p-0.5'>{children}</Main.Content>;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { SettingsValue } from '@dxos/plugin-settings';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { type EditorInputMode, EditorInputModes, type EditorViewMode, EditorViewModes } from '@dxos/react-ui-editor';\n\nimport { MARKDOWN_PLUGIN } from '../meta';\nimport { type MarkdownSettingsProps } from '../types';\n\nexport const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps }) => {\n const { t } = useTranslation(MARKDOWN_PLUGIN);\n\n // TODO(wittjosiah): Add skill test confirmation for entering vim mode.\n return (\n <>\n <SettingsValue 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 </SettingsValue>\n\n <SettingsValue 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 </SettingsValue>\n\n <SettingsValue label={t('settings toolbar label')}>\n <Input.Switch checked={settings.toolbar} onCheckedChange={(checked) => (settings.toolbar = !!checked)} />\n </SettingsValue>\n\n <SettingsValue label={t('settings numbered headings label')}>\n <Input.Switch\n checked={settings.numberedHeadings}\n onCheckedChange={(checked) => (settings.numberedHeadings = !!checked)}\n />\n </SettingsValue>\n\n <SettingsValue label={t('settings folding label')}>\n <Input.Switch checked={settings.folding} onCheckedChange={(checked) => (settings.folding = !!checked)} />\n </SettingsValue>\n\n <SettingsValue label={t('settings experimental label')}>\n <Input.Switch\n checked={settings.experimental}\n onCheckedChange={(checked) => (settings.experimental = !!checked)}\n />\n </SettingsValue>\n\n <SettingsValue\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 </SettingsValue>\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { MARKDOWN_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [MARKDOWN_PLUGIN]: {\n 'plugin name': 'Editor',\n 'create stack section label': 'Create document',\n 'document title placeholder': 'New document',\n 'choose markdown from space dialog title': 'Choose one or more documents to add',\n // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)\n 'empty choose markdown from space message': 'None available; try creating a new one instead?',\n 'chooser done label': 'Add selected',\n 'create document label': 'Create document',\n 'editor placeholder': 'New document',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'settings toolbar label': 'Show toolbar',\n 'settings numbered headings label': 'Numbered headings',\n 'settings folding label': 'Folding',\n 'settings experimental label': 'Enable experimental features',\n 'settings debug label': 'Enable debugging features',\n 'settings debug placeholder': 'Typewriter script...',\n 'toggle view mode label': 'Toggle read-only',\n 'default view mode label': 'Default view mode',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { MarkdownPlugin } from './MarkdownPlugin';\n\nexport default MarkdownPlugin;\n\nexport * from './MarkdownPlugin';\nexport * from './types';\nexport * from './util';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAIA,SAAyBA,cAAc;AACvC,OAAOC,YAAyB;AAEhC,SACEC,UACAC,mBACAC,eACAC,cAEAC,wBAEK;AACP,SAASC,cAAc;AACvB,SAASC,yBAAyB;AAClC,SAASC,WAAW;AACpB,SAASC,yBAAyB;AAClC,SAA2BC,iBAAiBC,qBAAqB;AACjE,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB;AAC/B,SACEC,mBACAC,kBACAC,oBACAC,SACAC,4BACK;AACP,SAGEC,mBAAAA,kBACAC,gBAAgBC,0BACX;AACP,SAASC,4BAA4B;;;AChCrC,OAAOC,YAAyC;;;ACAhD,SAASC,yBAAyB;AAClC,OAAOC,WAAgD;AAEvD,SAASC,eAAe;AACxB,SAASC,QAAQC,oBAAoB;AACrC,SAASC,sBAAsBC,eAAe;;;ACL9C,OAAOC,YAAuC;AAE9C,SAASC,YAAY;AACrB,SAASC,+BAA+B;AACxC,SAASC,+BAA+B;;;ACJxC,OAAOC,YAAW;AAElB,SAASC,qBAAqB;AAC9B,SAASC,OAAOC,QAAQC,sBAAsB;AAC9C,SAA+BC,kBAAuCC,uBAAuB;AAKtF,IAAMC,mBAAmB,CAAC,EAAEC,SAAQ,MAAuC;AAChF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,eAAAA;AAG7B,SACE,gBAAAC,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACC,eAAAA;IAAcC,OAAOL,EAAE,yBAAA;KACtB,gBAAAG,OAAA,cAACG,OAAOC,MAAI;IACVC,OAAOT,SAASU;IAChBC,eAAe,CAACF,UAAAA;AACdT,eAASU,kBAAkBD;IAC7B;KAEA,gBAAAL,OAAA,cAACG,OAAOK,eAAa,IAAA,GACrB,gBAAAR,OAAA,cAACG,OAAOM,QAAM,MACZ,gBAAAT,OAAA,cAACG,OAAOO,SAAO,MACb,gBAAAV,OAAA,cAACG,OAAOQ,UAAQ,MACbC,gBAAgBC,IAAI,CAACC,SACpB,gBAAAd,OAAA,cAACG,OAAOY,QAAM;IAACC,KAAKF;IAAMT,OAAOS;KAC9BjB,EAAE,GAAGiB,IAAAA,eAAmB;IAAEG,IAAI;EAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAS/D,gBAAAjB,OAAA,cAACC,eAAAA;IAAcC,OAAOL,EAAE,yBAAA;KACtB,gBAAAG,OAAA,cAACG,OAAOC,MAAI;IACVC,OAAOT,SAASsB,mBAAmB;IACnCX,eAAe,CAACF,UAAAA;AACdT,eAASsB,kBAAkBb;IAC7B;KAEA,gBAAAL,OAAA,cAACG,OAAOK,eAAa;IAACW,aAAatB,EAAE,sCAAA;MACrC,gBAAAG,OAAA,cAACG,OAAOM,QAAM,MACZ,gBAAAT,OAAA,cAACG,OAAOO,SAAO,MACb,gBAAAV,OAAA,cAACG,OAAOQ,UAAQ,MACbS,iBAAiBP,IAAI,CAACC,SACrB,gBAAAd,OAAA,cAACG,OAAOY,QAAM;IAACC,KAAKF;IAAMT,OAAOS;KAC9BjB,EAAE,8BAA8BiB,IAAAA,QAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAS3D,gBAAAd,OAAA,cAACC,eAAAA;IAAcC,OAAOL,EAAE,wBAAA;KACtB,gBAAAG,OAAA,cAACqB,MAAMC,QAAM;IAACC,SAAS3B,SAAS4B;IAASC,iBAAiB,CAACF,YAAa3B,SAAS4B,UAAU,CAAC,CAACD;OAG/F,gBAAAvB,OAAA,cAACC,eAAAA;IAAcC,OAAOL,EAAE,kCAAA;KACtB,gBAAAG,OAAA,cAACqB,MAAMC,QAAM;IACXC,SAAS3B,SAAS8B;IAClBD,iBAAiB,CAACF,YAAa3B,SAAS8B,mBAAmB,CAAC,CAACH;OAIjE,gBAAAvB,OAAA,cAACC,eAAAA;IAAcC,OAAOL,EAAE,wBAAA;KACtB,gBAAAG,OAAA,cAACqB,MAAMC,QAAM;IAACC,SAAS3B,SAAS+B;IAASF,iBAAiB,CAACF,YAAa3B,SAAS+B,UAAU,CAAC,CAACJ;OAG/F,gBAAAvB,OAAA,cAACC,eAAAA;IAAcC,OAAOL,EAAE,6BAAA;KACtB,gBAAAG,OAAA,cAACqB,MAAMC,QAAM;IACXC,SAAS3B,SAASgC;IAClBH,iBAAiB,CAACF,YAAa3B,SAASgC,eAAe,CAAC,CAACL;OAI7D,gBAAAvB,OAAA,cAACC,eAAAA;IACCC,OAAOL,EAAE,sBAAA;IACTgC,WACEjC,SAASkC,QACP,gBAAA9B,OAAA,cAACqB,MAAMjB,MAAI,MACT,gBAAAJ,OAAA,cAACqB,MAAMU,UAAQ;MACbC,MAAM;MACN3B,OAAOT,SAASqC;MAChBC,UAAU,CAAC,EAAEC,QAAQ,EAAE9B,MAAK,EAAE,MAAQT,SAASqC,aAAa5B;MAC5Dc,aAAatB,EAAE,4BAAA;UAGjBuC;KAGN,gBAAApC,OAAA,cAACqB,MAAMC,QAAM;IAACC,SAAS3B,SAASkC;IAAOL,iBAAiB,CAACF,YAAa3B,SAASkC,QAAQ,CAAC,CAACP;;AAIjG;;;AHtFO,IAAMc,eAAeC,OAAMC,KAAK,MAAM,OAAO,6BAAA,CAAA;AAC7C,IAAMC,iBAA0DF,OAAMC,KAAK,MAAM,OAAO,+BAAA,CAAA;AACxF,IAAME,iBAAiBH,OAAMC,KAAK,MAAM,OAAO,+BAAA,CAAA;;;AIdtD,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACG,eAAAA,GAAkB;QACjB,eAAe;QACf,8BAA8B;QAC9B,8BAA8B;QAC9B,2CAA2C;;QAE3C,4CAA4C;QAC5C,sBAAsB;QACtB,yBAAyB;QACzB,sBAAsB;QACtB,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,0BAA0B;QAC1B,oCAAoC;QACpC,0BAA0B;QAC1B,+BAA+B;QAC/B,wBAAwB;QACxB,8BAA8B;QAC9B,0BAA0B;QAC1B,2BAA2B;MAC7B;IACF;EACF;;;;;ALmBF,IAAMC,gBAAgB,CAACC,SAAAA;AACrB,SACEA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;AAEzB;AAEO,IAAMC,iBAAiB,MAAA;AAC5B,QAAMC,WAAW,IAAIC,kBAAyCC,iBAAiB;IAC7EC,iBAAiB;IACjBC,SAAS;IACTC,SAAS;IACTC,cAAc;EAChB,CAAA;AAEA,QAAMC,QAAQ,IAAIN,kBAAuCC,iBAAiB;IAAEM,oBAAoB,CAAA;IAAIC,UAAU,CAAC;EAAE,CAAA;AAEjH,QAAMC,cAAc,CAACb,OAAAA;AACnB,WAAQA,MAAMU,MAAMI,OAAOF,SAASZ,EAAAA,KAAQG,SAASW,OAAOR;EAC9D;AAEA,QAAMS,cAAc,CAACf,IAAYgB,iBAAAA;AAC/BN,UAAMI,OAAOF,SAASZ,EAAAA,IAAMgB;EAC9B;AAEA,SAAO;IACLC;IACAC,OAAO,OAAOC,YAAAA;AACZhB,eACGiB,KAAK;QACJC,KAAK;QACLC,YAAY;QACZC,MAAMnB,kBAAkBoB,KAAI;MAC9B,CAAA,EACCJ,KAAK;QACJC,KAAK;QACLC,YAAY;QACZC,MAAMnB,kBAAkBoB,KAAsB;UAAEC,gBAAgB;QAAK,CAAA;MACvE,CAAA,EACCL,KAAK;QAAEC,KAAK;QAAWE,MAAMnB,kBAAkBsB,KAAK;UAAED,gBAAgB;QAAK,CAAA;MAAG,CAAA,EAC9EL,KAAK;QAAEC,KAAK;QAAgBE,MAAMnB,kBAAkBsB,KAAK;UAAED,gBAAgB;QAAK,CAAA;MAAG,CAAA,EACnFL,KAAK;QAAEC,KAAK;QAASE,MAAMnB,kBAAkBsB,KAAK;UAAED,gBAAgB;QAAK,CAAA;MAAG,CAAA,EAC5EL,KAAK;QAAEC,KAAK;QAAcE,MAAMnB,kBAAkBuB,OAAO;UAAEF,gBAAgB;QAAK,CAAA;MAAG,CAAA,EACnFL,KAAK;QAAEC,KAAK;QAAoBE,MAAMnB,kBAAkBsB,KAAK;UAAED,gBAAgB;QAAK,CAAA;MAAG,CAAA,EACvFL,KAAK;QAAEC,KAAK;QAAWE,MAAMnB,kBAAkBsB,KAAK;UAAED,gBAAgB;QAAK,CAAA;MAAG,CAAA;AAEjFf,YAAMU,KAAK;QACTC,KAAK;QACLC,YAAY;QACZC,MAAMnB,kBAAkBwB,KAAI;MAC9B,CAAA;AAEAC,+BAAyBV,OAAAA,EAASW,QAAQ,CAACC,WAAAA;AACzC,cAAM,EAAEC,WAAU,IAAKD,OAAOE,SAASC;AACvCxB,cAAMI,OAAOH,mBAAmBwB,KAAKH,UAAAA;MACvC,CAAA;IACF;IACAC,UAAU;MACR9B,UAAUA,SAASW;MACnBsB,UAAU;QACRC,SAAS;UACP,CAACC,aAAaC,QAAQ,GAAG;YACvBC,OAAO,CAACC,WAAiBA,kBAAkBH,eAAeG,OAAOC,QAAQD,OAAOE,eAAeC;YAC/FC,aAAa;cAAC;cAA8B;gBAAEC,IAAIzC;cAAgB;;YAClE0C,MAAM,CAACC,UAAqB,gBAAAC,OAAA,cAACC,QAAWF,KAAAA;YACxCG,YAAY;YACZC,YAAY;cACVC,kBAAkB;YACpB;;YAEAC,gBAAgB,CAACC,QAAsBC,qBAAqBD,KAAK,CAACA,SAAQ;cAACA,KAAIE;iBAAYF,KAAIG;aAAQ;YACvGC;UACF;QACF;MACF;MACAC,cAAc;WAAIA;WAAiBC;;MACnCC,MAAM;QACJC,QAAQ;UAACzB;UAAc0B;;MACzB;MACAC,OAAO;QACLC,SAAS,CAAC/C,YAAAA;AACR,gBAAMgD,SAASC,cAAcjD,SAASkD,iBAAAA,GAAoBpC,SAASkC;AACnE,gBAAMG,WAAWF,cAAcjD,SAASoD,iBAAAA,GAAoBtC,SAASuC,OAAOF;AAC5E,cAAI,CAACH,UAAU,CAACG,UAAU;AACxB,mBAAO,CAAA;UACT;AAEA,iBAAOG,gBAAgB;YACrBzE,IAAI0E,eAAeC;YACnBC,QAAQ,CAACC,SAA8BC,cAAcD,IAAAA,KAASA,KAAK7E,GAAG+E,WAAWC,YAAYC,UAAU;YACvGC,SAAS,CAAC,EAAEL,KAAI,MAAE;AAChB,oBAAM7E,KAAK6E,KAAK7E,GAAGmF,MAAM,GAAA,EAAKC,GAAG,EAAC;AAClC,oBAAM,CAACC,SAASC,QAAAA,IAAYtF,IAAImF,MAAM,GAAA,KAAQ,CAAA;AAC9C,oBAAMI,QAAQpB,OAAOqB,OAAOC,IAAG,EAAGC,KAAK,CAACH,WAAUA,OAAMvF,OAAOqF,OAAAA;AAC/D,oBAAM5C,SAAS6C,YAAYC,OAAOI,GAAGC,cAAcN,QAAAA;AACnD,oBAAMO,SAASP,WAAW7C,SAAS8C;AACnC,kBAAI,CAACM,QAAQ;AACX;cACF;AAEA,qBAAO;gBACL;kBACE7F,IAAI,GAAGK,eAAAA,WAA0BwE,KAAK7E,EAAE;kBACxCD,MAAM,YAAA;AACJ,0BAAMuE,SAAS;sBACb;wBAAEvC,QAAQ1B;wBAAiByF,QAAQpB,eAAeC;sBAAO;sBACzD;wBAAEmB,QAAQd,YAAYC;wBAAYlF,MAAM;0BAAE8F;wBAAO;sBAAE;sBACnD;wBAAEC,QAAQC,iBAAiBC;sBAAK;qBACjC;kBACH;kBACAC,YAAY;oBACVzD,OAAO;sBAAC;sBAAyB;wBAAEM,IAAIzC;sBAAgB;;oBACvD0C,MAAM,CAACC,UAAqB,gBAAAC,OAAA,cAACC,QAAWF,KAAAA;oBACxCG,YAAY;oBACZ+C,QAAQ;kBACV;gBACF;;YAEJ;UACF,CAAA;QACF;QACAvC,YAAY,CAACxC,YAAAA;AACX,gBAAMmD,WAAWF,cAAcjD,SAASoD,iBAAAA,GAAoBtC,SAASuC,OAAOF;AAC5E,cAAI,CAACA,UAAU;AACb,mBAAO,CAAA;UACT;AACA,iBAAO;YACL;cACE6B,WAAW7D,aAAaC;cACxB6D,YAAY;;cAEZC,WAAW,OAAOxB,SAAAA;AAChB,sBAAMtB,MAAMsB,KAAK9E;AACjB,sBAAM0D,UAAU,MAAMD,qBAAqBD,KAAK,CAACA,SAAQA,KAAIE,OAAO;AACpE,uBAAO;kBACLf,MACEa,IAAIb,QACJa,IAAIZ,gBACJiB,qBAAa,CAAA,EAAG,OAAA,EAASvD,eAAAA,EAAiB,4BAAA;kBAC5CN,MAAM0D,QAAQA;kBACdlC,MAAM;gBACR;cACF;cACA+E,aAAa,OAAOvG,MAAMwG,cAAAA;AACxB,sBAAMhB,QAAQgB,UAAUb,KAAKc,OAAAA;AAC7B,sBAAMX,SACJU,UAAUE,SAAS,CAACC,aAAaA,oBAAoBC,cAAAA,KACrDpB,OAAOU,WAAWU,eAAepE,QAAQ;AAC3C,oBAAI,CAACgD,SAAS,CAACM,QAAQ;AACrB;gBACF;AAEA,sBAAMe,SAAS,MAAMtC,SAAS;kBAC5B;oBACEvC,QAAQ1B;oBACRyF,QAAQpB,eAAeC;oBACvB5E,MAAM;sBAAE2C,MAAM3C,KAAK2C;sBAAMe,SAAS1D,KAAKA;oBAAK;kBAC9C;kBACA;oBACE+F,QAAQd,YAAYC;oBACpBlF,MAAM;sBAAE8F;oBAAO;kBACjB;iBACD;AAED,uBAAOe,QAAQ7G,KAAK0C;cACtB;YACF;;QAEJ;MACF;MACAoE,OAAO;QACLC,UAAU;UACR;YACE9G,IAAI;YACJkG,QAAQ;YACR3E,MAAM;cAAC;cAAe;gBAAEuB,IAAIzC;cAAgB;;YAC5CmC,OAAO;cAAC;cAA8B;gBAAEM,IAAIzC;cAAgB;;YAC5D0C,MAAM,CAACC,UAAe,gBAAAC,OAAA,cAACC,QAAWF,KAAAA;YAClCwB,QAAQ;cACNzC,QAAQ1B;cACRyF,QAAQpB,eAAeC;YACzB;UACF;;MAEJ;MACAoC,QAAQ;;QAENC,WAAW,CAACC,QAAQA,eAAe3E;QACnC4E,YAAY,CAAC3D,QAAAA;AACX,gBAAM4D,WAAW5D,IAAIE,UAAU2D,kBAAkB7D,IAAIE,SAAS;YAAC;WAAU,IAAIb;AAE7E,cAAI,CAACuE,UAAU;AACbE,gBAAIC,KAAK,2CAAA,QAAA;;;;;;AACT,mBAAO,CAACC,MAAM;UAChB;AAEA,gBAAMC,mBAAmB,CAACC,WAAAA;AACxB,kBAAMC,QAAQD,SAASE,mBAAmBR,UAAUM,MAAAA,IAAU7E;AAC9D,mBAAO8E,OAAOE,SAASC,OAAOC;UAChC;AAEA,iBAAO,CAACC,SAAiBC,YAAoBR,iBAAiBO,OAAAA,IAAWP,iBAAiBQ,OAAAA;QAC5F;MACF;MACAC,SAAS;QACPC,WAAW,CAAC,EAAEnI,MAAMoI,MAAM,GAAGnF,MAAAA,GAASoF,iBAAAA;AACpC,gBAAM7E,MACJxD,KAAKsI,kBAAkB/F,eACnBvC,KAAKsI,SACLtI,KAAK0C,kBAAkBH,eACrBvC,KAAK0C,SACLG;AAER,kBAAQuF,MAAAA;YACN,KAAK;YACL,KAAK,WAAW;AACd,kBAAI5E,OAAOA,IAAIE,SAAS;AACtB,uBACE,gBAAAR,OAAA,cAACqF,gBAAAA;kBACCH;kBACAI,YAAYxI,KAAKwI;kBACjBC,UAAUjF;kBACV5C,oBAAoBD,MAAMI,OAAOH;kBACjCR,UAAUA,SAASW;kBACnB2H,eAAAA;kBACA7H,UAAUC,YAAY6H,iBAAiBnF,GAAAA,CAAAA;kBACvCoF,kBAAkB5H;;cAGxB,WAAWjB,cAAcC,KAAK0C,MAAM,GAAG;AACrC,uBACE,gBAAAQ,OAAA,cAAC2F,gBAAAA;kBACC5I,IAAID,KAAK0C,OAAOzC;kBAChBmI;kBACAI,YAAYxI,KAAKwI;kBACjBM,cAAc9I,KAAK0C,OAAOxC;kBAC1BU,oBAAoBD,MAAMI,OAAOH;kBACjCmI,WAAW3I,SAASW,OAAOiI;kBAC3BxI,SAASJ,SAASW,OAAOP;kBACzBkI,eAAAA;kBACA7H,UAAUC,YAAYd,KAAK0C,OAAOzC,EAAE;kBACpC2I,kBAAkB5H;;cAGxB;AACA;YACF;YAEA,KAAK,QAAQ;AACX,kBACEiI,SAASjJ,KAAK0D,OAAO,KACrB,OAAO1D,KAAK0D,QAAQzD,OAAO,YAC3BD,KAAK0D,QAAQhB,kBAAkBH,cAC/B;AAGA,sBAAM2G,YAAY;kBAChB,GAAGjG;kBACHkG,MAAM;oBACJlJ,IAAID,KAAK0D,QAAQzD;oBACjByC,QAAQ1C,KAAK0D,QAAQhB;oBACrB0G,OAAO,OAAOpJ,KAAK0D,QAAQ0F,UAAU,WAAWpJ,KAAK0D,QAAQ0F,QAAQvG;kBACvE;gBACF;AAEA,uBAAOwG,qBAAqBH,SAAAA,IAC1B,gBAAAhG,OAAA,cAACoG,cAAAA;kBAAc,GAAGJ;kBAAW9I,UAAUA,SAASW;kBAAQwI,KAAKlB;qBAC3D;cACN;AACA;YACF;YAEA,KAAK,YAAY;AACf,qBAAOrI,KAAKgC,WAAWd,aAAKjB,KAAK,gBAAAiD,OAAA,cAACsG,kBAAAA;gBAAiBpJ,UAAUA,SAASW;mBAAa;YACrF;UACF;AAEA,iBAAO;QACT;MACF;MACA0D,QAAQ;QACNgF,UAAU,CAAC,EAAE1D,QAAQ/F,KAAI,MAAE;AACzB,kBAAQ+F,QAAAA;YACN,KAAKpB,eAAeC,QAAQ;AAC1B,oBAAMpB,MAAMkG,OAAOnH,cAAc;gBAC/BI,MAAM3C,MAAM2C;gBACZe,SAASgG,OAAOzF,UAAU;kBAAEP,SAAS1D,MAAM0D,WAAW;gBAAG,CAAA;gBACzDC,SAAS,CAAA;cACX,CAAA;AAEA,qBAAO;gBACL3D,MAAMwD;gBACNmG,SAAS;kBAAC;oBAAC;sBAAE5D,QAAQ6D,aAAaC;sBAAkB7J,MAAM;wBAAEC,IAAI0I,iBAAiBnF,GAAAA;sBAAK;oBAAE;;;cAC1F;YACF;YAEA,KAAKmB,eAAemF,eAAe;AACjC,oBAAM,EAAE7J,IAAIY,SAAQ,IAAKb,QAAQ,CAAC;AAClC,kBAAI,OAAOC,OAAO,YAAY8J,iBAAgBC,SAASnJ,QAAAA,GAAW;AAChEF,sBAAMI,OAAOF,SAASZ,EAAAA,IAAMY;AAC5B,uBAAO;kBAAEb,MAAM;gBAAK;cACtB;AAEA;YACF;UACF;QACF;MACF;IACF;EACF;AACF;;;AMzWA,IAAA,cAAeiK;",
|
|
6
|
+
"names": ["TextAa", "React", "isObject", "parseIntentPlugin", "resolvePlugin", "LayoutAction", "NavigationAction", "create", "LocalStorageStore", "log", "parseClientPlugin", "createExtension", "isActionGroup", "SpaceAction", "CollectionType", "createDocAccessor", "fullyQualifiedId", "getRangeFromCursor", "isSpace", "loadObjectReferences", "EditorViewModes", "translations", "editorTranslations", "isTileComponentProps", "React", "DotsThreeVertical", "React", "Surface", "Button", "DropdownMenu", "fineButtonDimensions", "getSize", "React", "Main", "editorWithToolbarLayout", "topbarBlockPaddingStart", "React", "SettingsValue", "Input", "Select", "useTranslation", "EditorInputModes", "EditorViewModes", "MarkdownSettings", "settings", "t", "useTranslation", "MARKDOWN_PLUGIN", "React", "SettingsValue", "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", "DocumentCard", "React", "lazy", "DocumentEditor", "MarkdownEditor", "MARKDOWN_PLUGIN", "isEditorModel", "data", "id", "text", "MarkdownPlugin", "settings", "LocalStorageStore", "MARKDOWN_PLUGIN", "defaultViewMode", "toolbar", "folding", "experimental", "state", "extensionProviders", "viewMode", "getViewMode", "values", "setViewMode", "nextViewMode", "meta", "ready", "plugins", "prop", "key", "storageKey", "type", "enum", "allowUndefined", "bool", "string", "json", "markdownExtensionPlugins", "forEach", "plugin", "extensions", "provides", "markdown", "push", "metadata", "records", "DocumentType", "typename", "label", "object", "name", "fallbackName", "undefined", "placeholder", "ns", "icon", "props", "React", "TextAa", "iconSymbol", "graphProps", "managesAutofocus", "loadReferences", "doc", "loadObjectReferences", "content", "threads", "serializer", "translations", "editorTranslations", "echo", "schema", "TextType", "graph", "builder", "client", "resolvePlugin", "parseClientPlugin", "dispatch", "parseIntentPlugin", "intent", "createExtension", "MarkdownAction", "CREATE", "filter", "node", "isActionGroup", "startsWith", "SpaceAction", "ADD_OBJECT", "actions", "split", "at", "spaceId", "objectId", "space", "spaces", "get", "find", "db", "getObjectById", "target", "action", "NavigationAction", "OPEN", "properties", "testId", "inputType", "outputType", "serialize", "deserialize", "ancestors", "isSpace", "findLast", "ancestor", "CollectionType", "result", "stack", "creators", "thread", "predicate", "obj", "createSort", "accessor", "createDocAccessor", "log", "warn", "_", "getStartPosition", "cursor", "range", "getRangeFromCursor", "start", "Number", "MAX_SAFE_INTEGER", "anchorA", "anchorB", "surface", "component", "role", "forwardedRef", "active", "DocumentEditor", "coordinate", "document", "scrollPastEnd", "fullyQualifiedId", "onViewModeChange", "MarkdownEditor", "initialValue", "inputMode", "editorInputMode", "isObject", "cardProps", "item", "color", "isTileComponentProps", "DocumentCard", "ref", "MarkdownSettings", "resolver", "create", "intents", "LayoutAction", "SCROLL_INTO_VIEW", "SET_VIEW_MODE", "EditorViewModes", "includes", "MarkdownPlugin"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-markdown/src/extensions.tsx":{"bytes":16961,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/meta.tsx":{"bytes":2114,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx":{"bytes":11958,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/extensions.tsx","kind":"import-statement","original":"../extensions"},{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx":{"bytes":29664,"imports":[{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/document.ts":{"bytes":2402,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/types.ts":{"bytes":4217,"imports":[{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytes":591,"imports":[{"path":"packages/plugins/plugin-markdown/src/types/document.ts","kind":"import-statement","original":"./document"},{"path":"packages/plugins/plugin-markdown/src/types/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/util.tsx":{"bytes":6329,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx":{"bytes":13847,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","kind":"import-statement","original":"./MarkdownEditor"},{"path":"packages/plugins/plugin-markdown/src/extensions.tsx","kind":"import-statement","original":"../extensions"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/HeadingMenu.tsx":{"bytes":5241,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/Layout.tsx":{"bytes":3294,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx":{"bytes":12506,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-settings","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/index.ts":{"bytes":2441,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx","kind":"import-statement","original":"./DocumentCard"},{"path":"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx","kind":"import-statement","original":"./DocumentEditor"},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","kind":"import-statement","original":"./MarkdownEditor"},{"path":"packages/plugins/plugin-markdown/src/components/HeadingMenu.tsx","kind":"import-statement","original":"./HeadingMenu"},{"path":"packages/plugins/plugin-markdown/src/components/Layout.tsx","kind":"import-statement","original":"./Layout"},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx","kind":"import-statement","original":"./MarkdownSettings"},{"path":"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx","kind":"dynamic-import","original":"./DocumentCard"},{"path":"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx","kind":"dynamic-import","original":"./DocumentEditor"},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","kind":"dynamic-import","original":"./MarkdownEditor"}],"format":"esm"},"packages/plugins/plugin-markdown/src/translations.ts":{"bytes":4765,"imports":[{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx":{"bytes":50533,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-markdown/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/index.ts":{"bytes":969,"imports":[{"path":"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx","kind":"import-statement","original":"./MarkdownPlugin"},{"path":"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx","kind":"import-statement","original":"./MarkdownPlugin"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-markdown/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":35908},"packages/plugins/plugin-markdown/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-RL7QY322.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-NSVC456H.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CJO5DJVS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-settings","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/DocumentCard-2P4EICBA.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/DocumentEditor-HOQEHRNG.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownEditor-5DHI4ORZ.mjs","kind":"dynamic-import"}],"exports":["DocumentType","MarkdownAction","MarkdownPlugin","TextType","default","getFallbackName","isMarkdownProperties","markdownExtensionPlugins","serializer","setFallbackName"],"entryPoint":"packages/plugins/plugin-markdown/src/index.ts","inputs":{"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx":{"bytesInOutput":13229},"packages/plugins/plugin-markdown/src/components/index.ts":{"bytesInOutput":267},"packages/plugins/plugin-markdown/src/components/HeadingMenu.tsx":{"bytesInOutput":258},"packages/plugins/plugin-markdown/src/components/Layout.tsx":{"bytesInOutput":196},"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx":{"bytesInOutput":3477},"packages/plugins/plugin-markdown/src/translations.ts":{"bytesInOutput":1463},"packages/plugins/plugin-markdown/src/index.ts":{"bytesInOutput":34}},"bytes":20112},"packages/plugins/plugin-markdown/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["MARKDOWN_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-markdown/src/meta.tsx","inputs":{},"bytes":165},"packages/plugins/plugin-markdown/dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/types/index.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["DocumentType","MarkdownAction","TextType"],"entryPoint":"packages/plugins/plugin-markdown/src/types/index.ts","inputs":{},"bytes":210},"packages/plugins/plugin-markdown/dist/lib/browser/DocumentCard-2P4EICBA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/DocumentCard-2P4EICBA.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-RL7QY322.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["DocumentCard","default"],"entryPoint":"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx","inputs":{},"bytes":254},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-RL7QY322.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6298},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-RL7QY322.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["DocumentCard","DocumentCard_default"],"inputs":{"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx":{"bytesInOutput":2854}},"bytes":3140},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownEditor-5DHI4ORZ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownEditor-5DHI4ORZ.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CJO5DJVS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["MarkdownEditor","default"],"entryPoint":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","inputs":{},"bytes":233},"packages/plugins/plugin-markdown/dist/lib/browser/DocumentEditor-HOQEHRNG.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/DocumentEditor-HOQEHRNG.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-NSVC456H.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CJO5DJVS.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["default"],"entryPoint":"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx","inputs":{},"bytes":290},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-NSVC456H.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10577},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-NSVC456H.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CJO5DJVS.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true}],"exports":["DocumentEditor_default","getFallbackName","isMarkdownProperties","markdownExtensionPlugins","serializer","setFallbackName"],"inputs":{"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx":{"bytesInOutput":2923},"packages/plugins/plugin-markdown/src/util.tsx":{"bytesInOutput":1246}},"bytes":4742},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3893},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true}],"exports":["DocumentType","MarkdownAction","TextType"],"inputs":{"packages/plugins/plugin-markdown/src/types/document.ts":{"bytesInOutput":499},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-markdown/src/types/types.ts":{"bytesInOutput":340}},"bytes":1114},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8511},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs":{"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["createBaseExtensions"],"inputs":{"packages/plugins/plugin-markdown/src/extensions.tsx":{"bytesInOutput":4032}},"bytes":4167},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CJO5DJVS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15260},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CJO5DJVS.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"},{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["MarkdownEditor","MarkdownEditor_default"],"inputs":{"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx":{"bytesInOutput":7169}},"bytes":7398},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1044},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs":{"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["MARKDOWN_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-markdown/src/meta.tsx":{"bytesInOutput":501}},"bytes":641}}}
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-markdown/src/extensions.tsx":{"bytes":16961,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/meta.tsx":{"bytes":2114,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx":{"bytes":11958,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/extensions.tsx","kind":"import-statement","original":"../extensions"},{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx":{"bytes":29854,"imports":[{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/document.ts":{"bytes":2402,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/types.ts":{"bytes":4217,"imports":[{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytes":591,"imports":[{"path":"packages/plugins/plugin-markdown/src/types/document.ts","kind":"import-statement","original":"./document"},{"path":"packages/plugins/plugin-markdown/src/types/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/util.tsx":{"bytes":6329,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx":{"bytes":13847,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","kind":"import-statement","original":"./MarkdownEditor"},{"path":"packages/plugins/plugin-markdown/src/extensions.tsx","kind":"import-statement","original":"../extensions"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/HeadingMenu.tsx":{"bytes":5241,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/Layout.tsx":{"bytes":3294,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx":{"bytes":12506,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-settings","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/components/index.ts":{"bytes":2441,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx","kind":"import-statement","original":"./DocumentCard"},{"path":"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx","kind":"import-statement","original":"./DocumentEditor"},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","kind":"import-statement","original":"./MarkdownEditor"},{"path":"packages/plugins/plugin-markdown/src/components/HeadingMenu.tsx","kind":"import-statement","original":"./HeadingMenu"},{"path":"packages/plugins/plugin-markdown/src/components/Layout.tsx","kind":"import-statement","original":"./Layout"},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx","kind":"import-statement","original":"./MarkdownSettings"},{"path":"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx","kind":"dynamic-import","original":"./DocumentCard"},{"path":"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx","kind":"dynamic-import","original":"./DocumentEditor"},{"path":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","kind":"dynamic-import","original":"./MarkdownEditor"}],"format":"esm"},"packages/plugins/plugin-markdown/src/translations.ts":{"bytes":4765,"imports":[{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx":{"bytes":50613,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-markdown/src/meta.tsx","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-markdown/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/plugins/plugin-markdown/src/index.ts":{"bytes":969,"imports":[{"path":"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx","kind":"import-statement","original":"./MarkdownPlugin"},{"path":"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx","kind":"import-statement","original":"./MarkdownPlugin"},{"path":"packages/plugins/plugin-markdown/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-markdown/src/util.tsx","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-markdown/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":35954},"packages/plugins/plugin-markdown/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-RL7QY322.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-7AF2JLK4.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VUN4QKTT.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-settings","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/DocumentCard-2P4EICBA.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/DocumentEditor-GPWV3VN3.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownEditor-EKJJQEFL.mjs","kind":"dynamic-import"}],"exports":["DocumentType","MarkdownAction","MarkdownPlugin","TextType","default","getFallbackName","isMarkdownProperties","markdownExtensionPlugins","serializer","setFallbackName"],"entryPoint":"packages/plugins/plugin-markdown/src/index.ts","inputs":{"packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx":{"bytesInOutput":13249},"packages/plugins/plugin-markdown/src/components/index.ts":{"bytesInOutput":267},"packages/plugins/plugin-markdown/src/components/HeadingMenu.tsx":{"bytesInOutput":258},"packages/plugins/plugin-markdown/src/components/Layout.tsx":{"bytesInOutput":196},"packages/plugins/plugin-markdown/src/components/MarkdownSettings.tsx":{"bytesInOutput":3477},"packages/plugins/plugin-markdown/src/translations.ts":{"bytesInOutput":1463},"packages/plugins/plugin-markdown/src/index.ts":{"bytesInOutput":34}},"bytes":20132},"packages/plugins/plugin-markdown/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["MARKDOWN_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-markdown/src/meta.tsx","inputs":{},"bytes":165},"packages/plugins/plugin-markdown/dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/types/index.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["DocumentType","MarkdownAction","TextType"],"entryPoint":"packages/plugins/plugin-markdown/src/types/index.ts","inputs":{},"bytes":210},"packages/plugins/plugin-markdown/dist/lib/browser/DocumentCard-2P4EICBA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/DocumentCard-2P4EICBA.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-RL7QY322.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["DocumentCard","default"],"entryPoint":"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx","inputs":{},"bytes":254},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-RL7QY322.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6298},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-RL7QY322.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["DocumentCard","DocumentCard_default"],"inputs":{"packages/plugins/plugin-markdown/src/components/DocumentCard.tsx":{"bytesInOutput":2854}},"bytes":3140},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownEditor-EKJJQEFL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/MarkdownEditor-EKJJQEFL.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VUN4QKTT.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["MarkdownEditor","default"],"entryPoint":"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx","inputs":{},"bytes":233},"packages/plugins/plugin-markdown/dist/lib/browser/DocumentEditor-GPWV3VN3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-markdown/dist/lib/browser/DocumentEditor-GPWV3VN3.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-7AF2JLK4.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VUN4QKTT.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"}],"exports":["default"],"entryPoint":"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx","inputs":{},"bytes":290},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-7AF2JLK4.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10577},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-7AF2JLK4.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VUN4QKTT.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true}],"exports":["DocumentEditor_default","getFallbackName","isMarkdownProperties","markdownExtensionPlugins","serializer","setFallbackName"],"inputs":{"packages/plugins/plugin-markdown/src/components/DocumentEditor.tsx":{"bytesInOutput":2923},"packages/plugins/plugin-markdown/src/util.tsx":{"bytesInOutput":1246}},"bytes":4742},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3893},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-CQJL4G4X.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true}],"exports":["DocumentType","MarkdownAction","TextType"],"inputs":{"packages/plugins/plugin-markdown/src/types/document.ts":{"bytesInOutput":499},"packages/plugins/plugin-markdown/src/types/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-markdown/src/types/types.ts":{"bytesInOutput":340}},"bytes":1114},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8511},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-354DCID5.mjs":{"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom/client","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["createBaseExtensions"],"inputs":{"packages/plugins/plugin-markdown/src/extensions.tsx":{"bytesInOutput":4032}},"bytes":4167},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VUN4QKTT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15367},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-VUN4QKTT.mjs":{"imports":[{"path":"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs","kind":"import-statement"},{"path":"@codemirror/search","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["MarkdownEditor","MarkdownEditor_default"],"inputs":{"packages/plugins/plugin-markdown/src/components/MarkdownEditor.tsx":{"bytesInOutput":7262}},"bytes":7491},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1044},"packages/plugins/plugin-markdown/dist/lib/browser/chunk-4GGD6YJO.mjs":{"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["MARKDOWN_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-markdown/src/meta.tsx":{"bytesInOutput":501}},"bytes":641}}}
|