@liveblocks/react-ui 3.15.0-feeds2 → 3.15.0-rc1

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 (148) hide show
  1. package/dist/_private/index.cjs +3 -5
  2. package/dist/_private/index.cjs.map +1 -1
  3. package/dist/_private/index.d.cts +10 -4
  4. package/dist/_private/index.d.ts +10 -4
  5. package/dist/_private/index.js +2 -2
  6. package/dist/components/AiChat.cjs +10 -2
  7. package/dist/components/AiChat.cjs.map +1 -1
  8. package/dist/components/AiChat.js +10 -2
  9. package/dist/components/AiChat.js.map +1 -1
  10. package/dist/components/AvatarStack.cjs +117 -0
  11. package/dist/components/AvatarStack.cjs.map +1 -0
  12. package/dist/components/AvatarStack.js +115 -0
  13. package/dist/components/AvatarStack.js.map +1 -0
  14. package/dist/components/Comment.cjs +259 -250
  15. package/dist/components/Comment.cjs.map +1 -1
  16. package/dist/components/Comment.js +264 -236
  17. package/dist/components/Comment.js.map +1 -1
  18. package/dist/components/CommentPin.cjs +36 -0
  19. package/dist/components/CommentPin.cjs.map +1 -0
  20. package/dist/components/CommentPin.js +34 -0
  21. package/dist/components/CommentPin.js.map +1 -0
  22. package/dist/components/Composer.cjs +2 -4
  23. package/dist/components/Composer.cjs.map +1 -1
  24. package/dist/components/Composer.js +3 -5
  25. package/dist/components/Composer.js.map +1 -1
  26. package/dist/components/Cursor.cjs +40 -0
  27. package/dist/components/Cursor.cjs.map +1 -0
  28. package/dist/components/Cursor.js +38 -0
  29. package/dist/components/Cursor.js.map +1 -0
  30. package/dist/components/Cursors.cjs +256 -0
  31. package/dist/components/Cursors.cjs.map +1 -0
  32. package/dist/components/Cursors.js +254 -0
  33. package/dist/components/Cursors.js.map +1 -0
  34. package/dist/components/FloatingComposer.cjs +82 -0
  35. package/dist/components/FloatingComposer.cjs.map +1 -0
  36. package/dist/components/FloatingComposer.js +80 -0
  37. package/dist/components/FloatingComposer.js.map +1 -0
  38. package/dist/components/FloatingThread.cjs +82 -0
  39. package/dist/components/FloatingThread.cjs.map +1 -0
  40. package/dist/components/FloatingThread.js +80 -0
  41. package/dist/components/FloatingThread.js.map +1 -0
  42. package/dist/components/InboxNotification.cjs +4 -6
  43. package/dist/components/InboxNotification.cjs.map +1 -1
  44. package/dist/components/InboxNotification.js +5 -7
  45. package/dist/components/InboxNotification.js.map +1 -1
  46. package/dist/components/Thread.cjs +61 -51
  47. package/dist/components/Thread.cjs.map +1 -1
  48. package/dist/components/Thread.js +66 -37
  49. package/dist/components/Thread.js.map +1 -1
  50. package/dist/components/internal/AiComposer.cjs +1 -2
  51. package/dist/components/internal/AiComposer.cjs.map +1 -1
  52. package/dist/components/internal/AiComposer.js +1 -2
  53. package/dist/components/internal/AiComposer.js.map +1 -1
  54. package/dist/components/internal/Avatar.cjs +10 -13
  55. package/dist/components/internal/Avatar.cjs.map +1 -1
  56. package/dist/components/internal/Avatar.js +11 -14
  57. package/dist/components/internal/Avatar.js.map +1 -1
  58. package/dist/components/internal/CodeBlock.cjs +1 -2
  59. package/dist/components/internal/CodeBlock.cjs.map +1 -1
  60. package/dist/components/internal/CodeBlock.js +1 -2
  61. package/dist/components/internal/CodeBlock.js.map +1 -1
  62. package/dist/components/internal/Dropdown.cjs +7 -28
  63. package/dist/components/internal/Dropdown.cjs.map +1 -1
  64. package/dist/components/internal/Dropdown.js +7 -7
  65. package/dist/components/internal/Dropdown.js.map +1 -1
  66. package/dist/components/internal/EmojiPicker.cjs +6 -27
  67. package/dist/components/internal/EmojiPicker.cjs.map +1 -1
  68. package/dist/components/internal/EmojiPicker.js +6 -6
  69. package/dist/components/internal/EmojiPicker.js.map +1 -1
  70. package/dist/components/internal/List.cjs +2 -2
  71. package/dist/components/internal/List.cjs.map +1 -1
  72. package/dist/components/internal/List.js +2 -2
  73. package/dist/components/internal/List.js.map +1 -1
  74. package/dist/components/internal/Tooltip.cjs +7 -28
  75. package/dist/components/internal/Tooltip.cjs.map +1 -1
  76. package/dist/components/internal/Tooltip.js +7 -7
  77. package/dist/components/internal/Tooltip.js.map +1 -1
  78. package/dist/index.cjs +12 -0
  79. package/dist/index.cjs.map +1 -1
  80. package/dist/index.d.cts +298 -130
  81. package/dist/index.d.ts +298 -130
  82. package/dist/index.js +6 -0
  83. package/dist/index.js.map +1 -1
  84. package/dist/primitives/AiComposer/index.cjs +5 -4
  85. package/dist/primitives/AiComposer/index.cjs.map +1 -1
  86. package/dist/primitives/AiComposer/index.js +5 -4
  87. package/dist/primitives/AiComposer/index.js.map +1 -1
  88. package/dist/primitives/AiMessage/index.cjs +2 -2
  89. package/dist/primitives/AiMessage/index.cjs.map +1 -1
  90. package/dist/primitives/AiMessage/index.js +2 -2
  91. package/dist/primitives/AiMessage/index.js.map +1 -1
  92. package/dist/primitives/Collapsible/index.cjs +4 -4
  93. package/dist/primitives/Collapsible/index.cjs.map +1 -1
  94. package/dist/primitives/Collapsible/index.js +4 -4
  95. package/dist/primitives/Collapsible/index.js.map +1 -1
  96. package/dist/primitives/Comment/index.cjs +4 -4
  97. package/dist/primitives/Comment/index.cjs.map +1 -1
  98. package/dist/primitives/Comment/index.js +4 -4
  99. package/dist/primitives/Comment/index.js.map +1 -1
  100. package/dist/primitives/Composer/index.cjs +23 -35
  101. package/dist/primitives/Composer/index.cjs.map +1 -1
  102. package/dist/primitives/Composer/index.js +23 -16
  103. package/dist/primitives/Composer/index.js.map +1 -1
  104. package/dist/primitives/Duration.cjs +2 -2
  105. package/dist/primitives/Duration.cjs.map +1 -1
  106. package/dist/primitives/Duration.js +2 -2
  107. package/dist/primitives/Duration.js.map +1 -1
  108. package/dist/primitives/FileSize.cjs +2 -2
  109. package/dist/primitives/FileSize.cjs.map +1 -1
  110. package/dist/primitives/FileSize.js +2 -2
  111. package/dist/primitives/FileSize.js.map +1 -1
  112. package/dist/primitives/Markdown.cjs +2 -2
  113. package/dist/primitives/Markdown.cjs.map +1 -1
  114. package/dist/primitives/Markdown.js +2 -2
  115. package/dist/primitives/Markdown.js.map +1 -1
  116. package/dist/primitives/Timestamp.cjs +2 -2
  117. package/dist/primitives/Timestamp.cjs.map +1 -1
  118. package/dist/primitives/Timestamp.js +2 -2
  119. package/dist/primitives/Timestamp.js.map +1 -1
  120. package/dist/utils/Portal.cjs +2 -2
  121. package/dist/utils/Portal.cjs.map +1 -1
  122. package/dist/utils/Portal.js +2 -2
  123. package/dist/utils/Portal.js.map +1 -1
  124. package/dist/utils/animation-loop.cjs +44 -0
  125. package/dist/utils/animation-loop.cjs.map +1 -0
  126. package/dist/utils/animation-loop.js +42 -0
  127. package/dist/utils/animation-loop.js.map +1 -0
  128. package/dist/utils/use-pre-resolve-user.cjs +18 -0
  129. package/dist/utils/use-pre-resolve-user.cjs.map +1 -0
  130. package/dist/utils/use-pre-resolve-user.js +16 -0
  131. package/dist/utils/use-pre-resolve-user.js.map +1 -0
  132. package/dist/utils/use-stable-component.cjs +32 -0
  133. package/dist/utils/use-stable-component.cjs.map +1 -0
  134. package/dist/utils/use-stable-component.js +30 -0
  135. package/dist/utils/use-stable-component.js.map +1 -0
  136. package/dist/version.cjs +1 -1
  137. package/dist/version.cjs.map +1 -1
  138. package/dist/version.js +1 -1
  139. package/dist/version.js.map +1 -1
  140. package/package.json +6 -10
  141. package/src/styles/dark/index.css +1 -1
  142. package/src/styles/index.css +252 -4
  143. package/styles/dark/attributes.css +1 -1
  144. package/styles/dark/attributes.css.map +1 -1
  145. package/styles/dark/media-query.css +1 -1
  146. package/styles/dark/media-query.css.map +1 -1
  147. package/styles.css +1 -1
  148. package/styles.css.map +1 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var core = require('@liveblocks/core');
5
- var reactSlot = require('@radix-ui/react-slot');
5
+ var radixUi = require('radix-ui');
6
6
  var react = require('react');
7
7
 
8
8
  const COMMENT_MENTION_NAME = "CommentMention";
@@ -10,13 +10,13 @@ const COMMENT_BODY_NAME = "CommentBody";
10
10
  const COMMENT_LINK_NAME = "CommentLink";
11
11
  const CommentMention = react.forwardRef(
12
12
  ({ children, asChild, ...props }, forwardedRef) => {
13
- const Component = asChild ? reactSlot.Slot : "span";
13
+ const Component = asChild ? radixUi.Slot.Slot : "span";
14
14
  return /* @__PURE__ */ jsxRuntime.jsx(Component, { ...props, ref: forwardedRef, children });
15
15
  }
16
16
  );
17
17
  const CommentLink = react.forwardRef(
18
18
  ({ children, asChild, ...props }, forwardedRef) => {
19
- const Component = asChild ? reactSlot.Slot : "a";
19
+ const Component = asChild ? radixUi.Slot.Slot : "a";
20
20
  return /* @__PURE__ */ jsxRuntime.jsx(
21
21
  Component,
22
22
  {
@@ -42,7 +42,7 @@ const defaultBodyComponents = {
42
42
  };
43
43
  const CommentBody = react.forwardRef(
44
44
  ({ body, components, style, asChild, ...props }, forwardedRef) => {
45
- const Component = asChild ? reactSlot.Slot : "div";
45
+ const Component = asChild ? radixUi.Slot.Slot : "div";
46
46
  const { Mention, Link } = react.useMemo(
47
47
  () => ({ ...defaultBodyComponents, ...components }),
48
48
  [components]
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/primitives/Comment/index.tsx"],"sourcesContent":["import {\n isCommentBodyLink,\n isCommentBodyMention,\n MENTION_CHARACTER,\n sanitizeUrl,\n} from \"@liveblocks/core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport type {\n CommentBodyComponents,\n CommentBodyProps,\n CommentLinkProps,\n CommentMentionProps,\n} from \"./types\";\n\nconst COMMENT_MENTION_NAME = \"CommentMention\";\nconst COMMENT_BODY_NAME = \"CommentBody\";\nconst COMMENT_LINK_NAME = \"CommentLink\";\n\n/**\n * Displays mentions within `Comment.Body`.\n *\n * @example\n * <Comment.Mention>@{mention.id}</Comment.Mention>\n */\nconst CommentMention = forwardRef<HTMLSpanElement, CommentMentionProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component {...props} ref={forwardedRef}>\n {children}\n </Component>\n );\n }\n);\n\n/**\n * Displays links within `Comment.Body`.\n *\n * @example\n * <Comment.Link href={href}>{children}</Comment.Link>\n */\nconst CommentLink = forwardRef<HTMLAnchorElement, CommentLinkProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Component>\n );\n }\n);\n\nconst defaultBodyComponents: CommentBodyComponents = {\n Mention: ({ mention }) => {\n return (\n <CommentMention>\n {MENTION_CHARACTER}\n {mention.id}\n </CommentMention>\n );\n },\n Link: ({ href, children }) => {\n return <CommentLink href={href}>{children}</CommentLink>;\n },\n};\n\n/**\n * Displays a comment body.\n *\n * @example\n * <Comment.Body body={comment.body} />\n */\nconst CommentBody = forwardRef<HTMLDivElement, CommentBodyProps>(\n ({ body, components, style, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const { Mention, Link } = useMemo(\n () => ({ ...defaultBodyComponents, ...components }),\n [components]\n );\n\n if (!body || !body?.content) {\n return null;\n }\n\n return (\n <Component\n {...props}\n style={{ whiteSpace: \"break-spaces\", ...style }}\n ref={forwardedRef}\n >\n {body.content.map((block, index) => {\n switch (block.type) {\n case \"paragraph\":\n return (\n <p key={index} style={{ minHeight: \"1lh\" }}>\n {block.children.map((inline, index) => {\n if (isCommentBodyMention(inline)) {\n const { type: _, ...mention } = inline;\n\n return mention.id ? (\n <Mention mention={mention} key={index} />\n ) : null;\n }\n\n if (isCommentBodyLink(inline)) {\n const href = sanitizeUrl(inline.url);\n\n // If the URL is invalid, its text/URL are used as plain text.\n if (href === null) {\n return (\n <span key={index}>{inline.text ?? inline.url}</span>\n );\n }\n\n return (\n <Link href={href} key={index}>\n {inline.text ?? inline.url}\n </Link>\n );\n }\n\n // <code><s><em><strong>text</strong></s></em></code>\n let children: ReactNode = inline.text;\n\n if (inline.bold) {\n children = <strong key={index}>{children}</strong>;\n }\n\n if (inline.italic) {\n children = <em key={index}>{children}</em>;\n }\n\n if (inline.strikethrough) {\n children = <s key={index}>{children}</s>;\n }\n\n if (inline.code) {\n children = <code key={index}>{children}</code>;\n }\n\n return <span key={index}>{children}</span>;\n })}\n </p>\n );\n default:\n return null;\n }\n })}\n </Component>\n );\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n CommentBody.displayName = COMMENT_BODY_NAME;\n CommentMention.displayName = COMMENT_MENTION_NAME;\n CommentLink.displayName = COMMENT_LINK_NAME;\n}\n\n// NOTE: Every export from this file will be available publicly as Comment.*\nexport { CommentBody as Body, CommentLink as Link, CommentMention as Mention };\n"],"names":["forwardRef","Slot","jsx","MENTION_CHARACTER","useMemo","index","isCommentBodyMention","isCommentBodyLink","sanitizeUrl"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/primitives/Comment/index.tsx"],"sourcesContent":["import {\n isCommentBodyLink,\n isCommentBodyMention,\n MENTION_CHARACTER,\n sanitizeUrl,\n} from \"@liveblocks/core\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport type {\n CommentBodyComponents,\n CommentBodyProps,\n CommentLinkProps,\n CommentMentionProps,\n} from \"./types\";\n\nconst COMMENT_MENTION_NAME = \"CommentMention\";\nconst COMMENT_BODY_NAME = \"CommentBody\";\nconst COMMENT_LINK_NAME = \"CommentLink\";\n\n/**\n * Displays mentions within `Comment.Body`.\n *\n * @example\n * <Comment.Mention>@{mention.id}</Comment.Mention>\n */\nconst CommentMention = forwardRef<HTMLSpanElement, CommentMentionProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? SlotPrimitive.Slot : \"span\";\n\n return (\n <Component {...props} ref={forwardedRef}>\n {children}\n </Component>\n );\n }\n);\n\n/**\n * Displays links within `Comment.Body`.\n *\n * @example\n * <Comment.Link href={href}>{children}</Comment.Link>\n */\nconst CommentLink = forwardRef<HTMLAnchorElement, CommentLinkProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? SlotPrimitive.Slot : \"a\";\n\n return (\n <Component\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Component>\n );\n }\n);\n\nconst defaultBodyComponents: CommentBodyComponents = {\n Mention: ({ mention }) => {\n return (\n <CommentMention>\n {MENTION_CHARACTER}\n {mention.id}\n </CommentMention>\n );\n },\n Link: ({ href, children }) => {\n return <CommentLink href={href}>{children}</CommentLink>;\n },\n};\n\n/**\n * Displays a comment body.\n *\n * @example\n * <Comment.Body body={comment.body} />\n */\nconst CommentBody = forwardRef<HTMLDivElement, CommentBodyProps>(\n ({ body, components, style, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? SlotPrimitive.Slot : \"div\";\n const { Mention, Link } = useMemo(\n () => ({ ...defaultBodyComponents, ...components }),\n [components]\n );\n\n if (!body || !body?.content) {\n return null;\n }\n\n return (\n <Component\n {...props}\n style={{ whiteSpace: \"break-spaces\", ...style }}\n ref={forwardedRef}\n >\n {body.content.map((block, index) => {\n switch (block.type) {\n case \"paragraph\":\n return (\n <p key={index} style={{ minHeight: \"1lh\" }}>\n {block.children.map((inline, index) => {\n if (isCommentBodyMention(inline)) {\n const { type: _, ...mention } = inline;\n\n return mention.id ? (\n <Mention mention={mention} key={index} />\n ) : null;\n }\n\n if (isCommentBodyLink(inline)) {\n const href = sanitizeUrl(inline.url);\n\n // If the URL is invalid, its text/URL are used as plain text.\n if (href === null) {\n return (\n <span key={index}>{inline.text ?? inline.url}</span>\n );\n }\n\n return (\n <Link href={href} key={index}>\n {inline.text ?? inline.url}\n </Link>\n );\n }\n\n // <code><s><em><strong>text</strong></s></em></code>\n let children: ReactNode = inline.text;\n\n if (inline.bold) {\n children = <strong key={index}>{children}</strong>;\n }\n\n if (inline.italic) {\n children = <em key={index}>{children}</em>;\n }\n\n if (inline.strikethrough) {\n children = <s key={index}>{children}</s>;\n }\n\n if (inline.code) {\n children = <code key={index}>{children}</code>;\n }\n\n return <span key={index}>{children}</span>;\n })}\n </p>\n );\n default:\n return null;\n }\n })}\n </Component>\n );\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n CommentBody.displayName = COMMENT_BODY_NAME;\n CommentMention.displayName = COMMENT_MENTION_NAME;\n CommentLink.displayName = COMMENT_LINK_NAME;\n}\n\n// NOTE: Every export from this file will be available publicly as Comment.*\nexport { CommentBody as Body, CommentLink as Link, CommentMention as Mention };\n"],"names":["forwardRef","SlotPrimitive","jsx","MENTION_CHARACTER","useMemo","index","isCommentBodyMention","isCommentBodyLink","sanitizeUrl"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { MENTION_CHARACTER, isCommentBodyMention, isCommentBodyLink, sanitizeUrl } from '@liveblocks/core';
3
- import { Slot } from '@radix-ui/react-slot';
3
+ import { Slot } from 'radix-ui';
4
4
  import { forwardRef, useMemo } from 'react';
5
5
 
6
6
  const COMMENT_MENTION_NAME = "CommentMention";
@@ -8,13 +8,13 @@ const COMMENT_BODY_NAME = "CommentBody";
8
8
  const COMMENT_LINK_NAME = "CommentLink";
9
9
  const CommentMention = forwardRef(
10
10
  ({ children, asChild, ...props }, forwardedRef) => {
11
- const Component = asChild ? Slot : "span";
11
+ const Component = asChild ? Slot.Slot : "span";
12
12
  return /* @__PURE__ */ jsx(Component, { ...props, ref: forwardedRef, children });
13
13
  }
14
14
  );
15
15
  const CommentLink = forwardRef(
16
16
  ({ children, asChild, ...props }, forwardedRef) => {
17
- const Component = asChild ? Slot : "a";
17
+ const Component = asChild ? Slot.Slot : "a";
18
18
  return /* @__PURE__ */ jsx(
19
19
  Component,
20
20
  {
@@ -40,7 +40,7 @@ const defaultBodyComponents = {
40
40
  };
41
41
  const CommentBody = forwardRef(
42
42
  ({ body, components, style, asChild, ...props }, forwardedRef) => {
43
- const Component = asChild ? Slot : "div";
43
+ const Component = asChild ? Slot.Slot : "div";
44
44
  const { Mention, Link } = useMemo(
45
45
  () => ({ ...defaultBodyComponents, ...components }),
46
46
  [components]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/primitives/Comment/index.tsx"],"sourcesContent":["import {\n isCommentBodyLink,\n isCommentBodyMention,\n MENTION_CHARACTER,\n sanitizeUrl,\n} from \"@liveblocks/core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport type {\n CommentBodyComponents,\n CommentBodyProps,\n CommentLinkProps,\n CommentMentionProps,\n} from \"./types\";\n\nconst COMMENT_MENTION_NAME = \"CommentMention\";\nconst COMMENT_BODY_NAME = \"CommentBody\";\nconst COMMENT_LINK_NAME = \"CommentLink\";\n\n/**\n * Displays mentions within `Comment.Body`.\n *\n * @example\n * <Comment.Mention>@{mention.id}</Comment.Mention>\n */\nconst CommentMention = forwardRef<HTMLSpanElement, CommentMentionProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component {...props} ref={forwardedRef}>\n {children}\n </Component>\n );\n }\n);\n\n/**\n * Displays links within `Comment.Body`.\n *\n * @example\n * <Comment.Link href={href}>{children}</Comment.Link>\n */\nconst CommentLink = forwardRef<HTMLAnchorElement, CommentLinkProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Component>\n );\n }\n);\n\nconst defaultBodyComponents: CommentBodyComponents = {\n Mention: ({ mention }) => {\n return (\n <CommentMention>\n {MENTION_CHARACTER}\n {mention.id}\n </CommentMention>\n );\n },\n Link: ({ href, children }) => {\n return <CommentLink href={href}>{children}</CommentLink>;\n },\n};\n\n/**\n * Displays a comment body.\n *\n * @example\n * <Comment.Body body={comment.body} />\n */\nconst CommentBody = forwardRef<HTMLDivElement, CommentBodyProps>(\n ({ body, components, style, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const { Mention, Link } = useMemo(\n () => ({ ...defaultBodyComponents, ...components }),\n [components]\n );\n\n if (!body || !body?.content) {\n return null;\n }\n\n return (\n <Component\n {...props}\n style={{ whiteSpace: \"break-spaces\", ...style }}\n ref={forwardedRef}\n >\n {body.content.map((block, index) => {\n switch (block.type) {\n case \"paragraph\":\n return (\n <p key={index} style={{ minHeight: \"1lh\" }}>\n {block.children.map((inline, index) => {\n if (isCommentBodyMention(inline)) {\n const { type: _, ...mention } = inline;\n\n return mention.id ? (\n <Mention mention={mention} key={index} />\n ) : null;\n }\n\n if (isCommentBodyLink(inline)) {\n const href = sanitizeUrl(inline.url);\n\n // If the URL is invalid, its text/URL are used as plain text.\n if (href === null) {\n return (\n <span key={index}>{inline.text ?? inline.url}</span>\n );\n }\n\n return (\n <Link href={href} key={index}>\n {inline.text ?? inline.url}\n </Link>\n );\n }\n\n // <code><s><em><strong>text</strong></s></em></code>\n let children: ReactNode = inline.text;\n\n if (inline.bold) {\n children = <strong key={index}>{children}</strong>;\n }\n\n if (inline.italic) {\n children = <em key={index}>{children}</em>;\n }\n\n if (inline.strikethrough) {\n children = <s key={index}>{children}</s>;\n }\n\n if (inline.code) {\n children = <code key={index}>{children}</code>;\n }\n\n return <span key={index}>{children}</span>;\n })}\n </p>\n );\n default:\n return null;\n }\n })}\n </Component>\n );\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n CommentBody.displayName = COMMENT_BODY_NAME;\n CommentMention.displayName = COMMENT_MENTION_NAME;\n CommentLink.displayName = COMMENT_LINK_NAME;\n}\n\n// NOTE: Every export from this file will be available publicly as Comment.*\nexport { CommentBody as Body, CommentLink as Link, CommentMention as Mention };\n"],"names":["index"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/primitives/Comment/index.tsx"],"sourcesContent":["import {\n isCommentBodyLink,\n isCommentBodyMention,\n MENTION_CHARACTER,\n sanitizeUrl,\n} from \"@liveblocks/core\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport type { ReactNode } from \"react\";\nimport { forwardRef, useMemo } from \"react\";\n\nimport type {\n CommentBodyComponents,\n CommentBodyProps,\n CommentLinkProps,\n CommentMentionProps,\n} from \"./types\";\n\nconst COMMENT_MENTION_NAME = \"CommentMention\";\nconst COMMENT_BODY_NAME = \"CommentBody\";\nconst COMMENT_LINK_NAME = \"CommentLink\";\n\n/**\n * Displays mentions within `Comment.Body`.\n *\n * @example\n * <Comment.Mention>@{mention.id}</Comment.Mention>\n */\nconst CommentMention = forwardRef<HTMLSpanElement, CommentMentionProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? SlotPrimitive.Slot : \"span\";\n\n return (\n <Component {...props} ref={forwardedRef}>\n {children}\n </Component>\n );\n }\n);\n\n/**\n * Displays links within `Comment.Body`.\n *\n * @example\n * <Comment.Link href={href}>{children}</Comment.Link>\n */\nconst CommentLink = forwardRef<HTMLAnchorElement, CommentLinkProps>(\n ({ children, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? SlotPrimitive.Slot : \"a\";\n\n return (\n <Component\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Component>\n );\n }\n);\n\nconst defaultBodyComponents: CommentBodyComponents = {\n Mention: ({ mention }) => {\n return (\n <CommentMention>\n {MENTION_CHARACTER}\n {mention.id}\n </CommentMention>\n );\n },\n Link: ({ href, children }) => {\n return <CommentLink href={href}>{children}</CommentLink>;\n },\n};\n\n/**\n * Displays a comment body.\n *\n * @example\n * <Comment.Body body={comment.body} />\n */\nconst CommentBody = forwardRef<HTMLDivElement, CommentBodyProps>(\n ({ body, components, style, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? SlotPrimitive.Slot : \"div\";\n const { Mention, Link } = useMemo(\n () => ({ ...defaultBodyComponents, ...components }),\n [components]\n );\n\n if (!body || !body?.content) {\n return null;\n }\n\n return (\n <Component\n {...props}\n style={{ whiteSpace: \"break-spaces\", ...style }}\n ref={forwardedRef}\n >\n {body.content.map((block, index) => {\n switch (block.type) {\n case \"paragraph\":\n return (\n <p key={index} style={{ minHeight: \"1lh\" }}>\n {block.children.map((inline, index) => {\n if (isCommentBodyMention(inline)) {\n const { type: _, ...mention } = inline;\n\n return mention.id ? (\n <Mention mention={mention} key={index} />\n ) : null;\n }\n\n if (isCommentBodyLink(inline)) {\n const href = sanitizeUrl(inline.url);\n\n // If the URL is invalid, its text/URL are used as plain text.\n if (href === null) {\n return (\n <span key={index}>{inline.text ?? inline.url}</span>\n );\n }\n\n return (\n <Link href={href} key={index}>\n {inline.text ?? inline.url}\n </Link>\n );\n }\n\n // <code><s><em><strong>text</strong></s></em></code>\n let children: ReactNode = inline.text;\n\n if (inline.bold) {\n children = <strong key={index}>{children}</strong>;\n }\n\n if (inline.italic) {\n children = <em key={index}>{children}</em>;\n }\n\n if (inline.strikethrough) {\n children = <s key={index}>{children}</s>;\n }\n\n if (inline.code) {\n children = <code key={index}>{children}</code>;\n }\n\n return <span key={index}>{children}</span>;\n })}\n </p>\n );\n default:\n return null;\n }\n })}\n </Component>\n );\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n CommentBody.displayName = COMMENT_BODY_NAME;\n CommentMention.displayName = COMMENT_MENTION_NAME;\n CommentLink.displayName = COMMENT_LINK_NAME;\n}\n\n// NOTE: Every export from this file will be available publicly as Comment.*\nexport { CommentBody as Body, CommentLink as Link, CommentMention as Mention };\n"],"names":["SlotPrimitive","index"],"mappings":"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"}
@@ -5,12 +5,12 @@ var jsxRuntime = require('react/jsx-runtime');
5
5
  var core = require('@liveblocks/core');
6
6
  var react$1 = require('@liveblocks/react');
7
7
  var _private = require('@liveblocks/react/_private');
8
- var reactSlot = require('@radix-ui/react-slot');
9
- var TogglePrimitive = require('@radix-ui/react-toggle');
8
+ var radixUi = require('radix-ui');
10
9
  var react = require('react');
11
10
  var slate = require('slate');
12
11
  var slateHistory = require('slate-history');
13
12
  var slateReact = require('slate-react');
13
+ var shared = require('../../shared.cjs');
14
14
  var isKey = require('../../utils/is-key.cjs');
15
15
  var Persist = require('../../utils/Persist.cjs');
16
16
  var Portal = require('../../utils/Portal.cjs');
@@ -18,6 +18,7 @@ var requestSubmit = require('../../utils/request-submit.cjs');
18
18
  var useIndex = require('../../utils/use-index.cjs');
19
19
  var useInitial = require('../../utils/use-initial.cjs');
20
20
  var useObservable = require('../../utils/use-observable.cjs');
21
+ var usePreResolveUser = require('../../utils/use-pre-resolve-user.cjs');
21
22
  var useRefs = require('../../utils/use-refs.cjs');
22
23
  var emptyClearFormatting = require('../slate/plugins/empty-clear-formatting.cjs');
23
24
  var normalize = require('../slate/plugins/normalize.cjs');
@@ -32,25 +33,6 @@ var mentions = require('./slate/plugins/mentions.cjs');
32
33
  var paste = require('./slate/plugins/paste.cjs');
33
34
  var utils = require('./utils.cjs');
34
35
 
35
- function _interopNamespaceDefault(e) {
36
- var n = Object.create(null);
37
- if (e) {
38
- Object.keys(e).forEach(function (k) {
39
- if (k !== 'default') {
40
- var d = Object.getOwnPropertyDescriptor(e, k);
41
- Object.defineProperty(n, k, d.get ? d : {
42
- enumerable: true,
43
- get: function () { return e[k]; }
44
- });
45
- }
46
- });
47
- }
48
- n.default = e;
49
- return Object.freeze(n);
50
- }
51
-
52
- var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(TogglePrimitive);
53
-
54
36
 
55
37
  const MENTION_SUGGESTIONS_POSITION = "top";
56
38
  const FLOATING_TOOLBAR_POSITION = "top";
@@ -308,7 +290,7 @@ const ComposerFloatingToolbar = react.forwardRef(({ children, onPointerDown, sty
308
290
  () => utils.getSideAndAlignFromFloatingPlacement(placement),
309
291
  [placement]
310
292
  );
311
- const Component = asChild ? reactSlot.Slot : "div";
293
+ const Component = asChild ? radixUi.Slot.Slot : "div";
312
294
  Persist.useAnimationPersist(ref);
313
295
  const handlePointerDown = react.useCallback(
314
296
  (event) => {
@@ -400,7 +382,7 @@ function ComposerEditorPlaceholder({
400
382
  }
401
383
  const ComposerMention = react.forwardRef(
402
384
  ({ children, asChild, ...props }, forwardedRef) => {
403
- const Component = asChild ? reactSlot.Slot : "span";
385
+ const Component = asChild ? radixUi.Slot.Slot : "span";
404
386
  const isSelected = slateReact.useSelected();
405
387
  return /* @__PURE__ */ jsxRuntime.jsx(
406
388
  Component,
@@ -415,7 +397,7 @@ const ComposerMention = react.forwardRef(
415
397
  );
416
398
  const ComposerLink = react.forwardRef(
417
399
  ({ children, asChild, ...props }, forwardedRef) => {
418
- const Component = asChild ? reactSlot.Slot : "a";
400
+ const Component = asChild ? radixUi.Slot.Slot : "a";
419
401
  return /* @__PURE__ */ jsxRuntime.jsx(
420
402
  Component,
421
403
  {
@@ -441,7 +423,7 @@ const ComposerSuggestions = react.forwardRef(({ children, style, asChild, ...pro
441
423
  () => utils.getSideAndAlignFromFloatingPlacement(placement),
442
424
  [placement]
443
425
  );
444
- const Component = asChild ? reactSlot.Slot : "div";
426
+ const Component = asChild ? radixUi.Slot.Slot : "div";
445
427
  Persist.useAnimationPersist(ref);
446
428
  return /* @__PURE__ */ jsxRuntime.jsx(
447
429
  Component,
@@ -465,7 +447,7 @@ const ComposerSuggestions = react.forwardRef(({ children, style, asChild, ...pro
465
447
  });
466
448
  const ComposerSuggestionsList = react.forwardRef(({ children, asChild, ...props }, forwardedRef) => {
467
449
  const { id } = contexts.useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_NAME);
468
- const Component = asChild ? reactSlot.Slot : "ul";
450
+ const Component = asChild ? radixUi.Slot.Slot : "ul";
469
451
  return /* @__PURE__ */ jsxRuntime.jsx(
470
452
  Component,
471
453
  {
@@ -491,7 +473,7 @@ const ComposerSuggestionsListItem = react.forwardRef(
491
473
  const ref = react.useRef(null);
492
474
  const mergedRefs = useRefs.useRefs(forwardedRef, ref);
493
475
  const { selectedValue, setSelectedValue, itemId, onItemSelect } = contexts.useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_ITEM_NAME);
494
- const Component = asChild ? reactSlot.Slot : "li";
476
+ const Component = asChild ? radixUi.Slot.Slot : "li";
495
477
  const isSelected = react.useMemo(
496
478
  () => selectedValue === value,
497
479
  [selectedValue, value]
@@ -585,6 +567,8 @@ const ComposerEditor = react.forwardRef(
585
567
  isDisabled: isComposerDisabled,
586
568
  isFocused
587
569
  } = contexts.useComposer();
570
+ const currentUserId = shared.useCurrentUserId();
571
+ const preResolveUser = usePreResolveUser.usePreResolveUser();
588
572
  const isDisabled = isComposerDisabled || disabled;
589
573
  const initialBody = useInitial.useInitial(defaultValue ?? emptyCommentBody);
590
574
  const initialEditorValue = react.useMemo(() => {
@@ -730,9 +714,12 @@ const ComposerEditor = react.forwardRef(
730
714
  onFocus?.(event);
731
715
  if (!event.isDefaultPrevented()) {
732
716
  setFocused(true);
717
+ if (currentUserId) {
718
+ preResolveUser(currentUserId);
719
+ }
733
720
  }
734
721
  },
735
- [onFocus, setFocused]
722
+ [onFocus, setFocused, currentUserId, preResolveUser]
736
723
  );
737
724
  const handleBlur = react.useCallback(
738
725
  (event) => {
@@ -811,6 +798,7 @@ const ComposerEditor = react.forwardRef(
811
798
  slateReact.Editable,
812
799
  {
813
800
  dir,
801
+ tabIndex: isDisabled ? -1 : 0,
814
802
  enterKeyHint: mentionDraft ? "enter" : "send",
815
803
  autoCapitalize: "sentences",
816
804
  "aria-label": "Composer editor",
@@ -885,7 +873,7 @@ const ComposerForm = react.forwardRef(
885
873
  roomId: _roomId,
886
874
  ...props
887
875
  }, forwardedRef) => {
888
- const Component = asChild ? reactSlot.Slot : "form";
876
+ const Component = asChild ? radixUi.Slot.Slot : "form";
889
877
  const [isEmpty$1, setEmpty] = react.useState(true);
890
878
  const [isSubmitting, setSubmitting] = react.useState(false);
891
879
  const [isFocused, setFocused] = react.useState(false);
@@ -1165,7 +1153,7 @@ const ComposerForm = react.forwardRef(
1165
1153
  style: { display: "none" }
1166
1154
  }
1167
1155
  ),
1168
- /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slottable, { children })
1156
+ /* @__PURE__ */ jsxRuntime.jsx(radixUi.Slot.Slottable, { children })
1169
1157
  ] })
1170
1158
  }
1171
1159
  )
@@ -1177,7 +1165,7 @@ const ComposerForm = react.forwardRef(
1177
1165
  );
1178
1166
  const ComposerSubmit = react.forwardRef(
1179
1167
  ({ children, disabled, asChild, ...props }, forwardedRef) => {
1180
- const Component = asChild ? reactSlot.Slot : "button";
1168
+ const Component = asChild ? radixUi.Slot.Slot : "button";
1181
1169
  const { canSubmit, isDisabled: isComposerDisabled } = contexts.useComposer();
1182
1170
  const isDisabled = isComposerDisabled || disabled || !canSubmit;
1183
1171
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1193,7 +1181,7 @@ const ComposerSubmit = react.forwardRef(
1193
1181
  }
1194
1182
  );
1195
1183
  const ComposerAttachFiles = react.forwardRef(({ children, onClick, disabled, asChild, ...props }, forwardedRef) => {
1196
- const Component = asChild ? reactSlot.Slot : "button";
1184
+ const Component = asChild ? radixUi.Slot.Slot : "button";
1197
1185
  const { hasMaxAttachments } = contexts.useComposerAttachmentsContext();
1198
1186
  const { isDisabled: isComposerDisabled, attachFiles } = contexts.useComposer();
1199
1187
  const isDisabled = isComposerDisabled || hasMaxAttachments || disabled;
@@ -1228,7 +1216,7 @@ const ComposerAttachmentsDropArea = react.forwardRef(
1228
1216
  asChild,
1229
1217
  ...props
1230
1218
  }, forwardedRef) => {
1231
- const Component = asChild ? reactSlot.Slot : "div";
1219
+ const Component = asChild ? radixUi.Slot.Slot : "div";
1232
1220
  const { isDisabled: isComposerDisabled } = contexts.useComposer();
1233
1221
  const isDisabled = isComposerDisabled || disabled;
1234
1222
  const [, dropAreaProps] = utils.useComposerAttachmentsDropArea({
@@ -1259,7 +1247,7 @@ const ComposerMarkToggle = react.forwardRef(
1259
1247
  asChild,
1260
1248
  ...props
1261
1249
  }, forwardedRef) => {
1262
- const Component = asChild ? reactSlot.Slot : "button";
1250
+ const Component = asChild ? radixUi.Slot.Slot : "button";
1263
1251
  const { marks, toggleMark } = contexts.useComposer();
1264
1252
  const handlePointerDown = react.useCallback(
1265
1253
  (event) => {
@@ -1282,7 +1270,7 @@ const ComposerMarkToggle = react.forwardRef(
1282
1270
  [mark, onClick, onValueChange, toggleMark]
1283
1271
  );
1284
1272
  return /* @__PURE__ */ jsxRuntime.jsx(
1285
- TogglePrimitive__namespace.Root,
1273
+ radixUi.Toggle.Root,
1286
1274
  {
1287
1275
  asChild: true,
1288
1276
  pressed: marks[mark],