@liveblocks/react-ui 2.14.0 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/dist/_private/index.d.mts +24 -22
  2. package/dist/_private/index.d.ts +24 -22
  3. package/dist/_private/index.js +1 -0
  4. package/dist/_private/index.js.map +1 -1
  5. package/dist/_private/index.mjs +1 -0
  6. package/dist/_private/index.mjs.map +1 -1
  7. package/dist/components/Comment.js +358 -256
  8. package/dist/components/Comment.js.map +1 -1
  9. package/dist/components/Comment.mjs +334 -232
  10. package/dist/components/Comment.mjs.map +1 -1
  11. package/dist/components/Composer.js +308 -225
  12. package/dist/components/Composer.js.map +1 -1
  13. package/dist/components/Composer.mjs +288 -206
  14. package/dist/components/Composer.mjs.map +1 -1
  15. package/dist/components/HistoryVersionSummary.js +28 -32
  16. package/dist/components/HistoryVersionSummary.js.map +1 -1
  17. package/dist/components/HistoryVersionSummary.mjs +27 -31
  18. package/dist/components/HistoryVersionSummary.mjs.map +1 -1
  19. package/dist/components/HistoryVersionSummaryList.js +11 -9
  20. package/dist/components/HistoryVersionSummaryList.js.map +1 -1
  21. package/dist/components/HistoryVersionSummaryList.mjs +10 -8
  22. package/dist/components/HistoryVersionSummaryList.mjs.map +1 -1
  23. package/dist/components/InboxNotification.js +202 -143
  24. package/dist/components/InboxNotification.js.map +1 -1
  25. package/dist/components/InboxNotification.mjs +180 -121
  26. package/dist/components/InboxNotification.mjs.map +1 -1
  27. package/dist/components/InboxNotificationList.js +19 -14
  28. package/dist/components/InboxNotificationList.js.map +1 -1
  29. package/dist/components/InboxNotificationList.mjs +17 -12
  30. package/dist/components/InboxNotificationList.mjs.map +1 -1
  31. package/dist/components/Thread.js +104 -86
  32. package/dist/components/Thread.js.map +1 -1
  33. package/dist/components/Thread.mjs +93 -75
  34. package/dist/components/Thread.mjs.map +1 -1
  35. package/dist/components/internal/Attachment.js +161 -113
  36. package/dist/components/internal/Attachment.js.map +1 -1
  37. package/dist/components/internal/Attachment.mjs +150 -102
  38. package/dist/components/internal/Attachment.mjs.map +1 -1
  39. package/dist/components/internal/Attribution.js +15 -13
  40. package/dist/components/internal/Attribution.js.map +1 -1
  41. package/dist/components/internal/Attribution.mjs +15 -13
  42. package/dist/components/internal/Attribution.mjs.map +1 -1
  43. package/dist/components/internal/Avatar.js +27 -20
  44. package/dist/components/internal/Avatar.js.map +1 -1
  45. package/dist/components/internal/Avatar.mjs +23 -16
  46. package/dist/components/internal/Avatar.mjs.map +1 -1
  47. package/dist/components/internal/Button.js +5 -4
  48. package/dist/components/internal/Button.js.map +1 -1
  49. package/dist/components/internal/Button.mjs +4 -3
  50. package/dist/components/internal/Button.mjs.map +1 -1
  51. package/dist/components/internal/Dropdown.js +27 -19
  52. package/dist/components/internal/Dropdown.js.map +1 -1
  53. package/dist/components/internal/Dropdown.mjs +26 -18
  54. package/dist/components/internal/Dropdown.mjs.map +1 -1
  55. package/dist/components/internal/Emoji.js +4 -3
  56. package/dist/components/internal/Emoji.js.map +1 -1
  57. package/dist/components/internal/Emoji.mjs +3 -2
  58. package/dist/components/internal/Emoji.mjs.map +1 -1
  59. package/dist/components/internal/EmojiPicker.js +96 -72
  60. package/dist/components/internal/EmojiPicker.js.map +1 -1
  61. package/dist/components/internal/EmojiPicker.mjs +90 -66
  62. package/dist/components/internal/EmojiPicker.mjs.map +1 -1
  63. package/dist/components/internal/Icon.js +5 -4
  64. package/dist/components/internal/Icon.js.map +1 -1
  65. package/dist/components/internal/Icon.mjs +5 -4
  66. package/dist/components/internal/Icon.mjs.map +1 -1
  67. package/dist/components/internal/InboxNotificationThread.js +53 -38
  68. package/dist/components/internal/InboxNotificationThread.js.map +1 -1
  69. package/dist/components/internal/InboxNotificationThread.mjs +53 -38
  70. package/dist/components/internal/InboxNotificationThread.mjs.map +1 -1
  71. package/dist/components/internal/List.js +8 -6
  72. package/dist/components/internal/List.js.map +1 -1
  73. package/dist/components/internal/List.mjs +6 -4
  74. package/dist/components/internal/List.mjs.map +1 -1
  75. package/dist/components/internal/Room.js +8 -6
  76. package/dist/components/internal/Room.js.map +1 -1
  77. package/dist/components/internal/Room.mjs +7 -5
  78. package/dist/components/internal/Room.mjs.map +1 -1
  79. package/dist/components/internal/Tooltip.js +49 -33
  80. package/dist/components/internal/Tooltip.js.map +1 -1
  81. package/dist/components/internal/Tooltip.mjs +46 -30
  82. package/dist/components/internal/Tooltip.mjs.map +1 -1
  83. package/dist/components/internal/User.js +8 -6
  84. package/dist/components/internal/User.js.map +1 -1
  85. package/dist/components/internal/User.mjs +7 -5
  86. package/dist/components/internal/User.mjs.map +1 -1
  87. package/dist/components.js +12 -29
  88. package/dist/components.js.map +1 -1
  89. package/dist/components.mjs +6 -5
  90. package/dist/components.mjs.map +1 -1
  91. package/dist/config.js +16 -12
  92. package/dist/config.js.map +1 -1
  93. package/dist/config.mjs +13 -9
  94. package/dist/config.mjs.map +1 -1
  95. package/dist/icons/ArrowDown.js +7 -6
  96. package/dist/icons/ArrowDown.js.map +1 -1
  97. package/dist/icons/ArrowDown.mjs +7 -6
  98. package/dist/icons/ArrowDown.mjs.map +1 -1
  99. package/dist/icons/ArrowUp.js +7 -6
  100. package/dist/icons/ArrowUp.js.map +1 -1
  101. package/dist/icons/ArrowUp.mjs +7 -6
  102. package/dist/icons/ArrowUp.mjs.map +1 -1
  103. package/dist/icons/Attachment.js +7 -6
  104. package/dist/icons/Attachment.js.map +1 -1
  105. package/dist/icons/Attachment.mjs +7 -6
  106. package/dist/icons/Attachment.mjs.map +1 -1
  107. package/dist/icons/Bold.js +7 -6
  108. package/dist/icons/Bold.js.map +1 -1
  109. package/dist/icons/Bold.mjs +7 -6
  110. package/dist/icons/Bold.mjs.map +1 -1
  111. package/dist/icons/Check.js +7 -6
  112. package/dist/icons/Check.js.map +1 -1
  113. package/dist/icons/Check.mjs +7 -6
  114. package/dist/icons/Check.mjs.map +1 -1
  115. package/dist/icons/Code.js +7 -6
  116. package/dist/icons/Code.js.map +1 -1
  117. package/dist/icons/Code.mjs +7 -6
  118. package/dist/icons/Code.mjs.map +1 -1
  119. package/dist/icons/Cross.js +12 -8
  120. package/dist/icons/Cross.js.map +1 -1
  121. package/dist/icons/Cross.mjs +12 -8
  122. package/dist/icons/Cross.mjs.map +1 -1
  123. package/dist/icons/Delete.js +7 -6
  124. package/dist/icons/Delete.js.map +1 -1
  125. package/dist/icons/Delete.mjs +7 -6
  126. package/dist/icons/Delete.mjs.map +1 -1
  127. package/dist/icons/Edit.js +7 -6
  128. package/dist/icons/Edit.js.map +1 -1
  129. package/dist/icons/Edit.mjs +7 -6
  130. package/dist/icons/Edit.mjs.map +1 -1
  131. package/dist/icons/Ellipsis.js +21 -16
  132. package/dist/icons/Ellipsis.js.map +1 -1
  133. package/dist/icons/Ellipsis.mjs +21 -16
  134. package/dist/icons/Ellipsis.mjs.map +1 -1
  135. package/dist/icons/Emoji.js +25 -18
  136. package/dist/icons/Emoji.js.map +1 -1
  137. package/dist/icons/Emoji.mjs +25 -18
  138. package/dist/icons/Emoji.mjs.map +1 -1
  139. package/dist/icons/EmojiAdd.js +28 -20
  140. package/dist/icons/EmojiAdd.js.map +1 -1
  141. package/dist/icons/EmojiAdd.mjs +28 -20
  142. package/dist/icons/EmojiAdd.mjs.map +1 -1
  143. package/dist/icons/Italic.js +7 -6
  144. package/dist/icons/Italic.js.map +1 -1
  145. package/dist/icons/Italic.mjs +7 -6
  146. package/dist/icons/Italic.mjs.map +1 -1
  147. package/dist/icons/Mention.js +12 -8
  148. package/dist/icons/Mention.js.map +1 -1
  149. package/dist/icons/Mention.mjs +12 -8
  150. package/dist/icons/Mention.mjs.map +1 -1
  151. package/dist/icons/Resolve.js +14 -10
  152. package/dist/icons/Resolve.js.map +1 -1
  153. package/dist/icons/Resolve.mjs +14 -10
  154. package/dist/icons/Resolve.mjs.map +1 -1
  155. package/dist/icons/Resolved.js +16 -12
  156. package/dist/icons/Resolved.js.map +1 -1
  157. package/dist/icons/Resolved.mjs +16 -12
  158. package/dist/icons/Resolved.mjs.map +1 -1
  159. package/dist/icons/Restore.js +12 -8
  160. package/dist/icons/Restore.js.map +1 -1
  161. package/dist/icons/Restore.mjs +12 -8
  162. package/dist/icons/Restore.mjs.map +1 -1
  163. package/dist/icons/Search.js +7 -6
  164. package/dist/icons/Search.js.map +1 -1
  165. package/dist/icons/Search.mjs +7 -6
  166. package/dist/icons/Search.mjs.map +1 -1
  167. package/dist/icons/Send.js +7 -6
  168. package/dist/icons/Send.js.map +1 -1
  169. package/dist/icons/Send.mjs +7 -6
  170. package/dist/icons/Send.mjs.map +1 -1
  171. package/dist/icons/Spinner.js +8 -7
  172. package/dist/icons/Spinner.js.map +1 -1
  173. package/dist/icons/Spinner.mjs +8 -7
  174. package/dist/icons/Spinner.mjs.map +1 -1
  175. package/dist/icons/Strikethrough.js +7 -6
  176. package/dist/icons/Strikethrough.js.map +1 -1
  177. package/dist/icons/Strikethrough.mjs +7 -6
  178. package/dist/icons/Strikethrough.mjs.map +1 -1
  179. package/dist/icons/Warning.js +14 -10
  180. package/dist/icons/Warning.js.map +1 -1
  181. package/dist/icons/Warning.mjs +14 -10
  182. package/dist/icons/Warning.mjs.map +1 -1
  183. package/dist/icons/index.js +42 -0
  184. package/dist/icons/index.js.map +1 -0
  185. package/dist/icons/index.mjs +19 -0
  186. package/dist/icons/index.mjs.map +1 -0
  187. package/dist/index.d.mts +14 -12
  188. package/dist/index.d.ts +14 -12
  189. package/dist/overrides.js +65 -36
  190. package/dist/overrides.js.map +1 -1
  191. package/dist/overrides.mjs +59 -12
  192. package/dist/overrides.mjs.map +1 -1
  193. package/dist/primitives/Comment/index.js +75 -66
  194. package/dist/primitives/Comment/index.js.map +1 -1
  195. package/dist/primitives/Comment/index.mjs +71 -62
  196. package/dist/primitives/Comment/index.mjs.map +1 -1
  197. package/dist/primitives/Composer/contexts.js +11 -11
  198. package/dist/primitives/Composer/index.js +343 -284
  199. package/dist/primitives/Composer/index.js.map +1 -1
  200. package/dist/primitives/Composer/index.mjs +262 -203
  201. package/dist/primitives/Composer/index.mjs.map +1 -1
  202. package/dist/primitives/Composer/utils.js +20 -21
  203. package/dist/primitives/Composer/utils.js.map +1 -1
  204. package/dist/primitives/Composer/utils.mjs +4 -5
  205. package/dist/primitives/Composer/utils.mjs.map +1 -1
  206. package/dist/primitives/EmojiPicker/contexts.js +3 -3
  207. package/dist/primitives/EmojiPicker/index.js +160 -142
  208. package/dist/primitives/EmojiPicker/index.js.map +1 -1
  209. package/dist/primitives/EmojiPicker/index.mjs +122 -104
  210. package/dist/primitives/EmojiPicker/index.mjs.map +1 -1
  211. package/dist/primitives/FileSize.js +9 -7
  212. package/dist/primitives/FileSize.js.map +1 -1
  213. package/dist/primitives/FileSize.mjs +7 -5
  214. package/dist/primitives/FileSize.mjs.map +1 -1
  215. package/dist/primitives/Timestamp.js +12 -10
  216. package/dist/primitives/Timestamp.js.map +1 -1
  217. package/dist/primitives/Timestamp.mjs +7 -5
  218. package/dist/primitives/Timestamp.mjs.map +1 -1
  219. package/dist/primitives/index.d.mts +24 -23
  220. package/dist/primitives/index.d.ts +24 -23
  221. package/dist/primitives/internal/Emoji.js +7 -5
  222. package/dist/primitives/internal/Emoji.js.map +1 -1
  223. package/dist/primitives/internal/Emoji.mjs +6 -4
  224. package/dist/primitives/internal/Emoji.mjs.map +1 -1
  225. package/dist/shared.js +2 -7
  226. package/dist/shared.js.map +1 -1
  227. package/dist/shared.mjs +2 -7
  228. package/dist/shared.mjs.map +1 -1
  229. package/dist/slate/plugins/auto-links.mjs +1 -1
  230. package/dist/slate/plugins/custom-links.mjs +1 -1
  231. package/dist/slate/plugins/mentions.mjs +1 -1
  232. package/dist/utils/Persist.js +19 -18
  233. package/dist/utils/Persist.js.map +1 -1
  234. package/dist/utils/Persist.mjs +7 -6
  235. package/dist/utils/Persist.mjs.map +1 -1
  236. package/dist/utils/Portal.js +5 -4
  237. package/dist/utils/Portal.js.map +1 -1
  238. package/dist/utils/Portal.mjs +4 -3
  239. package/dist/utils/Portal.mjs.map +1 -1
  240. package/dist/utils/use-controllable-state.js +5 -5
  241. package/dist/utils/use-index.js +7 -7
  242. package/dist/utils/use-initial.js +2 -2
  243. package/dist/utils/use-interval.js +4 -4
  244. package/dist/utils/use-latest.js +3 -3
  245. package/dist/utils/use-observable.js +2 -2
  246. package/dist/utils/use-refs.js +2 -2
  247. package/dist/utils/use-rerender.js +2 -2
  248. package/dist/utils/use-visible.js +24 -2
  249. package/dist/utils/use-visible.js.map +1 -1
  250. package/dist/utils/use-visible.mjs +23 -2
  251. package/dist/utils/use-visible.mjs.map +1 -1
  252. package/dist/utils/use-window-focus.js +2 -2
  253. package/dist/utils/use-window-focus.js.map +1 -1
  254. package/dist/utils/use-window-focus.mjs +1 -1
  255. package/dist/utils/use-window-focus.mjs.map +1 -1
  256. package/dist/version.js +2 -2
  257. package/dist/version.js.map +1 -1
  258. package/dist/version.mjs +2 -2
  259. package/dist/version.mjs.map +1 -1
  260. package/package.json +10 -25
  261. package/dist/utils/use-id.js +0 -29
  262. package/dist/utils/use-id.js.map +0 -1
  263. package/dist/utils/use-id.mjs +0 -27
  264. package/dist/utils/use-id.mjs.map +0 -1
  265. package/dist/utils/use-layout-effect.js +0 -8
  266. package/dist/utils/use-layout-effect.js.map +0 -1
  267. package/dist/utils/use-layout-effect.mjs +0 -6
  268. package/dist/utils/use-layout-effect.mjs.map +0 -1
  269. package/dist/utils/use-transition.js +0 -16
  270. package/dist/utils/use-transition.js.map +0 -1
  271. package/dist/utils/use-transition.mjs +0 -14
  272. package/dist/utils/use-transition.mjs.map +0 -1
@@ -1,37 +1,36 @@
1
- 'use client';
2
- import { kInternal, createCommentAttachmentId, makeEventSource } from '@liveblocks/core';
3
- import { useClientOrNull, useMentionSuggestions, useRoomOrNull, useSyncSource } from '@liveblocks/react/_private';
4
- import { Slottable, Slot } from '@radix-ui/react-slot';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { createCommentAttachmentId, makeEventSource } from '@liveblocks/core';
3
+ import { useClientOrNull, useResolveMentionSuggestions, useMentionSuggestions, useRoomOrNull, useSyncSource } from '@liveblocks/react/_private';
4
+ import { Slot, Slottable } from '@radix-ui/react-slot';
5
5
  import * as TogglePrimitive from '@radix-ui/react-toggle';
6
- import React__default, { forwardRef, useRef, useMemo, useCallback, useEffect, useState, useImperativeHandle } from 'react';
7
- import { Transforms, Editor, insertText, createEditor, Range } from 'slate';
6
+ import { useMemo, useLayoutEffect, useState, forwardRef, useRef, useCallback, useEffect, useId, useImperativeHandle } from 'react';
7
+ import { createEditor, Range, Transforms, Editor, insertText } from 'slate';
8
8
  import { withHistory } from 'slate-history';
9
- import { useSelected, ReactEditor, Slate, Editable, useSlateStatic, withReact } from 'slate-react';
9
+ import { withReact, useSelected, useSlateStatic, ReactEditor, Slate, Editable } from 'slate-react';
10
10
  import { useLiveblocksUIConfig } from '../../config.mjs';
11
11
  import { withAutoFormatting } from '../../slate/plugins/auto-formatting.mjs';
12
12
  import { withAutoLinks } from '../../slate/plugins/auto-links.mjs';
13
13
  import { withCustomLinks } from '../../slate/plugins/custom-links.mjs';
14
14
  import { withEmptyClearFormatting } from '../../slate/plugins/empty-clear-formatting.mjs';
15
- import { insertMention, insertMentionCharacter, MENTION_CHARACTER, withMentions, getMentionDraftAtSelection } from '../../slate/plugins/mentions.mjs';
15
+ import { withMentions, getMentionDraftAtSelection, MENTION_CHARACTER, insertMention, insertMentionCharacter } from '../../slate/plugins/mentions.mjs';
16
16
  import { withNormalize } from '../../slate/plugins/normalize.mjs';
17
17
  import { withPaste } from '../../slate/plugins/paste.mjs';
18
18
  import { getDOMRange } from '../../slate/utils/get-dom-range.mjs';
19
19
  import { isEmpty } from '../../slate/utils/is-empty.mjs';
20
20
  import { leaveMarkEdge, toggleMark, getMarks } from '../../slate/utils/marks.mjs';
21
21
  import { isKey } from '../../utils/is-key.mjs';
22
- import { usePersist, useAnimationPersist, Persist } from '../../utils/Persist.mjs';
22
+ import { Persist, usePersist, useAnimationPersist } from '../../utils/Persist.mjs';
23
23
  import { Portal } from '../../utils/Portal.mjs';
24
24
  import { requestSubmit } from '../../utils/request-submit.mjs';
25
- import { useId } from '../../utils/use-id.mjs';
26
25
  import { useIndex } from '../../utils/use-index.mjs';
27
26
  import { useInitial } from '../../utils/use-initial.mjs';
28
- import { useLayoutEffect } from '../../utils/use-layout-effect.mjs';
29
27
  import { useObservable } from '../../utils/use-observable.mjs';
30
28
  import { useRefs } from '../../utils/use-refs.mjs';
31
29
  import { toAbsoluteUrl } from '../Comment/utils.mjs';
32
- import { useComposerFloatingToolbarContext, useComposerSuggestionsContext, useComposerEditorContext, useComposer, ComposerEditorContext, ComposerAttachmentsContext, ComposerContext, useComposerAttachmentsContext, ComposerSuggestionsContext, ComposerFloatingToolbarContext } from './contexts.mjs';
33
- import { getSideAndAlignFromFloatingPlacement, commentBodyToComposerBody, useComposerAttachmentsManager, composerBodyToCommentBody, useComposerAttachmentsDropArea, useContentZIndex, useFloatingWithOptions } from './utils.mjs';
30
+ import { useComposerEditorContext, useComposer, ComposerSuggestionsContext, ComposerFloatingToolbarContext, useComposerFloatingToolbarContext, useComposerSuggestionsContext, ComposerEditorContext, ComposerAttachmentsContext, ComposerContext, useComposerAttachmentsContext } from './contexts.mjs';
31
+ import { useContentZIndex, useFloatingWithOptions, getSideAndAlignFromFloatingPlacement, commentBodyToComposerBody, useComposerAttachmentsManager, composerBodyToCommentBody, useComposerAttachmentsDropArea } from './utils.mjs';
34
32
 
33
+ "use client";
35
34
  const MENTION_SUGGESTIONS_POSITION = "top";
36
35
  const FLOATING_TOOLBAR_POSITION = "top";
37
36
  const COMPOSER_MENTION_NAME = "ComposerMention";
@@ -78,12 +77,16 @@ function ComposerEditorMentionWrapper({
78
77
  element
79
78
  }) {
80
79
  const isSelected = useSelected();
81
- return /* @__PURE__ */ React__default.createElement("span", {
82
- ...attributes
83
- }, element.id ? /* @__PURE__ */ React__default.createElement(Mention, {
84
- userId: element.id,
85
- isSelected
86
- }) : null, children);
80
+ return /* @__PURE__ */ jsxs("span", {
81
+ ...attributes,
82
+ children: [
83
+ element.id ? /* @__PURE__ */ jsx(Mention, {
84
+ userId: element.id,
85
+ isSelected
86
+ }) : null,
87
+ children
88
+ ]
89
+ });
87
90
  }
88
91
  function ComposerEditorLinkWrapper({
89
92
  Link,
@@ -95,11 +98,13 @@ function ComposerEditorLinkWrapper({
95
98
  () => toAbsoluteUrl(element.url) ?? element.url,
96
99
  [element.url]
97
100
  );
98
- return /* @__PURE__ */ React__default.createElement("span", {
99
- ...attributes
100
- }, /* @__PURE__ */ React__default.createElement(Link, {
101
- href
102
- }, children));
101
+ return /* @__PURE__ */ jsx("span", {
102
+ ...attributes,
103
+ children: /* @__PURE__ */ jsx(Link, {
104
+ href,
105
+ children
106
+ })
107
+ });
103
108
  }
104
109
  function ComposerEditorMentionSuggestionsWrapper({
105
110
  id,
@@ -144,32 +149,36 @@ function ComposerEditorMentionSuggestionsWrapper({
144
149
  const domRange = getDOMRange(editor, mentionDraft.range);
145
150
  setReference(domRange ?? null);
146
151
  }, [setReference, editor, mentionDraft]);
147
- return /* @__PURE__ */ React__default.createElement(Persist, null, isOpen ? /* @__PURE__ */ React__default.createElement(ComposerSuggestionsContext.Provider, {
148
- value: {
149
- id,
150
- itemId,
151
- selectedValue: selectedUserId,
152
- setSelectedValue: setSelectedUserId,
153
- onItemSelect,
154
- placement,
155
- dir,
156
- ref: contentRef
157
- }
158
- }, /* @__PURE__ */ React__default.createElement(Portal, {
159
- ref: setFloating,
160
- container: portalContainer,
161
- style: {
162
- position: strategy,
163
- top: 0,
164
- left: 0,
165
- transform: isPositioned ? `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)` : "translate3d(0, -200%, 0)",
166
- minWidth: "max-content",
167
- zIndex: contentZIndex
168
- }
169
- }, /* @__PURE__ */ React__default.createElement(MentionSuggestions, {
170
- userIds,
171
- selectedUserId
172
- }))) : null);
152
+ return /* @__PURE__ */ jsx(Persist, {
153
+ children: isOpen ? /* @__PURE__ */ jsx(ComposerSuggestionsContext.Provider, {
154
+ value: {
155
+ id,
156
+ itemId,
157
+ selectedValue: selectedUserId,
158
+ setSelectedValue: setSelectedUserId,
159
+ onItemSelect,
160
+ placement,
161
+ dir,
162
+ ref: contentRef
163
+ },
164
+ children: /* @__PURE__ */ jsx(Portal, {
165
+ ref: setFloating,
166
+ container: portalContainer,
167
+ style: {
168
+ position: strategy,
169
+ top: 0,
170
+ left: 0,
171
+ transform: isPositioned ? `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)` : "translate3d(0, -200%, 0)",
172
+ minWidth: "max-content",
173
+ zIndex: contentZIndex
174
+ },
175
+ children: /* @__PURE__ */ jsx(MentionSuggestions, {
176
+ userIds,
177
+ selectedUserId
178
+ })
179
+ })
180
+ }) : null
181
+ });
173
182
  }
174
183
  function ComposerEditorFloatingToolbarWrapper({
175
184
  id,
@@ -227,25 +236,29 @@ function ComposerEditorFloatingToolbarWrapper({
227
236
  }
228
237
  });
229
238
  });
230
- return /* @__PURE__ */ React__default.createElement(Persist, null, isOpen ? /* @__PURE__ */ React__default.createElement(ComposerFloatingToolbarContext.Provider, {
231
- value: {
232
- id,
233
- placement,
234
- dir,
235
- ref: contentRef
236
- }
237
- }, /* @__PURE__ */ React__default.createElement(Portal, {
238
- ref: setFloating,
239
- container: portalContainer,
240
- style: {
241
- position: strategy,
242
- top: 0,
243
- left: 0,
244
- transform: isPositioned ? `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)` : "translate3d(0, -200%, 0)",
245
- minWidth: "max-content",
246
- zIndex: contentZIndex
247
- }
248
- }, /* @__PURE__ */ React__default.createElement(FloatingToolbar, null))) : null);
239
+ return /* @__PURE__ */ jsx(Persist, {
240
+ children: isOpen ? /* @__PURE__ */ jsx(ComposerFloatingToolbarContext.Provider, {
241
+ value: {
242
+ id,
243
+ placement,
244
+ dir,
245
+ ref: contentRef
246
+ },
247
+ children: /* @__PURE__ */ jsx(Portal, {
248
+ ref: setFloating,
249
+ container: portalContainer,
250
+ style: {
251
+ position: strategy,
252
+ top: 0,
253
+ left: 0,
254
+ transform: isPositioned ? `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)` : "translate3d(0, -200%, 0)",
255
+ minWidth: "max-content",
256
+ zIndex: contentZIndex
257
+ },
258
+ children: /* @__PURE__ */ jsx(FloatingToolbar, {})
259
+ })
260
+ }) : null
261
+ });
249
262
  }
250
263
  const ComposerFloatingToolbar = forwardRef(({ children, onPointerDown, style, asChild, ...props }, forwardedRef) => {
251
264
  const [isPresent] = usePersist();
@@ -271,7 +284,7 @@ const ComposerFloatingToolbar = forwardRef(({ children, onPointerDown, style, as
271
284
  },
272
285
  [onPointerDown]
273
286
  );
274
- return /* @__PURE__ */ React__default.createElement(Component, {
287
+ return /* @__PURE__ */ jsx(Component, {
275
288
  dir,
276
289
  role: "toolbar",
277
290
  id,
@@ -288,8 +301,9 @@ const ComposerFloatingToolbar = forwardRef(({ children, onPointerDown, style, as
288
301
  overflowX: "auto",
289
302
  ...style
290
303
  },
291
- ref: mergedRefs
292
- }, children);
304
+ ref: mergedRefs,
305
+ children
306
+ });
293
307
  });
294
308
  function ComposerEditorElement({
295
309
  Mention,
@@ -299,73 +313,86 @@ function ComposerEditorElement({
299
313
  const { attributes, children, element } = props;
300
314
  switch (element.type) {
301
315
  case "mention":
302
- return /* @__PURE__ */ React__default.createElement(ComposerEditorMentionWrapper, {
316
+ return /* @__PURE__ */ jsx(ComposerEditorMentionWrapper, {
303
317
  Mention,
304
318
  ...props
305
319
  });
306
320
  case "auto-link":
307
321
  case "custom-link":
308
- return /* @__PURE__ */ React__default.createElement(ComposerEditorLinkWrapper, {
322
+ return /* @__PURE__ */ jsx(ComposerEditorLinkWrapper, {
309
323
  Link,
310
324
  ...props
311
325
  });
312
326
  case "paragraph":
313
- return /* @__PURE__ */ React__default.createElement("p", {
327
+ return /* @__PURE__ */ jsx("p", {
314
328
  ...attributes,
315
- style: { position: "relative" }
316
- }, children);
329
+ style: { position: "relative" },
330
+ children
331
+ });
317
332
  default:
318
333
  return null;
319
334
  }
320
335
  }
321
336
  function ComposerEditorLeaf({ attributes, children, leaf }) {
322
337
  if (leaf.bold) {
323
- children = /* @__PURE__ */ React__default.createElement("strong", null, children);
338
+ children = /* @__PURE__ */ jsx("strong", {
339
+ children
340
+ });
324
341
  }
325
342
  if (leaf.italic) {
326
- children = /* @__PURE__ */ React__default.createElement("em", null, children);
343
+ children = /* @__PURE__ */ jsx("em", {
344
+ children
345
+ });
327
346
  }
328
347
  if (leaf.strikethrough) {
329
- children = /* @__PURE__ */ React__default.createElement("s", null, children);
348
+ children = /* @__PURE__ */ jsx("s", {
349
+ children
350
+ });
330
351
  }
331
352
  if (leaf.code) {
332
- children = /* @__PURE__ */ React__default.createElement("code", null, children);
353
+ children = /* @__PURE__ */ jsx("code", {
354
+ children
355
+ });
333
356
  }
334
- return /* @__PURE__ */ React__default.createElement("span", {
335
- ...attributes
336
- }, children);
357
+ return /* @__PURE__ */ jsx("span", {
358
+ ...attributes,
359
+ children
360
+ });
337
361
  }
338
362
  function ComposerEditorPlaceholder({
339
363
  attributes,
340
364
  children
341
365
  }) {
342
366
  const { opacity: _opacity, ...style } = attributes.style;
343
- return /* @__PURE__ */ React__default.createElement("span", {
367
+ return /* @__PURE__ */ jsx("span", {
344
368
  ...attributes,
345
369
  style,
346
- "data-placeholder": ""
347
- }, children);
370
+ "data-placeholder": "",
371
+ children
372
+ });
348
373
  }
349
374
  const ComposerMention = forwardRef(
350
375
  ({ children, asChild, ...props }, forwardedRef) => {
351
376
  const Component = asChild ? Slot : "span";
352
377
  const isSelected = useSelected();
353
- return /* @__PURE__ */ React__default.createElement(Component, {
378
+ return /* @__PURE__ */ jsx(Component, {
354
379
  "data-selected": isSelected || void 0,
355
380
  ...props,
356
- ref: forwardedRef
357
- }, children);
381
+ ref: forwardedRef,
382
+ children
383
+ });
358
384
  }
359
385
  );
360
386
  const ComposerLink = forwardRef(
361
387
  ({ children, asChild, ...props }, forwardedRef) => {
362
388
  const Component = asChild ? Slot : "a";
363
- return /* @__PURE__ */ React__default.createElement(Component, {
389
+ return /* @__PURE__ */ jsx(Component, {
364
390
  target: "_blank",
365
391
  rel: "noopener noreferrer nofollow",
366
392
  ...props,
367
- ref: forwardedRef
368
- }, children);
393
+ ref: forwardedRef,
394
+ children
395
+ });
369
396
  }
370
397
  );
371
398
  const ComposerSuggestions = forwardRef(({ children, style, asChild, ...props }, forwardedRef) => {
@@ -383,7 +410,7 @@ const ComposerSuggestions = forwardRef(({ children, style, asChild, ...props },
383
410
  );
384
411
  const Component = asChild ? Slot : "div";
385
412
  useAnimationPersist(ref);
386
- return /* @__PURE__ */ React__default.createElement(Component, {
413
+ return /* @__PURE__ */ jsx(Component, {
387
414
  dir,
388
415
  ...props,
389
416
  "data-state": isPresent ? "open" : "closed",
@@ -396,19 +423,21 @@ const ComposerSuggestions = forwardRef(({ children, style, asChild, ...props },
396
423
  overflowY: "auto",
397
424
  ...style
398
425
  },
399
- ref: mergedRefs
400
- }, children);
426
+ ref: mergedRefs,
427
+ children
428
+ });
401
429
  });
402
430
  const ComposerSuggestionsList = forwardRef(({ children, asChild, ...props }, forwardedRef) => {
403
431
  const { id } = useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_NAME);
404
432
  const Component = asChild ? Slot : "ul";
405
- return /* @__PURE__ */ React__default.createElement(Component, {
433
+ return /* @__PURE__ */ jsx(Component, {
406
434
  role: "listbox",
407
435
  id,
408
436
  "aria-label": "Suggestions list",
409
437
  ...props,
410
- ref: forwardedRef
411
- }, children);
438
+ ref: forwardedRef,
439
+ children
440
+ });
412
441
  });
413
442
  const ComposerSuggestionsListItem = forwardRef(
414
443
  ({
@@ -463,7 +492,7 @@ const ComposerSuggestionsListItem = forwardRef(
463
492
  },
464
493
  [onClick, onItemSelect, value]
465
494
  );
466
- return /* @__PURE__ */ React__default.createElement(Component, {
495
+ return /* @__PURE__ */ jsx(Component, {
467
496
  role: "option",
468
497
  id,
469
498
  "data-selected": isSelected || void 0,
@@ -472,24 +501,35 @@ const ComposerSuggestionsListItem = forwardRef(
472
501
  onPointerDown: handlePointerDown,
473
502
  onClick: handleClick,
474
503
  ...props,
475
- ref: mergedRefs
476
- }, children);
504
+ ref: mergedRefs,
505
+ children
506
+ });
477
507
  }
478
508
  );
479
509
  const defaultEditorComponents = {
480
510
  Link: ({ href, children }) => {
481
- return /* @__PURE__ */ React__default.createElement(ComposerLink, {
482
- href
483
- }, children);
511
+ return /* @__PURE__ */ jsx(ComposerLink, {
512
+ href,
513
+ children
514
+ });
484
515
  },
485
516
  Mention: ({ userId }) => {
486
- return /* @__PURE__ */ React__default.createElement(ComposerMention, null, MENTION_CHARACTER, userId);
517
+ return /* @__PURE__ */ jsxs(ComposerMention, {
518
+ children: [
519
+ MENTION_CHARACTER,
520
+ userId
521
+ ]
522
+ });
487
523
  },
488
524
  MentionSuggestions: ({ userIds }) => {
489
- return userIds.length > 0 ? /* @__PURE__ */ React__default.createElement(ComposerSuggestions, null, /* @__PURE__ */ React__default.createElement(ComposerSuggestionsList, null, userIds.map((userId) => /* @__PURE__ */ React__default.createElement(ComposerSuggestionsListItem, {
490
- key: userId,
491
- value: userId
492
- }, userId)))) : null;
525
+ return userIds.length > 0 ? /* @__PURE__ */ jsx(ComposerSuggestions, {
526
+ children: /* @__PURE__ */ jsx(ComposerSuggestionsList, {
527
+ children: userIds.map((userId) => /* @__PURE__ */ jsx(ComposerSuggestionsListItem, {
528
+ value: userId,
529
+ children: userId
530
+ }, userId))
531
+ })
532
+ }) : null;
493
533
  }
494
534
  };
495
535
  const ComposerEditor = forwardRef(
@@ -525,7 +565,8 @@ const ComposerEditor = forwardRef(
525
565
  [components]
526
566
  );
527
567
  const [hasFloatingToolbarRange, setHasFloatingToolbarRange] = useState(false);
528
- const hasResolveMentionSuggestions = client ? client[kInternal].resolveMentionSuggestions !== void 0 : true;
568
+ const resolveMentionSuggestions = useResolveMentionSuggestions();
569
+ const hasResolveMentionSuggestions = client ? resolveMentionSuggestions : true;
529
570
  const [mentionDraft, setMentionDraft] = useState();
530
571
  const mentionSuggestions = useMentionSuggestions(
531
572
  roomId,
@@ -552,7 +593,7 @@ const ComposerEditor = forwardRef(
552
593
  );
553
594
  const renderElement = useCallback(
554
595
  (props2) => {
555
- return /* @__PURE__ */ React__default.createElement(ComposerEditorElement, {
596
+ return /* @__PURE__ */ jsx(ComposerEditorElement, {
556
597
  Mention,
557
598
  Link,
558
599
  ...props2
@@ -731,45 +772,50 @@ const ComposerEditor = forwardRef(
731
772
  select();
732
773
  }
733
774
  }, [editor, select, isFocused]);
734
- return /* @__PURE__ */ React__default.createElement(Slate, {
775
+ return /* @__PURE__ */ jsxs(Slate, {
735
776
  editor,
736
777
  initialValue: initialEditorValue,
737
- onChange: handleChange
738
- }, /* @__PURE__ */ React__default.createElement(Editable, {
739
- dir,
740
- enterKeyHint: mentionDraft ? "enter" : "send",
741
- autoCapitalize: "sentences",
742
- "aria-label": "Composer editor",
743
- "data-focused": isFocused || void 0,
744
- "data-disabled": isDisabled || void 0,
745
- ...additionalProps,
746
- ...props,
747
- readOnly: isDisabled,
748
- disabled: isDisabled,
749
- onKeyDown: handleKeyDown,
750
- onFocus: handleFocus,
751
- onBlur: handleBlur,
752
- renderElement,
753
- renderLeaf: ComposerEditorLeaf,
754
- renderPlaceholder: ComposerEditorPlaceholder
755
- }), hasResolveMentionSuggestions && /* @__PURE__ */ React__default.createElement(ComposerEditorMentionSuggestionsWrapper, {
756
- dir,
757
- mentionDraft,
758
- setMentionDraft,
759
- selectedUserId: selectedMentionSuggestionUserId,
760
- setSelectedUserId: setSelectedMentionSuggestionUserId,
761
- userIds: mentionSuggestions,
762
- id: suggestionsListId,
763
- itemId: suggestionsListItemId,
764
- onItemSelect: createMention,
765
- MentionSuggestions
766
- }), FloatingToolbar && /* @__PURE__ */ React__default.createElement(ComposerEditorFloatingToolbarWrapper, {
767
- dir,
768
- id: floatingToolbarId,
769
- hasFloatingToolbarRange,
770
- setHasFloatingToolbarRange,
771
- FloatingToolbar
772
- }));
778
+ onChange: handleChange,
779
+ children: [
780
+ /* @__PURE__ */ jsx(Editable, {
781
+ dir,
782
+ enterKeyHint: mentionDraft ? "enter" : "send",
783
+ autoCapitalize: "sentences",
784
+ "aria-label": "Composer editor",
785
+ "data-focused": isFocused || void 0,
786
+ "data-disabled": isDisabled || void 0,
787
+ ...additionalProps,
788
+ ...props,
789
+ readOnly: isDisabled,
790
+ disabled: isDisabled,
791
+ onKeyDown: handleKeyDown,
792
+ onFocus: handleFocus,
793
+ onBlur: handleBlur,
794
+ renderElement,
795
+ renderLeaf: ComposerEditorLeaf,
796
+ renderPlaceholder: ComposerEditorPlaceholder
797
+ }),
798
+ hasResolveMentionSuggestions && /* @__PURE__ */ jsx(ComposerEditorMentionSuggestionsWrapper, {
799
+ dir,
800
+ mentionDraft,
801
+ setMentionDraft,
802
+ selectedUserId: selectedMentionSuggestionUserId,
803
+ setSelectedUserId: setSelectedMentionSuggestionUserId,
804
+ userIds: mentionSuggestions,
805
+ id: suggestionsListId,
806
+ itemId: suggestionsListItemId,
807
+ onItemSelect: createMention,
808
+ MentionSuggestions
809
+ }),
810
+ FloatingToolbar && /* @__PURE__ */ jsx(ComposerEditorFloatingToolbarWrapper, {
811
+ dir,
812
+ id: floatingToolbarId,
813
+ hasFloatingToolbarRange,
814
+ setHasFloatingToolbarRange,
815
+ FloatingToolbar
816
+ })
817
+ ]
818
+ });
773
819
  }
774
820
  );
775
821
  const MAX_ATTACHMENTS = 10;
@@ -1007,54 +1053,63 @@ const ComposerForm = forwardRef(
1007
1053
  useObservable(onEditorChange, () => {
1008
1054
  setMarks(getMarks(editor));
1009
1055
  });
1010
- return /* @__PURE__ */ React__default.createElement(ComposerEditorContext.Provider, {
1056
+ return /* @__PURE__ */ jsx(ComposerEditorContext.Provider, {
1011
1057
  value: {
1012
1058
  editor,
1013
1059
  validate,
1014
1060
  setFocused,
1015
1061
  onEditorChange,
1016
1062
  roomId
1017
- }
1018
- }, /* @__PURE__ */ React__default.createElement(ComposerAttachmentsContext.Provider, {
1019
- value: {
1020
- createAttachments,
1021
- isUploadingAttachments,
1022
- hasMaxAttachments,
1023
- maxAttachments,
1024
- maxAttachmentSize
1025
- }
1026
- }, /* @__PURE__ */ React__default.createElement(ComposerContext.Provider, {
1027
- value: {
1028
- isDisabled,
1029
- isFocused,
1030
- isEmpty: isEmpty$1,
1031
- canSubmit,
1032
- submit,
1033
- clear,
1034
- select,
1035
- focus,
1036
- blur,
1037
- createMention,
1038
- insertText: insertText$1,
1039
- attachments,
1040
- attachFiles,
1041
- removeAttachment,
1042
- toggleMark: toggleMark$1,
1043
- marks
1044
- }
1045
- }, /* @__PURE__ */ React__default.createElement(Component, {
1046
- ...props,
1047
- onSubmit: handleSubmit,
1048
- ref: mergedRefs
1049
- }, /* @__PURE__ */ React__default.createElement("input", {
1050
- type: "file",
1051
- multiple: true,
1052
- ref: fileInputRef,
1053
- onChange: handleAttachmentsInputChange,
1054
- onClick: stopPropagation,
1055
- tabIndex: -1,
1056
- style: { display: "none" }
1057
- }), /* @__PURE__ */ React__default.createElement(Slottable, null, children)))));
1063
+ },
1064
+ children: /* @__PURE__ */ jsx(ComposerAttachmentsContext.Provider, {
1065
+ value: {
1066
+ createAttachments,
1067
+ isUploadingAttachments,
1068
+ hasMaxAttachments,
1069
+ maxAttachments,
1070
+ maxAttachmentSize
1071
+ },
1072
+ children: /* @__PURE__ */ jsx(ComposerContext.Provider, {
1073
+ value: {
1074
+ isDisabled,
1075
+ isFocused,
1076
+ isEmpty: isEmpty$1,
1077
+ canSubmit,
1078
+ submit,
1079
+ clear,
1080
+ select,
1081
+ focus,
1082
+ blur,
1083
+ createMention,
1084
+ insertText: insertText$1,
1085
+ attachments,
1086
+ attachFiles,
1087
+ removeAttachment,
1088
+ toggleMark: toggleMark$1,
1089
+ marks
1090
+ },
1091
+ children: /* @__PURE__ */ jsxs(Component, {
1092
+ ...props,
1093
+ onSubmit: handleSubmit,
1094
+ ref: mergedRefs,
1095
+ children: [
1096
+ /* @__PURE__ */ jsx("input", {
1097
+ type: "file",
1098
+ multiple: true,
1099
+ ref: fileInputRef,
1100
+ onChange: handleAttachmentsInputChange,
1101
+ onClick: stopPropagation,
1102
+ tabIndex: -1,
1103
+ style: { display: "none" }
1104
+ }),
1105
+ /* @__PURE__ */ jsx(Slottable, {
1106
+ children
1107
+ })
1108
+ ]
1109
+ })
1110
+ })
1111
+ })
1112
+ });
1058
1113
  }
1059
1114
  );
1060
1115
  const ComposerSubmit = forwardRef(
@@ -1062,12 +1117,13 @@ const ComposerSubmit = forwardRef(
1062
1117
  const Component = asChild ? Slot : "button";
1063
1118
  const { canSubmit, isDisabled: isComposerDisabled } = useComposer();
1064
1119
  const isDisabled = isComposerDisabled || disabled || !canSubmit;
1065
- return /* @__PURE__ */ React__default.createElement(Component, {
1120
+ return /* @__PURE__ */ jsx(Component, {
1066
1121
  type: "submit",
1067
1122
  ...props,
1068
1123
  ref: forwardedRef,
1069
- disabled: isDisabled
1070
- }, children);
1124
+ disabled: isDisabled,
1125
+ children
1126
+ });
1071
1127
  }
1072
1128
  );
1073
1129
  const ComposerAttachFiles = forwardRef(({ children, onClick, disabled, asChild, ...props }, forwardedRef) => {
@@ -1084,13 +1140,14 @@ const ComposerAttachFiles = forwardRef(({ children, onClick, disabled, asChild,
1084
1140
  },
1085
1141
  [attachFiles, onClick]
1086
1142
  );
1087
- return /* @__PURE__ */ React__default.createElement(Component, {
1143
+ return /* @__PURE__ */ jsx(Component, {
1088
1144
  type: "button",
1089
1145
  ...props,
1090
1146
  onClick: handleClick,
1091
1147
  ref: forwardedRef,
1092
- disabled: isDisabled
1093
- }, children);
1148
+ disabled: isDisabled,
1149
+ children
1150
+ });
1094
1151
  });
1095
1152
  const ComposerAttachmentsDropArea = forwardRef(
1096
1153
  ({
@@ -1112,7 +1169,7 @@ const ComposerAttachmentsDropArea = forwardRef(
1112
1169
  onDrop,
1113
1170
  disabled: isDisabled
1114
1171
  });
1115
- return /* @__PURE__ */ React__default.createElement(Component, {
1172
+ return /* @__PURE__ */ jsx(Component, {
1116
1173
  ...dropAreaProps,
1117
1174
  "data-disabled": isDisabled ? "" : void 0,
1118
1175
  ...props,
@@ -1134,15 +1191,17 @@ const ComposerMarkToggle = forwardRef(
1134
1191
  },
1135
1192
  [mark, onClick, onValueChange, toggleMark]
1136
1193
  );
1137
- return /* @__PURE__ */ React__default.createElement(TogglePrimitive.Root, {
1194
+ return /* @__PURE__ */ jsx(TogglePrimitive.Root, {
1138
1195
  asChild: true,
1139
1196
  pressed: marks[mark],
1140
1197
  onClick: handleClick,
1141
- ...props
1142
- }, /* @__PURE__ */ React__default.createElement(Component, {
1143
1198
  ...props,
1144
- ref: forwardedRef
1145
- }, children));
1199
+ children: /* @__PURE__ */ jsx(Component, {
1200
+ ...props,
1201
+ ref: forwardedRef,
1202
+ children
1203
+ })
1204
+ });
1146
1205
  }
1147
1206
  );
1148
1207
  if (process.env.NODE_ENV !== "production") {