@liveblocks/react-ui 3.15.0-thread1 → 3.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 (149) hide show
  1. package/README.md +6 -16
  2. package/dist/_private/index.cjs +3 -5
  3. package/dist/_private/index.cjs.map +1 -1
  4. package/dist/_private/index.d.cts +10 -4
  5. package/dist/_private/index.d.ts +10 -4
  6. package/dist/_private/index.js +2 -2
  7. package/dist/components/AiChat.cjs +10 -2
  8. package/dist/components/AiChat.cjs.map +1 -1
  9. package/dist/components/AiChat.js +10 -2
  10. package/dist/components/AiChat.js.map +1 -1
  11. package/dist/components/AvatarStack.cjs +117 -0
  12. package/dist/components/AvatarStack.cjs.map +1 -0
  13. package/dist/components/AvatarStack.js +115 -0
  14. package/dist/components/AvatarStack.js.map +1 -0
  15. package/dist/components/Comment.cjs +13 -31
  16. package/dist/components/Comment.cjs.map +1 -1
  17. package/dist/components/Comment.js +15 -14
  18. package/dist/components/Comment.js.map +1 -1
  19. package/dist/components/CommentPin.cjs +36 -0
  20. package/dist/components/CommentPin.cjs.map +1 -0
  21. package/dist/components/CommentPin.js +34 -0
  22. package/dist/components/CommentPin.js.map +1 -0
  23. package/dist/components/Composer.cjs +2 -4
  24. package/dist/components/Composer.cjs.map +1 -1
  25. package/dist/components/Composer.js +3 -5
  26. package/dist/components/Composer.js.map +1 -1
  27. package/dist/components/Cursor.cjs +40 -0
  28. package/dist/components/Cursor.cjs.map +1 -0
  29. package/dist/components/Cursor.js +38 -0
  30. package/dist/components/Cursor.js.map +1 -0
  31. package/dist/components/Cursors.cjs +256 -0
  32. package/dist/components/Cursors.cjs.map +1 -0
  33. package/dist/components/Cursors.js +254 -0
  34. package/dist/components/Cursors.js.map +1 -0
  35. package/dist/components/FloatingComposer.cjs +82 -0
  36. package/dist/components/FloatingComposer.cjs.map +1 -0
  37. package/dist/components/FloatingComposer.js +80 -0
  38. package/dist/components/FloatingComposer.js.map +1 -0
  39. package/dist/components/FloatingThread.cjs +82 -0
  40. package/dist/components/FloatingThread.cjs.map +1 -0
  41. package/dist/components/FloatingThread.js +80 -0
  42. package/dist/components/FloatingThread.js.map +1 -0
  43. package/dist/components/InboxNotification.cjs +4 -6
  44. package/dist/components/InboxNotification.cjs.map +1 -1
  45. package/dist/components/InboxNotification.js +5 -7
  46. package/dist/components/InboxNotification.js.map +1 -1
  47. package/dist/components/Thread.cjs +21 -29
  48. package/dist/components/Thread.cjs.map +1 -1
  49. package/dist/components/Thread.js +21 -10
  50. package/dist/components/Thread.js.map +1 -1
  51. package/dist/components/internal/AiComposer.cjs +1 -2
  52. package/dist/components/internal/AiComposer.cjs.map +1 -1
  53. package/dist/components/internal/AiComposer.js +1 -2
  54. package/dist/components/internal/AiComposer.js.map +1 -1
  55. package/dist/components/internal/Avatar.cjs +10 -13
  56. package/dist/components/internal/Avatar.cjs.map +1 -1
  57. package/dist/components/internal/Avatar.js +11 -14
  58. package/dist/components/internal/Avatar.js.map +1 -1
  59. package/dist/components/internal/CodeBlock.cjs +1 -2
  60. package/dist/components/internal/CodeBlock.cjs.map +1 -1
  61. package/dist/components/internal/CodeBlock.js +1 -2
  62. package/dist/components/internal/CodeBlock.js.map +1 -1
  63. package/dist/components/internal/Dropdown.cjs +7 -28
  64. package/dist/components/internal/Dropdown.cjs.map +1 -1
  65. package/dist/components/internal/Dropdown.js +7 -7
  66. package/dist/components/internal/Dropdown.js.map +1 -1
  67. package/dist/components/internal/EmojiPicker.cjs +6 -27
  68. package/dist/components/internal/EmojiPicker.cjs.map +1 -1
  69. package/dist/components/internal/EmojiPicker.js +6 -6
  70. package/dist/components/internal/EmojiPicker.js.map +1 -1
  71. package/dist/components/internal/List.cjs +2 -2
  72. package/dist/components/internal/List.cjs.map +1 -1
  73. package/dist/components/internal/List.js +2 -2
  74. package/dist/components/internal/List.js.map +1 -1
  75. package/dist/components/internal/Tooltip.cjs +7 -28
  76. package/dist/components/internal/Tooltip.cjs.map +1 -1
  77. package/dist/components/internal/Tooltip.js +7 -7
  78. package/dist/components/internal/Tooltip.js.map +1 -1
  79. package/dist/index.cjs +12 -0
  80. package/dist/index.cjs.map +1 -1
  81. package/dist/index.d.cts +232 -137
  82. package/dist/index.d.ts +232 -137
  83. package/dist/index.js +6 -0
  84. package/dist/index.js.map +1 -1
  85. package/dist/primitives/AiComposer/index.cjs +5 -4
  86. package/dist/primitives/AiComposer/index.cjs.map +1 -1
  87. package/dist/primitives/AiComposer/index.js +5 -4
  88. package/dist/primitives/AiComposer/index.js.map +1 -1
  89. package/dist/primitives/AiMessage/index.cjs +2 -2
  90. package/dist/primitives/AiMessage/index.cjs.map +1 -1
  91. package/dist/primitives/AiMessage/index.js +2 -2
  92. package/dist/primitives/AiMessage/index.js.map +1 -1
  93. package/dist/primitives/Collapsible/index.cjs +4 -4
  94. package/dist/primitives/Collapsible/index.cjs.map +1 -1
  95. package/dist/primitives/Collapsible/index.js +4 -4
  96. package/dist/primitives/Collapsible/index.js.map +1 -1
  97. package/dist/primitives/Comment/index.cjs +4 -4
  98. package/dist/primitives/Comment/index.cjs.map +1 -1
  99. package/dist/primitives/Comment/index.js +4 -4
  100. package/dist/primitives/Comment/index.js.map +1 -1
  101. package/dist/primitives/Composer/index.cjs +23 -35
  102. package/dist/primitives/Composer/index.cjs.map +1 -1
  103. package/dist/primitives/Composer/index.js +23 -16
  104. package/dist/primitives/Composer/index.js.map +1 -1
  105. package/dist/primitives/Duration.cjs +2 -2
  106. package/dist/primitives/Duration.cjs.map +1 -1
  107. package/dist/primitives/Duration.js +2 -2
  108. package/dist/primitives/Duration.js.map +1 -1
  109. package/dist/primitives/FileSize.cjs +2 -2
  110. package/dist/primitives/FileSize.cjs.map +1 -1
  111. package/dist/primitives/FileSize.js +2 -2
  112. package/dist/primitives/FileSize.js.map +1 -1
  113. package/dist/primitives/Markdown.cjs +2 -2
  114. package/dist/primitives/Markdown.cjs.map +1 -1
  115. package/dist/primitives/Markdown.js +2 -2
  116. package/dist/primitives/Markdown.js.map +1 -1
  117. package/dist/primitives/Timestamp.cjs +2 -2
  118. package/dist/primitives/Timestamp.cjs.map +1 -1
  119. package/dist/primitives/Timestamp.js +2 -2
  120. package/dist/primitives/Timestamp.js.map +1 -1
  121. package/dist/utils/Portal.cjs +2 -2
  122. package/dist/utils/Portal.cjs.map +1 -1
  123. package/dist/utils/Portal.js +2 -2
  124. package/dist/utils/Portal.js.map +1 -1
  125. package/dist/utils/animation-loop.cjs +44 -0
  126. package/dist/utils/animation-loop.cjs.map +1 -0
  127. package/dist/utils/animation-loop.js +42 -0
  128. package/dist/utils/animation-loop.js.map +1 -0
  129. package/dist/utils/use-pre-resolve-user.cjs +18 -0
  130. package/dist/utils/use-pre-resolve-user.cjs.map +1 -0
  131. package/dist/utils/use-pre-resolve-user.js +16 -0
  132. package/dist/utils/use-pre-resolve-user.js.map +1 -0
  133. package/dist/utils/use-stable-component.cjs +32 -0
  134. package/dist/utils/use-stable-component.cjs.map +1 -0
  135. package/dist/utils/use-stable-component.js +30 -0
  136. package/dist/utils/use-stable-component.js.map +1 -0
  137. package/dist/version.cjs +1 -1
  138. package/dist/version.cjs.map +1 -1
  139. package/dist/version.js +1 -1
  140. package/dist/version.js.map +1 -1
  141. package/package.json +7 -10
  142. package/src/styles/dark/index.css +1 -1
  143. package/src/styles/index.css +252 -4
  144. package/styles/dark/attributes.css +1 -1
  145. package/styles/dark/attributes.css.map +1 -1
  146. package/styles/dark/media-query.css +1 -1
  147. package/styles/dark/media-query.css.map +1 -1
  148. package/styles.css +1 -1
  149. package/styles.css.map +1 -1
package/dist/index.d.cts CHANGED
@@ -1,7 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { ComponentType, ComponentPropsWithoutRef, ElementType, ReactNode, ComponentProps, FormEvent, RefAttributes, MouseEvent, PropsWithChildren } from 'react';
3
- import { CommentAttachment, AiReasoningPart, AiRetrievalPart, Relax, WithNavigation, AiAssistantMessage, CopilotId, AiKnowledgeSource, AiOpaqueToolDefinition, AiToolTypePack, JsonObject, AiToolExecuteCallback, NoInfr, CommentBody, MentionData, BaseMetadata, DTM, DCM, Patchable, CommentData, HistoryVersion, InboxNotificationData, InboxNotificationThreadData, InboxNotificationTextMentionData, InboxNotificationCustomData, KDAD, ThreadData } from '@liveblocks/core';
3
+ import { CommentAttachment, AiReasoningPart, AiRetrievalPart, Relax, WithNavigation, AiAssistantMessage, CopilotId, AiKnowledgeSource, AiOpaqueToolDefinition, AiToolTypePack, JsonObject, AiToolExecuteCallback, NoInfr, CommentBody, MentionData, BaseMetadata, DTM, DCM, Patchable, CommentData, ThreadData, HistoryVersion, InboxNotificationData, InboxNotificationThreadData, InboxNotificationTextMentionData, InboxNotificationCustomData, KDAD } from '@liveblocks/core';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import { Popover } from 'radix-ui';
5
6
 
6
7
  interface GlobalComponents {
7
8
  Anchor: ComponentType<ComponentPropsWithoutRef<"a">> | "a";
@@ -809,6 +810,30 @@ declare const AiTool: react.ForwardRefExoticComponent<Omit<AiToolProps, "ref"> &
809
810
  Confirmation: typeof AiToolConfirmation;
810
811
  };
811
812
 
813
+ interface AvatarStackProps extends ComponentPropsWithoutRef<"div"> {
814
+ /**
815
+ * Optional additional user IDs to include in the stack.
816
+ */
817
+ userIds?: string[];
818
+ /**
819
+ * The maximum number of visible avatars.
820
+ * Defaults to 3, set to `undefined` to show all avatars.
821
+ */
822
+ max?: number;
823
+ /**
824
+ * The size of the avatars.
825
+ */
826
+ size?: string | number;
827
+ /**
828
+ * Override the component's strings.
829
+ */
830
+ overrides?: Partial<GlobalOverrides>;
831
+ }
832
+ /**
833
+ * Displays a stack of avatars for the users currently present in the room.
834
+ */
835
+ declare const AvatarStack: react.ForwardRefExoticComponent<AvatarStackProps & react.RefAttributes<HTMLDivElement>>;
836
+
812
837
  interface ComposerEditorMentionProps {
813
838
  /**
814
839
  * Whether the mention is selected.
@@ -1166,11 +1191,11 @@ interface CommentDropdownItemProps extends Omit<ComponentPropsWithoutRef<"div">,
1166
1191
  * ))}
1167
1192
  * </>
1168
1193
  */
1169
- declare const Comment: react.ForwardRefExoticComponent<CommentProps<BaseMetadata> & react.RefAttributes<HTMLDivElement>> & {
1194
+ declare const Comment: (<CM extends BaseMetadata = BaseMetadata>(props: CommentProps<CM> & RefAttributes<HTMLDivElement>) => JSX.Element) & {
1170
1195
  /**
1171
1196
  * Displays a dropdown item in the comment's dropdown.
1172
1197
  */
1173
- DropdownItem: react.ForwardRefExoticComponent<CommentDropdownItemProps & react.RefAttributes<HTMLDivElement>>;
1198
+ DropdownItem: react.ForwardRefExoticComponent<CommentDropdownItemProps & RefAttributes<HTMLDivElement>>;
1174
1199
  /**
1175
1200
  * Displays a comment's avatar.
1176
1201
  */
@@ -1185,6 +1210,209 @@ declare const Comment: react.ForwardRefExoticComponent<CommentProps<BaseMetadata
1185
1210
  Date: typeof CommentDate;
1186
1211
  };
1187
1212
 
1213
+ interface CommentPinProps extends ComponentPropsWithoutRef<"button"> {
1214
+ /**
1215
+ * The corner that points to the comment position.
1216
+ * Defaults to the bottom left corner.
1217
+ */
1218
+ corner?: "top-left" | "top-right" | "bottom-right" | "bottom-left";
1219
+ /**
1220
+ * The user ID to optionally display an avatar for.
1221
+ */
1222
+ userId?: string;
1223
+ /**
1224
+ * The size of the pin.
1225
+ */
1226
+ size?: string | number;
1227
+ }
1228
+ /**
1229
+ * Displays a comment pin that can be used as a trigger
1230
+ * for `FloatingComposer` and `FloatingThread`.
1231
+ */
1232
+ declare const CommentPin: react.ForwardRefExoticComponent<CommentPinProps & react.RefAttributes<HTMLButtonElement>>;
1233
+
1234
+ interface CursorProps extends ComponentPropsWithoutRef<"div"> {
1235
+ /**
1236
+ * A floating label to display next to the cursor.
1237
+ */
1238
+ label?: ReactNode;
1239
+ /**
1240
+ * The color of the cursor.
1241
+ */
1242
+ color?: string;
1243
+ }
1244
+ /**
1245
+ * Displays a multiplayer cursor.
1246
+ */
1247
+ declare const Cursor: react.ForwardRefExoticComponent<CursorProps & react.RefAttributes<HTMLDivElement>>;
1248
+
1249
+ interface CursorsProps extends ComponentPropsWithoutRef<"div"> {
1250
+ /**
1251
+ * The key used to store the cursors in users' Presence.
1252
+ * This can be used to have multiple `Cursors` in a single room.
1253
+ */
1254
+ presenceKey?: string;
1255
+ }
1256
+ /**
1257
+ * Displays multiplayer cursors.
1258
+ */
1259
+ declare const Cursors: react.ForwardRefExoticComponent<CursorsProps & react.RefAttributes<HTMLDivElement>>;
1260
+
1261
+ interface FloatingComposerProps<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> extends Omit<ComposerProps<TM, CM>, "collapsed" | "onCollapsedChange" | "defaultCollapsed">, Relax<Pick<Popover.PopoverProps, "defaultOpen" | "open" | "onOpenChange"> & Pick<Popover.PopoverContentProps, "side" | "sideOffset" | "align" | "alignOffset">> {
1262
+ /**
1263
+ * The element which opens the floating composer.
1264
+ */
1265
+ children: ReactNode;
1266
+ }
1267
+ /**
1268
+ * Displays a floating composer attached to a trigger element.
1269
+ */
1270
+ declare const FloatingComposer: <TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM>(props: FloatingComposerProps<TM, CM> & RefAttributes<HTMLFormElement>) => JSX.Element;
1271
+
1272
+ interface ThreadComponents<_TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> {
1273
+ /**
1274
+ * The component used to display comments.
1275
+ */
1276
+ Comment: ComponentType<CommentProps<CM>>;
1277
+ }
1278
+ interface ThreadProps<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> extends ComponentPropsWithoutRef<"div"> {
1279
+ /**
1280
+ * The thread to display.
1281
+ */
1282
+ thread: ThreadData<TM, CM>;
1283
+ /**
1284
+ * How to show or hide the composer to reply to the thread.
1285
+ */
1286
+ showComposer?: boolean | "collapsed";
1287
+ /**
1288
+ * Whether to show the action to resolve the thread.
1289
+ */
1290
+ showResolveAction?: boolean;
1291
+ /**
1292
+ * How to show or hide the actions.
1293
+ */
1294
+ showActions?: CommentProps["showActions"];
1295
+ /**
1296
+ * Whether to show reactions.
1297
+ */
1298
+ showReactions?: CommentProps["showReactions"];
1299
+ /**
1300
+ * Whether to show the composer's formatting controls.
1301
+ */
1302
+ showComposerFormattingControls?: ComposerProps["showFormattingControls"];
1303
+ /**
1304
+ * Add (or change) items to display in a comment's dropdown.
1305
+ */
1306
+ commentDropdownItems?: ReactNode | ((props: PropsWithChildren<{
1307
+ comment: CommentData<CM>;
1308
+ }>) => ReactNode);
1309
+ /**
1310
+ * The maximum number of comments to show.
1311
+ *
1312
+ * The first and last comments are always shown and by default if some comments
1313
+ * are hidden, only the first comment will be shown before the "show more" button
1314
+ * and after it will be shown all the newest comments to fit the limit set.
1315
+ *
1316
+ * It's possible to customize this by setting `maxVisibleComments` to an object:
1317
+ *
1318
+ * @example
1319
+ * // Only show the last comment, and all the older ones to fit the limit.
1320
+ * <Thread maxVisibleComments={{ max: 5, show: "oldest" }} />
1321
+ *
1322
+ * @example
1323
+ * // Show as many old comments as new ones to fit the limit.
1324
+ * <Thread maxVisibleComments={{ max: 5, show: "both" }} />
1325
+ */
1326
+ maxVisibleComments?: number | {
1327
+ max: number;
1328
+ show: "oldest" | "both" | "newest";
1329
+ };
1330
+ /**
1331
+ * Whether to blur the composer editor when the composer is submitted.
1332
+ */
1333
+ blurComposerOnSubmit?: ComposerProps["blurOnSubmit"];
1334
+ /**
1335
+ * Whether to indent the comments' content.
1336
+ */
1337
+ indentCommentContent?: CommentProps["indentContent"];
1338
+ /**
1339
+ * Whether to show deleted comments.
1340
+ */
1341
+ showDeletedComments?: CommentProps["showDeleted"];
1342
+ /**
1343
+ * Whether to show attachments.
1344
+ */
1345
+ showAttachments?: boolean;
1346
+ /**
1347
+ * The event handler called when changing the resolved status.
1348
+ */
1349
+ onResolvedChange?: (resolved: boolean) => void;
1350
+ /**
1351
+ * The event handler called when a comment is edited.
1352
+ */
1353
+ onCommentEdit?: CommentProps["onCommentEdit"];
1354
+ /**
1355
+ * The event handler called when a comment is deleted.
1356
+ */
1357
+ onCommentDelete?: CommentProps["onCommentDelete"];
1358
+ /**
1359
+ * The event handler called when the thread is deleted.
1360
+ * A thread is deleted when all its comments are deleted.
1361
+ */
1362
+ onThreadDelete?: (thread: ThreadData<TM, CM>) => void;
1363
+ /**
1364
+ * The event handler called when clicking on a comment's author.
1365
+ */
1366
+ onAuthorClick?: CommentProps["onAuthorClick"];
1367
+ /**
1368
+ * The event handler called when clicking on a mention.
1369
+ */
1370
+ onMentionClick?: CommentProps["onMentionClick"];
1371
+ /**
1372
+ * The event handler called when clicking on a comment's attachment.
1373
+ */
1374
+ onAttachmentClick?: CommentProps["onAttachmentClick"];
1375
+ /**
1376
+ * The event handler called when the composer is submitted.
1377
+ */
1378
+ onComposerSubmit?: ComposerProps["onComposerSubmit"];
1379
+ /**
1380
+ * Whether to focus the composer on mount.
1381
+ */
1382
+ autoFocus?: ComposerProps["autoFocus"];
1383
+ /**
1384
+ * Override the component's strings.
1385
+ */
1386
+ overrides?: Partial<GlobalOverrides & ThreadOverrides & CommentOverrides & ComposerOverrides>;
1387
+ /**
1388
+ * Override the component's components.
1389
+ */
1390
+ components?: Partial<GlobalComponents & ThreadComponents<TM, CM>>;
1391
+ }
1392
+ /**
1393
+ * Displays a thread of comments, with a composer to reply
1394
+ * to it.
1395
+ *
1396
+ * @example
1397
+ * <>
1398
+ * {threads.map((thread) => (
1399
+ * <Thread key={thread.id} thread={thread} />
1400
+ * ))}
1401
+ * </>
1402
+ */
1403
+ declare const Thread: <TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM>(props: ThreadProps<TM, CM> & RefAttributes<HTMLDivElement>) => JSX.Element;
1404
+
1405
+ interface FloatingThreadProps<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> extends ThreadProps<TM, CM>, Relax<Pick<Popover.PopoverProps, "defaultOpen" | "open" | "onOpenChange"> & Pick<Popover.PopoverContentProps, "side" | "sideOffset" | "align" | "alignOffset">> {
1406
+ /**
1407
+ * The element which opens the floating thread.
1408
+ */
1409
+ children: ReactNode;
1410
+ }
1411
+ /**
1412
+ * Displays a floating thread attached to a trigger element.
1413
+ */
1414
+ declare const FloatingThread: <TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM>(props: FloatingThreadProps<TM, CM> & RefAttributes<HTMLDivElement>) => JSX.Element;
1415
+
1188
1416
  interface HistoryVersionSummaryProps extends ComponentPropsWithoutRef<"button"> {
1189
1417
  version: HistoryVersion;
1190
1418
  selected?: boolean;
@@ -1380,139 +1608,6 @@ interface InboxNotificationListProps extends ComponentPropsWithoutRef<"ol"> {
1380
1608
  */
1381
1609
  declare const InboxNotificationList: react.ForwardRefExoticComponent<InboxNotificationListProps & react.RefAttributes<HTMLOListElement>>;
1382
1610
 
1383
- interface ThreadComponents<_TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> {
1384
- /**
1385
- * The component used to display comments.
1386
- */
1387
- Comment: ComponentType<CommentProps<CM>>;
1388
- }
1389
- interface ThreadProps<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> extends ComponentPropsWithoutRef<"div"> {
1390
- /**
1391
- * The thread to display.
1392
- */
1393
- thread: ThreadData<TM, CM>;
1394
- /**
1395
- * How to show or hide the composer to reply to the thread.
1396
- */
1397
- showComposer?: boolean | "collapsed";
1398
- /**
1399
- * Whether to show the action to resolve the thread.
1400
- */
1401
- showResolveAction?: boolean;
1402
- /**
1403
- * How to show or hide the actions.
1404
- */
1405
- showActions?: CommentProps["showActions"];
1406
- /**
1407
- * Whether to show reactions.
1408
- */
1409
- showReactions?: CommentProps["showReactions"];
1410
- /**
1411
- * Whether to show the composer's formatting controls.
1412
- */
1413
- showComposerFormattingControls?: ComposerProps["showFormattingControls"];
1414
- /**
1415
- * Add (or change) items to display in a comment's dropdown.
1416
- */
1417
- commentDropdownItems?: ReactNode | ((props: PropsWithChildren<{
1418
- comment: CommentData<CM>;
1419
- }>) => ReactNode);
1420
- /**
1421
- * The maximum number of comments to show.
1422
- *
1423
- * The first and last comments are always shown and by default if some comments
1424
- * are hidden, only the first comment will be shown before the "show more" button
1425
- * and after it will be shown all the newest comments to fit the limit set.
1426
- *
1427
- * It's possible to customize this by setting `maxVisibleComments` to an object:
1428
- *
1429
- * @example
1430
- * // Only show the last comment, and all the older ones to fit the limit.
1431
- * <Thread maxVisibleComments={{ max: 5, show: "oldest" }} />
1432
- *
1433
- * @example
1434
- * // Show as many old comments as new ones to fit the limit.
1435
- * <Thread maxVisibleComments={{ max: 5, show: "both" }} />
1436
- */
1437
- maxVisibleComments?: number | {
1438
- max: number;
1439
- show: "oldest" | "both" | "newest";
1440
- };
1441
- /**
1442
- * Whether to blur the composer editor when the composer is submitted.
1443
- */
1444
- blurComposerOnSubmit?: ComposerProps["blurOnSubmit"];
1445
- /**
1446
- * Whether to indent the comments' content.
1447
- */
1448
- indentCommentContent?: CommentProps["indentContent"];
1449
- /**
1450
- * Additional content to display below the thread's comments.
1451
- */
1452
- additionalContent?: ReactNode;
1453
- /**
1454
- * Whether to show deleted comments.
1455
- */
1456
- showDeletedComments?: CommentProps["showDeleted"];
1457
- /**
1458
- * Whether to show attachments.
1459
- */
1460
- showAttachments?: boolean;
1461
- /**
1462
- * The event handler called when changing the resolved status.
1463
- */
1464
- onResolvedChange?: (resolved: boolean) => void;
1465
- /**
1466
- * The event handler called when a comment is edited.
1467
- */
1468
- onCommentEdit?: CommentProps["onCommentEdit"];
1469
- /**
1470
- * The event handler called when a comment is deleted.
1471
- */
1472
- onCommentDelete?: CommentProps["onCommentDelete"];
1473
- /**
1474
- * The event handler called when the thread is deleted.
1475
- * A thread is deleted when all its comments are deleted.
1476
- */
1477
- onThreadDelete?: (thread: ThreadData<TM, CM>) => void;
1478
- /**
1479
- * The event handler called when clicking on a comment's author.
1480
- */
1481
- onAuthorClick?: CommentProps["onAuthorClick"];
1482
- /**
1483
- * The event handler called when clicking on a mention.
1484
- */
1485
- onMentionClick?: CommentProps["onMentionClick"];
1486
- /**
1487
- * The event handler called when clicking on a comment's attachment.
1488
- */
1489
- onAttachmentClick?: CommentProps["onAttachmentClick"];
1490
- /**
1491
- * The event handler called when the composer is submitted.
1492
- */
1493
- onComposerSubmit?: ComposerProps["onComposerSubmit"];
1494
- /**
1495
- * Override the component's strings.
1496
- */
1497
- overrides?: Partial<GlobalOverrides & ThreadOverrides & CommentOverrides & ComposerOverrides>;
1498
- /**
1499
- * Override the component's components.
1500
- */
1501
- components?: Partial<GlobalComponents & ThreadComponents>;
1502
- }
1503
- /**
1504
- * Displays a thread of comments, with a composer to reply
1505
- * to it.
1506
- *
1507
- * @example
1508
- * <>
1509
- * {threads.map((thread) => (
1510
- * <Thread key={thread.id} thread={thread} />
1511
- * ))}
1512
- * </>
1513
- */
1514
- declare const Thread: <TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM>(props: ThreadProps<TM, CM> & RefAttributes<HTMLDivElement>) => JSX.Element;
1515
-
1516
1611
  type LiveblocksUiConfigProps = PropsWithChildren<{
1517
1612
  /**
1518
1613
  * Override the components' strings.
@@ -1712,4 +1807,4 @@ declare namespace icon {
1712
1807
  };
1713
1808
  }
1714
1809
 
1715
- export { AiChat, AiChatComponents, AiChatComponentsEmptyProps, AiChatComponentsLoadingProps, AiChatProps, AiComposerSubmitMessage, AiTool, AiToolIconProps, AiToolProps, Comment, CommentAttachmentArgs, CommentAuthorProps, CommentAvatarProps, CommentDateProps, CommentDropdownItemProps, CommentOverrides, CommentProps, Composer, ComposerBodyMark, ComposerBodyMarks, ComposerOverrides, ComposerProps, ComposerSubmitComment, GlobalOverrides, HistoryVersionSummary, HistoryVersionSummaryList, HistoryVersionSummaryListProps, HistoryVersionSummaryProps, icon as Icon, InboxNotification, InboxNotificationAvatarProps, InboxNotificationCustomKindProps, InboxNotificationCustomProps, InboxNotificationIconProps, InboxNotificationInspectorProps, InboxNotificationList, InboxNotificationListProps, InboxNotificationOverrides, InboxNotificationProps, InboxNotificationTextMentionKindProps, InboxNotificationTextMentionProps, InboxNotificationThreadKindProps, InboxNotificationThreadProps, LiveblocksUiConfig, LocalizationOverrides, Overrides, Thread, ThreadOverrides, ThreadProps, useOverrides };
1810
+ export { AiChat, AiChatComponents, AiChatComponentsEmptyProps, AiChatComponentsLoadingProps, AiChatProps, AiComposerSubmitMessage, AiTool, AiToolIconProps, AiToolProps, AvatarStack, AvatarStackProps, Comment, CommentAttachmentArgs, CommentAuthorProps, CommentAvatarProps, CommentDateProps, CommentDropdownItemProps, CommentOverrides, CommentPin, CommentPinProps, CommentProps, Composer, ComposerBodyMark, ComposerBodyMarks, ComposerOverrides, ComposerProps, ComposerSubmitComment, Cursor, CursorProps, Cursors, CursorsProps, FloatingComposer, FloatingComposerProps, FloatingThread, FloatingThreadProps, GlobalOverrides, HistoryVersionSummary, HistoryVersionSummaryList, HistoryVersionSummaryListProps, HistoryVersionSummaryProps, icon as Icon, InboxNotification, InboxNotificationAvatarProps, InboxNotificationCustomKindProps, InboxNotificationCustomProps, InboxNotificationIconProps, InboxNotificationInspectorProps, InboxNotificationList, InboxNotificationListProps, InboxNotificationOverrides, InboxNotificationProps, InboxNotificationTextMentionKindProps, InboxNotificationTextMentionProps, InboxNotificationThreadKindProps, InboxNotificationThreadProps, LiveblocksUiConfig, LocalizationOverrides, Overrides, Thread, ThreadOverrides, ThreadProps, useOverrides };