@mp-lb/mdkit 0.3.1 → 0.3.3
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/README.md +8 -2
- package/dist/collaboration/useMdKitCollaboration.d.ts +5 -0
- package/dist/collaboration/useMdKitCollaboration.d.ts.map +1 -0
- package/dist/collaboration/useMdKitCollaboration.js +4 -0
- package/dist/core/checkpointPolicy.d.ts +10 -0
- package/dist/core/checkpointPolicy.d.ts.map +1 -0
- package/dist/core/checkpointPolicy.js +9 -0
- package/dist/core/documentEngine.d.ts +1 -0
- package/dist/core/documentEngine.d.ts.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/document/MdKitConflictPanel.d.ts +5 -0
- package/dist/document/MdKitConflictPanel.d.ts.map +1 -0
- package/dist/document/MdKitConflictPanel.js +4 -0
- package/dist/document/MdKitDocumentToolbar.d.ts +6 -0
- package/dist/document/MdKitDocumentToolbar.d.ts.map +1 -0
- package/dist/document/MdKitDocumentToolbar.js +5 -0
- package/dist/document/documentTypes.d.ts +6 -0
- package/dist/document/documentTypes.d.ts.map +1 -0
- package/dist/document/useMdKitDocument.d.ts +5 -0
- package/dist/document/useMdKitDocument.d.ts.map +1 -0
- package/dist/document/useMdKitDocument.js +4 -0
- package/dist/fastify.d.ts +1 -0
- package/dist/fastify.d.ts.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/markdown/MarkdownBubbleMenu.d.ts +1 -0
- package/dist/markdown/MarkdownBubbleMenu.d.ts.map +1 -0
- package/dist/markdown/MarkdownPasteExtension.d.ts +1 -0
- package/dist/markdown/MarkdownPasteExtension.d.ts.map +1 -0
- package/dist/markdown/MarkdownSearchExtension.d.ts +1 -0
- package/dist/markdown/MarkdownSearchExtension.d.ts.map +1 -0
- package/dist/markdown/MarkdownSearchPanel.d.ts +1 -0
- package/dist/markdown/MarkdownSearchPanel.d.ts.map +1 -0
- package/dist/markdown/MdKitEditor.d.ts +11 -0
- package/dist/markdown/MdKitEditor.d.ts.map +1 -0
- package/dist/markdown/MdKitEditor.js +10 -2
- package/dist/markdown/MdKitView.d.ts +9 -1
- package/dist/markdown/MdKitView.d.ts.map +1 -0
- package/dist/markdown/MdKitView.js +7 -2
- package/dist/markdown/TiptapMarkdownSurface.d.ts +1 -0
- package/dist/markdown/TiptapMarkdownSurface.d.ts.map +1 -0
- package/dist/markdown/TiptapMarkdownSurface.js +10 -22
- package/dist/markdown/createMdKitTiptapExtensions.d.ts +1 -0
- package/dist/markdown/createMdKitTiptapExtensions.d.ts.map +1 -0
- package/dist/markdown/editorDebug.d.ts +1 -0
- package/dist/markdown/editorDebug.d.ts.map +1 -0
- package/dist/markdown/markdownFenceRanges.d.ts +1 -0
- package/dist/markdown/markdownFenceRanges.d.ts.map +1 -0
- package/dist/markdown/normalizeMarkdownSerialization.d.ts +1 -0
- package/dist/markdown/normalizeMarkdownSerialization.d.ts.map +1 -0
- package/dist/markdown/prepareMarkdownForEditorHydration.d.ts +1 -0
- package/dist/markdown/prepareMarkdownForEditorHydration.d.ts.map +1 -0
- package/dist/markdown/preserveMarkdownWhitespace.d.ts +1 -0
- package/dist/markdown/preserveMarkdownWhitespace.d.ts.map +1 -0
- package/dist/markdown/yamlFrontMatter.d.ts +1 -0
- package/dist/markdown/yamlFrontMatter.d.ts.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/theme/MdKitThemeEditor.d.ts +5 -0
- package/dist/theme/MdKitThemeEditor.d.ts.map +1 -0
- package/dist/theme/MdKitThemeEditor.js +4 -0
- package/dist/theme/editorTheme.d.ts +1 -0
- package/dist/theme/editorTheme.d.ts.map +1 -0
- package/dist/theme/editorTheme.js +8 -8
- package/dist/transport/backend.d.ts +13 -0
- package/dist/transport/backend.d.ts.map +1 -0
- package/dist/transport/backend.js +6 -0
- package/dist/transport/fastify.d.ts +5 -0
- package/dist/transport/fastify.d.ts.map +1 -0
- package/dist/transport/fastify.js +4 -0
- package/dist/transport/http.d.ts +1 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/rest.d.ts +6 -0
- package/dist/transport/rest.d.ts.map +1 -0
- package/dist/transport/rest.js +5 -0
- package/dist/transport/store.d.ts +1 -0
- package/dist/transport/store.d.ts.map +1 -0
- package/dist/transport/trpcClient.d.ts +8 -0
- package/dist/transport/trpcClient.d.ts.map +1 -0
- package/dist/transport/trpcClient.js +7 -0
- package/dist/transport/trpcServer.d.ts +6 -0
- package/dist/transport/trpcServer.d.ts.map +1 -0
- package/dist/transport/trpcServer.js +5 -0
- package/dist/trpc/client.d.ts +1 -0
- package/dist/trpc/client.d.ts.map +1 -0
- package/dist/trpc/server.d.ts +1 -0
- package/dist/trpc/server.d.ts.map +1 -0
- package/dist/trpc.d.ts +1 -0
- package/dist/trpc.d.ts.map +1 -0
- package/dist/ui/joinClassNames.d.ts +1 -0
- package/dist/ui/joinClassNames.d.ts.map +1 -0
- package/dist/versioning/VersionHistoryPanel.d.ts +5 -0
- package/dist/versioning/VersionHistoryPanel.d.ts.map +1 -0
- package/dist/versioning/VersionHistoryPanel.js +4 -0
- package/dist/versioning/useMdKitDocumentVersions.d.ts +5 -0
- package/dist/versioning/useMdKitDocumentVersions.d.ts.map +1 -0
- package/dist/versioning/useMdKitDocumentVersions.js +4 -0
- package/dist/yjs/MdKitMarkdownYjs.d.ts +1 -0
- package/dist/yjs/MdKitMarkdownYjs.d.ts.map +1 -0
- package/dist/yjs/index.d.ts +1 -0
- package/dist/yjs/index.d.ts.map +1 -0
- package/package.json +10 -12
- package/src/collaboration/useMdKitCollaboration.ts +528 -0
- package/src/core/checkpointPolicy.ts +107 -0
- package/src/core/documentEngine.ts +175 -0
- package/src/core/index.ts +33 -0
- package/src/document/MdKitConflictPanel.tsx +129 -0
- package/src/document/MdKitDocumentToolbar.tsx +141 -0
- package/src/document/documentTypes.ts +89 -0
- package/src/document/useMdKitDocument.ts +543 -0
- package/src/fastify.ts +6 -0
- package/src/index.ts +89 -0
- package/src/markdown/MarkdownBubbleMenu.tsx +271 -0
- package/src/markdown/MarkdownPasteExtension.ts +81 -0
- package/src/markdown/MarkdownSearchExtension.ts +77 -0
- package/src/markdown/MarkdownSearchPanel.tsx +98 -0
- package/src/markdown/MdKitEditor.tsx +75 -0
- package/src/markdown/MdKitView.tsx +80 -0
- package/src/markdown/TiptapMarkdownSurface.tsx +923 -0
- package/src/markdown/createMdKitTiptapExtensions.ts +42 -0
- package/src/markdown/editorDebug.ts +5 -0
- package/src/markdown/markdownFenceRanges.ts +68 -0
- package/src/markdown/normalizeMarkdownSerialization.ts +55 -0
- package/src/markdown/prepareMarkdownForEditorHydration.ts +23 -0
- package/src/markdown/preserveMarkdownWhitespace.ts +143 -0
- package/src/markdown/yamlFrontMatter.ts +135 -0
- package/src/server.ts +6 -0
- package/src/styles.css +125 -53
- package/src/theme/MdKitThemeEditor.tsx +134 -0
- package/src/theme/editorTheme.ts +72 -0
- package/src/transport/backend.ts +220 -0
- package/src/transport/fastify.ts +57 -0
- package/src/transport/http.ts +126 -0
- package/src/transport/index.ts +12 -0
- package/src/transport/rest.ts +80 -0
- package/src/transport/store.ts +45 -0
- package/src/transport/trpcClient.ts +90 -0
- package/src/transport/trpcServer.ts +66 -0
- package/src/trpc/client.ts +11 -0
- package/src/trpc/server.ts +12 -0
- package/src/trpc.ts +11 -0
- package/src/ui/joinClassNames.ts +3 -0
- package/src/versioning/VersionHistoryPanel.tsx +146 -0
- package/src/versioning/useMdKitDocumentVersions.ts +146 -0
- package/src/yjs/MdKitMarkdownYjs.ts +111 -0
- package/src/yjs/index.ts +8 -0
- package/docs/.vitepress/config.ts +0 -47
- package/docs/api.md +0 -512
- package/docs/architecture.md +0 -96
- package/docs/collaboration-persistence.md +0 -147
- package/docs/index.md +0 -341
- package/docs/permissions.md +0 -139
- package/docs/plain-text.md +0 -131
- package/docs/rest.md +0 -98
- package/docs/shadcn.md +0 -125
- package/docs/styling.md +0 -373
- package/docs/use-cases.md +0 -148
package/README.md
CHANGED
|
@@ -8,6 +8,9 @@ Frontend primitives for document editing flows:
|
|
|
8
8
|
- `useMdKitDocumentVersions` and `VersionHistoryPanel` for version browsing and restore flows
|
|
9
9
|
- `useMdKitCollaboration` for wiring the same editor into a Hocuspocus/Yjs session
|
|
10
10
|
|
|
11
|
+
📖 **Full documentation: [mdkit.mp-lb.dev](https://mdkit.mp-lb.dev/)** — guide,
|
|
12
|
+
recipes, and the generated [API reference](https://mdkit.mp-lb.dev/docs/reference).
|
|
13
|
+
|
|
11
14
|
## Install
|
|
12
15
|
|
|
13
16
|
```bash
|
|
@@ -129,5 +132,8 @@ package in unconnected and connected modes.
|
|
|
129
132
|
|
|
130
133
|
## Package Docs
|
|
131
134
|
|
|
132
|
-
Published library docs live
|
|
133
|
-
|
|
135
|
+
Published library docs live under [`docs/public/`](./docs/public) — the
|
|
136
|
+
hand-written guide plus the TypeDoc-generated [`reference/`](./docs/public/reference)
|
|
137
|
+
(never hand-edited; run `pnpm docs:gen` to regenerate). They are rendered as a
|
|
138
|
+
site at [mdkit.mp-lb.dev](https://mdkit.mp-lb.dev/). Internal project notes live
|
|
139
|
+
in the repository under [`../../docs/mdkit`](../../docs/mdkit).
|
|
@@ -7,4 +7,9 @@ export type UseMdKitCollaborationOptions = {
|
|
|
7
7
|
getToken?: () => Promise<string | null>;
|
|
8
8
|
resolveRoomName?: (documentId: string) => string;
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Creates a Hocuspocus/Yjs collaboration session for {@link MdKitEditor},
|
|
12
|
+
* managing the provider connection, local participant, and presence.
|
|
13
|
+
*/
|
|
10
14
|
export declare const useMdKitCollaboration: (options: UseMdKitCollaborationOptions) => MdKitCollaborationSession | null;
|
|
15
|
+
//# sourceMappingURL=useMdKitCollaboration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMdKitCollaboration.d.ts","sourceRoot":"","sources":["../../src/collaboration/useMdKitCollaboration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,6BAA6B,EAE7B,yBAAyB,EAE1B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE,6BAA6B,CAAC;IAC5C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD,CAAC;AA6KF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,4BAA4B,KACpC,yBAAyB,GAAG,IA2U9B,CAAC"}
|
|
@@ -117,6 +117,10 @@ const setProviderUser = (provider, collaborator) => {
|
|
|
117
117
|
name: collaborator.name,
|
|
118
118
|
});
|
|
119
119
|
};
|
|
120
|
+
/**
|
|
121
|
+
* Creates a Hocuspocus/Yjs collaboration session for {@link MdKitEditor},
|
|
122
|
+
* managing the provider connection, local participant, and presence.
|
|
123
|
+
*/
|
|
120
124
|
export const useMdKitCollaboration = (options) => {
|
|
121
125
|
const { collaborator, documentId, enabled = true, endpoint, getToken, resolveRoomName, } = options;
|
|
122
126
|
const [status, setStatus] = useState("disconnected");
|
|
@@ -17,9 +17,19 @@ export type MdKitSmartCheckpointPolicyOptions = {
|
|
|
17
17
|
minIntervalMs?: number;
|
|
18
18
|
};
|
|
19
19
|
export declare const measureMdKitEditDistance: (left: string, right: string) => number;
|
|
20
|
+
/**
|
|
21
|
+
* Factories for the policy that decides when a saved document becomes a
|
|
22
|
+
* checkpoint. Pass the result to `createMdKitBackend`, not to your store.
|
|
23
|
+
*
|
|
24
|
+
* @remarks
|
|
25
|
+
* `smart()` applies the default autosave-friendly heuristic; `function()`
|
|
26
|
+
* receives mdkit's computed edit distance alongside the raw content so you can
|
|
27
|
+
* build a custom rule.
|
|
28
|
+
*/
|
|
20
29
|
export declare const CheckpointPolicy: {
|
|
21
30
|
readonly always: () => MdKitCheckpointPolicy;
|
|
22
31
|
readonly function: (shouldCheckpoint: MdKitCheckpointPolicy["shouldCheckpoint"]) => MdKitCheckpointPolicy;
|
|
23
32
|
readonly never: () => MdKitCheckpointPolicy;
|
|
24
33
|
readonly smart: (options?: MdKitSmartCheckpointPolicyOptions) => MdKitCheckpointPolicy;
|
|
25
34
|
};
|
|
35
|
+
//# sourceMappingURL=checkpointPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpointPolicy.d.ts","sourceRoot":"","sources":["../../src/core/checkpointPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,0BAA0B,GAAG;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACtD,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,UAAU,EAAE,uBAAuB,CAAC;IACpC,WAAW,EAAE,wBAAwB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,CACd,KAAK,EAAE,0BAA0B,GAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAKF,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,WAiCnE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;2BACf,qBAAqB;0CAIb,qBAAqB,CAAC,kBAAkB,CAAC,KAC1D,qBAAqB;0BAGb,qBAAqB;+BAIrB,iCAAiC,KACzC,qBAAqB;CAiBhB,CAAC"}
|
|
@@ -22,6 +22,15 @@ export const measureMdKitEditDistance = (left, right) => {
|
|
|
22
22
|
}
|
|
23
23
|
return previous[right.length] ?? 0;
|
|
24
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Factories for the policy that decides when a saved document becomes a
|
|
27
|
+
* checkpoint. Pass the result to `createMdKitBackend`, not to your store.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* `smart()` applies the default autosave-friendly heuristic; `function()`
|
|
31
|
+
* receives mdkit's computed edit distance alongside the raw content so you can
|
|
32
|
+
* build a custom rule.
|
|
33
|
+
*/
|
|
25
34
|
export const CheckpointPolicy = {
|
|
26
35
|
always: () => ({
|
|
27
36
|
shouldCheckpoint: () => true,
|
|
@@ -36,3 +36,4 @@ export declare const detectMdKitDocumentConflict: (input: {
|
|
|
36
36
|
export declare const createMdKitDocumentRecord: (input?: CreateMdKitDocumentRecordInput) => MdKitDocumentRecord;
|
|
37
37
|
export declare const writeMdKitDocumentRecord: (record: MdKitDocumentRecord, input: WriteMdKitDocumentRecordInput) => WriteMdKitDocumentRecordResult;
|
|
38
38
|
export declare const restoreMdKitDocumentVersion: (record: MdKitDocumentRecord, input: RestoreMdKitDocumentVersionInput) => RestoreMdKitDocumentVersionResult;
|
|
39
|
+
//# sourceMappingURL=documentEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentEngine.d.ts","sourceRoot":"","sources":["../../src/core/documentEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,QAAQ,EAAE,0BAA0B,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,yBAAyB,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,wBAAwB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,eAAe,EAAE,0BAA0B,CAAC;IAC5C,MAAM,EAAE,wBAAwB,CAAC;CAClC,CAAC;AAMF,eAAO,MAAM,0BAA0B,GACrC,SAAS,yBAAyB,GAAG,SAAS,kBACD,CAAC;AAEhD,eAAO,MAAM,2BAA2B,GAAI,OAAO;IACjD,WAAW,EAAE,yBAAyB,CAAC;IACvC,cAAc,EAAE,yBAAyB,CAAC;CAC3C,YAEiD,CAAC;AAsBnD,eAAO,MAAM,yBAAyB,GACpC,QAAO,8BAAmC,KACzC,mBAoBF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,mBAAmB,EAC3B,OAAO,6BAA6B,KACnC,8BA4CF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,QAAQ,mBAAmB,EAC3B,OAAO,gCAAgC,KACtC,iCAqBF,CAAC"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export { CheckpointPolicy, measureMdKitEditDistance, } from "./checkpointPolicy.
|
|
|
3
3
|
export type { CreateMdKitDocumentRecordInput, MdKitDocumentRecord, RestoreMdKitDocumentVersionInput, RestoreMdKitDocumentVersionResult, WriteMdKitDocumentRecordInput, WriteMdKitDocumentRecordResult, } from "./documentEngine.js";
|
|
4
4
|
export type { MdKitCheckpointPolicy, MdKitCheckpointPolicyInput, MdKitSmartCheckpointPolicyOptions, } from "./checkpointPolicy.js";
|
|
5
5
|
export type { MdKitDocumentSnapshot, MdKitDocumentVersionDetail, MdKitDocumentVersionSummary, MdKitDocumentVersionToken, MdKitDocumentWriteInput, MdKitDocumentWriteResult, } from "../document/documentTypes.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,8BAA8B,EAC9B,mBAAmB,EACnB,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC"}
|
|
@@ -4,4 +4,9 @@ export type MdKitConflictPanelProps = {
|
|
|
4
4
|
document: MdKitDocumentController;
|
|
5
5
|
title?: string;
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Base panel for resolving a save conflict. Previews remote and local content
|
|
9
|
+
* and keeps one side. Renders `null` when the document has no conflict.
|
|
10
|
+
*/
|
|
7
11
|
export declare const MdKitConflictPanel: ({ className, document, title, }: MdKitConflictPanelProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
12
|
+
//# sourceMappingURL=MdKitConflictPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MdKitConflictPanel.d.ts","sourceRoot":"","sources":["../../src/document/MdKitConflictPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGlE,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,iCAIhC,uBAAuB,mDA8GzB,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from "react";
|
|
3
3
|
import { joinClassNames } from "../ui/joinClassNames.js";
|
|
4
|
+
/**
|
|
5
|
+
* Base panel for resolving a save conflict. Previews remote and local content
|
|
6
|
+
* and keeps one side. Renders `null` when the document has no conflict.
|
|
7
|
+
*/
|
|
4
8
|
export const MdKitConflictPanel = ({ className, document, title = "Document conflict", }) => {
|
|
5
9
|
const [pendingAction, setPendingAction] = useState(null);
|
|
6
10
|
const [activePreview, setActivePreview] = useState("remote");
|
|
@@ -10,4 +10,10 @@ export type MdKitDocumentToolbarProps = {
|
|
|
10
10
|
showConflictActions?: boolean;
|
|
11
11
|
versions?: MdKitDocumentVersionsController | null;
|
|
12
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* Unstyled workflow controls for a connected document: save/collaboration
|
|
15
|
+
* status plus entry points for version history and conflict resolution. Starter
|
|
16
|
+
* UI — drop it for your own controls when it doesn't fit.
|
|
17
|
+
*/
|
|
13
18
|
export declare const MdKitDocumentToolbar: ({ className, collaboration, document, onOpenConflict, onOpenVersionHistory, showConflictActions, versions, }: MdKitDocumentToolbarProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=MdKitDocumentToolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MdKitDocumentToolbar.d.ts","sourceRoot":"","sources":["../../src/document/MdKitDocumentToolbar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAG9F,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACjD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5C,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;CACnD,CAAC;AAUF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,8GAQlC,yBAAyB,4CAuG3B,CAAC"}
|
|
@@ -7,6 +7,11 @@ const formatUpdatedAt = (updatedAt) => {
|
|
|
7
7
|
}
|
|
8
8
|
return `Saved ${new Date(updatedAt).toLocaleTimeString()}`;
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Unstyled workflow controls for a connected document: save/collaboration
|
|
12
|
+
* status plus entry points for version history and conflict resolution. Starter
|
|
13
|
+
* UI — drop it for your own controls when it doesn't fit.
|
|
14
|
+
*/
|
|
10
15
|
export const MdKitDocumentToolbar = ({ className, collaboration, document, onOpenConflict, onOpenVersionHistory, showConflictActions = false, versions, }) => {
|
|
11
16
|
const [pendingAction, setPendingAction] = useState(null);
|
|
12
17
|
const otherCollaboratorCount = collaboration?.otherParticipants.length ?? 0;
|
|
@@ -31,6 +31,11 @@ export type MdKitDocumentVersionSummary = {
|
|
|
31
31
|
export type MdKitDocumentVersionDetail = MdKitDocumentVersionSummary & {
|
|
32
32
|
content: string;
|
|
33
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Storage contract the document hooks talk to. Implement it over tRPC, REST, or
|
|
36
|
+
* anything else; only `readDocument`/`writeDocument` are required, the
|
|
37
|
+
* checkpoint methods are optional and enable version-history UI.
|
|
38
|
+
*/
|
|
34
39
|
export interface MdKitDocumentAdapter {
|
|
35
40
|
readDocument(documentId: string): Promise<MdKitDocumentSnapshot>;
|
|
36
41
|
writeDocument(input: MdKitDocumentWriteInput): Promise<MdKitDocumentWriteResult>;
|
|
@@ -62,3 +67,4 @@ export type MdKitCollaborationSession = {
|
|
|
62
67
|
roomName: string;
|
|
63
68
|
status: MdKitCollaborationStatus;
|
|
64
69
|
};
|
|
70
|
+
//# sourceMappingURL=documentTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentTypes.d.ts","sourceRoot":"","sources":["../../src/document/documentTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAE9B,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,yBAAyB,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC;IACE,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GACD;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEN,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,2BAA2B,GAAG;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjE,aAAa,CACX,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,cAAc,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpE,oBAAoB,CAAC,CACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAC1C,mBAAmB,CAAC,CAAC,KAAK,EAAE;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,WAAW,GACX,cAAc,CAAC;AAEnB,MAAM,MAAM,6BAA6B,GAAG;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,GAAG;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,6BAA6B,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,0BAA0B,EAAE,CAAC;IAChD,YAAY,EAAE,0BAA0B,EAAE,CAAC;IAC3C,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,wBAAwB,CAAC;CAClC,CAAC"}
|
|
@@ -30,4 +30,9 @@ export type MdKitDocumentController = {
|
|
|
30
30
|
value: string;
|
|
31
31
|
version: MdKitDocumentVersionToken;
|
|
32
32
|
};
|
|
33
|
+
/**
|
|
34
|
+
* Connects an editor to a storage adapter: loads the document, debounces
|
|
35
|
+
* autosave, tracks dirty/save status, and surfaces conflicts for resolution.
|
|
36
|
+
*/
|
|
33
37
|
export declare const useMdKitDocument: (options: UseMdKitDocumentOptions) => MdKitDocumentController;
|
|
38
|
+
//# sourceMappingURL=useMdKitDocument.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMdKitDocument.d.ts","sourceRoot":"","sources":["../../src/document/useMdKitDocument.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,IAAI,CACX,oBAAoB,EACpB,cAAc,GAAG,eAAe,GAAG,gBAAgB,CACpD,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,yBAAyB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACrD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,yBAAyB,CAAC;CACpC,CAAC;AAQF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,uBAAuB,KAC/B,uBAueF,CAAC"}
|
|
@@ -4,6 +4,10 @@ const emptyDocumentState = {
|
|
|
4
4
|
updatedAt: null,
|
|
5
5
|
version: null,
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Connects an editor to a storage adapter: loads the document, debounces
|
|
9
|
+
* autosave, tracks dirty/save status, and surfaces conflicts for resolution.
|
|
10
|
+
*/
|
|
7
11
|
export const useMdKitDocument = (options) => {
|
|
8
12
|
const { adapter, debounceMs = 1000, documentId, pollMs = 2000 } = options;
|
|
9
13
|
const [local, setLocal] = useState("");
|
package/dist/fastify.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { registerMdKitFastify } from "./transport/fastify.js";
|
|
2
2
|
export type { RegisterMdKitFastifyOptions } from "./transport/fastify.js";
|
|
3
3
|
export type { MdKitRestoreDocumentVersionInput, MdKitTransportStore, } from "./transport/store.js";
|
|
4
|
+
//# sourceMappingURL=fastify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EACV,gCAAgC,EAChC,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,9 @@ export { useMdKitDocumentVersions } from "./versioning/useMdKitDocumentVersions.
|
|
|
15
15
|
export { yjs } from "./yjs/index.js";
|
|
16
16
|
export type { MdKitCheckpointPolicy, MdKitCheckpointPolicyInput, MdKitSmartCheckpointPolicyOptions, } from "./core/checkpointPolicy.js";
|
|
17
17
|
export type { CreateMdKitDocumentRecordInput, MdKitDocumentRecord, RestoreMdKitDocumentVersionInput, RestoreMdKitDocumentVersionResult, WriteMdKitDocumentRecordInput, WriteMdKitDocumentRecordResult, } from "./core/documentEngine.js";
|
|
18
|
-
export type {
|
|
18
|
+
export type { UseMdKitCollaborationOptions } from "./collaboration/useMdKitCollaboration.js";
|
|
19
|
+
export type { UseMdKitDocumentOptions } from "./document/useMdKitDocument.js";
|
|
20
|
+
export type { MdKitCollaborationParticipant, MdKitCollaborationPresence, MdKitCollaborationSession, MdKitCollaborationStatus, MdKitDocumentAdapter, MdKitDocumentSnapshot, MdKitDocumentVersionDetail, MdKitDocumentVersionSummary, MdKitDocumentVersionToken, MdKitDocumentWriteInput, MdKitDocumentWriteResult, } from "./document/documentTypes.js";
|
|
19
21
|
export type { MdKitDocumentConflictDetails, MdKitDocumentController, } from "./document/useMdKitDocument.js";
|
|
20
22
|
export type { MdKitConflictPanelProps } from "./document/MdKitConflictPanel.js";
|
|
21
23
|
export type { MdKitDocumentToolbarProps } from "./document/MdKitDocumentToolbar.js";
|
|
@@ -29,3 +31,4 @@ export type { MdKitEditorTheme, MdKitEditorThemeStyle, } from "./theme/editorThe
|
|
|
29
31
|
export type { MdKitDocumentVersionsController, UseMdKitDocumentVersionsOptions, } from "./versioning/useMdKitDocumentVersions.js";
|
|
30
32
|
export type { VersionHistoryPanelProps } from "./versioning/VersionHistoryPanel.js";
|
|
31
33
|
export type { MdKitMarkdownYjsOptions } from "./yjs/index.js";
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,8BAA8B,EAC9B,mBAAmB,EACnB,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,YAAY,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,YAAY,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EACV,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EACV,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -7,3 +7,4 @@ type BubbleMenuShouldShowProps = Parameters<NonNullable<BubbleMenuProps["shouldS
|
|
|
7
7
|
export declare const shouldShowMarkdownBubbleMenu: ({ editor, element, from, state, to, view, }: BubbleMenuShouldShowProps) => boolean;
|
|
8
8
|
export declare const MarkdownBubbleMenu: ({ editor }: MarkdownBubbleMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
export {};
|
|
10
|
+
//# sourceMappingURL=MarkdownBubbleMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownBubbleMenu.d.ts","sourceRoot":"","sources":["../../src/markdown/MarkdownBubbleMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgBvE,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,yBAAyB,GAAG,UAAU,CACzC,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAC3C,CAAC,CAAC,CAAC,CAAC;AA0DL,eAAO,MAAM,4BAA4B,GAAI,6CAO1C,yBAAyB,YAY3B,CAAC;AAqEF,eAAO,MAAM,kBAAkB,GAAI,YAAY,uBAAuB,4CAoGrE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownPasteExtension.d.ts","sourceRoot":"","sources":["../../src/markdown/MarkdownPasteExtension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAgCzC,eAAO,MAAM,8BAA8B,GAAI,MAAM,MAAM,YAU1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,qBAoCjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownSearchExtension.d.ts","sourceRoot":"","sources":["../../src/markdown/MarkdownSearchExtension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAc,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAOF,eAAO,MAAM,uBAAuB,0BAEnC,CAAC;AAkBF,eAAO,MAAM,uBAAuB,qBAyClC,CAAC"}
|
|
@@ -11,3 +11,4 @@ type MarkdownSearchPanelProps = {
|
|
|
11
11
|
};
|
|
12
12
|
export declare const MarkdownSearchPanel: ({ activeMatchNumber, inputRef, matchCount, onClose, onPrevious, onNext, onQueryChange, query, }: MarkdownSearchPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
export {};
|
|
14
|
+
//# sourceMappingURL=MarkdownSearchPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownSearchPanel.d.ts","sourceRoot":"","sources":["../../src/markdown/MarkdownSearchPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA4B,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjE,KAAK,wBAAwB,GAAG;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,iGASjC,wBAAwB,4CA0E1B,CAAC"}
|
|
@@ -3,7 +3,9 @@ import type { MdKitCollaborationSession } from "../document/documentTypes.js";
|
|
|
3
3
|
import type { MdKitEditorDebugEvent } from "./editorDebug.js";
|
|
4
4
|
type MdKitEditorBaseProps = {
|
|
5
5
|
className?: string;
|
|
6
|
+
documentMargins?: boolean;
|
|
6
7
|
fillHeight?: boolean;
|
|
8
|
+
fixedWidth?: boolean;
|
|
7
9
|
ignoreYamlFrontMatter?: boolean;
|
|
8
10
|
instanceKey?: string | number;
|
|
9
11
|
onDebugEvent?: (event: MdKitEditorDebugEvent) => void;
|
|
@@ -23,5 +25,14 @@ type CollaborativeMdKitEditorProps = MdKitEditorBaseProps & {
|
|
|
23
25
|
value?: string;
|
|
24
26
|
};
|
|
25
27
|
export type MdKitEditorProps = CollaborativeMdKitEditorProps | LocalMdKitEditorProps;
|
|
28
|
+
/**
|
|
29
|
+
* Markdown-first rich text editor. Behaves like a controlled textarea in local
|
|
30
|
+
* mode and switches to a Yjs-backed engine when given a collaboration session.
|
|
31
|
+
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* In collaborative mode the Yjs document is the content source; external
|
|
34
|
+
* `value` changes are not applied into the shared document.
|
|
35
|
+
*/
|
|
26
36
|
export declare const MdKitEditor: (props: MdKitEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
37
|
export {};
|
|
38
|
+
//# sourceMappingURL=MdKitEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MdKitEditor.d.ts","sourceRoot":"","sources":["../../src/markdown/MdKitEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAG3D,KAAK,oBAAoB,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACtD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,KAAK,qBAAqB,GAAG,oBAAoB,GAAG;IAClD,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,6BAA6B,GAAG,oBAAoB,GAAG;IAC1D,aAAa,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,6BAA6B,GAC7B,qBAAqB,CAAC;AAE1B;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CA8BlD,CAAC"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { joinClassNames } from "../ui/joinClassNames.js";
|
|
3
3
|
import { TiptapMarkdownSurface } from "./TiptapMarkdownSurface.js";
|
|
4
|
+
/**
|
|
5
|
+
* Markdown-first rich text editor. Behaves like a controlled textarea in local
|
|
6
|
+
* mode and switches to a Yjs-backed engine when given a collaboration session.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* In collaborative mode the Yjs document is the content source; external
|
|
10
|
+
* `value` changes are not applied into the shared document.
|
|
11
|
+
*/
|
|
4
12
|
export const MdKitEditor = (props) => {
|
|
5
|
-
const { className, fillHeight = false, readOnly = false, style, ...surfaceProps } = props;
|
|
6
|
-
return (_jsx("div", { className: joinClassNames("mp-lb-mdkit-markdown-editor", fillHeight && "mp-lb-mdkit-markdown-editor-fill-height", className), "data-read-only": readOnly ? "true" : undefined, style: style, children: _jsx(TiptapMarkdownSurface, { readOnly: readOnly, ...surfaceProps }, props.instanceKey) }));
|
|
13
|
+
const { className, documentMargins = false, fillHeight = false, fixedWidth = false, readOnly = false, style, ...surfaceProps } = props;
|
|
14
|
+
return (_jsx("div", { className: joinClassNames("mp-lb-mdkit-markdown-editor", documentMargins && "mp-lb-mdkit-markdown-editor-document-margins", fillHeight && "mp-lb-mdkit-markdown-editor-fill-height", fixedWidth && "mp-lb-mdkit-markdown-editor-fixed-width", className), "data-read-only": readOnly ? "true" : undefined, style: style, children: _jsx(TiptapMarkdownSurface, { readOnly: readOnly, ...surfaceProps }, props.instanceKey) }));
|
|
7
15
|
};
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import type { CSSProperties } from "react";
|
|
2
2
|
export type MdKitViewProps = {
|
|
3
3
|
className?: string;
|
|
4
|
+
documentMargins?: boolean;
|
|
4
5
|
fillHeight?: boolean;
|
|
6
|
+
fixedWidth?: boolean;
|
|
5
7
|
ignoreYamlFrontMatter?: boolean;
|
|
6
8
|
placeholder?: string;
|
|
7
9
|
style?: CSSProperties;
|
|
8
10
|
value: string;
|
|
9
11
|
};
|
|
10
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Read-only markdown surface that mirrors {@link MdKitEditor}'s styling and
|
|
14
|
+
* sizing contract without mounting the editor runtime. Use it for previews and
|
|
15
|
+
* restored checkpoints.
|
|
16
|
+
*/
|
|
17
|
+
export declare const MdKitView: ({ className, documentMargins, fillHeight, fixedWidth, ignoreYamlFrontMatter, placeholder, style, value, }: MdKitViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=MdKitView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MdKitView.d.ts","sourceRoot":"","sources":["../../src/markdown/MdKitView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,2GASvB,cAAc,4CAgDhB,CAAC"}
|
|
@@ -3,12 +3,17 @@ import ReactMarkdown from "react-markdown";
|
|
|
3
3
|
import remarkGfm from "remark-gfm";
|
|
4
4
|
import { joinClassNames } from "../ui/joinClassNames.js";
|
|
5
5
|
import { removeYamlFrontMatter } from "./yamlFrontMatter.js";
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Read-only markdown surface that mirrors {@link MdKitEditor}'s styling and
|
|
8
|
+
* sizing contract without mounting the editor runtime. Use it for previews and
|
|
9
|
+
* restored checkpoints.
|
|
10
|
+
*/
|
|
11
|
+
export const MdKitView = ({ className, documentMargins = false, fillHeight = false, fixedWidth = false, ignoreYamlFrontMatter = false, placeholder, style, value, }) => {
|
|
7
12
|
const markdownValue = ignoreYamlFrontMatter
|
|
8
13
|
? removeYamlFrontMatter(value)
|
|
9
14
|
: value;
|
|
10
15
|
const renderedValue = markdownValue.trim().length > 0 ? markdownValue : (placeholder ?? "");
|
|
11
|
-
return (_jsx("div", { className: joinClassNames("mp-lb-mdkit-markdown-editor", "mp-lb-mdkit-markdown-view", fillHeight && "mp-lb-mdkit-markdown-editor-fill-height", className), "data-read-only": "true", style: style, children: _jsx("div", { className: "mp-lb-mdkit-editor-shell", children: _jsx("div", { className: "mp-lb-mdkit-editor-surface", children: renderedValue.length > 0 ? (_jsx("div", { className: "mp-lb-mdkit-tiptap mp-lb-mdkit-view-content", children: _jsx(ReactMarkdown, { components: {
|
|
16
|
+
return (_jsx("div", { className: joinClassNames("mp-lb-mdkit-markdown-editor", "mp-lb-mdkit-markdown-view", documentMargins && "mp-lb-mdkit-markdown-editor-document-margins", fillHeight && "mp-lb-mdkit-markdown-editor-fill-height", fixedWidth && "mp-lb-mdkit-markdown-editor-fixed-width", className), "data-read-only": "true", style: style, children: _jsx("div", { className: "mp-lb-mdkit-editor-shell", children: _jsx("div", { className: "mp-lb-mdkit-editor-surface", children: renderedValue.length > 0 ? (_jsx("div", { className: "mp-lb-mdkit-tiptap mp-lb-mdkit-view-content", children: _jsx(ReactMarkdown, { components: {
|
|
12
17
|
a: ({ children, ...linkProps }) => (_jsx("a", { ...linkProps, rel: "noopener noreferrer", target: "_blank", children: children })),
|
|
13
18
|
}, remarkPlugins: [remarkGfm], children: renderedValue }) })) : (_jsx("div", { className: "mp-lb-mdkit-editor-empty" })) }) }) }));
|
|
14
19
|
};
|
|
@@ -25,3 +25,4 @@ type CollaborativeTiptapMarkdownSurfaceProps = {
|
|
|
25
25
|
type TiptapMarkdownSurfaceProps = CollaborativeTiptapMarkdownSurfaceProps | LocalTiptapMarkdownSurfaceProps;
|
|
26
26
|
export declare const TiptapMarkdownSurface: (props: TiptapMarkdownSurfaceProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
27
|
export {};
|
|
28
|
+
//# sourceMappingURL=TiptapMarkdownSurface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TiptapMarkdownSurface.d.ts","sourceRoot":"","sources":["../../src/markdown/TiptapMarkdownSurface.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAe3D,KAAK,+BAA+B,GAAG;IACrC,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACtD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,uCAAuC,GAAG;IAC7C,aAAa,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACtD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,0BAA0B,GAC3B,uCAAuC,GACvC,+BAA+B,CAAC;AAyEpC,eAAO,MAAM,qBAAqB,GAAI,OAAO,0BAA0B,4CA2xBtE,CAAC"}
|
|
@@ -18,6 +18,7 @@ const describeElement = (element) => {
|
|
|
18
18
|
};
|
|
19
19
|
const describeEventTarget = (target) => target instanceof Element ? describeElement(target) : String(target);
|
|
20
20
|
const isInteractiveElement = (target) => !!target.closest("a,button,input,select,textarea,[contenteditable='false']");
|
|
21
|
+
const isNativeFocusTarget = (target) => !!target.closest("a[href],button,input,select,textarea,[contenteditable='true'],[tabindex]:not([tabindex='-1'])");
|
|
21
22
|
const createEditorDebugSnapshot = (editor, phase) => {
|
|
22
23
|
const activeElement = typeof document === "undefined" || !document.activeElement
|
|
23
24
|
? null
|
|
@@ -75,7 +76,6 @@ export const TiptapMarkdownSurface = (props) => {
|
|
|
75
76
|
const isApplyingExternalValueRef = useRef(false);
|
|
76
77
|
const pendingControlledEchoesRef = useRef(new Set());
|
|
77
78
|
const pendingContentFocusRef = useRef(null);
|
|
78
|
-
const shouldFocusAfterPointerRef = useRef(false);
|
|
79
79
|
const [searchOpen, setSearchOpen] = useState(false);
|
|
80
80
|
const [searchQuery, setSearchQuery] = useState("");
|
|
81
81
|
const [activeSearchMatchIndex, setActiveSearchMatchIndex] = useState(0);
|
|
@@ -340,10 +340,13 @@ export const TiptapMarkdownSurface = (props) => {
|
|
|
340
340
|
if (!editor) {
|
|
341
341
|
return;
|
|
342
342
|
}
|
|
343
|
-
const
|
|
343
|
+
const blurEditorOnExternalClick = (event) => {
|
|
344
344
|
if (editor.isDestroyed) {
|
|
345
345
|
return;
|
|
346
346
|
}
|
|
347
|
+
if (!editor.isFocused && !editor.view.hasFocus()) {
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
347
350
|
const target = event.target;
|
|
348
351
|
if (!(target instanceof Element)) {
|
|
349
352
|
return;
|
|
@@ -352,15 +355,14 @@ export const TiptapMarkdownSurface = (props) => {
|
|
|
352
355
|
target.closest(".mp-lb-mdkit-toolbar")) {
|
|
353
356
|
return;
|
|
354
357
|
}
|
|
358
|
+
if (isNativeFocusTarget(target)) {
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
355
361
|
editor.commands.blur();
|
|
356
362
|
};
|
|
357
|
-
document.addEventListener("
|
|
358
|
-
capture: true,
|
|
359
|
-
});
|
|
363
|
+
document.addEventListener("click", blurEditorOnExternalClick);
|
|
360
364
|
return () => {
|
|
361
|
-
document.removeEventListener("
|
|
362
|
-
capture: true,
|
|
363
|
-
});
|
|
365
|
+
document.removeEventListener("click", blurEditorOnExternalClick);
|
|
364
366
|
};
|
|
365
367
|
}, [editor]);
|
|
366
368
|
useEffect(() => {
|
|
@@ -483,7 +485,6 @@ export const TiptapMarkdownSurface = (props) => {
|
|
|
483
485
|
};
|
|
484
486
|
const queueEditorFocusAtPosition = (position) => {
|
|
485
487
|
emitDebugEvent("focus-queued", {
|
|
486
|
-
pendingFromPointer: shouldFocusAfterPointerRef.current,
|
|
487
488
|
requestedPosition: position,
|
|
488
489
|
});
|
|
489
490
|
window.setTimeout(() => {
|
|
@@ -569,7 +570,6 @@ export const TiptapMarkdownSurface = (props) => {
|
|
|
569
570
|
}
|
|
570
571
|
const requestedPosition = getEditorPositionAtClientPoint(event.clientX, event.clientY, event.target);
|
|
571
572
|
event.preventDefault();
|
|
572
|
-
shouldFocusAfterPointerRef.current = false;
|
|
573
573
|
emitDebugEvent("hitbox-pointer-down", {
|
|
574
574
|
defaultPrevented: event.defaultPrevented,
|
|
575
575
|
pointerType: event.pointerType,
|
|
@@ -582,7 +582,6 @@ export const TiptapMarkdownSurface = (props) => {
|
|
|
582
582
|
const pendingContentFocus = pendingContentFocusRef.current;
|
|
583
583
|
if (readOnly) {
|
|
584
584
|
pendingContentFocusRef.current = null;
|
|
585
|
-
shouldFocusAfterPointerRef.current = false;
|
|
586
585
|
return;
|
|
587
586
|
}
|
|
588
587
|
if (pendingContentFocus &&
|
|
@@ -598,17 +597,6 @@ export const TiptapMarkdownSurface = (props) => {
|
|
|
598
597
|
}
|
|
599
598
|
return;
|
|
600
599
|
}
|
|
601
|
-
if (!shouldFocusAfterPointerRef.current) {
|
|
602
|
-
return;
|
|
603
|
-
}
|
|
604
|
-
event.preventDefault();
|
|
605
|
-
shouldFocusAfterPointerRef.current = false;
|
|
606
|
-
emitDebugEvent("hitbox-pointer-up", {
|
|
607
|
-
defaultPrevented: event.defaultPrevented,
|
|
608
|
-
pointerType: event.pointerType,
|
|
609
|
-
target: describeEventTarget(event.target),
|
|
610
|
-
});
|
|
611
|
-
queueEditorFocusAtPosition(getEditorPositionAtClientPoint(event.clientX, event.clientY, event.target));
|
|
612
600
|
};
|
|
613
601
|
return (_jsx("div", { className: "mp-lb-mdkit-editor-shell", children: _jsxs("div", { ref: editorSurfaceRef, className: "mp-lb-mdkit-editor-surface", onPointerDownCapture: focusEditorBackgroundOnPointerDown, onPointerUpCapture: focusEditorBackgroundOnPointerUp, children: [search && searchOpen ? (_jsx(MarkdownSearchPanel, { activeMatchNumber: activeSearchMatchNumber, inputRef: searchInputRef, matchCount: searchMatches.length, onClose: closeSearch, onNext: selectNextSearchMatch, onPrevious: selectPreviousSearchMatch, onQueryChange: setSearchQuery, query: searchQuery })) : null, _jsx(MarkdownBubbleMenu, { editor: editor }), _jsx(EditorContent, { editor: editor })] }) }));
|
|
614
602
|
};
|
|
@@ -6,3 +6,4 @@ type CreateMdKitTiptapExtensionsOptions = {
|
|
|
6
6
|
export declare const defaultMdKitMarkdownPlaceholder = "Start writing...";
|
|
7
7
|
export declare const createMdKitTiptapExtensions: ({ placeholder, undoRedo, }?: CreateMdKitTiptapExtensionsOptions) => Extensions;
|
|
8
8
|
export {};
|
|
9
|
+
//# sourceMappingURL=createMdKitTiptapExtensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMdKitTiptapExtensions.d.ts","sourceRoot":"","sources":["../../src/markdown/createMdKitTiptapExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C,KAAK,kCAAkC,GAAG;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,+BAA+B,qBAAqB,CAAC;AAElE,eAAO,MAAM,2BAA2B,GAAI,6BAGzC,kCAAuC,KAAG,UAwB5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editorDebug.d.ts","sourceRoot":"","sources":["../../src/markdown/editorDebug.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
|
|
@@ -4,3 +4,4 @@ export type MarkdownFenceRange = {
|
|
|
4
4
|
};
|
|
5
5
|
export declare const getMarkdownFenceRanges: (markdown: string) => MarkdownFenceRange[];
|
|
6
6
|
export declare const isInsideMarkdownFence: (index: number, ranges: MarkdownFenceRange[]) => boolean;
|
|
7
|
+
//# sourceMappingURL=markdownFenceRanges.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdownFenceRanges.d.ts","sourceRoot":"","sources":["../../src/markdown/markdownFenceRanges.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAIF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,KACf,kBAAkB,EAqDpB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,QAAQ,kBAAkB,EAAE,YAC4C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeMarkdownSerialization.d.ts","sourceRoot":"","sources":["../../src/markdown/normalizeMarkdownSerialization.ts"],"names":[],"mappings":"AAgDA,eAAO,MAAM,8BAA8B,GAAI,UAAU,MAAM,WAM5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepareMarkdownForEditorHydration.d.ts","sourceRoot":"","sources":["../../src/markdown/prepareMarkdownForEditorHydration.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,iCAAiC,GAAI,UAAU,MAAM,WAejE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preserveMarkdownWhitespace.d.ts","sourceRoot":"","sources":["../../src/markdown/preserveMarkdownWhitespace.ts"],"names":[],"mappings":"AAgFA,eAAO,MAAM,0BAA0B,GACrC,qBAAqB,MAAM,EAC3B,wBAAwB,MAAM,WA4D/B,CAAC"}
|
|
@@ -14,3 +14,4 @@ export declare const extractYamlFrontMatter: (markdown: string) => MdKitYamlFron
|
|
|
14
14
|
export declare const hasYamlFrontMatter: (markdown: string) => boolean;
|
|
15
15
|
export declare const removeYamlFrontMatter: (markdown: string) => string;
|
|
16
16
|
export declare const prependYamlFrontMatter: (frontMatter: MdKitYamlFrontMatter | string | null, body: string) => string;
|
|
17
|
+
//# sourceMappingURL=yamlFrontMatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yamlFrontMatter.d.ts","sourceRoot":"","sources":["../../src/markdown/yamlFrontMatter.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC1C,CAAC;AA4CF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,OAQnD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,KACf,8BA8CF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,YACI,CAAC;AAExD,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,WACf,CAAC;AAExC,eAAO,MAAM,sBAAsB,GACjC,aAAa,oBAAoB,GAAG,MAAM,GAAG,IAAI,EACjD,MAAM,MAAM,WASb,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EACV,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC"}
|
|
@@ -5,4 +5,9 @@ export type MdKitThemeEditorProps = {
|
|
|
5
5
|
onReset?: () => void;
|
|
6
6
|
theme: MdKitEditorTheme;
|
|
7
7
|
};
|
|
8
|
+
/**
|
|
9
|
+
* Optional controls for editing an {@link MdKitEditorTheme}. Intended for theme
|
|
10
|
+
* builders, docs, and debug tools rather than production editing surfaces.
|
|
11
|
+
*/
|
|
8
12
|
export declare const MdKitThemeEditor: ({ className, onChange, onReset, theme, }: MdKitThemeEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=MdKitThemeEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MdKitThemeEditor.d.ts","sourceRoot":"","sources":["../../src/theme/MdKitThemeEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,0CAK9B,qBAAqB,4CAmHvB,CAAC"}
|