@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,9 +1,9 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
3
+ var jsxRuntime = require('react/jsx-runtime');
4
4
  var _private = require('@liveblocks/react/_private');
5
5
  var TogglePrimitive = require('@radix-ui/react-toggle');
6
- var React = require('react');
6
+ var react = require('react');
7
7
  var Check = require('../icons/Check.js');
8
8
  var Cross = require('../icons/Cross.js');
9
9
  var Delete = require('../icons/Delete.js');
@@ -11,8 +11,8 @@ var Edit = require('../icons/Edit.js');
11
11
  var Ellipsis = require('../icons/Ellipsis.js');
12
12
  var EmojiAdd = require('../icons/EmojiAdd.js');
13
13
  var overrides = require('../overrides.js');
14
- var index$1 = require('../primitives/Comment/index.js');
15
- var index = require('../primitives/Composer/index.js');
14
+ var index = require('../primitives/Comment/index.js');
15
+ var index$1 = require('../primitives/Composer/index.js');
16
16
  var Timestamp = require('../primitives/Timestamp.js');
17
17
  var shared = require('../shared.js');
18
18
  var mentions = require('../slate/plugins/mentions.js');
@@ -54,6 +54,7 @@ function _interopNamespaceDefault(e) {
54
54
 
55
55
  var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(TogglePrimitive);
56
56
 
57
+ "use client";
57
58
  const REACTIONS_TRUNCATE = 5;
58
59
  function CommentMention({
59
60
  userId,
@@ -61,13 +62,17 @@ function CommentMention({
61
62
  ...props
62
63
  }) {
63
64
  const currentId = shared.useCurrentUserId();
64
- return /* @__PURE__ */ React.createElement(index$1.Mention, {
65
+ return /* @__PURE__ */ jsxRuntime.jsxs(index.Mention, {
65
66
  className: classNames.classNames("lb-comment-mention", className),
66
67
  "data-self": userId === currentId ? "" : void 0,
67
- ...props
68
- }, mentions.MENTION_CHARACTER, /* @__PURE__ */ React.createElement(User.User, {
69
- userId
70
- }));
68
+ ...props,
69
+ children: [
70
+ mentions.MENTION_CHARACTER,
71
+ /* @__PURE__ */ jsxRuntime.jsx(User.User, {
72
+ userId
73
+ })
74
+ ]
75
+ });
71
76
  }
72
77
  function CommentLink({
73
78
  href,
@@ -75,11 +80,12 @@ function CommentLink({
75
80
  className,
76
81
  ...props
77
82
  }) {
78
- return /* @__PURE__ */ React.createElement(index$1.Link, {
83
+ return /* @__PURE__ */ jsxRuntime.jsx(index.Link, {
79
84
  className: classNames.classNames("lb-comment-link", className),
80
85
  href,
81
- ...props
82
- }, children);
86
+ ...props,
87
+ children
88
+ });
83
89
  }
84
90
  function CommentNonInteractiveLink({
85
91
  href: _href,
@@ -87,14 +93,15 @@ function CommentNonInteractiveLink({
87
93
  className,
88
94
  ...props
89
95
  }) {
90
- return /* @__PURE__ */ React.createElement("span", {
96
+ return /* @__PURE__ */ jsxRuntime.jsx("span", {
91
97
  className: classNames.classNames("lb-comment-link", className),
92
- ...props
93
- }, children);
98
+ ...props,
99
+ children
100
+ });
94
101
  }
95
- const CommentReactionButton = React.forwardRef(({ reaction, overrides: overrides$1, className, ...props }, forwardedRef) => {
102
+ const CommentReactionButton = react.forwardRef(({ reaction, overrides: overrides$1, className, ...props }, forwardedRef) => {
96
103
  const $ = overrides.useOverrides(overrides$1);
97
- return /* @__PURE__ */ React.createElement(Button.Button, {
104
+ return /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, {
98
105
  className: classNames.classNames("lb-comment-reaction", className),
99
106
  variant: "outline",
100
107
  "aria-label": $.COMMENT_REACTION_DESCRIPTION(
@@ -102,43 +109,49 @@ const CommentReactionButton = React.forwardRef(({ reaction, overrides: overrides
102
109
  reaction.users.length
103
110
  ),
104
111
  ...props,
105
- ref: forwardedRef
106
- }, /* @__PURE__ */ React.createElement(Emoji.Emoji, {
107
- className: "lb-comment-reaction-emoji",
108
- emoji: reaction.emoji
109
- }), /* @__PURE__ */ React.createElement("span", {
110
- className: "lb-comment-reaction-count"
111
- }, reaction.users.length));
112
+ ref: forwardedRef,
113
+ children: [
114
+ /* @__PURE__ */ jsxRuntime.jsx(Emoji.Emoji, {
115
+ className: "lb-comment-reaction-emoji",
116
+ emoji: reaction.emoji
117
+ }),
118
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
119
+ className: "lb-comment-reaction-count",
120
+ children: reaction.users.length
121
+ })
122
+ ]
123
+ });
112
124
  });
113
- const CommentReaction = React.forwardRef(({ comment, reaction, overrides: overrides$1, disabled, ...props }, forwardedRef) => {
125
+ const CommentReaction = react.forwardRef(({ comment, reaction, overrides: overrides$1, disabled, ...props }, forwardedRef) => {
114
126
  const addReaction = _private.useAddRoomCommentReaction(comment.roomId);
115
127
  const removeReaction = _private.useRemoveRoomCommentReaction(comment.roomId);
116
128
  const currentId = shared.useCurrentUserId();
117
- const isActive = React.useMemo(() => {
129
+ const isActive = react.useMemo(() => {
118
130
  return reaction.users.some((users) => users.id === currentId);
119
131
  }, [currentId, reaction]);
120
132
  const $ = overrides.useOverrides(overrides$1);
121
- const tooltipContent = React.useMemo(
122
- () => /* @__PURE__ */ React.createElement("span", null, $.COMMENT_REACTION_LIST(
123
- /* @__PURE__ */ React.createElement(List.List, {
124
- values: reaction.users.map((users) => /* @__PURE__ */ React.createElement(User.User, {
125
- key: users.id,
126
- userId: users.id,
127
- replaceSelf: true
128
- })),
129
- formatRemaining: $.LIST_REMAINING_USERS,
130
- truncate: REACTIONS_TRUNCATE,
131
- locale: $.locale
132
- }),
133
- reaction.emoji,
134
- reaction.users.length
135
- )),
133
+ const tooltipContent = react.useMemo(
134
+ () => /* @__PURE__ */ jsxRuntime.jsx("span", {
135
+ children: $.COMMENT_REACTION_LIST(
136
+ /* @__PURE__ */ jsxRuntime.jsx(List.List, {
137
+ values: reaction.users.map((users) => /* @__PURE__ */ jsxRuntime.jsx(User.User, {
138
+ userId: users.id,
139
+ replaceSelf: true
140
+ }, users.id)),
141
+ formatRemaining: $.LIST_REMAINING_USERS,
142
+ truncate: REACTIONS_TRUNCATE,
143
+ locale: $.locale
144
+ }),
145
+ reaction.emoji,
146
+ reaction.users.length
147
+ )
148
+ }),
136
149
  [$, reaction]
137
150
  );
138
- const stopPropagation = React.useCallback((event) => {
151
+ const stopPropagation = react.useCallback((event) => {
139
152
  event.stopPropagation();
140
153
  }, []);
141
- const handlePressedChange = React.useCallback(
154
+ const handlePressedChange = react.useCallback(
142
155
  (isPressed) => {
143
156
  if (isPressed) {
144
157
  addReaction({
@@ -156,30 +169,32 @@ const CommentReaction = React.forwardRef(({ comment, reaction, overrides: overri
156
169
  },
157
170
  [addReaction, comment.threadId, comment.id, reaction.emoji, removeReaction]
158
171
  );
159
- return /* @__PURE__ */ React.createElement(Tooltip.Tooltip, {
172
+ return /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
160
173
  content: tooltipContent,
161
174
  multiline: true,
162
- className: "lb-comment-reaction-tooltip"
163
- }, /* @__PURE__ */ React.createElement(TogglePrimitive__namespace.Root, {
164
- asChild: true,
165
- pressed: isActive,
166
- onPressedChange: handlePressedChange,
167
- onClick: stopPropagation,
168
- disabled,
169
- ref: forwardedRef
170
- }, /* @__PURE__ */ React.createElement(CommentReactionButton, {
171
- "data-self": isActive ? "" : void 0,
172
- reaction,
173
- overrides: overrides$1,
174
- ...props
175
- })));
175
+ className: "lb-comment-reaction-tooltip",
176
+ children: /* @__PURE__ */ jsxRuntime.jsx(TogglePrimitive__namespace.Root, {
177
+ asChild: true,
178
+ pressed: isActive,
179
+ onPressedChange: handlePressedChange,
180
+ onClick: stopPropagation,
181
+ disabled,
182
+ ref: forwardedRef,
183
+ children: /* @__PURE__ */ jsxRuntime.jsx(CommentReactionButton, {
184
+ "data-self": isActive ? "" : void 0,
185
+ reaction,
186
+ overrides: overrides$1,
187
+ ...props
188
+ })
189
+ })
190
+ });
176
191
  });
177
- const CommentNonInteractiveReaction = React.forwardRef(({ reaction, overrides, ...props }, forwardedRef) => {
192
+ const CommentNonInteractiveReaction = react.forwardRef(({ reaction, overrides, ...props }, forwardedRef) => {
178
193
  const currentId = shared.useCurrentUserId();
179
- const isActive = React.useMemo(() => {
194
+ const isActive = react.useMemo(() => {
180
195
  return reaction.users.some((users) => users.id === currentId);
181
196
  }, [currentId, reaction]);
182
- return /* @__PURE__ */ React.createElement(CommentReactionButton, {
197
+ return /* @__PURE__ */ jsxRuntime.jsx(CommentReactionButton, {
183
198
  disableable: false,
184
199
  "data-self": isActive ? "" : void 0,
185
200
  reaction,
@@ -204,7 +219,7 @@ function CommentMediaAttachment({
204
219
  ...props
205
220
  }) {
206
221
  const { url } = _private.useRoomAttachmentUrl(attachment.id, roomId);
207
- const handleClick = React.useCallback(
222
+ const handleClick = react.useCallback(
208
223
  (event) => {
209
224
  if (!url) {
210
225
  return;
@@ -218,7 +233,7 @@ function CommentMediaAttachment({
218
233
  },
219
234
  [attachment, onAttachmentClick, url]
220
235
  );
221
- return /* @__PURE__ */ React.createElement(Attachment.MediaAttachment, {
236
+ return /* @__PURE__ */ jsxRuntime.jsx(Attachment.MediaAttachment, {
222
237
  className: classNames.classNames("lb-comment-attachment", className),
223
238
  ...props,
224
239
  attachment,
@@ -236,7 +251,7 @@ function CommentFileAttachment({
236
251
  ...props
237
252
  }) {
238
253
  const { url } = _private.useRoomAttachmentUrl(attachment.id, roomId);
239
- const handleClick = React.useCallback(
254
+ const handleClick = react.useCallback(
240
255
  (event) => {
241
256
  if (!url) {
242
257
  return;
@@ -250,7 +265,7 @@ function CommentFileAttachment({
250
265
  },
251
266
  [attachment, onAttachmentClick, url]
252
267
  );
253
- return /* @__PURE__ */ React.createElement(Attachment.FileAttachment, {
268
+ return /* @__PURE__ */ jsxRuntime.jsx(Attachment.FileAttachment, {
254
269
  className: classNames.classNames("lb-comment-attachment", className),
255
270
  ...props,
256
271
  attachment,
@@ -263,7 +278,7 @@ function CommentNonInteractiveFileAttachment({
263
278
  className,
264
279
  ...props
265
280
  }) {
266
- return /* @__PURE__ */ React.createElement(Attachment.FileAttachment, {
281
+ return /* @__PURE__ */ jsxRuntime.jsx(Attachment.FileAttachment, {
267
282
  className: classNames.classNames("lb-comment-attachment", className),
268
283
  allowMediaPreview: false,
269
284
  ...props
@@ -287,7 +302,7 @@ function AutoMarkReadThreadIdHandler({
287
302
  );
288
303
  return null;
289
304
  }
290
- const Comment = React.forwardRef(
305
+ const Comment = react.forwardRef(
291
306
  ({
292
307
  comment,
293
308
  indentContent = true,
@@ -308,7 +323,7 @@ const Comment = React.forwardRef(
308
323
  autoMarkReadThreadId,
309
324
  ...props
310
325
  }, forwardedRef) => {
311
- const ref = React.useRef(null);
326
+ const ref = react.useRef(null);
312
327
  const mergedRefs = useRefs.useRefs(forwardedRef, ref);
313
328
  const currentUserId = shared.useCurrentUserId();
314
329
  const deleteComment = _private.useDeleteRoomComment(comment.roomId);
@@ -316,27 +331,27 @@ const Comment = React.forwardRef(
316
331
  const addReaction = _private.useAddRoomCommentReaction(comment.roomId);
317
332
  const removeReaction = _private.useRemoveRoomCommentReaction(comment.roomId);
318
333
  const $ = overrides.useOverrides(overrides$1);
319
- const [isEditing, setEditing] = React.useState(false);
320
- const [isTarget, setTarget] = React.useState(false);
321
- const [isMoreActionOpen, setMoreActionOpen] = React.useState(false);
322
- const [isReactionActionOpen, setReactionActionOpen] = React.useState(false);
323
- const { mediaAttachments, fileAttachments } = React.useMemo(() => {
334
+ const [isEditing, setEditing] = react.useState(false);
335
+ const [isTarget, setTarget] = react.useState(false);
336
+ const [isMoreActionOpen, setMoreActionOpen] = react.useState(false);
337
+ const [isReactionActionOpen, setReactionActionOpen] = react.useState(false);
338
+ const { mediaAttachments, fileAttachments } = react.useMemo(() => {
324
339
  return Attachment.separateMediaAttachments(comment.attachments);
325
340
  }, [comment.attachments]);
326
- const stopPropagation = React.useCallback((event) => {
341
+ const stopPropagation = react.useCallback((event) => {
327
342
  event.stopPropagation();
328
343
  }, []);
329
- const handleEdit = React.useCallback(() => {
344
+ const handleEdit = react.useCallback(() => {
330
345
  setEditing(true);
331
346
  }, []);
332
- const handleEditCancel = React.useCallback(
347
+ const handleEditCancel = react.useCallback(
333
348
  (event) => {
334
349
  event.stopPropagation();
335
350
  setEditing(false);
336
351
  },
337
352
  []
338
353
  );
339
- const handleEditSubmit = React.useCallback(
354
+ const handleEditSubmit = react.useCallback(
340
355
  ({ body, attachments }, event) => {
341
356
  onCommentEdit?.(comment);
342
357
  event.preventDefault();
@@ -350,20 +365,20 @@ const Comment = React.forwardRef(
350
365
  },
351
366
  [comment, editComment, onCommentEdit]
352
367
  );
353
- const handleDelete = React.useCallback(() => {
368
+ const handleDelete = react.useCallback(() => {
354
369
  onCommentDelete?.(comment);
355
370
  deleteComment({
356
371
  commentId: comment.id,
357
372
  threadId: comment.threadId
358
373
  });
359
374
  }, [comment, deleteComment, onCommentDelete]);
360
- const handleAuthorClick = React.useCallback(
375
+ const handleAuthorClick = react.useCallback(
361
376
  (event) => {
362
377
  onAuthorClick?.(comment.userId, event);
363
378
  },
364
379
  [comment.userId, onAuthorClick]
365
380
  );
366
- const handleReactionSelect = React.useCallback(
381
+ const handleReactionSelect = react.useCallback(
367
382
  (emoji) => {
368
383
  const reactionIndex = comment.reactions.findIndex(
369
384
  (reaction) => reaction.emoji === emoji
@@ -393,7 +408,7 @@ const Comment = React.forwardRef(
393
408
  currentUserId
394
409
  ]
395
410
  );
396
- React.useEffect(() => {
411
+ react.useEffect(() => {
397
412
  const isWindowDefined = typeof window !== "undefined";
398
413
  if (!isWindowDefined)
399
414
  return;
@@ -406,182 +421,269 @@ const Comment = React.forwardRef(
406
421
  if (!showDeleted && !comment.body) {
407
422
  return null;
408
423
  }
409
- return /* @__PURE__ */ React.createElement(TooltipPrimitive.TooltipProvider, null, autoMarkReadThreadId && /* @__PURE__ */ React.createElement(AutoMarkReadThreadIdHandler, {
410
- commentRef: ref,
411
- threadId: autoMarkReadThreadId,
412
- roomId: comment.roomId
413
- }), /* @__PURE__ */ React.createElement("div", {
414
- id: comment.id,
415
- className: classNames.classNames(
416
- "lb-root lb-comment",
417
- indentContent && "lb-comment:indent-content",
418
- showActions === "hover" && "lb-comment:show-actions-hover",
419
- (isMoreActionOpen || isReactionActionOpen) && "lb-comment:action-open",
420
- className
421
- ),
422
- "data-deleted": !comment.body ? "" : void 0,
423
- "data-editing": isEditing ? "" : void 0,
424
- "data-target": isTarget ? "" : void 0,
425
- dir: $.dir,
426
- ...props,
427
- ref: mergedRefs
428
- }, /* @__PURE__ */ React.createElement("div", {
429
- className: "lb-comment-header"
430
- }, /* @__PURE__ */ React.createElement("div", {
431
- className: "lb-comment-details"
432
- }, /* @__PURE__ */ React.createElement(Avatar.Avatar, {
433
- className: "lb-comment-avatar",
434
- userId: comment.userId,
435
- onClick: handleAuthorClick
436
- }), /* @__PURE__ */ React.createElement("span", {
437
- className: "lb-comment-details-labels"
438
- }, /* @__PURE__ */ React.createElement(User.User, {
439
- className: "lb-comment-author",
440
- userId: comment.userId,
441
- onClick: handleAuthorClick
442
- }), /* @__PURE__ */ React.createElement("span", {
443
- className: "lb-comment-date"
444
- }, /* @__PURE__ */ React.createElement(Timestamp.Timestamp, {
445
- locale: $.locale,
446
- date: comment.createdAt,
447
- className: "lb-date lb-comment-date-created"
448
- }), comment.editedAt && comment.body && /* @__PURE__ */ React.createElement(React.Fragment, null, " ", /* @__PURE__ */ React.createElement("span", {
449
- className: "lb-comment-date-edited"
450
- }, $.COMMENT_EDITED))))), showActions && !isEditing && /* @__PURE__ */ React.createElement("div", {
451
- className: classNames.classNames(
452
- "lb-comment-actions",
453
- additionalActionsClassName
454
- )
455
- }, additionalActions ?? null, showReactions && /* @__PURE__ */ React.createElement(EmojiPicker.EmojiPicker, {
456
- onEmojiSelect: handleReactionSelect,
457
- onOpenChange: setReactionActionOpen
458
- }, /* @__PURE__ */ React.createElement(Tooltip.Tooltip, {
459
- content: $.COMMENT_ADD_REACTION
460
- }, /* @__PURE__ */ React.createElement(PopoverPrimitive.PopoverTrigger, {
461
- asChild: true
462
- }, /* @__PURE__ */ React.createElement(Button.Button, {
463
- className: "lb-comment-action",
464
- onClick: stopPropagation,
465
- "aria-label": $.COMMENT_ADD_REACTION
466
- }, /* @__PURE__ */ React.createElement(EmojiAdd.EmojiAddIcon, {
467
- className: "lb-button-icon"
468
- }))))), comment.userId === currentUserId && /* @__PURE__ */ React.createElement(Dropdown.Dropdown, {
469
- open: isMoreActionOpen,
470
- onOpenChange: setMoreActionOpen,
471
- align: "end",
472
- content: /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Dropdown.DropdownItem, {
473
- onSelect: handleEdit,
474
- onClick: stopPropagation
475
- }, /* @__PURE__ */ React.createElement(Edit.EditIcon, {
476
- className: "lb-dropdown-item-icon"
477
- }), $.COMMENT_EDIT), /* @__PURE__ */ React.createElement(Dropdown.DropdownItem, {
478
- onSelect: handleDelete,
479
- onClick: stopPropagation
480
- }, /* @__PURE__ */ React.createElement(Delete.DeleteIcon, {
481
- className: "lb-dropdown-item-icon"
482
- }), $.COMMENT_DELETE))
483
- }, /* @__PURE__ */ React.createElement(Tooltip.Tooltip, {
484
- content: $.COMMENT_MORE
485
- }, /* @__PURE__ */ React.createElement(DropdownMenuPrimitive.DropdownMenuTrigger, {
486
- asChild: true
487
- }, /* @__PURE__ */ React.createElement(Button.Button, {
488
- className: "lb-comment-action",
489
- disabled: !comment.body,
490
- onClick: stopPropagation,
491
- "aria-label": $.COMMENT_MORE
492
- }, /* @__PURE__ */ React.createElement(Ellipsis.EllipsisIcon, {
493
- className: "lb-button-icon"
494
- }))))))), /* @__PURE__ */ React.createElement("div", {
495
- className: "lb-comment-content"
496
- }, isEditing ? /* @__PURE__ */ React.createElement(Composer.Composer, {
497
- className: "lb-comment-composer",
498
- onComposerSubmit: handleEditSubmit,
499
- defaultValue: comment.body,
500
- defaultAttachments: comment.attachments,
501
- autoFocus: true,
502
- showAttribution: false,
503
- showAttachments,
504
- showFormattingControls: showComposerFormattingControls,
505
- actions: /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Tooltip.Tooltip, {
506
- content: $.COMMENT_EDIT_COMPOSER_CANCEL,
507
- "aria-label": $.COMMENT_EDIT_COMPOSER_CANCEL
508
- }, /* @__PURE__ */ React.createElement(Button.Button, {
509
- className: "lb-composer-action",
510
- onClick: handleEditCancel
511
- }, /* @__PURE__ */ React.createElement(Cross.CrossIcon, {
512
- className: "lb-button-icon"
513
- }))), /* @__PURE__ */ React.createElement(Tooltip.ShortcutTooltip, {
514
- content: $.COMMENT_EDIT_COMPOSER_SAVE,
515
- shortcut: /* @__PURE__ */ React.createElement(Tooltip.ShortcutTooltipKey, {
516
- name: "enter"
517
- })
518
- }, /* @__PURE__ */ React.createElement(index.Submit, {
519
- asChild: true
520
- }, /* @__PURE__ */ React.createElement(Button.Button, {
521
- variant: "primary",
522
- className: "lb-composer-action",
523
- onClick: stopPropagation,
524
- "aria-label": $.COMMENT_EDIT_COMPOSER_SAVE
525
- }, /* @__PURE__ */ React.createElement(Check.CheckIcon, {
526
- className: "lb-button-icon"
527
- }))))),
528
- overrides: {
529
- COMPOSER_PLACEHOLDER: $.COMMENT_EDIT_COMPOSER_PLACEHOLDER
530
- },
531
- roomId: comment.roomId
532
- }) : comment.body ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(index$1.Body, {
533
- className: "lb-comment-body",
534
- body: comment.body,
535
- components: {
536
- Mention: ({ userId }) => /* @__PURE__ */ React.createElement(CommentMention, {
537
- userId,
538
- onClick: (event) => onMentionClick?.(userId, event)
424
+ return /* @__PURE__ */ jsxRuntime.jsxs(TooltipPrimitive.TooltipProvider, {
425
+ children: [
426
+ autoMarkReadThreadId && /* @__PURE__ */ jsxRuntime.jsx(AutoMarkReadThreadIdHandler, {
427
+ commentRef: ref,
428
+ threadId: autoMarkReadThreadId,
429
+ roomId: comment.roomId
539
430
  }),
540
- Link: CommentLink
541
- }
542
- }), showAttachments && (mediaAttachments.length > 0 || fileAttachments.length > 0) ? /* @__PURE__ */ React.createElement("div", {
543
- className: "lb-comment-attachments"
544
- }, mediaAttachments.length > 0 ? /* @__PURE__ */ React.createElement("div", {
545
- className: "lb-attachments"
546
- }, mediaAttachments.map((attachment) => /* @__PURE__ */ React.createElement(CommentMediaAttachment, {
547
- key: attachment.id,
548
- attachment,
549
- overrides: overrides$1,
550
- onAttachmentClick,
551
- roomId: comment.roomId
552
- }))) : null, fileAttachments.length > 0 ? /* @__PURE__ */ React.createElement("div", {
553
- className: "lb-attachments"
554
- }, fileAttachments.map((attachment) => /* @__PURE__ */ React.createElement(CommentFileAttachment, {
555
- key: attachment.id,
556
- attachment,
557
- overrides: overrides$1,
558
- onAttachmentClick,
559
- roomId: comment.roomId
560
- }))) : null) : null, showReactions && comment.reactions.length > 0 && /* @__PURE__ */ React.createElement("div", {
561
- className: "lb-comment-reactions"
562
- }, comment.reactions.map((reaction) => /* @__PURE__ */ React.createElement(CommentReaction, {
563
- key: reaction.emoji,
564
- comment,
565
- reaction,
566
- overrides: overrides$1
567
- })), /* @__PURE__ */ React.createElement(EmojiPicker.EmojiPicker, {
568
- onEmojiSelect: handleReactionSelect
569
- }, /* @__PURE__ */ React.createElement(Tooltip.Tooltip, {
570
- content: $.COMMENT_ADD_REACTION
571
- }, /* @__PURE__ */ React.createElement(PopoverPrimitive.PopoverTrigger, {
572
- asChild: true
573
- }, /* @__PURE__ */ React.createElement(Button.Button, {
574
- className: "lb-comment-reaction lb-comment-reaction-add",
575
- variant: "outline",
576
- onClick: stopPropagation,
577
- "aria-label": $.COMMENT_ADD_REACTION
578
- }, /* @__PURE__ */ React.createElement(EmojiAdd.EmojiAddIcon, {
579
- className: "lb-button-icon"
580
- }))))))) : /* @__PURE__ */ React.createElement("div", {
581
- className: "lb-comment-body"
582
- }, /* @__PURE__ */ React.createElement("p", {
583
- className: "lb-comment-deleted"
584
- }, $.COMMENT_DELETED)))));
431
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
432
+ id: comment.id,
433
+ className: classNames.classNames(
434
+ "lb-root lb-comment",
435
+ indentContent && "lb-comment:indent-content",
436
+ showActions === "hover" && "lb-comment:show-actions-hover",
437
+ (isMoreActionOpen || isReactionActionOpen) && "lb-comment:action-open",
438
+ className
439
+ ),
440
+ "data-deleted": !comment.body ? "" : void 0,
441
+ "data-editing": isEditing ? "" : void 0,
442
+ "data-target": isTarget ? "" : void 0,
443
+ dir: $.dir,
444
+ ...props,
445
+ ref: mergedRefs,
446
+ children: [
447
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
448
+ className: "lb-comment-header",
449
+ children: [
450
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
451
+ className: "lb-comment-details",
452
+ children: [
453
+ /* @__PURE__ */ jsxRuntime.jsx(Avatar.Avatar, {
454
+ className: "lb-comment-avatar",
455
+ userId: comment.userId,
456
+ onClick: handleAuthorClick
457
+ }),
458
+ /* @__PURE__ */ jsxRuntime.jsxs("span", {
459
+ className: "lb-comment-details-labels",
460
+ children: [
461
+ /* @__PURE__ */ jsxRuntime.jsx(User.User, {
462
+ className: "lb-comment-author",
463
+ userId: comment.userId,
464
+ onClick: handleAuthorClick
465
+ }),
466
+ /* @__PURE__ */ jsxRuntime.jsxs("span", {
467
+ className: "lb-comment-date",
468
+ children: [
469
+ /* @__PURE__ */ jsxRuntime.jsx(Timestamp.Timestamp, {
470
+ locale: $.locale,
471
+ date: comment.createdAt,
472
+ className: "lb-date lb-comment-date-created"
473
+ }),
474
+ comment.editedAt && comment.body && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
475
+ children: [
476
+ " ",
477
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
478
+ className: "lb-comment-date-edited",
479
+ children: $.COMMENT_EDITED
480
+ })
481
+ ]
482
+ })
483
+ ]
484
+ })
485
+ ]
486
+ })
487
+ ]
488
+ }),
489
+ showActions && !isEditing && /* @__PURE__ */ jsxRuntime.jsxs("div", {
490
+ className: classNames.classNames(
491
+ "lb-comment-actions",
492
+ additionalActionsClassName
493
+ ),
494
+ children: [
495
+ additionalActions ?? null,
496
+ showReactions && /* @__PURE__ */ jsxRuntime.jsx(EmojiPicker.EmojiPicker, {
497
+ onEmojiSelect: handleReactionSelect,
498
+ onOpenChange: setReactionActionOpen,
499
+ children: /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
500
+ content: $.COMMENT_ADD_REACTION,
501
+ children: /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive.PopoverTrigger, {
502
+ asChild: true,
503
+ children: /* @__PURE__ */ jsxRuntime.jsx(Button.Button, {
504
+ className: "lb-comment-action",
505
+ onClick: stopPropagation,
506
+ "aria-label": $.COMMENT_ADD_REACTION,
507
+ children: /* @__PURE__ */ jsxRuntime.jsx(EmojiAdd.EmojiAddIcon, {
508
+ className: "lb-button-icon"
509
+ })
510
+ })
511
+ })
512
+ })
513
+ }),
514
+ comment.userId === currentUserId && /* @__PURE__ */ jsxRuntime.jsx(Dropdown.Dropdown, {
515
+ open: isMoreActionOpen,
516
+ onOpenChange: setMoreActionOpen,
517
+ align: "end",
518
+ content: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
519
+ children: [
520
+ /* @__PURE__ */ jsxRuntime.jsxs(Dropdown.DropdownItem, {
521
+ onSelect: handleEdit,
522
+ onClick: stopPropagation,
523
+ children: [
524
+ /* @__PURE__ */ jsxRuntime.jsx(Edit.EditIcon, {
525
+ className: "lb-dropdown-item-icon"
526
+ }),
527
+ $.COMMENT_EDIT
528
+ ]
529
+ }),
530
+ /* @__PURE__ */ jsxRuntime.jsxs(Dropdown.DropdownItem, {
531
+ onSelect: handleDelete,
532
+ onClick: stopPropagation,
533
+ children: [
534
+ /* @__PURE__ */ jsxRuntime.jsx(Delete.DeleteIcon, {
535
+ className: "lb-dropdown-item-icon"
536
+ }),
537
+ $.COMMENT_DELETE
538
+ ]
539
+ })
540
+ ]
541
+ }),
542
+ children: /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
543
+ content: $.COMMENT_MORE,
544
+ children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive.DropdownMenuTrigger, {
545
+ asChild: true,
546
+ children: /* @__PURE__ */ jsxRuntime.jsx(Button.Button, {
547
+ className: "lb-comment-action",
548
+ disabled: !comment.body,
549
+ onClick: stopPropagation,
550
+ "aria-label": $.COMMENT_MORE,
551
+ children: /* @__PURE__ */ jsxRuntime.jsx(Ellipsis.EllipsisIcon, {
552
+ className: "lb-button-icon"
553
+ })
554
+ })
555
+ })
556
+ })
557
+ })
558
+ ]
559
+ })
560
+ ]
561
+ }),
562
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
563
+ className: "lb-comment-content",
564
+ children: isEditing ? /* @__PURE__ */ jsxRuntime.jsx(Composer.Composer, {
565
+ className: "lb-comment-composer",
566
+ onComposerSubmit: handleEditSubmit,
567
+ defaultValue: comment.body,
568
+ defaultAttachments: comment.attachments,
569
+ autoFocus: true,
570
+ showAttribution: false,
571
+ showAttachments,
572
+ showFormattingControls: showComposerFormattingControls,
573
+ actions: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
574
+ children: [
575
+ /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
576
+ content: $.COMMENT_EDIT_COMPOSER_CANCEL,
577
+ "aria-label": $.COMMENT_EDIT_COMPOSER_CANCEL,
578
+ children: /* @__PURE__ */ jsxRuntime.jsx(Button.Button, {
579
+ className: "lb-composer-action",
580
+ onClick: handleEditCancel,
581
+ children: /* @__PURE__ */ jsxRuntime.jsx(Cross.CrossIcon, {
582
+ className: "lb-button-icon"
583
+ })
584
+ })
585
+ }),
586
+ /* @__PURE__ */ jsxRuntime.jsx(Tooltip.ShortcutTooltip, {
587
+ content: $.COMMENT_EDIT_COMPOSER_SAVE,
588
+ shortcut: /* @__PURE__ */ jsxRuntime.jsx(Tooltip.ShortcutTooltipKey, {
589
+ name: "enter"
590
+ }),
591
+ children: /* @__PURE__ */ jsxRuntime.jsx(index$1.Submit, {
592
+ asChild: true,
593
+ children: /* @__PURE__ */ jsxRuntime.jsx(Button.Button, {
594
+ variant: "primary",
595
+ className: "lb-composer-action",
596
+ onClick: stopPropagation,
597
+ "aria-label": $.COMMENT_EDIT_COMPOSER_SAVE,
598
+ children: /* @__PURE__ */ jsxRuntime.jsx(Check.CheckIcon, {
599
+ className: "lb-button-icon"
600
+ })
601
+ })
602
+ })
603
+ })
604
+ ]
605
+ }),
606
+ overrides: {
607
+ COMPOSER_PLACEHOLDER: $.COMMENT_EDIT_COMPOSER_PLACEHOLDER
608
+ },
609
+ roomId: comment.roomId
610
+ }) : comment.body ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
611
+ children: [
612
+ /* @__PURE__ */ jsxRuntime.jsx(index.Body, {
613
+ className: "lb-comment-body",
614
+ body: comment.body,
615
+ components: {
616
+ Mention: ({ userId }) => /* @__PURE__ */ jsxRuntime.jsx(CommentMention, {
617
+ userId,
618
+ onClick: (event) => onMentionClick?.(userId, event)
619
+ }),
620
+ Link: CommentLink
621
+ }
622
+ }),
623
+ showAttachments && (mediaAttachments.length > 0 || fileAttachments.length > 0) ? /* @__PURE__ */ jsxRuntime.jsxs("div", {
624
+ className: "lb-comment-attachments",
625
+ children: [
626
+ mediaAttachments.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", {
627
+ className: "lb-attachments",
628
+ children: mediaAttachments.map((attachment) => /* @__PURE__ */ jsxRuntime.jsx(CommentMediaAttachment, {
629
+ attachment,
630
+ overrides: overrides$1,
631
+ onAttachmentClick,
632
+ roomId: comment.roomId
633
+ }, attachment.id))
634
+ }) : null,
635
+ fileAttachments.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", {
636
+ className: "lb-attachments",
637
+ children: fileAttachments.map((attachment) => /* @__PURE__ */ jsxRuntime.jsx(CommentFileAttachment, {
638
+ attachment,
639
+ overrides: overrides$1,
640
+ onAttachmentClick,
641
+ roomId: comment.roomId
642
+ }, attachment.id))
643
+ }) : null
644
+ ]
645
+ }) : null,
646
+ showReactions && comment.reactions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", {
647
+ className: "lb-comment-reactions",
648
+ children: [
649
+ comment.reactions.map((reaction) => /* @__PURE__ */ jsxRuntime.jsx(CommentReaction, {
650
+ comment,
651
+ reaction,
652
+ overrides: overrides$1
653
+ }, reaction.emoji)),
654
+ /* @__PURE__ */ jsxRuntime.jsx(EmojiPicker.EmojiPicker, {
655
+ onEmojiSelect: handleReactionSelect,
656
+ children: /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
657
+ content: $.COMMENT_ADD_REACTION,
658
+ children: /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive.PopoverTrigger, {
659
+ asChild: true,
660
+ children: /* @__PURE__ */ jsxRuntime.jsx(Button.Button, {
661
+ className: "lb-comment-reaction lb-comment-reaction-add",
662
+ variant: "outline",
663
+ onClick: stopPropagation,
664
+ "aria-label": $.COMMENT_ADD_REACTION,
665
+ children: /* @__PURE__ */ jsxRuntime.jsx(EmojiAdd.EmojiAddIcon, {
666
+ className: "lb-button-icon"
667
+ })
668
+ })
669
+ })
670
+ })
671
+ })
672
+ ]
673
+ })
674
+ ]
675
+ }) : /* @__PURE__ */ jsxRuntime.jsx("div", {
676
+ className: "lb-comment-body",
677
+ children: /* @__PURE__ */ jsxRuntime.jsx("p", {
678
+ className: "lb-comment-deleted",
679
+ children: $.COMMENT_DELETED
680
+ })
681
+ })
682
+ })
683
+ ]
684
+ })
685
+ ]
686
+ });
585
687
  }
586
688
  );
587
689