@liveblocks/react-lexical 2.0.0-alpha3 → 2.0.0-alpha4

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 (36) hide show
  1. package/dist/comments/comment-plugin-provider.js +19 -10
  2. package/dist/comments/comment-plugin-provider.js.map +1 -1
  3. package/dist/comments/comment-plugin-provider.mjs +20 -13
  4. package/dist/comments/comment-plugin-provider.mjs.map +1 -1
  5. package/dist/comments/floating-composer.js.map +1 -1
  6. package/dist/comments/floating-composer.mjs.map +1 -1
  7. package/dist/index.d.mts +119 -24
  8. package/dist/index.d.ts +119 -24
  9. package/dist/index.js +3 -4
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.mjs +2 -3
  12. package/dist/index.mjs.map +1 -1
  13. package/dist/liveblocks-config.js.map +1 -1
  14. package/dist/liveblocks-config.mjs.map +1 -1
  15. package/dist/liveblocks-plugin-provider.js +72 -1
  16. package/dist/liveblocks-plugin-provider.js.map +1 -1
  17. package/dist/liveblocks-plugin-provider.mjs +74 -4
  18. package/dist/liveblocks-plugin-provider.mjs.map +1 -1
  19. package/dist/mentions/mention-component.js +1 -1
  20. package/dist/mentions/mention-component.js.map +1 -1
  21. package/dist/mentions/mention-component.mjs +1 -1
  22. package/dist/mentions/mention-component.mjs.map +1 -1
  23. package/dist/mentions/mention-plugin.js +0 -12
  24. package/dist/mentions/mention-plugin.js.map +1 -1
  25. package/dist/mentions/mention-plugin.mjs +1 -13
  26. package/dist/mentions/mention-plugin.mjs.map +1 -1
  27. package/dist/version.js +1 -1
  28. package/dist/version.mjs +1 -1
  29. package/package.json +6 -6
  30. package/src/styles/index.css +1 -24
  31. package/styles.css +1 -1
  32. package/styles.css.map +1 -1
  33. package/dist/comments/ThreadPanel.js +0 -51
  34. package/dist/comments/ThreadPanel.js.map +0 -1
  35. package/dist/comments/ThreadPanel.mjs +0 -49
  36. package/dist/comments/ThreadPanel.mjs.map +0 -1
package/styles.css CHANGED
@@ -1 +1 @@
1
- .lb-lexical-thread-panel{flex-direction:column;display:flex}.lb-lexical-thread-panel-empty{padding:var(--lb-spacing);color:var(--lb-foreground-tertiary);text-align:center;text-wrap:balance;justify-content:center;align-items:center;font-size:.875em;display:flex;position:absolute;inset:0}.lb-lexical-thread-panel-thread:where(:not(:last-of-type)){border-block-end:1px solid var(--lb-foreground-subtle)}.lb-lexical-suggestions-list{margin:0;padding:0;list-style:none}.lb-lexical-mention-suggestions{--lb-lexical-mention-suggestion-avatar-size:1.25rem}.lb-lexical-mention-suggestion{padding:calc(.375*var(--lb-spacing))calc(.625*var(--lb-spacing))}.lb-lexical-mention-suggestion-avatar{inline-size:var(--lb-lexical-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-lexical-suggestions{animation-duration:var(--lb-transition-duration);animation-timing-function:var(--lb-transition-easing);will-change:transform,opacity;padding:4px}.lb-lexical-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-lexical-suggestions-list-item:where([data-highlighted],[data-selected]){background:var(--lb-foreground-subtle);transition-duration:calc(var(--lb-transition-duration)/2)}.lb-lexical-suggestions-list-item:where(:disabled,[data-disabled]){opacity:.5;cursor:not-allowed}.lb-lexical-suggestions:where([data-side=top]){animation-name:lb-animation-slide-up}.lb-lexical-suggestions:where([data-side=bottom]){animation-name:lb-animation-slide-down}.lb-lexical-suggestions:where([data-state=closed]){animation-name:lb-animation-disappear}.lb-lexical-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-lexical-mention::selection{background:0 0}.lb-lexical-mention ::selection{background:0 0}.lb-lexical-mention:where([data-selected]){background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-lexical-active-selection{background-color:var(--lb-selection)}.lb-thread-mark{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}.lb-thread-mark:where([data-state=active]){color:var(--lb-accent);-webkit-text-decoration-color:var(--lb-accent-moderate);text-decoration-color:var(--lb-accent-moderate)}@media (prefers-reduced-motion){.lb-lexical-suggestions:where(:not([data-state=closed])){animation-name:lb-animation-appear}}
1
+ .lb-lexical-suggestions-list{margin:0;padding:0;list-style:none}.lb-lexical-mention-suggestions{--lb-lexical-mention-suggestion-avatar-size:1.25rem}.lb-lexical-mention-suggestion{padding:calc(.375*var(--lb-spacing))calc(.625*var(--lb-spacing))}.lb-lexical-mention-suggestion-avatar{inline-size:var(--lb-lexical-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-lexical-suggestions{animation-duration:var(--lb-transition-duration);animation-timing-function:var(--lb-transition-easing);will-change:transform,opacity;padding:4px}.lb-lexical-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-lexical-suggestions-list-item:where([data-highlighted],[data-selected]){background:var(--lb-foreground-subtle);transition-duration:calc(var(--lb-transition-duration)/2)}.lb-lexical-suggestions-list-item:where(:disabled,[data-disabled]){opacity:.5;cursor:not-allowed}.lb-lexical-suggestions:where([data-side=top]){animation-name:lb-animation-slide-up}.lb-lexical-suggestions:where([data-side=bottom]){animation-name:lb-animation-slide-down}.lb-lexical-suggestions:where([data-state=closed]){animation-name:lb-animation-disappear}.lb-lexical-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-lexical-mention::selection{background:0 0}.lb-lexical-mention ::selection{background:0 0}.lb-lexical-mention:where([data-selected]){background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-lexical-active-selection{background-color:var(--lb-selection)}.lb-thread-mark{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}.lb-thread-mark:where([data-state=active]){color:var(--lb-accent);-webkit-text-decoration-color:var(--lb-accent-moderate);text-decoration-color:var(--lb-accent-moderate)}@media (prefers-reduced-motion){.lb-lexical-suggestions:where(:not([data-state=closed])){animation-name:lb-animation-appear}}
package/styles.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["src/styles/src/styles/index.css","src/styles/src/styles/utils.css"],"names":[],"mappings":"AAGA,yBAAA,qBAAA,CAAA,YAAA,CAKA,+BAAA,yBAAA,CAAA,mCAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,sBAAA,CAAA,kBAAA,CAAA,gBAAA,CAAA,YAAA,CAAA,iBAAA,CAAA,OAAA,CAcE,2DAAA,sDAAA,CASF,6BAAA,QAAA,CAAA,SAAA,CAAA,eAAA,CAUA,gCAAA,mDAAA,CAIA,+BAAA,gEAAA,CAIA,sCAAA,4DAAA,CAAA,iDAAA,CAAA,4CAAA,CAAA,yCAAA,CAAA,sCAAA,CAAA,mCAAA,CAaA,wBAAA,gDAAA,CAAA,qDAAA,CAAA,6BAAA,CAAA,WAAA,CAOA,kCAAA,6DAAA,CAAA,8CAAA,CAAA,oCAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,gBAAA,CAAA,YAAA,CAAA,kBAAA,CAAA,uBAAA,CAAA,iBAAA,CAAA,4CAAA,CAAA,YAAA,CAeE,4EAAA,sCAAA,CAAA,yDAAA,CAKA,mEAAA,UAAA,CAAA,kBAAA,CAWA,+CAAA,oCAAA,CAIA,kDAAA,sCAAA,CAIA,mDAAA,qCAAA,CAeF,oBAAA,yCAAA,CAAA,kCAAA,CAAA,sBAAA,CAAA,kCAAA,CAAA,0BAAA,CAAA,iBAAA,CAAA,eAAA,CC1HE,+BAAA,cAAA,CAAA,gCAAA,cAAA,CDoIA,2CAAA,2BAAA,CAAA,iCAAA,CAUF,6BAAA,oCAAA,CAQA,gBAAA,0BAAA,CAAA,8BAAA,CAAA,2DAAA,CAAA,mDAAA,CAAA,yBAAA,CAAA,YAAA,CAAA,eAAA,CAAA,+CAAA,CASE,2CAAA,sBAAA,CAAA,uDAAA,CAAA,+CAAA,CA/CF,gCACE,yDAAA,kCAAA,CAAA","file":"styles.css","sourcesContent":["@import \"./utils\";\n@import \"./constants\";\n\n.lb-lexical-thread-panel {\n display: flex;\n flex-direction: column;\n}\n\n.lb-lexical-thread-panel-empty {\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: var(--lb-spacing);\n color: var(--lb-foreground-tertiary);\n font-size: 0.875em;\n text-align: center;\n text-wrap: balance;\n}\n\n.lb-lexical-thread-panel-thread {\n &:where(:not(:last-of-type)) {\n border-block-end: 1px solid var(--lb-foreground-subtle);\n }\n}\n\n/*************************************\n * Suggestions *\n *************************************/\n\n.lb-lexical-suggestions-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n/*************************************\n * Mention suggestions *\n *************************************/\n\n.lb-lexical-mention-suggestions {\n --lb-lexical-mention-suggestion-avatar-size: 1.25rem;\n}\n\n.lb-lexical-mention-suggestion {\n padding: calc(0.375 * var(--lb-spacing)) calc(0.625 * var(--lb-spacing));\n}\n\n.lb-lexical-mention-suggestion-avatar {\n inline-size: var(--lb-lexical-mention-suggestion-avatar-size);\n margin-inline-start: calc(-0.125 * var(--lb-spacing));\n margin-inline-end: calc(0.5 * var(--lb-spacing));\n margin-block: calc(0.125 * var(--lb-spacing));\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-moderate);\n}\n\n/*************************************\n * Elevation lists *\n *************************************/\n\n.lb-lexical-suggestions {\n padding: $lb-elevation-list-padding;\n animation-duration: var(--lb-transition-duration);\n animation-timing-function: var(--lb-transition-easing);\n will-change: transform, opacity;\n}\n\n.lb-lexical-suggestions-list-item {\n display: flex;\n align-items: center;\n padding: calc(0.25 * var(--lb-spacing)) calc(0.5 * var(--lb-spacing));\n border-radius: calc(var(--lb-radius) - 0.75 * $lb-elevation-list-padding);\n color: var(--lb-foreground-secondary);\n outline: none;\n font-size: 0.875rem;\n cursor: pointer;\n user-select: none;\n transition-property: background, color, opacity;\n scroll-margin-block: $lb-elevation-list-padding;\n}\n\n:is(.lb-lexical-suggestions-list-item) {\n &:where([data-highlighted], [data-selected]) {\n background: var(--lb-foreground-subtle);\n transition-duration: calc(var(--lb-transition-duration) / 2);\n }\n\n &:where(:disabled, [data-disabled]) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n/*************************************\n * Floating animations *\n *************************************/\n\n:is(.lb-lexical-suggestions) {\n &:where([data-side=\"top\"]) {\n animation-name: lb-animation-slide-up;\n }\n\n &:where([data-side=\"bottom\"]) {\n animation-name: lb-animation-slide-down;\n }\n\n &:where([data-state=\"closed\"]) {\n animation-name: lb-animation-disappear;\n }\n}\n\n@media (prefers-reduced-motion) {\n .lb-lexical-suggestions:where(:not([data-state=\"closed\"])) {\n animation-name: lb-animation-appear;\n }\n}\n\n/*************************************\n * Mention *\n *************************************/\n\n.lb-lexical-mention {\n padding: 0.1em 0.3em;\n border-radius: calc(0.675 * var(--lb-radius));\n background: var(--lb-accent-subtle);\n color: var(--lb-accent);\n box-decoration-break: clone;\n font-weight: 500;\n\n @include invisible-selection;\n\n &:where([data-selected]) {\n background: var(--lb-accent);\n color: var(--lb-accent-foreground);\n }\n}\n\n/*************************************\n * Active selection *\n *************************************/\n\n.lb-lexical-active-selection {\n background-color: var(--lb-selection);\n}\n\n/*************************************\n * Thread Mark *\n *************************************/\n\n.lb-thread-mark {\n color: var(--lb-foreground);\n outline: none;\n font-weight: 500;\n transition-property: color, text-decoration-color;\n text-decoration-line: underline;\n text-decoration-color: var(--lb-foreground-moderate);\n text-underline-offset: 2px;\n\n &:where([data-state=\"active\"]) {\n color: var(--lb-accent);\n text-decoration-color: var(--lb-accent-moderate);\n }\n}\n","@mixin invisible-selection {\n &::selection,\n *::selection {\n background: transparent;\n }\n}\n"]}
1
+ {"version":3,"sources":["src/styles/src/styles/index.css","src/styles/src/styles/utils.css"],"names":[],"mappings":"AAOA,6BAAA,QAAA,CAAA,SAAA,CAAA,eAAA,CAUA,gCAAA,mDAAA,CAIA,+BAAA,gEAAA,CAIA,sCAAA,4DAAA,CAAA,iDAAA,CAAA,4CAAA,CAAA,yCAAA,CAAA,sCAAA,CAAA,mCAAA,CAaA,wBAAA,gDAAA,CAAA,qDAAA,CAAA,6BAAA,CAAA,WAAA,CAOA,kCAAA,6DAAA,CAAA,8CAAA,CAAA,oCAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,gBAAA,CAAA,YAAA,CAAA,kBAAA,CAAA,uBAAA,CAAA,iBAAA,CAAA,4CAAA,CAAA,YAAA,CAeE,4EAAA,sCAAA,CAAA,yDAAA,CAKA,mEAAA,UAAA,CAAA,kBAAA,CAWA,+CAAA,oCAAA,CAIA,kDAAA,sCAAA,CAIA,mDAAA,qCAAA,CAeF,oBAAA,yCAAA,CAAA,kCAAA,CAAA,sBAAA,CAAA,kCAAA,CAAA,0BAAA,CAAA,iBAAA,CAAA,eAAA,CClGE,+BAAA,cAAA,CAAA,gCAAA,cAAA,CD4GA,2CAAA,2BAAA,CAAA,iCAAA,CAUF,6BAAA,oCAAA,CAQA,gBAAA,kCAAA,CAAA,0BAAA,CAAA,8BAAA,CAAA,2DAAA,CAAA,mDAAA,CAAA,yBAAA,CAAA,YAAA,CAAA,eAAA,CAAA,+CAAA,CAUE,2CAAA,sBAAA,CAAA,uDAAA,CAAA,+CAAA,CAhDF,gCACE,yDAAA,kCAAA,CAAA","file":"styles.css","sourcesContent":["@import \"./utils\";\n@import \"./constants\";\n\n/*************************************\n * Suggestions *\n *************************************/\n\n.lb-lexical-suggestions-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n/*************************************\n * Mention suggestions *\n *************************************/\n\n.lb-lexical-mention-suggestions {\n --lb-lexical-mention-suggestion-avatar-size: 1.25rem;\n}\n\n.lb-lexical-mention-suggestion {\n padding: calc(0.375 * var(--lb-spacing)) calc(0.625 * var(--lb-spacing));\n}\n\n.lb-lexical-mention-suggestion-avatar {\n inline-size: var(--lb-lexical-mention-suggestion-avatar-size);\n margin-inline-start: calc(-0.125 * var(--lb-spacing));\n margin-inline-end: calc(0.5 * var(--lb-spacing));\n margin-block: calc(0.125 * var(--lb-spacing));\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-moderate);\n}\n\n/*************************************\n * Elevation lists *\n *************************************/\n\n.lb-lexical-suggestions {\n padding: $lb-elevation-list-padding;\n animation-duration: var(--lb-transition-duration);\n animation-timing-function: var(--lb-transition-easing);\n will-change: transform, opacity;\n}\n\n.lb-lexical-suggestions-list-item {\n display: flex;\n align-items: center;\n padding: calc(0.25 * var(--lb-spacing)) calc(0.5 * var(--lb-spacing));\n border-radius: calc(var(--lb-radius) - 0.75 * $lb-elevation-list-padding);\n color: var(--lb-foreground-secondary);\n outline: none;\n font-size: 0.875rem;\n cursor: pointer;\n user-select: none;\n transition-property: background, color, opacity;\n scroll-margin-block: $lb-elevation-list-padding;\n}\n\n:is(.lb-lexical-suggestions-list-item) {\n &:where([data-highlighted], [data-selected]) {\n background: var(--lb-foreground-subtle);\n transition-duration: calc(var(--lb-transition-duration) / 2);\n }\n\n &:where(:disabled, [data-disabled]) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n/*************************************\n * Floating animations *\n *************************************/\n\n:is(.lb-lexical-suggestions) {\n &:where([data-side=\"top\"]) {\n animation-name: lb-animation-slide-up;\n }\n\n &:where([data-side=\"bottom\"]) {\n animation-name: lb-animation-slide-down;\n }\n\n &:where([data-state=\"closed\"]) {\n animation-name: lb-animation-disappear;\n }\n}\n\n@media (prefers-reduced-motion) {\n .lb-lexical-suggestions:where(:not([data-state=\"closed\"])) {\n animation-name: lb-animation-appear;\n }\n}\n\n/*************************************\n * Mention *\n *************************************/\n\n.lb-lexical-mention {\n padding: 0.1em 0.3em;\n border-radius: calc(0.675 * var(--lb-radius));\n background: var(--lb-accent-subtle);\n color: var(--lb-accent);\n box-decoration-break: clone;\n font-weight: 500;\n\n @include invisible-selection;\n\n &:where([data-selected]) {\n background: var(--lb-accent);\n color: var(--lb-accent-foreground);\n }\n}\n\n/*************************************\n * Active selection *\n *************************************/\n\n.lb-lexical-active-selection {\n background-color: var(--lb-selection);\n}\n\n/*************************************\n * Thread Mark *\n *************************************/\n\n.lb-thread-mark {\n background: var(--lb-accent-subtle);\n color: var(--lb-foreground);\n outline: none;\n font-weight: 500;\n transition-property: color, text-decoration-color;\n text-decoration-line: underline;\n text-decoration-color: var(--lb-foreground-moderate);\n text-underline-offset: 2px;\n\n &:where([data-state=\"active\"]) {\n color: var(--lb-accent);\n text-decoration-color: var(--lb-accent-moderate);\n }\n}\n","@mixin invisible-selection {\n &::selection,\n *::selection {\n background: transparent;\n }\n}\n"]}
@@ -1,51 +0,0 @@
1
- 'use strict';
2
-
3
- var react = require('@liveblocks/react');
4
- var reactUi = require('@liveblocks/react-ui');
5
- var React = require('react');
6
- var classnames = require('../classnames.js');
7
- var commentPluginProvider = require('./comment-plugin-provider.js');
8
-
9
- const ThreadWrapper = ({ Thread, isActive, ...props }) => {
10
- const onDeleteThread = React.useContext(commentPluginProvider.OnDeleteThreadCallback);
11
- if (onDeleteThread === null) {
12
- throw new Error("OnDeleteThreadCallback not provided");
13
- }
14
- const handleThreadDelete = React.useCallback(
15
- (thread) => {
16
- onDeleteThread(thread.id);
17
- },
18
- [onDeleteThread]
19
- );
20
- return /* @__PURE__ */ React.createElement(Thread, {
21
- onThreadDelete: handleThreadDelete,
22
- "data-state": isActive ? "active" : null,
23
- ...props
24
- });
25
- };
26
- const ThreadPanel = React.forwardRef(
27
- ({ components, overrides, className, ...props }, forwardedRef) => {
28
- const $ = reactUi.useOverrides(overrides);
29
- const { threads } = react.useThreads();
30
- const isThreadActive = React.useContext(commentPluginProvider.IsActiveThreadContext);
31
- const Thread = components?.Thread ?? reactUi.Thread;
32
- return /* @__PURE__ */ React.createElement("div", {
33
- className: classnames.classNames(className, "lb-root lb-lexical-thread-panel"),
34
- ref: forwardedRef,
35
- ...props
36
- }, threads && threads.length > 0 ? threads.map((thread) => {
37
- return /* @__PURE__ */ React.createElement(ThreadWrapper, {
38
- Thread,
39
- isActive: isThreadActive(thread.id),
40
- key: thread.id,
41
- thread,
42
- className: "lb-lexical-thread-panel-thread"
43
- });
44
- }) : /* @__PURE__ */ React.createElement("div", {
45
- className: "lb-lexical-thread-panel-empty"
46
- }, $.THREAD_PANEL_EMPTY));
47
- }
48
- );
49
-
50
- exports.ThreadPanel = ThreadPanel;
51
- //# sourceMappingURL=ThreadPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThreadPanel.js","sources":["../../src/comments/ThreadPanel.tsx"],"sourcesContent":["import type { BaseMetadata, ThreadData } from \"@liveblocks/core\";\nimport { useThreads } from \"@liveblocks/react\";\nimport type {\n CommentOverrides,\n ComposerOverrides,\n GlobalOverrides,\n ThreadOverrides,\n ThreadPanelOverrides,\n ThreadProps,\n} from \"@liveblocks/react-ui\";\nimport { Thread as DefaultThread, useOverrides } from \"@liveblocks/react-ui\";\nimport type { ComponentProps, ComponentType } from \"react\";\nimport React, { forwardRef, useCallback, useContext } from \"react\";\n\nimport { classNames } from \"../classnames\";\nimport {\n IsActiveThreadContext,\n OnDeleteThreadCallback,\n} from \"./comment-plugin-provider\";\n\ntype ThreadPanelComponents = {\n Thread: ComponentType<ThreadProps>;\n};\n\nexport interface ThreadPanelProps extends ComponentProps<\"div\"> {\n /**\n * Override the component's components.\n */\n components?: Partial<ThreadPanelComponents>;\n\n /**\n * Override the component's strings.\n */\n overrides?: Partial<\n GlobalOverrides &\n ThreadPanelOverrides &\n ThreadOverrides &\n CommentOverrides &\n ComposerOverrides\n >;\n}\n\ninterface ThreadWrapperProps extends ThreadProps {\n Thread: ComponentType<ThreadProps>;\n isActive: boolean;\n}\n\nconst ThreadWrapper = ({ Thread, isActive, ...props }: ThreadWrapperProps) => {\n const onDeleteThread = useContext(OnDeleteThreadCallback);\n\n if (onDeleteThread === null) {\n throw new Error(\"OnDeleteThreadCallback not provided\");\n }\n\n const handleThreadDelete = useCallback(\n (thread: ThreadData<BaseMetadata>) => {\n onDeleteThread(thread.id);\n },\n [onDeleteThread]\n );\n\n return (\n <Thread\n onThreadDelete={handleThreadDelete}\n data-state={isActive ? \"active\" : null}\n {...props}\n />\n );\n};\n\nexport const ThreadPanel = forwardRef<HTMLDivElement, ThreadPanelProps>(\n ({ components, overrides, className, ...props }, forwardedRef) => {\n const $ = useOverrides(overrides);\n const { threads } = useThreads();\n const isThreadActive = useContext(IsActiveThreadContext);\n const Thread = components?.Thread ?? DefaultThread;\n\n return (\n <div\n className={classNames(className, \"lb-root lb-lexical-thread-panel\")}\n ref={forwardedRef}\n {...props}\n >\n {threads && threads.length > 0 ? (\n threads.map((thread) => {\n return (\n <ThreadWrapper\n Thread={Thread}\n isActive={isThreadActive(thread.id)}\n key={thread.id}\n thread={thread}\n className=\"lb-lexical-thread-panel-thread\"\n />\n );\n })\n ) : (\n <div className=\"lb-lexical-thread-panel-empty\">\n {$.THREAD_PANEL_EMPTY}\n </div>\n )}\n </div>\n );\n }\n);\n"],"names":["useContext","OnDeleteThreadCallback","useCallback","forwardRef","useOverrides","useThreads","IsActiveThreadContext","DefaultThread","classNames"],"mappings":";;;;;;;;AA+CA,MAAM,gBAAgB,CAAC,EAAE,MAAQ,EAAA,QAAA,EAAA,GAAa,OAAgC,KAAA;AAC5E,EAAM,MAAA,cAAA,GAAiBA,iBAAWC,4CAAsB,CAAA,CAAA;AAExD,EAAA,IAAI,mBAAmB,IAAM,EAAA;AAC3B,IAAM,MAAA,IAAI,MAAM,qCAAqC,CAAA,CAAA;AAAA,GACvD;AAEA,EAAA,MAAM,kBAAqB,GAAAC,iBAAA;AAAA,IACzB,CAAC,MAAqC,KAAA;AACpC,MAAA,cAAA,CAAe,OAAO,EAAE,CAAA,CAAA;AAAA,KAC1B;AAAA,IACA,CAAC,cAAc,CAAA;AAAA,GACjB,CAAA;AAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,IACC,cAAgB,EAAA,kBAAA;AAAA,IAChB,YAAA,EAAY,WAAW,QAAW,GAAA,IAAA;AAAA,IACjC,GAAG,KAAA;AAAA,GACN,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,WAAc,GAAAC,gBAAA;AAAA,EACzB,CAAC,EAAE,UAAA,EAAY,WAAW,SAAc,EAAA,GAAA,KAAA,IAAS,YAAiB,KAAA;AAChE,IAAM,MAAA,CAAA,GAAIC,qBAAa,SAAS,CAAA,CAAA;AAChC,IAAM,MAAA,EAAE,OAAQ,EAAA,GAAIC,gBAAW,EAAA,CAAA;AAC/B,IAAM,MAAA,cAAA,GAAiBL,iBAAWM,2CAAqB,CAAA,CAAA;AACvD,IAAM,MAAA,MAAA,GAAS,YAAY,MAAU,IAAAC,cAAA,CAAA;AAErC,IAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAA,EAAWC,qBAAW,CAAA,SAAA,EAAW,iCAAiC,CAAA;AAAA,MAClE,GAAK,EAAA,YAAA;AAAA,MACJ,GAAG,KAAA;AAAA,KAAA,EAEH,WAAW,OAAQ,CAAA,MAAA,GAAS,IAC3B,OAAQ,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACtB,MAAA,uBACG,KAAA,CAAA,aAAA,CAAA,aAAA,EAAA;AAAA,QACC,MAAA;AAAA,QACA,QAAA,EAAU,cAAe,CAAA,MAAA,CAAO,EAAE,CAAA;AAAA,QAClC,KAAK,MAAO,CAAA,EAAA;AAAA,QACZ,MAAA;AAAA,QACA,SAAU,EAAA,gCAAA;AAAA,OACZ,CAAA,CAAA;AAAA,KAEH,oBAEA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAU,EAAA,+BAAA;AAAA,KACZ,EAAA,CAAA,CAAE,kBACL,CAEJ,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,49 +0,0 @@
1
- import { useThreads } from '@liveblocks/react';
2
- import { useOverrides, Thread } from '@liveblocks/react-ui';
3
- import React__default, { useContext, useCallback, forwardRef } from 'react';
4
- import { classNames } from '../classnames.mjs';
5
- import { OnDeleteThreadCallback, IsActiveThreadContext } from './comment-plugin-provider.mjs';
6
-
7
- const ThreadWrapper = ({ Thread, isActive, ...props }) => {
8
- const onDeleteThread = useContext(OnDeleteThreadCallback);
9
- if (onDeleteThread === null) {
10
- throw new Error("OnDeleteThreadCallback not provided");
11
- }
12
- const handleThreadDelete = useCallback(
13
- (thread) => {
14
- onDeleteThread(thread.id);
15
- },
16
- [onDeleteThread]
17
- );
18
- return /* @__PURE__ */ React__default.createElement(Thread, {
19
- onThreadDelete: handleThreadDelete,
20
- "data-state": isActive ? "active" : null,
21
- ...props
22
- });
23
- };
24
- const ThreadPanel = forwardRef(
25
- ({ components, overrides, className, ...props }, forwardedRef) => {
26
- const $ = useOverrides(overrides);
27
- const { threads } = useThreads();
28
- const isThreadActive = useContext(IsActiveThreadContext);
29
- const Thread$1 = components?.Thread ?? Thread;
30
- return /* @__PURE__ */ React__default.createElement("div", {
31
- className: classNames(className, "lb-root lb-lexical-thread-panel"),
32
- ref: forwardedRef,
33
- ...props
34
- }, threads && threads.length > 0 ? threads.map((thread) => {
35
- return /* @__PURE__ */ React__default.createElement(ThreadWrapper, {
36
- Thread: Thread$1,
37
- isActive: isThreadActive(thread.id),
38
- key: thread.id,
39
- thread,
40
- className: "lb-lexical-thread-panel-thread"
41
- });
42
- }) : /* @__PURE__ */ React__default.createElement("div", {
43
- className: "lb-lexical-thread-panel-empty"
44
- }, $.THREAD_PANEL_EMPTY));
45
- }
46
- );
47
-
48
- export { ThreadPanel };
49
- //# sourceMappingURL=ThreadPanel.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThreadPanel.mjs","sources":["../../src/comments/ThreadPanel.tsx"],"sourcesContent":["import type { BaseMetadata, ThreadData } from \"@liveblocks/core\";\nimport { useThreads } from \"@liveblocks/react\";\nimport type {\n CommentOverrides,\n ComposerOverrides,\n GlobalOverrides,\n ThreadOverrides,\n ThreadPanelOverrides,\n ThreadProps,\n} from \"@liveblocks/react-ui\";\nimport { Thread as DefaultThread, useOverrides } from \"@liveblocks/react-ui\";\nimport type { ComponentProps, ComponentType } from \"react\";\nimport React, { forwardRef, useCallback, useContext } from \"react\";\n\nimport { classNames } from \"../classnames\";\nimport {\n IsActiveThreadContext,\n OnDeleteThreadCallback,\n} from \"./comment-plugin-provider\";\n\ntype ThreadPanelComponents = {\n Thread: ComponentType<ThreadProps>;\n};\n\nexport interface ThreadPanelProps extends ComponentProps<\"div\"> {\n /**\n * Override the component's components.\n */\n components?: Partial<ThreadPanelComponents>;\n\n /**\n * Override the component's strings.\n */\n overrides?: Partial<\n GlobalOverrides &\n ThreadPanelOverrides &\n ThreadOverrides &\n CommentOverrides &\n ComposerOverrides\n >;\n}\n\ninterface ThreadWrapperProps extends ThreadProps {\n Thread: ComponentType<ThreadProps>;\n isActive: boolean;\n}\n\nconst ThreadWrapper = ({ Thread, isActive, ...props }: ThreadWrapperProps) => {\n const onDeleteThread = useContext(OnDeleteThreadCallback);\n\n if (onDeleteThread === null) {\n throw new Error(\"OnDeleteThreadCallback not provided\");\n }\n\n const handleThreadDelete = useCallback(\n (thread: ThreadData<BaseMetadata>) => {\n onDeleteThread(thread.id);\n },\n [onDeleteThread]\n );\n\n return (\n <Thread\n onThreadDelete={handleThreadDelete}\n data-state={isActive ? \"active\" : null}\n {...props}\n />\n );\n};\n\nexport const ThreadPanel = forwardRef<HTMLDivElement, ThreadPanelProps>(\n ({ components, overrides, className, ...props }, forwardedRef) => {\n const $ = useOverrides(overrides);\n const { threads } = useThreads();\n const isThreadActive = useContext(IsActiveThreadContext);\n const Thread = components?.Thread ?? DefaultThread;\n\n return (\n <div\n className={classNames(className, \"lb-root lb-lexical-thread-panel\")}\n ref={forwardedRef}\n {...props}\n >\n {threads && threads.length > 0 ? (\n threads.map((thread) => {\n return (\n <ThreadWrapper\n Thread={Thread}\n isActive={isThreadActive(thread.id)}\n key={thread.id}\n thread={thread}\n className=\"lb-lexical-thread-panel-thread\"\n />\n );\n })\n ) : (\n <div className=\"lb-lexical-thread-panel-empty\">\n {$.THREAD_PANEL_EMPTY}\n </div>\n )}\n </div>\n );\n }\n);\n"],"names":["React","Thread","DefaultThread"],"mappings":";;;;;;AA+CA,MAAM,gBAAgB,CAAC,EAAE,MAAQ,EAAA,QAAA,EAAA,GAAa,OAAgC,KAAA;AAC5E,EAAM,MAAA,cAAA,GAAiB,WAAW,sBAAsB,CAAA,CAAA;AAExD,EAAA,IAAI,mBAAmB,IAAM,EAAA;AAC3B,IAAM,MAAA,IAAI,MAAM,qCAAqC,CAAA,CAAA;AAAA,GACvD;AAEA,EAAA,MAAM,kBAAqB,GAAA,WAAA;AAAA,IACzB,CAAC,MAAqC,KAAA;AACpC,MAAA,cAAA,CAAe,OAAO,EAAE,CAAA,CAAA;AAAA,KAC1B;AAAA,IACA,CAAC,cAAc,CAAA;AAAA,GACjB,CAAA;AAEA,EAAA,uBACGA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,IACC,cAAgB,EAAA,kBAAA;AAAA,IAChB,YAAA,EAAY,WAAW,QAAW,GAAA,IAAA;AAAA,IACjC,GAAG,KAAA;AAAA,GACN,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,WAAc,GAAA,UAAA;AAAA,EACzB,CAAC,EAAE,UAAA,EAAY,WAAW,SAAc,EAAA,GAAA,KAAA,IAAS,YAAiB,KAAA;AAChE,IAAM,MAAA,CAAA,GAAI,aAAa,SAAS,CAAA,CAAA;AAChC,IAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,UAAW,EAAA,CAAA;AAC/B,IAAM,MAAA,cAAA,GAAiB,WAAW,qBAAqB,CAAA,CAAA;AACvD,IAAM,MAAAC,QAAA,GAAS,YAAY,MAAU,IAAAC,MAAA,CAAA;AAErC,IAAA,uBACGF,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAA,EAAW,UAAW,CAAA,SAAA,EAAW,iCAAiC,CAAA;AAAA,MAClE,GAAK,EAAA,YAAA;AAAA,MACJ,GAAG,KAAA;AAAA,KAAA,EAEH,WAAW,OAAQ,CAAA,MAAA,GAAS,IAC3B,OAAQ,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACtB,MAAA,uBACGA,cAAA,CAAA,aAAA,CAAA,aAAA,EAAA;AAAA,gBACCC,QAAA;AAAA,QACA,QAAA,EAAU,cAAe,CAAA,MAAA,CAAO,EAAE,CAAA;AAAA,QAClC,KAAK,MAAO,CAAA,EAAA;AAAA,QACZ,MAAA;AAAA,QACA,SAAU,EAAA,gCAAA;AAAA,OACZ,CAAA,CAAA;AAAA,KAEH,oBAEAD,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAU,EAAA,+BAAA;AAAA,KACZ,EAAA,CAAA,CAAE,kBACL,CAEJ,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}