@liveblocks/react-blocknote 0.0.1 → 2.20.0-blocknote

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/BlockNoteLiveblocksExtension.cjs +19 -0
  2. package/dist/BlockNoteLiveblocksExtension.cjs.map +1 -0
  3. package/dist/BlockNoteLiveblocksExtension.js +17 -0
  4. package/dist/BlockNoteLiveblocksExtension.js.map +1 -0
  5. package/dist/comments/AnchoredThreads.cjs +14 -0
  6. package/dist/comments/AnchoredThreads.cjs.map +1 -0
  7. package/dist/comments/AnchoredThreads.js +12 -0
  8. package/dist/comments/AnchoredThreads.js.map +1 -0
  9. package/dist/comments/FloatingComposer.cjs +14 -0
  10. package/dist/comments/FloatingComposer.cjs.map +1 -0
  11. package/dist/comments/FloatingComposer.js +12 -0
  12. package/dist/comments/FloatingComposer.js.map +1 -0
  13. package/dist/comments/FloatingThreads.cjs +14 -0
  14. package/dist/comments/FloatingThreads.cjs.map +1 -0
  15. package/dist/comments/FloatingThreads.js +12 -0
  16. package/dist/comments/FloatingThreads.js.map +1 -0
  17. package/dist/index.cjs +29 -0
  18. package/dist/index.cjs.map +1 -0
  19. package/dist/index.d.cts +1066 -0
  20. package/dist/index.d.ts +1066 -0
  21. package/dist/index.js +14 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/initialization/liveblocksEditorOptions.cjs +12 -0
  24. package/dist/initialization/liveblocksEditorOptions.cjs.map +1 -0
  25. package/dist/initialization/liveblocksEditorOptions.js +10 -0
  26. package/dist/initialization/liveblocksEditorOptions.js.map +1 -0
  27. package/dist/initialization/schema.cjs +30 -0
  28. package/dist/initialization/schema.cjs.map +1 -0
  29. package/dist/initialization/schema.js +28 -0
  30. package/dist/initialization/schema.js.map +1 -0
  31. package/dist/initialization/useCreateBlockNoteWithLiveblocks.cjs +20 -0
  32. package/dist/initialization/useCreateBlockNoteWithLiveblocks.cjs.map +1 -0
  33. package/dist/initialization/useCreateBlockNoteWithLiveblocks.js +18 -0
  34. package/dist/initialization/useCreateBlockNoteWithLiveblocks.js.map +1 -0
  35. package/dist/version-history/HistoryVersionPreview.cjs +14 -0
  36. package/dist/version-history/HistoryVersionPreview.cjs.map +1 -0
  37. package/dist/version-history/HistoryVersionPreview.js +12 -0
  38. package/dist/version-history/HistoryVersionPreview.js.map +1 -0
  39. package/dist/version.cjs +10 -0
  40. package/dist/version.cjs.map +1 -0
  41. package/dist/version.js +6 -0
  42. package/dist/version.js.map +1 -0
  43. package/package.json +98 -2
  44. package/src/styles/index.css +8 -0
  45. package/styles.css +1 -0
  46. package/styles.css.d.cts +1 -0
  47. package/styles.css.d.ts +1 -0
  48. package/styles.css.map +1 -0
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ import { detectDupes } from '@liveblocks/core';
2
+ import { PKG_NAME, PKG_VERSION, PKG_FORMAT } from './version.js';
3
+ export { useLiveblocksExtension } from './BlockNoteLiveblocksExtension.js';
4
+ export { AnchoredThreads } from './comments/AnchoredThreads.js';
5
+ export { FloatingComposer } from './comments/FloatingComposer.js';
6
+ export { FloatingThreads } from './comments/FloatingThreads.js';
7
+ export { withLiveblocksEditorOptions } from './initialization/liveblocksEditorOptions.js';
8
+ export { withLiveblocksSchema } from './initialization/schema.js';
9
+ export { useCreateBlockNoteWithLiveblocks } from './initialization/useCreateBlockNoteWithLiveblocks.js';
10
+ export { HistoryVersionPreview } from './version-history/HistoryVersionPreview.js';
11
+ export { useIsEditorReady } from '@liveblocks/react-tiptap';
12
+
13
+ detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { detectDupes } from \"@liveblocks/core\";\n\nimport { PKG_FORMAT, PKG_NAME, PKG_VERSION } from \"./version\";\n\ndetectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);\n\nexport { useLiveblocksExtension } from \"./BlockNoteLiveblocksExtension\";\nexport { AnchoredThreads } from \"./comments/AnchoredThreads\";\nexport { FloatingComposer } from \"./comments/FloatingComposer\";\nexport { FloatingThreads } from \"./comments/FloatingThreads\";\nexport { withLiveblocksEditorOptions } from \"./initialization/liveblocksEditorOptions\";\nexport { withLiveblocksSchema } from \"./initialization/schema\";\nexport { useCreateBlockNoteWithLiveblocks } from \"./initialization/useCreateBlockNoteWithLiveblocks\";\nexport { HistoryVersionPreview } from \"./version-history/HistoryVersionPreview\";\nexport { useIsEditorReady } from \"@liveblocks/react-tiptap\";\n"],"names":[],"mappings":";;;;;;;;;;;;AAIA,WAAY,CAAA,QAAA,EAAU,aAAa,UAAU,CAAA"}
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var schema = require('./schema.cjs');
4
+
5
+ const withLiveblocksEditorOptions = (liveblocksExtension, blocknoteOptions = {}, liveblocksOptions = {}) => ({
6
+ schema: schema.withLiveblocksSchema(blocknoteOptions.schema, liveblocksOptions),
7
+ _extensions: { liveblocksExtension, ...blocknoteOptions._extensions },
8
+ disableExtensions: ["history", ...blocknoteOptions.disableExtensions || []]
9
+ });
10
+
11
+ exports.withLiveblocksEditorOptions = withLiveblocksEditorOptions;
12
+ //# sourceMappingURL=liveblocksEditorOptions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveblocksEditorOptions.cjs","sources":["../../src/initialization/liveblocksEditorOptions.ts"],"sourcesContent":["import type {\n BlockNoteEditorOptions,\n BlockSchema,\n DefaultBlockSchema,\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n InlineContentSchema,\n StyleSchema,\n} from \"@blocknote/core\";\nimport type { Extension } from \"@tiptap/core\";\n\nimport { withLiveblocksSchema } from \"./schema\";\n/**\n * Helper funcction to add Liveblocks support to BlockNoteEditorOptions\n */\nexport const withLiveblocksEditorOptions = <\n B extends BlockSchema = DefaultBlockSchema,\n I extends InlineContentSchema = DefaultInlineContentSchema,\n S extends StyleSchema = DefaultStyleSchema,\n>(\n liveblocksExtension: Extension,\n blocknoteOptions: Partial<BlockNoteEditorOptions<B, I, S>> = {},\n liveblocksOptions: Partial<{ mentions: boolean }> = {}\n): Partial<BlockNoteEditorOptions<B, I, S>> => ({\n // add the liveblocks schema (i.e.: add the mention node to the schema)\n schema: withLiveblocksSchema(blocknoteOptions.schema, liveblocksOptions),\n\n // add the liveblocks extension\n _extensions: { liveblocksExtension, ...blocknoteOptions._extensions },\n\n // disable the history extension\n disableExtensions: [\"history\", ...(blocknoteOptions.disableExtensions || [])],\n});\n"],"names":["withLiveblocksSchema"],"mappings":";;;;AAea,MAAA,2BAAA,GAA8B,CAKzC,mBACA,EAAA,gBAAA,GAA6D,EAC7D,EAAA,iBAAA,GAAoD,EACN,MAAA;AAAA,EAE9C,MAAQ,EAAAA,2BAAA,CAAqB,gBAAiB,CAAA,MAAA,EAAQ,iBAAiB,CAAA;AAAA,EAGvE,WAAa,EAAA,EAAE,mBAAqB,EAAA,GAAG,iBAAiB,WAAY,EAAA;AAAA,EAGpE,mBAAmB,CAAC,SAAA,EAAW,GAAI,gBAAiB,CAAA,iBAAA,IAAqB,EAAG,CAAA;AAC9E,CAAA;;;;"}
@@ -0,0 +1,10 @@
1
+ import { withLiveblocksSchema } from './schema.js';
2
+
3
+ const withLiveblocksEditorOptions = (liveblocksExtension, blocknoteOptions = {}, liveblocksOptions = {}) => ({
4
+ schema: withLiveblocksSchema(blocknoteOptions.schema, liveblocksOptions),
5
+ _extensions: { liveblocksExtension, ...blocknoteOptions._extensions },
6
+ disableExtensions: ["history", ...blocknoteOptions.disableExtensions || []]
7
+ });
8
+
9
+ export { withLiveblocksEditorOptions };
10
+ //# sourceMappingURL=liveblocksEditorOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveblocksEditorOptions.js","sources":["../../src/initialization/liveblocksEditorOptions.ts"],"sourcesContent":["import type {\n BlockNoteEditorOptions,\n BlockSchema,\n DefaultBlockSchema,\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n InlineContentSchema,\n StyleSchema,\n} from \"@blocknote/core\";\nimport type { Extension } from \"@tiptap/core\";\n\nimport { withLiveblocksSchema } from \"./schema\";\n/**\n * Helper funcction to add Liveblocks support to BlockNoteEditorOptions\n */\nexport const withLiveblocksEditorOptions = <\n B extends BlockSchema = DefaultBlockSchema,\n I extends InlineContentSchema = DefaultInlineContentSchema,\n S extends StyleSchema = DefaultStyleSchema,\n>(\n liveblocksExtension: Extension,\n blocknoteOptions: Partial<BlockNoteEditorOptions<B, I, S>> = {},\n liveblocksOptions: Partial<{ mentions: boolean }> = {}\n): Partial<BlockNoteEditorOptions<B, I, S>> => ({\n // add the liveblocks schema (i.e.: add the mention node to the schema)\n schema: withLiveblocksSchema(blocknoteOptions.schema, liveblocksOptions),\n\n // add the liveblocks extension\n _extensions: { liveblocksExtension, ...blocknoteOptions._extensions },\n\n // disable the history extension\n disableExtensions: [\"history\", ...(blocknoteOptions.disableExtensions || [])],\n});\n"],"names":[],"mappings":";;AAea,MAAA,2BAAA,GAA8B,CAKzC,mBACA,EAAA,gBAAA,GAA6D,EAC7D,EAAA,iBAAA,GAAoD,EACN,MAAA;AAAA,EAE9C,MAAQ,EAAA,oBAAA,CAAqB,gBAAiB,CAAA,MAAA,EAAQ,iBAAiB,CAAA;AAAA,EAGvE,WAAa,EAAA,EAAE,mBAAqB,EAAA,GAAG,iBAAiB,WAAY,EAAA;AAAA,EAGpE,mBAAmB,CAAC,SAAA,EAAW,GAAI,gBAAiB,CAAA,iBAAA,IAAqB,EAAG,CAAA;AAC9E,CAAA;;;;"}
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var core = require('@blocknote/core');
4
+ var reactTiptap = require('@liveblocks/react-tiptap');
5
+
6
+ const mentionSpec = core.createInlineContentSpecFromTipTapNode(reactTiptap.MentionNode, {
7
+ id: {
8
+ default: ""
9
+ },
10
+ notificationId: {
11
+ default: ""
12
+ }
13
+ });
14
+ const withLiveblocksSchema = (schema, liveblocksOptions = {}) => {
15
+ const optionalSchema = schema || core.BlockNoteSchema.create();
16
+ if (!liveblocksOptions.mentions) {
17
+ return optionalSchema;
18
+ }
19
+ return core.BlockNoteSchema.create({
20
+ blockSpecs: optionalSchema.blockSpecs,
21
+ inlineContentSpecs: {
22
+ ...optionalSchema.inlineContentSpecs,
23
+ liveblocksMention: mentionSpec
24
+ },
25
+ styleSpecs: optionalSchema.styleSpecs
26
+ });
27
+ };
28
+
29
+ exports.withLiveblocksSchema = withLiveblocksSchema;
30
+ //# sourceMappingURL=schema.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.cjs","sources":["../../src/initialization/schema.ts"],"sourcesContent":["import type {\n BlockSchema,\n InlineContentSchema,\n StyleSchema,\n} from \"@blocknote/core\";\nimport {\n BlockNoteSchema,\n createInlineContentSpecFromTipTapNode,\n} from \"@blocknote/core\";\nimport { MentionNode } from \"@liveblocks/react-tiptap\";\n\nconst mentionSpec = createInlineContentSpecFromTipTapNode(MentionNode, {\n id: {\n default: \"\",\n },\n notificationId: {\n default: \"\",\n },\n});\n/**\n * Adds the Liveblocks Mention Node as inline content to the BlockNote schema\n *\n * This makes sure BlockNote knows about Liveblocks mentions and that you can read/write mentions via the BlockNote API\n */\nexport const withLiveblocksSchema = <\n B extends BlockSchema,\n I extends InlineContentSchema,\n S extends StyleSchema,\n>(\n schema?: BlockNoteSchema<B, I, S>,\n liveblocksOptions: Partial<{ mentions: boolean }> = {}\n): BlockNoteSchema<B, I, S> => {\n const optionalSchema = schema || BlockNoteSchema.create();\n if (!liveblocksOptions.mentions) {\n return optionalSchema as BlockNoteSchema<B, I, S>;\n }\n return BlockNoteSchema.create({\n blockSpecs: optionalSchema.blockSpecs,\n inlineContentSpecs: {\n ...optionalSchema.inlineContentSpecs,\n liveblocksMention: mentionSpec,\n },\n styleSpecs: optionalSchema.styleSpecs,\n }) as any as BlockNoteSchema<\n // typescript needs some help here\n B,\n I & {\n liveblocksMention: typeof mentionSpec.config;\n },\n S\n >;\n};\n"],"names":["createInlineContentSpecFromTipTapNode","MentionNode","BlockNoteSchema"],"mappings":";;;;;AAWA,MAAM,WAAA,GAAcA,2CAAsCC,uBAAa,EAAA;AAAA,EACrE,EAAI,EAAA;AAAA,IACF,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAC,CAAA,CAAA;AAMM,MAAM,oBAAuB,GAAA,CAKlC,MACA,EAAA,iBAAA,GAAoD,EACvB,KAAA;AAC7B,EAAM,MAAA,cAAA,GAAiB,MAAU,IAAAC,oBAAA,CAAgB,MAAO,EAAA,CAAA;AACxD,EAAI,IAAA,CAAC,kBAAkB,QAAU,EAAA;AAC/B,IAAO,OAAA,cAAA,CAAA;AAAA,GACT;AACA,EAAA,OAAOA,qBAAgB,MAAO,CAAA;AAAA,IAC5B,YAAY,cAAe,CAAA,UAAA;AAAA,IAC3B,kBAAoB,EAAA;AAAA,MAClB,GAAG,cAAe,CAAA,kBAAA;AAAA,MAClB,iBAAmB,EAAA,WAAA;AAAA,KACrB;AAAA,IACA,YAAY,cAAe,CAAA,UAAA;AAAA,GAC5B,CAAA,CAAA;AAQH;;;;"}
@@ -0,0 +1,28 @@
1
+ import { createInlineContentSpecFromTipTapNode, BlockNoteSchema } from '@blocknote/core';
2
+ import { MentionNode } from '@liveblocks/react-tiptap';
3
+
4
+ const mentionSpec = createInlineContentSpecFromTipTapNode(MentionNode, {
5
+ id: {
6
+ default: ""
7
+ },
8
+ notificationId: {
9
+ default: ""
10
+ }
11
+ });
12
+ const withLiveblocksSchema = (schema, liveblocksOptions = {}) => {
13
+ const optionalSchema = schema || BlockNoteSchema.create();
14
+ if (!liveblocksOptions.mentions) {
15
+ return optionalSchema;
16
+ }
17
+ return BlockNoteSchema.create({
18
+ blockSpecs: optionalSchema.blockSpecs,
19
+ inlineContentSpecs: {
20
+ ...optionalSchema.inlineContentSpecs,
21
+ liveblocksMention: mentionSpec
22
+ },
23
+ styleSpecs: optionalSchema.styleSpecs
24
+ });
25
+ };
26
+
27
+ export { withLiveblocksSchema };
28
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sources":["../../src/initialization/schema.ts"],"sourcesContent":["import type {\n BlockSchema,\n InlineContentSchema,\n StyleSchema,\n} from \"@blocknote/core\";\nimport {\n BlockNoteSchema,\n createInlineContentSpecFromTipTapNode,\n} from \"@blocknote/core\";\nimport { MentionNode } from \"@liveblocks/react-tiptap\";\n\nconst mentionSpec = createInlineContentSpecFromTipTapNode(MentionNode, {\n id: {\n default: \"\",\n },\n notificationId: {\n default: \"\",\n },\n});\n/**\n * Adds the Liveblocks Mention Node as inline content to the BlockNote schema\n *\n * This makes sure BlockNote knows about Liveblocks mentions and that you can read/write mentions via the BlockNote API\n */\nexport const withLiveblocksSchema = <\n B extends BlockSchema,\n I extends InlineContentSchema,\n S extends StyleSchema,\n>(\n schema?: BlockNoteSchema<B, I, S>,\n liveblocksOptions: Partial<{ mentions: boolean }> = {}\n): BlockNoteSchema<B, I, S> => {\n const optionalSchema = schema || BlockNoteSchema.create();\n if (!liveblocksOptions.mentions) {\n return optionalSchema as BlockNoteSchema<B, I, S>;\n }\n return BlockNoteSchema.create({\n blockSpecs: optionalSchema.blockSpecs,\n inlineContentSpecs: {\n ...optionalSchema.inlineContentSpecs,\n liveblocksMention: mentionSpec,\n },\n styleSpecs: optionalSchema.styleSpecs,\n }) as any as BlockNoteSchema<\n // typescript needs some help here\n B,\n I & {\n liveblocksMention: typeof mentionSpec.config;\n },\n S\n >;\n};\n"],"names":[],"mappings":";;;AAWA,MAAM,WAAA,GAAc,sCAAsC,WAAa,EAAA;AAAA,EACrE,EAAI,EAAA;AAAA,IACF,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,OAAS,EAAA,EAAA;AAAA,GACX;AACF,CAAC,CAAA,CAAA;AAMM,MAAM,oBAAuB,GAAA,CAKlC,MACA,EAAA,iBAAA,GAAoD,EACvB,KAAA;AAC7B,EAAM,MAAA,cAAA,GAAiB,MAAU,IAAA,eAAA,CAAgB,MAAO,EAAA,CAAA;AACxD,EAAI,IAAA,CAAC,kBAAkB,QAAU,EAAA;AAC/B,IAAO,OAAA,cAAA,CAAA;AAAA,GACT;AACA,EAAA,OAAO,gBAAgB,MAAO,CAAA;AAAA,IAC5B,YAAY,cAAe,CAAA,UAAA;AAAA,IAC3B,kBAAoB,EAAA;AAAA,MAClB,GAAG,cAAe,CAAA,kBAAA;AAAA,MAClB,iBAAmB,EAAA,WAAA;AAAA,KACrB;AAAA,IACA,YAAY,cAAe,CAAA,UAAA;AAAA,GAC5B,CAAA,CAAA;AAQH;;;;"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var react = require('@blocknote/react');
4
+ var BlockNoteLiveblocksExtension = require('../BlockNoteLiveblocksExtension.cjs');
5
+ var liveblocksEditorOptions = require('./liveblocksEditorOptions.cjs');
6
+
7
+ const useCreateBlockNoteWithLiveblocks = (blocknoteOptions = {}, liveblocksOptions = void 0, deps = []) => {
8
+ const liveblocksExtension = BlockNoteLiveblocksExtension.useLiveblocksExtension(liveblocksOptions);
9
+ return react.useCreateBlockNote(
10
+ liveblocksEditorOptions.withLiveblocksEditorOptions(
11
+ liveblocksExtension,
12
+ blocknoteOptions,
13
+ liveblocksOptions
14
+ ),
15
+ [liveblocksExtension, ...deps]
16
+ );
17
+ };
18
+
19
+ exports.useCreateBlockNoteWithLiveblocks = useCreateBlockNoteWithLiveblocks;
20
+ //# sourceMappingURL=useCreateBlockNoteWithLiveblocks.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreateBlockNoteWithLiveblocks.cjs","sources":["../../src/initialization/useCreateBlockNoteWithLiveblocks.ts"],"sourcesContent":["import type {\n BlockNoteEditorOptions,\n BlockSchema,\n DefaultBlockSchema,\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n InlineContentSchema,\n StyleSchema,\n} from \"@blocknote/core\";\nimport { useCreateBlockNote } from \"@blocknote/react\";\nimport type { DependencyList } from \"react\";\n\nimport type { LiveblocksExtensionOptions } from \"../BlockNoteLiveblocksExtension\";\nimport { useLiveblocksExtension } from \"../BlockNoteLiveblocksExtension\";\nimport { withLiveblocksEditorOptions } from \"./liveblocksEditorOptions\";\n\n/**\n * Function that can be used instead of standard useCreateBlockNote to add Liveblocks support\n */\nexport const useCreateBlockNoteWithLiveblocks = <\n B extends BlockSchema = DefaultBlockSchema,\n I extends InlineContentSchema = DefaultInlineContentSchema,\n S extends StyleSchema = DefaultStyleSchema,\n>(\n blocknoteOptions: Partial<BlockNoteEditorOptions<B, I, S>> = {},\n liveblocksOptions: LiveblocksExtensionOptions = undefined,\n deps: DependencyList = []\n) => {\n const liveblocksExtension = useLiveblocksExtension(liveblocksOptions);\n return useCreateBlockNote(\n withLiveblocksEditorOptions(\n liveblocksExtension,\n blocknoteOptions,\n liveblocksOptions\n ),\n [liveblocksExtension, ...deps]\n );\n};\n"],"names":["useLiveblocksExtension","useCreateBlockNote","withLiveblocksEditorOptions"],"mappings":";;;;;;AAmBa,MAAA,gCAAA,GAAmC,CAK9C,gBAA6D,GAAA,IAC7D,iBAAgD,GAAA,KAAA,CAAA,EAChD,IAAuB,GAAA,EACpB,KAAA;AACH,EAAM,MAAA,mBAAA,GAAsBA,oDAAuB,iBAAiB,CAAA,CAAA;AACpE,EAAO,OAAAC,wBAAA;AAAA,IACLC,mDAAA;AAAA,MACE,mBAAA;AAAA,MACA,gBAAA;AAAA,MACA,iBAAA;AAAA,KACF;AAAA,IACA,CAAC,mBAAqB,EAAA,GAAG,IAAI,CAAA;AAAA,GAC/B,CAAA;AACF;;;;"}
@@ -0,0 +1,18 @@
1
+ import { useCreateBlockNote } from '@blocknote/react';
2
+ import { useLiveblocksExtension } from '../BlockNoteLiveblocksExtension.js';
3
+ import { withLiveblocksEditorOptions } from './liveblocksEditorOptions.js';
4
+
5
+ const useCreateBlockNoteWithLiveblocks = (blocknoteOptions = {}, liveblocksOptions = void 0, deps = []) => {
6
+ const liveblocksExtension = useLiveblocksExtension(liveblocksOptions);
7
+ return useCreateBlockNote(
8
+ withLiveblocksEditorOptions(
9
+ liveblocksExtension,
10
+ blocknoteOptions,
11
+ liveblocksOptions
12
+ ),
13
+ [liveblocksExtension, ...deps]
14
+ );
15
+ };
16
+
17
+ export { useCreateBlockNoteWithLiveblocks };
18
+ //# sourceMappingURL=useCreateBlockNoteWithLiveblocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreateBlockNoteWithLiveblocks.js","sources":["../../src/initialization/useCreateBlockNoteWithLiveblocks.ts"],"sourcesContent":["import type {\n BlockNoteEditorOptions,\n BlockSchema,\n DefaultBlockSchema,\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n InlineContentSchema,\n StyleSchema,\n} from \"@blocknote/core\";\nimport { useCreateBlockNote } from \"@blocknote/react\";\nimport type { DependencyList } from \"react\";\n\nimport type { LiveblocksExtensionOptions } from \"../BlockNoteLiveblocksExtension\";\nimport { useLiveblocksExtension } from \"../BlockNoteLiveblocksExtension\";\nimport { withLiveblocksEditorOptions } from \"./liveblocksEditorOptions\";\n\n/**\n * Function that can be used instead of standard useCreateBlockNote to add Liveblocks support\n */\nexport const useCreateBlockNoteWithLiveblocks = <\n B extends BlockSchema = DefaultBlockSchema,\n I extends InlineContentSchema = DefaultInlineContentSchema,\n S extends StyleSchema = DefaultStyleSchema,\n>(\n blocknoteOptions: Partial<BlockNoteEditorOptions<B, I, S>> = {},\n liveblocksOptions: LiveblocksExtensionOptions = undefined,\n deps: DependencyList = []\n) => {\n const liveblocksExtension = useLiveblocksExtension(liveblocksOptions);\n return useCreateBlockNote(\n withLiveblocksEditorOptions(\n liveblocksExtension,\n blocknoteOptions,\n liveblocksOptions\n ),\n [liveblocksExtension, ...deps]\n );\n};\n"],"names":[],"mappings":";;;;AAmBa,MAAA,gCAAA,GAAmC,CAK9C,gBAA6D,GAAA,IAC7D,iBAAgD,GAAA,KAAA,CAAA,EAChD,IAAuB,GAAA,EACpB,KAAA;AACH,EAAM,MAAA,mBAAA,GAAsB,uBAAuB,iBAAiB,CAAA,CAAA;AACpE,EAAO,OAAA,kBAAA;AAAA,IACL,2BAAA;AAAA,MACE,mBAAA;AAAA,MACA,gBAAA;AAAA,MACA,iBAAA;AAAA,KACF;AAAA,IACA,CAAC,mBAAqB,EAAA,GAAG,IAAI,CAAA;AAAA,GAC/B,CAAA;AACF;;;;"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var reactTiptap = require('@liveblocks/react-tiptap');
5
+
6
+ function HistoryVersionPreview(props) {
7
+ return /* @__PURE__ */ jsxRuntime.jsx(reactTiptap.HistoryVersionPreview, {
8
+ ...props,
9
+ editor: props.editor._tiptapEditor
10
+ });
11
+ }
12
+
13
+ exports.HistoryVersionPreview = HistoryVersionPreview;
14
+ //# sourceMappingURL=HistoryVersionPreview.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HistoryVersionPreview.cjs","sources":["../../src/version-history/HistoryVersionPreview.tsx"],"sourcesContent":["import type {\n BlockNoteEditor, BlockSchema,\n DefaultBlockSchema,\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n InlineContentSchema,\n StyleSchema,\n} from \"@blocknote/core\";\nimport { HistoryVersionPreview as TipTapHistoryVersionPreview } from \"@liveblocks/react-tiptap\";\nimport type { Editor } from \"@tiptap/core\";\n\ntype HistoryVersionPreviewProps<\n B extends BlockSchema = DefaultBlockSchema,\n I extends InlineContentSchema = DefaultInlineContentSchema,\n S extends StyleSchema = DefaultStyleSchema,\n> = Omit<\n Parameters<typeof TipTapHistoryVersionPreview>[0],\n \"editor\"\n> & {\n editor: BlockNoteEditor<B, I, S>;\n};\n\nexport function HistoryVersionPreview(props: HistoryVersionPreviewProps) {\n return (\n <TipTapHistoryVersionPreview\n {...props}\n editor={props.editor._tiptapEditor as unknown as Editor}\n />\n );\n}\n"],"names":["jsx","TipTapHistoryVersionPreview"],"mappings":";;;;;AAsBO,SAAS,sBAAsB,KAAmC,EAAA;AACvE,EAAA,uBACGA,cAAA,CAAAC,iCAAA,EAAA;AAAA,IACE,GAAG,KAAA;AAAA,IACJ,MAAA,EAAQ,MAAM,MAAO,CAAA,aAAA;AAAA,GACvB,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,12 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { HistoryVersionPreview as HistoryVersionPreview$1 } from '@liveblocks/react-tiptap';
3
+
4
+ function HistoryVersionPreview(props) {
5
+ return /* @__PURE__ */ jsx(HistoryVersionPreview$1, {
6
+ ...props,
7
+ editor: props.editor._tiptapEditor
8
+ });
9
+ }
10
+
11
+ export { HistoryVersionPreview };
12
+ //# sourceMappingURL=HistoryVersionPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HistoryVersionPreview.js","sources":["../../src/version-history/HistoryVersionPreview.tsx"],"sourcesContent":["import type {\n BlockNoteEditor, BlockSchema,\n DefaultBlockSchema,\n DefaultInlineContentSchema,\n DefaultStyleSchema,\n InlineContentSchema,\n StyleSchema,\n} from \"@blocknote/core\";\nimport { HistoryVersionPreview as TipTapHistoryVersionPreview } from \"@liveblocks/react-tiptap\";\nimport type { Editor } from \"@tiptap/core\";\n\ntype HistoryVersionPreviewProps<\n B extends BlockSchema = DefaultBlockSchema,\n I extends InlineContentSchema = DefaultInlineContentSchema,\n S extends StyleSchema = DefaultStyleSchema,\n> = Omit<\n Parameters<typeof TipTapHistoryVersionPreview>[0],\n \"editor\"\n> & {\n editor: BlockNoteEditor<B, I, S>;\n};\n\nexport function HistoryVersionPreview(props: HistoryVersionPreviewProps) {\n return (\n <TipTapHistoryVersionPreview\n {...props}\n editor={props.editor._tiptapEditor as unknown as Editor}\n />\n );\n}\n"],"names":["TipTapHistoryVersionPreview"],"mappings":";;;AAsBO,SAAS,sBAAsB,KAAmC,EAAA;AACvE,EAAA,uBACG,GAAA,CAAAA,uBAAA,EAAA;AAAA,IACE,GAAG,KAAA;AAAA,IACJ,MAAA,EAAQ,MAAM,MAAO,CAAA,aAAA;AAAA,GACvB,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ const PKG_NAME = "@liveblocks/react-blocknote";
4
+ const PKG_VERSION = typeof "2.20.0-blocknote" === "string" && "2.20.0-blocknote";
5
+ const PKG_FORMAT = typeof "cjs" === "string" && "cjs";
6
+
7
+ exports.PKG_FORMAT = PKG_FORMAT;
8
+ exports.PKG_NAME = PKG_NAME;
9
+ exports.PKG_VERSION = PKG_VERSION;
10
+ //# sourceMappingURL=version.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.cjs","sources":["../src/version.ts"],"sourcesContent":["declare const __VERSION__: string;\ndeclare const ROLLUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/react-blocknote\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof ROLLUP_FORMAT === \"string\" && ROLLUP_FORMAT;\n"],"names":[],"mappings":";;AAGO,MAAM,QAAW,GAAA,8BAAA;AACX,MAAA,WAAA,GAAc,OAAO,kBAAA,KAAgB,QAAY,IAAA,mBAAA;AACjD,MAAA,UAAA,GAAa,OAAO,KAAA,KAAkB,QAAY,IAAA;;;;;;"}
@@ -0,0 +1,6 @@
1
+ const PKG_NAME = "@liveblocks/react-blocknote";
2
+ const PKG_VERSION = typeof "2.20.0-blocknote" === "string" && "2.20.0-blocknote";
3
+ const PKG_FORMAT = typeof "esm" === "string" && "esm";
4
+
5
+ export { PKG_FORMAT, PKG_NAME, PKG_VERSION };
6
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sources":["../src/version.ts"],"sourcesContent":["declare const __VERSION__: string;\ndeclare const ROLLUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/react-blocknote\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof ROLLUP_FORMAT === \"string\" && ROLLUP_FORMAT;\n"],"names":[],"mappings":"AAGO,MAAM,QAAW,GAAA,8BAAA;AACX,MAAA,WAAA,GAAc,OAAO,kBAAA,KAAgB,QAAY,IAAA,mBAAA;AACjD,MAAA,UAAA,GAAa,OAAO,KAAA,KAAkB,QAAY,IAAA;;;;"}
package/package.json CHANGED
@@ -1,10 +1,106 @@
1
1
  {
2
2
  "name": "@liveblocks/react-blocknote",
3
- "version": "0.0.1",
4
- "description": "A BlockNote React plugin to enable collaboration, comments, live cursors, and more.",
3
+ "version": "2.20.0-blocknote",
4
+ "description": "An integration of BlockNote + React to enable collaboration, comments, live cursors, and more with Liveblocks.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
+ "main": "./dist/index.cjs",
8
+ "types": "./dist/index.d.cts",
9
+ "exports": {
10
+ ".": {
11
+ "import": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/index.d.cts",
17
+ "module": "./dist/index.js",
18
+ "default": "./dist/index.cjs"
19
+ }
20
+ },
21
+ "./styles.css": {
22
+ "types": "./styles.css.d.cts",
23
+ "default": "./styles.css"
24
+ }
25
+ },
7
26
  "files": [
27
+ "dist/**",
28
+ "**/*.css",
29
+ "**/*.css.d.ts",
30
+ "**/*.css.d.cts",
31
+ "**/*.css.map",
8
32
  "README.md"
33
+ ],
34
+ "scripts": {
35
+ "dev": "rollup --config rollup.config.js --watch",
36
+ "build": "rollup --config rollup.config.js",
37
+ "format": "eslint --fix src/; stylelint --fix src/styles/; prettier --write src/",
38
+ "lint": "eslint src/; stylelint src/styles/",
39
+ "lint:package": "publint --strict && attw --pack",
40
+ "start": "npm run dev",
41
+ "test": "vitest run",
42
+ "test:watch": "vitest"
43
+ },
44
+ "dependencies": {
45
+ "@liveblocks/client": "2.20.0-blocknote",
46
+ "@liveblocks/core": "2.20.0-blocknote",
47
+ "@liveblocks/react": "2.20.0-blocknote",
48
+ "@liveblocks/react-tiptap": "2.20.0-blocknote",
49
+ "@liveblocks/react-ui": "2.20.0-blocknote",
50
+ "@liveblocks/yjs": "2.20.0-blocknote",
51
+ "@tiptap/core": "^2.7.2",
52
+ "vitest-tsconfig-paths": "^3.4.1"
53
+ },
54
+ "peerDependencies": {
55
+ "@blocknote/core": "^0.25.1",
56
+ "@blocknote/react": "^0.25.1",
57
+ "@tiptap/core": "^2.7.2",
58
+ "react": "^16.14.0 || ^17 || ^18",
59
+ "react-dom": "^16.14.0 || ^17 || ^18"
60
+ },
61
+ "devDependencies": {
62
+ "@liveblocks/eslint-config": "*",
63
+ "@liveblocks/jest-config": "*",
64
+ "@liveblocks/rollup-config": "*",
65
+ "@testing-library/jest-dom": "^5.16.5",
66
+ "eslint-plugin-react": "^7.33.2",
67
+ "eslint-plugin-react-hooks": "^4.6.0",
68
+ "msw": "^1.3.5",
69
+ "rollup": "3.28.0",
70
+ "stylelint": "^15.10.2",
71
+ "stylelint-config-standard": "^34.0.0",
72
+ "stylelint-order": "^6.0.3",
73
+ "stylelint-plugin-logical-css": "^0.13.2"
74
+ },
75
+ "sideEffects": false,
76
+ "bugs": {
77
+ "url": "https://github.com/liveblocks/liveblocks/issues"
78
+ },
79
+ "repository": {
80
+ "type": "git",
81
+ "url": "git+https://github.com/liveblocks/liveblocks.git",
82
+ "directory": "packages/liveblocks-react-blocknote"
83
+ },
84
+ "homepage": "https://liveblocks.io",
85
+ "keywords": [
86
+ "blocknote",
87
+ "prosemirror",
88
+ "tiptap",
89
+ "react",
90
+ "comments",
91
+ "threads",
92
+ "liveblocks",
93
+ "real-time",
94
+ "toolkit",
95
+ "multiplayer",
96
+ "websockets",
97
+ "collaboration",
98
+ "collaborative",
99
+ "presence",
100
+ "crdts",
101
+ "synchronize",
102
+ "rooms",
103
+ "documents",
104
+ "conflict resolution"
9
105
  ]
10
106
  }
@@ -0,0 +1,8 @@
1
+ @import "@liveblocks/react-tiptap/styles.css";
2
+
3
+ /*
4
+ * blocknote uses z-index of 1000, so we must use 1001.
5
+ */
6
+ .lb-portal {
7
+ z-index: 1001 !important;
8
+ }
package/styles.css ADDED
@@ -0,0 +1 @@
1
+ .lb-tiptap-suggestions-list{margin:0;padding:0;list-style:none}.lb-tiptap-mention-suggestions{--lb-tiptap-mention-suggestion-avatar-size:1.25rem}.lb-tiptap-mention-suggestion{padding:calc(.375*var(--lb-spacing))calc(.625*var(--lb-spacing))}.lb-tiptap-mention-suggestion-avatar{inline-size:var(--lb-tiptap-mention-suggestion-avatar-size);margin-inline-start:calc(-.125*var(--lb-spacing));margin-inline-end:calc(.5*var(--lb-spacing));margin-block:calc(.125*var(--lb-spacing));background:var(--lb-foreground-subtle);color:var(--lb-foreground-moderate)}.lb-tiptap-suggestions{animation-duration:var(--lb-transition-duration);animation-timing-function:var(--lb-transition-easing);will-change:transform,opacity;padding:4px}.lb-tiptap-suggestions-list-item{padding:calc(.25*var(--lb-spacing))calc(.5*var(--lb-spacing));border-radius:calc(var(--lb-radius) - .75*4px);color:var(--lb-foreground-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;align-items:center;scroll-margin-block:4px;font-size:.875rem;transition-property:background,color,opacity;display:flex}.lb-tiptap-suggestions-list-item:where([data-highlighted]:not([data-highlighted=false]),[data-selected]:not([data-selected=false])){background:var(--lb-foreground-subtle);transition-duration:calc(var(--lb-transition-duration)/2)}.lb-tiptap-suggestions-list-item:where(:disabled,[data-disabled]:not([data-disabled=false])){opacity:.5;cursor:not-allowed}.lb-tiptap-suggestions:where([data-side=top]){animation-name:lb-animation-slide-up}.lb-tiptap-suggestions:where([data-side=bottom]){animation-name:lb-animation-slide-down}.lb-tiptap-suggestions:where([data-state=closed]){animation-name:lb-animation-disappear}.lb-tiptap-mention{border-radius:calc(.675*var(--lb-radius));background:var(--lb-accent-subtle);color:var(--lb-accent);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.1em .3em;font-weight:500}.lb-tiptap-mention::selection{background:0 0}.lb-tiptap-mention ::selection{background:0 0}.lb-mention-selected{background:var(--lb-accent);color:var(--lb-accent-foreground)}:where(.lb-tiptap-thread-mark:not([data-orphan=true])){background:var(--lb-accent-subtle);color:var(--lb-foreground);text-decoration-line:underline;-webkit-text-decoration-color:var(--lb-foreground-moderate);-webkit-text-decoration-color:var(--lb-foreground-moderate);text-decoration-color:var(--lb-foreground-moderate);text-underline-offset:2px;outline:none;font-weight:500;transition-property:color,text-decoration-color}:where(.lb-tiptap-thread-mark:not([data-orphan=true]) .lb-tiptap-thread-mark-selected){color:var(--lb-accent);text-decoration-line:underline;-webkit-text-decoration-color:var(--lb-accent-moderate);-webkit-text-decoration-color:var(--lb-accent-moderate);text-decoration-color:var(--lb-accent-moderate);text-underline-offset:2px}.lb-tiptap-anchored-threads{--lb-tiptap-anchored-threads-gap:1.25rem;--lb-tiptap-anchored-threads-active-thread-offset:-.75rem}.lb-tiptap-anchored-threads-thread-container{transition-duration:calc(var(--lb-transition-duration)*2);transition-property:transform}.lb-tiptap-anchored-threads-thread{border-radius:var(--lb-radius);background:var(--lb-dynamic-background);transition-property:background,box-shadow;position:relative;overflow:hidden;box-shadow:0 0 0 1px #0000000a,0 2px 6px #0000000a,0 6px 20px #0000000f}.lb-tiptap-anchored-threads-thread:after{content:"";z-index:1;border-radius:inherit;box-shadow:var(--lb-inset-shadow);pointer-events:none;position:absolute;inset:0}.lb-tiptap-anchored-threads-thread:where([data-state=active]){box-shadow:0 0 0 1px #0000000a,0 2px 6px #00000014,0 8px 26px #0000001f}.lb-tiptap-floating{--lb-tiptap-floating-size:350px}.lb-tiptap-floating-threads-thread{inline-size:var(--lb-tiptap-floating-size)}.lb-tiptap-floating-threads-thread:where(:not(:last-of-type)){border-block-end:1px solid var(--lb-foreground-subtle)}.lb-tiptap-floating-composer{inline-size:var(--lb-tiptap-floating-size)}.lb-tiptap-active-selection{background:var(--lb-selection,#00f3);pointer-events:none}.lb-tiptap-toolbar{--lb-tiptap-toolbar-spacing:calc(.25*var(--lb-spacing));gap:var(--lb-tiptap-toolbar-spacing);padding:var(--lb-tiptap-toolbar-spacing);background:var(--lb-background);-ms-overflow-style:none;scrollbar-width:none;flex-direction:row;align-items:center;display:flex;position:relative;overflow-x:auto}.lb-tiptap-toolbar::-webkit-scrollbar{display:none}.lb-tiptap-toolbar>*{flex:none}.lb-tiptap-floating-toolbar{--lb-tiptap-toolbar-spacing:4px}.lb-tiptap-toolbar-separator{pointer-events:none;align-self:stretch;inline-size:1px;margin-inline:1px;position:relative}.lb-tiptap-toolbar-separator:before{content:"";background:var(--lb-foreground-subtle);position:absolute;inset:10% 0}.lb-tiptap-ai-selection{background:var(--lb-selection,#00f3);pointer-events:none}.lb-tiptap-ai-toolbar-portal{inline-size:var(--lb-tiptap-editor-width);pointer-events:none;outline:none;flex-direction:column;gap:8px;display:flex}.lb-tiptap-ai-toolbar-portal:where([data-liveblocks-ai-toolbar-flip]){flex-direction:column-reverse}.lb-tiptap-ai-toolbar-container{--lb-tiptap-ai-toolbar-padding:calc(.5*var(--lb-spacing));--lb-tiptap-ai-toolbar-height:calc(calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)) + 2*var(--lb-tiptap-ai-toolbar-padding));min-block-size:var(--lb-tiptap-ai-toolbar-height);position:relative}.lb-tiptap-ai-toolbar{color:var(--lb-foreground);pointer-events:auto;flex-direction:column;display:flex}.lb-tiptap-ai-toolbar-response-container,.lb-tiptap-ai-toolbar-content{max-block-size:calc(6lh + 2*var(--lb-tiptap-ai-toolbar-padding));overflow-y:auto}.lb-tiptap-ai-toolbar-content{padding:var(--lb-tiptap-ai-toolbar-padding);outline:none;grid-template-columns:auto 1fr auto;inline-size:100%;min-inline-size:0;display:grid}.lb-tiptap-ai-toolbar-response-container{--lb-line-height-crop:calc(1lh - 1em)/-2;padding:calc(var(--lb-spacing) + var(--lb-line-height-crop))var(--lb-spacing);border-block-end:1px solid var(--lb-foreground-subtle);flex-direction:column;display:flex}.lb-tiptap-ai-toolbar-response{white-space:pre-wrap}.lb-tiptap-ai-toolbar-response:before{content:"";vertical-align:middle;-webkit-user-select:none;user-select:none;display:inline-block}.lb-tiptap-ai-toolbar-icon-container,.lb-tiptap-ai-toolbar-actions{block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));flex:none;display:flex}.lb-tiptap-ai-toolbar-icon-container{color:var(--lb-foreground-moderate);align-self:start;align-items:center;position:sticky;inset-block-start:0}.lb-tiptap-ai-toolbar-actions{gap:var(--lb-tiptap-ai-toolbar-padding);align-self:end;position:sticky;inset-block-end:0}.lb-tiptap-ai-toolbar-custom-prompt{all:unset;color:var(--lb-foreground);resize:none;background:0 0;outline:none}.lb-tiptap-ai-toolbar-custom-prompt::placeholder{color:var(--lb-foreground-moderate)}.lb-tiptap-ai-toolbar-custom-prompt-container{z-index:auto;margin-block:calc(-1*var(--lb-tiptap-ai-toolbar-padding));display:grid;position:relative}.lb-tiptap-ai-toolbar-custom-prompt-container:before{content:attr(data-value)" ";visibility:hidden}.lb-tiptap-ai-toolbar-custom-prompt,.lb-tiptap-ai-toolbar-custom-prompt-container:before{box-sizing:inherit;padding:calc(var(--lb-tiptap-ai-toolbar-padding) + (calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)) - 1lh)/2)var(--lb-tiptap-ai-toolbar-padding);font:inherit;letter-spacing:inherit;white-space:pre-wrap;grid-area:1/1/2/2;inline-size:100%;min-inline-size:0}.lb-tiptap-ai-toolbar-error{--lb-dynamic-background:var(--lb-background-destructive-subtle);gap:calc(.5*var(--lb-spacing));padding:var(--lb-tiptap-ai-toolbar-padding);background:var(--lb-dynamic-background);color:var(--lb-destructive);text-wrap:balance;align-items:center;font-size:.875em;display:flex;position:relative}.lb-tiptap-ai-toolbar-error:after{content:"";border-block-start:1px solid var(--lb-destructive-moderate);opacity:.35;pointer-events:none;position:absolute;inset:0}.lb-tiptap-ai-toolbar-error :where(.lb-icon-container){color:var(--lb-destructive-secondary)}.lb-tiptap-ai-toolbar-halo{--lb-tiptap-ai-toolbar-halo-blur:16px;--lb-tiptap-ai-toolbar-halo-outset:8px;inset:calc(-1*var(--lb-tiptap-ai-toolbar-halo-outset));z-index:-1;border-radius:calc(var(--lb-radius) + var(--lb-tiptap-ai-toolbar-halo-outset));filter:blur(var(--lb-tiptap-ai-toolbar-halo-blur));pointer-events:none;transition-property:opacity;transition-duration:1s;animation:1s cubic-bezier(.165,.84,.44,1) both lb-animation-ai-toolbar-halo-scale-in;position:absolute;overflow:hidden}.lb-tiptap-ai-toolbar-halo:where(:not([data-active])){opacity:.5}:is(.lb-tiptap-ai-toolbar-halo-horizontal,.lb-tiptap-ai-toolbar-halo-vertical){position:absolute;inset:0}:is(.lb-tiptap-ai-toolbar-halo-horizontal,.lb-tiptap-ai-toolbar-halo-vertical):before,:is(.lb-tiptap-ai-toolbar-halo-horizontal,.lb-tiptap-ai-toolbar-halo-vertical):after{content:"";opacity:.175;animation-timing-function:cubic-bezier(.455,.03,.515,.955);animation-iteration-count:infinite;position:absolute;inset:0}.lb-tiptap-ai-toolbar-halo-horizontal:before{background:linear-gradient(30deg,transparent 20%,var(--lb-accent)50%,transparent 80%);background-position:0 0;background-size:50% 100%;block-size:100%;inline-size:200%;animation-name:lb-animation-ai-toolbar-halo-horizontal;animation-duration:8s;animation-direction:alternate}.lb-tiptap-ai-toolbar-halo-horizontal:after{background:linear-gradient(90deg,transparent 20%,var(--lb-accent)50%,transparent 80%);background-position:0 0;background-size:75% 100%;block-size:100%;inline-size:400%;animation-name:lb-animation-ai-toolbar-halo-horizontal;animation-duration:6s;animation-direction:alternate-reverse;animation-delay:-2s;inset-inline-start:-50%}.lb-tiptap-ai-toolbar-halo-vertical:before{background:linear-gradient(1deg,transparent 40%,var(--lb-accent)50%,transparent 60%);background-position:0 0;background-repeat:round;background-size:100% 600px;block-size:400%;inline-size:100%;animation-name:lb-animation-ai-toolbar-halo-vertical;animation-duration:4s;animation-direction:alternate-reverse;animation-delay:-2s;inset-block-start:-50%}.lb-tiptap-ai-toolbar-halo-vertical:after{background:linear-gradient(-2deg,transparent 40%,var(--lb-accent)50%,transparent 60%);background-position:0 0;background-repeat:round;background-size:100% 400px;block-size:400%;inline-size:100%;animation-name:lb-animation-ai-toolbar-halo-vertical;animation-duration:3s;animation-direction:alternate;animation-delay:-1s;inset-block-start:-50%}.lb-tiptap-ai-toolbar-thinking{text-overflow:ellipsis;white-space:nowrap;padding-inline:var(--lb-tiptap-ai-toolbar-padding);color:var(--lb-foreground-tertiary);-webkit-user-select:none;user-select:none;align-self:center;min-inline-size:0;max-inline-size:-moz-fit-content;max-inline-size:fit-content;animation:8s linear infinite lb-animation-ai-toolbar-shimmer;overflow:hidden}.lb-tiptap-ai-toolbar-dropdown{pointer-events:auto;inline-size:min(250px,100%)}.lb-tiptap-change-removed{color:color-mix(in srgb,currentcolor 40%,transparent);text-decoration:line-through;text-decoration-thickness:1px}.lb-tiptap-change-added{background:color-mix(in srgb,var(--lb-accent)calc(var(--lb-accent-contrast)*1.5),transparent);color:var(--lb-accent)}.collaboration-cursor__caret{word-break:normal;pointer-events:none;border-inline:1px solid #0d0d0d;margin-inline:-1px;position:relative}.collaboration-cursor__label{color:#fff;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:6px;border-end-start-radius:0;padding:2px 6px;font-size:14px;font-style:normal;font-weight:600;line-height:normal;position:absolute;inset-block-start:-1.4em;inset-inline-start:-1px}@keyframes lb-animation-ai-toolbar-shimmer{0%,to{-webkit-mask-image:linear-gradient(90deg,#000 8%,#00000080 20% 80%,#000 92%);mask-image:linear-gradient(90deg,#000 8%,#00000080 20% 80%,#000 92%);-webkit-mask-size:400% 100%;mask-size:400% 100%}0%{-webkit-mask-position:200% 0;mask-position:200% 0}to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes lb-animation-ai-toolbar-halo-scale-in{0%{transform:scale(.5)}to{transform:scale(1)}}@keyframes lb-animation-ai-toolbar-halo-horizontal{0%{transform:translate(-50%)}to{transform:translate(0)}}@keyframes lb-animation-ai-toolbar-halo-vertical{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.lb-portal{z-index:1001!important}@media (prefers-reduced-motion){.lb-tiptap-suggestions:where(:not([data-state=closed])){animation-name:lb-animation-appear}.lb-tiptap-anchored-threads-thread-container{transition-duration:0s}}
@@ -0,0 +1 @@
1
+ declare module "@liveblocks/react-blocknote/styles.css";
@@ -0,0 +1 @@
1
+ declare module "@liveblocks/react-blocknote/styles.css";
package/styles.css.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/liveblocks-react-tiptap/styles.css","src/styles/src/styles/index.css"],"names":[],"mappings":"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","file":"styles.css","sourcesContent":[".lb-tiptap-suggestions-list{margin:0;padding:0;list-style:none}.lb-tiptap-mention-suggestions{--lb-tiptap-mention-suggestion-avatar-size:1.25rem}.lb-tiptap-mention-suggestion{padding:calc(.375*var(--lb-spacing))calc(.625*var(--lb-spacing))}.lb-tiptap-mention-suggestion-avatar{inline-size:var(--lb-tiptap-mention-suggestion-avatar-size);margin-inline-start:calc(-.125*var(--lb-spacing));margin-inline-end:calc(.5*var(--lb-spacing));margin-block:calc(.125*var(--lb-spacing));background:var(--lb-foreground-subtle);color:var(--lb-foreground-moderate)}.lb-tiptap-suggestions{animation-duration:var(--lb-transition-duration);animation-timing-function:var(--lb-transition-easing);will-change:transform,opacity;padding:4px}.lb-tiptap-suggestions-list-item{padding:calc(.25*var(--lb-spacing))calc(.5*var(--lb-spacing));border-radius:calc(var(--lb-radius) - .75*4px);color:var(--lb-foreground-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;align-items:center;scroll-margin-block:4px;font-size:.875rem;transition-property:background,color,opacity;display:flex}.lb-tiptap-suggestions-list-item:where([data-highlighted]:not([data-highlighted=false]),[data-selected]:not([data-selected=false])){background:var(--lb-foreground-subtle);transition-duration:calc(var(--lb-transition-duration)/2)}.lb-tiptap-suggestions-list-item:where(:disabled,[data-disabled]:not([data-disabled=false])){opacity:.5;cursor:not-allowed}.lb-tiptap-suggestions:where([data-side=top]){animation-name:lb-animation-slide-up}.lb-tiptap-suggestions:where([data-side=bottom]){animation-name:lb-animation-slide-down}.lb-tiptap-suggestions:where([data-state=closed]){animation-name:lb-animation-disappear}.lb-tiptap-mention{border-radius:calc(.675*var(--lb-radius));background:var(--lb-accent-subtle);color:var(--lb-accent);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.1em .3em;font-weight:500}.lb-tiptap-mention::selection{background:0 0}.lb-tiptap-mention ::selection{background:0 0}.lb-mention-selected{background:var(--lb-accent);color:var(--lb-accent-foreground)}:where(.lb-tiptap-thread-mark:not([data-orphan=true])){background:var(--lb-accent-subtle);color:var(--lb-foreground);text-decoration-line:underline;-webkit-text-decoration-color:var(--lb-foreground-moderate);text-decoration-color:var(--lb-foreground-moderate);text-underline-offset:2px;outline:none;font-weight:500;transition-property:color,text-decoration-color}:where(.lb-tiptap-thread-mark:not([data-orphan=true]) .lb-tiptap-thread-mark-selected){color:var(--lb-accent);text-decoration-line:underline;-webkit-text-decoration-color:var(--lb-accent-moderate);text-decoration-color:var(--lb-accent-moderate);text-underline-offset:2px}.lb-tiptap-anchored-threads{--lb-tiptap-anchored-threads-gap:1.25rem;--lb-tiptap-anchored-threads-active-thread-offset:-.75rem}.lb-tiptap-anchored-threads-thread-container{transition-duration:calc(var(--lb-transition-duration)*2);transition-property:transform}.lb-tiptap-anchored-threads-thread{border-radius:var(--lb-radius);background:var(--lb-dynamic-background);transition-property:background,box-shadow;position:relative;overflow:hidden;box-shadow:0 0 0 1px #0000000a,0 2px 6px #0000000a,0 6px 20px #0000000f}.lb-tiptap-anchored-threads-thread:after{content:\"\";z-index:1;border-radius:inherit;box-shadow:var(--lb-inset-shadow);pointer-events:none;position:absolute;inset:0}.lb-tiptap-anchored-threads-thread:where([data-state=active]){box-shadow:0 0 0 1px #0000000a,0 2px 6px #00000014,0 8px 26px #0000001f}.lb-tiptap-floating{--lb-tiptap-floating-size:350px}.lb-tiptap-floating-threads-thread{inline-size:var(--lb-tiptap-floating-size)}.lb-tiptap-floating-threads-thread:where(:not(:last-of-type)){border-block-end:1px solid var(--lb-foreground-subtle)}.lb-tiptap-floating-composer{inline-size:var(--lb-tiptap-floating-size)}.lb-tiptap-active-selection{background:var(--lb-selection,#00f3);pointer-events:none}.lb-tiptap-toolbar{--lb-tiptap-toolbar-spacing:calc(.25*var(--lb-spacing));gap:var(--lb-tiptap-toolbar-spacing);padding:var(--lb-tiptap-toolbar-spacing);background:var(--lb-background);-ms-overflow-style:none;scrollbar-width:none;flex-direction:row;align-items:center;display:flex;position:relative;overflow-x:auto}.lb-tiptap-toolbar::-webkit-scrollbar{display:none}.lb-tiptap-toolbar>*{flex:none}.lb-tiptap-floating-toolbar{--lb-tiptap-toolbar-spacing:4px}.lb-tiptap-toolbar-separator{pointer-events:none;align-self:stretch;inline-size:1px;margin-inline:1px;position:relative}.lb-tiptap-toolbar-separator:before{content:\"\";background:var(--lb-foreground-subtle);position:absolute;inset:10% 0}.lb-tiptap-ai-selection{background:var(--lb-selection,#00f3);pointer-events:none}.lb-tiptap-ai-toolbar-portal{inline-size:var(--lb-tiptap-editor-width);pointer-events:none;outline:none;flex-direction:column;gap:8px;display:flex}.lb-tiptap-ai-toolbar-portal:where([data-liveblocks-ai-toolbar-flip]){flex-direction:column-reverse}.lb-tiptap-ai-toolbar-container{--lb-tiptap-ai-toolbar-padding:calc(.5*var(--lb-spacing));--lb-tiptap-ai-toolbar-height:calc(calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)) + 2*var(--lb-tiptap-ai-toolbar-padding));min-block-size:var(--lb-tiptap-ai-toolbar-height);position:relative}.lb-tiptap-ai-toolbar{color:var(--lb-foreground);pointer-events:auto;flex-direction:column;display:flex}.lb-tiptap-ai-toolbar-response-container,.lb-tiptap-ai-toolbar-content{max-block-size:calc(6lh + 2*var(--lb-tiptap-ai-toolbar-padding));overflow-y:auto}.lb-tiptap-ai-toolbar-content{padding:var(--lb-tiptap-ai-toolbar-padding);outline:none;grid-template-columns:auto 1fr auto;inline-size:100%;min-inline-size:0;display:grid}.lb-tiptap-ai-toolbar-response-container{--lb-line-height-crop:calc(1lh - 1em)/-2;padding:calc(var(--lb-spacing) + var(--lb-line-height-crop))var(--lb-spacing);border-block-end:1px solid var(--lb-foreground-subtle);flex-direction:column;display:flex}.lb-tiptap-ai-toolbar-response{white-space:pre-wrap}.lb-tiptap-ai-toolbar-response:before{content:\"\";vertical-align:middle;-webkit-user-select:none;user-select:none;display:inline-block}.lb-tiptap-ai-toolbar-icon-container,.lb-tiptap-ai-toolbar-actions{block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));flex:none;display:flex}.lb-tiptap-ai-toolbar-icon-container{color:var(--lb-foreground-moderate);align-self:start;align-items:center;position:sticky;inset-block-start:0}.lb-tiptap-ai-toolbar-actions{gap:var(--lb-tiptap-ai-toolbar-padding);align-self:end;position:sticky;inset-block-end:0}.lb-tiptap-ai-toolbar-custom-prompt{all:unset;color:var(--lb-foreground);resize:none;background:0 0;outline:none}.lb-tiptap-ai-toolbar-custom-prompt::placeholder{color:var(--lb-foreground-moderate)}.lb-tiptap-ai-toolbar-custom-prompt-container{z-index:auto;margin-block:calc(-1*var(--lb-tiptap-ai-toolbar-padding));display:grid;position:relative}.lb-tiptap-ai-toolbar-custom-prompt-container:before{content:attr(data-value)\" \";visibility:hidden}.lb-tiptap-ai-toolbar-custom-prompt,.lb-tiptap-ai-toolbar-custom-prompt-container:before{box-sizing:inherit;padding:calc(var(--lb-tiptap-ai-toolbar-padding) + (calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)) - 1lh)/2)var(--lb-tiptap-ai-toolbar-padding);font:inherit;letter-spacing:inherit;white-space:pre-wrap;grid-area:1/1/2/2;inline-size:100%;min-inline-size:0}.lb-tiptap-ai-toolbar-error{--lb-dynamic-background:var(--lb-background-destructive-subtle);gap:calc(.5*var(--lb-spacing));padding:var(--lb-tiptap-ai-toolbar-padding);background:var(--lb-dynamic-background);color:var(--lb-destructive);text-wrap:balance;align-items:center;font-size:.875em;display:flex;position:relative}.lb-tiptap-ai-toolbar-error:after{content:\"\";border-block-start:1px solid var(--lb-destructive-moderate);opacity:.35;pointer-events:none;position:absolute;inset:0}.lb-tiptap-ai-toolbar-error :where(.lb-icon-container){color:var(--lb-destructive-secondary)}.lb-tiptap-ai-toolbar-halo{--lb-tiptap-ai-toolbar-halo-blur:16px;--lb-tiptap-ai-toolbar-halo-outset:8px;inset:calc(-1*var(--lb-tiptap-ai-toolbar-halo-outset));z-index:-1;border-radius:calc(var(--lb-radius) + var(--lb-tiptap-ai-toolbar-halo-outset));filter:blur(var(--lb-tiptap-ai-toolbar-halo-blur));pointer-events:none;transition-property:opacity;transition-duration:1s;animation:1s cubic-bezier(.165,.84,.44,1) both lb-animation-ai-toolbar-halo-scale-in;position:absolute;overflow:hidden}.lb-tiptap-ai-toolbar-halo:where(:not([data-active])){opacity:.5}:is(.lb-tiptap-ai-toolbar-halo-horizontal,.lb-tiptap-ai-toolbar-halo-vertical){position:absolute;inset:0}:is(.lb-tiptap-ai-toolbar-halo-horizontal,.lb-tiptap-ai-toolbar-halo-vertical):before,:is(.lb-tiptap-ai-toolbar-halo-horizontal,.lb-tiptap-ai-toolbar-halo-vertical):after{content:\"\";opacity:.175;animation-timing-function:cubic-bezier(.455,.03,.515,.955);animation-iteration-count:infinite;position:absolute;inset:0}.lb-tiptap-ai-toolbar-halo-horizontal:before{background:linear-gradient(30deg,transparent 20%,var(--lb-accent)50%,transparent 80%);background-position:0 0;background-size:50% 100%;block-size:100%;inline-size:200%;animation-name:lb-animation-ai-toolbar-halo-horizontal;animation-duration:8s;animation-direction:alternate}.lb-tiptap-ai-toolbar-halo-horizontal:after{background:linear-gradient(90deg,transparent 20%,var(--lb-accent)50%,transparent 80%);background-position:0 0;background-size:75% 100%;block-size:100%;inline-size:400%;animation-name:lb-animation-ai-toolbar-halo-horizontal;animation-duration:6s;animation-direction:alternate-reverse;animation-delay:-2s;inset-inline-start:-50%}.lb-tiptap-ai-toolbar-halo-vertical:before{background:linear-gradient(1deg,transparent 40%,var(--lb-accent)50%,transparent 60%);background-position:0 0;background-repeat:round;background-size:100% 600px;block-size:400%;inline-size:100%;animation-name:lb-animation-ai-toolbar-halo-vertical;animation-duration:4s;animation-direction:alternate-reverse;animation-delay:-2s;inset-block-start:-50%}.lb-tiptap-ai-toolbar-halo-vertical:after{background:linear-gradient(-2deg,transparent 40%,var(--lb-accent)50%,transparent 60%);background-position:0 0;background-repeat:round;background-size:100% 400px;block-size:400%;inline-size:100%;animation-name:lb-animation-ai-toolbar-halo-vertical;animation-duration:3s;animation-direction:alternate;animation-delay:-1s;inset-block-start:-50%}.lb-tiptap-ai-toolbar-thinking{text-overflow:ellipsis;white-space:nowrap;padding-inline:var(--lb-tiptap-ai-toolbar-padding);color:var(--lb-foreground-tertiary);-webkit-user-select:none;user-select:none;align-self:center;min-inline-size:0;max-inline-size:-moz-fit-content;max-inline-size:fit-content;animation:8s linear infinite lb-animation-ai-toolbar-shimmer;overflow:hidden}.lb-tiptap-ai-toolbar-dropdown{pointer-events:auto;inline-size:min(250px,100%)}.lb-tiptap-change-removed{color:color-mix(in srgb,currentcolor 40%,transparent);text-decoration:line-through;text-decoration-thickness:1px}.lb-tiptap-change-added{background:color-mix(in srgb,var(--lb-accent)calc(var(--lb-accent-contrast)*1.5),transparent);color:var(--lb-accent)}.collaboration-cursor__caret{word-break:normal;pointer-events:none;border-inline:1px solid #0d0d0d;margin-inline:-1px;position:relative}.collaboration-cursor__label{border-radius:6px;color:#fff;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;border-end-start-radius:0;padding:2px 6px;font-size:14px;font-style:normal;font-weight:600;line-height:normal;position:absolute;inset-block-start:-1.4em;inset-inline-start:-1px}@keyframes lb-animation-ai-toolbar-shimmer{0%,to{-webkit-mask-image:linear-gradient(90deg,#000 8%,#00000080 20% 80%,#000 92%);mask-image:linear-gradient(90deg,#000 8%,#00000080 20% 80%,#000 92%);-webkit-mask-size:400% 100%;mask-size:400% 100%}0%{-webkit-mask-position:200% 0;mask-position:200% 0}to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes lb-animation-ai-toolbar-halo-scale-in{0%{transform:scale(.5)}to{transform:scale(1)}}@keyframes lb-animation-ai-toolbar-halo-horizontal{0%{transform:translate(-50%)}to{transform:translate(0)}}@keyframes lb-animation-ai-toolbar-halo-vertical{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@media (prefers-reduced-motion){.lb-tiptap-suggestions:where(:not([data-state=closed])){animation-name:lb-animation-appear}.lb-tiptap-anchored-threads-thread-container{transition-duration:0s}}","@import \"@liveblocks/react-tiptap/styles.css\";\n\n/*\n* blocknote uses z-index of 1000, so we must use 1001.\n*/\n.lb-portal {\n z-index: 1001 !important;\n}\n"]}