@liveblocks/react-ui 1.12.0-initial1
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/README.md +65 -0
- package/dist/components/Comment.js +473 -0
- package/dist/components/Comment.js.map +1 -0
- package/dist/components/Comment.mjs +447 -0
- package/dist/components/Comment.mjs.map +1 -0
- package/dist/components/Composer.js +299 -0
- package/dist/components/Composer.js.map +1 -0
- package/dist/components/Composer.mjs +297 -0
- package/dist/components/Composer.mjs.map +1 -0
- package/dist/components/InboxNotification.js +374 -0
- package/dist/components/InboxNotification.js.map +1 -0
- package/dist/components/InboxNotification.mjs +372 -0
- package/dist/components/InboxNotification.mjs.map +1 -0
- package/dist/components/InboxNotificationList.js +19 -0
- package/dist/components/InboxNotificationList.js.map +1 -0
- package/dist/components/InboxNotificationList.mjs +17 -0
- package/dist/components/InboxNotificationList.mjs.map +1 -0
- package/dist/components/Thread.js +188 -0
- package/dist/components/Thread.js.map +1 -0
- package/dist/components/Thread.mjs +167 -0
- package/dist/components/Thread.mjs.map +1 -0
- package/dist/components/internal/Attribution.js +26 -0
- package/dist/components/internal/Attribution.js.map +1 -0
- package/dist/components/internal/Attribution.mjs +24 -0
- package/dist/components/internal/Attribution.mjs.map +1 -0
- package/dist/components/internal/Avatar.js +40 -0
- package/dist/components/internal/Avatar.js.map +1 -0
- package/dist/components/internal/Avatar.mjs +38 -0
- package/dist/components/internal/Avatar.mjs.map +1 -0
- package/dist/components/internal/Button.js +24 -0
- package/dist/components/internal/Button.js.map +1 -0
- package/dist/components/internal/Button.mjs +22 -0
- package/dist/components/internal/Button.mjs.map +1 -0
- package/dist/components/internal/Dropdown.js +72 -0
- package/dist/components/internal/Dropdown.js.map +1 -0
- package/dist/components/internal/Dropdown.mjs +47 -0
- package/dist/components/internal/Dropdown.mjs.map +1 -0
- package/dist/components/internal/Emoji.js +18 -0
- package/dist/components/internal/Emoji.js.map +1 -0
- package/dist/components/internal/Emoji.mjs +16 -0
- package/dist/components/internal/Emoji.mjs.map +1 -0
- package/dist/components/internal/EmojiPicker.js +186 -0
- package/dist/components/internal/EmojiPicker.js.map +1 -0
- package/dist/components/internal/EmojiPicker.mjs +162 -0
- package/dist/components/internal/EmojiPicker.mjs.map +1 -0
- package/dist/components/internal/Icon.js +28 -0
- package/dist/components/internal/Icon.js.map +1 -0
- package/dist/components/internal/Icon.mjs +24 -0
- package/dist/components/internal/Icon.mjs.map +1 -0
- package/dist/components/internal/InboxNotificationThread.js +116 -0
- package/dist/components/internal/InboxNotificationThread.js.map +1 -0
- package/dist/components/internal/InboxNotificationThread.mjs +112 -0
- package/dist/components/internal/InboxNotificationThread.mjs.map +1 -0
- package/dist/components/internal/List.js +34 -0
- package/dist/components/internal/List.js.map +1 -0
- package/dist/components/internal/List.mjs +32 -0
- package/dist/components/internal/List.mjs.map +1 -0
- package/dist/components/internal/Room.js +22 -0
- package/dist/components/internal/Room.js.map +1 -0
- package/dist/components/internal/Room.mjs +20 -0
- package/dist/components/internal/Room.mjs.map +1 -0
- package/dist/components/internal/Tooltip.js +91 -0
- package/dist/components/internal/Tooltip.js.map +1 -0
- package/dist/components/internal/Tooltip.mjs +65 -0
- package/dist/components/internal/Tooltip.mjs.map +1 -0
- package/dist/components/internal/User.js +41 -0
- package/dist/components/internal/User.js.map +1 -0
- package/dist/components/internal/User.mjs +39 -0
- package/dist/components/internal/User.mjs.map +1 -0
- package/dist/components.js +64 -0
- package/dist/components.js.map +1 -0
- package/dist/components.mjs +41 -0
- package/dist/components.mjs.map +1 -0
- package/dist/config.js +33 -0
- package/dist/config.js.map +1 -0
- package/dist/config.mjs +30 -0
- package/dist/config.mjs.map +1 -0
- package/dist/constants.js +10 -0
- package/dist/constants.js.map +1 -0
- package/dist/constants.mjs +6 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/icons/ArrowDown.js +15 -0
- package/dist/icons/ArrowDown.js.map +1 -0
- package/dist/icons/ArrowDown.mjs +13 -0
- package/dist/icons/ArrowDown.mjs.map +1 -0
- package/dist/icons/Check.js +15 -0
- package/dist/icons/Check.js.map +1 -0
- package/dist/icons/Check.mjs +13 -0
- package/dist/icons/Check.mjs.map +1 -0
- package/dist/icons/Cross.js +17 -0
- package/dist/icons/Cross.js.map +1 -0
- package/dist/icons/Cross.mjs +15 -0
- package/dist/icons/Cross.mjs.map +1 -0
- package/dist/icons/Delete.js +15 -0
- package/dist/icons/Delete.js.map +1 -0
- package/dist/icons/Delete.mjs +13 -0
- package/dist/icons/Delete.mjs.map +1 -0
- package/dist/icons/Edit.js +15 -0
- package/dist/icons/Edit.js.map +1 -0
- package/dist/icons/Edit.mjs +13 -0
- package/dist/icons/Edit.mjs.map +1 -0
- package/dist/icons/Ellipsis.js +26 -0
- package/dist/icons/Ellipsis.js.map +1 -0
- package/dist/icons/Ellipsis.mjs +24 -0
- package/dist/icons/Ellipsis.mjs.map +1 -0
- package/dist/icons/Emoji.js +27 -0
- package/dist/icons/Emoji.js.map +1 -0
- package/dist/icons/Emoji.mjs +25 -0
- package/dist/icons/Emoji.mjs.map +1 -0
- package/dist/icons/EmojiAdd.js +29 -0
- package/dist/icons/EmojiAdd.js.map +1 -0
- package/dist/icons/EmojiAdd.mjs +27 -0
- package/dist/icons/EmojiAdd.mjs.map +1 -0
- package/dist/icons/Mention.js +17 -0
- package/dist/icons/Mention.js.map +1 -0
- package/dist/icons/Mention.mjs +15 -0
- package/dist/icons/Mention.mjs.map +1 -0
- package/dist/icons/Missing.js +19 -0
- package/dist/icons/Missing.js.map +1 -0
- package/dist/icons/Missing.mjs +17 -0
- package/dist/icons/Missing.mjs.map +1 -0
- package/dist/icons/Resolve.js +19 -0
- package/dist/icons/Resolve.js.map +1 -0
- package/dist/icons/Resolve.mjs +17 -0
- package/dist/icons/Resolve.mjs.map +1 -0
- package/dist/icons/Resolved.js +21 -0
- package/dist/icons/Resolved.js.map +1 -0
- package/dist/icons/Resolved.mjs +19 -0
- package/dist/icons/Resolved.mjs.map +1 -0
- package/dist/icons/Search.js +15 -0
- package/dist/icons/Search.js.map +1 -0
- package/dist/icons/Search.mjs +13 -0
- package/dist/icons/Search.mjs.map +1 -0
- package/dist/icons/Send.js +15 -0
- package/dist/icons/Send.js.map +1 -0
- package/dist/icons/Send.mjs +13 -0
- package/dist/icons/Send.mjs.map +1 -0
- package/dist/icons/Spinner.js +22 -0
- package/dist/icons/Spinner.js.map +1 -0
- package/dist/icons/Spinner.mjs +20 -0
- package/dist/icons/Spinner.mjs.map +1 -0
- package/dist/index.d.mts +476 -0
- package/dist/index.d.ts +476 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +11 -0
- package/dist/index.mjs.map +1 -0
- package/dist/overrides.js +100 -0
- package/dist/overrides.js.map +1 -0
- package/dist/overrides.mjs +77 -0
- package/dist/overrides.mjs.map +1 -0
- package/dist/primitives/Comment/index.js +113 -0
- package/dist/primitives/Comment/index.js.map +1 -0
- package/dist/primitives/Comment/index.mjs +109 -0
- package/dist/primitives/Comment/index.mjs.map +1 -0
- package/dist/primitives/Comment/utils.js +25 -0
- package/dist/primitives/Comment/utils.js.map +1 -0
- package/dist/primitives/Comment/utils.mjs +20 -0
- package/dist/primitives/Comment/utils.mjs.map +1 -0
- package/dist/primitives/Composer/contexts.js +34 -0
- package/dist/primitives/Composer/contexts.js.map +1 -0
- package/dist/primitives/Composer/contexts.mjs +27 -0
- package/dist/primitives/Composer/contexts.mjs.map +1 -0
- package/dist/primitives/Composer/index.js +771 -0
- package/dist/primitives/Composer/index.js.map +1 -0
- package/dist/primitives/Composer/index.mjs +762 -0
- package/dist/primitives/Composer/index.mjs.map +1 -0
- package/dist/primitives/Composer/utils.js +102 -0
- package/dist/primitives/Composer/utils.js.map +1 -0
- package/dist/primitives/Composer/utils.mjs +93 -0
- package/dist/primitives/Composer/utils.mjs.map +1 -0
- package/dist/primitives/EmojiPicker/contexts.js +19 -0
- package/dist/primitives/EmojiPicker/contexts.js.map +1 -0
- package/dist/primitives/EmojiPicker/contexts.mjs +16 -0
- package/dist/primitives/EmojiPicker/contexts.mjs.map +1 -0
- package/dist/primitives/EmojiPicker/index.js +434 -0
- package/dist/primitives/EmojiPicker/index.js.map +1 -0
- package/dist/primitives/EmojiPicker/index.mjs +430 -0
- package/dist/primitives/EmojiPicker/index.mjs.map +1 -0
- package/dist/primitives/EmojiPicker/utils.js +329 -0
- package/dist/primitives/EmojiPicker/utils.js.map +1 -0
- package/dist/primitives/EmojiPicker/utils.mjs +325 -0
- package/dist/primitives/EmojiPicker/utils.mjs.map +1 -0
- package/dist/primitives/Timestamp.js +121 -0
- package/dist/primitives/Timestamp.js.map +1 -0
- package/dist/primitives/Timestamp.mjs +119 -0
- package/dist/primitives/Timestamp.mjs.map +1 -0
- package/dist/primitives/index.d.mts +502 -0
- package/dist/primitives/index.d.ts +502 -0
- package/dist/primitives/index.js +16 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/index.mjs +9 -0
- package/dist/primitives/index.mjs.map +1 -0
- package/dist/primitives/internal/Emoji.js +30 -0
- package/dist/primitives/internal/Emoji.js.map +1 -0
- package/dist/primitives/internal/Emoji.mjs +28 -0
- package/dist/primitives/internal/Emoji.mjs.map +1 -0
- package/dist/shared.js +21 -0
- package/dist/shared.js.map +1 -0
- package/dist/shared.mjs +19 -0
- package/dist/shared.mjs.map +1 -0
- package/dist/slate/plugins/auto-formatting.js +83 -0
- package/dist/slate/plugins/auto-formatting.js.map +1 -0
- package/dist/slate/plugins/auto-formatting.mjs +81 -0
- package/dist/slate/plugins/auto-formatting.mjs.map +1 -0
- package/dist/slate/plugins/auto-links.js +175 -0
- package/dist/slate/plugins/auto-links.js.map +1 -0
- package/dist/slate/plugins/auto-links.mjs +172 -0
- package/dist/slate/plugins/auto-links.mjs.map +1 -0
- package/dist/slate/plugins/empty-clear-formatting.js +18 -0
- package/dist/slate/plugins/empty-clear-formatting.js.map +1 -0
- package/dist/slate/plugins/empty-clear-formatting.mjs +16 -0
- package/dist/slate/plugins/empty-clear-formatting.mjs.map +1 -0
- package/dist/slate/plugins/mentions.js +112 -0
- package/dist/slate/plugins/mentions.js.map +1 -0
- package/dist/slate/plugins/mentions.mjs +105 -0
- package/dist/slate/plugins/mentions.mjs.map +1 -0
- package/dist/slate/utils/get-character.js +50 -0
- package/dist/slate/utils/get-character.js.map +1 -0
- package/dist/slate/utils/get-character.mjs +47 -0
- package/dist/slate/utils/get-character.mjs.map +1 -0
- package/dist/slate/utils/get-dom-range.js +17 -0
- package/dist/slate/utils/get-dom-range.js.map +1 -0
- package/dist/slate/utils/get-dom-range.mjs +15 -0
- package/dist/slate/utils/get-dom-range.mjs.map +1 -0
- package/dist/slate/utils/get-match-range.js +53 -0
- package/dist/slate/utils/get-match-range.js.map +1 -0
- package/dist/slate/utils/get-match-range.mjs +51 -0
- package/dist/slate/utils/get-match-range.mjs.map +1 -0
- package/dist/slate/utils/is-empty-string.js +8 -0
- package/dist/slate/utils/is-empty-string.js.map +1 -0
- package/dist/slate/utils/is-empty-string.mjs +6 -0
- package/dist/slate/utils/is-empty-string.mjs.map +1 -0
- package/dist/slate/utils/is-empty.js +10 -0
- package/dist/slate/utils/is-empty.js.map +1 -0
- package/dist/slate/utils/is-empty.mjs +8 -0
- package/dist/slate/utils/is-empty.mjs.map +1 -0
- package/dist/slate/utils/is-selection-collapsed.js +10 -0
- package/dist/slate/utils/is-selection-collapsed.js.map +1 -0
- package/dist/slate/utils/is-selection-collapsed.mjs +8 -0
- package/dist/slate/utils/is-selection-collapsed.mjs.map +1 -0
- package/dist/slate/utils/marks.js +43 -0
- package/dist/slate/utils/marks.js.map +1 -0
- package/dist/slate/utils/marks.mjs +38 -0
- package/dist/slate/utils/marks.mjs.map +1 -0
- package/dist/utils/Persist.js +85 -0
- package/dist/utils/Persist.js.map +1 -0
- package/dist/utils/Persist.mjs +81 -0
- package/dist/utils/Persist.mjs.map +1 -0
- package/dist/utils/Portal.js +27 -0
- package/dist/utils/Portal.js.map +1 -0
- package/dist/utils/Portal.mjs +25 -0
- package/dist/utils/Portal.mjs.map +1 -0
- package/dist/utils/capitalize.js +8 -0
- package/dist/utils/capitalize.js.map +1 -0
- package/dist/utils/capitalize.mjs +6 -0
- package/dist/utils/capitalize.mjs.map +1 -0
- package/dist/utils/chunk.js +12 -0
- package/dist/utils/chunk.js.map +1 -0
- package/dist/utils/chunk.mjs +10 -0
- package/dist/utils/chunk.mjs.map +1 -0
- package/dist/utils/clamp.js +8 -0
- package/dist/utils/clamp.js.map +1 -0
- package/dist/utils/clamp.mjs +6 -0
- package/dist/utils/clamp.mjs.map +1 -0
- package/dist/utils/class-names.js +8 -0
- package/dist/utils/class-names.js.map +1 -0
- package/dist/utils/class-names.mjs +6 -0
- package/dist/utils/class-names.mjs.map +1 -0
- package/dist/utils/exists.js +8 -0
- package/dist/utils/exists.js.map +1 -0
- package/dist/utils/exists.mjs +6 -0
- package/dist/utils/exists.mjs.map +1 -0
- package/dist/utils/find-last-index.js +15 -0
- package/dist/utils/find-last-index.js.map +1 -0
- package/dist/utils/find-last-index.mjs +13 -0
- package/dist/utils/find-last-index.mjs.map +1 -0
- package/dist/utils/flush-sync.js +12 -0
- package/dist/utils/flush-sync.js.map +1 -0
- package/dist/utils/flush-sync.mjs +10 -0
- package/dist/utils/flush-sync.mjs.map +1 -0
- package/dist/utils/get-initials.js +13 -0
- package/dist/utils/get-initials.js.map +1 -0
- package/dist/utils/get-initials.mjs +11 -0
- package/dist/utils/get-initials.mjs.map +1 -0
- package/dist/utils/intl.js +24 -0
- package/dist/utils/intl.js.map +1 -0
- package/dist/utils/intl.mjs +20 -0
- package/dist/utils/intl.mjs.map +1 -0
- package/dist/utils/is-apple.js +9 -0
- package/dist/utils/is-apple.js.map +1 -0
- package/dist/utils/is-apple.mjs +7 -0
- package/dist/utils/is-apple.mjs.map +1 -0
- package/dist/utils/is-key.js +26 -0
- package/dist/utils/is-key.js.map +1 -0
- package/dist/utils/is-key.mjs +24 -0
- package/dist/utils/is-key.mjs.map +1 -0
- package/dist/utils/memoize.js +19 -0
- package/dist/utils/memoize.js.map +1 -0
- package/dist/utils/memoize.mjs +17 -0
- package/dist/utils/memoize.mjs.map +1 -0
- package/dist/utils/pluralize.js +8 -0
- package/dist/utils/pluralize.js.map +1 -0
- package/dist/utils/pluralize.mjs +6 -0
- package/dist/utils/pluralize.mjs.map +1 -0
- package/dist/utils/request-idle-callback.js +15 -0
- package/dist/utils/request-idle-callback.js.map +1 -0
- package/dist/utils/request-idle-callback.mjs +12 -0
- package/dist/utils/request-idle-callback.mjs.map +1 -0
- package/dist/utils/request-submit.js +20 -0
- package/dist/utils/request-submit.js.map +1 -0
- package/dist/utils/request-submit.mjs +18 -0
- package/dist/utils/request-submit.mjs.map +1 -0
- package/dist/utils/url.js +22 -0
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/url.mjs +20 -0
- package/dist/utils/url.mjs.map +1 -0
- package/dist/utils/use-controllable-state.js +34 -0
- package/dist/utils/use-controllable-state.js.map +1 -0
- package/dist/utils/use-controllable-state.mjs +32 -0
- package/dist/utils/use-controllable-state.mjs.map +1 -0
- package/dist/utils/use-id.js +29 -0
- package/dist/utils/use-id.js.map +1 -0
- package/dist/utils/use-id.mjs +27 -0
- package/dist/utils/use-id.mjs.map +1 -0
- package/dist/utils/use-index.js +32 -0
- package/dist/utils/use-index.js.map +1 -0
- package/dist/utils/use-index.mjs +30 -0
- package/dist/utils/use-index.mjs.map +1 -0
- package/dist/utils/use-initial.js +10 -0
- package/dist/utils/use-initial.js.map +1 -0
- package/dist/utils/use-initial.mjs +8 -0
- package/dist/utils/use-initial.mjs.map +1 -0
- package/dist/utils/use-interval.js +24 -0
- package/dist/utils/use-interval.js.map +1 -0
- package/dist/utils/use-interval.mjs +22 -0
- package/dist/utils/use-interval.mjs.map +1 -0
- package/dist/utils/use-latest.js +14 -0
- package/dist/utils/use-latest.js.map +1 -0
- package/dist/utils/use-latest.mjs +12 -0
- package/dist/utils/use-latest.mjs.map +1 -0
- package/dist/utils/use-layout-effect.js +8 -0
- package/dist/utils/use-layout-effect.js.map +1 -0
- package/dist/utils/use-layout-effect.mjs +6 -0
- package/dist/utils/use-layout-effect.mjs.map +1 -0
- package/dist/utils/use-refs.js +24 -0
- package/dist/utils/use-refs.js.map +1 -0
- package/dist/utils/use-refs.mjs +22 -0
- package/dist/utils/use-refs.mjs.map +1 -0
- package/dist/utils/use-rerender.js +14 -0
- package/dist/utils/use-rerender.js.map +1 -0
- package/dist/utils/use-rerender.mjs +12 -0
- package/dist/utils/use-rerender.mjs.map +1 -0
- package/dist/utils/use-transition.js +12 -0
- package/dist/utils/use-transition.js.map +1 -0
- package/dist/utils/use-transition.mjs +10 -0
- package/dist/utils/use-transition.mjs.map +1 -0
- package/dist/utils/use-visible.js +48 -0
- package/dist/utils/use-visible.js.map +1 -0
- package/dist/utils/use-visible.mjs +46 -0
- package/dist/utils/use-visible.mjs.map +1 -0
- package/dist/utils/visually-hidden.js +17 -0
- package/dist/utils/visually-hidden.js.map +1 -0
- package/dist/utils/visually-hidden.mjs +15 -0
- package/dist/utils/visually-hidden.mjs.map +1 -0
- package/dist/utils/wrap.js +9 -0
- package/dist/utils/wrap.js.map +1 -0
- package/dist/utils/wrap.mjs +7 -0
- package/dist/utils/wrap.mjs.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- package/dist/version.mjs +6 -0
- package/dist/version.mjs.map +1 -0
- package/package.json +142 -0
- package/primitives/README.md +5 -0
- package/primitives/package.json +4 -0
- package/src/styles/constants.css +17 -0
- package/src/styles/dark/attributes.css +8 -0
- package/src/styles/dark/index.css +29 -0
- package/src/styles/dark/media-query.css +7 -0
- package/src/styles/index.css +1437 -0
- package/src/styles/utils.css +36 -0
- package/styles/dark/attributes.css +1 -0
- package/styles/dark/attributes.css.d.ts +1 -0
- package/styles/dark/attributes.css.map +1 -0
- package/styles/dark/media-query.css +1 -0
- package/styles/dark/media-query.css.d.ts +1 -0
- package/styles/dark/media-query.css.map +1 -0
- package/styles.css +1 -0
- package/styles.css.d.ts +1 -0
- package/styles.css.map +1 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
function useInterval(callback, delay) {
|
|
6
|
+
const latestCallback = React.useRef(callback);
|
|
7
|
+
React.useEffect(() => {
|
|
8
|
+
latestCallback.current = callback;
|
|
9
|
+
}, [callback]);
|
|
10
|
+
React.useEffect(() => {
|
|
11
|
+
if (!delay && delay !== 0) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const id = setInterval(() => {
|
|
15
|
+
if (latestCallback.current() === false) {
|
|
16
|
+
clearInterval(id);
|
|
17
|
+
}
|
|
18
|
+
}, delay);
|
|
19
|
+
return () => clearInterval(id);
|
|
20
|
+
}, [delay]);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
exports.useInterval = useInterval;
|
|
24
|
+
//# sourceMappingURL=use-interval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-interval.js","sources":["../../src/utils/use-interval.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\n/**\n * Run a function at a given time interval.\n */\nexport function useInterval(\n callback: () => void | false,\n delay?: number | false\n) {\n const latestCallback = useRef(callback);\n\n useEffect(() => {\n latestCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (!delay && delay !== 0) {\n return;\n }\n\n const id = setInterval(() => {\n if (latestCallback.current() === false) {\n clearInterval(id);\n }\n }, delay);\n\n return () => clearInterval(id);\n }, [delay]);\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;AAKgB,SAAA,WAAA,CACd,UACA,KACA,EAAA;AACA,EAAM,MAAA,cAAA,GAAiBA,aAAO,QAAQ,CAAA,CAAA;AAEtC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,cAAA,CAAe,OAAU,GAAA,QAAA,CAAA;AAAA,GAC3B,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAAA,eAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,KAAS,IAAA,KAAA,KAAU,CAAG,EAAA;AACzB,MAAA,OAAA;AAAA,KACF;AAEA,IAAM,MAAA,EAAA,GAAK,YAAY,MAAM;AAC3B,MAAI,IAAA,cAAA,CAAe,OAAQ,EAAA,KAAM,KAAO,EAAA;AACtC,QAAA,aAAA,CAAc,EAAE,CAAA,CAAA;AAAA,OAClB;AAAA,OACC,KAAK,CAAA,CAAA;AAER,IAAO,OAAA,MAAM,cAAc,EAAE,CAAA,CAAA;AAAA,GAC/B,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AACZ;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useRef, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
function useInterval(callback, delay) {
|
|
4
|
+
const latestCallback = useRef(callback);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
latestCallback.current = callback;
|
|
7
|
+
}, [callback]);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (!delay && delay !== 0) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const id = setInterval(() => {
|
|
13
|
+
if (latestCallback.current() === false) {
|
|
14
|
+
clearInterval(id);
|
|
15
|
+
}
|
|
16
|
+
}, delay);
|
|
17
|
+
return () => clearInterval(id);
|
|
18
|
+
}, [delay]);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { useInterval };
|
|
22
|
+
//# sourceMappingURL=use-interval.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-interval.mjs","sources":["../../src/utils/use-interval.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\n/**\n * Run a function at a given time interval.\n */\nexport function useInterval(\n callback: () => void | false,\n delay?: number | false\n) {\n const latestCallback = useRef(callback);\n\n useEffect(() => {\n latestCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (!delay && delay !== 0) {\n return;\n }\n\n const id = setInterval(() => {\n if (latestCallback.current() === false) {\n clearInterval(id);\n }\n }, delay);\n\n return () => clearInterval(id);\n }, [delay]);\n}\n"],"names":[],"mappings":";;AAKgB,SAAA,WAAA,CACd,UACA,KACA,EAAA;AACA,EAAM,MAAA,cAAA,GAAiB,OAAO,QAAQ,CAAA,CAAA;AAEtC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,cAAA,CAAe,OAAU,GAAA,QAAA,CAAA;AAAA,GAC3B,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,KAAS,IAAA,KAAA,KAAU,CAAG,EAAA;AACzB,MAAA,OAAA;AAAA,KACF;AAEA,IAAM,MAAA,EAAA,GAAK,YAAY,MAAM;AAC3B,MAAI,IAAA,cAAA,CAAe,OAAQ,EAAA,KAAM,KAAO,EAAA;AACtC,QAAA,aAAA,CAAc,EAAE,CAAA,CAAA;AAAA,OAClB;AAAA,OACC,KAAK,CAAA,CAAA;AAER,IAAO,OAAA,MAAM,cAAc,EAAE,CAAA,CAAA;AAAA,GAC/B,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AACZ;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
function useLatest(value) {
|
|
6
|
+
const ref = React.useRef(value);
|
|
7
|
+
React.useEffect(() => {
|
|
8
|
+
ref.current = value;
|
|
9
|
+
}, [value]);
|
|
10
|
+
return ref;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exports.useLatest = useLatest;
|
|
14
|
+
//# sourceMappingURL=use-latest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-latest.js","sources":["../../src/utils/use-latest.ts"],"sourcesContent":["import type { MutableRefObject } from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport function useLatest<T>(value: T) {\n const ref: MutableRefObject<T> = useRef(value);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref;\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;AAGO,SAAS,UAAa,KAAU,EAAA;AACrC,EAAM,MAAA,GAAA,GAA2BA,aAAO,KAAK,CAAA,CAAA;AAE7C,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,GAAA,CAAI,OAAU,GAAA,KAAA,CAAA;AAAA,GAChB,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AAEV,EAAO,OAAA,GAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-latest.mjs","sources":["../../src/utils/use-latest.ts"],"sourcesContent":["import type { MutableRefObject } from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nexport function useLatest<T>(value: T) {\n const ref: MutableRefObject<T> = useRef(value);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref;\n}\n"],"names":[],"mappings":";;AAGO,SAAS,UAAa,KAAU,EAAA;AACrC,EAAM,MAAA,GAAA,GAA2B,OAAO,KAAK,CAAA,CAAA;AAE7C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,GAAA,CAAI,OAAU,GAAA,KAAA,CAAA;AAAA,GAChB,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AAEV,EAAO,OAAA,GAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-layout-effect.js","sources":["../../src/utils/use-layout-effect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect as useDefaultLayoutEffect } from \"react\";\n\nexport const useLayoutEffect =\n typeof window !== \"undefined\" ? useDefaultLayoutEffect : useEffect;\n"],"names":["useDefaultLayoutEffect","useEffect"],"mappings":";;;;AAEO,MAAM,eACX,GAAA,OAAO,MAAW,KAAA,WAAA,GAAcA,qBAAyB,GAAAC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-layout-effect.mjs","sources":["../../src/utils/use-layout-effect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect as useDefaultLayoutEffect } from \"react\";\n\nexport const useLayoutEffect =\n typeof window !== \"undefined\" ? useDefaultLayoutEffect : useEffect;\n"],"names":["useDefaultLayoutEffect"],"mappings":";;AAEO,MAAM,eACX,GAAA,OAAO,MAAW,KAAA,WAAA,GAAcA,iBAAyB,GAAA;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
function applyRef(ref, value) {
|
|
6
|
+
if (value) {
|
|
7
|
+
if (typeof ref === "function") {
|
|
8
|
+
ref(value);
|
|
9
|
+
} else if (ref && "current" in ref) {
|
|
10
|
+
ref.current = value;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function mergeRefs(value, ...refs) {
|
|
15
|
+
for (const ref of refs) {
|
|
16
|
+
applyRef(ref, value);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function useRefs(...refs) {
|
|
20
|
+
return React.useCallback((value) => mergeRefs(value, ...refs), [refs]);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
exports.useRefs = useRefs;
|
|
24
|
+
//# sourceMappingURL=use-refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-refs.js","sources":["../../src/utils/use-refs.ts"],"sourcesContent":["import type { MutableRefObject, Ref, RefCallback } from \"react\";\nimport { useCallback } from \"react\";\n\nfunction applyRef<T>(ref: Ref<T>, value: T) {\n if (value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref && \"current\" in ref) {\n (ref as MutableRefObject<T>).current = value;\n }\n }\n}\n\nfunction mergeRefs<T>(value: T, ...refs: Ref<T>[]) {\n for (const ref of refs) {\n applyRef(ref, value);\n }\n}\n\nexport function useRefs<T>(...refs: Ref<T>[]): RefCallback<T> {\n return useCallback((value: T) => mergeRefs(value, ...refs), [refs]);\n}\n"],"names":["useCallback"],"mappings":";;;;AAGA,SAAS,QAAA,CAAY,KAAa,KAAU,EAAA;AAC1C,EAAA,IAAI,KAAO,EAAA;AACT,IAAI,IAAA,OAAO,QAAQ,UAAY,EAAA;AAC7B,MAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAAA,KACX,MAAA,IAAW,GAAO,IAAA,SAAA,IAAa,GAAK,EAAA;AAClC,MAAC,IAA4B,OAAU,GAAA,KAAA,CAAA;AAAA,KACzC;AAAA,GACF;AACF,CAAA;AAEA,SAAS,SAAA,CAAa,UAAa,IAAgB,EAAA;AACjD,EAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,IAAA,QAAA,CAAS,KAAK,KAAK,CAAA,CAAA;AAAA,GACrB;AACF,CAAA;AAEO,SAAS,WAAc,IAAgC,EAAA;AAC5D,EAAO,OAAAA,iBAAA,CAAY,CAAC,KAAA,KAAa,SAAU,CAAA,KAAA,EAAO,GAAG,IAAI,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AACpE;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
function applyRef(ref, value) {
|
|
4
|
+
if (value) {
|
|
5
|
+
if (typeof ref === "function") {
|
|
6
|
+
ref(value);
|
|
7
|
+
} else if (ref && "current" in ref) {
|
|
8
|
+
ref.current = value;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function mergeRefs(value, ...refs) {
|
|
13
|
+
for (const ref of refs) {
|
|
14
|
+
applyRef(ref, value);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function useRefs(...refs) {
|
|
18
|
+
return useCallback((value) => mergeRefs(value, ...refs), [refs]);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { useRefs };
|
|
22
|
+
//# sourceMappingURL=use-refs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-refs.mjs","sources":["../../src/utils/use-refs.ts"],"sourcesContent":["import type { MutableRefObject, Ref, RefCallback } from \"react\";\nimport { useCallback } from \"react\";\n\nfunction applyRef<T>(ref: Ref<T>, value: T) {\n if (value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref && \"current\" in ref) {\n (ref as MutableRefObject<T>).current = value;\n }\n }\n}\n\nfunction mergeRefs<T>(value: T, ...refs: Ref<T>[]) {\n for (const ref of refs) {\n applyRef(ref, value);\n }\n}\n\nexport function useRefs<T>(...refs: Ref<T>[]): RefCallback<T> {\n return useCallback((value: T) => mergeRefs(value, ...refs), [refs]);\n}\n"],"names":[],"mappings":";;AAGA,SAAS,QAAA,CAAY,KAAa,KAAU,EAAA;AAC1C,EAAA,IAAI,KAAO,EAAA;AACT,IAAI,IAAA,OAAO,QAAQ,UAAY,EAAA;AAC7B,MAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAAA,KACX,MAAA,IAAW,GAAO,IAAA,SAAA,IAAa,GAAK,EAAA;AAClC,MAAC,IAA4B,OAAU,GAAA,KAAA,CAAA;AAAA,KACzC;AAAA,GACF;AACF,CAAA;AAEA,SAAS,SAAA,CAAa,UAAa,IAAgB,EAAA;AACjD,EAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,IAAA,QAAA,CAAS,KAAK,KAAK,CAAA,CAAA;AAAA,GACrB;AACF,CAAA;AAEO,SAAS,WAAc,IAAgC,EAAA;AAC5D,EAAO,OAAA,WAAA,CAAY,CAAC,KAAA,KAAa,SAAU,CAAA,KAAA,EAAO,GAAG,IAAI,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AACpE;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
function useRerender() {
|
|
6
|
+
const [key, update] = React.useReducer(
|
|
7
|
+
(key2) => key2 + 1,
|
|
8
|
+
0
|
|
9
|
+
);
|
|
10
|
+
return [update, key];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exports.useRerender = useRerender;
|
|
14
|
+
//# sourceMappingURL=use-rerender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-rerender.js","sources":["../../src/utils/use-rerender.ts"],"sourcesContent":["import { useReducer } from \"react\";\n\n/**\n * Trigger a re-render programmatically, without changing the component's\n * state.\n *\n * @example\n * const rerender = useRerender();\n *\n * return (\n * <button onClick={rerender}>\n * {Math.random()}\n * </button>\n * )\n */\nexport function useRerender(): [() => void, number] {\n const [key, update] = useReducer(\n // This implementation works by incrementing a hidden counter value that is\n // never consumed. Simply incrementing the counter changes the component's\n // state and, thus, trigger a re-render.\n (key: number): number => key + 1,\n 0\n );\n return [update, key];\n}\n"],"names":["useReducer","key"],"mappings":";;;;AAeO,SAAS,WAAoC,GAAA;AAClD,EAAM,MAAA,CAAC,GAAK,EAAA,MAAM,CAAI,GAAAA,gBAAA;AAAA,IAIpB,CAACC,SAAwBA,IAAM,GAAA,CAAA;AAAA,IAC/B,CAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,CAAC,QAAQ,GAAG,CAAA,CAAA;AACrB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-rerender.mjs","sources":["../../src/utils/use-rerender.ts"],"sourcesContent":["import { useReducer } from \"react\";\n\n/**\n * Trigger a re-render programmatically, without changing the component's\n * state.\n *\n * @example\n * const rerender = useRerender();\n *\n * return (\n * <button onClick={rerender}>\n * {Math.random()}\n * </button>\n * )\n */\nexport function useRerender(): [() => void, number] {\n const [key, update] = useReducer(\n // This implementation works by incrementing a hidden counter value that is\n // never consumed. Simply incrementing the counter changes the component's\n // state and, thus, trigger a re-render.\n (key: number): number => key + 1,\n 0\n );\n return [update, key];\n}\n"],"names":["key"],"mappings":";;AAeO,SAAS,WAAoC,GAAA;AAClD,EAAM,MAAA,CAAC,GAAK,EAAA,MAAM,CAAI,GAAA,UAAA;AAAA,IAIpB,CAACA,SAAwBA,IAAM,GAAA,CAAA;AAAA,IAC/B,CAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,CAAC,QAAQ,GAAG,CAAA,CAAA;AACrB;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
const useReactTransition = React["useTransition".toString()];
|
|
6
|
+
function useTransitionFallback(transition) {
|
|
7
|
+
return [false, transition];
|
|
8
|
+
}
|
|
9
|
+
const useTransition = useReactTransition ?? useTransitionFallback;
|
|
10
|
+
|
|
11
|
+
exports.useTransition = useTransition;
|
|
12
|
+
//# sourceMappingURL=use-transition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-transition.js","sources":["../../src/utils/use-transition.ts"],"sourcesContent":["import React from \"react\";\n\n// Prevent bundlers from importing `useTransition` directly\n// See https://github.com/radix-ui/primitives/pull/1028\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nconst useReactTransition: typeof React.useTransition = (React as any)[\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n \"useTransition\".toString()\n];\n\nfunction useTransitionFallback(transition: () => void) {\n return [false, transition] as ReturnType<typeof useReactTransition>;\n}\n\n// React's `useTransition` is only available in React >=18.\nexport const useTransition: typeof React.useTransition =\n useReactTransition ?? useTransitionFallback;\n"],"names":[],"mappings":";;;;AAKA,MAAM,kBAAA,GAAkD,KAEtD,CAAA,eAAA,CAAgB,QAAS,EAAA,CAAA,CAAA;AAG3B,SAAS,sBAAsB,UAAwB,EAAA;AACrD,EAAO,OAAA,CAAC,OAAO,UAAU,CAAA,CAAA;AAC3B,CAAA;AAGO,MAAM,gBACX,kBAAsB,IAAA;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
|
|
3
|
+
const useReactTransition = React__default["useTransition".toString()];
|
|
4
|
+
function useTransitionFallback(transition) {
|
|
5
|
+
return [false, transition];
|
|
6
|
+
}
|
|
7
|
+
const useTransition = useReactTransition ?? useTransitionFallback;
|
|
8
|
+
|
|
9
|
+
export { useTransition };
|
|
10
|
+
//# sourceMappingURL=use-transition.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-transition.mjs","sources":["../../src/utils/use-transition.ts"],"sourcesContent":["import React from \"react\";\n\n// Prevent bundlers from importing `useTransition` directly\n// See https://github.com/radix-ui/primitives/pull/1028\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nconst useReactTransition: typeof React.useTransition = (React as any)[\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n \"useTransition\".toString()\n];\n\nfunction useTransitionFallback(transition: () => void) {\n return [false, transition] as ReturnType<typeof useReactTransition>;\n}\n\n// React's `useTransition` is only available in React >=18.\nexport const useTransition: typeof React.useTransition =\n useReactTransition ?? useTransitionFallback;\n"],"names":["React"],"mappings":";;AAKA,MAAM,kBAAA,GAAkDA,cAEtD,CAAA,eAAA,CAAgB,QAAS,EAAA,CAAA,CAAA;AAG3B,SAAS,sBAAsB,UAAwB,EAAA;AACrD,EAAO,OAAA,CAAC,OAAO,UAAU,CAAA,CAAA;AAC3B,CAAA;AAGO,MAAM,gBACX,kBAAsB,IAAA;;;;"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var useLatest = require('./use-latest.js');
|
|
5
|
+
|
|
6
|
+
let intersectionObserver;
|
|
7
|
+
const intersectionCallbacks = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
function observe(element, callback) {
|
|
9
|
+
if (!intersectionObserver) {
|
|
10
|
+
intersectionObserver = new IntersectionObserver((entries) => {
|
|
11
|
+
for (const entry of entries) {
|
|
12
|
+
const callback2 = intersectionCallbacks.get(entry.target);
|
|
13
|
+
callback2?.(entry);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
intersectionCallbacks.set(element, callback);
|
|
18
|
+
intersectionObserver.observe(element);
|
|
19
|
+
}
|
|
20
|
+
function unobserve(element) {
|
|
21
|
+
intersectionCallbacks.delete(element);
|
|
22
|
+
intersectionObserver?.unobserve(element);
|
|
23
|
+
}
|
|
24
|
+
function useVisibleCallback(ref, callback, options) {
|
|
25
|
+
const enabled = options?.enabled ?? true;
|
|
26
|
+
const latestCallback = useLatest.useLatest(callback);
|
|
27
|
+
React.useEffect(() => {
|
|
28
|
+
const element = ref.current;
|
|
29
|
+
if (!element) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (enabled) {
|
|
33
|
+
observe(element, (entry) => {
|
|
34
|
+
if (entry.isIntersecting) {
|
|
35
|
+
latestCallback.current();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
unobserve(element);
|
|
40
|
+
}
|
|
41
|
+
return () => {
|
|
42
|
+
unobserve(element);
|
|
43
|
+
};
|
|
44
|
+
}, [enabled]);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
exports.useVisibleCallback = useVisibleCallback;
|
|
48
|
+
//# sourceMappingURL=use-visible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-visible.js","sources":["../../src/utils/use-visible.ts"],"sourcesContent":["import { type RefObject, useEffect, useState } from \"react\";\n\nimport { useLatest } from \"./use-latest\";\n\ntype Options = { enabled?: boolean };\n\ntype IntersectionObserverSingleCallback = (\n entry: IntersectionObserverEntry\n) => void;\n\nlet intersectionObserver: IntersectionObserver | undefined;\nconst intersectionCallbacks = new WeakMap<\n Element,\n IntersectionObserverSingleCallback\n>();\n\nfunction observe(\n element: Element,\n callback: IntersectionObserverSingleCallback\n) {\n if (!intersectionObserver) {\n intersectionObserver = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback = intersectionCallbacks.get(entry.target);\n\n callback?.(entry);\n }\n });\n }\n\n intersectionCallbacks.set(element, callback);\n intersectionObserver.observe(element);\n}\n\nfunction unobserve(element: Element) {\n intersectionCallbacks.delete(element);\n intersectionObserver?.unobserve(element);\n}\n\n/**\n * Observe whether an element is currently visible or not.\n */\nexport function useVisible(ref: RefObject<Element>, options?: Options) {\n const [isVisible, setVisible] = useState(false);\n const enabled = options?.enabled ?? true;\n\n useEffect(() => {\n const element = ref.current;\n\n if (!element) {\n return;\n }\n\n if (enabled) {\n observe(element, (entry) => {\n setVisible(entry.isIntersecting);\n });\n } else {\n unobserve(element);\n }\n\n return () => {\n unobserve(element);\n };\n }, [enabled]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return isVisible;\n}\n\nexport function useVisibleCallback<T extends (...args: any[]) => void>(\n ref: RefObject<Element>,\n callback: T,\n options?: Options\n) {\n const enabled = options?.enabled ?? true;\n const latestCallback = useLatest(callback);\n\n useEffect(() => {\n const element = ref.current;\n\n if (!element) {\n return;\n }\n\n if (enabled) {\n observe(element, (entry) => {\n if (entry.isIntersecting) {\n latestCallback.current();\n }\n });\n } else {\n unobserve(element);\n }\n\n return () => {\n unobserve(element);\n };\n }, [enabled]); // eslint-disable-line react-hooks/exhaustive-deps\n}\n"],"names":["callback","useLatest","useEffect"],"mappings":";;;;;AAUA,IAAI,oBAAA,CAAA;AACJ,MAAM,qBAAA,uBAA4B,OAGhC,EAAA,CAAA;AAEF,SAAS,OAAA,CACP,SACA,QACA,EAAA;AACA,EAAA,IAAI,CAAC,oBAAsB,EAAA;AACzB,IAAuB,oBAAA,GAAA,IAAI,oBAAqB,CAAA,CAAC,OAAY,KAAA;AAC3D,MAAA,KAAA,MAAW,SAAS,OAAS,EAAA;AAC3B,QAAA,MAAMA,SAAW,GAAA,qBAAA,CAAsB,GAAI,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEvD,QAAAA,YAAW,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAEA,EAAsB,qBAAA,CAAA,GAAA,CAAI,SAAS,QAAQ,CAAA,CAAA;AAC3C,EAAA,oBAAA,CAAqB,QAAQ,OAAO,CAAA,CAAA;AACtC,CAAA;AAEA,SAAS,UAAU,OAAkB,EAAA;AACnC,EAAA,qBAAA,CAAsB,OAAO,OAAO,CAAA,CAAA;AACpC,EAAA,oBAAA,EAAsB,UAAU,OAAO,CAAA,CAAA;AACzC,CAAA;AAgCgB,SAAA,kBAAA,CACd,GACA,EAAA,QAAA,EACA,OACA,EAAA;AACA,EAAM,MAAA,OAAA,GAAU,SAAS,OAAW,IAAA,IAAA,CAAA;AACpC,EAAM,MAAA,cAAA,GAAiBC,oBAAU,QAAQ,CAAA,CAAA;AAEzC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,GAAI,CAAA,OAAA,CAAA;AAEpB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,IAAI,OAAS,EAAA;AACX,MAAQ,OAAA,CAAA,OAAA,EAAS,CAAC,KAAU,KAAA;AAC1B,QAAA,IAAI,MAAM,cAAgB,EAAA;AACxB,UAAA,cAAA,CAAe,OAAQ,EAAA,CAAA;AAAA,SACzB;AAAA,OACD,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAAA,KACnB;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAAA,KACnB,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AACd;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useLatest } from './use-latest.mjs';
|
|
3
|
+
|
|
4
|
+
let intersectionObserver;
|
|
5
|
+
const intersectionCallbacks = /* @__PURE__ */ new WeakMap();
|
|
6
|
+
function observe(element, callback) {
|
|
7
|
+
if (!intersectionObserver) {
|
|
8
|
+
intersectionObserver = new IntersectionObserver((entries) => {
|
|
9
|
+
for (const entry of entries) {
|
|
10
|
+
const callback2 = intersectionCallbacks.get(entry.target);
|
|
11
|
+
callback2?.(entry);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
intersectionCallbacks.set(element, callback);
|
|
16
|
+
intersectionObserver.observe(element);
|
|
17
|
+
}
|
|
18
|
+
function unobserve(element) {
|
|
19
|
+
intersectionCallbacks.delete(element);
|
|
20
|
+
intersectionObserver?.unobserve(element);
|
|
21
|
+
}
|
|
22
|
+
function useVisibleCallback(ref, callback, options) {
|
|
23
|
+
const enabled = options?.enabled ?? true;
|
|
24
|
+
const latestCallback = useLatest(callback);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
const element = ref.current;
|
|
27
|
+
if (!element) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (enabled) {
|
|
31
|
+
observe(element, (entry) => {
|
|
32
|
+
if (entry.isIntersecting) {
|
|
33
|
+
latestCallback.current();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
} else {
|
|
37
|
+
unobserve(element);
|
|
38
|
+
}
|
|
39
|
+
return () => {
|
|
40
|
+
unobserve(element);
|
|
41
|
+
};
|
|
42
|
+
}, [enabled]);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { useVisibleCallback };
|
|
46
|
+
//# sourceMappingURL=use-visible.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-visible.mjs","sources":["../../src/utils/use-visible.ts"],"sourcesContent":["import { type RefObject, useEffect, useState } from \"react\";\n\nimport { useLatest } from \"./use-latest\";\n\ntype Options = { enabled?: boolean };\n\ntype IntersectionObserverSingleCallback = (\n entry: IntersectionObserverEntry\n) => void;\n\nlet intersectionObserver: IntersectionObserver | undefined;\nconst intersectionCallbacks = new WeakMap<\n Element,\n IntersectionObserverSingleCallback\n>();\n\nfunction observe(\n element: Element,\n callback: IntersectionObserverSingleCallback\n) {\n if (!intersectionObserver) {\n intersectionObserver = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback = intersectionCallbacks.get(entry.target);\n\n callback?.(entry);\n }\n });\n }\n\n intersectionCallbacks.set(element, callback);\n intersectionObserver.observe(element);\n}\n\nfunction unobserve(element: Element) {\n intersectionCallbacks.delete(element);\n intersectionObserver?.unobserve(element);\n}\n\n/**\n * Observe whether an element is currently visible or not.\n */\nexport function useVisible(ref: RefObject<Element>, options?: Options) {\n const [isVisible, setVisible] = useState(false);\n const enabled = options?.enabled ?? true;\n\n useEffect(() => {\n const element = ref.current;\n\n if (!element) {\n return;\n }\n\n if (enabled) {\n observe(element, (entry) => {\n setVisible(entry.isIntersecting);\n });\n } else {\n unobserve(element);\n }\n\n return () => {\n unobserve(element);\n };\n }, [enabled]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return isVisible;\n}\n\nexport function useVisibleCallback<T extends (...args: any[]) => void>(\n ref: RefObject<Element>,\n callback: T,\n options?: Options\n) {\n const enabled = options?.enabled ?? true;\n const latestCallback = useLatest(callback);\n\n useEffect(() => {\n const element = ref.current;\n\n if (!element) {\n return;\n }\n\n if (enabled) {\n observe(element, (entry) => {\n if (entry.isIntersecting) {\n latestCallback.current();\n }\n });\n } else {\n unobserve(element);\n }\n\n return () => {\n unobserve(element);\n };\n }, [enabled]); // eslint-disable-line react-hooks/exhaustive-deps\n}\n"],"names":["callback"],"mappings":";;;AAUA,IAAI,oBAAA,CAAA;AACJ,MAAM,qBAAA,uBAA4B,OAGhC,EAAA,CAAA;AAEF,SAAS,OAAA,CACP,SACA,QACA,EAAA;AACA,EAAA,IAAI,CAAC,oBAAsB,EAAA;AACzB,IAAuB,oBAAA,GAAA,IAAI,oBAAqB,CAAA,CAAC,OAAY,KAAA;AAC3D,MAAA,KAAA,MAAW,SAAS,OAAS,EAAA;AAC3B,QAAA,MAAMA,SAAW,GAAA,qBAAA,CAAsB,GAAI,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEvD,QAAAA,YAAW,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAEA,EAAsB,qBAAA,CAAA,GAAA,CAAI,SAAS,QAAQ,CAAA,CAAA;AAC3C,EAAA,oBAAA,CAAqB,QAAQ,OAAO,CAAA,CAAA;AACtC,CAAA;AAEA,SAAS,UAAU,OAAkB,EAAA;AACnC,EAAA,qBAAA,CAAsB,OAAO,OAAO,CAAA,CAAA;AACpC,EAAA,oBAAA,EAAsB,UAAU,OAAO,CAAA,CAAA;AACzC,CAAA;AAgCgB,SAAA,kBAAA,CACd,GACA,EAAA,QAAA,EACA,OACA,EAAA;AACA,EAAM,MAAA,OAAA,GAAU,SAAS,OAAW,IAAA,IAAA,CAAA;AACpC,EAAM,MAAA,cAAA,GAAiB,UAAU,QAAQ,CAAA,CAAA;AAEzC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,GAAI,CAAA,OAAA,CAAA;AAEpB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,IAAI,OAAS,EAAA;AACX,MAAQ,OAAA,CAAA,OAAA,EAAS,CAAC,KAAU,KAAA;AAC1B,QAAA,IAAI,MAAM,cAAgB,EAAA;AACxB,UAAA,cAAA,CAAe,OAAQ,EAAA,CAAA;AAAA,SACzB;AAAA,OACD,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAAA,KACnB;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAAA,KACnB,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AACd;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const visuallyHidden = {
|
|
4
|
+
position: "absolute",
|
|
5
|
+
border: 0,
|
|
6
|
+
width: 1,
|
|
7
|
+
height: 1,
|
|
8
|
+
padding: 0,
|
|
9
|
+
margin: -1,
|
|
10
|
+
overflow: "hidden",
|
|
11
|
+
clip: "rect(0, 0, 0, 0)",
|
|
12
|
+
whiteSpace: "nowrap",
|
|
13
|
+
wordWrap: "normal"
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
exports.visuallyHidden = visuallyHidden;
|
|
17
|
+
//# sourceMappingURL=visually-hidden.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visually-hidden.js","sources":["../../src/utils/visually-hidden.ts"],"sourcesContent":["import type { CSSProperties } from \"react\";\n\nexport const visuallyHidden: CSSProperties = {\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n};\n"],"names":[],"mappings":";;AAEO,MAAM,cAAgC,GAAA;AAAA,EAC3C,QAAU,EAAA,UAAA;AAAA,EACV,MAAQ,EAAA,CAAA;AAAA,EACR,KAAO,EAAA,CAAA;AAAA,EACP,MAAQ,EAAA,CAAA;AAAA,EACR,OAAS,EAAA,CAAA;AAAA,EACT,MAAQ,EAAA,CAAA,CAAA;AAAA,EACR,QAAU,EAAA,QAAA;AAAA,EACV,IAAM,EAAA,kBAAA;AAAA,EACN,UAAY,EAAA,QAAA;AAAA,EACZ,QAAU,EAAA,QAAA;AACZ;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const visuallyHidden = {
|
|
2
|
+
position: "absolute",
|
|
3
|
+
border: 0,
|
|
4
|
+
width: 1,
|
|
5
|
+
height: 1,
|
|
6
|
+
padding: 0,
|
|
7
|
+
margin: -1,
|
|
8
|
+
overflow: "hidden",
|
|
9
|
+
clip: "rect(0, 0, 0, 0)",
|
|
10
|
+
whiteSpace: "nowrap",
|
|
11
|
+
wordWrap: "normal"
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { visuallyHidden };
|
|
15
|
+
//# sourceMappingURL=visually-hidden.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visually-hidden.mjs","sources":["../../src/utils/visually-hidden.ts"],"sourcesContent":["import type { CSSProperties } from \"react\";\n\nexport const visuallyHidden: CSSProperties = {\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n};\n"],"names":[],"mappings":"AAEO,MAAM,cAAgC,GAAA;AAAA,EAC3C,QAAU,EAAA,UAAA;AAAA,EACV,MAAQ,EAAA,CAAA;AAAA,EACR,KAAO,EAAA,CAAA;AAAA,EACP,MAAQ,EAAA,CAAA;AAAA,EACR,OAAS,EAAA,CAAA;AAAA,EACT,MAAQ,EAAA,CAAA,CAAA;AAAA,EACR,QAAU,EAAA,QAAA;AAAA,EACV,IAAM,EAAA,kBAAA;AAAA,EACN,UAAY,EAAA,QAAA;AAAA,EACZ,QAAU,EAAA,QAAA;AACZ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap.js","sources":["../../src/utils/wrap.ts"],"sourcesContent":["export function wrap(value: number, min: number, max: number) {\n const range = max - min;\n\n return range > 0 ? ((((value - min) % range) + range) % range) + min : 0;\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,IAAA,CAAK,KAAe,EAAA,GAAA,EAAa,GAAa,EAAA;AAC5D,EAAA,MAAM,QAAQ,GAAM,GAAA,GAAA,CAAA;AAEpB,EAAA,OAAO,QAAQ,CAAQ,GAAA,CAAA,CAAA,KAAA,GAAQ,OAAO,KAAS,GAAA,KAAA,IAAS,QAAS,GAAM,GAAA,CAAA,CAAA;AACzE;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap.mjs","sources":["../../src/utils/wrap.ts"],"sourcesContent":["export function wrap(value: number, min: number, max: number) {\n const range = max - min;\n\n return range > 0 ? ((((value - min) % range) + range) % range) + min : 0;\n}\n"],"names":[],"mappings":"AAAgB,SAAA,IAAA,CAAK,KAAe,EAAA,GAAA,EAAa,GAAa,EAAA;AAC5D,EAAA,MAAM,QAAQ,GAAM,GAAA,GAAA,CAAA;AAEpB,EAAA,OAAO,QAAQ,CAAQ,GAAA,CAAA,CAAA,KAAA,GAAQ,OAAO,KAAS,GAAA,KAAA,IAAS,QAAS,GAAM,GAAA,CAAA,CAAA;AACzE;;;;"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const PKG_NAME = "@liveblocks/react-ui";
|
|
4
|
+
const PKG_VERSION = "1.12.0";
|
|
5
|
+
const PKG_FORMAT = "cjs";
|
|
6
|
+
|
|
7
|
+
exports.PKG_FORMAT = PKG_FORMAT;
|
|
8
|
+
exports.PKG_NAME = PKG_NAME;
|
|
9
|
+
exports.PKG_VERSION = PKG_VERSION;
|
|
10
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../src/version.ts"],"sourcesContent":["declare const __VERSION__: string;\ndeclare const TSUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/react-ui\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof TSUP_FORMAT === \"string\" && TSUP_FORMAT;\n"],"names":[],"mappings":";;AAGO,MAAM,QAAW,GAAA,uBAAA;AACX,MAAA,WAAA,GAAiD,SAAA;AACjD,MAAA,UAAA,GAAgD;;;;;;"}
|
package/dist/version.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.mjs","sources":["../src/version.ts"],"sourcesContent":["declare const __VERSION__: string;\ndeclare const TSUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/react-ui\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof TSUP_FORMAT === \"string\" && TSUP_FORMAT;\n"],"names":[],"mappings":"AAGO,MAAM,QAAW,GAAA,uBAAA;AACX,MAAA,WAAA,GAAiD,SAAA;AACjD,MAAA,UAAA,GAAgD;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@liveblocks/react-ui",
|
|
3
|
+
"version": "1.12.0-initial1",
|
|
4
|
+
"description": "A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "commonjs",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./dist/index.d.mts",
|
|
13
|
+
"default": "./dist/index.mjs"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"module": "./dist/index.mjs",
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"./primitives": {
|
|
22
|
+
"import": {
|
|
23
|
+
"types": "./dist/primitives/index.d.mts",
|
|
24
|
+
"default": "./dist/primitives/index.mjs"
|
|
25
|
+
},
|
|
26
|
+
"require": {
|
|
27
|
+
"types": "./dist/primitives/index.d.ts",
|
|
28
|
+
"module": "./dist/primitives/index.mjs",
|
|
29
|
+
"default": "./dist/primitives/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"./styles.css": {
|
|
33
|
+
"types": "./styles.css.d.ts",
|
|
34
|
+
"default": "./styles.css"
|
|
35
|
+
},
|
|
36
|
+
"./styles/dark/media-query.css": {
|
|
37
|
+
"types": "./styles/dark/media-query.css.d.ts",
|
|
38
|
+
"default": "./styles/dark/media-query.css"
|
|
39
|
+
},
|
|
40
|
+
"./styles/dark/attributes.css": {
|
|
41
|
+
"types": "./styles/dark/attributes.css.d.ts",
|
|
42
|
+
"default": "./styles/dark/attributes.css"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"files": [
|
|
46
|
+
"dist/**",
|
|
47
|
+
"primitives/**",
|
|
48
|
+
"**/*.css",
|
|
49
|
+
"**/*.css.d.ts",
|
|
50
|
+
"**/*.css.map",
|
|
51
|
+
"README.md"
|
|
52
|
+
],
|
|
53
|
+
"scripts": {
|
|
54
|
+
"dev": "rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript --watch",
|
|
55
|
+
"build": "rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript",
|
|
56
|
+
"start": "npm run dev",
|
|
57
|
+
"format": "eslint --fix src/; stylelint --fix src/styles/; prettier --write src/",
|
|
58
|
+
"lint": "eslint src/; stylelint src/styles/",
|
|
59
|
+
"lint:package": "publint --strict && attw --pack",
|
|
60
|
+
"test": "jest --silent --verbose --color=always",
|
|
61
|
+
"test:watch": "jest --silent --verbose --color=always --watch"
|
|
62
|
+
},
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"@floating-ui/react-dom": "^2.0.8",
|
|
65
|
+
"@liveblocks/client": "1.12.0",
|
|
66
|
+
"@liveblocks/core": "1.12.0",
|
|
67
|
+
"@liveblocks/react": "1.12.0",
|
|
68
|
+
"@radix-ui/react-dropdown-menu": "^2.0.6",
|
|
69
|
+
"@radix-ui/react-popover": "^1.0.7",
|
|
70
|
+
"@radix-ui/react-slot": "^1.0.2",
|
|
71
|
+
"@radix-ui/react-toggle": "^1.0.3",
|
|
72
|
+
"@radix-ui/react-tooltip": "^1.0.7",
|
|
73
|
+
"react-virtuoso": "^4.7.4",
|
|
74
|
+
"slate": "^0.102.0",
|
|
75
|
+
"slate-history": "^0.100.0",
|
|
76
|
+
"slate-react": "^0.102.0",
|
|
77
|
+
"use-sync-external-store": "^1.2.0"
|
|
78
|
+
},
|
|
79
|
+
"peerDependencies": {
|
|
80
|
+
"react": "^16.14.0 || ^17 || ^18"
|
|
81
|
+
},
|
|
82
|
+
"devDependencies": {
|
|
83
|
+
"@liveblocks/eslint-config": "*",
|
|
84
|
+
"@liveblocks/jest-config": "*",
|
|
85
|
+
"@rollup/plugin-replace": "^5.0.5",
|
|
86
|
+
"@rollup/plugin-typescript": "^11.1.2",
|
|
87
|
+
"@testing-library/jest-dom": "^5.16.5",
|
|
88
|
+
"@testing-library/react": "^13.1.1",
|
|
89
|
+
"@types/use-sync-external-store": "^0.0.3",
|
|
90
|
+
"emojibase": "^15.3.0",
|
|
91
|
+
"eslint-plugin-react": "^7.33.2",
|
|
92
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
93
|
+
"msw": "^0.27.1",
|
|
94
|
+
"postcss": "^8.4.31",
|
|
95
|
+
"postcss-advanced-variables": "^3.0.1",
|
|
96
|
+
"postcss-combine-duplicated-selectors": "^10.0.3",
|
|
97
|
+
"postcss-functions": "^4.0.2",
|
|
98
|
+
"postcss-import": "^15.1.0",
|
|
99
|
+
"postcss-lightningcss": "^1.0.0",
|
|
100
|
+
"postcss-nesting": "^12.0.1",
|
|
101
|
+
"postcss-reporter": "^7.0.5",
|
|
102
|
+
"postcss-sort-media-queries": "^5.2.0",
|
|
103
|
+
"rollup": "^3.28.0",
|
|
104
|
+
"rollup-plugin-dts": "^5.3.1",
|
|
105
|
+
"rollup-plugin-esbuild": "^5.0.0",
|
|
106
|
+
"rollup-plugin-preserve-directives": "^0.2.0",
|
|
107
|
+
"stylelint": "^15.10.2",
|
|
108
|
+
"stylelint-config-standard": "^34.0.0",
|
|
109
|
+
"stylelint-order": "^6.0.3",
|
|
110
|
+
"stylelint-plugin-logical-css": "^0.13.2"
|
|
111
|
+
},
|
|
112
|
+
"sideEffects": false,
|
|
113
|
+
"bugs": {
|
|
114
|
+
"url": "https://github.com/liveblocks/liveblocks/issues"
|
|
115
|
+
},
|
|
116
|
+
"repository": {
|
|
117
|
+
"type": "git",
|
|
118
|
+
"url": "https://github.com/liveblocks/liveblocks.git",
|
|
119
|
+
"directory": "packages/liveblocks-react-ui"
|
|
120
|
+
},
|
|
121
|
+
"homepage": "https://liveblocks.io",
|
|
122
|
+
"keywords": [
|
|
123
|
+
"react",
|
|
124
|
+
"components",
|
|
125
|
+
"comments",
|
|
126
|
+
"threads",
|
|
127
|
+
"notifications",
|
|
128
|
+
"liveblocks",
|
|
129
|
+
"real-time",
|
|
130
|
+
"toolkit",
|
|
131
|
+
"multiplayer",
|
|
132
|
+
"websockets",
|
|
133
|
+
"collaboration",
|
|
134
|
+
"collaborative",
|
|
135
|
+
"presence",
|
|
136
|
+
"crdts",
|
|
137
|
+
"synchronize",
|
|
138
|
+
"rooms",
|
|
139
|
+
"documents",
|
|
140
|
+
"conflict resolution"
|
|
141
|
+
]
|
|
142
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
What is this directory? It exists solely to support subpath imports for node10.
|
|
2
|
+
|
|
3
|
+
While we're not interested in supporting this long-past EOL version 10 of Node,
|
|
4
|
+
we add this to acknowledge the reality that many TypeScript projects out there
|
|
5
|
+
are still using `--moduleResolution node`.
|