@liveblocks/react-ui 3.14.0-types2 → 3.15.0-components1

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 (137) hide show
  1. package/README.md +1 -1
  2. package/dist/_private/index.cjs +5 -5
  3. package/dist/_private/index.d.cts +14 -4
  4. package/dist/_private/index.d.ts +14 -4
  5. package/dist/_private/index.js +3 -2
  6. package/dist/_private/index.js.map +1 -1
  7. package/dist/components/AvatarStack.cjs +115 -0
  8. package/dist/components/AvatarStack.cjs.map +1 -0
  9. package/dist/components/AvatarStack.js +113 -0
  10. package/dist/components/AvatarStack.js.map +1 -0
  11. package/dist/components/Comment.cjs +10 -28
  12. package/dist/components/Comment.cjs.map +1 -1
  13. package/dist/components/Comment.js +12 -11
  14. package/dist/components/Comment.js.map +1 -1
  15. package/dist/components/CommentPin.cjs +27 -0
  16. package/dist/components/CommentPin.cjs.map +1 -0
  17. package/dist/components/CommentPin.js +25 -0
  18. package/dist/components/CommentPin.js.map +1 -0
  19. package/dist/components/Composer.cjs +2 -4
  20. package/dist/components/Composer.cjs.map +1 -1
  21. package/dist/components/Composer.js +3 -5
  22. package/dist/components/Composer.js.map +1 -1
  23. package/dist/components/Cursor.cjs +40 -0
  24. package/dist/components/Cursor.cjs.map +1 -0
  25. package/dist/components/Cursor.js +38 -0
  26. package/dist/components/Cursor.js.map +1 -0
  27. package/dist/components/Cursors.cjs +252 -0
  28. package/dist/components/Cursors.cjs.map +1 -0
  29. package/dist/components/Cursors.js +250 -0
  30. package/dist/components/Cursors.js.map +1 -0
  31. package/dist/components/FloatingComposer.cjs +82 -0
  32. package/dist/components/FloatingComposer.cjs.map +1 -0
  33. package/dist/components/FloatingComposer.js +80 -0
  34. package/dist/components/FloatingComposer.js.map +1 -0
  35. package/dist/components/FloatingThread.cjs +82 -0
  36. package/dist/components/FloatingThread.cjs.map +1 -0
  37. package/dist/components/FloatingThread.js +80 -0
  38. package/dist/components/FloatingThread.js.map +1 -0
  39. package/dist/components/InboxNotification.cjs +4 -6
  40. package/dist/components/InboxNotification.cjs.map +1 -1
  41. package/dist/components/InboxNotification.js +5 -7
  42. package/dist/components/InboxNotification.js.map +1 -1
  43. package/dist/components/Thread.cjs +19 -26
  44. package/dist/components/Thread.cjs.map +1 -1
  45. package/dist/components/Thread.js +19 -7
  46. package/dist/components/Thread.js.map +1 -1
  47. package/dist/components/internal/AiComposer.cjs +1 -2
  48. package/dist/components/internal/AiComposer.cjs.map +1 -1
  49. package/dist/components/internal/AiComposer.js +1 -2
  50. package/dist/components/internal/AiComposer.js.map +1 -1
  51. package/dist/components/internal/CodeBlock.cjs +1 -2
  52. package/dist/components/internal/CodeBlock.cjs.map +1 -1
  53. package/dist/components/internal/CodeBlock.js +1 -2
  54. package/dist/components/internal/CodeBlock.js.map +1 -1
  55. package/dist/components/internal/Dropdown.cjs +7 -28
  56. package/dist/components/internal/Dropdown.cjs.map +1 -1
  57. package/dist/components/internal/Dropdown.js +7 -7
  58. package/dist/components/internal/Dropdown.js.map +1 -1
  59. package/dist/components/internal/EmojiPicker.cjs +6 -27
  60. package/dist/components/internal/EmojiPicker.cjs.map +1 -1
  61. package/dist/components/internal/EmojiPicker.js +6 -6
  62. package/dist/components/internal/EmojiPicker.js.map +1 -1
  63. package/dist/components/internal/List.cjs +2 -2
  64. package/dist/components/internal/List.cjs.map +1 -1
  65. package/dist/components/internal/List.js +2 -2
  66. package/dist/components/internal/List.js.map +1 -1
  67. package/dist/components/internal/Tooltip.cjs +7 -28
  68. package/dist/components/internal/Tooltip.cjs.map +1 -1
  69. package/dist/components/internal/Tooltip.js +7 -7
  70. package/dist/components/internal/Tooltip.js.map +1 -1
  71. package/dist/index.cjs +12 -0
  72. package/dist/index.cjs.map +1 -1
  73. package/dist/index.d.cts +214 -125
  74. package/dist/index.d.ts +214 -125
  75. package/dist/index.js +6 -0
  76. package/dist/index.js.map +1 -1
  77. package/dist/primitives/AiComposer/index.cjs +9 -6
  78. package/dist/primitives/AiComposer/index.cjs.map +1 -1
  79. package/dist/primitives/AiComposer/index.js +9 -6
  80. package/dist/primitives/AiComposer/index.js.map +1 -1
  81. package/dist/primitives/AiMessage/index.cjs +2 -2
  82. package/dist/primitives/AiMessage/index.cjs.map +1 -1
  83. package/dist/primitives/AiMessage/index.js +2 -2
  84. package/dist/primitives/AiMessage/index.js.map +1 -1
  85. package/dist/primitives/Collapsible/index.cjs +4 -4
  86. package/dist/primitives/Collapsible/index.cjs.map +1 -1
  87. package/dist/primitives/Collapsible/index.js +4 -4
  88. package/dist/primitives/Collapsible/index.js.map +1 -1
  89. package/dist/primitives/Comment/index.cjs +4 -4
  90. package/dist/primitives/Comment/index.cjs.map +1 -1
  91. package/dist/primitives/Comment/index.js +4 -4
  92. package/dist/primitives/Comment/index.js.map +1 -1
  93. package/dist/primitives/Composer/index.cjs +27 -42
  94. package/dist/primitives/Composer/index.cjs.map +1 -1
  95. package/dist/primitives/Composer/index.js +27 -23
  96. package/dist/primitives/Composer/index.js.map +1 -1
  97. package/dist/primitives/Duration.cjs +2 -2
  98. package/dist/primitives/Duration.cjs.map +1 -1
  99. package/dist/primitives/Duration.js +2 -2
  100. package/dist/primitives/Duration.js.map +1 -1
  101. package/dist/primitives/FileSize.cjs +2 -2
  102. package/dist/primitives/FileSize.cjs.map +1 -1
  103. package/dist/primitives/FileSize.js +2 -2
  104. package/dist/primitives/FileSize.js.map +1 -1
  105. package/dist/primitives/Markdown.cjs +2 -2
  106. package/dist/primitives/Markdown.cjs.map +1 -1
  107. package/dist/primitives/Markdown.js +2 -2
  108. package/dist/primitives/Markdown.js.map +1 -1
  109. package/dist/primitives/Timestamp.cjs +2 -2
  110. package/dist/primitives/Timestamp.cjs.map +1 -1
  111. package/dist/primitives/Timestamp.js +2 -2
  112. package/dist/primitives/Timestamp.js.map +1 -1
  113. package/dist/utils/Portal.cjs +6 -3
  114. package/dist/utils/Portal.cjs.map +1 -1
  115. package/dist/utils/Portal.js +6 -3
  116. package/dist/utils/Portal.js.map +1 -1
  117. package/dist/utils/animation-loop.cjs +44 -0
  118. package/dist/utils/animation-loop.cjs.map +1 -0
  119. package/dist/utils/animation-loop.js +42 -0
  120. package/dist/utils/animation-loop.js.map +1 -0
  121. package/dist/utils/use-pre-resolve-user.cjs +18 -0
  122. package/dist/utils/use-pre-resolve-user.cjs.map +1 -0
  123. package/dist/utils/use-pre-resolve-user.js +16 -0
  124. package/dist/utils/use-pre-resolve-user.js.map +1 -0
  125. package/dist/version.cjs +1 -1
  126. package/dist/version.cjs.map +1 -1
  127. package/dist/version.js +1 -1
  128. package/dist/version.js.map +1 -1
  129. package/package.json +9 -13
  130. package/src/styles/dark/index.css +1 -1
  131. package/src/styles/index.css +252 -4
  132. package/styles/dark/attributes.css +1 -1
  133. package/styles/dark/attributes.css.map +1 -1
  134. package/styles/dark/media-query.css +1 -1
  135. package/styles/dark/media-query.css.map +1 -1
  136. package/styles.css +1 -1
  137. package/styles.css.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sources":["../../../src/components/internal/List.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { useOverrides } from \"../../overrides\";\nimport type { ComponentPropsWithSlot } from \"../../types\";\nimport { cn } from \"../../utils/cn\";\nimport { listFormat } from \"../../utils/intl\";\n\nexport interface ListProps extends ComponentPropsWithSlot<\"span\"> {\n values: ReactNode[];\n formatRemaining?: (amount: number) => string;\n truncate?: number;\n locale?: string;\n}\n\nexport const List = forwardRef<HTMLSpanElement, ListProps>(\n (\n { values, formatRemaining, truncate, locale, className, asChild, ...props },\n forwardedRef\n ) => {\n const Component = asChild ? Slot : \"span\";\n const $ = useOverrides();\n const formatRemainingWithDefault = formatRemaining ?? $.LIST_REMAINING;\n const formattedList = useMemo(() => {\n const elements =\n truncate && truncate < values.length - 1\n ? [\n ...values.slice(0, truncate),\n formatRemainingWithDefault(values.length - truncate),\n ]\n : [...values];\n const placeholders = Array(elements.length).fill(\".\");\n const parts = listFormat(locale).formatToParts(placeholders);\n\n return parts.map((part) =>\n part.type === \"element\" ? elements.shift() : part.value\n );\n }, [formatRemainingWithDefault, locale, truncate, values]);\n\n return (\n <Component\n className={cn(\"lb-list\", className)}\n {...props}\n ref={forwardedRef}\n >\n {formattedList}\n </Component>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;AAgBO,MAAM,IAAO,GAAA,UAAA;AAAA,EAClB,CACE,EAAE,MAAA,EAAQ,eAAiB,EAAA,QAAA,EAAU,MAAQ,EAAA,SAAA,EAAW,OAAS,EAAA,GAAG,KAAM,EAAA,EAC1E,YACG,KAAA;AACH,IAAM,MAAA,SAAA,GAAY,UAAU,IAAO,GAAA,MAAA,CAAA;AACnC,IAAA,MAAM,IAAI,YAAa,EAAA,CAAA;AACvB,IAAM,MAAA,0BAAA,GAA6B,mBAAmB,CAAE,CAAA,cAAA,CAAA;AACxD,IAAM,MAAA,aAAA,GAAgB,QAAQ,MAAM;AAClC,MAAA,MAAM,QACJ,GAAA,QAAA,IAAY,QAAW,GAAA,MAAA,CAAO,SAAS,CACnC,GAAA;AAAA,QACE,GAAG,MAAA,CAAO,KAAM,CAAA,CAAA,EAAG,QAAQ,CAAA;AAAA,QAC3B,0BAAA,CAA2B,MAAO,CAAA,MAAA,GAAS,QAAQ,CAAA;AAAA,OACrD,GACA,CAAC,GAAG,MAAM,CAAA,CAAA;AAChB,MAAA,MAAM,eAAe,KAAM,CAAA,QAAA,CAAS,MAAM,CAAA,CAAE,KAAK,GAAG,CAAA,CAAA;AACpD,MAAA,MAAM,KAAQ,GAAA,UAAA,CAAW,MAAM,CAAA,CAAE,cAAc,YAAY,CAAA,CAAA;AAE3D,MAAA,OAAO,KAAM,CAAA,GAAA;AAAA,QAAI,CAAC,SAChB,IAAK,CAAA,IAAA,KAAS,YAAY,QAAS,CAAA,KAAA,KAAU,IAAK,CAAA,KAAA;AAAA,OACpD,CAAA;AAAA,OACC,CAAC,0BAAA,EAA4B,MAAQ,EAAA,QAAA,EAAU,MAAM,CAAC,CAAA,CAAA;AAEzD,IACE,uBAAA,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAG,CAAA,SAAA,EAAW,SAAS,CAAA;AAAA,QACjC,GAAG,KAAA;AAAA,QACJ,GAAK,EAAA,YAAA;AAAA,QAEJ,QAAA,EAAA,aAAA;AAAA,OAAA;AAAA,KACH,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"List.js","sources":["../../../src/components/internal/List.tsx"],"sourcesContent":["import { Slot as SlotPrimitive } from \"radix-ui\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { useOverrides } from \"../../overrides\";\nimport type { ComponentPropsWithSlot } from \"../../types\";\nimport { cn } from \"../../utils/cn\";\nimport { listFormat } from \"../../utils/intl\";\n\nexport interface ListProps extends ComponentPropsWithSlot<\"span\"> {\n values: ReactNode[];\n formatRemaining?: (amount: number) => string;\n truncate?: number;\n locale?: string;\n}\n\nexport const List = forwardRef<HTMLSpanElement, ListProps>(\n (\n { values, formatRemaining, truncate, locale, className, asChild, ...props },\n forwardedRef\n ) => {\n const Component = asChild ? SlotPrimitive.Slot : \"span\";\n const $ = useOverrides();\n const formatRemainingWithDefault = formatRemaining ?? $.LIST_REMAINING;\n const formattedList = useMemo(() => {\n const elements =\n truncate && truncate < values.length - 1\n ? [\n ...values.slice(0, truncate),\n formatRemainingWithDefault(values.length - truncate),\n ]\n : [...values];\n const placeholders = Array(elements.length).fill(\".\");\n const parts = listFormat(locale).formatToParts(placeholders);\n\n return parts.map((part) =>\n part.type === \"element\" ? elements.shift() : part.value\n );\n }, [formatRemainingWithDefault, locale, truncate, values]);\n\n return (\n <Component\n className={cn(\"lb-list\", className)}\n {...props}\n ref={forwardedRef}\n >\n {formattedList}\n </Component>\n );\n }\n);\n"],"names":["SlotPrimitive"],"mappings":";;;;;;;AAgBO,MAAM,IAAO,GAAA,UAAA;AAAA,EAClB,CACE,EAAE,MAAA,EAAQ,eAAiB,EAAA,QAAA,EAAU,MAAQ,EAAA,SAAA,EAAW,OAAS,EAAA,GAAG,KAAM,EAAA,EAC1E,YACG,KAAA;AACH,IAAM,MAAA,SAAA,GAAY,OAAU,GAAAA,IAAA,CAAc,IAAO,GAAA,MAAA,CAAA;AACjD,IAAA,MAAM,IAAI,YAAa,EAAA,CAAA;AACvB,IAAM,MAAA,0BAAA,GAA6B,mBAAmB,CAAE,CAAA,cAAA,CAAA;AACxD,IAAM,MAAA,aAAA,GAAgB,QAAQ,MAAM;AAClC,MAAA,MAAM,QACJ,GAAA,QAAA,IAAY,QAAW,GAAA,MAAA,CAAO,SAAS,CACnC,GAAA;AAAA,QACE,GAAG,MAAA,CAAO,KAAM,CAAA,CAAA,EAAG,QAAQ,CAAA;AAAA,QAC3B,0BAAA,CAA2B,MAAO,CAAA,MAAA,GAAS,QAAQ,CAAA;AAAA,OACrD,GACA,CAAC,GAAG,MAAM,CAAA,CAAA;AAChB,MAAA,MAAM,eAAe,KAAM,CAAA,QAAA,CAAS,MAAM,CAAA,CAAE,KAAK,GAAG,CAAA,CAAA;AACpD,MAAA,MAAM,KAAQ,GAAA,UAAA,CAAW,MAAM,CAAA,CAAE,cAAc,YAAY,CAAA,CAAA;AAE3D,MAAA,OAAO,KAAM,CAAA,GAAA;AAAA,QAAI,CAAC,SAChB,IAAK,CAAA,IAAA,KAAS,YAAY,QAAS,CAAA,KAAA,KAAU,IAAK,CAAA,KAAA;AAAA,OACpD,CAAA;AAAA,OACC,CAAC,0BAAA,EAA4B,MAAQ,EAAA,QAAA,EAAU,MAAM,CAAC,CAAA,CAAA;AAEzD,IACE,uBAAA,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAG,CAAA,SAAA,EAAW,SAAS,CAAA;AAAA,QACjC,GAAG,KAAA;AAAA,QACJ,GAAK,EAAA,YAAA;AAAA,QAEJ,QAAA,EAAA,aAAA;AAAA,OAAA;AAAA,KACH,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -2,32 +2,13 @@
2
2
  'use strict';
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
- var TooltipPrimitive = require('@radix-ui/react-tooltip');
5
+ var radixUi = require('radix-ui');
6
6
  var react = require('react');
7
7
  var config = require('../../config.cjs');
8
8
  var constants = require('../../constants.cjs');
9
9
  var cn = require('../../utils/cn.cjs');
10
10
  var isApple = require('../../utils/is-apple.cjs');
11
11
 
12
- function _interopNamespaceDefault(e) {
13
- var n = Object.create(null);
14
- if (e) {
15
- Object.keys(e).forEach(function (k) {
16
- if (k !== 'default') {
17
- var d = Object.getOwnPropertyDescriptor(e, k);
18
- Object.defineProperty(n, k, d.get ? d : {
19
- enumerable: true,
20
- get: function () { return e[k]; }
21
- });
22
- }
23
- });
24
- }
25
- n.default = e;
26
- return Object.freeze(n);
27
- }
28
-
29
- var TooltipPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(TooltipPrimitive);
30
-
31
12
 
32
13
  const ALT_KEY = { title: "Alt", key: "\u2325" };
33
14
  const COMMAND_KEY = { title: "Command", key: "\u2318" };
@@ -69,10 +50,10 @@ function getShortcutKbdFromKeymap(keymap) {
69
50
  const Tooltip = react.forwardRef(
70
51
  ({ children, content, multiline, className, ...props }, forwardedRef) => {
71
52
  const { portalContainer } = config.useLiveblocksUiConfig();
72
- return /* @__PURE__ */ jsxRuntime.jsxs(TooltipPrimitive__namespace.Root, { disableHoverableContent: true, children: [
73
- /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { asChild: true, ref: forwardedRef, children }),
74
- /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
75
- TooltipPrimitive__namespace.Content,
53
+ return /* @__PURE__ */ jsxRuntime.jsxs(radixUi.Tooltip.Root, { disableHoverableContent: true, children: [
54
+ /* @__PURE__ */ jsxRuntime.jsx(radixUi.Tooltip.Trigger, { asChild: true, ref: forwardedRef, children }),
55
+ /* @__PURE__ */ jsxRuntime.jsx(radixUi.Tooltip.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
56
+ radixUi.Tooltip.Content,
76
57
  {
77
58
  className: cn.cn(
78
59
  "lb-root lb-portal lb-tooltip",
@@ -111,11 +92,9 @@ function ShortcutTooltipKey({ name, ...props }) {
111
92
  const { title, key } = react.useMemo(() => KEYS[name]?.(), [name]);
112
93
  return /* @__PURE__ */ jsxRuntime.jsx("abbr", { title, ...props, children: key });
113
94
  }
95
+ const TooltipProvider = radixUi.Tooltip.Provider;
114
96
 
115
- Object.defineProperty(exports, 'TooltipProvider', {
116
- enumerable: true,
117
- get: function () { return TooltipPrimitive.TooltipProvider; }
118
- });
119
97
  exports.ShortcutTooltip = ShortcutTooltip;
120
98
  exports.Tooltip = Tooltip;
99
+ exports.TooltipProvider = TooltipProvider;
121
100
  //# sourceMappingURL=Tooltip.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.cjs","sources":["../../../src/components/internal/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { useLiveblocksUiConfig } from \"../../config\";\nimport {\n FLOATING_ELEMENT_COLLISION_PADDING,\n FLOATING_ELEMENT_SIDE_OFFSET,\n} from \"../../constants\";\nimport { cn } from \"../../utils/cn\";\nimport { isApple } from \"../../utils/is-apple\";\n\nconst ALT_KEY = { title: \"Alt\", key: \"⌥\" };\nconst COMMAND_KEY = { title: \"Command\", key: \"⌘\" };\nconst CONTROL_KEY = { title: \"Ctrl\", key: \"⌃\" };\nconst SHIFT_KEY = { title: \"Shift\", key: \"⇧\" };\nconst ENTER_KEY = { title: \"Enter\", key: \"⏎\" };\nconst SPACE_KEY = { title: \"Space\", key: \"␣\" };\nconst ESCAPE_KEY = { title: \"Escape\", key: \"⎋\" };\n\nconst KEYS = {\n alt: () => ALT_KEY,\n mod: () => (isApple() ? COMMAND_KEY : CONTROL_KEY),\n control: () => CONTROL_KEY,\n ctrl: () => CONTROL_KEY,\n command: () => COMMAND_KEY,\n cmd: () => COMMAND_KEY,\n shift: () => SHIFT_KEY,\n enter: () => ENTER_KEY,\n \" \": () => SPACE_KEY,\n space: () => SPACE_KEY,\n escape: () => ESCAPE_KEY,\n esc: () => ESCAPE_KEY,\n} as const;\n\nexport interface TooltipProps\n extends Pick<TooltipPrimitive.TooltipTriggerProps, \"children\">,\n Omit<TooltipPrimitive.TooltipContentProps, \"content\"> {\n content: ReactNode;\n multiline?: boolean;\n}\n\nexport interface ShortcutTooltipProps extends TooltipProps {\n shortcut?: string;\n}\n\nexport interface ShortcutTooltipKeyProps extends ComponentProps<\"abbr\"> {\n name: keyof typeof KEYS;\n}\n\nfunction getShortcutKbdFromKeymap(keymap: string) {\n const keys = keymap.split(\"-\");\n\n return (\n <>\n {keys.map((key, index) => {\n const lowerKey = key.toLowerCase();\n\n if (lowerKey in KEYS) {\n return (\n <ShortcutTooltipKey\n key={index}\n name={lowerKey as keyof typeof KEYS}\n />\n );\n }\n\n return <span key={index}>{key}</span>;\n })}\n </>\n );\n}\n\nexport const Tooltip = forwardRef<HTMLButtonElement, TooltipProps>(\n ({ children, content, multiline, className, ...props }, forwardedRef) => {\n const { portalContainer } = useLiveblocksUiConfig();\n\n return (\n <TooltipPrimitive.Root disableHoverableContent>\n <TooltipPrimitive.Trigger asChild ref={forwardedRef}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal container={portalContainer}>\n <TooltipPrimitive.Content\n className={cn(\n \"lb-root lb-portal lb-tooltip\",\n multiline && \"lb-tooltip:multiline\",\n className\n )}\n side=\"top\"\n align=\"center\"\n sideOffset={FLOATING_ELEMENT_SIDE_OFFSET}\n collisionPadding={FLOATING_ELEMENT_COLLISION_PADDING}\n {...props}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n }\n);\n\nexport const ShortcutTooltip = forwardRef<\n HTMLButtonElement,\n ShortcutTooltipProps\n>(({ children, content, shortcut, ...props }, forwardedRef) => {\n const shortcutKbd = useMemo(() => {\n return shortcut ? getShortcutKbdFromKeymap(shortcut) : null;\n }, [shortcut]);\n\n return (\n <Tooltip\n content={\n <>\n {content}\n {shortcutKbd && (\n <kbd className=\"lb-tooltip-shortcut\">{shortcutKbd}</kbd>\n )}\n </>\n }\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Tooltip>\n );\n});\n\nfunction ShortcutTooltipKey({ name, ...props }: ShortcutTooltipKeyProps) {\n const { title, key } = useMemo(() => KEYS[name]?.(), [name]);\n\n return (\n <abbr title={title} {...props}>\n {key}\n </abbr>\n );\n}\n\nexport { TooltipProvider } from \"@radix-ui/react-tooltip\";\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAa;AACA;AAC2B;AACvB;AACH;AACG;AACJ;AACE;AACA;AACF;AACE;AACC;AAEhB;AAiBA;AACE;AAEA;AAGM;AAEA;AACE;AACE;AAAC;AAAA;AAEO;AAAA;AADD;AAEP;AAIJ;AAA8B;AAItC;AAEO;AAAgB;AAEnB;AAEA;AAEI;AAEA;AAEE;AAAkB;AAAjB;AACY;AACT;AACa;AACb;AACF;AACK;AACC;AACM;AACM;AACd;AAEH;AAAA;AAEL;AACF;AAGN;AAEa;AAIX;AACE;AAAuD;AAGzD;AACE;AAAC;AAAA;AAGM;AAAA;AAEmD;AAEtD;AAEE;AACC;AAEJ;AAAA;AAGP;AAEA;AACE;AAEA;AAKF;;;;;;;"}
1
+ {"version":3,"file":"Tooltip.cjs","sources":["../../../src/components/internal/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { useLiveblocksUiConfig } from \"../../config\";\nimport {\n FLOATING_ELEMENT_COLLISION_PADDING,\n FLOATING_ELEMENT_SIDE_OFFSET,\n} from \"../../constants\";\nimport { cn } from \"../../utils/cn\";\nimport { isApple } from \"../../utils/is-apple\";\n\nconst ALT_KEY = { title: \"Alt\", key: \"⌥\" };\nconst COMMAND_KEY = { title: \"Command\", key: \"⌘\" };\nconst CONTROL_KEY = { title: \"Ctrl\", key: \"⌃\" };\nconst SHIFT_KEY = { title: \"Shift\", key: \"⇧\" };\nconst ENTER_KEY = { title: \"Enter\", key: \"⏎\" };\nconst SPACE_KEY = { title: \"Space\", key: \"␣\" };\nconst ESCAPE_KEY = { title: \"Escape\", key: \"⎋\" };\n\nconst KEYS = {\n alt: () => ALT_KEY,\n mod: () => (isApple() ? COMMAND_KEY : CONTROL_KEY),\n control: () => CONTROL_KEY,\n ctrl: () => CONTROL_KEY,\n command: () => COMMAND_KEY,\n cmd: () => COMMAND_KEY,\n shift: () => SHIFT_KEY,\n enter: () => ENTER_KEY,\n \" \": () => SPACE_KEY,\n space: () => SPACE_KEY,\n escape: () => ESCAPE_KEY,\n esc: () => ESCAPE_KEY,\n} as const;\n\nexport interface TooltipProps\n extends Pick<TooltipPrimitive.TooltipTriggerProps, \"children\">,\n Omit<TooltipPrimitive.TooltipContentProps, \"content\"> {\n content: ReactNode;\n multiline?: boolean;\n}\n\nexport interface ShortcutTooltipProps extends TooltipProps {\n shortcut?: string;\n}\n\nexport interface ShortcutTooltipKeyProps extends ComponentProps<\"abbr\"> {\n name: keyof typeof KEYS;\n}\n\nfunction getShortcutKbdFromKeymap(keymap: string) {\n const keys = keymap.split(\"-\");\n\n return (\n <>\n {keys.map((key, index) => {\n const lowerKey = key.toLowerCase();\n\n if (lowerKey in KEYS) {\n return (\n <ShortcutTooltipKey\n key={index}\n name={lowerKey as keyof typeof KEYS}\n />\n );\n }\n\n return <span key={index}>{key}</span>;\n })}\n </>\n );\n}\n\nexport const Tooltip = forwardRef<HTMLButtonElement, TooltipProps>(\n ({ children, content, multiline, className, ...props }, forwardedRef) => {\n const { portalContainer } = useLiveblocksUiConfig();\n\n return (\n <TooltipPrimitive.Root disableHoverableContent>\n <TooltipPrimitive.Trigger asChild ref={forwardedRef}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal container={portalContainer}>\n <TooltipPrimitive.Content\n className={cn(\n \"lb-root lb-portal lb-tooltip\",\n multiline && \"lb-tooltip:multiline\",\n className\n )}\n side=\"top\"\n align=\"center\"\n sideOffset={FLOATING_ELEMENT_SIDE_OFFSET}\n collisionPadding={FLOATING_ELEMENT_COLLISION_PADDING}\n {...props}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n }\n);\n\nexport const ShortcutTooltip = forwardRef<\n HTMLButtonElement,\n ShortcutTooltipProps\n>(({ children, content, shortcut, ...props }, forwardedRef) => {\n const shortcutKbd = useMemo(() => {\n return shortcut ? getShortcutKbdFromKeymap(shortcut) : null;\n }, [shortcut]);\n\n return (\n <Tooltip\n content={\n <>\n {content}\n {shortcutKbd && (\n <kbd className=\"lb-tooltip-shortcut\">{shortcutKbd}</kbd>\n )}\n </>\n }\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Tooltip>\n );\n});\n\nfunction ShortcutTooltipKey({ name, ...props }: ShortcutTooltipKeyProps) {\n const { title, key } = useMemo(() => KEYS[name]?.(), [name]);\n\n return (\n <abbr title={title} {...props}>\n {key}\n </abbr>\n );\n}\n\nexport const TooltipProvider = TooltipPrimitive.Provider;\n"],"names":[],"mappings":";;;;;;;;;;;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAa;AACA;AAC2B;AACvB;AACH;AACG;AACJ;AACE;AACA;AACF;AACE;AACC;AAEhB;AAiBA;AACE;AAEA;AAGM;AAEA;AACE;AACE;AAAC;AAAA;AAEO;AAAA;AADD;AAEP;AAIJ;AAA8B;AAItC;AAEO;AAAgB;AAEnB;AAEA;AAEI;AAEA;AAEE;AAAkB;AAAjB;AACY;AACT;AACa;AACb;AACF;AACK;AACC;AACM;AACM;AACd;AAEH;AAAA;AAEL;AACF;AAGN;AAEa;AAIX;AACE;AAAuD;AAGzD;AACE;AAAC;AAAA;AAGM;AAAA;AAEmD;AAEtD;AAEE;AACC;AAEJ;AAAA;AAGP;AAEA;AACE;AAEA;AAKF;AAEO;;;;"}
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
3
- import * as TooltipPrimitive from '@radix-ui/react-tooltip';
4
- export { TooltipProvider } from '@radix-ui/react-tooltip';
3
+ import { Tooltip as Tooltip$1 } from 'radix-ui';
5
4
  import { forwardRef, useMemo } from 'react';
6
5
  import { useLiveblocksUiConfig } from '../../config.js';
7
6
  import { FLOATING_ELEMENT_SIDE_OFFSET, FLOATING_ELEMENT_COLLISION_PADDING } from '../../constants.js';
@@ -49,10 +48,10 @@ function getShortcutKbdFromKeymap(keymap) {
49
48
  const Tooltip = forwardRef(
50
49
  ({ children, content, multiline, className, ...props }, forwardedRef) => {
51
50
  const { portalContainer } = useLiveblocksUiConfig();
52
- return /* @__PURE__ */ jsxs(TooltipPrimitive.Root, { disableHoverableContent: true, children: [
53
- /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { asChild: true, ref: forwardedRef, children }),
54
- /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(
55
- TooltipPrimitive.Content,
51
+ return /* @__PURE__ */ jsxs(Tooltip$1.Root, { disableHoverableContent: true, children: [
52
+ /* @__PURE__ */ jsx(Tooltip$1.Trigger, { asChild: true, ref: forwardedRef, children }),
53
+ /* @__PURE__ */ jsx(Tooltip$1.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(
54
+ Tooltip$1.Content,
56
55
  {
57
56
  className: cn(
58
57
  "lb-root lb-portal lb-tooltip",
@@ -91,6 +90,7 @@ function ShortcutTooltipKey({ name, ...props }) {
91
90
  const { title, key } = useMemo(() => KEYS[name]?.(), [name]);
92
91
  return /* @__PURE__ */ jsx("abbr", { title, ...props, children: key });
93
92
  }
93
+ const TooltipProvider = Tooltip$1.Provider;
94
94
 
95
- export { ShortcutTooltip, Tooltip };
95
+ export { ShortcutTooltip, Tooltip, TooltipProvider };
96
96
  //# sourceMappingURL=Tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../src/components/internal/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { useLiveblocksUiConfig } from \"../../config\";\nimport {\n FLOATING_ELEMENT_COLLISION_PADDING,\n FLOATING_ELEMENT_SIDE_OFFSET,\n} from \"../../constants\";\nimport { cn } from \"../../utils/cn\";\nimport { isApple } from \"../../utils/is-apple\";\n\nconst ALT_KEY = { title: \"Alt\", key: \"⌥\" };\nconst COMMAND_KEY = { title: \"Command\", key: \"⌘\" };\nconst CONTROL_KEY = { title: \"Ctrl\", key: \"⌃\" };\nconst SHIFT_KEY = { title: \"Shift\", key: \"⇧\" };\nconst ENTER_KEY = { title: \"Enter\", key: \"⏎\" };\nconst SPACE_KEY = { title: \"Space\", key: \"␣\" };\nconst ESCAPE_KEY = { title: \"Escape\", key: \"⎋\" };\n\nconst KEYS = {\n alt: () => ALT_KEY,\n mod: () => (isApple() ? COMMAND_KEY : CONTROL_KEY),\n control: () => CONTROL_KEY,\n ctrl: () => CONTROL_KEY,\n command: () => COMMAND_KEY,\n cmd: () => COMMAND_KEY,\n shift: () => SHIFT_KEY,\n enter: () => ENTER_KEY,\n \" \": () => SPACE_KEY,\n space: () => SPACE_KEY,\n escape: () => ESCAPE_KEY,\n esc: () => ESCAPE_KEY,\n} as const;\n\nexport interface TooltipProps\n extends Pick<TooltipPrimitive.TooltipTriggerProps, \"children\">,\n Omit<TooltipPrimitive.TooltipContentProps, \"content\"> {\n content: ReactNode;\n multiline?: boolean;\n}\n\nexport interface ShortcutTooltipProps extends TooltipProps {\n shortcut?: string;\n}\n\nexport interface ShortcutTooltipKeyProps extends ComponentProps<\"abbr\"> {\n name: keyof typeof KEYS;\n}\n\nfunction getShortcutKbdFromKeymap(keymap: string) {\n const keys = keymap.split(\"-\");\n\n return (\n <>\n {keys.map((key, index) => {\n const lowerKey = key.toLowerCase();\n\n if (lowerKey in KEYS) {\n return (\n <ShortcutTooltipKey\n key={index}\n name={lowerKey as keyof typeof KEYS}\n />\n );\n }\n\n return <span key={index}>{key}</span>;\n })}\n </>\n );\n}\n\nexport const Tooltip = forwardRef<HTMLButtonElement, TooltipProps>(\n ({ children, content, multiline, className, ...props }, forwardedRef) => {\n const { portalContainer } = useLiveblocksUiConfig();\n\n return (\n <TooltipPrimitive.Root disableHoverableContent>\n <TooltipPrimitive.Trigger asChild ref={forwardedRef}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal container={portalContainer}>\n <TooltipPrimitive.Content\n className={cn(\n \"lb-root lb-portal lb-tooltip\",\n multiline && \"lb-tooltip:multiline\",\n className\n )}\n side=\"top\"\n align=\"center\"\n sideOffset={FLOATING_ELEMENT_SIDE_OFFSET}\n collisionPadding={FLOATING_ELEMENT_COLLISION_PADDING}\n {...props}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n }\n);\n\nexport const ShortcutTooltip = forwardRef<\n HTMLButtonElement,\n ShortcutTooltipProps\n>(({ children, content, shortcut, ...props }, forwardedRef) => {\n const shortcutKbd = useMemo(() => {\n return shortcut ? getShortcutKbdFromKeymap(shortcut) : null;\n }, [shortcut]);\n\n return (\n <Tooltip\n content={\n <>\n {content}\n {shortcutKbd && (\n <kbd className=\"lb-tooltip-shortcut\">{shortcutKbd}</kbd>\n )}\n </>\n }\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Tooltip>\n );\n});\n\nfunction ShortcutTooltipKey({ name, ...props }: ShortcutTooltipKeyProps) {\n const { title, key } = useMemo(() => KEYS[name]?.(), [name]);\n\n return (\n <abbr title={title} {...props}>\n {key}\n </abbr>\n );\n}\n\nexport { TooltipProvider } from \"@radix-ui/react-tooltip\";\n"],"names":[],"mappings":";;;;;;;;;;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAa;AACA;AAC2B;AACvB;AACH;AACG;AACJ;AACE;AACA;AACF;AACE;AACC;AAEhB;AAiBA;AACE;AAEA;AAGM;AAEA;AACE;AACE;AAAC;AAAA;AAEO;AAAA;AADD;AAEP;AAIJ;AAA8B;AAItC;AAEO;AAAgB;AAEnB;AAEA;AAEI;AAEA;AAEE;AAAkB;AAAjB;AACY;AACT;AACa;AACb;AACF;AACK;AACC;AACM;AACM;AACd;AAEH;AAAA;AAEL;AACF;AAGN;AAEa;AAIX;AACE;AAAuD;AAGzD;AACE;AAAC;AAAA;AAGM;AAAA;AAEmD;AAEtD;AAEE;AACC;AAEJ;AAAA;AAGP;AAEA;AACE;AAEA;AAKF;;"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../src/components/internal/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport { useLiveblocksUiConfig } from \"../../config\";\nimport {\n FLOATING_ELEMENT_COLLISION_PADDING,\n FLOATING_ELEMENT_SIDE_OFFSET,\n} from \"../../constants\";\nimport { cn } from \"../../utils/cn\";\nimport { isApple } from \"../../utils/is-apple\";\n\nconst ALT_KEY = { title: \"Alt\", key: \"⌥\" };\nconst COMMAND_KEY = { title: \"Command\", key: \"⌘\" };\nconst CONTROL_KEY = { title: \"Ctrl\", key: \"⌃\" };\nconst SHIFT_KEY = { title: \"Shift\", key: \"⇧\" };\nconst ENTER_KEY = { title: \"Enter\", key: \"⏎\" };\nconst SPACE_KEY = { title: \"Space\", key: \"␣\" };\nconst ESCAPE_KEY = { title: \"Escape\", key: \"⎋\" };\n\nconst KEYS = {\n alt: () => ALT_KEY,\n mod: () => (isApple() ? COMMAND_KEY : CONTROL_KEY),\n control: () => CONTROL_KEY,\n ctrl: () => CONTROL_KEY,\n command: () => COMMAND_KEY,\n cmd: () => COMMAND_KEY,\n shift: () => SHIFT_KEY,\n enter: () => ENTER_KEY,\n \" \": () => SPACE_KEY,\n space: () => SPACE_KEY,\n escape: () => ESCAPE_KEY,\n esc: () => ESCAPE_KEY,\n} as const;\n\nexport interface TooltipProps\n extends Pick<TooltipPrimitive.TooltipTriggerProps, \"children\">,\n Omit<TooltipPrimitive.TooltipContentProps, \"content\"> {\n content: ReactNode;\n multiline?: boolean;\n}\n\nexport interface ShortcutTooltipProps extends TooltipProps {\n shortcut?: string;\n}\n\nexport interface ShortcutTooltipKeyProps extends ComponentProps<\"abbr\"> {\n name: keyof typeof KEYS;\n}\n\nfunction getShortcutKbdFromKeymap(keymap: string) {\n const keys = keymap.split(\"-\");\n\n return (\n <>\n {keys.map((key, index) => {\n const lowerKey = key.toLowerCase();\n\n if (lowerKey in KEYS) {\n return (\n <ShortcutTooltipKey\n key={index}\n name={lowerKey as keyof typeof KEYS}\n />\n );\n }\n\n return <span key={index}>{key}</span>;\n })}\n </>\n );\n}\n\nexport const Tooltip = forwardRef<HTMLButtonElement, TooltipProps>(\n ({ children, content, multiline, className, ...props }, forwardedRef) => {\n const { portalContainer } = useLiveblocksUiConfig();\n\n return (\n <TooltipPrimitive.Root disableHoverableContent>\n <TooltipPrimitive.Trigger asChild ref={forwardedRef}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal container={portalContainer}>\n <TooltipPrimitive.Content\n className={cn(\n \"lb-root lb-portal lb-tooltip\",\n multiline && \"lb-tooltip:multiline\",\n className\n )}\n side=\"top\"\n align=\"center\"\n sideOffset={FLOATING_ELEMENT_SIDE_OFFSET}\n collisionPadding={FLOATING_ELEMENT_COLLISION_PADDING}\n {...props}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n }\n);\n\nexport const ShortcutTooltip = forwardRef<\n HTMLButtonElement,\n ShortcutTooltipProps\n>(({ children, content, shortcut, ...props }, forwardedRef) => {\n const shortcutKbd = useMemo(() => {\n return shortcut ? getShortcutKbdFromKeymap(shortcut) : null;\n }, [shortcut]);\n\n return (\n <Tooltip\n content={\n <>\n {content}\n {shortcutKbd && (\n <kbd className=\"lb-tooltip-shortcut\">{shortcutKbd}</kbd>\n )}\n </>\n }\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Tooltip>\n );\n});\n\nfunction ShortcutTooltipKey({ name, ...props }: ShortcutTooltipKeyProps) {\n const { title, key } = useMemo(() => KEYS[name]?.(), [name]);\n\n return (\n <abbr title={title} {...props}>\n {key}\n </abbr>\n );\n}\n\nexport const TooltipProvider = TooltipPrimitive.Provider;\n"],"names":[],"mappings":";;;;;;;;;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAa;AACA;AAC2B;AACvB;AACH;AACG;AACJ;AACE;AACA;AACF;AACE;AACC;AAEhB;AAiBA;AACE;AAEA;AAGM;AAEA;AACE;AACE;AAAC;AAAA;AAEO;AAAA;AADD;AAEP;AAIJ;AAA8B;AAItC;AAEO;AAAgB;AAEnB;AAEA;AAEI;AAEA;AAEE;AAAkB;AAAjB;AACY;AACT;AACa;AACb;AACF;AACK;AACC;AACM;AACM;AACd;AAEH;AAAA;AAEL;AACF;AAGN;AAEa;AAIX;AACE;AAAuD;AAGzD;AACE;AAAC;AAAA;AAGM;AAAA;AAEmD;AAEtD;AAEE;AACC;AAEJ;AAAA;AAGP;AAEA;AACE;AAEA;AAKF;AAEO;;"}
package/dist/index.cjs CHANGED
@@ -4,8 +4,14 @@ var core = require('@liveblocks/core');
4
4
  var version = require('./version.cjs');
5
5
  var AiChat = require('./components/AiChat.cjs');
6
6
  var AiTool = require('./components/AiTool.cjs');
7
+ var AvatarStack = require('./components/AvatarStack.cjs');
7
8
  var Comment = require('./components/Comment.cjs');
9
+ var CommentPin = require('./components/CommentPin.cjs');
8
10
  var Composer = require('./components/Composer.cjs');
11
+ var Cursor = require('./components/Cursor.cjs');
12
+ var Cursors = require('./components/Cursors.cjs');
13
+ var FloatingComposer = require('./components/FloatingComposer.cjs');
14
+ var FloatingThread = require('./components/FloatingThread.cjs');
9
15
  var HistoryVersionSummary = require('./components/HistoryVersionSummary.cjs');
10
16
  var HistoryVersionSummaryList = require('./components/HistoryVersionSummaryList.cjs');
11
17
  var InboxNotification = require('./components/InboxNotification.cjs');
@@ -19,8 +25,14 @@ core.detectDupes(version.PKG_NAME, version.PKG_VERSION, version.PKG_FORMAT);
19
25
 
20
26
  exports.AiChat = AiChat.AiChat;
21
27
  exports.AiTool = AiTool.AiTool;
28
+ exports.AvatarStack = AvatarStack.AvatarStack;
22
29
  exports.Comment = Comment.Comment;
30
+ exports.CommentPin = CommentPin.CommentPin;
23
31
  exports.Composer = Composer.Composer;
32
+ exports.Cursor = Cursor.Cursor;
33
+ exports.Cursors = Cursors.Cursors;
34
+ exports.FloatingComposer = FloatingComposer.FloatingComposer;
35
+ exports.FloatingThread = FloatingThread.FloatingThread;
24
36
  exports.HistoryVersionSummary = HistoryVersionSummary.HistoryVersionSummary;
25
37
  exports.HistoryVersionSummaryList = HistoryVersionSummaryList.HistoryVersionSummaryList;
26
38
  exports.InboxNotification = InboxNotification.InboxNotification;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import { detectDupes } from \"@liveblocks/core\";\n\nimport { PKG_FORMAT, PKG_NAME, PKG_VERSION } from \"./version\";\n\ndetectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);\n\nexport type {\n AiChatComponents,\n AiChatComponentsEmptyProps,\n AiChatComponentsLoadingProps,\n AiChatProps,\n} from \"./components/AiChat\";\nexport { AiChat } from \"./components/AiChat\";\nexport type { AiToolIconProps, AiToolProps } from \"./components/AiTool\";\nexport { AiTool } from \"./components/AiTool\";\nexport type {\n CommentDropdownItemProps,\n CommentProps,\n} from \"./components/Comment\";\nexport { Comment } from \"./components/Comment\";\nexport type { ComposerProps } from \"./components/Composer\";\nexport { Composer } from \"./components/Composer\";\nexport type { HistoryVersionSummaryProps } from \"./components/HistoryVersionSummary\";\nexport { HistoryVersionSummary } from \"./components/HistoryVersionSummary\";\nexport type { HistoryVersionSummaryListProps } from \"./components/HistoryVersionSummaryList\";\nexport { HistoryVersionSummaryList } from \"./components/HistoryVersionSummaryList\";\nexport type {\n InboxNotificationAvatarProps,\n InboxNotificationCustomKindProps,\n InboxNotificationCustomProps,\n InboxNotificationIconProps,\n InboxNotificationInspectorProps,\n InboxNotificationProps,\n InboxNotificationTextMentionKindProps,\n InboxNotificationTextMentionProps,\n InboxNotificationThreadKindProps,\n InboxNotificationThreadProps,\n} from \"./components/InboxNotification\";\nexport { InboxNotification } from \"./components/InboxNotification\";\nexport type { InboxNotificationListProps } from \"./components/InboxNotificationList\";\nexport { InboxNotificationList } from \"./components/InboxNotificationList\";\nexport type { ThreadProps } from \"./components/Thread\";\nexport { Thread } from \"./components/Thread\";\nexport { LiveblocksUiConfig } from \"./config\";\nexport * as Icon from \"./icon\";\nexport type {\n CommentOverrides,\n ComposerOverrides,\n GlobalOverrides,\n InboxNotificationOverrides,\n LocalizationOverrides,\n Overrides,\n ThreadOverrides,\n} from \"./overrides\";\nexport { useOverrides } from \"./overrides\";\nexport type {\n AiComposerSubmitMessage,\n ComposerSubmitComment,\n} from \"./primitives\";\nexport type {\n CommentAttachmentArgs,\n ComposerBodyMark,\n ComposerBodyMarks,\n} from \"./types\";\n"],"names":["detectDupes","PKG_NAME","PKG_VERSION","PKG_FORMAT"],"mappings":";;;;;;;;;;;;;;;;;AAIAA,gBAAY,CAAAC,gBAAA,EAAUC,qBAAaC,kBAAU,CAAA;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import { detectDupes } from \"@liveblocks/core\";\n\nimport { PKG_FORMAT, PKG_NAME, PKG_VERSION } from \"./version\";\n\ndetectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);\n\nexport type {\n AiChatComponents,\n AiChatComponentsEmptyProps,\n AiChatComponentsLoadingProps,\n AiChatProps,\n} from \"./components/AiChat\";\nexport { AiChat } from \"./components/AiChat\";\nexport type { AiToolIconProps, AiToolProps } from \"./components/AiTool\";\nexport { AiTool } from \"./components/AiTool\";\nexport type { AvatarStackProps } from \"./components/AvatarStack\";\nexport { AvatarStack } from \"./components/AvatarStack\";\nexport type {\n CommentDropdownItemProps,\n CommentProps,\n} from \"./components/Comment\";\nexport { Comment } from \"./components/Comment\";\nexport type { CommentPinProps } from \"./components/CommentPin\";\nexport { CommentPin } from \"./components/CommentPin\";\nexport type { ComposerProps } from \"./components/Composer\";\nexport { Composer } from \"./components/Composer\";\nexport type { CursorProps } from \"./components/Cursor\";\nexport { Cursor } from \"./components/Cursor\";\nexport type { CursorsProps } from \"./components/Cursors\";\nexport { Cursors } from \"./components/Cursors\";\nexport type { FloatingComposerProps } from \"./components/FloatingComposer\";\nexport { FloatingComposer } from \"./components/FloatingComposer\";\nexport type { FloatingThreadProps } from \"./components/FloatingThread\";\nexport { FloatingThread } from \"./components/FloatingThread\";\nexport type { HistoryVersionSummaryProps } from \"./components/HistoryVersionSummary\";\nexport { HistoryVersionSummary } from \"./components/HistoryVersionSummary\";\nexport type { HistoryVersionSummaryListProps } from \"./components/HistoryVersionSummaryList\";\nexport { HistoryVersionSummaryList } from \"./components/HistoryVersionSummaryList\";\nexport type {\n InboxNotificationAvatarProps,\n InboxNotificationCustomKindProps,\n InboxNotificationCustomProps,\n InboxNotificationIconProps,\n InboxNotificationInspectorProps,\n InboxNotificationProps,\n InboxNotificationTextMentionKindProps,\n InboxNotificationTextMentionProps,\n InboxNotificationThreadKindProps,\n InboxNotificationThreadProps,\n} from \"./components/InboxNotification\";\nexport { InboxNotification } from \"./components/InboxNotification\";\nexport type { InboxNotificationListProps } from \"./components/InboxNotificationList\";\nexport { InboxNotificationList } from \"./components/InboxNotificationList\";\nexport type { ThreadProps } from \"./components/Thread\";\nexport { Thread } from \"./components/Thread\";\nexport { LiveblocksUiConfig } from \"./config\";\nexport * as Icon from \"./icon\";\nexport type {\n CommentOverrides,\n ComposerOverrides,\n GlobalOverrides,\n InboxNotificationOverrides,\n LocalizationOverrides,\n Overrides,\n ThreadOverrides,\n} from \"./overrides\";\nexport { useOverrides } from \"./overrides\";\nexport type {\n AiComposerSubmitMessage,\n ComposerSubmitComment,\n} from \"./primitives\";\nexport type {\n CommentAttachmentArgs,\n ComposerBodyMark,\n ComposerBodyMarks,\n} from \"./types\";\n"],"names":["detectDupes","PKG_NAME","PKG_VERSION","PKG_FORMAT"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIAA,gBAAY,CAAAC,gBAAA,EAAUC,qBAAaC,kBAAU,CAAA;;;;;;;;;;;;;;;;;;;;;"}
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,25 @@ 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
+ */
821
+ max?: number;
822
+ /**
823
+ * Override the component's strings.
824
+ */
825
+ overrides?: Partial<GlobalOverrides>;
826
+ }
827
+ /**
828
+ * Displays a stack of avatars for the users currently present in the room.
829
+ */
830
+ declare const AvatarStack: react.ForwardRefExoticComponent<AvatarStackProps & react.RefAttributes<HTMLDivElement>>;
831
+
812
832
  interface ComposerEditorMentionProps {
813
833
  /**
814
834
  * Whether the mention is selected.
@@ -1122,6 +1142,198 @@ declare const Comment: react.ForwardRefExoticComponent<CommentProps & react.RefA
1122
1142
  DropdownItem: react.ForwardRefExoticComponent<CommentDropdownItemProps & react.RefAttributes<HTMLDivElement>>;
1123
1143
  };
1124
1144
 
1145
+ interface CommentPinProps extends ComponentPropsWithoutRef<"button"> {
1146
+ /**
1147
+ * The corner that points to the comment position.
1148
+ */
1149
+ corner?: "top-left" | "top-right" | "bottom-right" | "bottom-left";
1150
+ /**
1151
+ * The user ID to optionally display an avatar for.
1152
+ */
1153
+ userId?: string;
1154
+ }
1155
+ /**
1156
+ * Displays a comment pin that can be used as a trigger
1157
+ * for `FloatingComposer` and `FloatingThread`.
1158
+ */
1159
+ declare const CommentPin: react.ForwardRefExoticComponent<CommentPinProps & react.RefAttributes<HTMLButtonElement>>;
1160
+
1161
+ interface CursorProps extends ComponentPropsWithoutRef<"div"> {
1162
+ /**
1163
+ * A floating label to display next to the cursor.
1164
+ */
1165
+ label?: ReactNode;
1166
+ /**
1167
+ * The color of the cursor.
1168
+ */
1169
+ color?: string;
1170
+ }
1171
+ /**
1172
+ * Displays a multiplayer cursor.
1173
+ */
1174
+ declare const Cursor: react.ForwardRefExoticComponent<CursorProps & react.RefAttributes<HTMLDivElement>>;
1175
+
1176
+ interface CursorsProps extends ComponentPropsWithoutRef<"div"> {
1177
+ /**
1178
+ * The key used to store the cursors in users' Presence.
1179
+ * This can be used to have multiple `Cursors` in a single room.
1180
+ */
1181
+ presenceKey?: string;
1182
+ }
1183
+ /**
1184
+ * Displays multiplayer cursors.
1185
+ */
1186
+ declare const Cursors: react.ForwardRefExoticComponent<CursorsProps & react.RefAttributes<HTMLDivElement>>;
1187
+
1188
+ 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">> {
1189
+ /**
1190
+ * The element which opens the floating composer.
1191
+ */
1192
+ children: ReactNode;
1193
+ }
1194
+ /**
1195
+ * Displays a floating composer attached to a trigger element.
1196
+ */
1197
+ declare const FloatingComposer: <TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM>(props: FloatingComposerProps<TM, CM> & RefAttributes<HTMLFormElement>) => JSX.Element;
1198
+
1199
+ interface ThreadProps<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> extends ComponentPropsWithoutRef<"div"> {
1200
+ /**
1201
+ * The thread to display.
1202
+ */
1203
+ thread: ThreadData<TM, CM>;
1204
+ /**
1205
+ * How to show or hide the composer to reply to the thread.
1206
+ */
1207
+ showComposer?: boolean | "collapsed";
1208
+ /**
1209
+ * Whether to show the action to resolve the thread.
1210
+ */
1211
+ showResolveAction?: boolean;
1212
+ /**
1213
+ * How to show or hide the actions.
1214
+ */
1215
+ showActions?: CommentProps["showActions"];
1216
+ /**
1217
+ * Whether to show reactions.
1218
+ */
1219
+ showReactions?: CommentProps["showReactions"];
1220
+ /**
1221
+ * Whether to show the composer's formatting controls.
1222
+ */
1223
+ showComposerFormattingControls?: ComposerProps["showFormattingControls"];
1224
+ /**
1225
+ * Add (or change) items to display in a comment's dropdown.
1226
+ */
1227
+ commentDropdownItems?: ReactNode | ((props: PropsWithChildren<{
1228
+ comment: CommentData;
1229
+ }>) => ReactNode);
1230
+ /**
1231
+ * The maximum number of comments to show.
1232
+ *
1233
+ * The first and last comments are always shown and by default if some comments
1234
+ * are hidden, only the first comment will be shown before the "show more" button
1235
+ * and after it will be shown all the newest comments to fit the limit set.
1236
+ *
1237
+ * It's possible to customize this by setting `maxVisibleComments` to an object:
1238
+ *
1239
+ * @example
1240
+ * // Only show the last comment, and all the older ones to fit the limit.
1241
+ * <Thread maxVisibleComments={{ max: 5, show: "oldest" }} />
1242
+ *
1243
+ * @example
1244
+ * // Show as many old comments as new ones to fit the limit.
1245
+ * <Thread maxVisibleComments={{ max: 5, show: "both" }} />
1246
+ */
1247
+ maxVisibleComments?: number | {
1248
+ max: number;
1249
+ show: "oldest" | "both" | "newest";
1250
+ };
1251
+ /**
1252
+ * Whether to blur the composer editor when the composer is submitted.
1253
+ */
1254
+ blurComposerOnSubmit?: ComposerProps["blurOnSubmit"];
1255
+ /**
1256
+ * Whether to indent the comments' content.
1257
+ */
1258
+ indentCommentContent?: CommentProps["indentContent"];
1259
+ /**
1260
+ * Whether to show deleted comments.
1261
+ */
1262
+ showDeletedComments?: CommentProps["showDeleted"];
1263
+ /**
1264
+ * Whether to show attachments.
1265
+ */
1266
+ showAttachments?: boolean;
1267
+ /**
1268
+ * The event handler called when changing the resolved status.
1269
+ */
1270
+ onResolvedChange?: (resolved: boolean) => void;
1271
+ /**
1272
+ * The event handler called when a comment is edited.
1273
+ */
1274
+ onCommentEdit?: CommentProps["onCommentEdit"];
1275
+ /**
1276
+ * The event handler called when a comment is deleted.
1277
+ */
1278
+ onCommentDelete?: CommentProps["onCommentDelete"];
1279
+ /**
1280
+ * The event handler called when the thread is deleted.
1281
+ * A thread is deleted when all its comments are deleted.
1282
+ */
1283
+ onThreadDelete?: (thread: ThreadData<TM, CM>) => void;
1284
+ /**
1285
+ * The event handler called when clicking on a comment's author.
1286
+ */
1287
+ onAuthorClick?: CommentProps["onAuthorClick"];
1288
+ /**
1289
+ * The event handler called when clicking on a mention.
1290
+ */
1291
+ onMentionClick?: CommentProps["onMentionClick"];
1292
+ /**
1293
+ * The event handler called when clicking on a comment's attachment.
1294
+ */
1295
+ onAttachmentClick?: CommentProps["onAttachmentClick"];
1296
+ /**
1297
+ * The event handler called when the composer is submitted.
1298
+ */
1299
+ onComposerSubmit?: ComposerProps["onComposerSubmit"];
1300
+ /**
1301
+ * Whether to focus the composer on mount.
1302
+ */
1303
+ autoFocus?: ComposerProps["autoFocus"];
1304
+ /**
1305
+ * Override the component's strings.
1306
+ */
1307
+ overrides?: Partial<GlobalOverrides & ThreadOverrides & CommentOverrides & ComposerOverrides>;
1308
+ /**
1309
+ * Override the component's components.
1310
+ */
1311
+ components?: Partial<GlobalComponents>;
1312
+ }
1313
+ /**
1314
+ * Displays a thread of comments, with a composer to reply
1315
+ * to it.
1316
+ *
1317
+ * @example
1318
+ * <>
1319
+ * {threads.map((thread) => (
1320
+ * <Thread key={thread.id} thread={thread} />
1321
+ * ))}
1322
+ * </>
1323
+ */
1324
+ declare const Thread: <TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM>(props: ThreadProps<TM, CM> & RefAttributes<HTMLDivElement>) => JSX.Element;
1325
+
1326
+ 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">> {
1327
+ /**
1328
+ * The element which opens the floating thread.
1329
+ */
1330
+ children: ReactNode;
1331
+ }
1332
+ /**
1333
+ * Displays a floating thread attached to a trigger element.
1334
+ */
1335
+ declare const FloatingThread: <TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM>(props: FloatingThreadProps<TM, CM> & RefAttributes<HTMLDivElement>) => JSX.Element;
1336
+
1125
1337
  interface HistoryVersionSummaryProps extends ComponentPropsWithoutRef<"button"> {
1126
1338
  version: HistoryVersion;
1127
1339
  selected?: boolean;
@@ -1317,129 +1529,6 @@ interface InboxNotificationListProps extends ComponentPropsWithoutRef<"ol"> {
1317
1529
  */
1318
1530
  declare const InboxNotificationList: react.ForwardRefExoticComponent<InboxNotificationListProps & react.RefAttributes<HTMLOListElement>>;
1319
1531
 
1320
- interface ThreadProps<TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM> extends ComponentPropsWithoutRef<"div"> {
1321
- /**
1322
- * The thread to display.
1323
- */
1324
- thread: ThreadData<TM, CM>;
1325
- /**
1326
- * How to show or hide the composer to reply to the thread.
1327
- */
1328
- showComposer?: boolean | "collapsed";
1329
- /**
1330
- * Whether to show the action to resolve the thread.
1331
- */
1332
- showResolveAction?: boolean;
1333
- /**
1334
- * How to show or hide the actions.
1335
- */
1336
- showActions?: CommentProps["showActions"];
1337
- /**
1338
- * Whether to show reactions.
1339
- */
1340
- showReactions?: CommentProps["showReactions"];
1341
- /**
1342
- * Whether to show the composer's formatting controls.
1343
- */
1344
- showComposerFormattingControls?: ComposerProps["showFormattingControls"];
1345
- /**
1346
- * Add (or change) items to display in a comment's dropdown.
1347
- */
1348
- commentDropdownItems?: ReactNode | ((props: PropsWithChildren<{
1349
- comment: CommentData;
1350
- }>) => ReactNode);
1351
- /**
1352
- * The maximum number of comments to show.
1353
- *
1354
- * The first and last comments are always shown and by default if some comments
1355
- * are hidden, only the first comment will be shown before the "show more" button
1356
- * and after it will be shown all the newest comments to fit the limit set.
1357
- *
1358
- * It's possible to customize this by setting `maxVisibleComments` to an object:
1359
- *
1360
- * @example
1361
- * // Only show the last comment, and all the older ones to fit the limit.
1362
- * <Thread maxVisibleComments={{ max: 5, show: "oldest" }} />
1363
- *
1364
- * @example
1365
- * // Show as many old comments as new ones to fit the limit.
1366
- * <Thread maxVisibleComments={{ max: 5, show: "both" }} />
1367
- */
1368
- maxVisibleComments?: number | {
1369
- max: number;
1370
- show: "oldest" | "both" | "newest";
1371
- };
1372
- /**
1373
- * Whether to blur the composer editor when the composer is submitted.
1374
- */
1375
- blurComposerOnSubmit?: ComposerProps["blurOnSubmit"];
1376
- /**
1377
- * Whether to indent the comments' content.
1378
- */
1379
- indentCommentContent?: CommentProps["indentContent"];
1380
- /**
1381
- * Whether to show deleted comments.
1382
- */
1383
- showDeletedComments?: CommentProps["showDeleted"];
1384
- /**
1385
- * Whether to show attachments.
1386
- */
1387
- showAttachments?: boolean;
1388
- /**
1389
- * The event handler called when changing the resolved status.
1390
- */
1391
- onResolvedChange?: (resolved: boolean) => void;
1392
- /**
1393
- * The event handler called when a comment is edited.
1394
- */
1395
- onCommentEdit?: CommentProps["onCommentEdit"];
1396
- /**
1397
- * The event handler called when a comment is deleted.
1398
- */
1399
- onCommentDelete?: CommentProps["onCommentDelete"];
1400
- /**
1401
- * The event handler called when the thread is deleted.
1402
- * A thread is deleted when all its comments are deleted.
1403
- */
1404
- onThreadDelete?: (thread: ThreadData<TM, CM>) => void;
1405
- /**
1406
- * The event handler called when clicking on a comment's author.
1407
- */
1408
- onAuthorClick?: CommentProps["onAuthorClick"];
1409
- /**
1410
- * The event handler called when clicking on a mention.
1411
- */
1412
- onMentionClick?: CommentProps["onMentionClick"];
1413
- /**
1414
- * The event handler called when clicking on a comment's attachment.
1415
- */
1416
- onAttachmentClick?: CommentProps["onAttachmentClick"];
1417
- /**
1418
- * The event handler called when the composer is submitted.
1419
- */
1420
- onComposerSubmit?: ComposerProps["onComposerSubmit"];
1421
- /**
1422
- * Override the component's strings.
1423
- */
1424
- overrides?: Partial<GlobalOverrides & ThreadOverrides & CommentOverrides & ComposerOverrides>;
1425
- /**
1426
- * Override the component's components.
1427
- */
1428
- components?: Partial<GlobalComponents>;
1429
- }
1430
- /**
1431
- * Displays a thread of comments, with a composer to reply
1432
- * to it.
1433
- *
1434
- * @example
1435
- * <>
1436
- * {threads.map((thread) => (
1437
- * <Thread key={thread.id} thread={thread} />
1438
- * ))}
1439
- * </>
1440
- */
1441
- declare const Thread: <TM extends BaseMetadata = DTM, CM extends BaseMetadata = DCM>(props: ThreadProps<TM, CM> & RefAttributes<HTMLDivElement>) => JSX.Element;
1442
-
1443
1532
  type LiveblocksUiConfigProps = PropsWithChildren<{
1444
1533
  /**
1445
1534
  * Override the components' strings.
@@ -1639,4 +1728,4 @@ declare namespace icon {
1639
1728
  };
1640
1729
  }
1641
1730
 
1642
- export { AiChat, AiChatComponents, AiChatComponentsEmptyProps, AiChatComponentsLoadingProps, AiChatProps, AiComposerSubmitMessage, AiTool, AiToolIconProps, AiToolProps, Comment, CommentAttachmentArgs, 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 };
1731
+ export { AiChat, AiChatComponents, AiChatComponentsEmptyProps, AiChatComponentsLoadingProps, AiChatProps, AiComposerSubmitMessage, AiTool, AiToolIconProps, AiToolProps, AvatarStack, AvatarStackProps, Comment, CommentAttachmentArgs, 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 };