@dxos/plugin-markdown 0.6.12-main.15a606f → 0.6.12-main.2d19bf1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/lib/browser/MarkdownContainer-52FJDCTV.mjs +467 -0
  2. package/dist/lib/browser/MarkdownContainer-52FJDCTV.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-4MPY6KRJ.mjs +50 -0
  4. package/dist/lib/browser/chunk-4MPY6KRJ.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-2SJN46PA.mjs → chunk-DRJ3FPYF.mjs} +6 -7
  6. package/dist/lib/browser/chunk-DRJ3FPYF.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-R6CSLNWW.mjs → chunk-US5O2P3R.mjs} +4 -2
  8. package/dist/lib/browser/chunk-US5O2P3R.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +56 -103
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/meta.mjs +1 -1
  13. package/dist/lib/browser/types/index.mjs +6 -4
  14. package/dist/lib/node/MarkdownContainer-5XPB5VP5.cjs +482 -0
  15. package/dist/lib/node/MarkdownContainer-5XPB5VP5.cjs.map +7 -0
  16. package/dist/lib/node/chunk-MOF6UCLA.cjs +72 -0
  17. package/dist/lib/node/chunk-MOF6UCLA.cjs.map +7 -0
  18. package/dist/lib/node/{chunk-LPD4NOTH.cjs → chunk-P7YU53RP.cjs} +8 -9
  19. package/dist/lib/node/chunk-P7YU53RP.cjs.map +7 -0
  20. package/dist/lib/node/{chunk-MCA5BBJR.cjs → chunk-UJMOZCIA.cjs} +11 -8
  21. package/dist/lib/node/chunk-UJMOZCIA.cjs.map +7 -0
  22. package/dist/lib/node/index.cjs +92 -135
  23. package/dist/lib/node/index.cjs.map +4 -4
  24. package/dist/lib/node/meta.cjs +3 -3
  25. package/dist/lib/node/meta.cjs.map +1 -1
  26. package/dist/lib/node/meta.json +1 -1
  27. package/dist/lib/node/types/index.cjs +8 -6
  28. package/dist/lib/node/types/index.cjs.map +2 -2
  29. package/dist/lib/node-esm/MarkdownContainer-ILCO3PDV.mjs +468 -0
  30. package/dist/lib/node-esm/MarkdownContainer-ILCO3PDV.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-CD634NG3.mjs +51 -0
  32. package/dist/lib/node-esm/chunk-CD634NG3.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-W525OVFX.mjs → chunk-MIDCCMIX.mjs} +4 -2
  34. package/dist/lib/node-esm/chunk-MIDCCMIX.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-2BGTVWHN.mjs → chunk-NEVN5WR6.mjs} +6 -7
  36. package/dist/lib/node-esm/chunk-NEVN5WR6.mjs.map +7 -0
  37. package/dist/lib/node-esm/index.mjs +56 -103
  38. package/dist/lib/node-esm/index.mjs.map +4 -4
  39. package/dist/lib/node-esm/meta.json +1 -1
  40. package/dist/lib/node-esm/meta.mjs +1 -1
  41. package/dist/lib/node-esm/types/index.mjs +6 -4
  42. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  43. package/dist/types/src/components/MarkdownContainer.d.ts +15 -0
  44. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -0
  45. package/dist/types/src/components/MarkdownEditor.d.ts +7 -2
  46. package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
  47. package/dist/types/src/components/MarkdownEditor.stories.d.ts +3 -3
  48. package/dist/types/src/components/MarkdownEditor.stories.d.ts.map +1 -1
  49. package/dist/types/src/components/index.d.ts +2 -11
  50. package/dist/types/src/components/index.d.ts.map +1 -1
  51. package/dist/types/src/extensions.d.ts +11 -15
  52. package/dist/types/src/extensions.d.ts.map +1 -1
  53. package/dist/types/src/meta.d.ts +4 -6
  54. package/dist/types/src/meta.d.ts.map +1 -1
  55. package/dist/types/src/types/document.d.ts +8 -1
  56. package/dist/types/src/types/document.d.ts.map +1 -1
  57. package/dist/types/src/types/types.d.ts +4 -4
  58. package/dist/types/src/types/types.d.ts.map +1 -1
  59. package/package.json +32 -31
  60. package/src/MarkdownPlugin.tsx +32 -87
  61. package/src/components/MarkdownContainer.tsx +108 -0
  62. package/src/components/MarkdownEditor.stories.tsx +11 -5
  63. package/src/components/MarkdownEditor.tsx +29 -36
  64. package/src/components/index.ts +2 -14
  65. package/src/extensions.tsx +124 -67
  66. package/src/{meta.tsx → meta.ts} +5 -5
  67. package/src/types/document.ts +12 -0
  68. package/src/types/types.ts +5 -3
  69. package/dist/lib/browser/DocumentCard-RKENHCNE.mjs +0 -11
  70. package/dist/lib/browser/DocumentCard-RKENHCNE.mjs.map +0 -7
  71. package/dist/lib/browser/DocumentEditor-FAXQRX37.mjs +0 -11
  72. package/dist/lib/browser/DocumentEditor-FAXQRX37.mjs.map +0 -7
  73. package/dist/lib/browser/MarkdownEditor-5EUT7P66.mjs +0 -10
  74. package/dist/lib/browser/MarkdownEditor-5EUT7P66.mjs.map +0 -7
  75. package/dist/lib/browser/chunk-2SJN46PA.mjs.map +0 -7
  76. package/dist/lib/browser/chunk-354DCID5.mjs +0 -117
  77. package/dist/lib/browser/chunk-354DCID5.mjs.map +0 -7
  78. package/dist/lib/browser/chunk-AFWT6Z7B.mjs +0 -86
  79. package/dist/lib/browser/chunk-AFWT6Z7B.mjs.map +0 -7
  80. package/dist/lib/browser/chunk-AVGUYNPR.mjs +0 -220
  81. package/dist/lib/browser/chunk-AVGUYNPR.mjs.map +0 -7
  82. package/dist/lib/browser/chunk-JDTH4A4I.mjs +0 -166
  83. package/dist/lib/browser/chunk-JDTH4A4I.mjs.map +0 -7
  84. package/dist/lib/browser/chunk-R6CSLNWW.mjs.map +0 -7
  85. package/dist/lib/node/DocumentCard-ECPKHJT7.cjs +0 -32
  86. package/dist/lib/node/DocumentCard-ECPKHJT7.cjs.map +0 -7
  87. package/dist/lib/node/DocumentEditor-YVZTTY5L.cjs +0 -29
  88. package/dist/lib/node/DocumentEditor-YVZTTY5L.cjs.map +0 -7
  89. package/dist/lib/node/MarkdownEditor-ZD4W4UJ6.cjs +0 -31
  90. package/dist/lib/node/MarkdownEditor-ZD4W4UJ6.cjs.map +0 -7
  91. package/dist/lib/node/chunk-2T7LIVPT.cjs +0 -246
  92. package/dist/lib/node/chunk-2T7LIVPT.cjs.map +0 -7
  93. package/dist/lib/node/chunk-5ZWOR7JF.cjs +0 -114
  94. package/dist/lib/node/chunk-5ZWOR7JF.cjs.map +0 -7
  95. package/dist/lib/node/chunk-KTYIOXL5.cjs +0 -149
  96. package/dist/lib/node/chunk-KTYIOXL5.cjs.map +0 -7
  97. package/dist/lib/node/chunk-LPD4NOTH.cjs.map +0 -7
  98. package/dist/lib/node/chunk-MCA5BBJR.cjs.map +0 -7
  99. package/dist/lib/node/chunk-OEWBZFBF.cjs +0 -191
  100. package/dist/lib/node/chunk-OEWBZFBF.cjs.map +0 -7
  101. package/dist/lib/node-esm/DocumentCard-RHVY4Z6L.mjs +0 -12
  102. package/dist/lib/node-esm/DocumentCard-RHVY4Z6L.mjs.map +0 -7
  103. package/dist/lib/node-esm/DocumentEditor-JBVVPEYE.mjs +0 -12
  104. package/dist/lib/node-esm/DocumentEditor-JBVVPEYE.mjs.map +0 -7
  105. package/dist/lib/node-esm/MarkdownEditor-OS7YG6MA.mjs +0 -11
  106. package/dist/lib/node-esm/MarkdownEditor-OS7YG6MA.mjs.map +0 -7
  107. package/dist/lib/node-esm/chunk-2BGTVWHN.mjs.map +0 -7
  108. package/dist/lib/node-esm/chunk-OE3CMI5X.mjs +0 -87
  109. package/dist/lib/node-esm/chunk-OE3CMI5X.mjs.map +0 -7
  110. package/dist/lib/node-esm/chunk-QARGBUBS.mjs +0 -221
  111. package/dist/lib/node-esm/chunk-QARGBUBS.mjs.map +0 -7
  112. package/dist/lib/node-esm/chunk-RO5FEVW6.mjs +0 -119
  113. package/dist/lib/node-esm/chunk-RO5FEVW6.mjs.map +0 -7
  114. package/dist/lib/node-esm/chunk-UG4MIBCA.mjs +0 -167
  115. package/dist/lib/node-esm/chunk-UG4MIBCA.mjs.map +0 -7
  116. package/dist/lib/node-esm/chunk-W525OVFX.mjs.map +0 -7
  117. package/dist/types/src/components/DocumentCard.d.ts +0 -16
  118. package/dist/types/src/components/DocumentCard.d.ts.map +0 -1
  119. package/dist/types/src/components/DocumentEditor.d.ts +0 -14
  120. package/dist/types/src/components/DocumentEditor.d.ts.map +0 -1
  121. package/dist/types/src/components/HeadingMenu.d.ts +0 -13
  122. package/dist/types/src/components/HeadingMenu.d.ts.map +0 -1
  123. package/dist/types/src/components/Layout.d.ts +0 -6
  124. package/dist/types/src/components/Layout.d.ts.map +0 -1
  125. package/src/components/DocumentCard.tsx +0 -107
  126. package/src/components/DocumentEditor.tsx +0 -139
  127. package/src/components/HeadingMenu.tsx +0 -46
  128. package/src/components/Layout.tsx +0 -27
@@ -1,139 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React, { useEffect, useMemo } from 'react';
6
-
7
- import { useResolvePlugin, parseFileManagerPlugin, useIntentDispatcher } from '@dxos/app-framework';
8
- import { createDocAccessor, fullyQualifiedId, getSpace } from '@dxos/react-client/echo';
9
- import { useIdentity } from '@dxos/react-client/halo';
10
- import {
11
- createDataExtensions,
12
- listener,
13
- localStorageStateStoreAdapter,
14
- state,
15
- type Extension,
16
- type EditorSelectionState,
17
- } from '@dxos/react-ui-editor';
18
-
19
- import MarkdownEditor, { type MarkdownEditorProps } from './MarkdownEditor';
20
- import { createBaseExtensions } from '../extensions';
21
- import { type DocumentType, type MarkdownPluginState, type MarkdownSettingsProps } from '../types';
22
- import { getFallbackName, setFallbackName } from '../util';
23
-
24
- type DocumentEditorProps = {
25
- document: DocumentType;
26
- settings: MarkdownSettingsProps;
27
- } & Omit<MarkdownEditorProps, 'id' | 'inputMode' | 'toolbar' | 'extensions'> &
28
- Pick<MarkdownPluginState, 'extensionProviders'>;
29
-
30
- /**
31
- * Editor for a `DocumentType`.
32
- */
33
- const DocumentEditor = ({
34
- document: doc,
35
- extensionProviders = [],
36
- viewMode,
37
- settings,
38
- ...props
39
- }: DocumentEditorProps) => {
40
- const space = getSpace(doc);
41
- const identity = useIdentity();
42
- const dispatch = useIntentDispatcher();
43
-
44
- const baseExtensions = useMemo(() => {
45
- // TODO(wittjosiah): Autocomplete is not working and this query is causing performance issues.
46
- // const query = space?.db.query(Filter.schema(DocumentType));
47
- // query?.subscribe();
48
- return createBaseExtensions({
49
- viewMode,
50
- settings,
51
- document: doc,
52
- dispatch,
53
- // query,
54
- });
55
- }, [doc, viewMode, dispatch, settings, settings.folding, settings.numberedHeadings]);
56
-
57
- const providerExtensions = useMemo(
58
- () =>
59
- extensionProviders.reduce((acc: Extension[], provider) => {
60
- const provided = typeof provider === 'function' ? provider({ document: doc }) : provider;
61
- if (provided) {
62
- acc.push(...provided);
63
- }
64
- return acc;
65
- }, []),
66
- [extensionProviders],
67
- );
68
-
69
- const extensions = useMemo(
70
- () => [
71
- // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
72
- createDataExtensions({
73
- id: doc.id,
74
- text: doc.content && createDocAccessor(doc.content, ['content']),
75
- space,
76
- identity,
77
- }),
78
- state(localStorageStateStoreAdapter),
79
- listener({
80
- onChange: (text) => {
81
- setFallbackName(doc, text);
82
- },
83
- }),
84
- providerExtensions,
85
- baseExtensions,
86
- ],
87
- [doc, doc.content, space, baseExtensions, providerExtensions, identity],
88
- );
89
-
90
- const initialValue = useMemo(() => doc.content?.content, [doc.content]);
91
-
92
- // Migrate gradually to `fallbackName`.
93
- useEffect(() => {
94
- if (!doc.fallbackName && doc.content?.content) {
95
- doc.fallbackName = getFallbackName(doc.content.content);
96
- }
97
- }, [doc, doc.content]);
98
-
99
- // Restore last selection and scroll point.
100
- const id = fullyQualifiedId(doc);
101
- const { scrollTo, selection } = useMemo<EditorSelectionState>(
102
- () => localStorageStateStoreAdapter.getState(id) ?? {},
103
- [doc],
104
- );
105
-
106
- const fileManagerPlugin = useResolvePlugin(parseFileManagerPlugin);
107
- const handleFileUpload = useMemo(() => {
108
- if (space === undefined) {
109
- return undefined;
110
- }
111
-
112
- if (fileManagerPlugin?.provides.file.upload === undefined) {
113
- return undefined;
114
- }
115
-
116
- return async (file: File) => {
117
- return fileManagerPlugin?.provides?.file?.upload?.(file, space);
118
- };
119
- }, [fileManagerPlugin, space]);
120
-
121
- return (
122
- <MarkdownEditor
123
- id={id}
124
- initialValue={initialValue}
125
- extensions={extensions}
126
- scrollTo={scrollTo}
127
- selection={selection}
128
- onFileUpload={handleFileUpload}
129
- inputMode={settings.editorInputMode}
130
- toolbar={settings.toolbar}
131
- viewMode={viewMode}
132
- {...props}
133
- />
134
- );
135
- };
136
-
137
- export default DocumentEditor;
138
-
139
- export type DocumentEditor = typeof DocumentEditor;
@@ -1,46 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { DotsThreeVertical } from '@phosphor-icons/react';
6
- import React, { type PropsWithChildren, type FC } from 'react';
7
-
8
- import { Surface } from '@dxos/app-framework';
9
- import { Button, DropdownMenu } from '@dxos/react-ui';
10
- import { fineButtonDimensions, getSize } from '@dxos/react-ui-theme';
11
-
12
- import { type DocumentType, type MarkdownProperties } from '../types';
13
-
14
- // TODO(thure): This needs to be refactored into a graph node action.
15
- export const DocumentHeadingMenu: FC<{ document: DocumentType }> = ({ document }) => {
16
- return <HeadingMenu properties={document} content={document.content?.content} />;
17
- };
18
-
19
- /**
20
- * Menu for the layout heading.
21
- */
22
- export const HeadingMenu = ({
23
- content,
24
- properties,
25
- }: PropsWithChildren<{
26
- content: string | undefined;
27
- properties: MarkdownProperties;
28
- }>) => {
29
- return (
30
- <DropdownMenu.Root modal={false}>
31
- <DropdownMenu.Trigger asChild>
32
- <Button variant='ghost' classNames={fineButtonDimensions}>
33
- <DotsThreeVertical className={getSize(4)} />
34
- </Button>
35
- </DropdownMenu.Trigger>
36
- <DropdownMenu.Portal>
37
- <DropdownMenu.Content sideOffset={8} classNames='z-10'>
38
- <DropdownMenu.Viewport>
39
- <Surface data={{ content, properties }} role='menuitem' />
40
- </DropdownMenu.Viewport>
41
- <DropdownMenu.Arrow />
42
- </DropdownMenu.Content>
43
- </DropdownMenu.Portal>
44
- </DropdownMenu.Root>
45
- );
46
- };
@@ -1,27 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React, { type PropsWithChildren } from 'react';
6
-
7
- import { Main } from '@dxos/react-ui';
8
- import { editorWithToolbarLayout } from '@dxos/react-ui-editor';
9
- import { topbarBlockPaddingStart } from '@dxos/react-ui-theme';
10
-
11
- export const MainLayout = ({ children, toolbar }: PropsWithChildren<{ toolbar?: boolean }>) => {
12
- return (
13
- <Main.Content
14
- bounce
15
- data-toolbar={toolbar ? 'enabled' : 'disabled'}
16
- classNames={[topbarBlockPaddingStart, editorWithToolbarLayout]}
17
- >
18
- {children}
19
- </Main.Content>
20
- );
21
- };
22
-
23
- // Used when the editor is embedded in another context (e.g., iframe) and has no topbar/sidebar/etc.
24
- // TODO(wittjosiah): What's the difference between this and Section/Card?
25
- export const EmbeddedLayout = ({ children }: PropsWithChildren) => {
26
- return <Main.Content classNames='min-bs-[100dvh] grid p-0.5'>{children}</Main.Content>;
27
- };