@liveblocks/react-ui 2.14.0 → 2.15.0

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 (272) hide show
  1. package/dist/_private/index.d.mts +24 -22
  2. package/dist/_private/index.d.ts +24 -22
  3. package/dist/_private/index.js +1 -0
  4. package/dist/_private/index.js.map +1 -1
  5. package/dist/_private/index.mjs +1 -0
  6. package/dist/_private/index.mjs.map +1 -1
  7. package/dist/components/Comment.js +358 -256
  8. package/dist/components/Comment.js.map +1 -1
  9. package/dist/components/Comment.mjs +334 -232
  10. package/dist/components/Comment.mjs.map +1 -1
  11. package/dist/components/Composer.js +308 -225
  12. package/dist/components/Composer.js.map +1 -1
  13. package/dist/components/Composer.mjs +288 -206
  14. package/dist/components/Composer.mjs.map +1 -1
  15. package/dist/components/HistoryVersionSummary.js +28 -32
  16. package/dist/components/HistoryVersionSummary.js.map +1 -1
  17. package/dist/components/HistoryVersionSummary.mjs +27 -31
  18. package/dist/components/HistoryVersionSummary.mjs.map +1 -1
  19. package/dist/components/HistoryVersionSummaryList.js +11 -9
  20. package/dist/components/HistoryVersionSummaryList.js.map +1 -1
  21. package/dist/components/HistoryVersionSummaryList.mjs +10 -8
  22. package/dist/components/HistoryVersionSummaryList.mjs.map +1 -1
  23. package/dist/components/InboxNotification.js +202 -143
  24. package/dist/components/InboxNotification.js.map +1 -1
  25. package/dist/components/InboxNotification.mjs +180 -121
  26. package/dist/components/InboxNotification.mjs.map +1 -1
  27. package/dist/components/InboxNotificationList.js +19 -14
  28. package/dist/components/InboxNotificationList.js.map +1 -1
  29. package/dist/components/InboxNotificationList.mjs +17 -12
  30. package/dist/components/InboxNotificationList.mjs.map +1 -1
  31. package/dist/components/Thread.js +104 -86
  32. package/dist/components/Thread.js.map +1 -1
  33. package/dist/components/Thread.mjs +93 -75
  34. package/dist/components/Thread.mjs.map +1 -1
  35. package/dist/components/internal/Attachment.js +161 -113
  36. package/dist/components/internal/Attachment.js.map +1 -1
  37. package/dist/components/internal/Attachment.mjs +150 -102
  38. package/dist/components/internal/Attachment.mjs.map +1 -1
  39. package/dist/components/internal/Attribution.js +15 -13
  40. package/dist/components/internal/Attribution.js.map +1 -1
  41. package/dist/components/internal/Attribution.mjs +15 -13
  42. package/dist/components/internal/Attribution.mjs.map +1 -1
  43. package/dist/components/internal/Avatar.js +27 -20
  44. package/dist/components/internal/Avatar.js.map +1 -1
  45. package/dist/components/internal/Avatar.mjs +23 -16
  46. package/dist/components/internal/Avatar.mjs.map +1 -1
  47. package/dist/components/internal/Button.js +5 -4
  48. package/dist/components/internal/Button.js.map +1 -1
  49. package/dist/components/internal/Button.mjs +4 -3
  50. package/dist/components/internal/Button.mjs.map +1 -1
  51. package/dist/components/internal/Dropdown.js +27 -19
  52. package/dist/components/internal/Dropdown.js.map +1 -1
  53. package/dist/components/internal/Dropdown.mjs +26 -18
  54. package/dist/components/internal/Dropdown.mjs.map +1 -1
  55. package/dist/components/internal/Emoji.js +4 -3
  56. package/dist/components/internal/Emoji.js.map +1 -1
  57. package/dist/components/internal/Emoji.mjs +3 -2
  58. package/dist/components/internal/Emoji.mjs.map +1 -1
  59. package/dist/components/internal/EmojiPicker.js +96 -72
  60. package/dist/components/internal/EmojiPicker.js.map +1 -1
  61. package/dist/components/internal/EmojiPicker.mjs +90 -66
  62. package/dist/components/internal/EmojiPicker.mjs.map +1 -1
  63. package/dist/components/internal/Icon.js +5 -4
  64. package/dist/components/internal/Icon.js.map +1 -1
  65. package/dist/components/internal/Icon.mjs +5 -4
  66. package/dist/components/internal/Icon.mjs.map +1 -1
  67. package/dist/components/internal/InboxNotificationThread.js +53 -38
  68. package/dist/components/internal/InboxNotificationThread.js.map +1 -1
  69. package/dist/components/internal/InboxNotificationThread.mjs +53 -38
  70. package/dist/components/internal/InboxNotificationThread.mjs.map +1 -1
  71. package/dist/components/internal/List.js +8 -6
  72. package/dist/components/internal/List.js.map +1 -1
  73. package/dist/components/internal/List.mjs +6 -4
  74. package/dist/components/internal/List.mjs.map +1 -1
  75. package/dist/components/internal/Room.js +8 -6
  76. package/dist/components/internal/Room.js.map +1 -1
  77. package/dist/components/internal/Room.mjs +7 -5
  78. package/dist/components/internal/Room.mjs.map +1 -1
  79. package/dist/components/internal/Tooltip.js +49 -33
  80. package/dist/components/internal/Tooltip.js.map +1 -1
  81. package/dist/components/internal/Tooltip.mjs +46 -30
  82. package/dist/components/internal/Tooltip.mjs.map +1 -1
  83. package/dist/components/internal/User.js +8 -6
  84. package/dist/components/internal/User.js.map +1 -1
  85. package/dist/components/internal/User.mjs +7 -5
  86. package/dist/components/internal/User.mjs.map +1 -1
  87. package/dist/components.js +12 -29
  88. package/dist/components.js.map +1 -1
  89. package/dist/components.mjs +6 -5
  90. package/dist/components.mjs.map +1 -1
  91. package/dist/config.js +16 -12
  92. package/dist/config.js.map +1 -1
  93. package/dist/config.mjs +13 -9
  94. package/dist/config.mjs.map +1 -1
  95. package/dist/icons/ArrowDown.js +7 -6
  96. package/dist/icons/ArrowDown.js.map +1 -1
  97. package/dist/icons/ArrowDown.mjs +7 -6
  98. package/dist/icons/ArrowDown.mjs.map +1 -1
  99. package/dist/icons/ArrowUp.js +7 -6
  100. package/dist/icons/ArrowUp.js.map +1 -1
  101. package/dist/icons/ArrowUp.mjs +7 -6
  102. package/dist/icons/ArrowUp.mjs.map +1 -1
  103. package/dist/icons/Attachment.js +7 -6
  104. package/dist/icons/Attachment.js.map +1 -1
  105. package/dist/icons/Attachment.mjs +7 -6
  106. package/dist/icons/Attachment.mjs.map +1 -1
  107. package/dist/icons/Bold.js +7 -6
  108. package/dist/icons/Bold.js.map +1 -1
  109. package/dist/icons/Bold.mjs +7 -6
  110. package/dist/icons/Bold.mjs.map +1 -1
  111. package/dist/icons/Check.js +7 -6
  112. package/dist/icons/Check.js.map +1 -1
  113. package/dist/icons/Check.mjs +7 -6
  114. package/dist/icons/Check.mjs.map +1 -1
  115. package/dist/icons/Code.js +7 -6
  116. package/dist/icons/Code.js.map +1 -1
  117. package/dist/icons/Code.mjs +7 -6
  118. package/dist/icons/Code.mjs.map +1 -1
  119. package/dist/icons/Cross.js +12 -8
  120. package/dist/icons/Cross.js.map +1 -1
  121. package/dist/icons/Cross.mjs +12 -8
  122. package/dist/icons/Cross.mjs.map +1 -1
  123. package/dist/icons/Delete.js +7 -6
  124. package/dist/icons/Delete.js.map +1 -1
  125. package/dist/icons/Delete.mjs +7 -6
  126. package/dist/icons/Delete.mjs.map +1 -1
  127. package/dist/icons/Edit.js +7 -6
  128. package/dist/icons/Edit.js.map +1 -1
  129. package/dist/icons/Edit.mjs +7 -6
  130. package/dist/icons/Edit.mjs.map +1 -1
  131. package/dist/icons/Ellipsis.js +21 -16
  132. package/dist/icons/Ellipsis.js.map +1 -1
  133. package/dist/icons/Ellipsis.mjs +21 -16
  134. package/dist/icons/Ellipsis.mjs.map +1 -1
  135. package/dist/icons/Emoji.js +25 -18
  136. package/dist/icons/Emoji.js.map +1 -1
  137. package/dist/icons/Emoji.mjs +25 -18
  138. package/dist/icons/Emoji.mjs.map +1 -1
  139. package/dist/icons/EmojiAdd.js +28 -20
  140. package/dist/icons/EmojiAdd.js.map +1 -1
  141. package/dist/icons/EmojiAdd.mjs +28 -20
  142. package/dist/icons/EmojiAdd.mjs.map +1 -1
  143. package/dist/icons/Italic.js +7 -6
  144. package/dist/icons/Italic.js.map +1 -1
  145. package/dist/icons/Italic.mjs +7 -6
  146. package/dist/icons/Italic.mjs.map +1 -1
  147. package/dist/icons/Mention.js +12 -8
  148. package/dist/icons/Mention.js.map +1 -1
  149. package/dist/icons/Mention.mjs +12 -8
  150. package/dist/icons/Mention.mjs.map +1 -1
  151. package/dist/icons/Resolve.js +14 -10
  152. package/dist/icons/Resolve.js.map +1 -1
  153. package/dist/icons/Resolve.mjs +14 -10
  154. package/dist/icons/Resolve.mjs.map +1 -1
  155. package/dist/icons/Resolved.js +16 -12
  156. package/dist/icons/Resolved.js.map +1 -1
  157. package/dist/icons/Resolved.mjs +16 -12
  158. package/dist/icons/Resolved.mjs.map +1 -1
  159. package/dist/icons/Restore.js +12 -8
  160. package/dist/icons/Restore.js.map +1 -1
  161. package/dist/icons/Restore.mjs +12 -8
  162. package/dist/icons/Restore.mjs.map +1 -1
  163. package/dist/icons/Search.js +7 -6
  164. package/dist/icons/Search.js.map +1 -1
  165. package/dist/icons/Search.mjs +7 -6
  166. package/dist/icons/Search.mjs.map +1 -1
  167. package/dist/icons/Send.js +7 -6
  168. package/dist/icons/Send.js.map +1 -1
  169. package/dist/icons/Send.mjs +7 -6
  170. package/dist/icons/Send.mjs.map +1 -1
  171. package/dist/icons/Spinner.js +8 -7
  172. package/dist/icons/Spinner.js.map +1 -1
  173. package/dist/icons/Spinner.mjs +8 -7
  174. package/dist/icons/Spinner.mjs.map +1 -1
  175. package/dist/icons/Strikethrough.js +7 -6
  176. package/dist/icons/Strikethrough.js.map +1 -1
  177. package/dist/icons/Strikethrough.mjs +7 -6
  178. package/dist/icons/Strikethrough.mjs.map +1 -1
  179. package/dist/icons/Warning.js +14 -10
  180. package/dist/icons/Warning.js.map +1 -1
  181. package/dist/icons/Warning.mjs +14 -10
  182. package/dist/icons/Warning.mjs.map +1 -1
  183. package/dist/icons/index.js +42 -0
  184. package/dist/icons/index.js.map +1 -0
  185. package/dist/icons/index.mjs +19 -0
  186. package/dist/icons/index.mjs.map +1 -0
  187. package/dist/index.d.mts +14 -12
  188. package/dist/index.d.ts +14 -12
  189. package/dist/overrides.js +65 -36
  190. package/dist/overrides.js.map +1 -1
  191. package/dist/overrides.mjs +59 -12
  192. package/dist/overrides.mjs.map +1 -1
  193. package/dist/primitives/Comment/index.js +75 -66
  194. package/dist/primitives/Comment/index.js.map +1 -1
  195. package/dist/primitives/Comment/index.mjs +71 -62
  196. package/dist/primitives/Comment/index.mjs.map +1 -1
  197. package/dist/primitives/Composer/contexts.js +11 -11
  198. package/dist/primitives/Composer/index.js +343 -284
  199. package/dist/primitives/Composer/index.js.map +1 -1
  200. package/dist/primitives/Composer/index.mjs +262 -203
  201. package/dist/primitives/Composer/index.mjs.map +1 -1
  202. package/dist/primitives/Composer/utils.js +20 -21
  203. package/dist/primitives/Composer/utils.js.map +1 -1
  204. package/dist/primitives/Composer/utils.mjs +4 -5
  205. package/dist/primitives/Composer/utils.mjs.map +1 -1
  206. package/dist/primitives/EmojiPicker/contexts.js +3 -3
  207. package/dist/primitives/EmojiPicker/index.js +160 -142
  208. package/dist/primitives/EmojiPicker/index.js.map +1 -1
  209. package/dist/primitives/EmojiPicker/index.mjs +122 -104
  210. package/dist/primitives/EmojiPicker/index.mjs.map +1 -1
  211. package/dist/primitives/FileSize.js +9 -7
  212. package/dist/primitives/FileSize.js.map +1 -1
  213. package/dist/primitives/FileSize.mjs +7 -5
  214. package/dist/primitives/FileSize.mjs.map +1 -1
  215. package/dist/primitives/Timestamp.js +12 -10
  216. package/dist/primitives/Timestamp.js.map +1 -1
  217. package/dist/primitives/Timestamp.mjs +7 -5
  218. package/dist/primitives/Timestamp.mjs.map +1 -1
  219. package/dist/primitives/index.d.mts +24 -23
  220. package/dist/primitives/index.d.ts +24 -23
  221. package/dist/primitives/internal/Emoji.js +7 -5
  222. package/dist/primitives/internal/Emoji.js.map +1 -1
  223. package/dist/primitives/internal/Emoji.mjs +6 -4
  224. package/dist/primitives/internal/Emoji.mjs.map +1 -1
  225. package/dist/shared.js +2 -7
  226. package/dist/shared.js.map +1 -1
  227. package/dist/shared.mjs +2 -7
  228. package/dist/shared.mjs.map +1 -1
  229. package/dist/slate/plugins/auto-links.mjs +1 -1
  230. package/dist/slate/plugins/custom-links.mjs +1 -1
  231. package/dist/slate/plugins/mentions.mjs +1 -1
  232. package/dist/utils/Persist.js +19 -18
  233. package/dist/utils/Persist.js.map +1 -1
  234. package/dist/utils/Persist.mjs +7 -6
  235. package/dist/utils/Persist.mjs.map +1 -1
  236. package/dist/utils/Portal.js +5 -4
  237. package/dist/utils/Portal.js.map +1 -1
  238. package/dist/utils/Portal.mjs +4 -3
  239. package/dist/utils/Portal.mjs.map +1 -1
  240. package/dist/utils/use-controllable-state.js +5 -5
  241. package/dist/utils/use-index.js +7 -7
  242. package/dist/utils/use-initial.js +2 -2
  243. package/dist/utils/use-interval.js +4 -4
  244. package/dist/utils/use-latest.js +3 -3
  245. package/dist/utils/use-observable.js +2 -2
  246. package/dist/utils/use-refs.js +2 -2
  247. package/dist/utils/use-rerender.js +2 -2
  248. package/dist/utils/use-visible.js +24 -2
  249. package/dist/utils/use-visible.js.map +1 -1
  250. package/dist/utils/use-visible.mjs +23 -2
  251. package/dist/utils/use-visible.mjs.map +1 -1
  252. package/dist/utils/use-window-focus.js +2 -2
  253. package/dist/utils/use-window-focus.js.map +1 -1
  254. package/dist/utils/use-window-focus.mjs +1 -1
  255. package/dist/utils/use-window-focus.mjs.map +1 -1
  256. package/dist/version.js +2 -2
  257. package/dist/version.js.map +1 -1
  258. package/dist/version.mjs +2 -2
  259. package/dist/version.mjs.map +1 -1
  260. package/package.json +10 -25
  261. package/dist/utils/use-id.js +0 -29
  262. package/dist/utils/use-id.js.map +0 -1
  263. package/dist/utils/use-id.mjs +0 -27
  264. package/dist/utils/use-id.mjs.map +0 -1
  265. package/dist/utils/use-layout-effect.js +0 -8
  266. package/dist/utils/use-layout-effect.js.map +0 -1
  267. package/dist/utils/use-layout-effect.mjs +0 -6
  268. package/dist/utils/use-layout-effect.mjs.map +0 -1
  269. package/dist/utils/use-transition.js +0 -16
  270. package/dist/utils/use-transition.js.map +0 -1
  271. package/dist/utils/use-transition.mjs +0 -14
  272. package/dist/utils/use-transition.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
- 'use client';
2
- import { useAddRoomCommentReaction, useRemoveRoomCommentReaction, useDeleteRoomComment, useEditRoomComment, useRoomAttachmentUrl, useMarkRoomThreadAsRead } from '@liveblocks/react/_private';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { useAddRoomCommentReaction, useRemoveRoomCommentReaction, useRoomAttachmentUrl, useMarkRoomThreadAsRead, useDeleteRoomComment, useEditRoomComment } from '@liveblocks/react/_private';
3
3
  import * as TogglePrimitive from '@radix-ui/react-toggle';
4
- import React__default, { forwardRef, useMemo, useCallback, useRef, useState, useEffect } from 'react';
4
+ import { forwardRef, useMemo, useCallback, useRef, useState, useEffect } from 'react';
5
5
  import { CheckIcon } from '../icons/Check.mjs';
6
6
  import { CrossIcon } from '../icons/Cross.mjs';
7
7
  import { DeleteIcon } from '../icons/Delete.mjs';
@@ -9,7 +9,7 @@ import { EditIcon } from '../icons/Edit.mjs';
9
9
  import { EllipsisIcon } from '../icons/Ellipsis.mjs';
10
10
  import { EmojiAddIcon } from '../icons/EmojiAdd.mjs';
11
11
  import { useOverrides } from '../overrides.mjs';
12
- import { Body as CommentBody, Mention as CommentMention$1, Link as CommentLink$1 } from '../primitives/Comment/index.mjs';
12
+ import { Mention as CommentMention$1, Link as CommentLink$1, Body as CommentBody } from '../primitives/Comment/index.mjs';
13
13
  import { Submit as ComposerSubmit } from '../primitives/Composer/index.mjs';
14
14
  import { Timestamp } from '../primitives/Timestamp.mjs';
15
15
  import { useCurrentUserId } from '../shared.mjs';
@@ -20,7 +20,7 @@ import { useRefs } from '../utils/use-refs.mjs';
20
20
  import { useVisibleCallback } from '../utils/use-visible.mjs';
21
21
  import { useWindowFocus } from '../utils/use-window-focus.mjs';
22
22
  import { Composer } from './Composer.mjs';
23
- import { separateMediaAttachments, MediaAttachment, FileAttachment } from './internal/Attachment.mjs';
23
+ import { MediaAttachment, FileAttachment, separateMediaAttachments } from './internal/Attachment.mjs';
24
24
  import { Avatar } from './internal/Avatar.mjs';
25
25
  import { Button } from './internal/Button.mjs';
26
26
  import { Dropdown, DropdownItem } from './internal/Dropdown.mjs';
@@ -33,6 +33,7 @@ import { TooltipProvider } from '@radix-ui/react-tooltip';
33
33
  import { PopoverTrigger } from '@radix-ui/react-popover';
34
34
  import { DropdownMenuTrigger } from '@radix-ui/react-dropdown-menu';
35
35
 
36
+ "use client";
36
37
  const REACTIONS_TRUNCATE = 5;
37
38
  function CommentMention({
38
39
  userId,
@@ -40,13 +41,17 @@ function CommentMention({
40
41
  ...props
41
42
  }) {
42
43
  const currentId = useCurrentUserId();
43
- return /* @__PURE__ */ React__default.createElement(CommentMention$1, {
44
+ return /* @__PURE__ */ jsxs(CommentMention$1, {
44
45
  className: classNames("lb-comment-mention", className),
45
46
  "data-self": userId === currentId ? "" : void 0,
46
- ...props
47
- }, MENTION_CHARACTER, /* @__PURE__ */ React__default.createElement(User, {
48
- userId
49
- }));
47
+ ...props,
48
+ children: [
49
+ MENTION_CHARACTER,
50
+ /* @__PURE__ */ jsx(User, {
51
+ userId
52
+ })
53
+ ]
54
+ });
50
55
  }
51
56
  function CommentLink({
52
57
  href,
@@ -54,11 +59,12 @@ function CommentLink({
54
59
  className,
55
60
  ...props
56
61
  }) {
57
- return /* @__PURE__ */ React__default.createElement(CommentLink$1, {
62
+ return /* @__PURE__ */ jsx(CommentLink$1, {
58
63
  className: classNames("lb-comment-link", className),
59
64
  href,
60
- ...props
61
- }, children);
65
+ ...props,
66
+ children
67
+ });
62
68
  }
63
69
  function CommentNonInteractiveLink({
64
70
  href: _href,
@@ -66,14 +72,15 @@ function CommentNonInteractiveLink({
66
72
  className,
67
73
  ...props
68
74
  }) {
69
- return /* @__PURE__ */ React__default.createElement("span", {
75
+ return /* @__PURE__ */ jsx("span", {
70
76
  className: classNames("lb-comment-link", className),
71
- ...props
72
- }, children);
77
+ ...props,
78
+ children
79
+ });
73
80
  }
74
81
  const CommentReactionButton = forwardRef(({ reaction, overrides, className, ...props }, forwardedRef) => {
75
82
  const $ = useOverrides(overrides);
76
- return /* @__PURE__ */ React__default.createElement(Button, {
83
+ return /* @__PURE__ */ jsxs(Button, {
77
84
  className: classNames("lb-comment-reaction", className),
78
85
  variant: "outline",
79
86
  "aria-label": $.COMMENT_REACTION_DESCRIPTION(
@@ -81,13 +88,18 @@ const CommentReactionButton = forwardRef(({ reaction, overrides, className, ...p
81
88
  reaction.users.length
82
89
  ),
83
90
  ...props,
84
- ref: forwardedRef
85
- }, /* @__PURE__ */ React__default.createElement(Emoji, {
86
- className: "lb-comment-reaction-emoji",
87
- emoji: reaction.emoji
88
- }), /* @__PURE__ */ React__default.createElement("span", {
89
- className: "lb-comment-reaction-count"
90
- }, reaction.users.length));
91
+ ref: forwardedRef,
92
+ children: [
93
+ /* @__PURE__ */ jsx(Emoji, {
94
+ className: "lb-comment-reaction-emoji",
95
+ emoji: reaction.emoji
96
+ }),
97
+ /* @__PURE__ */ jsx("span", {
98
+ className: "lb-comment-reaction-count",
99
+ children: reaction.users.length
100
+ })
101
+ ]
102
+ });
91
103
  });
92
104
  const CommentReaction = forwardRef(({ comment, reaction, overrides, disabled, ...props }, forwardedRef) => {
93
105
  const addReaction = useAddRoomCommentReaction(comment.roomId);
@@ -98,20 +110,21 @@ const CommentReaction = forwardRef(({ comment, reaction, overrides, disabled, ..
98
110
  }, [currentId, reaction]);
99
111
  const $ = useOverrides(overrides);
100
112
  const tooltipContent = useMemo(
101
- () => /* @__PURE__ */ React__default.createElement("span", null, $.COMMENT_REACTION_LIST(
102
- /* @__PURE__ */ React__default.createElement(List, {
103
- values: reaction.users.map((users) => /* @__PURE__ */ React__default.createElement(User, {
104
- key: users.id,
105
- userId: users.id,
106
- replaceSelf: true
107
- })),
108
- formatRemaining: $.LIST_REMAINING_USERS,
109
- truncate: REACTIONS_TRUNCATE,
110
- locale: $.locale
111
- }),
112
- reaction.emoji,
113
- reaction.users.length
114
- )),
113
+ () => /* @__PURE__ */ jsx("span", {
114
+ children: $.COMMENT_REACTION_LIST(
115
+ /* @__PURE__ */ jsx(List, {
116
+ values: reaction.users.map((users) => /* @__PURE__ */ jsx(User, {
117
+ userId: users.id,
118
+ replaceSelf: true
119
+ }, users.id)),
120
+ formatRemaining: $.LIST_REMAINING_USERS,
121
+ truncate: REACTIONS_TRUNCATE,
122
+ locale: $.locale
123
+ }),
124
+ reaction.emoji,
125
+ reaction.users.length
126
+ )
127
+ }),
115
128
  [$, reaction]
116
129
  );
117
130
  const stopPropagation = useCallback((event) => {
@@ -135,30 +148,32 @@ const CommentReaction = forwardRef(({ comment, reaction, overrides, disabled, ..
135
148
  },
136
149
  [addReaction, comment.threadId, comment.id, reaction.emoji, removeReaction]
137
150
  );
138
- return /* @__PURE__ */ React__default.createElement(Tooltip, {
151
+ return /* @__PURE__ */ jsx(Tooltip, {
139
152
  content: tooltipContent,
140
153
  multiline: true,
141
- className: "lb-comment-reaction-tooltip"
142
- }, /* @__PURE__ */ React__default.createElement(TogglePrimitive.Root, {
143
- asChild: true,
144
- pressed: isActive,
145
- onPressedChange: handlePressedChange,
146
- onClick: stopPropagation,
147
- disabled,
148
- ref: forwardedRef
149
- }, /* @__PURE__ */ React__default.createElement(CommentReactionButton, {
150
- "data-self": isActive ? "" : void 0,
151
- reaction,
152
- overrides,
153
- ...props
154
- })));
154
+ className: "lb-comment-reaction-tooltip",
155
+ children: /* @__PURE__ */ jsx(TogglePrimitive.Root, {
156
+ asChild: true,
157
+ pressed: isActive,
158
+ onPressedChange: handlePressedChange,
159
+ onClick: stopPropagation,
160
+ disabled,
161
+ ref: forwardedRef,
162
+ children: /* @__PURE__ */ jsx(CommentReactionButton, {
163
+ "data-self": isActive ? "" : void 0,
164
+ reaction,
165
+ overrides,
166
+ ...props
167
+ })
168
+ })
169
+ });
155
170
  });
156
171
  const CommentNonInteractiveReaction = forwardRef(({ reaction, overrides, ...props }, forwardedRef) => {
157
172
  const currentId = useCurrentUserId();
158
173
  const isActive = useMemo(() => {
159
174
  return reaction.users.some((users) => users.id === currentId);
160
175
  }, [currentId, reaction]);
161
- return /* @__PURE__ */ React__default.createElement(CommentReactionButton, {
176
+ return /* @__PURE__ */ jsx(CommentReactionButton, {
162
177
  disableable: false,
163
178
  "data-self": isActive ? "" : void 0,
164
179
  reaction,
@@ -197,7 +212,7 @@ function CommentMediaAttachment({
197
212
  },
198
213
  [attachment, onAttachmentClick, url]
199
214
  );
200
- return /* @__PURE__ */ React__default.createElement(MediaAttachment, {
215
+ return /* @__PURE__ */ jsx(MediaAttachment, {
201
216
  className: classNames("lb-comment-attachment", className),
202
217
  ...props,
203
218
  attachment,
@@ -229,7 +244,7 @@ function CommentFileAttachment({
229
244
  },
230
245
  [attachment, onAttachmentClick, url]
231
246
  );
232
- return /* @__PURE__ */ React__default.createElement(FileAttachment, {
247
+ return /* @__PURE__ */ jsx(FileAttachment, {
233
248
  className: classNames("lb-comment-attachment", className),
234
249
  ...props,
235
250
  attachment,
@@ -242,7 +257,7 @@ function CommentNonInteractiveFileAttachment({
242
257
  className,
243
258
  ...props
244
259
  }) {
245
- return /* @__PURE__ */ React__default.createElement(FileAttachment, {
260
+ return /* @__PURE__ */ jsx(FileAttachment, {
246
261
  className: classNames("lb-comment-attachment", className),
247
262
  allowMediaPreview: false,
248
263
  ...props
@@ -385,182 +400,269 @@ const Comment = forwardRef(
385
400
  if (!showDeleted && !comment.body) {
386
401
  return null;
387
402
  }
388
- return /* @__PURE__ */ React__default.createElement(TooltipProvider, null, autoMarkReadThreadId && /* @__PURE__ */ React__default.createElement(AutoMarkReadThreadIdHandler, {
389
- commentRef: ref,
390
- threadId: autoMarkReadThreadId,
391
- roomId: comment.roomId
392
- }), /* @__PURE__ */ React__default.createElement("div", {
393
- id: comment.id,
394
- className: classNames(
395
- "lb-root lb-comment",
396
- indentContent && "lb-comment:indent-content",
397
- showActions === "hover" && "lb-comment:show-actions-hover",
398
- (isMoreActionOpen || isReactionActionOpen) && "lb-comment:action-open",
399
- className
400
- ),
401
- "data-deleted": !comment.body ? "" : void 0,
402
- "data-editing": isEditing ? "" : void 0,
403
- "data-target": isTarget ? "" : void 0,
404
- dir: $.dir,
405
- ...props,
406
- ref: mergedRefs
407
- }, /* @__PURE__ */ React__default.createElement("div", {
408
- className: "lb-comment-header"
409
- }, /* @__PURE__ */ React__default.createElement("div", {
410
- className: "lb-comment-details"
411
- }, /* @__PURE__ */ React__default.createElement(Avatar, {
412
- className: "lb-comment-avatar",
413
- userId: comment.userId,
414
- onClick: handleAuthorClick
415
- }), /* @__PURE__ */ React__default.createElement("span", {
416
- className: "lb-comment-details-labels"
417
- }, /* @__PURE__ */ React__default.createElement(User, {
418
- className: "lb-comment-author",
419
- userId: comment.userId,
420
- onClick: handleAuthorClick
421
- }), /* @__PURE__ */ React__default.createElement("span", {
422
- className: "lb-comment-date"
423
- }, /* @__PURE__ */ React__default.createElement(Timestamp, {
424
- locale: $.locale,
425
- date: comment.createdAt,
426
- className: "lb-date lb-comment-date-created"
427
- }), comment.editedAt && comment.body && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, " ", /* @__PURE__ */ React__default.createElement("span", {
428
- className: "lb-comment-date-edited"
429
- }, $.COMMENT_EDITED))))), showActions && !isEditing && /* @__PURE__ */ React__default.createElement("div", {
430
- className: classNames(
431
- "lb-comment-actions",
432
- additionalActionsClassName
433
- )
434
- }, additionalActions ?? null, showReactions && /* @__PURE__ */ React__default.createElement(EmojiPicker, {
435
- onEmojiSelect: handleReactionSelect,
436
- onOpenChange: setReactionActionOpen
437
- }, /* @__PURE__ */ React__default.createElement(Tooltip, {
438
- content: $.COMMENT_ADD_REACTION
439
- }, /* @__PURE__ */ React__default.createElement(PopoverTrigger, {
440
- asChild: true
441
- }, /* @__PURE__ */ React__default.createElement(Button, {
442
- className: "lb-comment-action",
443
- onClick: stopPropagation,
444
- "aria-label": $.COMMENT_ADD_REACTION
445
- }, /* @__PURE__ */ React__default.createElement(EmojiAddIcon, {
446
- className: "lb-button-icon"
447
- }))))), comment.userId === currentUserId && /* @__PURE__ */ React__default.createElement(Dropdown, {
448
- open: isMoreActionOpen,
449
- onOpenChange: setMoreActionOpen,
450
- align: "end",
451
- content: /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(DropdownItem, {
452
- onSelect: handleEdit,
453
- onClick: stopPropagation
454
- }, /* @__PURE__ */ React__default.createElement(EditIcon, {
455
- className: "lb-dropdown-item-icon"
456
- }), $.COMMENT_EDIT), /* @__PURE__ */ React__default.createElement(DropdownItem, {
457
- onSelect: handleDelete,
458
- onClick: stopPropagation
459
- }, /* @__PURE__ */ React__default.createElement(DeleteIcon, {
460
- className: "lb-dropdown-item-icon"
461
- }), $.COMMENT_DELETE))
462
- }, /* @__PURE__ */ React__default.createElement(Tooltip, {
463
- content: $.COMMENT_MORE
464
- }, /* @__PURE__ */ React__default.createElement(DropdownMenuTrigger, {
465
- asChild: true
466
- }, /* @__PURE__ */ React__default.createElement(Button, {
467
- className: "lb-comment-action",
468
- disabled: !comment.body,
469
- onClick: stopPropagation,
470
- "aria-label": $.COMMENT_MORE
471
- }, /* @__PURE__ */ React__default.createElement(EllipsisIcon, {
472
- className: "lb-button-icon"
473
- }))))))), /* @__PURE__ */ React__default.createElement("div", {
474
- className: "lb-comment-content"
475
- }, isEditing ? /* @__PURE__ */ React__default.createElement(Composer, {
476
- className: "lb-comment-composer",
477
- onComposerSubmit: handleEditSubmit,
478
- defaultValue: comment.body,
479
- defaultAttachments: comment.attachments,
480
- autoFocus: true,
481
- showAttribution: false,
482
- showAttachments,
483
- showFormattingControls: showComposerFormattingControls,
484
- actions: /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(Tooltip, {
485
- content: $.COMMENT_EDIT_COMPOSER_CANCEL,
486
- "aria-label": $.COMMENT_EDIT_COMPOSER_CANCEL
487
- }, /* @__PURE__ */ React__default.createElement(Button, {
488
- className: "lb-composer-action",
489
- onClick: handleEditCancel
490
- }, /* @__PURE__ */ React__default.createElement(CrossIcon, {
491
- className: "lb-button-icon"
492
- }))), /* @__PURE__ */ React__default.createElement(ShortcutTooltip, {
493
- content: $.COMMENT_EDIT_COMPOSER_SAVE,
494
- shortcut: /* @__PURE__ */ React__default.createElement(ShortcutTooltipKey, {
495
- name: "enter"
496
- })
497
- }, /* @__PURE__ */ React__default.createElement(ComposerSubmit, {
498
- asChild: true
499
- }, /* @__PURE__ */ React__default.createElement(Button, {
500
- variant: "primary",
501
- className: "lb-composer-action",
502
- onClick: stopPropagation,
503
- "aria-label": $.COMMENT_EDIT_COMPOSER_SAVE
504
- }, /* @__PURE__ */ React__default.createElement(CheckIcon, {
505
- className: "lb-button-icon"
506
- }))))),
507
- overrides: {
508
- COMPOSER_PLACEHOLDER: $.COMMENT_EDIT_COMPOSER_PLACEHOLDER
509
- },
510
- roomId: comment.roomId
511
- }) : comment.body ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(CommentBody, {
512
- className: "lb-comment-body",
513
- body: comment.body,
514
- components: {
515
- Mention: ({ userId }) => /* @__PURE__ */ React__default.createElement(CommentMention, {
516
- userId,
517
- onClick: (event) => onMentionClick?.(userId, event)
403
+ return /* @__PURE__ */ jsxs(TooltipProvider, {
404
+ children: [
405
+ autoMarkReadThreadId && /* @__PURE__ */ jsx(AutoMarkReadThreadIdHandler, {
406
+ commentRef: ref,
407
+ threadId: autoMarkReadThreadId,
408
+ roomId: comment.roomId
518
409
  }),
519
- Link: CommentLink
520
- }
521
- }), showAttachments && (mediaAttachments.length > 0 || fileAttachments.length > 0) ? /* @__PURE__ */ React__default.createElement("div", {
522
- className: "lb-comment-attachments"
523
- }, mediaAttachments.length > 0 ? /* @__PURE__ */ React__default.createElement("div", {
524
- className: "lb-attachments"
525
- }, mediaAttachments.map((attachment) => /* @__PURE__ */ React__default.createElement(CommentMediaAttachment, {
526
- key: attachment.id,
527
- attachment,
528
- overrides,
529
- onAttachmentClick,
530
- roomId: comment.roomId
531
- }))) : null, fileAttachments.length > 0 ? /* @__PURE__ */ React__default.createElement("div", {
532
- className: "lb-attachments"
533
- }, fileAttachments.map((attachment) => /* @__PURE__ */ React__default.createElement(CommentFileAttachment, {
534
- key: attachment.id,
535
- attachment,
536
- overrides,
537
- onAttachmentClick,
538
- roomId: comment.roomId
539
- }))) : null) : null, showReactions && comment.reactions.length > 0 && /* @__PURE__ */ React__default.createElement("div", {
540
- className: "lb-comment-reactions"
541
- }, comment.reactions.map((reaction) => /* @__PURE__ */ React__default.createElement(CommentReaction, {
542
- key: reaction.emoji,
543
- comment,
544
- reaction,
545
- overrides
546
- })), /* @__PURE__ */ React__default.createElement(EmojiPicker, {
547
- onEmojiSelect: handleReactionSelect
548
- }, /* @__PURE__ */ React__default.createElement(Tooltip, {
549
- content: $.COMMENT_ADD_REACTION
550
- }, /* @__PURE__ */ React__default.createElement(PopoverTrigger, {
551
- asChild: true
552
- }, /* @__PURE__ */ React__default.createElement(Button, {
553
- className: "lb-comment-reaction lb-comment-reaction-add",
554
- variant: "outline",
555
- onClick: stopPropagation,
556
- "aria-label": $.COMMENT_ADD_REACTION
557
- }, /* @__PURE__ */ React__default.createElement(EmojiAddIcon, {
558
- className: "lb-button-icon"
559
- }))))))) : /* @__PURE__ */ React__default.createElement("div", {
560
- className: "lb-comment-body"
561
- }, /* @__PURE__ */ React__default.createElement("p", {
562
- className: "lb-comment-deleted"
563
- }, $.COMMENT_DELETED)))));
410
+ /* @__PURE__ */ jsxs("div", {
411
+ id: comment.id,
412
+ className: classNames(
413
+ "lb-root lb-comment",
414
+ indentContent && "lb-comment:indent-content",
415
+ showActions === "hover" && "lb-comment:show-actions-hover",
416
+ (isMoreActionOpen || isReactionActionOpen) && "lb-comment:action-open",
417
+ className
418
+ ),
419
+ "data-deleted": !comment.body ? "" : void 0,
420
+ "data-editing": isEditing ? "" : void 0,
421
+ "data-target": isTarget ? "" : void 0,
422
+ dir: $.dir,
423
+ ...props,
424
+ ref: mergedRefs,
425
+ children: [
426
+ /* @__PURE__ */ jsxs("div", {
427
+ className: "lb-comment-header",
428
+ children: [
429
+ /* @__PURE__ */ jsxs("div", {
430
+ className: "lb-comment-details",
431
+ children: [
432
+ /* @__PURE__ */ jsx(Avatar, {
433
+ className: "lb-comment-avatar",
434
+ userId: comment.userId,
435
+ onClick: handleAuthorClick
436
+ }),
437
+ /* @__PURE__ */ jsxs("span", {
438
+ className: "lb-comment-details-labels",
439
+ children: [
440
+ /* @__PURE__ */ jsx(User, {
441
+ className: "lb-comment-author",
442
+ userId: comment.userId,
443
+ onClick: handleAuthorClick
444
+ }),
445
+ /* @__PURE__ */ jsxs("span", {
446
+ className: "lb-comment-date",
447
+ children: [
448
+ /* @__PURE__ */ jsx(Timestamp, {
449
+ locale: $.locale,
450
+ date: comment.createdAt,
451
+ className: "lb-date lb-comment-date-created"
452
+ }),
453
+ comment.editedAt && comment.body && /* @__PURE__ */ jsxs(Fragment, {
454
+ children: [
455
+ " ",
456
+ /* @__PURE__ */ jsx("span", {
457
+ className: "lb-comment-date-edited",
458
+ children: $.COMMENT_EDITED
459
+ })
460
+ ]
461
+ })
462
+ ]
463
+ })
464
+ ]
465
+ })
466
+ ]
467
+ }),
468
+ showActions && !isEditing && /* @__PURE__ */ jsxs("div", {
469
+ className: classNames(
470
+ "lb-comment-actions",
471
+ additionalActionsClassName
472
+ ),
473
+ children: [
474
+ additionalActions ?? null,
475
+ showReactions && /* @__PURE__ */ jsx(EmojiPicker, {
476
+ onEmojiSelect: handleReactionSelect,
477
+ onOpenChange: setReactionActionOpen,
478
+ children: /* @__PURE__ */ jsx(Tooltip, {
479
+ content: $.COMMENT_ADD_REACTION,
480
+ children: /* @__PURE__ */ jsx(PopoverTrigger, {
481
+ asChild: true,
482
+ children: /* @__PURE__ */ jsx(Button, {
483
+ className: "lb-comment-action",
484
+ onClick: stopPropagation,
485
+ "aria-label": $.COMMENT_ADD_REACTION,
486
+ children: /* @__PURE__ */ jsx(EmojiAddIcon, {
487
+ className: "lb-button-icon"
488
+ })
489
+ })
490
+ })
491
+ })
492
+ }),
493
+ comment.userId === currentUserId && /* @__PURE__ */ jsx(Dropdown, {
494
+ open: isMoreActionOpen,
495
+ onOpenChange: setMoreActionOpen,
496
+ align: "end",
497
+ content: /* @__PURE__ */ jsxs(Fragment, {
498
+ children: [
499
+ /* @__PURE__ */ jsxs(DropdownItem, {
500
+ onSelect: handleEdit,
501
+ onClick: stopPropagation,
502
+ children: [
503
+ /* @__PURE__ */ jsx(EditIcon, {
504
+ className: "lb-dropdown-item-icon"
505
+ }),
506
+ $.COMMENT_EDIT
507
+ ]
508
+ }),
509
+ /* @__PURE__ */ jsxs(DropdownItem, {
510
+ onSelect: handleDelete,
511
+ onClick: stopPropagation,
512
+ children: [
513
+ /* @__PURE__ */ jsx(DeleteIcon, {
514
+ className: "lb-dropdown-item-icon"
515
+ }),
516
+ $.COMMENT_DELETE
517
+ ]
518
+ })
519
+ ]
520
+ }),
521
+ children: /* @__PURE__ */ jsx(Tooltip, {
522
+ content: $.COMMENT_MORE,
523
+ children: /* @__PURE__ */ jsx(DropdownMenuTrigger, {
524
+ asChild: true,
525
+ children: /* @__PURE__ */ jsx(Button, {
526
+ className: "lb-comment-action",
527
+ disabled: !comment.body,
528
+ onClick: stopPropagation,
529
+ "aria-label": $.COMMENT_MORE,
530
+ children: /* @__PURE__ */ jsx(EllipsisIcon, {
531
+ className: "lb-button-icon"
532
+ })
533
+ })
534
+ })
535
+ })
536
+ })
537
+ ]
538
+ })
539
+ ]
540
+ }),
541
+ /* @__PURE__ */ jsx("div", {
542
+ className: "lb-comment-content",
543
+ children: isEditing ? /* @__PURE__ */ jsx(Composer, {
544
+ className: "lb-comment-composer",
545
+ onComposerSubmit: handleEditSubmit,
546
+ defaultValue: comment.body,
547
+ defaultAttachments: comment.attachments,
548
+ autoFocus: true,
549
+ showAttribution: false,
550
+ showAttachments,
551
+ showFormattingControls: showComposerFormattingControls,
552
+ actions: /* @__PURE__ */ jsxs(Fragment, {
553
+ children: [
554
+ /* @__PURE__ */ jsx(Tooltip, {
555
+ content: $.COMMENT_EDIT_COMPOSER_CANCEL,
556
+ "aria-label": $.COMMENT_EDIT_COMPOSER_CANCEL,
557
+ children: /* @__PURE__ */ jsx(Button, {
558
+ className: "lb-composer-action",
559
+ onClick: handleEditCancel,
560
+ children: /* @__PURE__ */ jsx(CrossIcon, {
561
+ className: "lb-button-icon"
562
+ })
563
+ })
564
+ }),
565
+ /* @__PURE__ */ jsx(ShortcutTooltip, {
566
+ content: $.COMMENT_EDIT_COMPOSER_SAVE,
567
+ shortcut: /* @__PURE__ */ jsx(ShortcutTooltipKey, {
568
+ name: "enter"
569
+ }),
570
+ children: /* @__PURE__ */ jsx(ComposerSubmit, {
571
+ asChild: true,
572
+ children: /* @__PURE__ */ jsx(Button, {
573
+ variant: "primary",
574
+ className: "lb-composer-action",
575
+ onClick: stopPropagation,
576
+ "aria-label": $.COMMENT_EDIT_COMPOSER_SAVE,
577
+ children: /* @__PURE__ */ jsx(CheckIcon, {
578
+ className: "lb-button-icon"
579
+ })
580
+ })
581
+ })
582
+ })
583
+ ]
584
+ }),
585
+ overrides: {
586
+ COMPOSER_PLACEHOLDER: $.COMMENT_EDIT_COMPOSER_PLACEHOLDER
587
+ },
588
+ roomId: comment.roomId
589
+ }) : comment.body ? /* @__PURE__ */ jsxs(Fragment, {
590
+ children: [
591
+ /* @__PURE__ */ jsx(CommentBody, {
592
+ className: "lb-comment-body",
593
+ body: comment.body,
594
+ components: {
595
+ Mention: ({ userId }) => /* @__PURE__ */ jsx(CommentMention, {
596
+ userId,
597
+ onClick: (event) => onMentionClick?.(userId, event)
598
+ }),
599
+ Link: CommentLink
600
+ }
601
+ }),
602
+ showAttachments && (mediaAttachments.length > 0 || fileAttachments.length > 0) ? /* @__PURE__ */ jsxs("div", {
603
+ className: "lb-comment-attachments",
604
+ children: [
605
+ mediaAttachments.length > 0 ? /* @__PURE__ */ jsx("div", {
606
+ className: "lb-attachments",
607
+ children: mediaAttachments.map((attachment) => /* @__PURE__ */ jsx(CommentMediaAttachment, {
608
+ attachment,
609
+ overrides,
610
+ onAttachmentClick,
611
+ roomId: comment.roomId
612
+ }, attachment.id))
613
+ }) : null,
614
+ fileAttachments.length > 0 ? /* @__PURE__ */ jsx("div", {
615
+ className: "lb-attachments",
616
+ children: fileAttachments.map((attachment) => /* @__PURE__ */ jsx(CommentFileAttachment, {
617
+ attachment,
618
+ overrides,
619
+ onAttachmentClick,
620
+ roomId: comment.roomId
621
+ }, attachment.id))
622
+ }) : null
623
+ ]
624
+ }) : null,
625
+ showReactions && comment.reactions.length > 0 && /* @__PURE__ */ jsxs("div", {
626
+ className: "lb-comment-reactions",
627
+ children: [
628
+ comment.reactions.map((reaction) => /* @__PURE__ */ jsx(CommentReaction, {
629
+ comment,
630
+ reaction,
631
+ overrides
632
+ }, reaction.emoji)),
633
+ /* @__PURE__ */ jsx(EmojiPicker, {
634
+ onEmojiSelect: handleReactionSelect,
635
+ children: /* @__PURE__ */ jsx(Tooltip, {
636
+ content: $.COMMENT_ADD_REACTION,
637
+ children: /* @__PURE__ */ jsx(PopoverTrigger, {
638
+ asChild: true,
639
+ children: /* @__PURE__ */ jsx(Button, {
640
+ className: "lb-comment-reaction lb-comment-reaction-add",
641
+ variant: "outline",
642
+ onClick: stopPropagation,
643
+ "aria-label": $.COMMENT_ADD_REACTION,
644
+ children: /* @__PURE__ */ jsx(EmojiAddIcon, {
645
+ className: "lb-button-icon"
646
+ })
647
+ })
648
+ })
649
+ })
650
+ })
651
+ ]
652
+ })
653
+ ]
654
+ }) : /* @__PURE__ */ jsx("div", {
655
+ className: "lb-comment-body",
656
+ children: /* @__PURE__ */ jsx("p", {
657
+ className: "lb-comment-deleted",
658
+ children: $.COMMENT_DELETED
659
+ })
660
+ })
661
+ })
662
+ ]
663
+ })
664
+ ]
665
+ });
564
666
  }
565
667
  );
566
668