@liveblocks/react-ui 2.15.0-debug1 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/_private/index.js +1 -0
  2. package/dist/_private/index.js.map +1 -1
  3. package/dist/_private/index.mjs +1 -0
  4. package/dist/_private/index.mjs.map +1 -1
  5. package/dist/components/Comment.js +7 -6
  6. package/dist/components/Comment.js.map +1 -1
  7. package/dist/components/Comment.mjs +4 -3
  8. package/dist/components/Comment.mjs.map +1 -1
  9. package/dist/components/Composer.js +4 -2
  10. package/dist/components/Composer.js.map +1 -1
  11. package/dist/components/Composer.mjs +8 -7
  12. package/dist/components/Composer.mjs.map +1 -1
  13. package/dist/components/HistoryVersionSummary.js +3 -10
  14. package/dist/components/HistoryVersionSummary.js.map +1 -1
  15. package/dist/components/HistoryVersionSummary.mjs +3 -10
  16. package/dist/components/HistoryVersionSummary.mjs.map +1 -1
  17. package/dist/components/HistoryVersionSummaryList.js +1 -0
  18. package/dist/components/HistoryVersionSummaryList.js.map +1 -1
  19. package/dist/components/HistoryVersionSummaryList.mjs +1 -0
  20. package/dist/components/HistoryVersionSummaryList.mjs.map +1 -1
  21. package/dist/components/InboxNotification.js +1 -0
  22. package/dist/components/InboxNotification.js.map +1 -1
  23. package/dist/components/InboxNotification.mjs +1 -0
  24. package/dist/components/InboxNotification.mjs.map +1 -1
  25. package/dist/components/InboxNotificationList.js +1 -0
  26. package/dist/components/InboxNotificationList.js.map +1 -1
  27. package/dist/components/InboxNotificationList.mjs +3 -2
  28. package/dist/components/InboxNotificationList.mjs.map +1 -1
  29. package/dist/components/Thread.js +1 -0
  30. package/dist/components/Thread.js.map +1 -1
  31. package/dist/components/Thread.mjs +1 -0
  32. package/dist/components/Thread.mjs.map +1 -1
  33. package/dist/components/internal/Attachment.js +3 -6
  34. package/dist/components/internal/Attachment.js.map +1 -1
  35. package/dist/components/internal/Attachment.mjs +5 -8
  36. package/dist/components/internal/Attachment.mjs.map +1 -1
  37. package/dist/components/internal/Avatar.js +1 -0
  38. package/dist/components/internal/Avatar.js.map +1 -1
  39. package/dist/components/internal/Avatar.mjs +1 -0
  40. package/dist/components/internal/Avatar.mjs.map +1 -1
  41. package/dist/components/internal/Button.js +1 -0
  42. package/dist/components/internal/Button.js.map +1 -1
  43. package/dist/components/internal/Button.mjs +1 -0
  44. package/dist/components/internal/Button.mjs.map +1 -1
  45. package/dist/components/internal/Dropdown.js +1 -0
  46. package/dist/components/internal/Dropdown.js.map +1 -1
  47. package/dist/components/internal/Dropdown.mjs +2 -1
  48. package/dist/components/internal/Dropdown.mjs.map +1 -1
  49. package/dist/components/internal/EmojiPicker.mjs +2 -2
  50. package/dist/components/internal/Room.js +1 -0
  51. package/dist/components/internal/Room.js.map +1 -1
  52. package/dist/components/internal/Room.mjs +1 -0
  53. package/dist/components/internal/Room.mjs.map +1 -1
  54. package/dist/components/internal/Tooltip.js +1 -0
  55. package/dist/components/internal/Tooltip.js.map +1 -1
  56. package/dist/components/internal/Tooltip.mjs +1 -0
  57. package/dist/components/internal/Tooltip.mjs.map +1 -1
  58. package/dist/components/internal/User.js +1 -0
  59. package/dist/components/internal/User.js.map +1 -1
  60. package/dist/components/internal/User.mjs +1 -0
  61. package/dist/components/internal/User.mjs.map +1 -1
  62. package/dist/components.js +1 -0
  63. package/dist/components.js.map +1 -1
  64. package/dist/components.mjs +1 -0
  65. package/dist/components.mjs.map +1 -1
  66. package/dist/config.js +1 -0
  67. package/dist/config.js.map +1 -1
  68. package/dist/config.mjs +1 -0
  69. package/dist/config.mjs.map +1 -1
  70. package/dist/icons/index.js +42 -0
  71. package/dist/icons/index.js.map +1 -0
  72. package/dist/icons/index.mjs +19 -0
  73. package/dist/icons/index.mjs.map +1 -0
  74. package/dist/overrides.js +1 -0
  75. package/dist/overrides.js.map +1 -1
  76. package/dist/overrides.mjs +1 -0
  77. package/dist/overrides.mjs.map +1 -1
  78. package/dist/primitives/Composer/index.js +14 -13
  79. package/dist/primitives/Composer/index.js.map +1 -1
  80. package/dist/primitives/Composer/index.mjs +10 -9
  81. package/dist/primitives/Composer/index.mjs.map +1 -1
  82. package/dist/primitives/Composer/utils.js +2 -1
  83. package/dist/primitives/Composer/utils.js.map +1 -1
  84. package/dist/primitives/Composer/utils.mjs +4 -3
  85. package/dist/primitives/Composer/utils.mjs.map +1 -1
  86. package/dist/primitives/EmojiPicker/index.js +1 -0
  87. package/dist/primitives/EmojiPicker/index.js.map +1 -1
  88. package/dist/primitives/EmojiPicker/index.mjs +3 -2
  89. package/dist/primitives/EmojiPicker/index.mjs.map +1 -1
  90. package/dist/primitives/FileSize.js +1 -0
  91. package/dist/primitives/FileSize.js.map +1 -1
  92. package/dist/primitives/FileSize.mjs +1 -0
  93. package/dist/primitives/FileSize.mjs.map +1 -1
  94. package/dist/primitives/Timestamp.js +1 -0
  95. package/dist/primitives/Timestamp.js.map +1 -1
  96. package/dist/primitives/Timestamp.mjs +1 -0
  97. package/dist/primitives/Timestamp.mjs.map +1 -1
  98. package/dist/slate/plugins/auto-links.mjs +1 -1
  99. package/dist/slate/plugins/custom-links.mjs +1 -1
  100. package/dist/slate/plugins/mentions.mjs +1 -1
  101. package/dist/utils/Persist.js +1 -0
  102. package/dist/utils/Persist.js.map +1 -1
  103. package/dist/utils/Persist.mjs +2 -1
  104. package/dist/utils/Persist.mjs.map +1 -1
  105. package/dist/utils/Portal.js +1 -0
  106. package/dist/utils/Portal.js.map +1 -1
  107. package/dist/utils/Portal.mjs +1 -0
  108. package/dist/utils/Portal.mjs.map +1 -1
  109. package/dist/utils/use-visible.js +22 -0
  110. package/dist/utils/use-visible.js.map +1 -1
  111. package/dist/utils/use-visible.mjs +23 -2
  112. package/dist/utils/use-visible.mjs.map +1 -1
  113. package/dist/version.js +2 -2
  114. package/dist/version.js.map +1 -1
  115. package/dist/version.mjs +2 -2
  116. package/dist/version.mjs.map +1 -1
  117. package/package.json +8 -21
@@ -1 +1 @@
1
- {"version":3,"file":"Room.js","sources":["../../../src/components/internal/Room.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRoomInfo } from \"@liveblocks/react\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport { classNames } from \"../../utils/class-names\";\n\nexport interface RoomProps extends ComponentProps<\"span\"> {\n roomId: string;\n}\n\nexport function Room({ roomId, className, ...props }: RoomProps) {\n const { info, isLoading } = useRoomInfo(roomId);\n const resolvedRoomName = useMemo(() => {\n return info?.name ?? roomId;\n }, [info?.name, roomId]);\n\n return (\n <span\n className={classNames(\"lb-name lb-room\", className)}\n data-loading={isLoading ? \"\" : undefined}\n {...props}\n >\n {isLoading ? null : resolvedRoomName}\n </span>\n );\n}\n"],"names":["useRoomInfo","useMemo","jsx","classNames"],"mappings":";;;;;;;AAYO,SAAS,IAAK,CAAA,EAAE,MAAQ,EAAA,SAAA,EAAA,GAAc,OAAoB,EAAA;AAC/D,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAIA,kBAAY,MAAM,CAAA,CAAA;AAC9C,EAAM,MAAA,gBAAA,GAAmBC,gBAAQ,MAAM;AACrC,IAAA,OAAO,MAAM,IAAQ,IAAA,MAAA,CAAA;AAAA,GACpB,EAAA,CAAC,IAAM,EAAA,IAAA,EAAM,MAAM,CAAC,CAAA,CAAA;AAEvB,EAAA,uBACGC,cAAA,CAAA,MAAA,EAAA;AAAA,IACC,SAAA,EAAWC,qBAAW,CAAA,iBAAA,EAAmB,SAAS,CAAA;AAAA,IAClD,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,IAC9B,GAAG,KAAA;AAAA,IAEH,sBAAY,IAAO,GAAA,gBAAA;AAAA,GACtB,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Room.js","sources":["../../../src/components/internal/Room.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRoomInfo } from \"@liveblocks/react\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport { classNames } from \"../../utils/class-names\";\n\nexport interface RoomProps extends ComponentProps<\"span\"> {\n roomId: string;\n}\n\nexport function Room({ roomId, className, ...props }: RoomProps) {\n const { info, isLoading } = useRoomInfo(roomId);\n const resolvedRoomName = useMemo(() => {\n return info?.name ?? roomId;\n }, [info?.name, roomId]);\n\n return (\n <span\n className={classNames(\"lb-name lb-room\", className)}\n data-loading={isLoading ? \"\" : undefined}\n {...props}\n >\n {isLoading ? null : resolvedRoomName}\n </span>\n );\n}\n"],"names":["useRoomInfo","useMemo","jsx","classNames"],"mappings":";;;;;;;AAAA,YAAA,CAAA;AAYO,SAAS,IAAK,CAAA,EAAE,MAAQ,EAAA,SAAA,EAAA,GAAc,OAAoB,EAAA;AAC/D,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAIA,kBAAY,MAAM,CAAA,CAAA;AAC9C,EAAM,MAAA,gBAAA,GAAmBC,gBAAQ,MAAM;AACrC,IAAA,OAAO,MAAM,IAAQ,IAAA,MAAA,CAAA;AAAA,GACpB,EAAA,CAAC,IAAM,EAAA,IAAA,EAAM,MAAM,CAAC,CAAA,CAAA;AAEvB,EAAA,uBACGC,cAAA,CAAA,MAAA,EAAA;AAAA,IACC,SAAA,EAAWC,qBAAW,CAAA,iBAAA,EAAmB,SAAS,CAAA;AAAA,IAClD,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,IAC9B,GAAG,KAAA;AAAA,IAEH,sBAAY,IAAO,GAAA,gBAAA;AAAA,GACtB,CAAA,CAAA;AAEJ;;;;"}
@@ -3,6 +3,7 @@ import { useRoomInfo } from '@liveblocks/react';
3
3
  import { useMemo } from 'react';
4
4
  import { classNames } from '../../utils/class-names.mjs';
5
5
 
6
+ "use client";
6
7
  function Room({ roomId, className, ...props }) {
7
8
  const { info, isLoading } = useRoomInfo(roomId);
8
9
  const resolvedRoomName = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Room.mjs","sources":["../../../src/components/internal/Room.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRoomInfo } from \"@liveblocks/react\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport { classNames } from \"../../utils/class-names\";\n\nexport interface RoomProps extends ComponentProps<\"span\"> {\n roomId: string;\n}\n\nexport function Room({ roomId, className, ...props }: RoomProps) {\n const { info, isLoading } = useRoomInfo(roomId);\n const resolvedRoomName = useMemo(() => {\n return info?.name ?? roomId;\n }, [info?.name, roomId]);\n\n return (\n <span\n className={classNames(\"lb-name lb-room\", className)}\n data-loading={isLoading ? \"\" : undefined}\n {...props}\n >\n {isLoading ? null : resolvedRoomName}\n </span>\n );\n}\n"],"names":[],"mappings":";;;;;AAYO,SAAS,IAAK,CAAA,EAAE,MAAQ,EAAA,SAAA,EAAA,GAAc,OAAoB,EAAA;AAC/D,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAI,YAAY,MAAM,CAAA,CAAA;AAC9C,EAAM,MAAA,gBAAA,GAAmB,QAAQ,MAAM;AACrC,IAAA,OAAO,MAAM,IAAQ,IAAA,MAAA,CAAA;AAAA,GACpB,EAAA,CAAC,IAAM,EAAA,IAAA,EAAM,MAAM,CAAC,CAAA,CAAA;AAEvB,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IACC,SAAA,EAAW,UAAW,CAAA,iBAAA,EAAmB,SAAS,CAAA;AAAA,IAClD,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,IAC9B,GAAG,KAAA;AAAA,IAEH,sBAAY,IAAO,GAAA,gBAAA;AAAA,GACtB,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Room.mjs","sources":["../../../src/components/internal/Room.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRoomInfo } from \"@liveblocks/react\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport { classNames } from \"../../utils/class-names\";\n\nexport interface RoomProps extends ComponentProps<\"span\"> {\n roomId: string;\n}\n\nexport function Room({ roomId, className, ...props }: RoomProps) {\n const { info, isLoading } = useRoomInfo(roomId);\n const resolvedRoomName = useMemo(() => {\n return info?.name ?? roomId;\n }, [info?.name, roomId]);\n\n return (\n <span\n className={classNames(\"lb-name lb-room\", className)}\n data-loading={isLoading ? \"\" : undefined}\n {...props}\n >\n {isLoading ? null : resolvedRoomName}\n </span>\n );\n}\n"],"names":[],"mappings":";;;;;AAAA,YAAA,CAAA;AAYO,SAAS,IAAK,CAAA,EAAE,MAAQ,EAAA,SAAA,EAAA,GAAc,OAAoB,EAAA;AAC/D,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAI,YAAY,MAAM,CAAA,CAAA;AAC9C,EAAM,MAAA,gBAAA,GAAmB,QAAQ,MAAM;AACrC,IAAA,OAAO,MAAM,IAAQ,IAAA,MAAA,CAAA;AAAA,GACpB,EAAA,CAAC,IAAM,EAAA,IAAA,EAAM,MAAM,CAAC,CAAA,CAAA;AAEvB,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IACC,SAAA,EAAW,UAAW,CAAA,iBAAA,EAAmB,SAAS,CAAA;AAAA,IAClD,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,IAC9B,GAAG,KAAA;AAAA,IAEH,sBAAY,IAAO,GAAA,gBAAA;AAAA,GACtB,CAAA,CAAA;AAEJ;;;;"}
@@ -27,6 +27,7 @@ function _interopNamespaceDefault(e) {
27
27
 
28
28
  var TooltipPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(TooltipPrimitive);
29
29
 
30
+ "use client";
30
31
  const KEYS = {
31
32
  alt: () => ({ title: "Alt", key: "\u2325" }),
32
33
  mod: () => isApple.isApple() ? { title: "Command", key: "\u2318" } : { title: "Ctrl", key: "\u2303" },
@@ -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 { classNames } from \"../../utils/class-names\";\nimport { isApple } from \"../../utils/is-apple\";\n\nconst KEYS = {\n alt: () => ({ title: \"Alt\", key: \"⌥\" }),\n mod: () =>\n isApple() ? { title: \"Command\", key: \"⌘\" } : { title: \"Ctrl\", key: \"⌃\" },\n shift: () => {\n return { title: \"Shift\", key: \"⇧\" };\n },\n enter: () => {\n return { title: \"Enter\", key: \"⏎\" };\n },\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?: ReactNode;\n}\n\nexport interface ShortcutTooltipKeyProps extends ComponentProps<\"abbr\"> {\n name: keyof typeof KEYS;\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={classNames(\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 return (\n <Tooltip\n content={\n <>\n {content}\n {shortcut && <kbd className=\"lb-tooltip-shortcut\">{shortcut}</kbd>}\n </>\n }\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Tooltip>\n );\n});\n\nexport function ShortcutTooltipKey({\n name,\n ...props\n}: 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":["isApple","forwardRef","useLiveblocksUIConfig","jsxs","TooltipPrimitive","jsx","classNames","FLOATING_ELEMENT_SIDE_OFFSET","FLOATING_ELEMENT_COLLISION_PADDING","Fragment","useMemo"],"mappings":"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"}
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 { classNames } from \"../../utils/class-names\";\nimport { isApple } from \"../../utils/is-apple\";\n\nconst KEYS = {\n alt: () => ({ title: \"Alt\", key: \"⌥\" }),\n mod: () =>\n isApple() ? { title: \"Command\", key: \"⌘\" } : { title: \"Ctrl\", key: \"⌃\" },\n shift: () => {\n return { title: \"Shift\", key: \"⇧\" };\n },\n enter: () => {\n return { title: \"Enter\", key: \"⏎\" };\n },\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?: ReactNode;\n}\n\nexport interface ShortcutTooltipKeyProps extends ComponentProps<\"abbr\"> {\n name: keyof typeof KEYS;\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={classNames(\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 return (\n <Tooltip\n content={\n <>\n {content}\n {shortcut && <kbd className=\"lb-tooltip-shortcut\">{shortcut}</kbd>}\n </>\n }\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Tooltip>\n );\n});\n\nexport function ShortcutTooltipKey({\n name,\n ...props\n}: 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":["isApple","forwardRef","useLiveblocksUIConfig","jsxs","TooltipPrimitive","jsx","classNames","FLOATING_ELEMENT_SIDE_OFFSET","FLOATING_ELEMENT_COLLISION_PADDING","Fragment","useMemo"],"mappings":"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"}
@@ -7,6 +7,7 @@ import { FLOATING_ELEMENT_SIDE_OFFSET, FLOATING_ELEMENT_COLLISION_PADDING } from
7
7
  import { classNames } from '../../utils/class-names.mjs';
8
8
  import { isApple } from '../../utils/is-apple.mjs';
9
9
 
10
+ "use client";
10
11
  const KEYS = {
11
12
  alt: () => ({ title: "Alt", key: "\u2325" }),
12
13
  mod: () => isApple() ? { title: "Command", key: "\u2318" } : { title: "Ctrl", key: "\u2303" },
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.mjs","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 { classNames } from \"../../utils/class-names\";\nimport { isApple } from \"../../utils/is-apple\";\n\nconst KEYS = {\n alt: () => ({ title: \"Alt\", key: \"⌥\" }),\n mod: () =>\n isApple() ? { title: \"Command\", key: \"⌘\" } : { title: \"Ctrl\", key: \"⌃\" },\n shift: () => {\n return { title: \"Shift\", key: \"⇧\" };\n },\n enter: () => {\n return { title: \"Enter\", key: \"⏎\" };\n },\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?: ReactNode;\n}\n\nexport interface ShortcutTooltipKeyProps extends ComponentProps<\"abbr\"> {\n name: keyof typeof KEYS;\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={classNames(\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 return (\n <Tooltip\n content={\n <>\n {content}\n {shortcut && <kbd className=\"lb-tooltip-shortcut\">{shortcut}</kbd>}\n </>\n }\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Tooltip>\n );\n});\n\nexport function ShortcutTooltipKey({\n name,\n ...props\n}: 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,MAAM,IAAO,GAAA;AAAA,EACX,KAAK,OAAO,EAAE,KAAO,EAAA,KAAA,EAAO,KAAK,QAAI,EAAA,CAAA;AAAA,EACrC,GAAK,EAAA,MACH,OAAQ,EAAA,GAAI,EAAE,KAAO,EAAA,SAAA,EAAW,GAAK,EAAA,QAAA,EAAQ,GAAA,EAAE,KAAO,EAAA,MAAA,EAAQ,KAAK,QAAI,EAAA;AAAA,EACzE,OAAO,MAAM;AACX,IAAA,OAAO,EAAE,KAAA,EAAO,OAAS,EAAA,GAAA,EAAK,QAAI,EAAA,CAAA;AAAA,GACpC;AAAA,EACA,OAAO,MAAM;AACX,IAAA,OAAO,EAAE,KAAA,EAAO,OAAS,EAAA,GAAA,EAAK,QAAI,EAAA,CAAA;AAAA,GACpC;AACF,CAAA,CAAA;AAiBO,MAAM,OAAU,GAAA,UAAA;AAAA,EACrB,CAAC,EAAE,QAAU,EAAA,OAAA,EAAS,WAAW,SAAc,EAAA,GAAA,KAAA,IAAS,YAAiB,KAAA;AACvE,IAAM,MAAA,EAAE,eAAgB,EAAA,GAAI,qBAAsB,EAAA,CAAA;AAElD,IACE,uBAAA,IAAA,CAAC,iBAAiB,IAAjB,EAAA;AAAA,MAAsB,uBAAuB,EAAA,IAAA;AAAA,MAC5C,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,iBAAiB,OAAjB,EAAA;AAAA,UAAyB,OAAO,EAAA,IAAA;AAAA,UAAC,GAAK,EAAA,YAAA;AAAA,UACpC,QAAA;AAAA,SACH,CAAA;AAAA,wBACA,GAAA,CAAC,iBAAiB,MAAjB,EAAA;AAAA,UAAwB,SAAW,EAAA,eAAA;AAAA,UAClC,QAAA,kBAAA,GAAA,CAAC,iBAAiB,OAAjB,EAAA;AAAA,YACC,SAAW,EAAA,UAAA;AAAA,cACT,8BAAA;AAAA,cACA,SAAa,IAAA,sBAAA;AAAA,cACb,SAAA;AAAA,aACF;AAAA,YACA,IAAK,EAAA,KAAA;AAAA,YACL,KAAM,EAAA,QAAA;AAAA,YACN,UAAY,EAAA,4BAAA;AAAA,YACZ,gBAAkB,EAAA,kCAAA;AAAA,YACjB,GAAG,KAAA;AAAA,YAEH,QAAA,EAAA,OAAA;AAAA,WACH,CAAA;AAAA,SACF,CAAA;AAAA,OAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF,EAAA;AAEa,MAAA,eAAA,GAAkB,WAG7B,CAAC,EAAE,UAAU,OAAS,EAAA,QAAA,EAAA,GAAa,KAAM,EAAA,EAAG,YAAiB,KAAA;AAC7D,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA;AAAA,IACC,OACE,kBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,MACG,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,QACA,4BAAa,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAU,EAAA,qBAAA;AAAA,UAAuB,QAAA,EAAA,QAAA;AAAA,SAAS,CAAA;AAAA,OAAA;AAAA,KAC9D,CAAA;AAAA,IAED,GAAG,KAAA;AAAA,IACJ,GAAK,EAAA,YAAA;AAAA,IAEJ,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC,EAAA;AAEM,SAAS,kBAAmB,CAAA;AAAA,EACjC,IAAA;AAAA,EACG,GAAA,KAAA;AACL,CAA4B,EAAA;AAC1B,EAAM,MAAA,EAAE,KAAO,EAAA,GAAA,EAAQ,GAAA,OAAA,CAAQ,MAAM,IAAA,CAAK,IAAQ,CAAA,IAAA,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAE3D,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IAAK,KAAA;AAAA,IAAe,GAAG,KAAA;AAAA,IACrB,QAAA,EAAA,GAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Tooltip.mjs","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 { classNames } from \"../../utils/class-names\";\nimport { isApple } from \"../../utils/is-apple\";\n\nconst KEYS = {\n alt: () => ({ title: \"Alt\", key: \"⌥\" }),\n mod: () =>\n isApple() ? { title: \"Command\", key: \"⌘\" } : { title: \"Ctrl\", key: \"⌃\" },\n shift: () => {\n return { title: \"Shift\", key: \"⇧\" };\n },\n enter: () => {\n return { title: \"Enter\", key: \"⏎\" };\n },\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?: ReactNode;\n}\n\nexport interface ShortcutTooltipKeyProps extends ComponentProps<\"abbr\"> {\n name: keyof typeof KEYS;\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={classNames(\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 return (\n <Tooltip\n content={\n <>\n {content}\n {shortcut && <kbd className=\"lb-tooltip-shortcut\">{shortcut}</kbd>}\n </>\n }\n {...props}\n ref={forwardedRef}\n >\n {children}\n </Tooltip>\n );\n});\n\nexport function ShortcutTooltipKey({\n name,\n ...props\n}: 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":";;;;;;;;;AAAA,YAAA,CAAA;AAcA,MAAM,IAAO,GAAA;AAAA,EACX,KAAK,OAAO,EAAE,KAAO,EAAA,KAAA,EAAO,KAAK,QAAI,EAAA,CAAA;AAAA,EACrC,GAAK,EAAA,MACH,OAAQ,EAAA,GAAI,EAAE,KAAO,EAAA,SAAA,EAAW,GAAK,EAAA,QAAA,EAAQ,GAAA,EAAE,KAAO,EAAA,MAAA,EAAQ,KAAK,QAAI,EAAA;AAAA,EACzE,OAAO,MAAM;AACX,IAAA,OAAO,EAAE,KAAA,EAAO,OAAS,EAAA,GAAA,EAAK,QAAI,EAAA,CAAA;AAAA,GACpC;AAAA,EACA,OAAO,MAAM;AACX,IAAA,OAAO,EAAE,KAAA,EAAO,OAAS,EAAA,GAAA,EAAK,QAAI,EAAA,CAAA;AAAA,GACpC;AACF,CAAA,CAAA;AAiBO,MAAM,OAAU,GAAA,UAAA;AAAA,EACrB,CAAC,EAAE,QAAU,EAAA,OAAA,EAAS,WAAW,SAAc,EAAA,GAAA,KAAA,IAAS,YAAiB,KAAA;AACvE,IAAM,MAAA,EAAE,eAAgB,EAAA,GAAI,qBAAsB,EAAA,CAAA;AAElD,IACE,uBAAA,IAAA,CAAC,iBAAiB,IAAjB,EAAA;AAAA,MAAsB,uBAAuB,EAAA,IAAA;AAAA,MAC5C,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,iBAAiB,OAAjB,EAAA;AAAA,UAAyB,OAAO,EAAA,IAAA;AAAA,UAAC,GAAK,EAAA,YAAA;AAAA,UACpC,QAAA;AAAA,SACH,CAAA;AAAA,wBACA,GAAA,CAAC,iBAAiB,MAAjB,EAAA;AAAA,UAAwB,SAAW,EAAA,eAAA;AAAA,UAClC,QAAA,kBAAA,GAAA,CAAC,iBAAiB,OAAjB,EAAA;AAAA,YACC,SAAW,EAAA,UAAA;AAAA,cACT,8BAAA;AAAA,cACA,SAAa,IAAA,sBAAA;AAAA,cACb,SAAA;AAAA,aACF;AAAA,YACA,IAAK,EAAA,KAAA;AAAA,YACL,KAAM,EAAA,QAAA;AAAA,YACN,UAAY,EAAA,4BAAA;AAAA,YACZ,gBAAkB,EAAA,kCAAA;AAAA,YACjB,GAAG,KAAA;AAAA,YAEH,QAAA,EAAA,OAAA;AAAA,WACH,CAAA;AAAA,SACF,CAAA;AAAA,OAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF,EAAA;AAEa,MAAA,eAAA,GAAkB,WAG7B,CAAC,EAAE,UAAU,OAAS,EAAA,QAAA,EAAA,GAAa,KAAM,EAAA,EAAG,YAAiB,KAAA;AAC7D,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA;AAAA,IACC,OACE,kBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,MACG,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,QACA,4BAAa,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAU,EAAA,qBAAA;AAAA,UAAuB,QAAA,EAAA,QAAA;AAAA,SAAS,CAAA;AAAA,OAAA;AAAA,KAC9D,CAAA;AAAA,IAED,GAAG,KAAA;AAAA,IACJ,GAAK,EAAA,YAAA;AAAA,IAEJ,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC,EAAA;AAEM,SAAS,kBAAmB,CAAA;AAAA,EACjC,IAAA;AAAA,EACG,GAAA,KAAA;AACL,CAA4B,EAAA;AAC1B,EAAM,MAAA,EAAE,KAAO,EAAA,GAAA,EAAQ,GAAA,OAAA,CAAQ,MAAM,IAAA,CAAK,IAAQ,CAAA,IAAA,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAE3D,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IAAK,KAAA;AAAA,IAAe,GAAG,KAAA;AAAA,IACrB,QAAA,EAAA,GAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;"}
@@ -7,6 +7,7 @@ var overrides = require('../../overrides.js');
7
7
  var shared = require('../../shared.js');
8
8
  var classNames = require('../../utils/class-names.js');
9
9
 
10
+ "use client";
10
11
  function User({ userId, replaceSelf, className, ...props }) {
11
12
  const currentId = shared.useCurrentUserId();
12
13
  const { user, isLoading } = react.useUser(userId);
@@ -1 +1 @@
1
- {"version":3,"file":"User.js","sources":["../../../src/components/internal/User.tsx"],"sourcesContent":["\"use client\";\n\nimport { useUser } from \"@liveblocks/react\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport { useOverrides } from \"../../overrides\";\nimport { useCurrentUserId } from \"../../shared\";\nimport { classNames } from \"../../utils/class-names\";\n\nexport interface UserProps extends ComponentProps<\"span\"> {\n /**\n * The user ID to display the user name for.\n */\n userId: string;\n\n /**\n * Whether to replace the user name with \"you\" ($.USER_SELF) for the current user.\n */\n replaceSelf?: boolean;\n}\n\nexport function User({ userId, replaceSelf, className, ...props }: UserProps) {\n const currentId = useCurrentUserId();\n const { user, isLoading } = useUser(userId);\n const $ = useOverrides();\n const resolvedUserName = useMemo(() => {\n return replaceSelf && currentId === userId\n ? $.USER_SELF\n : user?.name ?? $.USER_UNKNOWN;\n }, [replaceSelf, currentId, userId, $.USER_SELF, $.USER_UNKNOWN, user?.name]);\n\n return (\n <span\n className={classNames(\"lb-name lb-user\", className)}\n data-loading={isLoading ? \"\" : undefined}\n {...props}\n >\n {isLoading ? null : resolvedUserName}\n </span>\n );\n}\n"],"names":["useCurrentUserId","useUser","useOverrides","useMemo","jsx","classNames"],"mappings":";;;;;;;;;AAsBO,SAAS,KAAK,EAAE,MAAA,EAAQ,WAAa,EAAA,SAAA,EAAA,GAAc,OAAoB,EAAA;AAC5E,EAAA,MAAM,YAAYA,uBAAiB,EAAA,CAAA;AACnC,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAIC,cAAQ,MAAM,CAAA,CAAA;AAC1C,EAAA,MAAM,IAAIC,sBAAa,EAAA,CAAA;AACvB,EAAM,MAAA,gBAAA,GAAmBC,gBAAQ,MAAM;AACrC,IAAA,OAAO,eAAe,SAAc,KAAA,MAAA,GAChC,EAAE,SACF,GAAA,IAAA,EAAM,QAAQ,CAAE,CAAA,YAAA,CAAA;AAAA,GACtB,EAAG,CAAC,WAAA,EAAa,SAAW,EAAA,MAAA,EAAQ,CAAE,CAAA,SAAA,EAAW,CAAE,CAAA,YAAA,EAAc,IAAM,EAAA,IAAI,CAAC,CAAA,CAAA;AAE5E,EAAA,uBACGC,cAAA,CAAA,MAAA,EAAA;AAAA,IACC,SAAA,EAAWC,qBAAW,CAAA,iBAAA,EAAmB,SAAS,CAAA;AAAA,IAClD,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,IAC9B,GAAG,KAAA;AAAA,IAEH,sBAAY,IAAO,GAAA,gBAAA;AAAA,GACtB,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"User.js","sources":["../../../src/components/internal/User.tsx"],"sourcesContent":["\"use client\";\n\nimport { useUser } from \"@liveblocks/react\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport { useOverrides } from \"../../overrides\";\nimport { useCurrentUserId } from \"../../shared\";\nimport { classNames } from \"../../utils/class-names\";\n\nexport interface UserProps extends ComponentProps<\"span\"> {\n /**\n * The user ID to display the user name for.\n */\n userId: string;\n\n /**\n * Whether to replace the user name with \"you\" ($.USER_SELF) for the current user.\n */\n replaceSelf?: boolean;\n}\n\nexport function User({ userId, replaceSelf, className, ...props }: UserProps) {\n const currentId = useCurrentUserId();\n const { user, isLoading } = useUser(userId);\n const $ = useOverrides();\n const resolvedUserName = useMemo(() => {\n return replaceSelf && currentId === userId\n ? $.USER_SELF\n : user?.name ?? $.USER_UNKNOWN;\n }, [replaceSelf, currentId, userId, $.USER_SELF, $.USER_UNKNOWN, user?.name]);\n\n return (\n <span\n className={classNames(\"lb-name lb-user\", className)}\n data-loading={isLoading ? \"\" : undefined}\n {...props}\n >\n {isLoading ? null : resolvedUserName}\n </span>\n );\n}\n"],"names":["useCurrentUserId","useUser","useOverrides","useMemo","jsx","classNames"],"mappings":";;;;;;;;;AAAA,YAAA,CAAA;AAsBO,SAAS,KAAK,EAAE,MAAA,EAAQ,WAAa,EAAA,SAAA,EAAA,GAAc,OAAoB,EAAA;AAC5E,EAAA,MAAM,YAAYA,uBAAiB,EAAA,CAAA;AACnC,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAIC,cAAQ,MAAM,CAAA,CAAA;AAC1C,EAAA,MAAM,IAAIC,sBAAa,EAAA,CAAA;AACvB,EAAM,MAAA,gBAAA,GAAmBC,gBAAQ,MAAM;AACrC,IAAA,OAAO,eAAe,SAAc,KAAA,MAAA,GAChC,EAAE,SACF,GAAA,IAAA,EAAM,QAAQ,CAAE,CAAA,YAAA,CAAA;AAAA,GACtB,EAAG,CAAC,WAAA,EAAa,SAAW,EAAA,MAAA,EAAQ,CAAE,CAAA,SAAA,EAAW,CAAE,CAAA,YAAA,EAAc,IAAM,EAAA,IAAI,CAAC,CAAA,CAAA;AAE5E,EAAA,uBACGC,cAAA,CAAA,MAAA,EAAA;AAAA,IACC,SAAA,EAAWC,qBAAW,CAAA,iBAAA,EAAmB,SAAS,CAAA;AAAA,IAClD,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,IAC9B,GAAG,KAAA;AAAA,IAEH,sBAAY,IAAO,GAAA,gBAAA;AAAA,GACtB,CAAA,CAAA;AAEJ;;;;"}
@@ -5,6 +5,7 @@ import { useOverrides } from '../../overrides.mjs';
5
5
  import { useCurrentUserId } from '../../shared.mjs';
6
6
  import { classNames } from '../../utils/class-names.mjs';
7
7
 
8
+ "use client";
8
9
  function User({ userId, replaceSelf, className, ...props }) {
9
10
  const currentId = useCurrentUserId();
10
11
  const { user, isLoading } = useUser(userId);
@@ -1 +1 @@
1
- {"version":3,"file":"User.mjs","sources":["../../../src/components/internal/User.tsx"],"sourcesContent":["\"use client\";\n\nimport { useUser } from \"@liveblocks/react\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport { useOverrides } from \"../../overrides\";\nimport { useCurrentUserId } from \"../../shared\";\nimport { classNames } from \"../../utils/class-names\";\n\nexport interface UserProps extends ComponentProps<\"span\"> {\n /**\n * The user ID to display the user name for.\n */\n userId: string;\n\n /**\n * Whether to replace the user name with \"you\" ($.USER_SELF) for the current user.\n */\n replaceSelf?: boolean;\n}\n\nexport function User({ userId, replaceSelf, className, ...props }: UserProps) {\n const currentId = useCurrentUserId();\n const { user, isLoading } = useUser(userId);\n const $ = useOverrides();\n const resolvedUserName = useMemo(() => {\n return replaceSelf && currentId === userId\n ? $.USER_SELF\n : user?.name ?? $.USER_UNKNOWN;\n }, [replaceSelf, currentId, userId, $.USER_SELF, $.USER_UNKNOWN, user?.name]);\n\n return (\n <span\n className={classNames(\"lb-name lb-user\", className)}\n data-loading={isLoading ? \"\" : undefined}\n {...props}\n >\n {isLoading ? null : resolvedUserName}\n </span>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAsBO,SAAS,KAAK,EAAE,MAAA,EAAQ,WAAa,EAAA,SAAA,EAAA,GAAc,OAAoB,EAAA;AAC5E,EAAA,MAAM,YAAY,gBAAiB,EAAA,CAAA;AACnC,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAI,QAAQ,MAAM,CAAA,CAAA;AAC1C,EAAA,MAAM,IAAI,YAAa,EAAA,CAAA;AACvB,EAAM,MAAA,gBAAA,GAAmB,QAAQ,MAAM;AACrC,IAAA,OAAO,eAAe,SAAc,KAAA,MAAA,GAChC,EAAE,SACF,GAAA,IAAA,EAAM,QAAQ,CAAE,CAAA,YAAA,CAAA;AAAA,GACtB,EAAG,CAAC,WAAA,EAAa,SAAW,EAAA,MAAA,EAAQ,CAAE,CAAA,SAAA,EAAW,CAAE,CAAA,YAAA,EAAc,IAAM,EAAA,IAAI,CAAC,CAAA,CAAA;AAE5E,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IACC,SAAA,EAAW,UAAW,CAAA,iBAAA,EAAmB,SAAS,CAAA;AAAA,IAClD,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,IAC9B,GAAG,KAAA;AAAA,IAEH,sBAAY,IAAO,GAAA,gBAAA;AAAA,GACtB,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"User.mjs","sources":["../../../src/components/internal/User.tsx"],"sourcesContent":["\"use client\";\n\nimport { useUser } from \"@liveblocks/react\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport { useOverrides } from \"../../overrides\";\nimport { useCurrentUserId } from \"../../shared\";\nimport { classNames } from \"../../utils/class-names\";\n\nexport interface UserProps extends ComponentProps<\"span\"> {\n /**\n * The user ID to display the user name for.\n */\n userId: string;\n\n /**\n * Whether to replace the user name with \"you\" ($.USER_SELF) for the current user.\n */\n replaceSelf?: boolean;\n}\n\nexport function User({ userId, replaceSelf, className, ...props }: UserProps) {\n const currentId = useCurrentUserId();\n const { user, isLoading } = useUser(userId);\n const $ = useOverrides();\n const resolvedUserName = useMemo(() => {\n return replaceSelf && currentId === userId\n ? $.USER_SELF\n : user?.name ?? $.USER_UNKNOWN;\n }, [replaceSelf, currentId, userId, $.USER_SELF, $.USER_UNKNOWN, user?.name]);\n\n return (\n <span\n className={classNames(\"lb-name lb-user\", className)}\n data-loading={isLoading ? \"\" : undefined}\n {...props}\n >\n {isLoading ? null : resolvedUserName}\n </span>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAAA,YAAA,CAAA;AAsBO,SAAS,KAAK,EAAE,MAAA,EAAQ,WAAa,EAAA,SAAA,EAAA,GAAc,OAAoB,EAAA;AAC5E,EAAA,MAAM,YAAY,gBAAiB,EAAA,CAAA;AACnC,EAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAI,QAAQ,MAAM,CAAA,CAAA;AAC1C,EAAA,MAAM,IAAI,YAAa,EAAA,CAAA;AACvB,EAAM,MAAA,gBAAA,GAAmB,QAAQ,MAAM;AACrC,IAAA,OAAO,eAAe,SAAc,KAAA,MAAA,GAChC,EAAE,SACF,GAAA,IAAA,EAAM,QAAQ,CAAE,CAAA,YAAA,CAAA;AAAA,GACtB,EAAG,CAAC,WAAA,EAAa,SAAW,EAAA,MAAA,EAAQ,CAAE,CAAA,SAAA,EAAW,CAAE,CAAA,YAAA,EAAc,IAAM,EAAA,IAAI,CAAC,CAAA,CAAA;AAE5E,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IACC,SAAA,EAAW,UAAW,CAAA,iBAAA,EAAmB,SAAS,CAAA;AAAA,IAClD,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,IAC9B,GAAG,KAAA;AAAA,IAEH,sBAAY,IAAO,GAAA,gBAAA;AAAA,GACtB,CAAA,CAAA;AAEJ;;;;"}
@@ -3,6 +3,7 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var react = require('react');
5
5
 
6
+ "use client";
6
7
  const defaultComponents = {
7
8
  Anchor: "a"
8
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../src/components.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n ComponentPropsWithoutRef,\n ComponentType,\n PropsWithChildren,\n} from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nexport interface GlobalComponents {\n Anchor: ComponentType<ComponentPropsWithoutRef<\"a\">> | \"a\";\n}\n\nexport type Components = GlobalComponents;\n\ntype ComponentsProviderProps = PropsWithChildren<{\n components?: Partial<Components>;\n}>;\n\nexport const defaultComponents: Components = {\n Anchor: \"a\",\n};\n\nexport const ComponentsContext = createContext<Components | undefined>(\n undefined\n);\n\nexport function useComponents(components?: Partial<Components>): Components {\n const contextComponents = useContext(ComponentsContext);\n\n return useMemo(\n () => ({\n ...defaultComponents,\n ...contextComponents,\n ...components,\n }),\n [contextComponents, components]\n );\n}\n\nexport function ComponentsProvider({\n children,\n components: providerComponents,\n}: ComponentsProviderProps) {\n const contextComponents = useContext(ComponentsContext);\n const components = useMemo(\n () => ({\n ...defaultComponents,\n ...contextComponents,\n ...providerComponents,\n }),\n [contextComponents, providerComponents]\n );\n\n return (\n <ComponentsContext.Provider value={components}>\n {children}\n </ComponentsContext.Provider>\n );\n}\n"],"names":["createContext","useContext","useMemo","jsx"],"mappings":";;;;;AAmBO,MAAM,iBAAgC,GAAA;AAAA,EAC3C,MAAQ,EAAA,GAAA;AACV,EAAA;AAEO,MAAM,iBAAoB,GAAAA,mBAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,SAAS,cAAc,UAA8C,EAAA;AAC1E,EAAM,MAAA,iBAAA,GAAoBC,iBAAW,iBAAiB,CAAA,CAAA;AAEtD,EAAO,OAAAC,aAAA;AAAA,IACL,OAAO;AAAA,MACL,GAAG,iBAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACH,GAAG,UAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,mBAAmB,UAAU,CAAA;AAAA,GAChC,CAAA;AACF,CAAA;AAEO,SAAS,kBAAmB,CAAA;AAAA,EACjC,QAAA;AAAA,EACA,UAAY,EAAA,kBAAA;AACd,CAA4B,EAAA;AAC1B,EAAM,MAAA,iBAAA,GAAoBD,iBAAW,iBAAiB,CAAA,CAAA;AACtD,EAAA,MAAM,UAAa,GAAAC,aAAA;AAAA,IACjB,OAAO;AAAA,MACL,GAAG,iBAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACH,GAAG,kBAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,mBAAmB,kBAAkB,CAAA;AAAA,GACxC,CAAA;AAEA,EACE,uBAAAC,cAAA,CAAC,kBAAkB,QAAlB,EAAA;AAAA,IAA2B,KAAO,EAAA,UAAA;AAAA,IAChC,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;;;;"}
1
+ {"version":3,"file":"components.js","sources":["../src/components.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n ComponentPropsWithoutRef,\n ComponentType,\n PropsWithChildren,\n} from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nexport interface GlobalComponents {\n Anchor: ComponentType<ComponentPropsWithoutRef<\"a\">> | \"a\";\n}\n\nexport type Components = GlobalComponents;\n\ntype ComponentsProviderProps = PropsWithChildren<{\n components?: Partial<Components>;\n}>;\n\nexport const defaultComponents: Components = {\n Anchor: \"a\",\n};\n\nexport const ComponentsContext = createContext<Components | undefined>(\n undefined\n);\n\nexport function useComponents(components?: Partial<Components>): Components {\n const contextComponents = useContext(ComponentsContext);\n\n return useMemo(\n () => ({\n ...defaultComponents,\n ...contextComponents,\n ...components,\n }),\n [contextComponents, components]\n );\n}\n\nexport function ComponentsProvider({\n children,\n components: providerComponents,\n}: ComponentsProviderProps) {\n const contextComponents = useContext(ComponentsContext);\n const components = useMemo(\n () => ({\n ...defaultComponents,\n ...contextComponents,\n ...providerComponents,\n }),\n [contextComponents, providerComponents]\n );\n\n return (\n <ComponentsContext.Provider value={components}>\n {children}\n </ComponentsContext.Provider>\n );\n}\n"],"names":["createContext","useContext","useMemo","jsx"],"mappings":";;;;;AAAA,YAAA,CAAA;AAmBO,MAAM,iBAAgC,GAAA;AAAA,EAC3C,MAAQ,EAAA,GAAA;AACV,EAAA;AAEO,MAAM,iBAAoB,GAAAA,mBAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,SAAS,cAAc,UAA8C,EAAA;AAC1E,EAAM,MAAA,iBAAA,GAAoBC,iBAAW,iBAAiB,CAAA,CAAA;AAEtD,EAAO,OAAAC,aAAA;AAAA,IACL,OAAO;AAAA,MACL,GAAG,iBAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACH,GAAG,UAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,mBAAmB,UAAU,CAAA;AAAA,GAChC,CAAA;AACF,CAAA;AAEO,SAAS,kBAAmB,CAAA;AAAA,EACjC,QAAA;AAAA,EACA,UAAY,EAAA,kBAAA;AACd,CAA4B,EAAA;AAC1B,EAAM,MAAA,iBAAA,GAAoBD,iBAAW,iBAAiB,CAAA,CAAA;AACtD,EAAA,MAAM,UAAa,GAAAC,aAAA;AAAA,IACjB,OAAO;AAAA,MACL,GAAG,iBAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACH,GAAG,kBAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,mBAAmB,kBAAkB,CAAA;AAAA,GACxC,CAAA;AAEA,EACE,uBAAAC,cAAA,CAAC,kBAAkB,QAAlB,EAAA;AAAA,IAA2B,KAAO,EAAA,UAAA;AAAA,IAChC,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { createContext, useContext, useMemo } from 'react';
3
3
 
4
+ "use client";
4
5
  const defaultComponents = {
5
6
  Anchor: "a"
6
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"components.mjs","sources":["../src/components.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n ComponentPropsWithoutRef,\n ComponentType,\n PropsWithChildren,\n} from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nexport interface GlobalComponents {\n Anchor: ComponentType<ComponentPropsWithoutRef<\"a\">> | \"a\";\n}\n\nexport type Components = GlobalComponents;\n\ntype ComponentsProviderProps = PropsWithChildren<{\n components?: Partial<Components>;\n}>;\n\nexport const defaultComponents: Components = {\n Anchor: \"a\",\n};\n\nexport const ComponentsContext = createContext<Components | undefined>(\n undefined\n);\n\nexport function useComponents(components?: Partial<Components>): Components {\n const contextComponents = useContext(ComponentsContext);\n\n return useMemo(\n () => ({\n ...defaultComponents,\n ...contextComponents,\n ...components,\n }),\n [contextComponents, components]\n );\n}\n\nexport function ComponentsProvider({\n children,\n components: providerComponents,\n}: ComponentsProviderProps) {\n const contextComponents = useContext(ComponentsContext);\n const components = useMemo(\n () => ({\n ...defaultComponents,\n ...contextComponents,\n ...providerComponents,\n }),\n [contextComponents, providerComponents]\n );\n\n return (\n <ComponentsContext.Provider value={components}>\n {children}\n </ComponentsContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;AAmBO,MAAM,iBAAgC,GAAA;AAAA,EAC3C,MAAQ,EAAA,GAAA;AACV,EAAA;AAEO,MAAM,iBAAoB,GAAA,aAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,SAAS,cAAc,UAA8C,EAAA;AAC1E,EAAM,MAAA,iBAAA,GAAoB,WAAW,iBAAiB,CAAA,CAAA;AAEtD,EAAO,OAAA,OAAA;AAAA,IACL,OAAO;AAAA,MACL,GAAG,iBAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACH,GAAG,UAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,mBAAmB,UAAU,CAAA;AAAA,GAChC,CAAA;AACF,CAAA;AAEO,SAAS,kBAAmB,CAAA;AAAA,EACjC,QAAA;AAAA,EACA,UAAY,EAAA,kBAAA;AACd,CAA4B,EAAA;AAC1B,EAAM,MAAA,iBAAA,GAAoB,WAAW,iBAAiB,CAAA,CAAA;AACtD,EAAA,MAAM,UAAa,GAAA,OAAA;AAAA,IACjB,OAAO;AAAA,MACL,GAAG,iBAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACH,GAAG,kBAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,mBAAmB,kBAAkB,CAAA;AAAA,GACxC,CAAA;AAEA,EACE,uBAAA,GAAA,CAAC,kBAAkB,QAAlB,EAAA;AAAA,IAA2B,KAAO,EAAA,UAAA;AAAA,IAChC,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"components.mjs","sources":["../src/components.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n ComponentPropsWithoutRef,\n ComponentType,\n PropsWithChildren,\n} from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nexport interface GlobalComponents {\n Anchor: ComponentType<ComponentPropsWithoutRef<\"a\">> | \"a\";\n}\n\nexport type Components = GlobalComponents;\n\ntype ComponentsProviderProps = PropsWithChildren<{\n components?: Partial<Components>;\n}>;\n\nexport const defaultComponents: Components = {\n Anchor: \"a\",\n};\n\nexport const ComponentsContext = createContext<Components | undefined>(\n undefined\n);\n\nexport function useComponents(components?: Partial<Components>): Components {\n const contextComponents = useContext(ComponentsContext);\n\n return useMemo(\n () => ({\n ...defaultComponents,\n ...contextComponents,\n ...components,\n }),\n [contextComponents, components]\n );\n}\n\nexport function ComponentsProvider({\n children,\n components: providerComponents,\n}: ComponentsProviderProps) {\n const contextComponents = useContext(ComponentsContext);\n const components = useMemo(\n () => ({\n ...defaultComponents,\n ...contextComponents,\n ...providerComponents,\n }),\n [contextComponents, providerComponents]\n );\n\n return (\n <ComponentsContext.Provider value={components}>\n {children}\n </ComponentsContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;AAAA,YAAA,CAAA;AAmBO,MAAM,iBAAgC,GAAA;AAAA,EAC3C,MAAQ,EAAA,GAAA;AACV,EAAA;AAEO,MAAM,iBAAoB,GAAA,aAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,SAAS,cAAc,UAA8C,EAAA;AAC1E,EAAM,MAAA,iBAAA,GAAoB,WAAW,iBAAiB,CAAA,CAAA;AAEtD,EAAO,OAAA,OAAA;AAAA,IACL,OAAO;AAAA,MACL,GAAG,iBAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACH,GAAG,UAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,mBAAmB,UAAU,CAAA;AAAA,GAChC,CAAA;AACF,CAAA;AAEO,SAAS,kBAAmB,CAAA;AAAA,EACjC,QAAA;AAAA,EACA,UAAY,EAAA,kBAAA;AACd,CAA4B,EAAA;AAC1B,EAAM,MAAA,iBAAA,GAAoB,WAAW,iBAAiB,CAAA,CAAA;AACtD,EAAA,MAAM,UAAa,GAAA,OAAA;AAAA,IACjB,OAAO;AAAA,MACL,GAAG,iBAAA;AAAA,MACH,GAAG,iBAAA;AAAA,MACH,GAAG,kBAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,mBAAmB,kBAAkB,CAAA;AAAA,GACxC,CAAA;AAEA,EACE,uBAAA,GAAA,CAAC,kBAAkB,QAAlB,EAAA;AAAA,IAA2B,KAAO,EAAA,UAAA;AAAA,IAChC,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;"}
package/dist/config.js CHANGED
@@ -5,6 +5,7 @@ var react = require('react');
5
5
  var components = require('./components.js');
6
6
  var overrides = require('./overrides.js');
7
7
 
8
+ "use client";
8
9
  const LiveblocksUIConfigContext = react.createContext({});
9
10
  function useLiveblocksUIConfig() {
10
11
  return react.useContext(LiveblocksUIConfigContext);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../src/config.tsx"],"sourcesContent":["\"use client\";\n\nimport type { PropsWithChildren } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { type Components, ComponentsProvider } from \"./components\";\nimport type { Overrides } from \"./overrides\";\nimport { OverridesProvider } from \"./overrides\";\n\ntype LiveblocksUIConfigProps = PropsWithChildren<{\n /**\n * Override the components' strings.\n */\n overrides?: Partial<Overrides>;\n\n /**\n * Override the components' components.\n */\n components?: Partial<Components>;\n\n /**\n * The container to render the portal into.\n */\n portalContainer?: HTMLElement;\n\n /**\n * When `preventUnsavedChanges` is set on your Liveblocks client (or set on\n * <LiveblocksProvider>), then closing a browser tab will be prevented when\n * there are unsaved changes.\n *\n * By default, that will include draft texts or attachments that are (being)\n * uploaded via comments/threads composers, but not submitted yet.\n *\n * If you want to prevent unsaved changes with Liveblocks, but not for\n * composers, you can opt-out by setting this option to `false`.\n */\n preventUnsavedComposerChanges?: boolean;\n}>;\n\ninterface LiveblocksUIConfigContext {\n portalContainer?: HTMLElement;\n preventUnsavedComposerChanges?: boolean;\n}\n\nconst LiveblocksUIConfigContext = createContext<LiveblocksUIConfigContext>({});\n\nexport function useLiveblocksUIConfig() {\n return useContext(LiveblocksUIConfigContext);\n}\n\n/**\n * Set configuration options for all components.\n *\n * @example\n * <LiveblocksUIConfig overrides={{ locale: \"fr\", USER_UNKNOWN: \"Anonyme\", ... }}>\n * <App />\n * </LiveblocksUIConfig>\n */\nexport function LiveblocksUIConfig({\n overrides,\n components,\n portalContainer,\n preventUnsavedComposerChanges = true,\n children,\n}: LiveblocksUIConfigProps) {\n const liveblocksUIConfig = useMemo(\n () => ({ portalContainer, preventUnsavedComposerChanges }),\n [portalContainer, preventUnsavedComposerChanges]\n );\n\n return (\n <LiveblocksUIConfigContext.Provider value={liveblocksUIConfig}>\n <OverridesProvider overrides={overrides}>\n <ComponentsProvider components={components}>\n {children}\n </ComponentsProvider>\n </OverridesProvider>\n </LiveblocksUIConfigContext.Provider>\n );\n}\n"],"names":["createContext","useContext","overrides","components","useMemo","jsx","OverridesProvider","ComponentsProvider"],"mappings":";;;;;;;AA4CA,MAAM,yBAAA,GAA4BA,mBAAyC,CAAA,EAAE,CAAA,CAAA;AAEtE,SAAS,qBAAwB,GAAA;AACtC,EAAA,OAAOC,iBAAW,yBAAyB,CAAA,CAAA;AAC7C,CAAA;AAUO,SAAS,kBAAmB,CAAA;AAAA,aACjCC,WAAA;AAAA,cACAC,YAAA;AAAA,EACA,eAAA;AAAA,EACA,6BAAgC,GAAA,IAAA;AAAA,EAChC,QAAA;AACF,CAA4B,EAAA;AAC1B,EAAA,MAAM,kBAAqB,GAAAC,aAAA;AAAA,IACzB,OAAO,EAAE,eAAA,EAAiB,6BAA8B,EAAA,CAAA;AAAA,IACxD,CAAC,iBAAiB,6BAA6B,CAAA;AAAA,GACjD,CAAA;AAEA,EACE,uBAAAC,cAAA,CAAC,0BAA0B,QAA1B,EAAA;AAAA,IAAmC,KAAO,EAAA,kBAAA;AAAA,IACzC,QAAC,kBAAAA,cAAA,CAAAC,2BAAA,EAAA;AAAA,iBAAkBJ,WAAA;AAAA,MACjB,QAAC,kBAAAG,cAAA,CAAAE,6BAAA,EAAA;AAAA,oBAAmBJ,YAAA;AAAA,QACjB,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;;"}
1
+ {"version":3,"file":"config.js","sources":["../src/config.tsx"],"sourcesContent":["\"use client\";\n\nimport type { PropsWithChildren } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { type Components, ComponentsProvider } from \"./components\";\nimport type { Overrides } from \"./overrides\";\nimport { OverridesProvider } from \"./overrides\";\n\ntype LiveblocksUIConfigProps = PropsWithChildren<{\n /**\n * Override the components' strings.\n */\n overrides?: Partial<Overrides>;\n\n /**\n * Override the components' components.\n */\n components?: Partial<Components>;\n\n /**\n * The container to render the portal into.\n */\n portalContainer?: HTMLElement;\n\n /**\n * When `preventUnsavedChanges` is set on your Liveblocks client (or set on\n * <LiveblocksProvider>), then closing a browser tab will be prevented when\n * there are unsaved changes.\n *\n * By default, that will include draft texts or attachments that are (being)\n * uploaded via comments/threads composers, but not submitted yet.\n *\n * If you want to prevent unsaved changes with Liveblocks, but not for\n * composers, you can opt-out by setting this option to `false`.\n */\n preventUnsavedComposerChanges?: boolean;\n}>;\n\ninterface LiveblocksUIConfigContext {\n portalContainer?: HTMLElement;\n preventUnsavedComposerChanges?: boolean;\n}\n\nconst LiveblocksUIConfigContext = createContext<LiveblocksUIConfigContext>({});\n\nexport function useLiveblocksUIConfig() {\n return useContext(LiveblocksUIConfigContext);\n}\n\n/**\n * Set configuration options for all components.\n *\n * @example\n * <LiveblocksUIConfig overrides={{ locale: \"fr\", USER_UNKNOWN: \"Anonyme\", ... }}>\n * <App />\n * </LiveblocksUIConfig>\n */\nexport function LiveblocksUIConfig({\n overrides,\n components,\n portalContainer,\n preventUnsavedComposerChanges = true,\n children,\n}: LiveblocksUIConfigProps) {\n const liveblocksUIConfig = useMemo(\n () => ({ portalContainer, preventUnsavedComposerChanges }),\n [portalContainer, preventUnsavedComposerChanges]\n );\n\n return (\n <LiveblocksUIConfigContext.Provider value={liveblocksUIConfig}>\n <OverridesProvider overrides={overrides}>\n <ComponentsProvider components={components}>\n {children}\n </ComponentsProvider>\n </OverridesProvider>\n </LiveblocksUIConfigContext.Provider>\n );\n}\n"],"names":["createContext","useContext","overrides","components","useMemo","jsx","OverridesProvider","ComponentsProvider"],"mappings":";;;;;;;AAAA,YAAA,CAAA;AA4CA,MAAM,yBAAA,GAA4BA,mBAAyC,CAAA,EAAE,CAAA,CAAA;AAEtE,SAAS,qBAAwB,GAAA;AACtC,EAAA,OAAOC,iBAAW,yBAAyB,CAAA,CAAA;AAC7C,CAAA;AAUO,SAAS,kBAAmB,CAAA;AAAA,aACjCC,WAAA;AAAA,cACAC,YAAA;AAAA,EACA,eAAA;AAAA,EACA,6BAAgC,GAAA,IAAA;AAAA,EAChC,QAAA;AACF,CAA4B,EAAA;AAC1B,EAAA,MAAM,kBAAqB,GAAAC,aAAA;AAAA,IACzB,OAAO,EAAE,eAAA,EAAiB,6BAA8B,EAAA,CAAA;AAAA,IACxD,CAAC,iBAAiB,6BAA6B,CAAA;AAAA,GACjD,CAAA;AAEA,EACE,uBAAAC,cAAA,CAAC,0BAA0B,QAA1B,EAAA;AAAA,IAAmC,KAAO,EAAA,kBAAA;AAAA,IACzC,QAAC,kBAAAA,cAAA,CAAAC,2BAAA,EAAA;AAAA,iBAAkBJ,WAAA;AAAA,MACjB,QAAC,kBAAAG,cAAA,CAAAE,6BAAA,EAAA;AAAA,oBAAmBJ,YAAA;AAAA,QACjB,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;;"}
package/dist/config.mjs CHANGED
@@ -3,6 +3,7 @@ import { createContext, useContext, useMemo } from 'react';
3
3
  import { ComponentsProvider } from './components.mjs';
4
4
  import { OverridesProvider } from './overrides.mjs';
5
5
 
6
+ "use client";
6
7
  const LiveblocksUIConfigContext = createContext({});
7
8
  function useLiveblocksUIConfig() {
8
9
  return useContext(LiveblocksUIConfigContext);
@@ -1 +1 @@
1
- {"version":3,"file":"config.mjs","sources":["../src/config.tsx"],"sourcesContent":["\"use client\";\n\nimport type { PropsWithChildren } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { type Components, ComponentsProvider } from \"./components\";\nimport type { Overrides } from \"./overrides\";\nimport { OverridesProvider } from \"./overrides\";\n\ntype LiveblocksUIConfigProps = PropsWithChildren<{\n /**\n * Override the components' strings.\n */\n overrides?: Partial<Overrides>;\n\n /**\n * Override the components' components.\n */\n components?: Partial<Components>;\n\n /**\n * The container to render the portal into.\n */\n portalContainer?: HTMLElement;\n\n /**\n * When `preventUnsavedChanges` is set on your Liveblocks client (or set on\n * <LiveblocksProvider>), then closing a browser tab will be prevented when\n * there are unsaved changes.\n *\n * By default, that will include draft texts or attachments that are (being)\n * uploaded via comments/threads composers, but not submitted yet.\n *\n * If you want to prevent unsaved changes with Liveblocks, but not for\n * composers, you can opt-out by setting this option to `false`.\n */\n preventUnsavedComposerChanges?: boolean;\n}>;\n\ninterface LiveblocksUIConfigContext {\n portalContainer?: HTMLElement;\n preventUnsavedComposerChanges?: boolean;\n}\n\nconst LiveblocksUIConfigContext = createContext<LiveblocksUIConfigContext>({});\n\nexport function useLiveblocksUIConfig() {\n return useContext(LiveblocksUIConfigContext);\n}\n\n/**\n * Set configuration options for all components.\n *\n * @example\n * <LiveblocksUIConfig overrides={{ locale: \"fr\", USER_UNKNOWN: \"Anonyme\", ... }}>\n * <App />\n * </LiveblocksUIConfig>\n */\nexport function LiveblocksUIConfig({\n overrides,\n components,\n portalContainer,\n preventUnsavedComposerChanges = true,\n children,\n}: LiveblocksUIConfigProps) {\n const liveblocksUIConfig = useMemo(\n () => ({ portalContainer, preventUnsavedComposerChanges }),\n [portalContainer, preventUnsavedComposerChanges]\n );\n\n return (\n <LiveblocksUIConfigContext.Provider value={liveblocksUIConfig}>\n <OverridesProvider overrides={overrides}>\n <ComponentsProvider components={components}>\n {children}\n </ComponentsProvider>\n </OverridesProvider>\n </LiveblocksUIConfigContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;;;AA4CA,MAAM,yBAAA,GAA4B,aAAyC,CAAA,EAAE,CAAA,CAAA;AAEtE,SAAS,qBAAwB,GAAA;AACtC,EAAA,OAAO,WAAW,yBAAyB,CAAA,CAAA;AAC7C,CAAA;AAUO,SAAS,kBAAmB,CAAA;AAAA,EACjC,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,6BAAgC,GAAA,IAAA;AAAA,EAChC,QAAA;AACF,CAA4B,EAAA;AAC1B,EAAA,MAAM,kBAAqB,GAAA,OAAA;AAAA,IACzB,OAAO,EAAE,eAAA,EAAiB,6BAA8B,EAAA,CAAA;AAAA,IACxD,CAAC,iBAAiB,6BAA6B,CAAA;AAAA,GACjD,CAAA;AAEA,EACE,uBAAA,GAAA,CAAC,0BAA0B,QAA1B,EAAA;AAAA,IAAmC,KAAO,EAAA,kBAAA;AAAA,IACzC,QAAC,kBAAA,GAAA,CAAA,iBAAA,EAAA;AAAA,MAAkB,SAAA;AAAA,MACjB,QAAC,kBAAA,GAAA,CAAA,kBAAA,EAAA;AAAA,QAAmB,UAAA;AAAA,QACjB,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"config.mjs","sources":["../src/config.tsx"],"sourcesContent":["\"use client\";\n\nimport type { PropsWithChildren } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { type Components, ComponentsProvider } from \"./components\";\nimport type { Overrides } from \"./overrides\";\nimport { OverridesProvider } from \"./overrides\";\n\ntype LiveblocksUIConfigProps = PropsWithChildren<{\n /**\n * Override the components' strings.\n */\n overrides?: Partial<Overrides>;\n\n /**\n * Override the components' components.\n */\n components?: Partial<Components>;\n\n /**\n * The container to render the portal into.\n */\n portalContainer?: HTMLElement;\n\n /**\n * When `preventUnsavedChanges` is set on your Liveblocks client (or set on\n * <LiveblocksProvider>), then closing a browser tab will be prevented when\n * there are unsaved changes.\n *\n * By default, that will include draft texts or attachments that are (being)\n * uploaded via comments/threads composers, but not submitted yet.\n *\n * If you want to prevent unsaved changes with Liveblocks, but not for\n * composers, you can opt-out by setting this option to `false`.\n */\n preventUnsavedComposerChanges?: boolean;\n}>;\n\ninterface LiveblocksUIConfigContext {\n portalContainer?: HTMLElement;\n preventUnsavedComposerChanges?: boolean;\n}\n\nconst LiveblocksUIConfigContext = createContext<LiveblocksUIConfigContext>({});\n\nexport function useLiveblocksUIConfig() {\n return useContext(LiveblocksUIConfigContext);\n}\n\n/**\n * Set configuration options for all components.\n *\n * @example\n * <LiveblocksUIConfig overrides={{ locale: \"fr\", USER_UNKNOWN: \"Anonyme\", ... }}>\n * <App />\n * </LiveblocksUIConfig>\n */\nexport function LiveblocksUIConfig({\n overrides,\n components,\n portalContainer,\n preventUnsavedComposerChanges = true,\n children,\n}: LiveblocksUIConfigProps) {\n const liveblocksUIConfig = useMemo(\n () => ({ portalContainer, preventUnsavedComposerChanges }),\n [portalContainer, preventUnsavedComposerChanges]\n );\n\n return (\n <LiveblocksUIConfigContext.Provider value={liveblocksUIConfig}>\n <OverridesProvider overrides={overrides}>\n <ComponentsProvider components={components}>\n {children}\n </ComponentsProvider>\n </OverridesProvider>\n </LiveblocksUIConfigContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;;;AAAA,YAAA,CAAA;AA4CA,MAAM,yBAAA,GAA4B,aAAyC,CAAA,EAAE,CAAA,CAAA;AAEtE,SAAS,qBAAwB,GAAA;AACtC,EAAA,OAAO,WAAW,yBAAyB,CAAA,CAAA;AAC7C,CAAA;AAUO,SAAS,kBAAmB,CAAA;AAAA,EACjC,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,6BAAgC,GAAA,IAAA;AAAA,EAChC,QAAA;AACF,CAA4B,EAAA;AAC1B,EAAA,MAAM,kBAAqB,GAAA,OAAA;AAAA,IACzB,OAAO,EAAE,eAAA,EAAiB,6BAA8B,EAAA,CAAA;AAAA,IACxD,CAAC,iBAAiB,6BAA6B,CAAA;AAAA,GACjD,CAAA;AAEA,EACE,uBAAA,GAAA,CAAC,0BAA0B,QAA1B,EAAA;AAAA,IAAmC,KAAO,EAAA,kBAAA;AAAA,IACzC,QAAC,kBAAA,GAAA,CAAA,iBAAA,EAAA;AAAA,MAAkB,SAAA;AAAA,MACjB,QAAC,kBAAA,GAAA,CAAA,kBAAA,EAAA;AAAA,QAAmB,UAAA;AAAA,QACjB,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ var ArrowDown = require('./ArrowDown.js');
4
+ var ArrowUp = require('./ArrowUp.js');
5
+ var Attachment = require('./Attachment.js');
6
+ var Check = require('./Check.js');
7
+ var Cross = require('./Cross.js');
8
+ var Delete = require('./Delete.js');
9
+ var Edit = require('./Edit.js');
10
+ var Ellipsis = require('./Ellipsis.js');
11
+ var Emoji = require('./Emoji.js');
12
+ var EmojiAdd = require('./EmojiAdd.js');
13
+ var Mention = require('./Mention.js');
14
+ var Resolve = require('./Resolve.js');
15
+ var Resolved = require('./Resolved.js');
16
+ var Restore = require('./Restore.js');
17
+ var Search = require('./Search.js');
18
+ var Send = require('./Send.js');
19
+ var Spinner = require('./Spinner.js');
20
+ var Warning = require('./Warning.js');
21
+
22
+
23
+
24
+ exports.ArrowDownIcon = ArrowDown.ArrowDownIcon;
25
+ exports.ArrowUpIcon = ArrowUp.ArrowUpIcon;
26
+ exports.AttachmentIcon = Attachment.AttachmentIcon;
27
+ exports.CheckIcon = Check.CheckIcon;
28
+ exports.CrossIcon = Cross.CrossIcon;
29
+ exports.DeleteIcon = Delete.DeleteIcon;
30
+ exports.EditIcon = Edit.EditIcon;
31
+ exports.EllipsisIcon = Ellipsis.EllipsisIcon;
32
+ exports.EmojiIcon = Emoji.EmojiIcon;
33
+ exports.EmojiAddIcon = EmojiAdd.EmojiAddIcon;
34
+ exports.MentionIcon = Mention.MentionIcon;
35
+ exports.ResolveIcon = Resolve.ResolveIcon;
36
+ exports.ResolvedIcon = Resolved.ResolvedIcon;
37
+ exports.RestoreIcon = Restore.RestoreIcon;
38
+ exports.SearchIcon = Search.SearchIcon;
39
+ exports.SendIcon = Send.SendIcon;
40
+ exports.SpinnerIcon = Spinner.SpinnerIcon;
41
+ exports.WarningIcon = Warning.WarningIcon;
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,19 @@
1
+ export { ArrowDownIcon } from './ArrowDown.mjs';
2
+ export { ArrowUpIcon } from './ArrowUp.mjs';
3
+ export { AttachmentIcon } from './Attachment.mjs';
4
+ export { CheckIcon } from './Check.mjs';
5
+ export { CrossIcon } from './Cross.mjs';
6
+ export { DeleteIcon } from './Delete.mjs';
7
+ export { EditIcon } from './Edit.mjs';
8
+ export { EllipsisIcon } from './Ellipsis.mjs';
9
+ export { EmojiIcon } from './Emoji.mjs';
10
+ export { EmojiAddIcon } from './EmojiAdd.mjs';
11
+ export { MentionIcon } from './Mention.mjs';
12
+ export { ResolveIcon } from './Resolve.mjs';
13
+ export { ResolvedIcon } from './Resolved.mjs';
14
+ export { RestoreIcon } from './Restore.mjs';
15
+ export { SearchIcon } from './Search.mjs';
16
+ export { SendIcon } from './Send.mjs';
17
+ export { SpinnerIcon } from './Spinner.mjs';
18
+ export { WarningIcon } from './Warning.mjs';
19
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
package/dist/overrides.js CHANGED
@@ -6,6 +6,7 @@ var react = require('react');
6
6
  var Emoji = require('./components/internal/Emoji.js');
7
7
  var pluralize = require('./utils/pluralize.js');
8
8
 
9
+ "use client";
9
10
  const defaultOverrides = {
10
11
  locale: "en",
11
12
  dir: "ltr",
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.js","sources":["../src/overrides.tsx"],"sourcesContent":["\"use client\";\n\nimport { assertNever } from \"@liveblocks/core\";\nimport type { PropsWithChildren, ReactNode } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { Emoji } from \"./components/internal/Emoji\";\nimport type { ComposerBodyMark, Direction } from \"./types\";\nimport { pluralize } from \"./utils/pluralize\";\n\nexport interface LocalizationOverrides {\n locale: string;\n dir: Direction;\n}\n\nexport interface GlobalOverrides {\n USER_SELF: string;\n USER_UNKNOWN: string;\n LIST_REMAINING: (count: number) => string;\n LIST_REMAINING_USERS: (count: number) => string;\n LIST_REMAINING_COMMENTS: (count: number) => string;\n EMOJI_PICKER_SEARCH_PLACEHOLDER: string;\n EMOJI_PICKER_EMPTY: ReactNode;\n EMOJI_PICKER_ERROR: (error: Error) => ReactNode;\n ATTACHMENT_TOO_LARGE: (maxSize?: string) => string;\n ATTACHMENT_ERROR: (error: Error) => string;\n}\n\nexport interface CommentOverrides {\n COMMENT_EDITED: ReactNode;\n COMMENT_DELETED: ReactNode;\n COMMENT_MORE: string;\n COMMENT_EDIT: string;\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: string;\n COMMENT_EDIT_COMPOSER_CANCEL: string;\n COMMENT_EDIT_COMPOSER_SAVE: string;\n COMMENT_DELETE: string;\n COMMENT_DELETE_ATTACHMENT: string;\n COMMENT_ADD_REACTION: string;\n COMMENT_REACTION_LIST: (\n list: ReactNode,\n emoji: string,\n count: number\n ) => ReactNode;\n COMMENT_REACTION_DESCRIPTION: (emoji: string, count: number) => string;\n}\n\nexport interface ComposerOverrides {\n COMPOSER_INSERT_MENTION: string;\n COMPOSER_INSERT_EMOJI: string;\n COMPOSER_ATTACH_FILES: string;\n COMPOSER_REMOVE_ATTACHMENT: string;\n COMPOSER_PLACEHOLDER: string;\n COMPOSER_SEND: string;\n COMPOSER_TOGGLE_MARK: (mark: ComposerBodyMark) => string;\n}\n\nexport interface ThreadOverrides {\n THREAD_RESOLVE: string;\n THREAD_UNRESOLVE: string;\n THREAD_NEW_INDICATOR: string;\n THREAD_NEW_INDICATOR_DESCRIPTION: string;\n THREAD_COMPOSER_PLACEHOLDER: string;\n THREAD_COMPOSER_SEND: string;\n}\n\nexport interface InboxNotificationOverrides {\n INBOX_NOTIFICATION_MORE: string;\n INBOX_NOTIFICATION_MARK_AS_READ: string;\n INBOX_NOTIFICATION_DELETE: string;\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode | undefined,\n count: number\n ) => ReactNode;\n INBOX_NOTIFICATION_THREAD_MENTION: (\n user: ReactNode,\n room: ReactNode | undefined\n ) => ReactNode;\n INBOX_NOTIFICATION_TEXT_MENTION: (\n user: ReactNode,\n room: ReactNode | undefined\n ) => ReactNode;\n}\n\nexport interface HistoryVersionPreviewOverrides {\n HISTORY_VERSION_PREVIEW_AUTHORS_LIST: (list: ReactNode) => ReactNode;\n HISTORY_VERSION_PREVIEW_RESTORE: string;\n HISTORY_VERSION_PREVIEW_EMPTY: ReactNode;\n HISTORY_VERSION_PREVIEW_ERROR: (error: Error) => ReactNode;\n}\n\nexport type Overrides = LocalizationOverrides &\n GlobalOverrides &\n ComposerOverrides &\n CommentOverrides &\n ThreadOverrides &\n InboxNotificationOverrides &\n HistoryVersionPreviewOverrides;\n\ntype OverridesProviderProps = PropsWithChildren<{\n overrides?: Partial<Overrides>;\n}>;\n\nexport const defaultOverrides: Overrides = {\n locale: \"en\",\n dir: \"ltr\",\n USER_SELF: \"you\",\n USER_UNKNOWN: \"Anonymous\",\n LIST_REMAINING: (count) => `${count} more`,\n LIST_REMAINING_USERS: (count) => `${count} ${pluralize(count, \"other\")}`,\n LIST_REMAINING_COMMENTS: (count) =>\n `${count} more ${pluralize(count, \"comment\")}`,\n EMOJI_PICKER_SEARCH_PLACEHOLDER: \"Search…\",\n EMOJI_PICKER_EMPTY: \"No emoji found.\",\n EMOJI_PICKER_ERROR: () =>\n \"There was an error while getting the list of emoji.\",\n ATTACHMENT_TOO_LARGE: (maxSize) =>\n maxSize ? `The file is larger than ${maxSize}` : \"The file is too large\",\n ATTACHMENT_ERROR: () => \"The file couldn’t be uploaded.\",\n COMPOSER_INSERT_MENTION: \"Mention someone\",\n COMPOSER_INSERT_EMOJI: \"Add emoji\",\n COMPOSER_ATTACH_FILES: \"Attach files\",\n COMPOSER_REMOVE_ATTACHMENT: \"Remove attachment\",\n COMPOSER_PLACEHOLDER: \"Write a comment…\",\n COMPOSER_SEND: \"Send\",\n COMPOSER_TOGGLE_MARK: (format) => {\n switch (format) {\n case \"bold\":\n return \"Bold\";\n case \"italic\":\n return \"Italic\";\n case \"strikethrough\":\n return \"Strikethrough\";\n case \"code\":\n return \"Inline code\";\n default:\n return assertNever(format, \"Unexpected mark\");\n }\n },\n COMMENT_EDITED: \"(edited)\",\n COMMENT_DELETED: \"This comment has been deleted.\",\n COMMENT_MORE: \"More\",\n COMMENT_EDIT: \"Edit comment\",\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: \"Edit comment…\",\n COMMENT_EDIT_COMPOSER_CANCEL: \"Cancel\",\n COMMENT_EDIT_COMPOSER_SAVE: \"Save\",\n COMMENT_DELETE: \"Delete comment\",\n COMMENT_DELETE_ATTACHMENT: \"Delete attachment\",\n COMMENT_ADD_REACTION: \"Add reaction\",\n COMMENT_REACTION_LIST: (list, emoji) => (\n <>\n {list} reacted with <Emoji emoji={emoji} />\n </>\n ),\n COMMENT_REACTION_DESCRIPTION: (emoji, count) =>\n `${count} ${pluralize(count, \"reaction\")}, react with ${emoji}`,\n THREAD_RESOLVE: \"Resolve thread\",\n THREAD_UNRESOLVE: \"Re-open thread\",\n THREAD_NEW_INDICATOR: \"New\",\n THREAD_NEW_INDICATOR_DESCRIPTION: \"New comments\",\n THREAD_COMPOSER_PLACEHOLDER: \"Reply to thread…\",\n THREAD_COMPOSER_SEND: \"Reply\",\n INBOX_NOTIFICATION_MORE: \"More\",\n INBOX_NOTIFICATION_MARK_AS_READ: \"Mark as read\",\n INBOX_NOTIFICATION_DELETE: \"Delete notification\",\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode\n ) => (\n <>\n {list} commented\n {room ? <> in {room}</> : <> in a thread</>}\n </>\n ),\n INBOX_NOTIFICATION_THREAD_MENTION: (user: ReactNode, room: ReactNode) => (\n <>\n {user} mentioned you{room ? <> in {room}</> : null}\n </>\n ),\n INBOX_NOTIFICATION_TEXT_MENTION: (user: ReactNode, room: ReactNode) => (\n <>\n {user} mentioned you{room ? <> in {room}</> : null}\n </>\n ),\n HISTORY_VERSION_PREVIEW_AUTHORS_LIST: (list: ReactNode) => (\n <>Edits from {list}</>\n ),\n HISTORY_VERSION_PREVIEW_RESTORE: \"Restore\",\n HISTORY_VERSION_PREVIEW_EMPTY: \"No content.\",\n HISTORY_VERSION_PREVIEW_ERROR: () =>\n \"There was an error while getting this version.\",\n};\n\nexport const OverridesContext = createContext<Overrides | undefined>(undefined);\n\nexport function useOverrides(overrides?: Partial<Overrides>): Overrides {\n const contextOverrides = useContext(OverridesContext);\n\n return useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...overrides,\n }),\n [contextOverrides, overrides]\n );\n}\n\nexport function OverridesProvider({\n children,\n overrides: providerOverrides,\n}: OverridesProviderProps) {\n const contextOverrides = useContext(OverridesContext);\n const overrides = useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...providerOverrides,\n }),\n [contextOverrides, providerOverrides]\n );\n\n return (\n <OverridesContext.Provider value={overrides}>\n {children}\n </OverridesContext.Provider>\n );\n}\n"],"names":["pluralize","assertNever","jsxs","Fragment","jsx","Emoji","createContext","useContext","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"overrides.js","sources":["../src/overrides.tsx"],"sourcesContent":["\"use client\";\n\nimport { assertNever } from \"@liveblocks/core\";\nimport type { PropsWithChildren, ReactNode } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { Emoji } from \"./components/internal/Emoji\";\nimport type { ComposerBodyMark, Direction } from \"./types\";\nimport { pluralize } from \"./utils/pluralize\";\n\nexport interface LocalizationOverrides {\n locale: string;\n dir: Direction;\n}\n\nexport interface GlobalOverrides {\n USER_SELF: string;\n USER_UNKNOWN: string;\n LIST_REMAINING: (count: number) => string;\n LIST_REMAINING_USERS: (count: number) => string;\n LIST_REMAINING_COMMENTS: (count: number) => string;\n EMOJI_PICKER_SEARCH_PLACEHOLDER: string;\n EMOJI_PICKER_EMPTY: ReactNode;\n EMOJI_PICKER_ERROR: (error: Error) => ReactNode;\n ATTACHMENT_TOO_LARGE: (maxSize?: string) => string;\n ATTACHMENT_ERROR: (error: Error) => string;\n}\n\nexport interface CommentOverrides {\n COMMENT_EDITED: ReactNode;\n COMMENT_DELETED: ReactNode;\n COMMENT_MORE: string;\n COMMENT_EDIT: string;\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: string;\n COMMENT_EDIT_COMPOSER_CANCEL: string;\n COMMENT_EDIT_COMPOSER_SAVE: string;\n COMMENT_DELETE: string;\n COMMENT_DELETE_ATTACHMENT: string;\n COMMENT_ADD_REACTION: string;\n COMMENT_REACTION_LIST: (\n list: ReactNode,\n emoji: string,\n count: number\n ) => ReactNode;\n COMMENT_REACTION_DESCRIPTION: (emoji: string, count: number) => string;\n}\n\nexport interface ComposerOverrides {\n COMPOSER_INSERT_MENTION: string;\n COMPOSER_INSERT_EMOJI: string;\n COMPOSER_ATTACH_FILES: string;\n COMPOSER_REMOVE_ATTACHMENT: string;\n COMPOSER_PLACEHOLDER: string;\n COMPOSER_SEND: string;\n COMPOSER_TOGGLE_MARK: (mark: ComposerBodyMark) => string;\n}\n\nexport interface ThreadOverrides {\n THREAD_RESOLVE: string;\n THREAD_UNRESOLVE: string;\n THREAD_NEW_INDICATOR: string;\n THREAD_NEW_INDICATOR_DESCRIPTION: string;\n THREAD_COMPOSER_PLACEHOLDER: string;\n THREAD_COMPOSER_SEND: string;\n}\n\nexport interface InboxNotificationOverrides {\n INBOX_NOTIFICATION_MORE: string;\n INBOX_NOTIFICATION_MARK_AS_READ: string;\n INBOX_NOTIFICATION_DELETE: string;\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode | undefined,\n count: number\n ) => ReactNode;\n INBOX_NOTIFICATION_THREAD_MENTION: (\n user: ReactNode,\n room: ReactNode | undefined\n ) => ReactNode;\n INBOX_NOTIFICATION_TEXT_MENTION: (\n user: ReactNode,\n room: ReactNode | undefined\n ) => ReactNode;\n}\n\nexport interface HistoryVersionPreviewOverrides {\n HISTORY_VERSION_PREVIEW_AUTHORS_LIST: (list: ReactNode) => ReactNode;\n HISTORY_VERSION_PREVIEW_RESTORE: string;\n HISTORY_VERSION_PREVIEW_EMPTY: ReactNode;\n HISTORY_VERSION_PREVIEW_ERROR: (error: Error) => ReactNode;\n}\n\nexport type Overrides = LocalizationOverrides &\n GlobalOverrides &\n ComposerOverrides &\n CommentOverrides &\n ThreadOverrides &\n InboxNotificationOverrides &\n HistoryVersionPreviewOverrides;\n\ntype OverridesProviderProps = PropsWithChildren<{\n overrides?: Partial<Overrides>;\n}>;\n\nexport const defaultOverrides: Overrides = {\n locale: \"en\",\n dir: \"ltr\",\n USER_SELF: \"you\",\n USER_UNKNOWN: \"Anonymous\",\n LIST_REMAINING: (count) => `${count} more`,\n LIST_REMAINING_USERS: (count) => `${count} ${pluralize(count, \"other\")}`,\n LIST_REMAINING_COMMENTS: (count) =>\n `${count} more ${pluralize(count, \"comment\")}`,\n EMOJI_PICKER_SEARCH_PLACEHOLDER: \"Search…\",\n EMOJI_PICKER_EMPTY: \"No emoji found.\",\n EMOJI_PICKER_ERROR: () =>\n \"There was an error while getting the list of emoji.\",\n ATTACHMENT_TOO_LARGE: (maxSize) =>\n maxSize ? `The file is larger than ${maxSize}` : \"The file is too large\",\n ATTACHMENT_ERROR: () => \"The file couldn’t be uploaded.\",\n COMPOSER_INSERT_MENTION: \"Mention someone\",\n COMPOSER_INSERT_EMOJI: \"Add emoji\",\n COMPOSER_ATTACH_FILES: \"Attach files\",\n COMPOSER_REMOVE_ATTACHMENT: \"Remove attachment\",\n COMPOSER_PLACEHOLDER: \"Write a comment…\",\n COMPOSER_SEND: \"Send\",\n COMPOSER_TOGGLE_MARK: (format) => {\n switch (format) {\n case \"bold\":\n return \"Bold\";\n case \"italic\":\n return \"Italic\";\n case \"strikethrough\":\n return \"Strikethrough\";\n case \"code\":\n return \"Inline code\";\n default:\n return assertNever(format, \"Unexpected mark\");\n }\n },\n COMMENT_EDITED: \"(edited)\",\n COMMENT_DELETED: \"This comment has been deleted.\",\n COMMENT_MORE: \"More\",\n COMMENT_EDIT: \"Edit comment\",\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: \"Edit comment…\",\n COMMENT_EDIT_COMPOSER_CANCEL: \"Cancel\",\n COMMENT_EDIT_COMPOSER_SAVE: \"Save\",\n COMMENT_DELETE: \"Delete comment\",\n COMMENT_DELETE_ATTACHMENT: \"Delete attachment\",\n COMMENT_ADD_REACTION: \"Add reaction\",\n COMMENT_REACTION_LIST: (list, emoji) => (\n <>\n {list} reacted with <Emoji emoji={emoji} />\n </>\n ),\n COMMENT_REACTION_DESCRIPTION: (emoji, count) =>\n `${count} ${pluralize(count, \"reaction\")}, react with ${emoji}`,\n THREAD_RESOLVE: \"Resolve thread\",\n THREAD_UNRESOLVE: \"Re-open thread\",\n THREAD_NEW_INDICATOR: \"New\",\n THREAD_NEW_INDICATOR_DESCRIPTION: \"New comments\",\n THREAD_COMPOSER_PLACEHOLDER: \"Reply to thread…\",\n THREAD_COMPOSER_SEND: \"Reply\",\n INBOX_NOTIFICATION_MORE: \"More\",\n INBOX_NOTIFICATION_MARK_AS_READ: \"Mark as read\",\n INBOX_NOTIFICATION_DELETE: \"Delete notification\",\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode\n ) => (\n <>\n {list} commented\n {room ? <> in {room}</> : <> in a thread</>}\n </>\n ),\n INBOX_NOTIFICATION_THREAD_MENTION: (user: ReactNode, room: ReactNode) => (\n <>\n {user} mentioned you{room ? <> in {room}</> : null}\n </>\n ),\n INBOX_NOTIFICATION_TEXT_MENTION: (user: ReactNode, room: ReactNode) => (\n <>\n {user} mentioned you{room ? <> in {room}</> : null}\n </>\n ),\n HISTORY_VERSION_PREVIEW_AUTHORS_LIST: (list: ReactNode) => (\n <>Edits from {list}</>\n ),\n HISTORY_VERSION_PREVIEW_RESTORE: \"Restore\",\n HISTORY_VERSION_PREVIEW_EMPTY: \"No content.\",\n HISTORY_VERSION_PREVIEW_ERROR: () =>\n \"There was an error while getting this version.\",\n};\n\nexport const OverridesContext = createContext<Overrides | undefined>(undefined);\n\nexport function useOverrides(overrides?: Partial<Overrides>): Overrides {\n const contextOverrides = useContext(OverridesContext);\n\n return useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...overrides,\n }),\n [contextOverrides, overrides]\n );\n}\n\nexport function OverridesProvider({\n children,\n overrides: providerOverrides,\n}: OverridesProviderProps) {\n const contextOverrides = useContext(OverridesContext);\n const overrides = useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...providerOverrides,\n }),\n [contextOverrides, providerOverrides]\n );\n\n return (\n <OverridesContext.Provider value={overrides}>\n {children}\n </OverridesContext.Provider>\n );\n}\n"],"names":["pluralize","assertNever","jsxs","Fragment","jsx","Emoji","createContext","useContext","useMemo"],"mappings":";;;;;;;;AAAA,YAAA,CAAA;AAwGO,MAAM,gBAA8B,GAAA;AAAA,EACzC,MAAQ,EAAA,IAAA;AAAA,EACR,GAAK,EAAA,KAAA;AAAA,EACL,SAAW,EAAA,KAAA;AAAA,EACX,YAAc,EAAA,WAAA;AAAA,EACd,cAAA,EAAgB,CAAC,KAAA,KAAU,CAAG,EAAA,KAAA,CAAA,KAAA,CAAA;AAAA,EAC9B,sBAAsB,CAAC,KAAA,KAAU,GAAG,KAAS,CAAA,CAAA,EAAAA,mBAAA,CAAU,OAAO,OAAO,CAAA,CAAA,CAAA;AAAA,EACrE,yBAAyB,CAAC,KAAA,KACxB,GAAG,KAAc,CAAA,MAAA,EAAAA,mBAAA,CAAU,OAAO,SAAS,CAAA,CAAA,CAAA;AAAA,EAC7C,+BAAiC,EAAA,cAAA;AAAA,EACjC,kBAAoB,EAAA,iBAAA;AAAA,EACpB,oBAAoB,MAClB,qDAAA;AAAA,EACF,oBAAsB,EAAA,CAAC,OACrB,KAAA,OAAA,GAAU,2BAA2B,OAAY,CAAA,CAAA,GAAA,uBAAA;AAAA,EACnD,kBAAkB,MAAM,qCAAA;AAAA,EACxB,uBAAyB,EAAA,iBAAA;AAAA,EACzB,qBAAuB,EAAA,WAAA;AAAA,EACvB,qBAAuB,EAAA,cAAA;AAAA,EACvB,0BAA4B,EAAA,mBAAA;AAAA,EAC5B,oBAAsB,EAAA,uBAAA;AAAA,EACtB,aAAe,EAAA,MAAA;AAAA,EACf,oBAAA,EAAsB,CAAC,MAAW,KAAA;AAChC,IAAA,QAAQ,MAAQ;AAAA,MACd,KAAK,MAAA;AACH,QAAO,OAAA,MAAA,CAAA;AAAA,MACT,KAAK,QAAA;AACH,QAAO,OAAA,QAAA,CAAA;AAAA,MACT,KAAK,eAAA;AACH,QAAO,OAAA,eAAA,CAAA;AAAA,MACT,KAAK,MAAA;AACH,QAAO,OAAA,aAAA,CAAA;AAAA,MACT;AACE,QAAO,OAAAC,gBAAA,CAAY,QAAQ,iBAAiB,CAAA,CAAA;AAAA,KAChD;AAAA,GACF;AAAA,EACA,cAAgB,EAAA,UAAA;AAAA,EAChB,eAAiB,EAAA,gCAAA;AAAA,EACjB,YAAc,EAAA,MAAA;AAAA,EACd,YAAc,EAAA,cAAA;AAAA,EACd,iCAAmC,EAAA,oBAAA;AAAA,EACnC,4BAA8B,EAAA,QAAA;AAAA,EAC9B,0BAA4B,EAAA,MAAA;AAAA,EAC5B,cAAgB,EAAA,gBAAA;AAAA,EAChB,yBAA2B,EAAA,mBAAA;AAAA,EAC3B,oBAAsB,EAAA,cAAA;AAAA,EACtB,qBAAA,EAAuB,CAAC,IAAA,EAAM,KAC5B,qBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,IACG,QAAA,EAAA;AAAA,MAAA,IAAA;AAAA,MAAK,gBAAA;AAAA,sBAAeC,cAAA,CAAAC,WAAA,EAAA;AAAA,QAAM,KAAA;AAAA,OAAc,CAAA;AAAA,KAAA;AAAA,GAC3C,CAAA;AAAA,EAEF,4BAAA,EAA8B,CAAC,KAAO,EAAA,KAAA,KACpC,GAAG,KAAS,CAAA,CAAA,EAAAL,mBAAA,CAAU,KAAO,EAAA,UAAU,CAAiB,CAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAAA,EAC1D,cAAgB,EAAA,gBAAA;AAAA,EAChB,gBAAkB,EAAA,gBAAA;AAAA,EAClB,oBAAsB,EAAA,KAAA;AAAA,EACtB,gCAAkC,EAAA,cAAA;AAAA,EAClC,2BAA6B,EAAA,uBAAA;AAAA,EAC7B,oBAAsB,EAAA,OAAA;AAAA,EACtB,uBAAyB,EAAA,MAAA;AAAA,EACzB,+BAAiC,EAAA,cAAA;AAAA,EACjC,yBAA2B,EAAA,qBAAA;AAAA,EAC3B,uCAAA,EAAyC,CACvC,IAAA,EACA,IAEA,qBAAAE,eAAA,CAAAC,mBAAA,EAAA;AAAA,IACG,QAAA,EAAA;AAAA,MAAA,IAAA;AAAA,MAAK,YAAA;AAAA,MACL,IAAO,mBAAAD,eAAA,CAAAC,mBAAA,EAAA;AAAA,QAAE,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,UAAK,IAAA;AAAA,SAAA;AAAA,OAAK,CAAM,mBAAAC,cAAA,CAAAD,mBAAA,EAAA;AAAA,QAAE,QAAA,EAAA,cAAA;AAAA,OAAY,CAAA;AAAA,KAAA;AAAA,GAC1C,CAAA;AAAA,EAEF,iCAAA,EAAmC,CAAC,IAAA,EAAiB,IACnD,qBAAAD,eAAA,CAAAC,mBAAA,EAAA;AAAA,IACG,QAAA,EAAA;AAAA,MAAA,IAAA;AAAA,MAAK,gBAAA;AAAA,MAAe,IAAO,mBAAAD,eAAA,CAAAC,mBAAA,EAAA;AAAA,QAAE,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,UAAK,IAAA;AAAA,SAAA;AAAA,OAAK,CAAM,GAAA,IAAA;AAAA,KAAA;AAAA,GAChD,CAAA;AAAA,EAEF,+BAAA,EAAiC,CAAC,IAAA,EAAiB,IACjD,qBAAAD,eAAA,CAAAC,mBAAA,EAAA;AAAA,IACG,QAAA,EAAA;AAAA,MAAA,IAAA;AAAA,MAAK,gBAAA;AAAA,MAAe,IAAO,mBAAAD,eAAA,CAAAC,mBAAA,EAAA;AAAA,QAAE,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,UAAK,IAAA;AAAA,SAAA;AAAA,OAAK,CAAM,GAAA,IAAA;AAAA,KAAA;AAAA,GAChD,CAAA;AAAA,EAEF,oCAAA,EAAsC,CAAC,IACrC,qBAAAD,eAAA,CAAAC,mBAAA,EAAA;AAAA,IAAE,QAAA,EAAA;AAAA,MAAA,aAAA;AAAA,MAAY,IAAA;AAAA,KAAA;AAAA,GAAK,CAAA;AAAA,EAErB,+BAAiC,EAAA,SAAA;AAAA,EACjC,6BAA+B,EAAA,aAAA;AAAA,EAC/B,+BAA+B,MAC7B,gDAAA;AACJ,EAAA;AAEa,MAAA,gBAAA,GAAmBG,oBAAqC,KAAS,CAAA,EAAA;AAEvE,SAAS,aAAa,SAA2C,EAAA;AACtE,EAAM,MAAA,gBAAA,GAAmBC,iBAAW,gBAAgB,CAAA,CAAA;AAEpD,EAAO,OAAAC,aAAA;AAAA,IACL,OAAO;AAAA,MACL,GAAG,gBAAA;AAAA,MACH,GAAG,gBAAA;AAAA,MACH,GAAG,SAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,kBAAkB,SAAS,CAAA;AAAA,GAC9B,CAAA;AACF,CAAA;AAEO,SAAS,iBAAkB,CAAA;AAAA,EAChC,QAAA;AAAA,EACA,SAAW,EAAA,iBAAA;AACb,CAA2B,EAAA;AACzB,EAAM,MAAA,gBAAA,GAAmBD,iBAAW,gBAAgB,CAAA,CAAA;AACpD,EAAA,MAAM,SAAY,GAAAC,aAAA;AAAA,IAChB,OAAO;AAAA,MACL,GAAG,gBAAA;AAAA,MACH,GAAG,gBAAA;AAAA,MACH,GAAG,iBAAA;AAAA,KACL,CAAA;AAAA,IACA,CAAC,kBAAkB,iBAAiB,CAAA;AAAA,GACtC,CAAA;AAEA,EACE,uBAAAJ,cAAA,CAAC,iBAAiB,QAAjB,EAAA;AAAA,IAA0B,KAAO,EAAA,SAAA;AAAA,IAC/B,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;;;;"}
@@ -4,6 +4,7 @@ import { createContext, useContext, useMemo } from 'react';
4
4
  import { Emoji } from './components/internal/Emoji.mjs';
5
5
  import { pluralize } from './utils/pluralize.mjs';
6
6
 
7
+ "use client";
7
8
  const defaultOverrides = {
8
9
  locale: "en",
9
10
  dir: "ltr",
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.mjs","sources":["../src/overrides.tsx"],"sourcesContent":["\"use client\";\n\nimport { assertNever } from \"@liveblocks/core\";\nimport type { PropsWithChildren, ReactNode } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { Emoji } from \"./components/internal/Emoji\";\nimport type { ComposerBodyMark, Direction } from \"./types\";\nimport { pluralize } from \"./utils/pluralize\";\n\nexport interface LocalizationOverrides {\n locale: string;\n dir: Direction;\n}\n\nexport interface GlobalOverrides {\n USER_SELF: string;\n USER_UNKNOWN: string;\n LIST_REMAINING: (count: number) => string;\n LIST_REMAINING_USERS: (count: number) => string;\n LIST_REMAINING_COMMENTS: (count: number) => string;\n EMOJI_PICKER_SEARCH_PLACEHOLDER: string;\n EMOJI_PICKER_EMPTY: ReactNode;\n EMOJI_PICKER_ERROR: (error: Error) => ReactNode;\n ATTACHMENT_TOO_LARGE: (maxSize?: string) => string;\n ATTACHMENT_ERROR: (error: Error) => string;\n}\n\nexport interface CommentOverrides {\n COMMENT_EDITED: ReactNode;\n COMMENT_DELETED: ReactNode;\n COMMENT_MORE: string;\n COMMENT_EDIT: string;\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: string;\n COMMENT_EDIT_COMPOSER_CANCEL: string;\n COMMENT_EDIT_COMPOSER_SAVE: string;\n COMMENT_DELETE: string;\n COMMENT_DELETE_ATTACHMENT: string;\n COMMENT_ADD_REACTION: string;\n COMMENT_REACTION_LIST: (\n list: ReactNode,\n emoji: string,\n count: number\n ) => ReactNode;\n COMMENT_REACTION_DESCRIPTION: (emoji: string, count: number) => string;\n}\n\nexport interface ComposerOverrides {\n COMPOSER_INSERT_MENTION: string;\n COMPOSER_INSERT_EMOJI: string;\n COMPOSER_ATTACH_FILES: string;\n COMPOSER_REMOVE_ATTACHMENT: string;\n COMPOSER_PLACEHOLDER: string;\n COMPOSER_SEND: string;\n COMPOSER_TOGGLE_MARK: (mark: ComposerBodyMark) => string;\n}\n\nexport interface ThreadOverrides {\n THREAD_RESOLVE: string;\n THREAD_UNRESOLVE: string;\n THREAD_NEW_INDICATOR: string;\n THREAD_NEW_INDICATOR_DESCRIPTION: string;\n THREAD_COMPOSER_PLACEHOLDER: string;\n THREAD_COMPOSER_SEND: string;\n}\n\nexport interface InboxNotificationOverrides {\n INBOX_NOTIFICATION_MORE: string;\n INBOX_NOTIFICATION_MARK_AS_READ: string;\n INBOX_NOTIFICATION_DELETE: string;\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode | undefined,\n count: number\n ) => ReactNode;\n INBOX_NOTIFICATION_THREAD_MENTION: (\n user: ReactNode,\n room: ReactNode | undefined\n ) => ReactNode;\n INBOX_NOTIFICATION_TEXT_MENTION: (\n user: ReactNode,\n room: ReactNode | undefined\n ) => ReactNode;\n}\n\nexport interface HistoryVersionPreviewOverrides {\n HISTORY_VERSION_PREVIEW_AUTHORS_LIST: (list: ReactNode) => ReactNode;\n HISTORY_VERSION_PREVIEW_RESTORE: string;\n HISTORY_VERSION_PREVIEW_EMPTY: ReactNode;\n HISTORY_VERSION_PREVIEW_ERROR: (error: Error) => ReactNode;\n}\n\nexport type Overrides = LocalizationOverrides &\n GlobalOverrides &\n ComposerOverrides &\n CommentOverrides &\n ThreadOverrides &\n InboxNotificationOverrides &\n HistoryVersionPreviewOverrides;\n\ntype OverridesProviderProps = PropsWithChildren<{\n overrides?: Partial<Overrides>;\n}>;\n\nexport const defaultOverrides: Overrides = {\n locale: \"en\",\n dir: \"ltr\",\n USER_SELF: \"you\",\n USER_UNKNOWN: \"Anonymous\",\n LIST_REMAINING: (count) => `${count} more`,\n LIST_REMAINING_USERS: (count) => `${count} ${pluralize(count, \"other\")}`,\n LIST_REMAINING_COMMENTS: (count) =>\n `${count} more ${pluralize(count, \"comment\")}`,\n EMOJI_PICKER_SEARCH_PLACEHOLDER: \"Search…\",\n EMOJI_PICKER_EMPTY: \"No emoji found.\",\n EMOJI_PICKER_ERROR: () =>\n \"There was an error while getting the list of emoji.\",\n ATTACHMENT_TOO_LARGE: (maxSize) =>\n maxSize ? `The file is larger than ${maxSize}` : \"The file is too large\",\n ATTACHMENT_ERROR: () => \"The file couldn’t be uploaded.\",\n COMPOSER_INSERT_MENTION: \"Mention someone\",\n COMPOSER_INSERT_EMOJI: \"Add emoji\",\n COMPOSER_ATTACH_FILES: \"Attach files\",\n COMPOSER_REMOVE_ATTACHMENT: \"Remove attachment\",\n COMPOSER_PLACEHOLDER: \"Write a comment…\",\n COMPOSER_SEND: \"Send\",\n COMPOSER_TOGGLE_MARK: (format) => {\n switch (format) {\n case \"bold\":\n return \"Bold\";\n case \"italic\":\n return \"Italic\";\n case \"strikethrough\":\n return \"Strikethrough\";\n case \"code\":\n return \"Inline code\";\n default:\n return assertNever(format, \"Unexpected mark\");\n }\n },\n COMMENT_EDITED: \"(edited)\",\n COMMENT_DELETED: \"This comment has been deleted.\",\n COMMENT_MORE: \"More\",\n COMMENT_EDIT: \"Edit comment\",\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: \"Edit comment…\",\n COMMENT_EDIT_COMPOSER_CANCEL: \"Cancel\",\n COMMENT_EDIT_COMPOSER_SAVE: \"Save\",\n COMMENT_DELETE: \"Delete comment\",\n COMMENT_DELETE_ATTACHMENT: \"Delete attachment\",\n COMMENT_ADD_REACTION: \"Add reaction\",\n COMMENT_REACTION_LIST: (list, emoji) => (\n <>\n {list} reacted with <Emoji emoji={emoji} />\n </>\n ),\n COMMENT_REACTION_DESCRIPTION: (emoji, count) =>\n `${count} ${pluralize(count, \"reaction\")}, react with ${emoji}`,\n THREAD_RESOLVE: \"Resolve thread\",\n THREAD_UNRESOLVE: \"Re-open thread\",\n THREAD_NEW_INDICATOR: \"New\",\n THREAD_NEW_INDICATOR_DESCRIPTION: \"New comments\",\n THREAD_COMPOSER_PLACEHOLDER: \"Reply to thread…\",\n THREAD_COMPOSER_SEND: \"Reply\",\n INBOX_NOTIFICATION_MORE: \"More\",\n INBOX_NOTIFICATION_MARK_AS_READ: \"Mark as read\",\n INBOX_NOTIFICATION_DELETE: \"Delete notification\",\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode\n ) => (\n <>\n {list} commented\n {room ? <> in {room}</> : <> in a thread</>}\n </>\n ),\n INBOX_NOTIFICATION_THREAD_MENTION: (user: ReactNode, room: ReactNode) => (\n <>\n {user} mentioned you{room ? <> in {room}</> : null}\n </>\n ),\n INBOX_NOTIFICATION_TEXT_MENTION: (user: ReactNode, room: ReactNode) => (\n <>\n {user} mentioned you{room ? <> in {room}</> : null}\n </>\n ),\n HISTORY_VERSION_PREVIEW_AUTHORS_LIST: (list: ReactNode) => (\n <>Edits from {list}</>\n ),\n HISTORY_VERSION_PREVIEW_RESTORE: \"Restore\",\n HISTORY_VERSION_PREVIEW_EMPTY: \"No content.\",\n HISTORY_VERSION_PREVIEW_ERROR: () =>\n \"There was an error while getting this version.\",\n};\n\nexport const OverridesContext = createContext<Overrides | undefined>(undefined);\n\nexport function useOverrides(overrides?: Partial<Overrides>): Overrides {\n const contextOverrides = useContext(OverridesContext);\n\n return useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...overrides,\n }),\n [contextOverrides, overrides]\n );\n}\n\nexport function OverridesProvider({\n children,\n overrides: providerOverrides,\n}: OverridesProviderProps) {\n const contextOverrides = useContext(OverridesContext);\n const overrides = useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...providerOverrides,\n }),\n [contextOverrides, providerOverrides]\n );\n\n return (\n <OverridesContext.Provider value={overrides}>\n {children}\n </OverridesContext.Provider>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overrides.mjs","sources":["../src/overrides.tsx"],"sourcesContent":["\"use client\";\n\nimport { assertNever } from \"@liveblocks/core\";\nimport type { PropsWithChildren, ReactNode } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\nimport { Emoji } from \"./components/internal/Emoji\";\nimport type { ComposerBodyMark, Direction } from \"./types\";\nimport { pluralize } from \"./utils/pluralize\";\n\nexport interface LocalizationOverrides {\n locale: string;\n dir: Direction;\n}\n\nexport interface GlobalOverrides {\n USER_SELF: string;\n USER_UNKNOWN: string;\n LIST_REMAINING: (count: number) => string;\n LIST_REMAINING_USERS: (count: number) => string;\n LIST_REMAINING_COMMENTS: (count: number) => string;\n EMOJI_PICKER_SEARCH_PLACEHOLDER: string;\n EMOJI_PICKER_EMPTY: ReactNode;\n EMOJI_PICKER_ERROR: (error: Error) => ReactNode;\n ATTACHMENT_TOO_LARGE: (maxSize?: string) => string;\n ATTACHMENT_ERROR: (error: Error) => string;\n}\n\nexport interface CommentOverrides {\n COMMENT_EDITED: ReactNode;\n COMMENT_DELETED: ReactNode;\n COMMENT_MORE: string;\n COMMENT_EDIT: string;\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: string;\n COMMENT_EDIT_COMPOSER_CANCEL: string;\n COMMENT_EDIT_COMPOSER_SAVE: string;\n COMMENT_DELETE: string;\n COMMENT_DELETE_ATTACHMENT: string;\n COMMENT_ADD_REACTION: string;\n COMMENT_REACTION_LIST: (\n list: ReactNode,\n emoji: string,\n count: number\n ) => ReactNode;\n COMMENT_REACTION_DESCRIPTION: (emoji: string, count: number) => string;\n}\n\nexport interface ComposerOverrides {\n COMPOSER_INSERT_MENTION: string;\n COMPOSER_INSERT_EMOJI: string;\n COMPOSER_ATTACH_FILES: string;\n COMPOSER_REMOVE_ATTACHMENT: string;\n COMPOSER_PLACEHOLDER: string;\n COMPOSER_SEND: string;\n COMPOSER_TOGGLE_MARK: (mark: ComposerBodyMark) => string;\n}\n\nexport interface ThreadOverrides {\n THREAD_RESOLVE: string;\n THREAD_UNRESOLVE: string;\n THREAD_NEW_INDICATOR: string;\n THREAD_NEW_INDICATOR_DESCRIPTION: string;\n THREAD_COMPOSER_PLACEHOLDER: string;\n THREAD_COMPOSER_SEND: string;\n}\n\nexport interface InboxNotificationOverrides {\n INBOX_NOTIFICATION_MORE: string;\n INBOX_NOTIFICATION_MARK_AS_READ: string;\n INBOX_NOTIFICATION_DELETE: string;\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode | undefined,\n count: number\n ) => ReactNode;\n INBOX_NOTIFICATION_THREAD_MENTION: (\n user: ReactNode,\n room: ReactNode | undefined\n ) => ReactNode;\n INBOX_NOTIFICATION_TEXT_MENTION: (\n user: ReactNode,\n room: ReactNode | undefined\n ) => ReactNode;\n}\n\nexport interface HistoryVersionPreviewOverrides {\n HISTORY_VERSION_PREVIEW_AUTHORS_LIST: (list: ReactNode) => ReactNode;\n HISTORY_VERSION_PREVIEW_RESTORE: string;\n HISTORY_VERSION_PREVIEW_EMPTY: ReactNode;\n HISTORY_VERSION_PREVIEW_ERROR: (error: Error) => ReactNode;\n}\n\nexport type Overrides = LocalizationOverrides &\n GlobalOverrides &\n ComposerOverrides &\n CommentOverrides &\n ThreadOverrides &\n InboxNotificationOverrides &\n HistoryVersionPreviewOverrides;\n\ntype OverridesProviderProps = PropsWithChildren<{\n overrides?: Partial<Overrides>;\n}>;\n\nexport const defaultOverrides: Overrides = {\n locale: \"en\",\n dir: \"ltr\",\n USER_SELF: \"you\",\n USER_UNKNOWN: \"Anonymous\",\n LIST_REMAINING: (count) => `${count} more`,\n LIST_REMAINING_USERS: (count) => `${count} ${pluralize(count, \"other\")}`,\n LIST_REMAINING_COMMENTS: (count) =>\n `${count} more ${pluralize(count, \"comment\")}`,\n EMOJI_PICKER_SEARCH_PLACEHOLDER: \"Search…\",\n EMOJI_PICKER_EMPTY: \"No emoji found.\",\n EMOJI_PICKER_ERROR: () =>\n \"There was an error while getting the list of emoji.\",\n ATTACHMENT_TOO_LARGE: (maxSize) =>\n maxSize ? `The file is larger than ${maxSize}` : \"The file is too large\",\n ATTACHMENT_ERROR: () => \"The file couldn’t be uploaded.\",\n COMPOSER_INSERT_MENTION: \"Mention someone\",\n COMPOSER_INSERT_EMOJI: \"Add emoji\",\n COMPOSER_ATTACH_FILES: \"Attach files\",\n COMPOSER_REMOVE_ATTACHMENT: \"Remove attachment\",\n COMPOSER_PLACEHOLDER: \"Write a comment…\",\n COMPOSER_SEND: \"Send\",\n COMPOSER_TOGGLE_MARK: (format) => {\n switch (format) {\n case \"bold\":\n return \"Bold\";\n case \"italic\":\n return \"Italic\";\n case \"strikethrough\":\n return \"Strikethrough\";\n case \"code\":\n return \"Inline code\";\n default:\n return assertNever(format, \"Unexpected mark\");\n }\n },\n COMMENT_EDITED: \"(edited)\",\n COMMENT_DELETED: \"This comment has been deleted.\",\n COMMENT_MORE: \"More\",\n COMMENT_EDIT: \"Edit comment\",\n COMMENT_EDIT_COMPOSER_PLACEHOLDER: \"Edit comment…\",\n COMMENT_EDIT_COMPOSER_CANCEL: \"Cancel\",\n COMMENT_EDIT_COMPOSER_SAVE: \"Save\",\n COMMENT_DELETE: \"Delete comment\",\n COMMENT_DELETE_ATTACHMENT: \"Delete attachment\",\n COMMENT_ADD_REACTION: \"Add reaction\",\n COMMENT_REACTION_LIST: (list, emoji) => (\n <>\n {list} reacted with <Emoji emoji={emoji} />\n </>\n ),\n COMMENT_REACTION_DESCRIPTION: (emoji, count) =>\n `${count} ${pluralize(count, \"reaction\")}, react with ${emoji}`,\n THREAD_RESOLVE: \"Resolve thread\",\n THREAD_UNRESOLVE: \"Re-open thread\",\n THREAD_NEW_INDICATOR: \"New\",\n THREAD_NEW_INDICATOR_DESCRIPTION: \"New comments\",\n THREAD_COMPOSER_PLACEHOLDER: \"Reply to thread…\",\n THREAD_COMPOSER_SEND: \"Reply\",\n INBOX_NOTIFICATION_MORE: \"More\",\n INBOX_NOTIFICATION_MARK_AS_READ: \"Mark as read\",\n INBOX_NOTIFICATION_DELETE: \"Delete notification\",\n INBOX_NOTIFICATION_THREAD_COMMENTS_LIST: (\n list: ReactNode,\n room: ReactNode\n ) => (\n <>\n {list} commented\n {room ? <> in {room}</> : <> in a thread</>}\n </>\n ),\n INBOX_NOTIFICATION_THREAD_MENTION: (user: ReactNode, room: ReactNode) => (\n <>\n {user} mentioned you{room ? <> in {room}</> : null}\n </>\n ),\n INBOX_NOTIFICATION_TEXT_MENTION: (user: ReactNode, room: ReactNode) => (\n <>\n {user} mentioned you{room ? <> in {room}</> : null}\n </>\n ),\n HISTORY_VERSION_PREVIEW_AUTHORS_LIST: (list: ReactNode) => (\n <>Edits from {list}</>\n ),\n HISTORY_VERSION_PREVIEW_RESTORE: \"Restore\",\n HISTORY_VERSION_PREVIEW_EMPTY: \"No content.\",\n HISTORY_VERSION_PREVIEW_ERROR: () =>\n \"There was an error while getting this version.\",\n};\n\nexport const OverridesContext = createContext<Overrides | undefined>(undefined);\n\nexport function useOverrides(overrides?: Partial<Overrides>): Overrides {\n const contextOverrides = useContext(OverridesContext);\n\n return useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...overrides,\n }),\n [contextOverrides, overrides]\n );\n}\n\nexport function OverridesProvider({\n children,\n overrides: providerOverrides,\n}: OverridesProviderProps) {\n const contextOverrides = useContext(OverridesContext);\n const overrides = useMemo(\n () => ({\n ...defaultOverrides,\n ...contextOverrides,\n ...providerOverrides,\n }),\n [contextOverrides, providerOverrides]\n );\n\n return (\n <OverridesContext.Provider value={overrides}>\n {children}\n </OverridesContext.Provider>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -28,9 +28,9 @@ var useIndex = require('../../utils/use-index.js');
28
28
  var useInitial = require('../../utils/use-initial.js');
29
29
  var useObservable = require('../../utils/use-observable.js');
30
30
  var useRefs = require('../../utils/use-refs.js');
31
- var utils$1 = require('../Comment/utils.js');
31
+ var utils = require('../Comment/utils.js');
32
32
  var contexts = require('./contexts.js');
33
- var utils = require('./utils.js');
33
+ var utils$1 = require('./utils.js');
34
34
 
35
35
  function _interopNamespaceDefault(e) {
36
36
  var n = Object.create(null);
@@ -51,6 +51,7 @@ function _interopNamespaceDefault(e) {
51
51
 
52
52
  var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(TogglePrimitive);
53
53
 
54
+ "use client";
54
55
  const MENTION_SUGGESTIONS_POSITION = "top";
55
56
  const FLOATING_TOOLBAR_POSITION = "top";
56
57
  const COMPOSER_MENTION_NAME = "ComposerMention";
@@ -115,7 +116,7 @@ function ComposerEditorLinkWrapper({
115
116
  children
116
117
  }) {
117
118
  const href = react.useMemo(
118
- () => utils$1.toAbsoluteUrl(element.url) ?? element.url,
119
+ () => utils.toAbsoluteUrl(element.url) ?? element.url,
119
120
  [element.url]
120
121
  );
121
122
  return /* @__PURE__ */ jsxRuntime.jsx("span", {
@@ -143,7 +144,7 @@ function ComposerEditorMentionSuggestionsWrapper({
143
144
  const { onEditorChange } = contexts.useComposerEditorContext();
144
145
  const { isFocused } = contexts.useComposer();
145
146
  const { portalContainer } = config.useLiveblocksUIConfig();
146
- const [contentRef, contentZIndex] = utils.useContentZIndex();
147
+ const [contentRef, contentZIndex] = utils$1.useContentZIndex();
147
148
  const isOpen = isFocused && mentionDraft?.range !== void 0 && userIds !== void 0;
148
149
  const {
149
150
  refs: { setReference, setFloating },
@@ -152,7 +153,7 @@ function ComposerEditorMentionSuggestionsWrapper({
152
153
  placement,
153
154
  x,
154
155
  y
155
- } = utils.useFloatingWithOptions({
156
+ } = utils$1.useFloatingWithOptions({
156
157
  position,
157
158
  dir,
158
159
  alignment: "start",
@@ -212,7 +213,7 @@ function ComposerEditorFloatingToolbarWrapper({
212
213
  const { onEditorChange } = contexts.useComposerEditorContext();
213
214
  const { isFocused } = contexts.useComposer();
214
215
  const { portalContainer } = config.useLiveblocksUIConfig();
215
- const [contentRef, contentZIndex] = utils.useContentZIndex();
216
+ const [contentRef, contentZIndex] = utils$1.useContentZIndex();
216
217
  const [isPointerDown, setPointerDown] = react.useState(false);
217
218
  const isOpen = isFocused && !isPointerDown && hasFloatingToolbarRange;
218
219
  const {
@@ -222,7 +223,7 @@ function ComposerEditorFloatingToolbarWrapper({
222
223
  placement,
223
224
  x,
224
225
  y
225
- } = utils.useFloatingWithOptions({
226
+ } = utils$1.useFloatingWithOptions({
226
227
  type: "range",
227
228
  position,
228
229
  dir,
@@ -291,7 +292,7 @@ const ComposerFloatingToolbar = react.forwardRef(({ children, onPointerDown, sty
291
292
  } = contexts.useComposerFloatingToolbarContext(COMPOSER_FLOATING_TOOLBAR_NAME);
292
293
  const mergedRefs = useRefs.useRefs(forwardedRef, contentRef, ref);
293
294
  const [side, align] = react.useMemo(
294
- () => utils.getSideAndAlignFromFloatingPlacement(placement),
295
+ () => utils$1.getSideAndAlignFromFloatingPlacement(placement),
295
296
  [placement]
296
297
  );
297
298
  const Component = asChild ? reactSlot.Slot : "div";
@@ -425,7 +426,7 @@ const ComposerSuggestions = react.forwardRef(({ children, style, asChild, ...pro
425
426
  } = contexts.useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_NAME);
426
427
  const mergedRefs = useRefs.useRefs(forwardedRef, contentRef, ref);
427
428
  const [side, align] = react.useMemo(
428
- () => utils.getSideAndAlignFromFloatingPlacement(placement),
429
+ () => utils$1.getSideAndAlignFromFloatingPlacement(placement),
429
430
  [placement]
430
431
  );
431
432
  const Component = asChild ? reactSlot.Slot : "div";
@@ -578,7 +579,7 @@ const ComposerEditor = react.forwardRef(
578
579
  const isDisabled = isComposerDisabled || disabled;
579
580
  const initialBody = useInitial.useInitial(defaultValue ?? emptyCommentBody);
580
581
  const initialEditorValue = react.useMemo(() => {
581
- return utils.commentBodyToComposerBody(initialBody);
582
+ return utils$1.commentBodyToComposerBody(initialBody);
582
583
  }, [initialBody]);
583
584
  const { Link, Mention, MentionSuggestions, FloatingToolbar } = react.useMemo(
584
585
  () => ({ ...defaultEditorComponents, ...components }),
@@ -881,7 +882,7 @@ const ComposerForm = react.forwardRef(
881
882
  addAttachments,
882
883
  removeAttachment,
883
884
  clearAttachments
884
- } = utils.useComposerAttachmentsManager(defaultAttachments, {
885
+ } = utils$1.useComposerAttachmentsManager(defaultAttachments, {
885
886
  maxFileSize: maxAttachmentSize,
886
887
  roomId
887
888
  });
@@ -1033,7 +1034,7 @@ const ComposerForm = react.forwardRef(
1033
1034
  event.preventDefault();
1034
1035
  return;
1035
1036
  }
1036
- const body = utils.composerBodyToCommentBody(
1037
+ const body = utils$1.composerBodyToCommentBody(
1037
1038
  editor.children
1038
1039
  );
1039
1040
  const commentAttachments = attachments.filter(
@@ -1182,7 +1183,7 @@ const ComposerAttachmentsDropArea = react.forwardRef(
1182
1183
  const Component = asChild ? reactSlot.Slot : "div";
1183
1184
  const { isDisabled: isComposerDisabled } = contexts.useComposer();
1184
1185
  const isDisabled = isComposerDisabled || disabled;
1185
- const [, dropAreaProps] = utils.useComposerAttachmentsDropArea({
1186
+ const [, dropAreaProps] = utils$1.useComposerAttachmentsDropArea({
1186
1187
  onDragEnter,
1187
1188
  onDragLeave,
1188
1189
  onDragOver,