@liveblocks/react-ui 2.14.0 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_private/index.d.mts +24 -22
- package/dist/_private/index.d.ts +24 -22
- package/dist/_private/index.js +1 -0
- package/dist/_private/index.js.map +1 -1
- package/dist/_private/index.mjs +1 -0
- package/dist/_private/index.mjs.map +1 -1
- package/dist/components/Comment.js +358 -256
- package/dist/components/Comment.js.map +1 -1
- package/dist/components/Comment.mjs +334 -232
- package/dist/components/Comment.mjs.map +1 -1
- package/dist/components/Composer.js +308 -225
- package/dist/components/Composer.js.map +1 -1
- package/dist/components/Composer.mjs +288 -206
- package/dist/components/Composer.mjs.map +1 -1
- package/dist/components/HistoryVersionSummary.js +28 -32
- package/dist/components/HistoryVersionSummary.js.map +1 -1
- package/dist/components/HistoryVersionSummary.mjs +27 -31
- package/dist/components/HistoryVersionSummary.mjs.map +1 -1
- package/dist/components/HistoryVersionSummaryList.js +11 -9
- package/dist/components/HistoryVersionSummaryList.js.map +1 -1
- package/dist/components/HistoryVersionSummaryList.mjs +10 -8
- package/dist/components/HistoryVersionSummaryList.mjs.map +1 -1
- package/dist/components/InboxNotification.js +202 -143
- package/dist/components/InboxNotification.js.map +1 -1
- package/dist/components/InboxNotification.mjs +180 -121
- package/dist/components/InboxNotification.mjs.map +1 -1
- package/dist/components/InboxNotificationList.js +19 -14
- package/dist/components/InboxNotificationList.js.map +1 -1
- package/dist/components/InboxNotificationList.mjs +17 -12
- package/dist/components/InboxNotificationList.mjs.map +1 -1
- package/dist/components/Thread.js +104 -86
- package/dist/components/Thread.js.map +1 -1
- package/dist/components/Thread.mjs +93 -75
- package/dist/components/Thread.mjs.map +1 -1
- package/dist/components/internal/Attachment.js +161 -113
- package/dist/components/internal/Attachment.js.map +1 -1
- package/dist/components/internal/Attachment.mjs +150 -102
- package/dist/components/internal/Attachment.mjs.map +1 -1
- package/dist/components/internal/Attribution.js +15 -13
- package/dist/components/internal/Attribution.js.map +1 -1
- package/dist/components/internal/Attribution.mjs +15 -13
- package/dist/components/internal/Attribution.mjs.map +1 -1
- package/dist/components/internal/Avatar.js +27 -20
- package/dist/components/internal/Avatar.js.map +1 -1
- package/dist/components/internal/Avatar.mjs +23 -16
- package/dist/components/internal/Avatar.mjs.map +1 -1
- package/dist/components/internal/Button.js +5 -4
- package/dist/components/internal/Button.js.map +1 -1
- package/dist/components/internal/Button.mjs +4 -3
- package/dist/components/internal/Button.mjs.map +1 -1
- package/dist/components/internal/Dropdown.js +27 -19
- package/dist/components/internal/Dropdown.js.map +1 -1
- package/dist/components/internal/Dropdown.mjs +26 -18
- package/dist/components/internal/Dropdown.mjs.map +1 -1
- package/dist/components/internal/Emoji.js +4 -3
- package/dist/components/internal/Emoji.js.map +1 -1
- package/dist/components/internal/Emoji.mjs +3 -2
- package/dist/components/internal/Emoji.mjs.map +1 -1
- package/dist/components/internal/EmojiPicker.js +96 -72
- package/dist/components/internal/EmojiPicker.js.map +1 -1
- package/dist/components/internal/EmojiPicker.mjs +90 -66
- package/dist/components/internal/EmojiPicker.mjs.map +1 -1
- package/dist/components/internal/Icon.js +5 -4
- package/dist/components/internal/Icon.js.map +1 -1
- package/dist/components/internal/Icon.mjs +5 -4
- package/dist/components/internal/Icon.mjs.map +1 -1
- package/dist/components/internal/InboxNotificationThread.js +53 -38
- package/dist/components/internal/InboxNotificationThread.js.map +1 -1
- package/dist/components/internal/InboxNotificationThread.mjs +53 -38
- package/dist/components/internal/InboxNotificationThread.mjs.map +1 -1
- package/dist/components/internal/List.js +8 -6
- package/dist/components/internal/List.js.map +1 -1
- package/dist/components/internal/List.mjs +6 -4
- package/dist/components/internal/List.mjs.map +1 -1
- package/dist/components/internal/Room.js +8 -6
- package/dist/components/internal/Room.js.map +1 -1
- package/dist/components/internal/Room.mjs +7 -5
- package/dist/components/internal/Room.mjs.map +1 -1
- package/dist/components/internal/Tooltip.js +49 -33
- package/dist/components/internal/Tooltip.js.map +1 -1
- package/dist/components/internal/Tooltip.mjs +46 -30
- package/dist/components/internal/Tooltip.mjs.map +1 -1
- package/dist/components/internal/User.js +8 -6
- package/dist/components/internal/User.js.map +1 -1
- package/dist/components/internal/User.mjs +7 -5
- package/dist/components/internal/User.mjs.map +1 -1
- package/dist/components.js +12 -29
- package/dist/components.js.map +1 -1
- package/dist/components.mjs +6 -5
- package/dist/components.mjs.map +1 -1
- package/dist/config.js +16 -12
- package/dist/config.js.map +1 -1
- package/dist/config.mjs +13 -9
- package/dist/config.mjs.map +1 -1
- package/dist/icons/ArrowDown.js +7 -6
- package/dist/icons/ArrowDown.js.map +1 -1
- package/dist/icons/ArrowDown.mjs +7 -6
- package/dist/icons/ArrowDown.mjs.map +1 -1
- package/dist/icons/ArrowUp.js +7 -6
- package/dist/icons/ArrowUp.js.map +1 -1
- package/dist/icons/ArrowUp.mjs +7 -6
- package/dist/icons/ArrowUp.mjs.map +1 -1
- package/dist/icons/Attachment.js +7 -6
- package/dist/icons/Attachment.js.map +1 -1
- package/dist/icons/Attachment.mjs +7 -6
- package/dist/icons/Attachment.mjs.map +1 -1
- package/dist/icons/Bold.js +7 -6
- package/dist/icons/Bold.js.map +1 -1
- package/dist/icons/Bold.mjs +7 -6
- package/dist/icons/Bold.mjs.map +1 -1
- package/dist/icons/Check.js +7 -6
- package/dist/icons/Check.js.map +1 -1
- package/dist/icons/Check.mjs +7 -6
- package/dist/icons/Check.mjs.map +1 -1
- package/dist/icons/Code.js +7 -6
- package/dist/icons/Code.js.map +1 -1
- package/dist/icons/Code.mjs +7 -6
- package/dist/icons/Code.mjs.map +1 -1
- package/dist/icons/Cross.js +12 -8
- package/dist/icons/Cross.js.map +1 -1
- package/dist/icons/Cross.mjs +12 -8
- package/dist/icons/Cross.mjs.map +1 -1
- package/dist/icons/Delete.js +7 -6
- package/dist/icons/Delete.js.map +1 -1
- package/dist/icons/Delete.mjs +7 -6
- package/dist/icons/Delete.mjs.map +1 -1
- package/dist/icons/Edit.js +7 -6
- package/dist/icons/Edit.js.map +1 -1
- package/dist/icons/Edit.mjs +7 -6
- package/dist/icons/Edit.mjs.map +1 -1
- package/dist/icons/Ellipsis.js +21 -16
- package/dist/icons/Ellipsis.js.map +1 -1
- package/dist/icons/Ellipsis.mjs +21 -16
- package/dist/icons/Ellipsis.mjs.map +1 -1
- package/dist/icons/Emoji.js +25 -18
- package/dist/icons/Emoji.js.map +1 -1
- package/dist/icons/Emoji.mjs +25 -18
- package/dist/icons/Emoji.mjs.map +1 -1
- package/dist/icons/EmojiAdd.js +28 -20
- package/dist/icons/EmojiAdd.js.map +1 -1
- package/dist/icons/EmojiAdd.mjs +28 -20
- package/dist/icons/EmojiAdd.mjs.map +1 -1
- package/dist/icons/Italic.js +7 -6
- package/dist/icons/Italic.js.map +1 -1
- package/dist/icons/Italic.mjs +7 -6
- package/dist/icons/Italic.mjs.map +1 -1
- package/dist/icons/Mention.js +12 -8
- package/dist/icons/Mention.js.map +1 -1
- package/dist/icons/Mention.mjs +12 -8
- package/dist/icons/Mention.mjs.map +1 -1
- package/dist/icons/Resolve.js +14 -10
- package/dist/icons/Resolve.js.map +1 -1
- package/dist/icons/Resolve.mjs +14 -10
- package/dist/icons/Resolve.mjs.map +1 -1
- package/dist/icons/Resolved.js +16 -12
- package/dist/icons/Resolved.js.map +1 -1
- package/dist/icons/Resolved.mjs +16 -12
- package/dist/icons/Resolved.mjs.map +1 -1
- package/dist/icons/Restore.js +12 -8
- package/dist/icons/Restore.js.map +1 -1
- package/dist/icons/Restore.mjs +12 -8
- package/dist/icons/Restore.mjs.map +1 -1
- package/dist/icons/Search.js +7 -6
- package/dist/icons/Search.js.map +1 -1
- package/dist/icons/Search.mjs +7 -6
- package/dist/icons/Search.mjs.map +1 -1
- package/dist/icons/Send.js +7 -6
- package/dist/icons/Send.js.map +1 -1
- package/dist/icons/Send.mjs +7 -6
- package/dist/icons/Send.mjs.map +1 -1
- package/dist/icons/Spinner.js +8 -7
- package/dist/icons/Spinner.js.map +1 -1
- package/dist/icons/Spinner.mjs +8 -7
- package/dist/icons/Spinner.mjs.map +1 -1
- package/dist/icons/Strikethrough.js +7 -6
- package/dist/icons/Strikethrough.js.map +1 -1
- package/dist/icons/Strikethrough.mjs +7 -6
- package/dist/icons/Strikethrough.mjs.map +1 -1
- package/dist/icons/Warning.js +14 -10
- package/dist/icons/Warning.js.map +1 -1
- package/dist/icons/Warning.mjs +14 -10
- package/dist/icons/Warning.mjs.map +1 -1
- package/dist/icons/index.js +42 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/icons/index.mjs +19 -0
- package/dist/icons/index.mjs.map +1 -0
- package/dist/index.d.mts +14 -12
- package/dist/index.d.ts +14 -12
- package/dist/overrides.js +65 -36
- package/dist/overrides.js.map +1 -1
- package/dist/overrides.mjs +59 -12
- package/dist/overrides.mjs.map +1 -1
- package/dist/primitives/Comment/index.js +75 -66
- package/dist/primitives/Comment/index.js.map +1 -1
- package/dist/primitives/Comment/index.mjs +71 -62
- package/dist/primitives/Comment/index.mjs.map +1 -1
- package/dist/primitives/Composer/contexts.js +11 -11
- package/dist/primitives/Composer/index.js +343 -284
- package/dist/primitives/Composer/index.js.map +1 -1
- package/dist/primitives/Composer/index.mjs +262 -203
- package/dist/primitives/Composer/index.mjs.map +1 -1
- package/dist/primitives/Composer/utils.js +20 -21
- package/dist/primitives/Composer/utils.js.map +1 -1
- package/dist/primitives/Composer/utils.mjs +4 -5
- package/dist/primitives/Composer/utils.mjs.map +1 -1
- package/dist/primitives/EmojiPicker/contexts.js +3 -3
- package/dist/primitives/EmojiPicker/index.js +160 -142
- package/dist/primitives/EmojiPicker/index.js.map +1 -1
- package/dist/primitives/EmojiPicker/index.mjs +122 -104
- package/dist/primitives/EmojiPicker/index.mjs.map +1 -1
- package/dist/primitives/FileSize.js +9 -7
- package/dist/primitives/FileSize.js.map +1 -1
- package/dist/primitives/FileSize.mjs +7 -5
- package/dist/primitives/FileSize.mjs.map +1 -1
- package/dist/primitives/Timestamp.js +12 -10
- package/dist/primitives/Timestamp.js.map +1 -1
- package/dist/primitives/Timestamp.mjs +7 -5
- package/dist/primitives/Timestamp.mjs.map +1 -1
- package/dist/primitives/index.d.mts +24 -23
- package/dist/primitives/index.d.ts +24 -23
- package/dist/primitives/internal/Emoji.js +7 -5
- package/dist/primitives/internal/Emoji.js.map +1 -1
- package/dist/primitives/internal/Emoji.mjs +6 -4
- package/dist/primitives/internal/Emoji.mjs.map +1 -1
- package/dist/shared.js +2 -7
- package/dist/shared.js.map +1 -1
- package/dist/shared.mjs +2 -7
- package/dist/shared.mjs.map +1 -1
- package/dist/slate/plugins/auto-links.mjs +1 -1
- package/dist/slate/plugins/custom-links.mjs +1 -1
- package/dist/slate/plugins/mentions.mjs +1 -1
- package/dist/utils/Persist.js +19 -18
- package/dist/utils/Persist.js.map +1 -1
- package/dist/utils/Persist.mjs +7 -6
- package/dist/utils/Persist.mjs.map +1 -1
- package/dist/utils/Portal.js +5 -4
- package/dist/utils/Portal.js.map +1 -1
- package/dist/utils/Portal.mjs +4 -3
- package/dist/utils/Portal.mjs.map +1 -1
- package/dist/utils/use-controllable-state.js +5 -5
- package/dist/utils/use-index.js +7 -7
- package/dist/utils/use-initial.js +2 -2
- package/dist/utils/use-interval.js +4 -4
- package/dist/utils/use-latest.js +3 -3
- package/dist/utils/use-observable.js +2 -2
- package/dist/utils/use-refs.js +2 -2
- package/dist/utils/use-rerender.js +2 -2
- package/dist/utils/use-visible.js +24 -2
- package/dist/utils/use-visible.js.map +1 -1
- package/dist/utils/use-visible.mjs +23 -2
- package/dist/utils/use-visible.mjs.map +1 -1
- package/dist/utils/use-window-focus.js +2 -2
- package/dist/utils/use-window-focus.js.map +1 -1
- package/dist/utils/use-window-focus.mjs +1 -1
- package/dist/utils/use-window-focus.mjs.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/dist/version.mjs +2 -2
- package/dist/version.mjs.map +1 -1
- package/package.json +10 -25
- package/dist/utils/use-id.js +0 -29
- package/dist/utils/use-id.js.map +0 -1
- package/dist/utils/use-id.mjs +0 -27
- package/dist/utils/use-id.mjs.map +0 -1
- package/dist/utils/use-layout-effect.js +0 -8
- package/dist/utils/use-layout-effect.js.map +0 -1
- package/dist/utils/use-layout-effect.mjs +0 -6
- package/dist/utils/use-layout-effect.mjs.map +0 -1
- package/dist/utils/use-transition.js +0 -16
- package/dist/utils/use-transition.js.map +0 -1
- package/dist/utils/use-transition.mjs +0 -14
- package/dist/utils/use-transition.mjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
'use client';
|
|
2
1
|
'use strict';
|
|
3
2
|
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var TooltipPrimitive = require('@radix-ui/react-tooltip');
|
|
5
|
-
var
|
|
5
|
+
var react = require('react');
|
|
6
6
|
var config = require('../../config.js');
|
|
7
7
|
var constants = require('../../constants.js');
|
|
8
8
|
var classNames = require('../../utils/class-names.js');
|
|
@@ -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" },
|
|
@@ -37,48 +38,63 @@ const KEYS = {
|
|
|
37
38
|
return { title: "Enter", key: "\u23CE" };
|
|
38
39
|
}
|
|
39
40
|
};
|
|
40
|
-
const Tooltip =
|
|
41
|
+
const Tooltip = react.forwardRef(
|
|
41
42
|
({ children, content, multiline, className, ...props }, forwardedRef) => {
|
|
42
43
|
const { portalContainer } = config.useLiveblocksUIConfig();
|
|
43
|
-
return /* @__PURE__ */
|
|
44
|
-
disableHoverableContent: true
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
44
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(TooltipPrimitive__namespace.Root, {
|
|
45
|
+
disableHoverableContent: true,
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, {
|
|
48
|
+
asChild: true,
|
|
49
|
+
ref: forwardedRef,
|
|
50
|
+
children
|
|
51
|
+
}),
|
|
52
|
+
/* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, {
|
|
53
|
+
container: portalContainer,
|
|
54
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Content, {
|
|
55
|
+
className: classNames.classNames(
|
|
56
|
+
"lb-root lb-portal lb-tooltip",
|
|
57
|
+
multiline && "lb-tooltip:multiline",
|
|
58
|
+
className
|
|
59
|
+
),
|
|
60
|
+
side: "top",
|
|
61
|
+
align: "center",
|
|
62
|
+
sideOffset: constants.FLOATING_ELEMENT_SIDE_OFFSET,
|
|
63
|
+
collisionPadding: constants.FLOATING_ELEMENT_COLLISION_PADDING,
|
|
64
|
+
...props,
|
|
65
|
+
children: content
|
|
66
|
+
})
|
|
67
|
+
})
|
|
68
|
+
]
|
|
69
|
+
});
|
|
62
70
|
}
|
|
63
71
|
);
|
|
64
|
-
const ShortcutTooltip =
|
|
65
|
-
return /* @__PURE__ */
|
|
66
|
-
content: /* @__PURE__ */
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
const ShortcutTooltip = react.forwardRef(({ children, content, shortcut, ...props }, forwardedRef) => {
|
|
73
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Tooltip, {
|
|
74
|
+
content: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
75
|
+
children: [
|
|
76
|
+
content,
|
|
77
|
+
shortcut && /* @__PURE__ */ jsxRuntime.jsx("kbd", {
|
|
78
|
+
className: "lb-tooltip-shortcut",
|
|
79
|
+
children: shortcut
|
|
80
|
+
})
|
|
81
|
+
]
|
|
82
|
+
}),
|
|
69
83
|
...props,
|
|
70
|
-
ref: forwardedRef
|
|
71
|
-
|
|
84
|
+
ref: forwardedRef,
|
|
85
|
+
children
|
|
86
|
+
});
|
|
72
87
|
});
|
|
73
88
|
function ShortcutTooltipKey({
|
|
74
89
|
name,
|
|
75
90
|
...props
|
|
76
91
|
}) {
|
|
77
|
-
const { title, key } =
|
|
78
|
-
return /* @__PURE__ */
|
|
92
|
+
const { title, key } = react.useMemo(() => KEYS[name]?.(), [name]);
|
|
93
|
+
return /* @__PURE__ */ jsxRuntime.jsx("abbr", {
|
|
79
94
|
title,
|
|
80
|
-
...props
|
|
81
|
-
|
|
95
|
+
...props,
|
|
96
|
+
children: key
|
|
97
|
+
});
|
|
82
98
|
}
|
|
83
99
|
|
|
84
100
|
Object.defineProperty(exports, 'TooltipProvider', {
|
|
@@ -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
|
|
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,12 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
3
3
|
export { TooltipProvider } from '@radix-ui/react-tooltip';
|
|
4
|
-
import
|
|
4
|
+
import { forwardRef, useMemo } from 'react';
|
|
5
5
|
import { useLiveblocksUIConfig } from '../../config.mjs';
|
|
6
6
|
import { FLOATING_ELEMENT_SIDE_OFFSET, FLOATING_ELEMENT_COLLISION_PADDING } from '../../constants.mjs';
|
|
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" },
|
|
@@ -20,45 +21,60 @@ const KEYS = {
|
|
|
20
21
|
const Tooltip = forwardRef(
|
|
21
22
|
({ children, content, multiline, className, ...props }, forwardedRef) => {
|
|
22
23
|
const { portalContainer } = useLiveblocksUIConfig();
|
|
23
|
-
return /* @__PURE__ */
|
|
24
|
-
disableHoverableContent: true
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
24
|
+
return /* @__PURE__ */ jsxs(TooltipPrimitive.Root, {
|
|
25
|
+
disableHoverableContent: true,
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ jsx(TooltipPrimitive.Trigger, {
|
|
28
|
+
asChild: true,
|
|
29
|
+
ref: forwardedRef,
|
|
30
|
+
children
|
|
31
|
+
}),
|
|
32
|
+
/* @__PURE__ */ jsx(TooltipPrimitive.Portal, {
|
|
33
|
+
container: portalContainer,
|
|
34
|
+
children: /* @__PURE__ */ jsx(TooltipPrimitive.Content, {
|
|
35
|
+
className: classNames(
|
|
36
|
+
"lb-root lb-portal lb-tooltip",
|
|
37
|
+
multiline && "lb-tooltip:multiline",
|
|
38
|
+
className
|
|
39
|
+
),
|
|
40
|
+
side: "top",
|
|
41
|
+
align: "center",
|
|
42
|
+
sideOffset: FLOATING_ELEMENT_SIDE_OFFSET,
|
|
43
|
+
collisionPadding: FLOATING_ELEMENT_COLLISION_PADDING,
|
|
44
|
+
...props,
|
|
45
|
+
children: content
|
|
46
|
+
})
|
|
47
|
+
})
|
|
48
|
+
]
|
|
49
|
+
});
|
|
42
50
|
}
|
|
43
51
|
);
|
|
44
52
|
const ShortcutTooltip = forwardRef(({ children, content, shortcut, ...props }, forwardedRef) => {
|
|
45
|
-
return /* @__PURE__ */
|
|
46
|
-
content: /* @__PURE__ */
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
return /* @__PURE__ */ jsx(Tooltip, {
|
|
54
|
+
content: /* @__PURE__ */ jsxs(Fragment, {
|
|
55
|
+
children: [
|
|
56
|
+
content,
|
|
57
|
+
shortcut && /* @__PURE__ */ jsx("kbd", {
|
|
58
|
+
className: "lb-tooltip-shortcut",
|
|
59
|
+
children: shortcut
|
|
60
|
+
})
|
|
61
|
+
]
|
|
62
|
+
}),
|
|
49
63
|
...props,
|
|
50
|
-
ref: forwardedRef
|
|
51
|
-
|
|
64
|
+
ref: forwardedRef,
|
|
65
|
+
children
|
|
66
|
+
});
|
|
52
67
|
});
|
|
53
68
|
function ShortcutTooltipKey({
|
|
54
69
|
name,
|
|
55
70
|
...props
|
|
56
71
|
}) {
|
|
57
72
|
const { title, key } = useMemo(() => KEYS[name]?.(), [name]);
|
|
58
|
-
return /* @__PURE__ */
|
|
73
|
+
return /* @__PURE__ */ jsx("abbr", {
|
|
59
74
|
title,
|
|
60
|
-
...props
|
|
61
|
-
|
|
75
|
+
...props,
|
|
76
|
+
children: key
|
|
77
|
+
});
|
|
62
78
|
}
|
|
63
79
|
|
|
64
80
|
export { ShortcutTooltip, ShortcutTooltipKey, Tooltip };
|
|
@@ -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
|
|
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":"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"}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
'use client';
|
|
2
1
|
'use strict';
|
|
3
2
|
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var react = require('@liveblocks/react');
|
|
5
|
-
var
|
|
5
|
+
var react$1 = require('react');
|
|
6
6
|
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);
|
|
13
14
|
const $ = overrides.useOverrides();
|
|
14
|
-
const resolvedUserName =
|
|
15
|
+
const resolvedUserName = react$1.useMemo(() => {
|
|
15
16
|
return replaceSelf && currentId === userId ? $.USER_SELF : user?.name ?? $.USER_UNKNOWN;
|
|
16
17
|
}, [replaceSelf, currentId, userId, $.USER_SELF, $.USER_UNKNOWN, user?.name]);
|
|
17
|
-
return /* @__PURE__ */
|
|
18
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", {
|
|
18
19
|
className: classNames.classNames("lb-name lb-user", className),
|
|
19
20
|
"data-loading": isLoading ? "" : void 0,
|
|
20
|
-
...props
|
|
21
|
-
|
|
21
|
+
...props,
|
|
22
|
+
children: isLoading ? null : resolvedUserName
|
|
23
|
+
});
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
exports.User = User;
|
|
@@ -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
|
|
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;;;;"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useUser } from '@liveblocks/react';
|
|
3
|
-
import
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
4
|
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);
|
|
@@ -12,11 +13,12 @@ function User({ userId, replaceSelf, className, ...props }) {
|
|
|
12
13
|
const resolvedUserName = useMemo(() => {
|
|
13
14
|
return replaceSelf && currentId === userId ? $.USER_SELF : user?.name ?? $.USER_UNKNOWN;
|
|
14
15
|
}, [replaceSelf, currentId, userId, $.USER_SELF, $.USER_UNKNOWN, user?.name]);
|
|
15
|
-
return /* @__PURE__ */
|
|
16
|
+
return /* @__PURE__ */ jsx("span", {
|
|
16
17
|
className: classNames("lb-name lb-user", className),
|
|
17
18
|
"data-loading": isLoading ? "" : void 0,
|
|
18
|
-
...props
|
|
19
|
-
|
|
19
|
+
...props,
|
|
20
|
+
children: isLoading ? null : resolvedUserName
|
|
21
|
+
});
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
export { User };
|
|
@@ -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
|
|
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;;;;"}
|
package/dist/components.js
CHANGED
|
@@ -1,36 +1,18 @@
|
|
|
1
|
-
'use client';
|
|
2
1
|
'use strict';
|
|
3
2
|
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
function _interopNamespaceDefault(e) {
|
|
7
|
-
var n = Object.create(null);
|
|
8
|
-
if (e) {
|
|
9
|
-
Object.keys(e).forEach(function (k) {
|
|
10
|
-
if (k !== 'default') {
|
|
11
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () { return e[k]; }
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
n.default = e;
|
|
20
|
-
return Object.freeze(n);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
24
5
|
|
|
6
|
+
"use client";
|
|
25
7
|
const defaultComponents = {
|
|
26
8
|
Anchor: "a"
|
|
27
9
|
};
|
|
28
|
-
const ComponentsContext =
|
|
10
|
+
const ComponentsContext = react.createContext(
|
|
29
11
|
void 0
|
|
30
12
|
);
|
|
31
13
|
function useComponents(components) {
|
|
32
|
-
const contextComponents =
|
|
33
|
-
return
|
|
14
|
+
const contextComponents = react.useContext(ComponentsContext);
|
|
15
|
+
return react.useMemo(
|
|
34
16
|
() => ({
|
|
35
17
|
...defaultComponents,
|
|
36
18
|
...contextComponents,
|
|
@@ -43,8 +25,8 @@ function ComponentsProvider({
|
|
|
43
25
|
children,
|
|
44
26
|
components: providerComponents
|
|
45
27
|
}) {
|
|
46
|
-
const contextComponents =
|
|
47
|
-
const components =
|
|
28
|
+
const contextComponents = react.useContext(ComponentsContext);
|
|
29
|
+
const components = react.useMemo(
|
|
48
30
|
() => ({
|
|
49
31
|
...defaultComponents,
|
|
50
32
|
...contextComponents,
|
|
@@ -52,9 +34,10 @@ function ComponentsProvider({
|
|
|
52
34
|
}),
|
|
53
35
|
[contextComponents, providerComponents]
|
|
54
36
|
);
|
|
55
|
-
return /* @__PURE__ */
|
|
56
|
-
value: components
|
|
57
|
-
|
|
37
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ComponentsContext.Provider, {
|
|
38
|
+
value: components,
|
|
39
|
+
children
|
|
40
|
+
});
|
|
58
41
|
}
|
|
59
42
|
|
|
60
43
|
exports.ComponentsContext = ComponentsContext;
|
package/dist/components.js.map
CHANGED
|
@@ -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\";\
|
|
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;;;;;;;"}
|
package/dist/components.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import * as React from 'react';
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
2
|
import { createContext, useContext, useMemo } from 'react';
|
|
4
3
|
|
|
4
|
+
"use client";
|
|
5
5
|
const defaultComponents = {
|
|
6
6
|
Anchor: "a"
|
|
7
7
|
};
|
|
@@ -32,9 +32,10 @@ function ComponentsProvider({
|
|
|
32
32
|
}),
|
|
33
33
|
[contextComponents, providerComponents]
|
|
34
34
|
);
|
|
35
|
-
return /* @__PURE__ */
|
|
36
|
-
value: components
|
|
37
|
-
|
|
35
|
+
return /* @__PURE__ */ jsx(ComponentsContext.Provider, {
|
|
36
|
+
value: components,
|
|
37
|
+
children
|
|
38
|
+
});
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
export { ComponentsContext, ComponentsProvider, defaultComponents, useComponents };
|
package/dist/components.mjs.map
CHANGED
|
@@ -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\";\
|
|
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
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
'use client';
|
|
2
1
|
'use strict';
|
|
3
2
|
|
|
4
|
-
var
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
5
|
var components = require('./components.js');
|
|
6
6
|
var overrides = require('./overrides.js');
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
"use client";
|
|
9
|
+
const LiveblocksUIConfigContext = react.createContext({});
|
|
9
10
|
function useLiveblocksUIConfig() {
|
|
10
|
-
return
|
|
11
|
+
return react.useContext(LiveblocksUIConfigContext);
|
|
11
12
|
}
|
|
12
13
|
function LiveblocksUIConfig({
|
|
13
14
|
overrides: overrides$1,
|
|
@@ -16,17 +17,20 @@ function LiveblocksUIConfig({
|
|
|
16
17
|
preventUnsavedComposerChanges = true,
|
|
17
18
|
children
|
|
18
19
|
}) {
|
|
19
|
-
const liveblocksUIConfig =
|
|
20
|
+
const liveblocksUIConfig = react.useMemo(
|
|
20
21
|
() => ({ portalContainer, preventUnsavedComposerChanges }),
|
|
21
22
|
[portalContainer, preventUnsavedComposerChanges]
|
|
22
23
|
);
|
|
23
|
-
return /* @__PURE__ */
|
|
24
|
-
value: liveblocksUIConfig
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
return /* @__PURE__ */ jsxRuntime.jsx(LiveblocksUIConfigContext.Provider, {
|
|
25
|
+
value: liveblocksUIConfig,
|
|
26
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(overrides.OverridesProvider, {
|
|
27
|
+
overrides: overrides$1,
|
|
28
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(components.ComponentsProvider, {
|
|
29
|
+
components: components$1,
|
|
30
|
+
children
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
});
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
exports.LiveblocksUIConfig = LiveblocksUIConfig;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../src/config.tsx"],"sourcesContent":["\"use client\";\n\nimport type { PropsWithChildren } from \"react\";\nimport
|
|
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
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
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);
|
|
@@ -18,13 +19,16 @@ function LiveblocksUIConfig({
|
|
|
18
19
|
() => ({ portalContainer, preventUnsavedComposerChanges }),
|
|
19
20
|
[portalContainer, preventUnsavedComposerChanges]
|
|
20
21
|
);
|
|
21
|
-
return /* @__PURE__ */
|
|
22
|
-
value: liveblocksUIConfig
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
return /* @__PURE__ */ jsx(LiveblocksUIConfigContext.Provider, {
|
|
23
|
+
value: liveblocksUIConfig,
|
|
24
|
+
children: /* @__PURE__ */ jsx(OverridesProvider, {
|
|
25
|
+
overrides,
|
|
26
|
+
children: /* @__PURE__ */ jsx(ComponentsProvider, {
|
|
27
|
+
components,
|
|
28
|
+
children
|
|
29
|
+
})
|
|
30
|
+
})
|
|
31
|
+
});
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
export { LiveblocksUIConfig, useLiveblocksUIConfig };
|
package/dist/config.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.mjs","sources":["../src/config.tsx"],"sourcesContent":["\"use client\";\n\nimport type { PropsWithChildren } from \"react\";\nimport
|
|
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;;;;"}
|