@dxos/plugin-markdown 0.8.1 → 0.8.2-main.36232bc
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-T3HU27RE.mjs → MarkdownContainer-PDIKEQQU.mjs} +15 -12
- package/dist/lib/browser/MarkdownContainer-PDIKEQQU.mjs.map +7 -0
- package/dist/lib/browser/MarkdownPreview-2G2FVWO2.mjs +73 -0
- package/dist/lib/browser/MarkdownPreview-2G2FVWO2.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-NOXI4IQ5.mjs → app-graph-serializer-OCXP7PCK.mjs} +3 -3
- package/dist/lib/browser/{artifact-definition-CE6J6NY4.mjs → artifact-definition-XTVOUMMI.mjs} +2 -2
- package/dist/lib/browser/{chunk-YCJNW2RU.mjs → chunk-GVOEHF7E.mjs} +10 -1
- package/dist/lib/browser/chunk-GVOEHF7E.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QXDKFACU.mjs → chunk-LJ2UFBJ2.mjs} +5 -3
- package/dist/lib/browser/{chunk-QXDKFACU.mjs.map → chunk-LJ2UFBJ2.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-3ULJ4FIJ.mjs → chunk-QV6ZIXAD.mjs} +10 -23
- package/dist/lib/browser/chunk-QV6ZIXAD.mjs.map +7 -0
- package/dist/lib/browser/chunk-UQ2W5NRK.mjs +20 -0
- package/dist/lib/browser/chunk-UQ2W5NRK.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +8 -4
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/intent-resolver-H37L3DBD.mjs +86 -0
- package/dist/lib/browser/intent-resolver-H37L3DBD.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-RQX3CPFV.mjs → react-surface-OIHIDL6Q.mjs} +11 -4
- package/dist/lib/browser/react-surface-OIHIDL6Q.mjs.map +7 -0
- package/dist/lib/browser/{settings-GCSS3Y4Z.mjs → settings-EQSDBX6O.mjs} +4 -4
- package/dist/lib/browser/settings-EQSDBX6O.mjs.map +7 -0
- package/dist/lib/browser/{state-O7P5JDIH.mjs → state-AIN4J7N5.mjs} +1 -1
- package/dist/lib/browser/{state-O7P5JDIH.mjs.map → state-AIN4J7N5.mjs.map} +2 -2
- package/dist/lib/browser/{thread-3QGCFNVZ.mjs → thread-MFKBUVCB.mjs} +2 -2
- package/dist/lib/browser/types/index.mjs +3 -1
- package/dist/lib/node/{MarkdownContainer-6ZJIFAP6.cjs → MarkdownContainer-GYHFOCWZ.cjs} +18 -15
- package/dist/lib/node/MarkdownContainer-GYHFOCWZ.cjs.map +7 -0
- package/dist/lib/node/MarkdownPreview-T32LRPVG.cjs +96 -0
- package/dist/lib/node/MarkdownPreview-T32LRPVG.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-HKK3SEDN.cjs → app-graph-serializer-KBDLASRP.cjs} +9 -9
- package/dist/lib/node/{artifact-definition-XGADFWCQ.cjs → artifact-definition-ADEN2KD6.cjs} +9 -9
- package/dist/lib/node/{chunk-7QVONRSI.cjs → chunk-HB44GO7V.cjs} +13 -57
- package/dist/lib/node/chunk-HB44GO7V.cjs.map +7 -0
- package/dist/lib/node/{chunk-H5MYVP6F.cjs → chunk-JO4SBK36.cjs} +9 -7
- package/dist/lib/node/{chunk-H5MYVP6F.cjs.map → chunk-JO4SBK36.cjs.map} +2 -2
- package/dist/lib/node/chunk-WGMVEPB3.cjs +75 -0
- package/dist/lib/node/chunk-WGMVEPB3.cjs.map +7 -0
- package/dist/lib/node/{chunk-UEXGNGSS.cjs → chunk-YHL4JSA6.cjs} +14 -4
- package/dist/lib/node/chunk-YHL4JSA6.cjs.map +7 -0
- package/dist/lib/node/index.cjs +23 -20
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/{intent-resolver-NW27BF3W.cjs → intent-resolver-NX5QNRYF.cjs} +45 -9
- package/dist/lib/node/intent-resolver-NX5QNRYF.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-5X3SMHGI.cjs → react-surface-JYGR4QB3.cjs} +15 -8
- package/dist/lib/node/react-surface-JYGR4QB3.cjs.map +7 -0
- package/dist/lib/node/{settings-S2ISUVIH.cjs → settings-2JXASSLU.cjs} +7 -7
- package/dist/lib/node/settings-2JXASSLU.cjs.map +7 -0
- package/dist/lib/node/{state-L44SG3ZM.cjs → state-PC7IVXFP.cjs} +4 -4
- package/dist/lib/node/{state-L44SG3ZM.cjs.map → state-PC7IVXFP.cjs.map} +2 -2
- package/dist/lib/node/{thread-42R57L4K.cjs → thread-MXEGV6HS.cjs} +6 -6
- package/dist/lib/node/types/index.cjs +8 -6
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/{MarkdownContainer-URAPTO37.mjs → MarkdownContainer-7T5H7ROL.mjs} +15 -12
- package/dist/lib/node-esm/MarkdownContainer-7T5H7ROL.mjs.map +7 -0
- package/dist/lib/node-esm/MarkdownPreview-MGR5BF6U.mjs +74 -0
- package/dist/lib/node-esm/MarkdownPreview-MGR5BF6U.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-QQ2CTHOQ.mjs → app-graph-serializer-67CO7ST3.mjs} +3 -3
- package/dist/lib/node-esm/{artifact-definition-WRG5ZRN5.mjs → artifact-definition-KTS5M2FW.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-F6UHVLH7.mjs → chunk-4U2F4EB7.mjs} +10 -23
- package/dist/lib/node-esm/chunk-4U2F4EB7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-JNA7GQEA.mjs +22 -0
- package/dist/lib/node-esm/chunk-JNA7GQEA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-4AM4VU3Y.mjs → chunk-NUZHKZSZ.mjs} +10 -1
- package/dist/lib/node-esm/chunk-NUZHKZSZ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JAVD67QP.mjs → chunk-VQA6BQGT.mjs} +5 -3
- package/dist/lib/node-esm/{chunk-JAVD67QP.mjs.map → chunk-VQA6BQGT.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +8 -4
- package/dist/lib/node-esm/index.mjs.map +2 -2
- package/dist/lib/node-esm/intent-resolver-XES4ZCA6.mjs +87 -0
- package/dist/lib/node-esm/intent-resolver-XES4ZCA6.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-6IKC3G46.mjs → react-surface-QIMBMILA.mjs} +11 -4
- package/dist/lib/node-esm/react-surface-QIMBMILA.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-ZDIFTK4N.mjs → settings-67RVIH3N.mjs} +4 -4
- package/dist/lib/node-esm/settings-67RVIH3N.mjs.map +7 -0
- package/dist/lib/node-esm/{state-DWPOKLEY.mjs → state-PNOPM4TS.mjs} +1 -1
- package/dist/lib/node-esm/{state-DWPOKLEY.mjs.map → state-PNOPM4TS.mjs.map} +2 -2
- package/dist/lib/node-esm/{thread-R2KHZD6V.mjs → thread-5U4KSBED.mjs} +2 -2
- package/dist/lib/node-esm/types/index.mjs +3 -1
- 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.d.ts → MarkdownEditor/MarkdownEditor.d.ts} +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -0
- package/dist/types/src/components/{MarkdownEditor.stories.d.ts → MarkdownEditor/MarkdownEditor.stories.d.ts} +3 -3
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/index.d.ts +2 -0
- package/dist/types/src/components/MarkdownEditor/index.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +6 -0
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +191 -0
- package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownPreview/index.d.ts +4 -0
- package/dist/types/src/components/MarkdownPreview/index.d.ts.map +1 -0
- package/dist/types/src/components/{MarkdownSettings.d.ts → MarkdownSettings/MarkdownSettings.d.ts} +1 -1
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownSettings/index.d.ts +2 -0
- package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/Suggestions.stories.d.ts +12 -0
- package/dist/types/src/components/Suggestions.stories.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 +1 -0
- 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 +6 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +421 -17
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +120 -8
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -0
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +37 -32
- package/src/MarkdownPlugin.tsx +3 -3
- package/src/capabilities/intent-resolver.ts +38 -5
- package/src/capabilities/react-surface.tsx +8 -1
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/state.ts +1 -1
- package/src/components/MarkdownContainer.tsx +1 -0
- package/src/components/{MarkdownEditor.stories.tsx → MarkdownEditor/MarkdownEditor.stories.tsx} +22 -35
- package/src/components/{MarkdownEditor.tsx → MarkdownEditor/MarkdownEditor.tsx} +4 -4
- package/src/components/MarkdownEditor/index.ts +5 -0
- package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +68 -0
- package/src/components/MarkdownPreview/MarkdownPreview.tsx +59 -0
- package/src/components/MarkdownPreview/index.ts +9 -0
- package/src/components/{MarkdownSettings.tsx → MarkdownSettings/MarkdownSettings.tsx} +2 -2
- package/src/components/MarkdownSettings/index.ts +5 -0
- package/src/components/Suggestions.stories.tsx +184 -0
- package/src/components/Toolbar.stories.tsx +15 -15
- package/src/components/index.ts +1 -0
- package/src/extensions.tsx +37 -32
- package/src/translations.ts +2 -0
- package/src/types/schema.ts +5 -0
- package/src/util.tsx +6 -2
- package/dist/lib/browser/MarkdownContainer-T3HU27RE.mjs.map +0 -7
- package/dist/lib/browser/chunk-3ULJ4FIJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-YCJNW2RU.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-42GQ6HNZ.mjs +0 -50
- package/dist/lib/browser/intent-resolver-42GQ6HNZ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-RQX3CPFV.mjs.map +0 -7
- package/dist/lib/browser/settings-GCSS3Y4Z.mjs.map +0 -7
- package/dist/lib/node/MarkdownContainer-6ZJIFAP6.cjs.map +0 -7
- package/dist/lib/node/chunk-7QVONRSI.cjs.map +0 -7
- package/dist/lib/node/chunk-UEXGNGSS.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-NW27BF3W.cjs.map +0 -7
- package/dist/lib/node/react-surface-5X3SMHGI.cjs.map +0 -7
- package/dist/lib/node/settings-S2ISUVIH.cjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-URAPTO37.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4AM4VU3Y.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-F6UHVLH7.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-7HOMUVHR.mjs +0 -51
- package/dist/lib/node-esm/intent-resolver-7HOMUVHR.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-6IKC3G46.mjs.map +0 -7
- package/dist/lib/node-esm/settings-ZDIFTK4N.mjs.map +0 -7
- package/dist/types/src/components/MarkdownEditor.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownEditor.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownSettings.d.ts.map +0 -1
- /package/dist/lib/browser/{app-graph-serializer-NOXI4IQ5.mjs.map → app-graph-serializer-OCXP7PCK.mjs.map} +0 -0
- /package/dist/lib/browser/{artifact-definition-CE6J6NY4.mjs.map → artifact-definition-XTVOUMMI.mjs.map} +0 -0
- /package/dist/lib/browser/{thread-3QGCFNVZ.mjs.map → thread-MFKBUVCB.mjs.map} +0 -0
- /package/dist/lib/node/{app-graph-serializer-HKK3SEDN.cjs.map → app-graph-serializer-KBDLASRP.cjs.map} +0 -0
- /package/dist/lib/node/{artifact-definition-XGADFWCQ.cjs.map → artifact-definition-ADEN2KD6.cjs.map} +0 -0
- /package/dist/lib/node/{thread-42R57L4K.cjs.map → thread-MXEGV6HS.cjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-QQ2CTHOQ.mjs.map → app-graph-serializer-67CO7ST3.mjs.map} +0 -0
- /package/dist/lib/node-esm/{artifact-definition-WRG5ZRN5.mjs.map → artifact-definition-KTS5M2FW.mjs.map} +0 -0
- /package/dist/lib/node-esm/{thread-R2KHZD6V.mjs.map → thread-5U4KSBED.mjs.map} +0 -0
|
@@ -24,22 +24,128 @@ export declare namespace MarkdownAction {
|
|
|
24
24
|
messages: S.mutable<S.Array$<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").TypedObjectFields<{
|
|
25
25
|
id: import("@dxos/echo-schema").ObjectIdClass;
|
|
26
26
|
created: S.SchemaClass<string, string, never>;
|
|
27
|
-
sender: S.Struct<{
|
|
27
|
+
sender: S.mutable<S.Struct<{
|
|
28
28
|
contact: S.optional<import("@dxos/echo-schema").Ref$<{
|
|
29
29
|
readonly id: string;
|
|
30
|
-
|
|
31
|
-
identifiers: {
|
|
30
|
+
fields?: {
|
|
32
31
|
readonly value: string;
|
|
33
|
-
readonly
|
|
34
|
-
|
|
32
|
+
readonly label: string;
|
|
33
|
+
readonly category?: string | undefined;
|
|
34
|
+
}[] | undefined;
|
|
35
|
+
organization?: import("@dxos/echo-schema").Ref<{
|
|
36
|
+
readonly id: string;
|
|
37
|
+
description?: string | undefined;
|
|
38
|
+
name?: string | undefined;
|
|
39
|
+
status?: "first" | "second" | "third" | "fourth" | undefined;
|
|
40
|
+
image?: string | undefined;
|
|
41
|
+
website?: string | undefined;
|
|
42
|
+
}> | undefined;
|
|
43
|
+
image?: string | undefined;
|
|
44
|
+
fullName?: string | undefined;
|
|
45
|
+
preferredName?: string | undefined;
|
|
46
|
+
nickname?: string | undefined;
|
|
47
|
+
jobTitle?: string | undefined;
|
|
48
|
+
department?: string | undefined;
|
|
49
|
+
notes?: string | undefined;
|
|
50
|
+
emails?: {
|
|
51
|
+
readonly value: string;
|
|
52
|
+
readonly label?: string | undefined;
|
|
53
|
+
}[] | undefined;
|
|
54
|
+
identities?: {
|
|
55
|
+
readonly value: string;
|
|
56
|
+
readonly label?: string | undefined;
|
|
57
|
+
}[] | undefined;
|
|
58
|
+
phoneNumbers?: {
|
|
59
|
+
readonly value: string;
|
|
60
|
+
readonly label?: string | undefined;
|
|
61
|
+
}[] | undefined;
|
|
62
|
+
addresses?: {
|
|
63
|
+
readonly value: {
|
|
64
|
+
readonly street?: string | undefined;
|
|
65
|
+
readonly extended?: string | undefined;
|
|
66
|
+
readonly locality?: string | undefined;
|
|
67
|
+
readonly region?: string | undefined;
|
|
68
|
+
readonly postalCode?: string | undefined;
|
|
69
|
+
readonly postOfficeBoxNumber?: string | undefined;
|
|
70
|
+
readonly country?: string | undefined;
|
|
71
|
+
};
|
|
72
|
+
readonly label?: string | undefined;
|
|
73
|
+
}[] | undefined;
|
|
74
|
+
urls?: {
|
|
75
|
+
readonly value: string;
|
|
76
|
+
readonly label?: string | undefined;
|
|
77
|
+
}[] | undefined;
|
|
78
|
+
birthday?: {
|
|
79
|
+
toString: () => string;
|
|
80
|
+
toDateString: () => string;
|
|
81
|
+
toTimeString: () => string;
|
|
82
|
+
toLocaleString: {
|
|
83
|
+
(): string;
|
|
84
|
+
(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
|
|
85
|
+
(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
|
|
86
|
+
};
|
|
87
|
+
toLocaleDateString: {
|
|
88
|
+
(): string;
|
|
89
|
+
(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
|
|
90
|
+
(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
|
|
91
|
+
};
|
|
92
|
+
toLocaleTimeString: {
|
|
93
|
+
(): string;
|
|
94
|
+
(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
|
|
95
|
+
(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;
|
|
96
|
+
};
|
|
97
|
+
valueOf: () => number;
|
|
98
|
+
getTime: () => number;
|
|
99
|
+
getFullYear: () => number;
|
|
100
|
+
getUTCFullYear: () => number;
|
|
101
|
+
getMonth: () => number;
|
|
102
|
+
getUTCMonth: () => number;
|
|
103
|
+
getDate: () => number;
|
|
104
|
+
getUTCDate: () => number;
|
|
105
|
+
getDay: () => number;
|
|
106
|
+
getUTCDay: () => number;
|
|
107
|
+
getHours: () => number;
|
|
108
|
+
getUTCHours: () => number;
|
|
109
|
+
getMinutes: () => number;
|
|
110
|
+
getUTCMinutes: () => number;
|
|
111
|
+
getSeconds: () => number;
|
|
112
|
+
getUTCSeconds: () => number;
|
|
113
|
+
getMilliseconds: () => number;
|
|
114
|
+
getUTCMilliseconds: () => number;
|
|
115
|
+
getTimezoneOffset: () => number;
|
|
116
|
+
setTime: (time: number) => number;
|
|
117
|
+
setMilliseconds: (ms: number) => number;
|
|
118
|
+
setUTCMilliseconds: (ms: number) => number;
|
|
119
|
+
setSeconds: (sec: number, ms?: number) => number;
|
|
120
|
+
setUTCSeconds: (sec: number, ms?: number) => number;
|
|
121
|
+
setMinutes: (min: number, sec?: number, ms?: number) => number;
|
|
122
|
+
setUTCMinutes: (min: number, sec?: number, ms?: number) => number;
|
|
123
|
+
setHours: (hours: number, min?: number, sec?: number, ms?: number) => number;
|
|
124
|
+
setUTCHours: (hours: number, min?: number, sec?: number, ms?: number) => number;
|
|
125
|
+
setDate: (date: number) => number;
|
|
126
|
+
setUTCDate: (date: number) => number;
|
|
127
|
+
setMonth: (month: number, date?: number) => number;
|
|
128
|
+
setUTCMonth: (month: number, date?: number) => number;
|
|
129
|
+
setFullYear: (year: number, month?: number, date?: number) => number;
|
|
130
|
+
setUTCFullYear: (year: number, month?: number, date?: number) => number;
|
|
131
|
+
toUTCString: () => string;
|
|
132
|
+
toISOString: () => string;
|
|
133
|
+
toJSON: (key?: any) => string;
|
|
134
|
+
[Symbol.toPrimitive]: {
|
|
135
|
+
(hint: "default"): string;
|
|
136
|
+
(hint: "string"): string;
|
|
137
|
+
(hint: "number"): number;
|
|
138
|
+
(hint: string): string | number;
|
|
139
|
+
};
|
|
140
|
+
} | undefined;
|
|
35
141
|
}>>;
|
|
36
142
|
identityDid: S.optional<typeof S.String>;
|
|
37
143
|
identityKey: S.optional<typeof S.String>;
|
|
38
144
|
email: S.optional<typeof S.String>;
|
|
39
145
|
name: S.optional<typeof S.String>;
|
|
40
146
|
role: S.optional<S.Literal<["user", "assistant"]>>;
|
|
41
|
-
}
|
|
42
|
-
blocks: S.Array$<S.Union<[S.mutable<S.extend<S.Struct<{
|
|
147
|
+
}>>;
|
|
148
|
+
blocks: S.mutable<S.Array$<S.Union<[S.mutable<S.extend<S.Struct<{
|
|
43
149
|
pending: S.optional<typeof S.Boolean>;
|
|
44
150
|
}>, S.Struct<{
|
|
45
151
|
type: S.Literal<["text"]>;
|
|
@@ -69,7 +175,13 @@ export declare namespace MarkdownAction {
|
|
|
69
175
|
}>, S.Struct<{
|
|
70
176
|
type: S.Literal<["reference"]>;
|
|
71
177
|
reference: import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").Expando>;
|
|
72
|
-
}
|
|
178
|
+
}>>>, S.mutable<S.extend<S.Struct<{
|
|
179
|
+
pending: S.optional<typeof S.Boolean>;
|
|
180
|
+
}>, S.Struct<{
|
|
181
|
+
type: S.Literal<["transcription"]>;
|
|
182
|
+
started: typeof S.String;
|
|
183
|
+
text: typeof S.String;
|
|
184
|
+
}>>>]>>>;
|
|
73
185
|
properties: S.optional<S.mutable<S.Record$<typeof S.String, typeof S.Any>>>;
|
|
74
186
|
}, import("@dxos/echo-schema").TypedObjectOptions>>>>;
|
|
75
187
|
}, import("@dxos/echo-schema").TypedObjectOptions>>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAEtC,OAAO,EAAE,KAAK,SAAS,EAAmB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,yBAAiB,cAAc,CAAC;;;;;;;;;;;;;;oCAPU,EAAE,MAAM;;;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/src/util.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type TypedObjectSerializer } from '@dxos/plugin-space/types';
|
|
|
2
2
|
import { DocumentType, type MarkdownProperties } from './types';
|
|
3
3
|
export declare const isMarkdownProperties: (data: unknown) => data is MarkdownProperties;
|
|
4
4
|
export declare const getFallbackName: (content: string) => string;
|
|
5
|
+
export declare const getAbstract: (content: string) => string;
|
|
5
6
|
export declare const setFallbackName: (...args: any[]) => void;
|
|
6
7
|
export declare const serializer: TypedObjectSerializer<DocumentType>;
|
|
7
8
|
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAItE,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEhE,eAAO,MAAM,oBAAoB,SAAU,OAAO,KAAG,IAAI,IAAI,kBAKhD,CAAC;AAId,eAAO,MAAM,eAAe,YAAa,MAAM,WAE9C,CAAC;AAEF,eAAO,MAAM,eAAe,0BAKrB,CAAC;AAER,eAAO,MAAM,UAAU,EAAE,qBAAqB,CAAC,YAAY,CAY1D,CAAC"}
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAItE,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEhE,eAAO,MAAM,oBAAoB,SAAU,OAAO,KAAG,IAAI,IAAI,kBAKhD,CAAC;AAId,eAAO,MAAM,eAAe,YAAa,MAAM,WAE9C,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,MAAM,WAE1C,CAAC;AAEF,eAAO,MAAM,eAAe,0BAKrB,CAAC;AAER,eAAO,MAAM,UAAU,EAAE,qBAAqB,CAAC,YAAY,CAY1D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-markdown",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.2-main.36232bc",
|
|
4
4
|
"description": "DXOS Surface plugin for interacting with Markdown",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -38,30 +38,33 @@
|
|
|
38
38
|
"@preact/signals-core": "^1.6.0",
|
|
39
39
|
"effect": "3.13.3",
|
|
40
40
|
"react-dropzone": "^14.2.3",
|
|
41
|
-
"@dxos/app-framework": "0.8.
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/plugin-
|
|
53
|
-
"@dxos/plugin-
|
|
54
|
-
"@dxos/plugin-
|
|
55
|
-
"@dxos/plugin-
|
|
56
|
-
"@dxos/
|
|
57
|
-
"@dxos/react-hooks": "0.8.
|
|
58
|
-
"@dxos/react-ui-attention": "0.8.
|
|
59
|
-
"@dxos/react-
|
|
60
|
-
"@dxos/react-ui-
|
|
61
|
-
"@dxos/
|
|
62
|
-
"@dxos/
|
|
63
|
-
"@dxos/
|
|
64
|
-
"@dxos/
|
|
41
|
+
"@dxos/app-framework": "0.8.2-main.36232bc",
|
|
42
|
+
"@dxos/artifact": "0.8.2-main.36232bc",
|
|
43
|
+
"@dxos/async": "0.8.2-main.36232bc",
|
|
44
|
+
"@dxos/automerge": "0.8.2-main.36232bc",
|
|
45
|
+
"@dxos/echo-schema": "0.8.2-main.36232bc",
|
|
46
|
+
"@dxos/invariant": "0.8.2-main.36232bc",
|
|
47
|
+
"@dxos/keys": "0.8.2-main.36232bc",
|
|
48
|
+
"@dxos/lit-ui": "0.8.2-main.36232bc",
|
|
49
|
+
"@dxos/live-object": "0.8.2-main.36232bc",
|
|
50
|
+
"@dxos/local-storage": "0.8.2-main.36232bc",
|
|
51
|
+
"@dxos/log": "0.8.2-main.36232bc",
|
|
52
|
+
"@dxos/plugin-client": "0.8.2-main.36232bc",
|
|
53
|
+
"@dxos/plugin-attention": "0.8.2-main.36232bc",
|
|
54
|
+
"@dxos/plugin-graph": "0.8.2-main.36232bc",
|
|
55
|
+
"@dxos/plugin-deck": "0.8.2-main.36232bc",
|
|
56
|
+
"@dxos/plugin-preview": "0.8.2-main.36232bc",
|
|
57
|
+
"@dxos/react-hooks": "0.8.2-main.36232bc",
|
|
58
|
+
"@dxos/react-ui-attention": "0.8.2-main.36232bc",
|
|
59
|
+
"@dxos/react-client": "0.8.2-main.36232bc",
|
|
60
|
+
"@dxos/react-ui-card": "0.8.2-main.36232bc",
|
|
61
|
+
"@dxos/plugin-space": "0.8.2-main.36232bc",
|
|
62
|
+
"@dxos/plugin-theme": "0.8.2-main.36232bc",
|
|
63
|
+
"@dxos/react-ui-editor": "0.8.2-main.36232bc",
|
|
64
|
+
"@dxos/react-ui-stack": "0.8.2-main.36232bc",
|
|
65
|
+
"@dxos/schema": "0.8.2-main.36232bc",
|
|
66
|
+
"@dxos/react-ui-form": "0.8.2-main.36232bc",
|
|
67
|
+
"@dxos/util": "0.8.2-main.36232bc"
|
|
65
68
|
},
|
|
66
69
|
"devDependencies": {
|
|
67
70
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -70,18 +73,20 @@
|
|
|
70
73
|
"react": "~18.2.0",
|
|
71
74
|
"react-dom": "~18.2.0",
|
|
72
75
|
"vite": "5.4.7",
|
|
73
|
-
"@dxos/
|
|
74
|
-
"@dxos/
|
|
75
|
-
"@dxos/
|
|
76
|
-
"@dxos/
|
|
77
|
-
"@dxos/
|
|
76
|
+
"@dxos/plugin-storybook-layout": "0.8.2-main.36232bc",
|
|
77
|
+
"@dxos/plugin-theme": "0.8.2-main.36232bc",
|
|
78
|
+
"@dxos/debug": "0.8.2-main.36232bc",
|
|
79
|
+
"@dxos/react-ui": "0.8.2-main.36232bc",
|
|
80
|
+
"@dxos/random": "0.8.2-main.36232bc",
|
|
81
|
+
"@dxos/react-ui-theme": "0.8.2-main.36232bc",
|
|
82
|
+
"@dxos/storybook-utils": "0.8.2-main.36232bc"
|
|
78
83
|
},
|
|
79
84
|
"peerDependencies": {
|
|
80
85
|
"@phosphor-icons/react": "^2.1.5",
|
|
81
86
|
"react": "~18.2.0",
|
|
82
87
|
"react-dom": "~18.2.0",
|
|
83
|
-
"@dxos/react-ui": "0.8.
|
|
84
|
-
"@dxos/react-ui
|
|
88
|
+
"@dxos/react-ui-theme": "0.8.2-main.36232bc",
|
|
89
|
+
"@dxos/react-ui": "0.8.2-main.36232bc"
|
|
85
90
|
},
|
|
86
91
|
"publishConfig": {
|
|
87
92
|
"access": "public"
|
package/src/MarkdownPlugin.tsx
CHANGED
|
@@ -12,13 +12,13 @@ import { translations as editorTranslations } from '@dxos/react-ui-editor';
|
|
|
12
12
|
import { TextType } from '@dxos/schema';
|
|
13
13
|
|
|
14
14
|
import {
|
|
15
|
+
AppGraphSerializer,
|
|
16
|
+
ArtifactDefinition,
|
|
17
|
+
IntentResolver,
|
|
15
18
|
MarkdownState,
|
|
16
19
|
MarkdownSettings,
|
|
17
20
|
ReactSurface,
|
|
18
|
-
IntentResolver,
|
|
19
|
-
AppGraphSerializer,
|
|
20
21
|
Thread,
|
|
21
|
-
ArtifactDefinition,
|
|
22
22
|
} from './capabilities';
|
|
23
23
|
import { MarkdownEvents } from './events';
|
|
24
24
|
import { meta } from './meta';
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
|
|
5
|
+
import {
|
|
6
|
+
Capabilities,
|
|
7
|
+
CollaborationActions,
|
|
8
|
+
contributes,
|
|
9
|
+
createResolver,
|
|
10
|
+
type PluginsContext,
|
|
11
|
+
} from '@dxos/app-framework';
|
|
12
|
+
import { next as A } from '@dxos/automerge/automerge';
|
|
13
|
+
import { isInstanceOf, ObjectId } from '@dxos/echo-schema';
|
|
7
14
|
import { DXN, QueueSubspaceTags } from '@dxos/keys';
|
|
8
|
-
import { makeRef,
|
|
15
|
+
import { makeRef, live, refFromDXN } from '@dxos/live-object';
|
|
16
|
+
import { log } from '@dxos/log';
|
|
17
|
+
import { ClientCapabilities } from '@dxos/plugin-client';
|
|
18
|
+
import { resolveRef } from '@dxos/react-client';
|
|
19
|
+
import { createDocAccessor } from '@dxos/react-client/echo';
|
|
9
20
|
import { TextType } from '@dxos/schema';
|
|
10
21
|
|
|
11
22
|
import { MarkdownCapabilities } from './capabilities';
|
|
@@ -16,9 +27,9 @@ export default (context: PluginsContext) =>
|
|
|
16
27
|
createResolver({
|
|
17
28
|
intent: MarkdownAction.Create,
|
|
18
29
|
resolve: ({ name, spaceId, content }) => {
|
|
19
|
-
const doc =
|
|
30
|
+
const doc = live(DocumentType, {
|
|
20
31
|
name,
|
|
21
|
-
content: makeRef(
|
|
32
|
+
content: makeRef(live(TextType, { content: content ?? '' })),
|
|
22
33
|
assistantChatQueue: refFromDXN(new DXN(DXN.kind.QUEUE, [QueueSubspaceTags.DATA, spaceId, ObjectId.random()])),
|
|
23
34
|
threads: [],
|
|
24
35
|
});
|
|
@@ -33,4 +44,26 @@ export default (context: PluginsContext) =>
|
|
|
33
44
|
state.viewMode[id] = viewMode;
|
|
34
45
|
},
|
|
35
46
|
}),
|
|
47
|
+
// TODO(burdon): What is the error boundary for intents? Are errors reported back to caller?
|
|
48
|
+
createResolver({
|
|
49
|
+
intent: CollaborationActions.InsertContent,
|
|
50
|
+
resolve: async ({ spaceId, target: targetRef, object: objectRef, label }) => {
|
|
51
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
52
|
+
const space = client.spaces.get(spaceId);
|
|
53
|
+
const target = await resolveRef(client, targetRef.dxn, space);
|
|
54
|
+
if (target && isInstanceOf(DocumentType, target)) {
|
|
55
|
+
const accessor = createDocAccessor(target, ['content']);
|
|
56
|
+
// TODO(burdon): Should be a cursor that references a selected position.
|
|
57
|
+
const index = 0;
|
|
58
|
+
accessor.handle.change((doc) => {
|
|
59
|
+
// TODO(burdon): Throws error:
|
|
60
|
+
// intent-dispatcher.ts:270 Cannot read properties of undefined (reading 'annotations') (FiberFailure) TypeError: Cannot read properties of undefined (reading 'annotations')
|
|
61
|
+
const ref = `[${label ?? 'Generated content'}]](${objectRef.dxn.toString()})\n`;
|
|
62
|
+
A.splice(doc, accessor.path.slice(), index, 0, ref);
|
|
63
|
+
});
|
|
64
|
+
} else {
|
|
65
|
+
log.warn('target is not a document', { targetRef, objectRef });
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
}),
|
|
36
69
|
]);
|
|
@@ -11,7 +11,7 @@ import { fullyQualifiedId } from '@dxos/react-client/echo';
|
|
|
11
11
|
import { TextType } from '@dxos/schema';
|
|
12
12
|
|
|
13
13
|
import { MarkdownCapabilities } from './capabilities';
|
|
14
|
-
import { MarkdownContainer, MarkdownSettings } from '../components';
|
|
14
|
+
import { MarkdownContainer, MarkdownSettings, MarkdownPreview } from '../components';
|
|
15
15
|
import { MARKDOWN_PLUGIN } from '../meta';
|
|
16
16
|
import { DocumentType, isEditorModel, type MarkdownSettingsProps } from '../types';
|
|
17
17
|
|
|
@@ -95,4 +95,11 @@ export default () =>
|
|
|
95
95
|
data.subject instanceof SettingsStore && data.subject.prefix === MARKDOWN_PLUGIN,
|
|
96
96
|
component: ({ data: { subject } }) => <MarkdownSettings settings={subject.value} />,
|
|
97
97
|
}),
|
|
98
|
+
createSurface({
|
|
99
|
+
id: `${MARKDOWN_PLUGIN}/preview`,
|
|
100
|
+
role: 'popover',
|
|
101
|
+
filter: (data): data is { subject: DocumentType | TextType } =>
|
|
102
|
+
isInstanceOf(DocumentType, data.subject) || isInstanceOf(TextType, data.subject),
|
|
103
|
+
component: ({ data }) => <MarkdownPreview {...data} />,
|
|
104
|
+
}),
|
|
98
105
|
]);
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { Capabilities, contributes } from '@dxos/app-framework';
|
|
6
|
-
import {
|
|
6
|
+
import { live } from '@dxos/live-object';
|
|
7
7
|
|
|
8
8
|
import { MARKDOWN_PLUGIN } from '../meta';
|
|
9
9
|
import { type MarkdownSettingsProps, MarkdownSettingsSchema } from '../types';
|
|
10
10
|
|
|
11
11
|
export default () => {
|
|
12
|
-
const settings =
|
|
12
|
+
const settings = live<MarkdownSettingsProps>({
|
|
13
13
|
defaultViewMode: 'preview',
|
|
14
14
|
toolbar: true,
|
|
15
15
|
numberedHeadings: true,
|
|
@@ -12,7 +12,6 @@ import { type MarkdownPluginState, type MarkdownSettingsProps } from '../types';
|
|
|
12
12
|
|
|
13
13
|
export default (context: PluginsContext) => {
|
|
14
14
|
const state = new LocalStorageStore<MarkdownPluginState>(MARKDOWN_PLUGIN, { extensionProviders: [], viewMode: {} });
|
|
15
|
-
|
|
16
15
|
state.prop({ key: 'viewMode', type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>() });
|
|
17
16
|
|
|
18
17
|
// TODO(wittjosiah): Fold into state.
|
|
@@ -27,5 +26,6 @@ export default (context: PluginsContext) => {
|
|
|
27
26
|
|
|
28
27
|
const setViewMode = (id: string, viewMode: EditorViewMode) => (state.values.viewMode[id] = viewMode);
|
|
29
28
|
|
|
29
|
+
// Return object with methods.
|
|
30
30
|
return contributes(MarkdownCapabilities.State, { state: state.values, editorState, getViewMode, setViewMode });
|
|
31
31
|
};
|
package/src/components/{MarkdownEditor.stories.tsx → MarkdownEditor/MarkdownEditor.stories.tsx}
RENAMED
|
@@ -10,19 +10,14 @@ import React, { useMemo } from 'react';
|
|
|
10
10
|
import { IntentPlugin } from '@dxos/app-framework';
|
|
11
11
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
12
12
|
import { createDocAccessor, createObject } from '@dxos/react-client/echo';
|
|
13
|
-
import { Main } from '@dxos/react-ui';
|
|
14
|
-
import { AttendableContainer } from '@dxos/react-ui-attention';
|
|
15
13
|
import { withAttention } from '@dxos/react-ui-attention/testing';
|
|
16
|
-
import {
|
|
17
|
-
import { topbarBlockPaddingStart } from '@dxos/react-ui-theme';
|
|
14
|
+
import { automerge, translations as editorTranslations } from '@dxos/react-ui-editor';
|
|
18
15
|
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
19
16
|
|
|
20
17
|
import { MarkdownEditor, type MarkdownEditorProps } from './MarkdownEditor';
|
|
21
|
-
import translations from '
|
|
18
|
+
import translations from '../../translations';
|
|
22
19
|
|
|
23
|
-
const content = Array.from({ length: 100 })
|
|
24
|
-
.map((_, i) => `Line ${i + 1}`)
|
|
25
|
-
.join('\n');
|
|
20
|
+
const content = Array.from({ length: 100 }, (_, i) => `Line ${i + 1}`).join('\n');
|
|
26
21
|
|
|
27
22
|
type StoryProps = MarkdownEditorProps & {
|
|
28
23
|
content?: string;
|
|
@@ -32,43 +27,35 @@ type StoryProps = MarkdownEditorProps & {
|
|
|
32
27
|
const DefaultStory = ({ content = '# Test', toolbar }: StoryProps) => {
|
|
33
28
|
const doc = useMemo(() => createObject({ content }), [content]);
|
|
34
29
|
const extensions = useMemo(() => [automerge(createDocAccessor(doc, ['content']))], [doc]);
|
|
35
|
-
return
|
|
36
|
-
<Main.Content
|
|
37
|
-
bounce
|
|
38
|
-
data-toolbar={toolbar ? 'enabled' : 'disabled'}
|
|
39
|
-
classNames={[topbarBlockPaddingStart, editorWithToolbarLayout]}
|
|
40
|
-
>
|
|
41
|
-
<AttendableContainer id='test'>
|
|
42
|
-
<MarkdownEditor id='test' initialValue={doc.content} extensions={extensions} toolbar={toolbar} />
|
|
43
|
-
</AttendableContainer>
|
|
44
|
-
</Main.Content>
|
|
45
|
-
);
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export const Default = {
|
|
49
|
-
args: {
|
|
50
|
-
content,
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const WithToolbar = {
|
|
55
|
-
args: {
|
|
56
|
-
content,
|
|
57
|
-
toolbar: true,
|
|
58
|
-
},
|
|
30
|
+
return <MarkdownEditor id='test' initialValue={doc.content} extensions={extensions} toolbar={toolbar} />;
|
|
59
31
|
};
|
|
60
32
|
|
|
61
33
|
const meta: Meta<typeof MarkdownEditor> = {
|
|
62
|
-
title: 'plugins/plugin-markdown/
|
|
34
|
+
title: 'plugins/plugin-markdown/MarkdownEditor',
|
|
63
35
|
component: MarkdownEditor,
|
|
64
36
|
render: DefaultStory,
|
|
65
37
|
decorators: [
|
|
66
38
|
withTheme,
|
|
67
|
-
withLayout({ tooltips: true }),
|
|
39
|
+
withLayout({ tooltips: true, fullscreen: true }),
|
|
68
40
|
withAttention,
|
|
69
41
|
withPluginManager({ plugins: [IntentPlugin()] }),
|
|
70
42
|
],
|
|
71
|
-
parameters: {
|
|
43
|
+
parameters: {
|
|
44
|
+
translations: [...translations, ...editorTranslations],
|
|
45
|
+
},
|
|
72
46
|
};
|
|
73
47
|
|
|
74
48
|
export default meta;
|
|
49
|
+
|
|
50
|
+
export const Default = {
|
|
51
|
+
args: {
|
|
52
|
+
content,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export const WithToolbar = {
|
|
57
|
+
args: {
|
|
58
|
+
toolbar: true,
|
|
59
|
+
content,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
@@ -38,9 +38,9 @@ import {
|
|
|
38
38
|
import { StackItem } from '@dxos/react-ui-stack';
|
|
39
39
|
import { isNotFalsy, isNonNullable } from '@dxos/util';
|
|
40
40
|
|
|
41
|
-
import { useSelectCurrentThread } from '
|
|
42
|
-
import { MARKDOWN_PLUGIN } from '
|
|
43
|
-
import { type MarkdownPluginState } from '
|
|
41
|
+
import { useSelectCurrentThread } from '../../hooks';
|
|
42
|
+
import { MARKDOWN_PLUGIN } from '../../meta';
|
|
43
|
+
import { type MarkdownPluginState } from '../../types';
|
|
44
44
|
|
|
45
45
|
export type MarkdownEditorProps = {
|
|
46
46
|
id: string;
|
|
@@ -211,7 +211,7 @@ export const MarkdownEditor = ({
|
|
|
211
211
|
);
|
|
212
212
|
|
|
213
213
|
return (
|
|
214
|
-
<StackItem.Content toolbar={!!toolbar}>
|
|
214
|
+
<StackItem.Content toolbar={!!toolbar} classNames='is-full min-bs-0'>
|
|
215
215
|
{toolbar && (
|
|
216
216
|
<>
|
|
217
217
|
<EditorToolbar
|
|
@@ -0,0 +1,68 @@
|
|
|
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 classNames='popover-max-width overflow-hidden'>
|
|
32
|
+
<MarkdownPreview subject={subject} />
|
|
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
|
+
};
|