@dxos/plugin-markdown 0.6.12-main.ed7cda7 → 0.6.12-staging.e11e696

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 (112) hide show
  1. package/dist/lib/browser/MarkdownContainer-OWVU5WMN.mjs +467 -0
  2. package/dist/lib/browser/MarkdownContainer-OWVU5WMN.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-7WORDTCY.mjs +50 -0
  4. package/dist/lib/browser/chunk-7WORDTCY.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-R6CSLNWW.mjs → chunk-OUZCML5B.mjs} +3 -1
  6. package/dist/lib/browser/chunk-OUZCML5B.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +54 -101
  8. package/dist/lib/browser/index.mjs.map +4 -4
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/types/index.mjs +5 -3
  11. package/dist/lib/node/MarkdownContainer-IWMLWI6Z.cjs +482 -0
  12. package/dist/lib/node/MarkdownContainer-IWMLWI6Z.cjs.map +7 -0
  13. package/dist/lib/node/{chunk-MCA5BBJR.cjs → chunk-HVDIBL5H.cjs} +9 -6
  14. package/dist/lib/node/chunk-HVDIBL5H.cjs.map +7 -0
  15. package/dist/lib/node/chunk-L2FIDO4L.cjs +72 -0
  16. package/dist/lib/node/chunk-L2FIDO4L.cjs.map +7 -0
  17. package/dist/lib/node/index.cjs +76 -119
  18. package/dist/lib/node/index.cjs.map +4 -4
  19. package/dist/lib/node/meta.json +1 -1
  20. package/dist/lib/node/types/index.cjs +7 -5
  21. package/dist/lib/node/types/index.cjs.map +2 -2
  22. package/dist/lib/node-esm/MarkdownContainer-MLTDWWGB.mjs +468 -0
  23. package/dist/lib/node-esm/MarkdownContainer-MLTDWWGB.mjs.map +7 -0
  24. package/dist/lib/node-esm/{chunk-W525OVFX.mjs → chunk-4AGP7IJE.mjs} +3 -1
  25. package/dist/lib/node-esm/chunk-4AGP7IJE.mjs.map +7 -0
  26. package/dist/lib/node-esm/chunk-YOIARYUO.mjs +51 -0
  27. package/dist/lib/node-esm/chunk-YOIARYUO.mjs.map +7 -0
  28. package/dist/lib/node-esm/index.mjs +54 -101
  29. package/dist/lib/node-esm/index.mjs.map +4 -4
  30. package/dist/lib/node-esm/meta.json +1 -1
  31. package/dist/lib/node-esm/types/index.mjs +5 -3
  32. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  33. package/dist/types/src/components/MarkdownContainer.d.ts +15 -0
  34. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -0
  35. package/dist/types/src/components/MarkdownEditor.d.ts +7 -2
  36. package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -1
  37. package/dist/types/src/components/MarkdownEditor.stories.d.ts +3 -3
  38. package/dist/types/src/components/MarkdownEditor.stories.d.ts.map +1 -1
  39. package/dist/types/src/components/index.d.ts +2 -11
  40. package/dist/types/src/components/index.d.ts.map +1 -1
  41. package/dist/types/src/extensions.d.ts +11 -15
  42. package/dist/types/src/extensions.d.ts.map +1 -1
  43. package/dist/types/src/types/document.d.ts +8 -1
  44. package/dist/types/src/types/document.d.ts.map +1 -1
  45. package/dist/types/src/types/types.d.ts +4 -4
  46. package/dist/types/src/types/types.d.ts.map +1 -1
  47. package/package.json +32 -31
  48. package/src/MarkdownPlugin.tsx +31 -86
  49. package/src/components/MarkdownContainer.tsx +108 -0
  50. package/src/components/MarkdownEditor.stories.tsx +11 -5
  51. package/src/components/MarkdownEditor.tsx +25 -35
  52. package/src/components/index.ts +2 -14
  53. package/src/extensions.tsx +124 -67
  54. package/src/types/document.ts +12 -0
  55. package/src/types/types.ts +5 -3
  56. package/dist/lib/browser/DocumentCard-RKENHCNE.mjs +0 -11
  57. package/dist/lib/browser/DocumentCard-RKENHCNE.mjs.map +0 -7
  58. package/dist/lib/browser/DocumentEditor-FAXQRX37.mjs +0 -11
  59. package/dist/lib/browser/DocumentEditor-FAXQRX37.mjs.map +0 -7
  60. package/dist/lib/browser/MarkdownEditor-5EUT7P66.mjs +0 -10
  61. package/dist/lib/browser/MarkdownEditor-5EUT7P66.mjs.map +0 -7
  62. package/dist/lib/browser/chunk-354DCID5.mjs +0 -117
  63. package/dist/lib/browser/chunk-354DCID5.mjs.map +0 -7
  64. package/dist/lib/browser/chunk-AFWT6Z7B.mjs +0 -86
  65. package/dist/lib/browser/chunk-AFWT6Z7B.mjs.map +0 -7
  66. package/dist/lib/browser/chunk-AVGUYNPR.mjs +0 -220
  67. package/dist/lib/browser/chunk-AVGUYNPR.mjs.map +0 -7
  68. package/dist/lib/browser/chunk-JDTH4A4I.mjs +0 -166
  69. package/dist/lib/browser/chunk-JDTH4A4I.mjs.map +0 -7
  70. package/dist/lib/browser/chunk-R6CSLNWW.mjs.map +0 -7
  71. package/dist/lib/node/DocumentCard-ECPKHJT7.cjs +0 -32
  72. package/dist/lib/node/DocumentCard-ECPKHJT7.cjs.map +0 -7
  73. package/dist/lib/node/DocumentEditor-YVZTTY5L.cjs +0 -29
  74. package/dist/lib/node/DocumentEditor-YVZTTY5L.cjs.map +0 -7
  75. package/dist/lib/node/MarkdownEditor-ZD4W4UJ6.cjs +0 -31
  76. package/dist/lib/node/MarkdownEditor-ZD4W4UJ6.cjs.map +0 -7
  77. package/dist/lib/node/chunk-2T7LIVPT.cjs +0 -246
  78. package/dist/lib/node/chunk-2T7LIVPT.cjs.map +0 -7
  79. package/dist/lib/node/chunk-5ZWOR7JF.cjs +0 -114
  80. package/dist/lib/node/chunk-5ZWOR7JF.cjs.map +0 -7
  81. package/dist/lib/node/chunk-KTYIOXL5.cjs +0 -149
  82. package/dist/lib/node/chunk-KTYIOXL5.cjs.map +0 -7
  83. package/dist/lib/node/chunk-MCA5BBJR.cjs.map +0 -7
  84. package/dist/lib/node/chunk-OEWBZFBF.cjs +0 -191
  85. package/dist/lib/node/chunk-OEWBZFBF.cjs.map +0 -7
  86. package/dist/lib/node-esm/DocumentCard-RHVY4Z6L.mjs +0 -12
  87. package/dist/lib/node-esm/DocumentCard-RHVY4Z6L.mjs.map +0 -7
  88. package/dist/lib/node-esm/DocumentEditor-JBVVPEYE.mjs +0 -12
  89. package/dist/lib/node-esm/DocumentEditor-JBVVPEYE.mjs.map +0 -7
  90. package/dist/lib/node-esm/MarkdownEditor-OS7YG6MA.mjs +0 -11
  91. package/dist/lib/node-esm/MarkdownEditor-OS7YG6MA.mjs.map +0 -7
  92. package/dist/lib/node-esm/chunk-OE3CMI5X.mjs +0 -87
  93. package/dist/lib/node-esm/chunk-OE3CMI5X.mjs.map +0 -7
  94. package/dist/lib/node-esm/chunk-QARGBUBS.mjs +0 -221
  95. package/dist/lib/node-esm/chunk-QARGBUBS.mjs.map +0 -7
  96. package/dist/lib/node-esm/chunk-RO5FEVW6.mjs +0 -119
  97. package/dist/lib/node-esm/chunk-RO5FEVW6.mjs.map +0 -7
  98. package/dist/lib/node-esm/chunk-UG4MIBCA.mjs +0 -167
  99. package/dist/lib/node-esm/chunk-UG4MIBCA.mjs.map +0 -7
  100. package/dist/lib/node-esm/chunk-W525OVFX.mjs.map +0 -7
  101. package/dist/types/src/components/DocumentCard.d.ts +0 -16
  102. package/dist/types/src/components/DocumentCard.d.ts.map +0 -1
  103. package/dist/types/src/components/DocumentEditor.d.ts +0 -14
  104. package/dist/types/src/components/DocumentEditor.d.ts.map +0 -1
  105. package/dist/types/src/components/HeadingMenu.d.ts +0 -13
  106. package/dist/types/src/components/HeadingMenu.d.ts.map +0 -1
  107. package/dist/types/src/components/Layout.d.ts +0 -6
  108. package/dist/types/src/components/Layout.d.ts.map +0 -1
  109. package/src/components/DocumentCard.tsx +0 -107
  110. package/src/components/DocumentEditor.tsx +0 -139
  111. package/src/components/HeadingMenu.tsx +0 -46
  112. 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
- };