@liveblocks/react-ui 2.14.0 → 2.15.0-debug1

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 (258) hide show
  1. package/dist/_private/index.d.mts +24 -22
  2. package/dist/_private/index.d.ts +24 -22
  3. package/dist/components/Comment.js +355 -254
  4. package/dist/components/Comment.js.map +1 -1
  5. package/dist/components/Comment.mjs +330 -229
  6. package/dist/components/Comment.mjs.map +1 -1
  7. package/dist/components/Composer.js +305 -224
  8. package/dist/components/Composer.js.map +1 -1
  9. package/dist/components/Composer.mjs +281 -200
  10. package/dist/components/Composer.mjs.map +1 -1
  11. package/dist/components/HistoryVersionSummary.js +25 -22
  12. package/dist/components/HistoryVersionSummary.js.map +1 -1
  13. package/dist/components/HistoryVersionSummary.mjs +24 -21
  14. package/dist/components/HistoryVersionSummary.mjs.map +1 -1
  15. package/dist/components/HistoryVersionSummaryList.js +10 -9
  16. package/dist/components/HistoryVersionSummaryList.js.map +1 -1
  17. package/dist/components/HistoryVersionSummaryList.mjs +9 -8
  18. package/dist/components/HistoryVersionSummaryList.mjs.map +1 -1
  19. package/dist/components/InboxNotification.js +201 -143
  20. package/dist/components/InboxNotification.js.map +1 -1
  21. package/dist/components/InboxNotification.mjs +179 -121
  22. package/dist/components/InboxNotification.mjs.map +1 -1
  23. package/dist/components/InboxNotificationList.js +18 -14
  24. package/dist/components/InboxNotificationList.js.map +1 -1
  25. package/dist/components/InboxNotificationList.mjs +16 -12
  26. package/dist/components/InboxNotificationList.mjs.map +1 -1
  27. package/dist/components/Thread.js +103 -86
  28. package/dist/components/Thread.js.map +1 -1
  29. package/dist/components/Thread.mjs +92 -75
  30. package/dist/components/Thread.mjs.map +1 -1
  31. package/dist/components/internal/Attachment.js +158 -107
  32. package/dist/components/internal/Attachment.js.map +1 -1
  33. package/dist/components/internal/Attachment.mjs +147 -96
  34. package/dist/components/internal/Attachment.mjs.map +1 -1
  35. package/dist/components/internal/Attribution.js +15 -13
  36. package/dist/components/internal/Attribution.js.map +1 -1
  37. package/dist/components/internal/Attribution.mjs +15 -13
  38. package/dist/components/internal/Attribution.mjs.map +1 -1
  39. package/dist/components/internal/Avatar.js +26 -20
  40. package/dist/components/internal/Avatar.js.map +1 -1
  41. package/dist/components/internal/Avatar.mjs +22 -16
  42. package/dist/components/internal/Avatar.mjs.map +1 -1
  43. package/dist/components/internal/Button.js +4 -4
  44. package/dist/components/internal/Button.js.map +1 -1
  45. package/dist/components/internal/Button.mjs +3 -3
  46. package/dist/components/internal/Button.mjs.map +1 -1
  47. package/dist/components/internal/Dropdown.js +26 -19
  48. package/dist/components/internal/Dropdown.js.map +1 -1
  49. package/dist/components/internal/Dropdown.mjs +25 -18
  50. package/dist/components/internal/Dropdown.mjs.map +1 -1
  51. package/dist/components/internal/Emoji.js +4 -3
  52. package/dist/components/internal/Emoji.js.map +1 -1
  53. package/dist/components/internal/Emoji.mjs +3 -2
  54. package/dist/components/internal/Emoji.mjs.map +1 -1
  55. package/dist/components/internal/EmojiPicker.js +96 -72
  56. package/dist/components/internal/EmojiPicker.js.map +1 -1
  57. package/dist/components/internal/EmojiPicker.mjs +90 -66
  58. package/dist/components/internal/EmojiPicker.mjs.map +1 -1
  59. package/dist/components/internal/Icon.js +5 -4
  60. package/dist/components/internal/Icon.js.map +1 -1
  61. package/dist/components/internal/Icon.mjs +5 -4
  62. package/dist/components/internal/Icon.mjs.map +1 -1
  63. package/dist/components/internal/InboxNotificationThread.js +53 -38
  64. package/dist/components/internal/InboxNotificationThread.js.map +1 -1
  65. package/dist/components/internal/InboxNotificationThread.mjs +53 -38
  66. package/dist/components/internal/InboxNotificationThread.mjs.map +1 -1
  67. package/dist/components/internal/List.js +8 -6
  68. package/dist/components/internal/List.js.map +1 -1
  69. package/dist/components/internal/List.mjs +6 -4
  70. package/dist/components/internal/List.mjs.map +1 -1
  71. package/dist/components/internal/Room.js +7 -6
  72. package/dist/components/internal/Room.js.map +1 -1
  73. package/dist/components/internal/Room.mjs +6 -5
  74. package/dist/components/internal/Room.mjs.map +1 -1
  75. package/dist/components/internal/Tooltip.js +48 -33
  76. package/dist/components/internal/Tooltip.js.map +1 -1
  77. package/dist/components/internal/Tooltip.mjs +45 -30
  78. package/dist/components/internal/Tooltip.mjs.map +1 -1
  79. package/dist/components/internal/User.js +7 -6
  80. package/dist/components/internal/User.js.map +1 -1
  81. package/dist/components/internal/User.mjs +6 -5
  82. package/dist/components/internal/User.mjs.map +1 -1
  83. package/dist/components.js +11 -29
  84. package/dist/components.js.map +1 -1
  85. package/dist/components.mjs +5 -5
  86. package/dist/components.mjs.map +1 -1
  87. package/dist/config.js +15 -12
  88. package/dist/config.js.map +1 -1
  89. package/dist/config.mjs +12 -9
  90. package/dist/config.mjs.map +1 -1
  91. package/dist/icons/ArrowDown.js +7 -6
  92. package/dist/icons/ArrowDown.js.map +1 -1
  93. package/dist/icons/ArrowDown.mjs +7 -6
  94. package/dist/icons/ArrowDown.mjs.map +1 -1
  95. package/dist/icons/ArrowUp.js +7 -6
  96. package/dist/icons/ArrowUp.js.map +1 -1
  97. package/dist/icons/ArrowUp.mjs +7 -6
  98. package/dist/icons/ArrowUp.mjs.map +1 -1
  99. package/dist/icons/Attachment.js +7 -6
  100. package/dist/icons/Attachment.js.map +1 -1
  101. package/dist/icons/Attachment.mjs +7 -6
  102. package/dist/icons/Attachment.mjs.map +1 -1
  103. package/dist/icons/Bold.js +7 -6
  104. package/dist/icons/Bold.js.map +1 -1
  105. package/dist/icons/Bold.mjs +7 -6
  106. package/dist/icons/Bold.mjs.map +1 -1
  107. package/dist/icons/Check.js +7 -6
  108. package/dist/icons/Check.js.map +1 -1
  109. package/dist/icons/Check.mjs +7 -6
  110. package/dist/icons/Check.mjs.map +1 -1
  111. package/dist/icons/Code.js +7 -6
  112. package/dist/icons/Code.js.map +1 -1
  113. package/dist/icons/Code.mjs +7 -6
  114. package/dist/icons/Code.mjs.map +1 -1
  115. package/dist/icons/Cross.js +12 -8
  116. package/dist/icons/Cross.js.map +1 -1
  117. package/dist/icons/Cross.mjs +12 -8
  118. package/dist/icons/Cross.mjs.map +1 -1
  119. package/dist/icons/Delete.js +7 -6
  120. package/dist/icons/Delete.js.map +1 -1
  121. package/dist/icons/Delete.mjs +7 -6
  122. package/dist/icons/Delete.mjs.map +1 -1
  123. package/dist/icons/Edit.js +7 -6
  124. package/dist/icons/Edit.js.map +1 -1
  125. package/dist/icons/Edit.mjs +7 -6
  126. package/dist/icons/Edit.mjs.map +1 -1
  127. package/dist/icons/Ellipsis.js +21 -16
  128. package/dist/icons/Ellipsis.js.map +1 -1
  129. package/dist/icons/Ellipsis.mjs +21 -16
  130. package/dist/icons/Ellipsis.mjs.map +1 -1
  131. package/dist/icons/Emoji.js +25 -18
  132. package/dist/icons/Emoji.js.map +1 -1
  133. package/dist/icons/Emoji.mjs +25 -18
  134. package/dist/icons/Emoji.mjs.map +1 -1
  135. package/dist/icons/EmojiAdd.js +28 -20
  136. package/dist/icons/EmojiAdd.js.map +1 -1
  137. package/dist/icons/EmojiAdd.mjs +28 -20
  138. package/dist/icons/EmojiAdd.mjs.map +1 -1
  139. package/dist/icons/Italic.js +7 -6
  140. package/dist/icons/Italic.js.map +1 -1
  141. package/dist/icons/Italic.mjs +7 -6
  142. package/dist/icons/Italic.mjs.map +1 -1
  143. package/dist/icons/Mention.js +12 -8
  144. package/dist/icons/Mention.js.map +1 -1
  145. package/dist/icons/Mention.mjs +12 -8
  146. package/dist/icons/Mention.mjs.map +1 -1
  147. package/dist/icons/Resolve.js +14 -10
  148. package/dist/icons/Resolve.js.map +1 -1
  149. package/dist/icons/Resolve.mjs +14 -10
  150. package/dist/icons/Resolve.mjs.map +1 -1
  151. package/dist/icons/Resolved.js +16 -12
  152. package/dist/icons/Resolved.js.map +1 -1
  153. package/dist/icons/Resolved.mjs +16 -12
  154. package/dist/icons/Resolved.mjs.map +1 -1
  155. package/dist/icons/Restore.js +12 -8
  156. package/dist/icons/Restore.js.map +1 -1
  157. package/dist/icons/Restore.mjs +12 -8
  158. package/dist/icons/Restore.mjs.map +1 -1
  159. package/dist/icons/Search.js +7 -6
  160. package/dist/icons/Search.js.map +1 -1
  161. package/dist/icons/Search.mjs +7 -6
  162. package/dist/icons/Search.mjs.map +1 -1
  163. package/dist/icons/Send.js +7 -6
  164. package/dist/icons/Send.js.map +1 -1
  165. package/dist/icons/Send.mjs +7 -6
  166. package/dist/icons/Send.mjs.map +1 -1
  167. package/dist/icons/Spinner.js +8 -7
  168. package/dist/icons/Spinner.js.map +1 -1
  169. package/dist/icons/Spinner.mjs +8 -7
  170. package/dist/icons/Spinner.mjs.map +1 -1
  171. package/dist/icons/Strikethrough.js +7 -6
  172. package/dist/icons/Strikethrough.js.map +1 -1
  173. package/dist/icons/Strikethrough.mjs +7 -6
  174. package/dist/icons/Strikethrough.mjs.map +1 -1
  175. package/dist/icons/Warning.js +14 -10
  176. package/dist/icons/Warning.js.map +1 -1
  177. package/dist/icons/Warning.mjs +14 -10
  178. package/dist/icons/Warning.mjs.map +1 -1
  179. package/dist/index.d.mts +14 -12
  180. package/dist/index.d.ts +14 -12
  181. package/dist/overrides.js +64 -36
  182. package/dist/overrides.js.map +1 -1
  183. package/dist/overrides.mjs +58 -12
  184. package/dist/overrides.mjs.map +1 -1
  185. package/dist/primitives/Comment/index.js +75 -66
  186. package/dist/primitives/Comment/index.js.map +1 -1
  187. package/dist/primitives/Comment/index.mjs +71 -62
  188. package/dist/primitives/Comment/index.mjs.map +1 -1
  189. package/dist/primitives/Composer/contexts.js +11 -11
  190. package/dist/primitives/Composer/index.js +329 -271
  191. package/dist/primitives/Composer/index.js.map +1 -1
  192. package/dist/primitives/Composer/index.mjs +254 -196
  193. package/dist/primitives/Composer/index.mjs.map +1 -1
  194. package/dist/primitives/Composer/utils.js +18 -20
  195. package/dist/primitives/Composer/utils.js.map +1 -1
  196. package/dist/primitives/Composer/utils.mjs +1 -3
  197. package/dist/primitives/Composer/utils.mjs.map +1 -1
  198. package/dist/primitives/EmojiPicker/contexts.js +3 -3
  199. package/dist/primitives/EmojiPicker/index.js +159 -142
  200. package/dist/primitives/EmojiPicker/index.js.map +1 -1
  201. package/dist/primitives/EmojiPicker/index.mjs +120 -103
  202. package/dist/primitives/EmojiPicker/index.mjs.map +1 -1
  203. package/dist/primitives/FileSize.js +8 -7
  204. package/dist/primitives/FileSize.js.map +1 -1
  205. package/dist/primitives/FileSize.mjs +6 -5
  206. package/dist/primitives/FileSize.mjs.map +1 -1
  207. package/dist/primitives/Timestamp.js +11 -10
  208. package/dist/primitives/Timestamp.js.map +1 -1
  209. package/dist/primitives/Timestamp.mjs +6 -5
  210. package/dist/primitives/Timestamp.mjs.map +1 -1
  211. package/dist/primitives/index.d.mts +24 -23
  212. package/dist/primitives/index.d.ts +24 -23
  213. package/dist/primitives/internal/Emoji.js +7 -5
  214. package/dist/primitives/internal/Emoji.js.map +1 -1
  215. package/dist/primitives/internal/Emoji.mjs +6 -4
  216. package/dist/primitives/internal/Emoji.mjs.map +1 -1
  217. package/dist/shared.js +2 -7
  218. package/dist/shared.js.map +1 -1
  219. package/dist/shared.mjs +2 -7
  220. package/dist/shared.mjs.map +1 -1
  221. package/dist/utils/Persist.js +18 -18
  222. package/dist/utils/Persist.js.map +1 -1
  223. package/dist/utils/Persist.mjs +6 -6
  224. package/dist/utils/Persist.mjs.map +1 -1
  225. package/dist/utils/Portal.js +4 -4
  226. package/dist/utils/Portal.js.map +1 -1
  227. package/dist/utils/Portal.mjs +3 -3
  228. package/dist/utils/Portal.mjs.map +1 -1
  229. package/dist/utils/use-controllable-state.js +5 -5
  230. package/dist/utils/use-index.js +7 -7
  231. package/dist/utils/use-initial.js +2 -2
  232. package/dist/utils/use-interval.js +4 -4
  233. package/dist/utils/use-latest.js +3 -3
  234. package/dist/utils/use-observable.js +2 -2
  235. package/dist/utils/use-refs.js +2 -2
  236. package/dist/utils/use-rerender.js +2 -2
  237. package/dist/utils/use-visible.js +2 -2
  238. package/dist/utils/use-window-focus.js +2 -2
  239. package/dist/utils/use-window-focus.js.map +1 -1
  240. package/dist/utils/use-window-focus.mjs +1 -1
  241. package/dist/utils/use-window-focus.mjs.map +1 -1
  242. package/dist/version.js +1 -1
  243. package/dist/version.js.map +1 -1
  244. package/dist/version.mjs +1 -1
  245. package/dist/version.mjs.map +1 -1
  246. package/package.json +6 -8
  247. package/dist/utils/use-id.js +0 -29
  248. package/dist/utils/use-id.js.map +0 -1
  249. package/dist/utils/use-id.mjs +0 -27
  250. package/dist/utils/use-id.mjs.map +0 -1
  251. package/dist/utils/use-layout-effect.js +0 -8
  252. package/dist/utils/use-layout-effect.js.map +0 -1
  253. package/dist/utils/use-layout-effect.mjs +0 -6
  254. package/dist/utils/use-layout-effect.mjs.map +0 -1
  255. package/dist/utils/use-transition.js +0 -16
  256. package/dist/utils/use-transition.js.map +0 -1
  257. package/dist/utils/use-transition.mjs +0 -14
  258. package/dist/utils/use-transition.mjs.map +0 -1
@@ -1,11 +1,11 @@
1
- 'use client';
2
1
  'use strict';
3
2
 
3
+ var jsxRuntime = require('react/jsx-runtime');
4
4
  var core = require('@liveblocks/core');
5
5
  var _private = require('@liveblocks/react/_private');
6
6
  var reactSlot = require('@radix-ui/react-slot');
7
7
  var TogglePrimitive = require('@radix-ui/react-toggle');
8
- var React = require('react');
8
+ var react = require('react');
9
9
  var slate = require('slate');
10
10
  var slateHistory = require('slate-history');
11
11
  var slateReact = require('slate-react');
@@ -24,10 +24,8 @@ var isKey = require('../../utils/is-key.js');
24
24
  var Persist = require('../../utils/Persist.js');
25
25
  var Portal = require('../../utils/Portal.js');
26
26
  var requestSubmit = require('../../utils/request-submit.js');
27
- var useId = require('../../utils/use-id.js');
28
27
  var useIndex = require('../../utils/use-index.js');
29
28
  var useInitial = require('../../utils/use-initial.js');
30
- var useLayoutEffect = require('../../utils/use-layout-effect.js');
31
29
  var useObservable = require('../../utils/use-observable.js');
32
30
  var useRefs = require('../../utils/use-refs.js');
33
31
  var utils$1 = require('../Comment/utils.js');
@@ -99,12 +97,16 @@ function ComposerEditorMentionWrapper({
99
97
  element
100
98
  }) {
101
99
  const isSelected = slateReact.useSelected();
102
- return /* @__PURE__ */ React.createElement("span", {
103
- ...attributes
104
- }, element.id ? /* @__PURE__ */ React.createElement(Mention, {
105
- userId: element.id,
106
- isSelected
107
- }) : null, children);
100
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", {
101
+ ...attributes,
102
+ children: [
103
+ element.id ? /* @__PURE__ */ jsxRuntime.jsx(Mention, {
104
+ userId: element.id,
105
+ isSelected
106
+ }) : null,
107
+ children
108
+ ]
109
+ });
108
110
  }
109
111
  function ComposerEditorLinkWrapper({
110
112
  Link,
@@ -112,15 +114,17 @@ function ComposerEditorLinkWrapper({
112
114
  element,
113
115
  children
114
116
  }) {
115
- const href = React.useMemo(
117
+ const href = react.useMemo(
116
118
  () => utils$1.toAbsoluteUrl(element.url) ?? element.url,
117
119
  [element.url]
118
120
  );
119
- return /* @__PURE__ */ React.createElement("span", {
120
- ...attributes
121
- }, /* @__PURE__ */ React.createElement(Link, {
122
- href
123
- }, children));
121
+ return /* @__PURE__ */ jsxRuntime.jsx("span", {
122
+ ...attributes,
123
+ children: /* @__PURE__ */ jsxRuntime.jsx(Link, {
124
+ href,
125
+ children
126
+ })
127
+ });
124
128
  }
125
129
  function ComposerEditorMentionSuggestionsWrapper({
126
130
  id,
@@ -157,7 +161,7 @@ function ComposerEditorMentionSuggestionsWrapper({
157
161
  useObservable.useObservable(onEditorChange, () => {
158
162
  setMentionDraft(mentions.getMentionDraftAtSelection(editor));
159
163
  });
160
- useLayoutEffect.useLayoutEffect(() => {
164
+ react.useLayoutEffect(() => {
161
165
  if (!mentionDraft) {
162
166
  setReference(null);
163
167
  return;
@@ -165,32 +169,36 @@ function ComposerEditorMentionSuggestionsWrapper({
165
169
  const domRange = getDomRange.getDOMRange(editor, mentionDraft.range);
166
170
  setReference(domRange ?? null);
167
171
  }, [setReference, editor, mentionDraft]);
168
- return /* @__PURE__ */ React.createElement(Persist.Persist, null, isOpen ? /* @__PURE__ */ React.createElement(contexts.ComposerSuggestionsContext.Provider, {
169
- value: {
170
- id,
171
- itemId,
172
- selectedValue: selectedUserId,
173
- setSelectedValue: setSelectedUserId,
174
- onItemSelect,
175
- placement,
176
- dir,
177
- ref: contentRef
178
- }
179
- }, /* @__PURE__ */ React.createElement(Portal.Portal, {
180
- ref: setFloating,
181
- container: portalContainer,
182
- style: {
183
- position: strategy,
184
- top: 0,
185
- left: 0,
186
- transform: isPositioned ? `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)` : "translate3d(0, -200%, 0)",
187
- minWidth: "max-content",
188
- zIndex: contentZIndex
189
- }
190
- }, /* @__PURE__ */ React.createElement(MentionSuggestions, {
191
- userIds,
192
- selectedUserId
193
- }))) : null);
172
+ return /* @__PURE__ */ jsxRuntime.jsx(Persist.Persist, {
173
+ children: isOpen ? /* @__PURE__ */ jsxRuntime.jsx(contexts.ComposerSuggestionsContext.Provider, {
174
+ value: {
175
+ id,
176
+ itemId,
177
+ selectedValue: selectedUserId,
178
+ setSelectedValue: setSelectedUserId,
179
+ onItemSelect,
180
+ placement,
181
+ dir,
182
+ ref: contentRef
183
+ },
184
+ children: /* @__PURE__ */ jsxRuntime.jsx(Portal.Portal, {
185
+ ref: setFloating,
186
+ container: portalContainer,
187
+ style: {
188
+ position: strategy,
189
+ top: 0,
190
+ left: 0,
191
+ transform: isPositioned ? `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)` : "translate3d(0, -200%, 0)",
192
+ minWidth: "max-content",
193
+ zIndex: contentZIndex
194
+ },
195
+ children: /* @__PURE__ */ jsxRuntime.jsx(MentionSuggestions, {
196
+ userIds,
197
+ selectedUserId
198
+ })
199
+ })
200
+ }) : null
201
+ });
194
202
  }
195
203
  function ComposerEditorFloatingToolbarWrapper({
196
204
  id,
@@ -205,7 +213,7 @@ function ComposerEditorFloatingToolbarWrapper({
205
213
  const { isFocused } = contexts.useComposer();
206
214
  const { portalContainer } = config.useLiveblocksUIConfig();
207
215
  const [contentRef, contentZIndex] = utils.useContentZIndex();
208
- const [isPointerDown, setPointerDown] = React.useState(false);
216
+ const [isPointerDown, setPointerDown] = react.useState(false);
209
217
  const isOpen = isFocused && !isPointerDown && hasFloatingToolbarRange;
210
218
  const {
211
219
  refs: { setReference, setFloating },
@@ -221,7 +229,7 @@ function ComposerEditorFloatingToolbarWrapper({
221
229
  alignment: "center",
222
230
  open: isOpen
223
231
  });
224
- useLayoutEffect.useLayoutEffect(() => {
232
+ react.useLayoutEffect(() => {
225
233
  if (!isFocused) {
226
234
  return;
227
235
  }
@@ -248,29 +256,33 @@ function ComposerEditorFloatingToolbarWrapper({
248
256
  }
249
257
  });
250
258
  });
251
- return /* @__PURE__ */ React.createElement(Persist.Persist, null, isOpen ? /* @__PURE__ */ React.createElement(contexts.ComposerFloatingToolbarContext.Provider, {
252
- value: {
253
- id,
254
- placement,
255
- dir,
256
- ref: contentRef
257
- }
258
- }, /* @__PURE__ */ React.createElement(Portal.Portal, {
259
- ref: setFloating,
260
- container: portalContainer,
261
- style: {
262
- position: strategy,
263
- top: 0,
264
- left: 0,
265
- transform: isPositioned ? `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)` : "translate3d(0, -200%, 0)",
266
- minWidth: "max-content",
267
- zIndex: contentZIndex
268
- }
269
- }, /* @__PURE__ */ React.createElement(FloatingToolbar, null))) : null);
259
+ return /* @__PURE__ */ jsxRuntime.jsx(Persist.Persist, {
260
+ children: isOpen ? /* @__PURE__ */ jsxRuntime.jsx(contexts.ComposerFloatingToolbarContext.Provider, {
261
+ value: {
262
+ id,
263
+ placement,
264
+ dir,
265
+ ref: contentRef
266
+ },
267
+ children: /* @__PURE__ */ jsxRuntime.jsx(Portal.Portal, {
268
+ ref: setFloating,
269
+ container: portalContainer,
270
+ style: {
271
+ position: strategy,
272
+ top: 0,
273
+ left: 0,
274
+ transform: isPositioned ? `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)` : "translate3d(0, -200%, 0)",
275
+ minWidth: "max-content",
276
+ zIndex: contentZIndex
277
+ },
278
+ children: /* @__PURE__ */ jsxRuntime.jsx(FloatingToolbar, {})
279
+ })
280
+ }) : null
281
+ });
270
282
  }
271
- const ComposerFloatingToolbar = React.forwardRef(({ children, onPointerDown, style, asChild, ...props }, forwardedRef) => {
283
+ const ComposerFloatingToolbar = react.forwardRef(({ children, onPointerDown, style, asChild, ...props }, forwardedRef) => {
272
284
  const [isPresent] = Persist.usePersist();
273
- const ref = React.useRef(null);
285
+ const ref = react.useRef(null);
274
286
  const {
275
287
  id,
276
288
  ref: contentRef,
@@ -278,13 +290,13 @@ const ComposerFloatingToolbar = React.forwardRef(({ children, onPointerDown, sty
278
290
  dir
279
291
  } = contexts.useComposerFloatingToolbarContext(COMPOSER_FLOATING_TOOLBAR_NAME);
280
292
  const mergedRefs = useRefs.useRefs(forwardedRef, contentRef, ref);
281
- const [side, align] = React.useMemo(
293
+ const [side, align] = react.useMemo(
282
294
  () => utils.getSideAndAlignFromFloatingPlacement(placement),
283
295
  [placement]
284
296
  );
285
297
  const Component = asChild ? reactSlot.Slot : "div";
286
298
  Persist.useAnimationPersist(ref);
287
- const handlePointerDown = React.useCallback(
299
+ const handlePointerDown = react.useCallback(
288
300
  (event) => {
289
301
  onPointerDown?.(event);
290
302
  event.preventDefault();
@@ -292,7 +304,7 @@ const ComposerFloatingToolbar = React.forwardRef(({ children, onPointerDown, sty
292
304
  },
293
305
  [onPointerDown]
294
306
  );
295
- return /* @__PURE__ */ React.createElement(Component, {
307
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
296
308
  dir,
297
309
  role: "toolbar",
298
310
  id,
@@ -309,8 +321,9 @@ const ComposerFloatingToolbar = React.forwardRef(({ children, onPointerDown, sty
309
321
  overflowX: "auto",
310
322
  ...style
311
323
  },
312
- ref: mergedRefs
313
- }, children);
324
+ ref: mergedRefs,
325
+ children
326
+ });
314
327
  });
315
328
  function ComposerEditorElement({
316
329
  Mention,
@@ -320,91 +333,104 @@ function ComposerEditorElement({
320
333
  const { attributes, children, element } = props;
321
334
  switch (element.type) {
322
335
  case "mention":
323
- return /* @__PURE__ */ React.createElement(ComposerEditorMentionWrapper, {
336
+ return /* @__PURE__ */ jsxRuntime.jsx(ComposerEditorMentionWrapper, {
324
337
  Mention,
325
338
  ...props
326
339
  });
327
340
  case "auto-link":
328
341
  case "custom-link":
329
- return /* @__PURE__ */ React.createElement(ComposerEditorLinkWrapper, {
342
+ return /* @__PURE__ */ jsxRuntime.jsx(ComposerEditorLinkWrapper, {
330
343
  Link,
331
344
  ...props
332
345
  });
333
346
  case "paragraph":
334
- return /* @__PURE__ */ React.createElement("p", {
347
+ return /* @__PURE__ */ jsxRuntime.jsx("p", {
335
348
  ...attributes,
336
- style: { position: "relative" }
337
- }, children);
349
+ style: { position: "relative" },
350
+ children
351
+ });
338
352
  default:
339
353
  return null;
340
354
  }
341
355
  }
342
356
  function ComposerEditorLeaf({ attributes, children, leaf }) {
343
357
  if (leaf.bold) {
344
- children = /* @__PURE__ */ React.createElement("strong", null, children);
358
+ children = /* @__PURE__ */ jsxRuntime.jsx("strong", {
359
+ children
360
+ });
345
361
  }
346
362
  if (leaf.italic) {
347
- children = /* @__PURE__ */ React.createElement("em", null, children);
363
+ children = /* @__PURE__ */ jsxRuntime.jsx("em", {
364
+ children
365
+ });
348
366
  }
349
367
  if (leaf.strikethrough) {
350
- children = /* @__PURE__ */ React.createElement("s", null, children);
368
+ children = /* @__PURE__ */ jsxRuntime.jsx("s", {
369
+ children
370
+ });
351
371
  }
352
372
  if (leaf.code) {
353
- children = /* @__PURE__ */ React.createElement("code", null, children);
373
+ children = /* @__PURE__ */ jsxRuntime.jsx("code", {
374
+ children
375
+ });
354
376
  }
355
- return /* @__PURE__ */ React.createElement("span", {
356
- ...attributes
357
- }, children);
377
+ return /* @__PURE__ */ jsxRuntime.jsx("span", {
378
+ ...attributes,
379
+ children
380
+ });
358
381
  }
359
382
  function ComposerEditorPlaceholder({
360
383
  attributes,
361
384
  children
362
385
  }) {
363
386
  const { opacity: _opacity, ...style } = attributes.style;
364
- return /* @__PURE__ */ React.createElement("span", {
387
+ return /* @__PURE__ */ jsxRuntime.jsx("span", {
365
388
  ...attributes,
366
389
  style,
367
- "data-placeholder": ""
368
- }, children);
390
+ "data-placeholder": "",
391
+ children
392
+ });
369
393
  }
370
- const ComposerMention = React.forwardRef(
394
+ const ComposerMention = react.forwardRef(
371
395
  ({ children, asChild, ...props }, forwardedRef) => {
372
396
  const Component = asChild ? reactSlot.Slot : "span";
373
397
  const isSelected = slateReact.useSelected();
374
- return /* @__PURE__ */ React.createElement(Component, {
398
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
375
399
  "data-selected": isSelected || void 0,
376
400
  ...props,
377
- ref: forwardedRef
378
- }, children);
401
+ ref: forwardedRef,
402
+ children
403
+ });
379
404
  }
380
405
  );
381
- const ComposerLink = React.forwardRef(
406
+ const ComposerLink = react.forwardRef(
382
407
  ({ children, asChild, ...props }, forwardedRef) => {
383
408
  const Component = asChild ? reactSlot.Slot : "a";
384
- return /* @__PURE__ */ React.createElement(Component, {
409
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
385
410
  target: "_blank",
386
411
  rel: "noopener noreferrer nofollow",
387
412
  ...props,
388
- ref: forwardedRef
389
- }, children);
413
+ ref: forwardedRef,
414
+ children
415
+ });
390
416
  }
391
417
  );
392
- const ComposerSuggestions = React.forwardRef(({ children, style, asChild, ...props }, forwardedRef) => {
418
+ const ComposerSuggestions = react.forwardRef(({ children, style, asChild, ...props }, forwardedRef) => {
393
419
  const [isPresent] = Persist.usePersist();
394
- const ref = React.useRef(null);
420
+ const ref = react.useRef(null);
395
421
  const {
396
422
  ref: contentRef,
397
423
  placement,
398
424
  dir
399
425
  } = contexts.useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_NAME);
400
426
  const mergedRefs = useRefs.useRefs(forwardedRef, contentRef, ref);
401
- const [side, align] = React.useMemo(
427
+ const [side, align] = react.useMemo(
402
428
  () => utils.getSideAndAlignFromFloatingPlacement(placement),
403
429
  [placement]
404
430
  );
405
431
  const Component = asChild ? reactSlot.Slot : "div";
406
432
  Persist.useAnimationPersist(ref);
407
- return /* @__PURE__ */ React.createElement(Component, {
433
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
408
434
  dir,
409
435
  ...props,
410
436
  "data-state": isPresent ? "open" : "closed",
@@ -417,21 +443,23 @@ const ComposerSuggestions = React.forwardRef(({ children, style, asChild, ...pro
417
443
  overflowY: "auto",
418
444
  ...style
419
445
  },
420
- ref: mergedRefs
421
- }, children);
446
+ ref: mergedRefs,
447
+ children
448
+ });
422
449
  });
423
- const ComposerSuggestionsList = React.forwardRef(({ children, asChild, ...props }, forwardedRef) => {
450
+ const ComposerSuggestionsList = react.forwardRef(({ children, asChild, ...props }, forwardedRef) => {
424
451
  const { id } = contexts.useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_NAME);
425
452
  const Component = asChild ? reactSlot.Slot : "ul";
426
- return /* @__PURE__ */ React.createElement(Component, {
453
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
427
454
  role: "listbox",
428
455
  id,
429
456
  "aria-label": "Suggestions list",
430
457
  ...props,
431
- ref: forwardedRef
432
- }, children);
458
+ ref: forwardedRef,
459
+ children
460
+ });
433
461
  });
434
- const ComposerSuggestionsListItem = React.forwardRef(
462
+ const ComposerSuggestionsListItem = react.forwardRef(
435
463
  ({
436
464
  value,
437
465
  children,
@@ -441,21 +469,21 @@ const ComposerSuggestionsListItem = React.forwardRef(
441
469
  asChild,
442
470
  ...props
443
471
  }, forwardedRef) => {
444
- const ref = React.useRef(null);
472
+ const ref = react.useRef(null);
445
473
  const mergedRefs = useRefs.useRefs(forwardedRef, ref);
446
474
  const { selectedValue, setSelectedValue, itemId, onItemSelect } = contexts.useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_ITEM_NAME);
447
475
  const Component = asChild ? reactSlot.Slot : "li";
448
- const isSelected = React.useMemo(
476
+ const isSelected = react.useMemo(
449
477
  () => selectedValue === value,
450
478
  [selectedValue, value]
451
479
  );
452
- const id = React.useMemo(() => itemId(value), [itemId, value]);
453
- React.useEffect(() => {
480
+ const id = react.useMemo(() => itemId(value), [itemId, value]);
481
+ react.useEffect(() => {
454
482
  if (ref?.current && isSelected) {
455
483
  ref.current.scrollIntoView({ block: "nearest" });
456
484
  }
457
485
  }, [isSelected]);
458
- const handlePointerMove = React.useCallback(
486
+ const handlePointerMove = react.useCallback(
459
487
  (event) => {
460
488
  onPointerMove?.(event);
461
489
  if (!event.isDefaultPrevented()) {
@@ -464,7 +492,7 @@ const ComposerSuggestionsListItem = React.forwardRef(
464
492
  },
465
493
  [onPointerMove, setSelectedValue, value]
466
494
  );
467
- const handlePointerDown = React.useCallback(
495
+ const handlePointerDown = react.useCallback(
468
496
  (event) => {
469
497
  onPointerDown?.(event);
470
498
  event.preventDefault();
@@ -472,7 +500,7 @@ const ComposerSuggestionsListItem = React.forwardRef(
472
500
  },
473
501
  [onPointerDown]
474
502
  );
475
- const handleClick = React.useCallback(
503
+ const handleClick = react.useCallback(
476
504
  (event) => {
477
505
  onClick?.(event);
478
506
  const wasDefaultPrevented = event.isDefaultPrevented();
@@ -484,7 +512,7 @@ const ComposerSuggestionsListItem = React.forwardRef(
484
512
  },
485
513
  [onClick, onItemSelect, value]
486
514
  );
487
- return /* @__PURE__ */ React.createElement(Component, {
515
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
488
516
  role: "option",
489
517
  id,
490
518
  "data-selected": isSelected || void 0,
@@ -493,27 +521,38 @@ const ComposerSuggestionsListItem = React.forwardRef(
493
521
  onPointerDown: handlePointerDown,
494
522
  onClick: handleClick,
495
523
  ...props,
496
- ref: mergedRefs
497
- }, children);
524
+ ref: mergedRefs,
525
+ children
526
+ });
498
527
  }
499
528
  );
500
529
  const defaultEditorComponents = {
501
530
  Link: ({ href, children }) => {
502
- return /* @__PURE__ */ React.createElement(ComposerLink, {
503
- href
504
- }, children);
531
+ return /* @__PURE__ */ jsxRuntime.jsx(ComposerLink, {
532
+ href,
533
+ children
534
+ });
505
535
  },
506
536
  Mention: ({ userId }) => {
507
- return /* @__PURE__ */ React.createElement(ComposerMention, null, mentions.MENTION_CHARACTER, userId);
537
+ return /* @__PURE__ */ jsxRuntime.jsxs(ComposerMention, {
538
+ children: [
539
+ mentions.MENTION_CHARACTER,
540
+ userId
541
+ ]
542
+ });
508
543
  },
509
544
  MentionSuggestions: ({ userIds }) => {
510
- return userIds.length > 0 ? /* @__PURE__ */ React.createElement(ComposerSuggestions, null, /* @__PURE__ */ React.createElement(ComposerSuggestionsList, null, userIds.map((userId) => /* @__PURE__ */ React.createElement(ComposerSuggestionsListItem, {
511
- key: userId,
512
- value: userId
513
- }, userId)))) : null;
545
+ return userIds.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(ComposerSuggestions, {
546
+ children: /* @__PURE__ */ jsxRuntime.jsx(ComposerSuggestionsList, {
547
+ children: userIds.map((userId) => /* @__PURE__ */ jsxRuntime.jsx(ComposerSuggestionsListItem, {
548
+ value: userId,
549
+ children: userId
550
+ }, userId))
551
+ })
552
+ }) : null;
514
553
  }
515
554
  };
516
- const ComposerEditor = React.forwardRef(
555
+ const ComposerEditor = react.forwardRef(
517
556
  ({
518
557
  defaultValue,
519
558
  onKeyDown,
@@ -538,16 +577,17 @@ const ComposerEditor = React.forwardRef(
538
577
  } = contexts.useComposer();
539
578
  const isDisabled = isComposerDisabled || disabled;
540
579
  const initialBody = useInitial.useInitial(defaultValue ?? emptyCommentBody);
541
- const initialEditorValue = React.useMemo(() => {
580
+ const initialEditorValue = react.useMemo(() => {
542
581
  return utils.commentBodyToComposerBody(initialBody);
543
582
  }, [initialBody]);
544
- const { Link, Mention, MentionSuggestions, FloatingToolbar } = React.useMemo(
583
+ const { Link, Mention, MentionSuggestions, FloatingToolbar } = react.useMemo(
545
584
  () => ({ ...defaultEditorComponents, ...components }),
546
585
  [components]
547
586
  );
548
- const [hasFloatingToolbarRange, setHasFloatingToolbarRange] = React.useState(false);
549
- const hasResolveMentionSuggestions = client ? client[core.kInternal].resolveMentionSuggestions !== void 0 : true;
550
- const [mentionDraft, setMentionDraft] = React.useState();
587
+ const [hasFloatingToolbarRange, setHasFloatingToolbarRange] = react.useState(false);
588
+ const resolveMentionSuggestions = _private.useResolveMentionSuggestions();
589
+ const hasResolveMentionSuggestions = client ? resolveMentionSuggestions : true;
590
+ const [mentionDraft, setMentionDraft] = react.useState();
551
591
  const mentionSuggestions = _private.useMentionSuggestions(
552
592
  roomId,
553
593
  mentionDraft?.text
@@ -558,22 +598,22 @@ const ComposerEditor = React.forwardRef(
558
598
  setNextSelectedMentionSuggestionIndex,
559
599
  setSelectedMentionSuggestionIndex
560
600
  ] = useIndex.useIndex(0, mentionSuggestions?.length ?? 0);
561
- const id = useId.useId();
562
- const floatingToolbarId = React.useMemo(
601
+ const id = react.useId();
602
+ const floatingToolbarId = react.useMemo(
563
603
  () => `liveblocks-floating-toolbar-${id}`,
564
604
  [id]
565
605
  );
566
- const suggestionsListId = React.useMemo(
606
+ const suggestionsListId = react.useMemo(
567
607
  () => `liveblocks-suggestions-list-${id}`,
568
608
  [id]
569
609
  );
570
- const suggestionsListItemId = React.useCallback(
610
+ const suggestionsListItemId = react.useCallback(
571
611
  (userId) => userId ? `liveblocks-suggestions-list-item-${id}-${userId}` : void 0,
572
612
  [id]
573
613
  );
574
- const renderElement = React.useCallback(
614
+ const renderElement = react.useCallback(
575
615
  (props2) => {
576
- return /* @__PURE__ */ React.createElement(ComposerEditorElement, {
616
+ return /* @__PURE__ */ jsxRuntime.jsx(ComposerEditorElement, {
577
617
  Mention,
578
618
  Link,
579
619
  ...props2
@@ -581,14 +621,14 @@ const ComposerEditor = React.forwardRef(
581
621
  },
582
622
  [Link, Mention]
583
623
  );
584
- const handleChange = React.useCallback(
624
+ const handleChange = react.useCallback(
585
625
  (value) => {
586
626
  validate(value);
587
627
  onEditorChange.notify();
588
628
  },
589
629
  [validate, onEditorChange]
590
630
  );
591
- const createMention = React.useCallback(
631
+ const createMention = react.useCallback(
592
632
  (userId) => {
593
633
  if (!mentionDraft || !userId) {
594
634
  return;
@@ -600,7 +640,7 @@ const ComposerEditor = React.forwardRef(
600
640
  },
601
641
  [editor, mentionDraft, setSelectedMentionSuggestionIndex]
602
642
  );
603
- const handleKeyDown = React.useCallback(
643
+ const handleKeyDown = react.useCallback(
604
644
  (event) => {
605
645
  onKeyDown?.(event);
606
646
  if (event.isDefaultPrevented()) {
@@ -686,7 +726,7 @@ const ComposerEditor = React.forwardRef(
686
726
  submit
687
727
  ]
688
728
  );
689
- const handleFocus = React.useCallback(
729
+ const handleFocus = react.useCallback(
690
730
  (event) => {
691
731
  onFocus?.(event);
692
732
  if (!event.isDefaultPrevented()) {
@@ -695,7 +735,7 @@ const ComposerEditor = React.forwardRef(
695
735
  },
696
736
  [onFocus, setFocused]
697
737
  );
698
- const handleBlur = React.useCallback(
738
+ const handleBlur = react.useCallback(
699
739
  (event) => {
700
740
  onBlur?.(event);
701
741
  if (!event.isDefaultPrevented()) {
@@ -704,11 +744,11 @@ const ComposerEditor = React.forwardRef(
704
744
  },
705
745
  [onBlur, setFocused]
706
746
  );
707
- const selectedMentionSuggestionUserId = React.useMemo(
747
+ const selectedMentionSuggestionUserId = react.useMemo(
708
748
  () => mentionSuggestions?.[selectedMentionSuggestionIndex],
709
749
  [selectedMentionSuggestionIndex, mentionSuggestions]
710
750
  );
711
- const setSelectedMentionSuggestionUserId = React.useCallback(
751
+ const setSelectedMentionSuggestionUserId = react.useCallback(
712
752
  (userId) => {
713
753
  const index = mentionSuggestions?.indexOf(userId);
714
754
  if (index !== void 0 && index >= 0) {
@@ -717,7 +757,7 @@ const ComposerEditor = React.forwardRef(
717
757
  },
718
758
  [setSelectedMentionSuggestionIndex, mentionSuggestions]
719
759
  );
720
- const additionalProps = React.useMemo(
760
+ const additionalProps = react.useMemo(
721
761
  () => mentionDraft ? {
722
762
  role: "combobox",
723
763
  "aria-autocomplete": "list",
@@ -739,58 +779,63 @@ const ComposerEditor = React.forwardRef(
739
779
  floatingToolbarId
740
780
  ]
741
781
  );
742
- React.useImperativeHandle(forwardedRef, () => {
782
+ react.useImperativeHandle(forwardedRef, () => {
743
783
  return slateReact.ReactEditor.toDOMNode(editor, editor);
744
784
  }, [editor]);
745
- useLayoutEffect.useLayoutEffect(() => {
785
+ react.useLayoutEffect(() => {
746
786
  if (autoFocus) {
747
787
  focus();
748
788
  }
749
789
  }, [autoFocus, editor, focus]);
750
- useLayoutEffect.useLayoutEffect(() => {
790
+ react.useLayoutEffect(() => {
751
791
  if (isFocused && editor.selection === null) {
752
792
  select();
753
793
  }
754
794
  }, [editor, select, isFocused]);
755
- return /* @__PURE__ */ React.createElement(slateReact.Slate, {
795
+ return /* @__PURE__ */ jsxRuntime.jsxs(slateReact.Slate, {
756
796
  editor,
757
797
  initialValue: initialEditorValue,
758
- onChange: handleChange
759
- }, /* @__PURE__ */ React.createElement(slateReact.Editable, {
760
- dir,
761
- enterKeyHint: mentionDraft ? "enter" : "send",
762
- autoCapitalize: "sentences",
763
- "aria-label": "Composer editor",
764
- "data-focused": isFocused || void 0,
765
- "data-disabled": isDisabled || void 0,
766
- ...additionalProps,
767
- ...props,
768
- readOnly: isDisabled,
769
- disabled: isDisabled,
770
- onKeyDown: handleKeyDown,
771
- onFocus: handleFocus,
772
- onBlur: handleBlur,
773
- renderElement,
774
- renderLeaf: ComposerEditorLeaf,
775
- renderPlaceholder: ComposerEditorPlaceholder
776
- }), hasResolveMentionSuggestions && /* @__PURE__ */ React.createElement(ComposerEditorMentionSuggestionsWrapper, {
777
- dir,
778
- mentionDraft,
779
- setMentionDraft,
780
- selectedUserId: selectedMentionSuggestionUserId,
781
- setSelectedUserId: setSelectedMentionSuggestionUserId,
782
- userIds: mentionSuggestions,
783
- id: suggestionsListId,
784
- itemId: suggestionsListItemId,
785
- onItemSelect: createMention,
786
- MentionSuggestions
787
- }), FloatingToolbar && /* @__PURE__ */ React.createElement(ComposerEditorFloatingToolbarWrapper, {
788
- dir,
789
- id: floatingToolbarId,
790
- hasFloatingToolbarRange,
791
- setHasFloatingToolbarRange,
792
- FloatingToolbar
793
- }));
798
+ onChange: handleChange,
799
+ children: [
800
+ /* @__PURE__ */ jsxRuntime.jsx(slateReact.Editable, {
801
+ dir,
802
+ enterKeyHint: mentionDraft ? "enter" : "send",
803
+ autoCapitalize: "sentences",
804
+ "aria-label": "Composer editor",
805
+ "data-focused": isFocused || void 0,
806
+ "data-disabled": isDisabled || void 0,
807
+ ...additionalProps,
808
+ ...props,
809
+ readOnly: isDisabled,
810
+ disabled: isDisabled,
811
+ onKeyDown: handleKeyDown,
812
+ onFocus: handleFocus,
813
+ onBlur: handleBlur,
814
+ renderElement,
815
+ renderLeaf: ComposerEditorLeaf,
816
+ renderPlaceholder: ComposerEditorPlaceholder
817
+ }),
818
+ hasResolveMentionSuggestions && /* @__PURE__ */ jsxRuntime.jsx(ComposerEditorMentionSuggestionsWrapper, {
819
+ dir,
820
+ mentionDraft,
821
+ setMentionDraft,
822
+ selectedUserId: selectedMentionSuggestionUserId,
823
+ setSelectedUserId: setSelectedMentionSuggestionUserId,
824
+ userIds: mentionSuggestions,
825
+ id: suggestionsListId,
826
+ itemId: suggestionsListItemId,
827
+ onItemSelect: createMention,
828
+ MentionSuggestions
829
+ }),
830
+ FloatingToolbar && /* @__PURE__ */ jsxRuntime.jsx(ComposerEditorFloatingToolbarWrapper, {
831
+ dir,
832
+ id: floatingToolbarId,
833
+ hasFloatingToolbarRange,
834
+ setHasFloatingToolbarRange,
835
+ FloatingToolbar
836
+ })
837
+ ]
838
+ });
794
839
  }
795
840
  );
796
841
  const MAX_ATTACHMENTS = 10;
@@ -806,7 +851,7 @@ function prepareAttachment(file) {
806
851
  file
807
852
  };
808
853
  }
809
- const ComposerForm = React.forwardRef(
854
+ const ComposerForm = react.forwardRef(
810
855
  ({
811
856
  children,
812
857
  onSubmit,
@@ -820,9 +865,9 @@ const ComposerForm = React.forwardRef(
820
865
  ...props
821
866
  }, forwardedRef) => {
822
867
  const Component = asChild ? reactSlot.Slot : "form";
823
- const [isEmpty$1, setEmpty] = React.useState(true);
824
- const [isSubmitting, setSubmitting] = React.useState(false);
825
- const [isFocused, setFocused] = React.useState(false);
868
+ const [isEmpty$1, setEmpty] = react.useState(true);
869
+ const [isSubmitting, setSubmitting] = react.useState(false);
870
+ const [isFocused, setFocused] = react.useState(false);
826
871
  const room = _private.useRoomOrNull();
827
872
  const roomId = _roomId !== void 0 ? _roomId : room?.id;
828
873
  if (roomId === void 0) {
@@ -842,24 +887,24 @@ const ComposerForm = React.forwardRef(
842
887
  });
843
888
  const numberOfAttachments = attachments.length;
844
889
  const hasMaxAttachments = numberOfAttachments >= maxAttachments;
845
- const isDisabled = React.useMemo(() => {
890
+ const isDisabled = react.useMemo(() => {
846
891
  return isSubmitting || disabled === true;
847
892
  }, [isSubmitting, disabled]);
848
- const canSubmit = React.useMemo(() => {
893
+ const canSubmit = react.useMemo(() => {
849
894
  return !isEmpty$1 && !isUploadingAttachments;
850
895
  }, [isEmpty$1, isUploadingAttachments]);
851
- const [marks$1, setMarks] = React.useState(marks.getMarks);
852
- const ref = React.useRef(null);
896
+ const [marks$1, setMarks] = react.useState(marks.getMarks);
897
+ const ref = react.useRef(null);
853
898
  const mergedRefs = useRefs.useRefs(forwardedRef, ref);
854
- const fileInputRef = React.useRef(null);
899
+ const fileInputRef = react.useRef(null);
855
900
  const syncSource = _private.useSyncSource();
856
901
  const isPending = !preventUnsavedChanges ? false : !isEmpty$1 || isUploadingAttachments || attachments.length > 0;
857
- React.useEffect(() => {
902
+ react.useEffect(() => {
858
903
  syncSource?.setSyncStatus(
859
904
  isPending ? "has-local-changes" : "synchronized"
860
905
  );
861
906
  }, [syncSource, isPending]);
862
- const createAttachments = React.useCallback(
907
+ const createAttachments = react.useCallback(
863
908
  (files) => {
864
909
  if (!files.length) {
865
910
  return;
@@ -874,11 +919,11 @@ const ComposerForm = React.forwardRef(
874
919
  },
875
920
  [addAttachments, maxAttachments, numberOfAttachments]
876
921
  );
877
- const createAttachmentsRef = React.useRef(createAttachments);
878
- React.useEffect(() => {
922
+ const createAttachmentsRef = react.useRef(createAttachments);
923
+ react.useEffect(() => {
879
924
  createAttachmentsRef.current = createAttachments;
880
925
  }, [createAttachments]);
881
- const stableCreateAttachments = React.useCallback((files) => {
926
+ const stableCreateAttachments = react.useCallback((files) => {
882
927
  createAttachmentsRef.current(files);
883
928
  }, []);
884
929
  const editor = useInitial.useInitial(
@@ -888,13 +933,13 @@ const ComposerForm = React.forwardRef(
888
933
  })
889
934
  );
890
935
  const onEditorChange = useInitial.useInitial(core.makeEventSource);
891
- const validate = React.useCallback(
936
+ const validate = react.useCallback(
892
937
  (value) => {
893
938
  setEmpty(isEmpty.isEmpty(editor, value));
894
939
  },
895
940
  [editor]
896
941
  );
897
- const submit = React.useCallback(() => {
942
+ const submit = react.useCallback(() => {
898
943
  if (!canSubmit) {
899
944
  return;
900
945
  }
@@ -904,7 +949,7 @@ const ComposerForm = React.forwardRef(
904
949
  }
905
950
  });
906
951
  }, [canSubmit]);
907
- const clear = React.useCallback(() => {
952
+ const clear = react.useCallback(() => {
908
953
  slate.Transforms.delete(editor, {
909
954
  at: {
910
955
  anchor: slate.Editor.start(editor, []),
@@ -912,10 +957,10 @@ const ComposerForm = React.forwardRef(
912
957
  }
913
958
  });
914
959
  }, [editor]);
915
- const select = React.useCallback(() => {
960
+ const select = react.useCallback(() => {
916
961
  slate.Transforms.select(editor, slate.Editor.end(editor, []));
917
962
  }, [editor]);
918
- const focus = React.useCallback(
963
+ const focus = react.useCallback(
919
964
  (resetSelection = true) => {
920
965
  if (!slateReact.ReactEditor.isFocused(editor)) {
921
966
  slate.Transforms.select(
@@ -927,17 +972,17 @@ const ComposerForm = React.forwardRef(
927
972
  },
928
973
  [editor]
929
974
  );
930
- const blur = React.useCallback(() => {
975
+ const blur = react.useCallback(() => {
931
976
  slateReact.ReactEditor.blur(editor);
932
977
  }, [editor]);
933
- const createMention = React.useCallback(() => {
978
+ const createMention = react.useCallback(() => {
934
979
  if (disabled) {
935
980
  return;
936
981
  }
937
982
  focus();
938
983
  mentions.insertMentionCharacter(editor);
939
984
  }, [disabled, editor, focus]);
940
- const insertText = React.useCallback(
985
+ const insertText = react.useCallback(
941
986
  (text) => {
942
987
  if (disabled) {
943
988
  return;
@@ -947,7 +992,7 @@ const ComposerForm = React.forwardRef(
947
992
  },
948
993
  [disabled, editor, focus]
949
994
  );
950
- const attachFiles = React.useCallback(() => {
995
+ const attachFiles = react.useCallback(() => {
951
996
  if (disabled) {
952
997
  return;
953
998
  }
@@ -955,7 +1000,7 @@ const ComposerForm = React.forwardRef(
955
1000
  fileInputRef.current.click();
956
1001
  }
957
1002
  }, [disabled]);
958
- const handleAttachmentsInputChange = React.useCallback(
1003
+ const handleAttachmentsInputChange = react.useCallback(
959
1004
  (event) => {
960
1005
  if (disabled) {
961
1006
  return;
@@ -967,13 +1012,13 @@ const ComposerForm = React.forwardRef(
967
1012
  },
968
1013
  [createAttachments, disabled]
969
1014
  );
970
- const onSubmitEnd = React.useCallback(() => {
1015
+ const onSubmitEnd = react.useCallback(() => {
971
1016
  clear();
972
1017
  blur();
973
1018
  clearAttachments();
974
1019
  setSubmitting(false);
975
1020
  }, [blur, clear, clearAttachments]);
976
- const handleSubmit = React.useCallback(
1021
+ const handleSubmit = react.useCallback(
977
1022
  (event) => {
978
1023
  if (disabled) {
979
1024
  return;
@@ -1016,10 +1061,10 @@ const ComposerForm = React.forwardRef(
1016
1061
  },
1017
1062
  [disabled, editor, attachments, onComposerSubmit, onSubmit, onSubmitEnd]
1018
1063
  );
1019
- const stopPropagation = React.useCallback((event) => {
1064
+ const stopPropagation = react.useCallback((event) => {
1020
1065
  event.stopPropagation();
1021
1066
  }, []);
1022
- const toggleMark = React.useCallback(
1067
+ const toggleMark = react.useCallback(
1023
1068
  (mark) => {
1024
1069
  marks.toggleMark(editor, mark);
1025
1070
  },
@@ -1028,75 +1073,85 @@ const ComposerForm = React.forwardRef(
1028
1073
  useObservable.useObservable(onEditorChange, () => {
1029
1074
  setMarks(marks.getMarks(editor));
1030
1075
  });
1031
- return /* @__PURE__ */ React.createElement(contexts.ComposerEditorContext.Provider, {
1076
+ return /* @__PURE__ */ jsxRuntime.jsx(contexts.ComposerEditorContext.Provider, {
1032
1077
  value: {
1033
1078
  editor,
1034
1079
  validate,
1035
1080
  setFocused,
1036
1081
  onEditorChange,
1037
1082
  roomId
1038
- }
1039
- }, /* @__PURE__ */ React.createElement(contexts.ComposerAttachmentsContext.Provider, {
1040
- value: {
1041
- createAttachments,
1042
- isUploadingAttachments,
1043
- hasMaxAttachments,
1044
- maxAttachments,
1045
- maxAttachmentSize
1046
- }
1047
- }, /* @__PURE__ */ React.createElement(contexts.ComposerContext.Provider, {
1048
- value: {
1049
- isDisabled,
1050
- isFocused,
1051
- isEmpty: isEmpty$1,
1052
- canSubmit,
1053
- submit,
1054
- clear,
1055
- select,
1056
- focus,
1057
- blur,
1058
- createMention,
1059
- insertText,
1060
- attachments,
1061
- attachFiles,
1062
- removeAttachment,
1063
- toggleMark,
1064
- marks: marks$1
1065
- }
1066
- }, /* @__PURE__ */ React.createElement(Component, {
1067
- ...props,
1068
- onSubmit: handleSubmit,
1069
- ref: mergedRefs
1070
- }, /* @__PURE__ */ React.createElement("input", {
1071
- type: "file",
1072
- multiple: true,
1073
- ref: fileInputRef,
1074
- onChange: handleAttachmentsInputChange,
1075
- onClick: stopPropagation,
1076
- tabIndex: -1,
1077
- style: { display: "none" }
1078
- }), /* @__PURE__ */ React.createElement(reactSlot.Slottable, null, children)))));
1083
+ },
1084
+ children: /* @__PURE__ */ jsxRuntime.jsx(contexts.ComposerAttachmentsContext.Provider, {
1085
+ value: {
1086
+ createAttachments,
1087
+ isUploadingAttachments,
1088
+ hasMaxAttachments,
1089
+ maxAttachments,
1090
+ maxAttachmentSize
1091
+ },
1092
+ children: /* @__PURE__ */ jsxRuntime.jsx(contexts.ComposerContext.Provider, {
1093
+ value: {
1094
+ isDisabled,
1095
+ isFocused,
1096
+ isEmpty: isEmpty$1,
1097
+ canSubmit,
1098
+ submit,
1099
+ clear,
1100
+ select,
1101
+ focus,
1102
+ blur,
1103
+ createMention,
1104
+ insertText,
1105
+ attachments,
1106
+ attachFiles,
1107
+ removeAttachment,
1108
+ toggleMark,
1109
+ marks: marks$1
1110
+ },
1111
+ children: /* @__PURE__ */ jsxRuntime.jsxs(Component, {
1112
+ ...props,
1113
+ onSubmit: handleSubmit,
1114
+ ref: mergedRefs,
1115
+ children: [
1116
+ /* @__PURE__ */ jsxRuntime.jsx("input", {
1117
+ type: "file",
1118
+ multiple: true,
1119
+ ref: fileInputRef,
1120
+ onChange: handleAttachmentsInputChange,
1121
+ onClick: stopPropagation,
1122
+ tabIndex: -1,
1123
+ style: { display: "none" }
1124
+ }),
1125
+ /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slottable, {
1126
+ children
1127
+ })
1128
+ ]
1129
+ })
1130
+ })
1131
+ })
1132
+ });
1079
1133
  }
1080
1134
  );
1081
- const ComposerSubmit = React.forwardRef(
1135
+ const ComposerSubmit = react.forwardRef(
1082
1136
  ({ children, disabled, asChild, ...props }, forwardedRef) => {
1083
1137
  const Component = asChild ? reactSlot.Slot : "button";
1084
1138
  const { canSubmit, isDisabled: isComposerDisabled } = contexts.useComposer();
1085
1139
  const isDisabled = isComposerDisabled || disabled || !canSubmit;
1086
- return /* @__PURE__ */ React.createElement(Component, {
1140
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
1087
1141
  type: "submit",
1088
1142
  ...props,
1089
1143
  ref: forwardedRef,
1090
- disabled: isDisabled
1091
- }, children);
1144
+ disabled: isDisabled,
1145
+ children
1146
+ });
1092
1147
  }
1093
1148
  );
1094
- const ComposerAttachFiles = React.forwardRef(({ children, onClick, disabled, asChild, ...props }, forwardedRef) => {
1149
+ const ComposerAttachFiles = react.forwardRef(({ children, onClick, disabled, asChild, ...props }, forwardedRef) => {
1095
1150
  const Component = asChild ? reactSlot.Slot : "button";
1096
1151
  const { hasMaxAttachments } = contexts.useComposerAttachmentsContext();
1097
1152
  const { isDisabled: isComposerDisabled, attachFiles } = contexts.useComposer();
1098
1153
  const isDisabled = isComposerDisabled || hasMaxAttachments || disabled;
1099
- const handleClick = React.useCallback(
1154
+ const handleClick = react.useCallback(
1100
1155
  (event) => {
1101
1156
  onClick?.(event);
1102
1157
  if (!event.isDefaultPrevented()) {
@@ -1105,15 +1160,16 @@ const ComposerAttachFiles = React.forwardRef(({ children, onClick, disabled, asC
1105
1160
  },
1106
1161
  [attachFiles, onClick]
1107
1162
  );
1108
- return /* @__PURE__ */ React.createElement(Component, {
1163
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
1109
1164
  type: "button",
1110
1165
  ...props,
1111
1166
  onClick: handleClick,
1112
1167
  ref: forwardedRef,
1113
- disabled: isDisabled
1114
- }, children);
1168
+ disabled: isDisabled,
1169
+ children
1170
+ });
1115
1171
  });
1116
- const ComposerAttachmentsDropArea = React.forwardRef(
1172
+ const ComposerAttachmentsDropArea = react.forwardRef(
1117
1173
  ({
1118
1174
  onDragEnter,
1119
1175
  onDragLeave,
@@ -1133,7 +1189,7 @@ const ComposerAttachmentsDropArea = React.forwardRef(
1133
1189
  onDrop,
1134
1190
  disabled: isDisabled
1135
1191
  });
1136
- return /* @__PURE__ */ React.createElement(Component, {
1192
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
1137
1193
  ...dropAreaProps,
1138
1194
  "data-disabled": isDisabled ? "" : void 0,
1139
1195
  ...props,
@@ -1141,11 +1197,11 @@ const ComposerAttachmentsDropArea = React.forwardRef(
1141
1197
  });
1142
1198
  }
1143
1199
  );
1144
- const ComposerMarkToggle = React.forwardRef(
1200
+ const ComposerMarkToggle = react.forwardRef(
1145
1201
  ({ children, mark, onValueChange, onClick, asChild, ...props }, forwardedRef) => {
1146
1202
  const Component = asChild ? reactSlot.Slot : "button";
1147
1203
  const { marks, toggleMark } = contexts.useComposer();
1148
- const handleClick = React.useCallback(
1204
+ const handleClick = react.useCallback(
1149
1205
  (event) => {
1150
1206
  onClick?.(event);
1151
1207
  if (!event.isDefaultPrevented()) {
@@ -1155,15 +1211,17 @@ const ComposerMarkToggle = React.forwardRef(
1155
1211
  },
1156
1212
  [mark, onClick, onValueChange, toggleMark]
1157
1213
  );
1158
- return /* @__PURE__ */ React.createElement(TogglePrimitive__namespace.Root, {
1214
+ return /* @__PURE__ */ jsxRuntime.jsx(TogglePrimitive__namespace.Root, {
1159
1215
  asChild: true,
1160
1216
  pressed: marks[mark],
1161
1217
  onClick: handleClick,
1162
- ...props
1163
- }, /* @__PURE__ */ React.createElement(Component, {
1164
1218
  ...props,
1165
- ref: forwardedRef
1166
- }, children));
1219
+ children: /* @__PURE__ */ jsxRuntime.jsx(Component, {
1220
+ ...props,
1221
+ ref: forwardedRef,
1222
+ children
1223
+ })
1224
+ });
1167
1225
  }
1168
1226
  );
1169
1227
  if (process.env.NODE_ENV !== "production") {