@liveblocks/react-ui 2.14.0-v2encoding → 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 +304 -221
  8. package/dist/components/Composer.js.map +1 -1
  9. package/dist/components/Composer.mjs +278 -195
  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 +327 -270
  191. package/dist/primitives/Composer/index.js.map +1 -1
  192. package/dist/primitives/Composer/index.mjs +250 -193
  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,17 +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);
587
+ const [hasFloatingToolbarRange, setHasFloatingToolbarRange] = react.useState(false);
549
588
  const resolveMentionSuggestions = _private.useResolveMentionSuggestions();
550
589
  const hasResolveMentionSuggestions = client ? resolveMentionSuggestions : true;
551
- const [mentionDraft, setMentionDraft] = React.useState();
590
+ const [mentionDraft, setMentionDraft] = react.useState();
552
591
  const mentionSuggestions = _private.useMentionSuggestions(
553
592
  roomId,
554
593
  mentionDraft?.text
@@ -559,22 +598,22 @@ const ComposerEditor = React.forwardRef(
559
598
  setNextSelectedMentionSuggestionIndex,
560
599
  setSelectedMentionSuggestionIndex
561
600
  ] = useIndex.useIndex(0, mentionSuggestions?.length ?? 0);
562
- const id = useId.useId();
563
- const floatingToolbarId = React.useMemo(
601
+ const id = react.useId();
602
+ const floatingToolbarId = react.useMemo(
564
603
  () => `liveblocks-floating-toolbar-${id}`,
565
604
  [id]
566
605
  );
567
- const suggestionsListId = React.useMemo(
606
+ const suggestionsListId = react.useMemo(
568
607
  () => `liveblocks-suggestions-list-${id}`,
569
608
  [id]
570
609
  );
571
- const suggestionsListItemId = React.useCallback(
610
+ const suggestionsListItemId = react.useCallback(
572
611
  (userId) => userId ? `liveblocks-suggestions-list-item-${id}-${userId}` : void 0,
573
612
  [id]
574
613
  );
575
- const renderElement = React.useCallback(
614
+ const renderElement = react.useCallback(
576
615
  (props2) => {
577
- return /* @__PURE__ */ React.createElement(ComposerEditorElement, {
616
+ return /* @__PURE__ */ jsxRuntime.jsx(ComposerEditorElement, {
578
617
  Mention,
579
618
  Link,
580
619
  ...props2
@@ -582,14 +621,14 @@ const ComposerEditor = React.forwardRef(
582
621
  },
583
622
  [Link, Mention]
584
623
  );
585
- const handleChange = React.useCallback(
624
+ const handleChange = react.useCallback(
586
625
  (value) => {
587
626
  validate(value);
588
627
  onEditorChange.notify();
589
628
  },
590
629
  [validate, onEditorChange]
591
630
  );
592
- const createMention = React.useCallback(
631
+ const createMention = react.useCallback(
593
632
  (userId) => {
594
633
  if (!mentionDraft || !userId) {
595
634
  return;
@@ -601,7 +640,7 @@ const ComposerEditor = React.forwardRef(
601
640
  },
602
641
  [editor, mentionDraft, setSelectedMentionSuggestionIndex]
603
642
  );
604
- const handleKeyDown = React.useCallback(
643
+ const handleKeyDown = react.useCallback(
605
644
  (event) => {
606
645
  onKeyDown?.(event);
607
646
  if (event.isDefaultPrevented()) {
@@ -687,7 +726,7 @@ const ComposerEditor = React.forwardRef(
687
726
  submit
688
727
  ]
689
728
  );
690
- const handleFocus = React.useCallback(
729
+ const handleFocus = react.useCallback(
691
730
  (event) => {
692
731
  onFocus?.(event);
693
732
  if (!event.isDefaultPrevented()) {
@@ -696,7 +735,7 @@ const ComposerEditor = React.forwardRef(
696
735
  },
697
736
  [onFocus, setFocused]
698
737
  );
699
- const handleBlur = React.useCallback(
738
+ const handleBlur = react.useCallback(
700
739
  (event) => {
701
740
  onBlur?.(event);
702
741
  if (!event.isDefaultPrevented()) {
@@ -705,11 +744,11 @@ const ComposerEditor = React.forwardRef(
705
744
  },
706
745
  [onBlur, setFocused]
707
746
  );
708
- const selectedMentionSuggestionUserId = React.useMemo(
747
+ const selectedMentionSuggestionUserId = react.useMemo(
709
748
  () => mentionSuggestions?.[selectedMentionSuggestionIndex],
710
749
  [selectedMentionSuggestionIndex, mentionSuggestions]
711
750
  );
712
- const setSelectedMentionSuggestionUserId = React.useCallback(
751
+ const setSelectedMentionSuggestionUserId = react.useCallback(
713
752
  (userId) => {
714
753
  const index = mentionSuggestions?.indexOf(userId);
715
754
  if (index !== void 0 && index >= 0) {
@@ -718,7 +757,7 @@ const ComposerEditor = React.forwardRef(
718
757
  },
719
758
  [setSelectedMentionSuggestionIndex, mentionSuggestions]
720
759
  );
721
- const additionalProps = React.useMemo(
760
+ const additionalProps = react.useMemo(
722
761
  () => mentionDraft ? {
723
762
  role: "combobox",
724
763
  "aria-autocomplete": "list",
@@ -740,58 +779,63 @@ const ComposerEditor = React.forwardRef(
740
779
  floatingToolbarId
741
780
  ]
742
781
  );
743
- React.useImperativeHandle(forwardedRef, () => {
782
+ react.useImperativeHandle(forwardedRef, () => {
744
783
  return slateReact.ReactEditor.toDOMNode(editor, editor);
745
784
  }, [editor]);
746
- useLayoutEffect.useLayoutEffect(() => {
785
+ react.useLayoutEffect(() => {
747
786
  if (autoFocus) {
748
787
  focus();
749
788
  }
750
789
  }, [autoFocus, editor, focus]);
751
- useLayoutEffect.useLayoutEffect(() => {
790
+ react.useLayoutEffect(() => {
752
791
  if (isFocused && editor.selection === null) {
753
792
  select();
754
793
  }
755
794
  }, [editor, select, isFocused]);
756
- return /* @__PURE__ */ React.createElement(slateReact.Slate, {
795
+ return /* @__PURE__ */ jsxRuntime.jsxs(slateReact.Slate, {
757
796
  editor,
758
797
  initialValue: initialEditorValue,
759
- onChange: handleChange
760
- }, /* @__PURE__ */ React.createElement(slateReact.Editable, {
761
- dir,
762
- enterKeyHint: mentionDraft ? "enter" : "send",
763
- autoCapitalize: "sentences",
764
- "aria-label": "Composer editor",
765
- "data-focused": isFocused || void 0,
766
- "data-disabled": isDisabled || void 0,
767
- ...additionalProps,
768
- ...props,
769
- readOnly: isDisabled,
770
- disabled: isDisabled,
771
- onKeyDown: handleKeyDown,
772
- onFocus: handleFocus,
773
- onBlur: handleBlur,
774
- renderElement,
775
- renderLeaf: ComposerEditorLeaf,
776
- renderPlaceholder: ComposerEditorPlaceholder
777
- }), hasResolveMentionSuggestions && /* @__PURE__ */ React.createElement(ComposerEditorMentionSuggestionsWrapper, {
778
- dir,
779
- mentionDraft,
780
- setMentionDraft,
781
- selectedUserId: selectedMentionSuggestionUserId,
782
- setSelectedUserId: setSelectedMentionSuggestionUserId,
783
- userIds: mentionSuggestions,
784
- id: suggestionsListId,
785
- itemId: suggestionsListItemId,
786
- onItemSelect: createMention,
787
- MentionSuggestions
788
- }), FloatingToolbar && /* @__PURE__ */ React.createElement(ComposerEditorFloatingToolbarWrapper, {
789
- dir,
790
- id: floatingToolbarId,
791
- hasFloatingToolbarRange,
792
- setHasFloatingToolbarRange,
793
- FloatingToolbar
794
- }));
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
+ });
795
839
  }
796
840
  );
797
841
  const MAX_ATTACHMENTS = 10;
@@ -807,7 +851,7 @@ function prepareAttachment(file) {
807
851
  file
808
852
  };
809
853
  }
810
- const ComposerForm = React.forwardRef(
854
+ const ComposerForm = react.forwardRef(
811
855
  ({
812
856
  children,
813
857
  onSubmit,
@@ -821,9 +865,9 @@ const ComposerForm = React.forwardRef(
821
865
  ...props
822
866
  }, forwardedRef) => {
823
867
  const Component = asChild ? reactSlot.Slot : "form";
824
- const [isEmpty$1, setEmpty] = React.useState(true);
825
- const [isSubmitting, setSubmitting] = React.useState(false);
826
- 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);
827
871
  const room = _private.useRoomOrNull();
828
872
  const roomId = _roomId !== void 0 ? _roomId : room?.id;
829
873
  if (roomId === void 0) {
@@ -843,24 +887,24 @@ const ComposerForm = React.forwardRef(
843
887
  });
844
888
  const numberOfAttachments = attachments.length;
845
889
  const hasMaxAttachments = numberOfAttachments >= maxAttachments;
846
- const isDisabled = React.useMemo(() => {
890
+ const isDisabled = react.useMemo(() => {
847
891
  return isSubmitting || disabled === true;
848
892
  }, [isSubmitting, disabled]);
849
- const canSubmit = React.useMemo(() => {
893
+ const canSubmit = react.useMemo(() => {
850
894
  return !isEmpty$1 && !isUploadingAttachments;
851
895
  }, [isEmpty$1, isUploadingAttachments]);
852
- const [marks$1, setMarks] = React.useState(marks.getMarks);
853
- const ref = React.useRef(null);
896
+ const [marks$1, setMarks] = react.useState(marks.getMarks);
897
+ const ref = react.useRef(null);
854
898
  const mergedRefs = useRefs.useRefs(forwardedRef, ref);
855
- const fileInputRef = React.useRef(null);
899
+ const fileInputRef = react.useRef(null);
856
900
  const syncSource = _private.useSyncSource();
857
901
  const isPending = !preventUnsavedChanges ? false : !isEmpty$1 || isUploadingAttachments || attachments.length > 0;
858
- React.useEffect(() => {
902
+ react.useEffect(() => {
859
903
  syncSource?.setSyncStatus(
860
904
  isPending ? "has-local-changes" : "synchronized"
861
905
  );
862
906
  }, [syncSource, isPending]);
863
- const createAttachments = React.useCallback(
907
+ const createAttachments = react.useCallback(
864
908
  (files) => {
865
909
  if (!files.length) {
866
910
  return;
@@ -875,11 +919,11 @@ const ComposerForm = React.forwardRef(
875
919
  },
876
920
  [addAttachments, maxAttachments, numberOfAttachments]
877
921
  );
878
- const createAttachmentsRef = React.useRef(createAttachments);
879
- React.useEffect(() => {
922
+ const createAttachmentsRef = react.useRef(createAttachments);
923
+ react.useEffect(() => {
880
924
  createAttachmentsRef.current = createAttachments;
881
925
  }, [createAttachments]);
882
- const stableCreateAttachments = React.useCallback((files) => {
926
+ const stableCreateAttachments = react.useCallback((files) => {
883
927
  createAttachmentsRef.current(files);
884
928
  }, []);
885
929
  const editor = useInitial.useInitial(
@@ -889,13 +933,13 @@ const ComposerForm = React.forwardRef(
889
933
  })
890
934
  );
891
935
  const onEditorChange = useInitial.useInitial(core.makeEventSource);
892
- const validate = React.useCallback(
936
+ const validate = react.useCallback(
893
937
  (value) => {
894
938
  setEmpty(isEmpty.isEmpty(editor, value));
895
939
  },
896
940
  [editor]
897
941
  );
898
- const submit = React.useCallback(() => {
942
+ const submit = react.useCallback(() => {
899
943
  if (!canSubmit) {
900
944
  return;
901
945
  }
@@ -905,7 +949,7 @@ const ComposerForm = React.forwardRef(
905
949
  }
906
950
  });
907
951
  }, [canSubmit]);
908
- const clear = React.useCallback(() => {
952
+ const clear = react.useCallback(() => {
909
953
  slate.Transforms.delete(editor, {
910
954
  at: {
911
955
  anchor: slate.Editor.start(editor, []),
@@ -913,10 +957,10 @@ const ComposerForm = React.forwardRef(
913
957
  }
914
958
  });
915
959
  }, [editor]);
916
- const select = React.useCallback(() => {
960
+ const select = react.useCallback(() => {
917
961
  slate.Transforms.select(editor, slate.Editor.end(editor, []));
918
962
  }, [editor]);
919
- const focus = React.useCallback(
963
+ const focus = react.useCallback(
920
964
  (resetSelection = true) => {
921
965
  if (!slateReact.ReactEditor.isFocused(editor)) {
922
966
  slate.Transforms.select(
@@ -928,17 +972,17 @@ const ComposerForm = React.forwardRef(
928
972
  },
929
973
  [editor]
930
974
  );
931
- const blur = React.useCallback(() => {
975
+ const blur = react.useCallback(() => {
932
976
  slateReact.ReactEditor.blur(editor);
933
977
  }, [editor]);
934
- const createMention = React.useCallback(() => {
978
+ const createMention = react.useCallback(() => {
935
979
  if (disabled) {
936
980
  return;
937
981
  }
938
982
  focus();
939
983
  mentions.insertMentionCharacter(editor);
940
984
  }, [disabled, editor, focus]);
941
- const insertText = React.useCallback(
985
+ const insertText = react.useCallback(
942
986
  (text) => {
943
987
  if (disabled) {
944
988
  return;
@@ -948,7 +992,7 @@ const ComposerForm = React.forwardRef(
948
992
  },
949
993
  [disabled, editor, focus]
950
994
  );
951
- const attachFiles = React.useCallback(() => {
995
+ const attachFiles = react.useCallback(() => {
952
996
  if (disabled) {
953
997
  return;
954
998
  }
@@ -956,7 +1000,7 @@ const ComposerForm = React.forwardRef(
956
1000
  fileInputRef.current.click();
957
1001
  }
958
1002
  }, [disabled]);
959
- const handleAttachmentsInputChange = React.useCallback(
1003
+ const handleAttachmentsInputChange = react.useCallback(
960
1004
  (event) => {
961
1005
  if (disabled) {
962
1006
  return;
@@ -968,13 +1012,13 @@ const ComposerForm = React.forwardRef(
968
1012
  },
969
1013
  [createAttachments, disabled]
970
1014
  );
971
- const onSubmitEnd = React.useCallback(() => {
1015
+ const onSubmitEnd = react.useCallback(() => {
972
1016
  clear();
973
1017
  blur();
974
1018
  clearAttachments();
975
1019
  setSubmitting(false);
976
1020
  }, [blur, clear, clearAttachments]);
977
- const handleSubmit = React.useCallback(
1021
+ const handleSubmit = react.useCallback(
978
1022
  (event) => {
979
1023
  if (disabled) {
980
1024
  return;
@@ -1017,10 +1061,10 @@ const ComposerForm = React.forwardRef(
1017
1061
  },
1018
1062
  [disabled, editor, attachments, onComposerSubmit, onSubmit, onSubmitEnd]
1019
1063
  );
1020
- const stopPropagation = React.useCallback((event) => {
1064
+ const stopPropagation = react.useCallback((event) => {
1021
1065
  event.stopPropagation();
1022
1066
  }, []);
1023
- const toggleMark = React.useCallback(
1067
+ const toggleMark = react.useCallback(
1024
1068
  (mark) => {
1025
1069
  marks.toggleMark(editor, mark);
1026
1070
  },
@@ -1029,75 +1073,85 @@ const ComposerForm = React.forwardRef(
1029
1073
  useObservable.useObservable(onEditorChange, () => {
1030
1074
  setMarks(marks.getMarks(editor));
1031
1075
  });
1032
- return /* @__PURE__ */ React.createElement(contexts.ComposerEditorContext.Provider, {
1076
+ return /* @__PURE__ */ jsxRuntime.jsx(contexts.ComposerEditorContext.Provider, {
1033
1077
  value: {
1034
1078
  editor,
1035
1079
  validate,
1036
1080
  setFocused,
1037
1081
  onEditorChange,
1038
1082
  roomId
1039
- }
1040
- }, /* @__PURE__ */ React.createElement(contexts.ComposerAttachmentsContext.Provider, {
1041
- value: {
1042
- createAttachments,
1043
- isUploadingAttachments,
1044
- hasMaxAttachments,
1045
- maxAttachments,
1046
- maxAttachmentSize
1047
- }
1048
- }, /* @__PURE__ */ React.createElement(contexts.ComposerContext.Provider, {
1049
- value: {
1050
- isDisabled,
1051
- isFocused,
1052
- isEmpty: isEmpty$1,
1053
- canSubmit,
1054
- submit,
1055
- clear,
1056
- select,
1057
- focus,
1058
- blur,
1059
- createMention,
1060
- insertText,
1061
- attachments,
1062
- attachFiles,
1063
- removeAttachment,
1064
- toggleMark,
1065
- marks: marks$1
1066
- }
1067
- }, /* @__PURE__ */ React.createElement(Component, {
1068
- ...props,
1069
- onSubmit: handleSubmit,
1070
- ref: mergedRefs
1071
- }, /* @__PURE__ */ React.createElement("input", {
1072
- type: "file",
1073
- multiple: true,
1074
- ref: fileInputRef,
1075
- onChange: handleAttachmentsInputChange,
1076
- onClick: stopPropagation,
1077
- tabIndex: -1,
1078
- style: { display: "none" }
1079
- }), /* @__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
+ });
1080
1133
  }
1081
1134
  );
1082
- const ComposerSubmit = React.forwardRef(
1135
+ const ComposerSubmit = react.forwardRef(
1083
1136
  ({ children, disabled, asChild, ...props }, forwardedRef) => {
1084
1137
  const Component = asChild ? reactSlot.Slot : "button";
1085
1138
  const { canSubmit, isDisabled: isComposerDisabled } = contexts.useComposer();
1086
1139
  const isDisabled = isComposerDisabled || disabled || !canSubmit;
1087
- return /* @__PURE__ */ React.createElement(Component, {
1140
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
1088
1141
  type: "submit",
1089
1142
  ...props,
1090
1143
  ref: forwardedRef,
1091
- disabled: isDisabled
1092
- }, children);
1144
+ disabled: isDisabled,
1145
+ children
1146
+ });
1093
1147
  }
1094
1148
  );
1095
- const ComposerAttachFiles = React.forwardRef(({ children, onClick, disabled, asChild, ...props }, forwardedRef) => {
1149
+ const ComposerAttachFiles = react.forwardRef(({ children, onClick, disabled, asChild, ...props }, forwardedRef) => {
1096
1150
  const Component = asChild ? reactSlot.Slot : "button";
1097
1151
  const { hasMaxAttachments } = contexts.useComposerAttachmentsContext();
1098
1152
  const { isDisabled: isComposerDisabled, attachFiles } = contexts.useComposer();
1099
1153
  const isDisabled = isComposerDisabled || hasMaxAttachments || disabled;
1100
- const handleClick = React.useCallback(
1154
+ const handleClick = react.useCallback(
1101
1155
  (event) => {
1102
1156
  onClick?.(event);
1103
1157
  if (!event.isDefaultPrevented()) {
@@ -1106,15 +1160,16 @@ const ComposerAttachFiles = React.forwardRef(({ children, onClick, disabled, asC
1106
1160
  },
1107
1161
  [attachFiles, onClick]
1108
1162
  );
1109
- return /* @__PURE__ */ React.createElement(Component, {
1163
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
1110
1164
  type: "button",
1111
1165
  ...props,
1112
1166
  onClick: handleClick,
1113
1167
  ref: forwardedRef,
1114
- disabled: isDisabled
1115
- }, children);
1168
+ disabled: isDisabled,
1169
+ children
1170
+ });
1116
1171
  });
1117
- const ComposerAttachmentsDropArea = React.forwardRef(
1172
+ const ComposerAttachmentsDropArea = react.forwardRef(
1118
1173
  ({
1119
1174
  onDragEnter,
1120
1175
  onDragLeave,
@@ -1134,7 +1189,7 @@ const ComposerAttachmentsDropArea = React.forwardRef(
1134
1189
  onDrop,
1135
1190
  disabled: isDisabled
1136
1191
  });
1137
- return /* @__PURE__ */ React.createElement(Component, {
1192
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, {
1138
1193
  ...dropAreaProps,
1139
1194
  "data-disabled": isDisabled ? "" : void 0,
1140
1195
  ...props,
@@ -1142,11 +1197,11 @@ const ComposerAttachmentsDropArea = React.forwardRef(
1142
1197
  });
1143
1198
  }
1144
1199
  );
1145
- const ComposerMarkToggle = React.forwardRef(
1200
+ const ComposerMarkToggle = react.forwardRef(
1146
1201
  ({ children, mark, onValueChange, onClick, asChild, ...props }, forwardedRef) => {
1147
1202
  const Component = asChild ? reactSlot.Slot : "button";
1148
1203
  const { marks, toggleMark } = contexts.useComposer();
1149
- const handleClick = React.useCallback(
1204
+ const handleClick = react.useCallback(
1150
1205
  (event) => {
1151
1206
  onClick?.(event);
1152
1207
  if (!event.isDefaultPrevented()) {
@@ -1156,15 +1211,17 @@ const ComposerMarkToggle = React.forwardRef(
1156
1211
  },
1157
1212
  [mark, onClick, onValueChange, toggleMark]
1158
1213
  );
1159
- return /* @__PURE__ */ React.createElement(TogglePrimitive__namespace.Root, {
1214
+ return /* @__PURE__ */ jsxRuntime.jsx(TogglePrimitive__namespace.Root, {
1160
1215
  asChild: true,
1161
1216
  pressed: marks[mark],
1162
1217
  onClick: handleClick,
1163
- ...props
1164
- }, /* @__PURE__ */ React.createElement(Component, {
1165
1218
  ...props,
1166
- ref: forwardedRef
1167
- }, children));
1219
+ children: /* @__PURE__ */ jsxRuntime.jsx(Component, {
1220
+ ...props,
1221
+ ref: forwardedRef,
1222
+ children
1223
+ })
1224
+ });
1168
1225
  }
1169
1226
  );
1170
1227
  if (process.env.NODE_ENV !== "production") {