@dxos/plugin-markdown 0.8.2-main.f11618f → 0.8.2-staging.7ac8446
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{MarkdownContainer-5XV7K2NX.mjs → MarkdownContainer-T3HU27RE.mjs} +12 -16
- package/dist/lib/browser/MarkdownContainer-T3HU27RE.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-OCXP7PCK.mjs → app-graph-serializer-NOXI4IQ5.mjs} +3 -3
- package/dist/lib/browser/{artifact-definition-XTVOUMMI.mjs → artifact-definition-CE6J6NY4.mjs} +2 -2
- package/dist/lib/browser/{chunk-QV6ZIXAD.mjs → chunk-3ULJ4FIJ.mjs} +23 -10
- package/dist/lib/browser/chunk-3ULJ4FIJ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-LJ2UFBJ2.mjs → chunk-QXDKFACU.mjs} +3 -5
- package/dist/lib/browser/{chunk-LJ2UFBJ2.mjs.map → chunk-QXDKFACU.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-GVOEHF7E.mjs → chunk-YCJNW2RU.mjs} +1 -10
- package/dist/lib/browser/chunk-YCJNW2RU.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +4 -8
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/intent-resolver-42GQ6HNZ.mjs +50 -0
- package/dist/lib/browser/intent-resolver-42GQ6HNZ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-LBCMSLJ5.mjs → react-surface-RQX3CPFV.mjs} +4 -14
- package/dist/lib/browser/react-surface-RQX3CPFV.mjs.map +7 -0
- package/dist/lib/browser/{settings-EQSDBX6O.mjs → settings-GCSS3Y4Z.mjs} +4 -4
- package/dist/lib/browser/settings-GCSS3Y4Z.mjs.map +7 -0
- package/dist/lib/browser/{state-AIN4J7N5.mjs → state-O7P5JDIH.mjs} +1 -1
- package/dist/lib/browser/{state-AIN4J7N5.mjs.map → state-O7P5JDIH.mjs.map} +2 -2
- package/dist/lib/browser/{thread-MFKBUVCB.mjs → thread-3QGCFNVZ.mjs} +2 -2
- package/dist/lib/browser/types/index.mjs +1 -3
- package/dist/lib/node/{MarkdownContainer-5EQTBXV3.cjs → MarkdownContainer-6ZJIFAP6.cjs} +15 -19
- package/dist/lib/node/MarkdownContainer-6ZJIFAP6.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-KBDLASRP.cjs → app-graph-serializer-HKK3SEDN.cjs} +9 -9
- package/dist/lib/node/{artifact-definition-ADEN2KD6.cjs → artifact-definition-XGADFWCQ.cjs} +9 -9
- package/dist/lib/node/{chunk-QRE5L6ZC.cjs → chunk-7QVONRSI.cjs} +57 -13
- package/dist/lib/node/chunk-7QVONRSI.cjs.map +7 -0
- package/dist/lib/node/{chunk-JO4SBK36.cjs → chunk-H5MYVP6F.cjs} +7 -9
- package/dist/lib/node/{chunk-JO4SBK36.cjs.map → chunk-H5MYVP6F.cjs.map} +2 -2
- package/dist/lib/node/{chunk-YHL4JSA6.cjs → chunk-UEXGNGSS.cjs} +4 -14
- package/dist/lib/node/chunk-UEXGNGSS.cjs.map +7 -0
- package/dist/lib/node/index.cjs +20 -23
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/{intent-resolver-NX5QNRYF.cjs → intent-resolver-NW27BF3W.cjs} +9 -45
- package/dist/lib/node/intent-resolver-NW27BF3W.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-DJIZSVMN.cjs → react-surface-5X3SMHGI.cjs} +8 -18
- package/dist/lib/node/react-surface-5X3SMHGI.cjs.map +7 -0
- package/dist/lib/node/{settings-2JXASSLU.cjs → settings-S2ISUVIH.cjs} +7 -7
- package/dist/lib/node/settings-S2ISUVIH.cjs.map +7 -0
- package/dist/lib/node/{state-PC7IVXFP.cjs → state-L44SG3ZM.cjs} +4 -4
- package/dist/lib/node/{state-PC7IVXFP.cjs.map → state-L44SG3ZM.cjs.map} +2 -2
- package/dist/lib/node/{thread-MXEGV6HS.cjs → thread-42R57L4K.cjs} +6 -6
- package/dist/lib/node/types/index.cjs +6 -8
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/{MarkdownContainer-LONZOJJX.mjs → MarkdownContainer-URAPTO37.mjs} +12 -16
- package/dist/lib/node-esm/MarkdownContainer-URAPTO37.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-67CO7ST3.mjs → app-graph-serializer-QQ2CTHOQ.mjs} +3 -3
- package/dist/lib/node-esm/{artifact-definition-KTS5M2FW.mjs → artifact-definition-WRG5ZRN5.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-NUZHKZSZ.mjs → chunk-4AM4VU3Y.mjs} +1 -10
- package/dist/lib/node-esm/chunk-4AM4VU3Y.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-4U2F4EB7.mjs → chunk-F6UHVLH7.mjs} +23 -10
- package/dist/lib/node-esm/chunk-F6UHVLH7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-VQA6BQGT.mjs → chunk-JAVD67QP.mjs} +3 -5
- package/dist/lib/node-esm/{chunk-VQA6BQGT.mjs.map → chunk-JAVD67QP.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +4 -8
- package/dist/lib/node-esm/index.mjs.map +2 -2
- package/dist/lib/node-esm/intent-resolver-7HOMUVHR.mjs +51 -0
- package/dist/lib/node-esm/intent-resolver-7HOMUVHR.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-737EXAWT.mjs → react-surface-6IKC3G46.mjs} +4 -14
- package/dist/lib/node-esm/react-surface-6IKC3G46.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-67RVIH3N.mjs → settings-ZDIFTK4N.mjs} +4 -4
- package/dist/lib/node-esm/settings-ZDIFTK4N.mjs.map +7 -0
- package/dist/lib/node-esm/{state-PNOPM4TS.mjs → state-DWPOKLEY.mjs} +1 -1
- package/dist/lib/node-esm/{state-PNOPM4TS.mjs.map → state-DWPOKLEY.mjs.map} +2 -2
- package/dist/lib/node-esm/{thread-5U4KSBED.mjs → thread-R2KHZD6V.mjs} +2 -2
- package/dist/lib/node-esm/types/index.mjs +1 -3
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/{MarkdownEditor/MarkdownEditor.d.ts → MarkdownEditor.d.ts} +1 -1
- package/dist/types/src/components/MarkdownEditor.d.ts.map +1 -0
- package/dist/types/src/components/{MarkdownEditor/MarkdownEditor.stories.d.ts → MarkdownEditor.stories.d.ts} +3 -3
- package/dist/types/src/components/MarkdownEditor.stories.d.ts.map +1 -0
- package/dist/types/src/components/{MarkdownSettings/MarkdownSettings.d.ts → MarkdownSettings.d.ts} +1 -1
- package/dist/types/src/components/MarkdownSettings.d.ts.map +1 -0
- package/dist/types/src/components/Toolbar.stories.d.ts +2 -2
- package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +0 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +0 -6
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +17 -421
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +8 -120
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +0 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +32 -37
- package/src/MarkdownPlugin.tsx +3 -3
- package/src/capabilities/intent-resolver.ts +5 -38
- package/src/capabilities/react-surface.tsx +1 -8
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/state.ts +1 -1
- package/src/components/MarkdownContainer.tsx +0 -1
- package/src/components/{MarkdownEditor/MarkdownEditor.stories.tsx → MarkdownEditor.stories.tsx} +35 -22
- package/src/components/{MarkdownEditor/MarkdownEditor.tsx → MarkdownEditor.tsx} +4 -5
- package/src/components/{MarkdownSettings/MarkdownSettings.tsx → MarkdownSettings.tsx} +2 -2
- package/src/components/Toolbar.stories.tsx +15 -15
- package/src/components/index.ts +0 -1
- package/src/extensions.tsx +32 -37
- package/src/translations.ts +0 -2
- package/src/types/schema.ts +0 -5
- package/src/util.tsx +2 -6
- package/dist/lib/browser/MarkdownContainer-5XV7K2NX.mjs.map +0 -7
- package/dist/lib/browser/MarkdownPreview-DX5U5LCX.mjs +0 -81
- package/dist/lib/browser/MarkdownPreview-DX5U5LCX.mjs.map +0 -7
- package/dist/lib/browser/chunk-5QXYEKSX.mjs +0 -20
- package/dist/lib/browser/chunk-5QXYEKSX.mjs.map +0 -7
- package/dist/lib/browser/chunk-GVOEHF7E.mjs.map +0 -7
- package/dist/lib/browser/chunk-QV6ZIXAD.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-H37L3DBD.mjs +0 -86
- package/dist/lib/browser/intent-resolver-H37L3DBD.mjs.map +0 -7
- package/dist/lib/browser/react-surface-LBCMSLJ5.mjs.map +0 -7
- package/dist/lib/browser/settings-EQSDBX6O.mjs.map +0 -7
- package/dist/lib/node/MarkdownContainer-5EQTBXV3.cjs.map +0 -7
- package/dist/lib/node/MarkdownPreview-W7QIN2KJ.cjs +0 -104
- package/dist/lib/node/MarkdownPreview-W7QIN2KJ.cjs.map +0 -7
- package/dist/lib/node/chunk-QRE5L6ZC.cjs.map +0 -7
- package/dist/lib/node/chunk-WGMVEPB3.cjs +0 -75
- package/dist/lib/node/chunk-WGMVEPB3.cjs.map +0 -7
- package/dist/lib/node/chunk-YHL4JSA6.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-NX5QNRYF.cjs.map +0 -7
- package/dist/lib/node/react-surface-DJIZSVMN.cjs.map +0 -7
- package/dist/lib/node/settings-2JXASSLU.cjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-LONZOJJX.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownPreview-T3OW2EN4.mjs +0 -82
- package/dist/lib/node-esm/MarkdownPreview-T3OW2EN4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4U2F4EB7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NUZHKZSZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PALFXZBY.mjs +0 -22
- package/dist/lib/node-esm/chunk-PALFXZBY.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-XES4ZCA6.mjs +0 -87
- package/dist/lib/node-esm/intent-resolver-XES4ZCA6.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-737EXAWT.mjs.map +0 -7
- package/dist/lib/node-esm/settings-67RVIH3N.mjs.map +0 -7
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownEditor/index.d.ts +0 -2
- package/dist/types/src/components/MarkdownEditor/index.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -191
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
- package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownSettings/index.d.ts +0 -2
- package/dist/types/src/components/MarkdownSettings/index.d.ts.map +0 -1
- package/dist/types/src/components/Suggestions.stories.d.ts +0 -12
- package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
- package/src/components/MarkdownEditor/index.ts +0 -5
- package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -68
- package/src/components/MarkdownPreview/MarkdownPreview.tsx +0 -85
- package/src/components/MarkdownPreview/index.ts +0 -9
- package/src/components/MarkdownSettings/index.ts +0 -5
- package/src/components/Suggestions.stories.tsx +0 -184
- /package/dist/lib/browser/{app-graph-serializer-OCXP7PCK.mjs.map → app-graph-serializer-NOXI4IQ5.mjs.map} +0 -0
- /package/dist/lib/browser/{artifact-definition-XTVOUMMI.mjs.map → artifact-definition-CE6J6NY4.mjs.map} +0 -0
- /package/dist/lib/browser/{thread-MFKBUVCB.mjs.map → thread-3QGCFNVZ.mjs.map} +0 -0
- /package/dist/lib/node/{app-graph-serializer-KBDLASRP.cjs.map → app-graph-serializer-HKK3SEDN.cjs.map} +0 -0
- /package/dist/lib/node/{artifact-definition-ADEN2KD6.cjs.map → artifact-definition-XGADFWCQ.cjs.map} +0 -0
- /package/dist/lib/node/{thread-MXEGV6HS.cjs.map → thread-42R57L4K.cjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-67CO7ST3.mjs.map → app-graph-serializer-QQ2CTHOQ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{artifact-definition-KTS5M2FW.mjs.map → artifact-definition-WRG5ZRN5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{thread-5U4KSBED.mjs.map → thread-R2KHZD6V.mjs.map} +0 -0
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import '@dxos-theme';
|
|
6
|
-
|
|
7
|
-
import { type Meta } from '@storybook/react';
|
|
8
|
-
import React from 'react';
|
|
9
|
-
|
|
10
|
-
import { IntentPlugin } from '@dxos/app-framework';
|
|
11
|
-
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
12
|
-
import { create } from '@dxos/echo-schema';
|
|
13
|
-
import { DocumentType } from '@dxos/plugin-markdown/types';
|
|
14
|
-
import { faker } from '@dxos/random';
|
|
15
|
-
import { makeRef } from '@dxos/react-client/echo';
|
|
16
|
-
import { Icon, Popover } from '@dxos/react-ui';
|
|
17
|
-
import { TextType } from '@dxos/schema';
|
|
18
|
-
import { withTheme, withLayout } from '@dxos/storybook-utils';
|
|
19
|
-
|
|
20
|
-
import { MarkdownPreview } from './MarkdownPreview';
|
|
21
|
-
import translations from '../../translations';
|
|
22
|
-
|
|
23
|
-
faker.seed(1234);
|
|
24
|
-
|
|
25
|
-
const meta: Meta<typeof MarkdownPreview> = {
|
|
26
|
-
title: 'plugins/plugin-markdown/MarkdownPreview',
|
|
27
|
-
component: MarkdownPreview,
|
|
28
|
-
render: ({ subject }) => {
|
|
29
|
-
return (
|
|
30
|
-
<Popover.Root open>
|
|
31
|
-
<Popover.Content>
|
|
32
|
-
<MarkdownPreview subject={subject} role='popover' />
|
|
33
|
-
<Popover.Arrow />
|
|
34
|
-
</Popover.Content>
|
|
35
|
-
<Popover.Trigger>
|
|
36
|
-
<Icon icon='ph--text-aa--regular' size={5} />
|
|
37
|
-
</Popover.Trigger>
|
|
38
|
-
</Popover.Root>
|
|
39
|
-
);
|
|
40
|
-
},
|
|
41
|
-
decorators: [withPluginManager({ plugins: [IntentPlugin()] }), withTheme, withLayout({ tooltips: true })],
|
|
42
|
-
parameters: {
|
|
43
|
-
layout: 'centered',
|
|
44
|
-
translations,
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export default meta;
|
|
49
|
-
|
|
50
|
-
const data = (() => {
|
|
51
|
-
const document = create(DocumentType, {
|
|
52
|
-
name: faker.lorem.words(3),
|
|
53
|
-
content: makeRef(
|
|
54
|
-
create(TextType, {
|
|
55
|
-
content: faker.lorem.paragraphs(3),
|
|
56
|
-
}),
|
|
57
|
-
),
|
|
58
|
-
threads: [],
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
return { document };
|
|
62
|
-
})();
|
|
63
|
-
|
|
64
|
-
export const Default = {
|
|
65
|
-
args: {
|
|
66
|
-
subject: create(DocumentType, data.document),
|
|
67
|
-
},
|
|
68
|
-
};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { pipe } from 'effect';
|
|
6
|
-
import React, { useCallback } from 'react';
|
|
7
|
-
|
|
8
|
-
import { chain, createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
|
|
9
|
-
import { isInstanceOf } from '@dxos/echo-schema';
|
|
10
|
-
import {
|
|
11
|
-
type PreviewProps,
|
|
12
|
-
popoverCard,
|
|
13
|
-
previewTitle,
|
|
14
|
-
previewProse,
|
|
15
|
-
previewChrome,
|
|
16
|
-
defaultCard,
|
|
17
|
-
kanbanCardWithoutPoster,
|
|
18
|
-
} from '@dxos/plugin-preview';
|
|
19
|
-
import { fullyQualifiedId } from '@dxos/react-client/echo';
|
|
20
|
-
import { Button, Icon, useTranslation } from '@dxos/react-ui';
|
|
21
|
-
import { mx } from '@dxos/react-ui-theme';
|
|
22
|
-
import { TextType } from '@dxos/schema';
|
|
23
|
-
|
|
24
|
-
import { MARKDOWN_PLUGIN } from '../../meta';
|
|
25
|
-
import { DocumentType } from '../../types';
|
|
26
|
-
import { getAbstract, getFallbackName } from '../../util';
|
|
27
|
-
|
|
28
|
-
// TODO(burdon): Factor out.
|
|
29
|
-
const getTitle = (subject: DocumentType | TextType, fallback: string) => {
|
|
30
|
-
if (isInstanceOf(DocumentType, subject)) {
|
|
31
|
-
return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);
|
|
32
|
-
} else if (isInstanceOf(TextType, subject)) {
|
|
33
|
-
return getFallbackName(subject.content);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
// TODO(burdon): Factor out.
|
|
38
|
-
const getSnippet = (subject: DocumentType | TextType, fallback: string) => {
|
|
39
|
-
if (isInstanceOf(DocumentType, subject)) {
|
|
40
|
-
return getAbstract(subject.content?.target?.content ?? fallback);
|
|
41
|
-
} else if (isInstanceOf(TextType, subject)) {
|
|
42
|
-
return getAbstract(subject.content);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export const MarkdownPreview = ({ classNames, subject, role }: PreviewProps<DocumentType | TextType>) => {
|
|
47
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
48
|
-
const { t } = useTranslation(MARKDOWN_PLUGIN);
|
|
49
|
-
const snippet = getSnippet(subject, t('fallback abstract'));
|
|
50
|
-
|
|
51
|
-
// TODO(wittjosiah): Factor out so this component isn't dependent on the app framework.
|
|
52
|
-
const handleNavigate = useCallback(
|
|
53
|
-
() =>
|
|
54
|
-
dispatch(
|
|
55
|
-
pipe(
|
|
56
|
-
createIntent(LayoutAction.UpdatePopover, {
|
|
57
|
-
part: 'popover',
|
|
58
|
-
subject: null,
|
|
59
|
-
options: { state: false, anchorId: '' },
|
|
60
|
-
}),
|
|
61
|
-
chain(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(subject)] }),
|
|
62
|
-
),
|
|
63
|
-
),
|
|
64
|
-
[dispatch, subject],
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
return (
|
|
68
|
-
<div
|
|
69
|
-
role='none'
|
|
70
|
-
className={mx(
|
|
71
|
-
role === 'popover' ? popoverCard : role === 'card--kanban' ? kanbanCardWithoutPoster : defaultCard,
|
|
72
|
-
classNames,
|
|
73
|
-
)}
|
|
74
|
-
>
|
|
75
|
-
<h2 className={mx(previewTitle, previewProse)}>{getTitle(subject, t('fallback title'))}</h2>
|
|
76
|
-
{snippet && <p className={mx(previewProse, 'line-clamp-3 break-words col-span-2')}>{snippet}</p>}
|
|
77
|
-
<div role='none' className={previewChrome}>
|
|
78
|
-
<Button onClick={handleNavigate}>
|
|
79
|
-
<span className='grow'>{t('navigate to document label')}</span>
|
|
80
|
-
<Icon icon='ph--arrow-right--regular' />
|
|
81
|
-
</Button>
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
);
|
|
85
|
-
};
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import '@dxos-theme';
|
|
6
|
-
|
|
7
|
-
import { type Meta } from '@storybook/react';
|
|
8
|
-
import React, { type FC, useEffect, useMemo, useState } from 'react';
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
Capabilities,
|
|
12
|
-
CollaborationActions,
|
|
13
|
-
IntentPlugin,
|
|
14
|
-
SettingsPlugin,
|
|
15
|
-
contributes,
|
|
16
|
-
createIntent,
|
|
17
|
-
useCapability,
|
|
18
|
-
useIntentDispatcher,
|
|
19
|
-
} from '@dxos/app-framework';
|
|
20
|
-
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
21
|
-
import { Message } from '@dxos/artifact';
|
|
22
|
-
import { S, AST, create, type Expando, EchoObject } from '@dxos/echo-schema';
|
|
23
|
-
import { invariant } from '@dxos/invariant';
|
|
24
|
-
import { DXN } from '@dxos/keys';
|
|
25
|
-
import { live, makeRef, refFromDXN } from '@dxos/live-object';
|
|
26
|
-
import { ClientPlugin } from '@dxos/plugin-client';
|
|
27
|
-
import { PreviewPlugin } from '@dxos/plugin-preview';
|
|
28
|
-
import { SpacePlugin } from '@dxos/plugin-space';
|
|
29
|
-
import { StorybookLayoutPlugin } from '@dxos/plugin-storybook-layout';
|
|
30
|
-
import { ThemePlugin } from '@dxos/plugin-theme';
|
|
31
|
-
import { faker } from '@dxos/random';
|
|
32
|
-
import { createQueueDxn, useQueue, useSpace } from '@dxos/react-client/echo';
|
|
33
|
-
import { IconButton, Toolbar } from '@dxos/react-ui';
|
|
34
|
-
import { command, useTextEditor } from '@dxos/react-ui-editor';
|
|
35
|
-
import { StackItem } from '@dxos/react-ui-stack';
|
|
36
|
-
import { defaultTx } from '@dxos/react-ui-theme';
|
|
37
|
-
import { withLayout } from '@dxos/storybook-utils';
|
|
38
|
-
|
|
39
|
-
import MarkdownContainer from './MarkdownContainer';
|
|
40
|
-
import { MarkdownPlugin } from '../MarkdownPlugin';
|
|
41
|
-
import { MarkdownCapabilities } from '../capabilities';
|
|
42
|
-
import { MARKDOWN_PLUGIN } from '../meta';
|
|
43
|
-
import translations from '../translations';
|
|
44
|
-
import { createDocument, DocumentType, type MarkdownSettingsProps } from '../types';
|
|
45
|
-
|
|
46
|
-
faker.seed(1);
|
|
47
|
-
|
|
48
|
-
const TestItem = S.Struct({
|
|
49
|
-
title: S.String.annotations({
|
|
50
|
-
[AST.TitleAnnotationId]: 'Title',
|
|
51
|
-
[AST.DescriptionAnnotationId]: 'Product title',
|
|
52
|
-
}),
|
|
53
|
-
description: S.String.annotations({
|
|
54
|
-
[AST.TitleAnnotationId]: 'Description',
|
|
55
|
-
[AST.DescriptionAnnotationId]: 'Product description',
|
|
56
|
-
}),
|
|
57
|
-
}).pipe(EchoObject({ typename: 'dxos.org/type/Test', version: '0.1.0' }));
|
|
58
|
-
|
|
59
|
-
const TestChat: FC<{ doc: DocumentType; content: string }> = ({ doc, content }) => {
|
|
60
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
61
|
-
const { parentRef } = useTextEditor({ initialValue: content });
|
|
62
|
-
|
|
63
|
-
const space = useSpace();
|
|
64
|
-
const queueDxn = useMemo(() => space && createQueueDxn(space.id), [space]);
|
|
65
|
-
const queue = useQueue<Message>(queueDxn);
|
|
66
|
-
|
|
67
|
-
const handleInsert = () => {
|
|
68
|
-
invariant(space);
|
|
69
|
-
invariant(queue);
|
|
70
|
-
queue.append([create(Message, { role: 'assistant', content: [{ type: 'text', text: 'Hello' }] })]);
|
|
71
|
-
const message = queue.items[queue.items.length - 1];
|
|
72
|
-
|
|
73
|
-
// {
|
|
74
|
-
// const ref = refFromDXN(new DXN(DXN.kind.QUEUE, [...queue.dxn.parts, message.id]));
|
|
75
|
-
|
|
76
|
-
// const message = deref(ref);
|
|
77
|
-
// }
|
|
78
|
-
|
|
79
|
-
void dispatch(
|
|
80
|
-
createIntent(CollaborationActions.InsertContent, {
|
|
81
|
-
spaceId: space.id,
|
|
82
|
-
target: makeRef(doc as any as Expando), // TODO(burdon): Comomon base type.
|
|
83
|
-
object: refFromDXN(new DXN(DXN.kind.QUEUE, [...queue.dxn.parts, message.id])),
|
|
84
|
-
label: 'Proposal',
|
|
85
|
-
}),
|
|
86
|
-
);
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
return (
|
|
90
|
-
<StackItem.Content toolbar classNames='w-full'>
|
|
91
|
-
<Toolbar.Root classNames='border-be border-separator'>
|
|
92
|
-
<IconButton icon='ph--plus--regular' disabled={!queue} label='Insert' onClick={handleInsert} />
|
|
93
|
-
</Toolbar.Root>
|
|
94
|
-
<div ref={parentRef} className='p-4' />
|
|
95
|
-
</StackItem.Content>
|
|
96
|
-
);
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const DefaultStory = ({ document, chat }: { document: string; chat: string }) => {
|
|
100
|
-
const space = useSpace();
|
|
101
|
-
const [doc, setDoc] = useState<DocumentType>();
|
|
102
|
-
const settings = useCapability(Capabilities.SettingsStore).getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;
|
|
103
|
-
|
|
104
|
-
useEffect(() => {
|
|
105
|
-
if (!space) {
|
|
106
|
-
return undefined;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
const doc = space.db.add(
|
|
110
|
-
createDocument({
|
|
111
|
-
name: 'Test',
|
|
112
|
-
|
|
113
|
-
// Create links.
|
|
114
|
-
content: document.replaceAll(/\[(\w+)\]/g, (_, label) => {
|
|
115
|
-
const obj = space.db.add(live(TestItem, { title: label, description: faker.lorem.paragraph() }));
|
|
116
|
-
const dxn = makeRef(obj).dxn.toString();
|
|
117
|
-
return `[${label}][${dxn}]`;
|
|
118
|
-
}),
|
|
119
|
-
}),
|
|
120
|
-
);
|
|
121
|
-
|
|
122
|
-
setDoc(doc);
|
|
123
|
-
}, [space]);
|
|
124
|
-
|
|
125
|
-
if (!space || !doc) {
|
|
126
|
-
return <></>;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
return (
|
|
130
|
-
<>
|
|
131
|
-
<MarkdownContainer id={doc.id} object={doc} settings={settings} />
|
|
132
|
-
<TestChat doc={doc} content={chat} />
|
|
133
|
-
</>
|
|
134
|
-
);
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
const meta: Meta<typeof DefaultStory> = {
|
|
138
|
-
title: 'plugins/plugin-markdown/Suggestions',
|
|
139
|
-
render: DefaultStory,
|
|
140
|
-
decorators: [
|
|
141
|
-
withPluginManager({
|
|
142
|
-
plugins: [
|
|
143
|
-
ThemePlugin({ tx: defaultTx }),
|
|
144
|
-
StorybookLayoutPlugin(),
|
|
145
|
-
ClientPlugin({
|
|
146
|
-
types: [DocumentType, TestItem],
|
|
147
|
-
onClientInitialized: async (_, client) => {
|
|
148
|
-
await client.halo.createIdentity();
|
|
149
|
-
},
|
|
150
|
-
}),
|
|
151
|
-
SpacePlugin(),
|
|
152
|
-
SettingsPlugin(),
|
|
153
|
-
IntentPlugin(),
|
|
154
|
-
MarkdownPlugin(),
|
|
155
|
-
PreviewPlugin(),
|
|
156
|
-
],
|
|
157
|
-
capabilities: [contributes(MarkdownCapabilities.Extensions, [() => command()])],
|
|
158
|
-
}),
|
|
159
|
-
withLayout({ tooltips: true, fullscreen: true, classNames: 'grid grid-cols-2' }),
|
|
160
|
-
],
|
|
161
|
-
parameters: {
|
|
162
|
-
translations,
|
|
163
|
-
},
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
export default meta;
|
|
167
|
-
|
|
168
|
-
type Story = Meta<typeof DefaultStory>;
|
|
169
|
-
|
|
170
|
-
export const Default: Story = {
|
|
171
|
-
args: {
|
|
172
|
-
chat: 'Hello\n',
|
|
173
|
-
document: [
|
|
174
|
-
'# Test',
|
|
175
|
-
'',
|
|
176
|
-
faker.lorem.paragraph(1),
|
|
177
|
-
'',
|
|
178
|
-
'This is a [DXOS] story that tests [ECHO] references inside the Markdown plugin.',
|
|
179
|
-
'',
|
|
180
|
-
faker.lorem.paragraph(3),
|
|
181
|
-
'',
|
|
182
|
-
].join('\n'),
|
|
183
|
-
},
|
|
184
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/lib/node/{artifact-definition-ADEN2KD6.cjs.map → artifact-definition-XGADFWCQ.cjs.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|