@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,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var slate = require('slate');
|
|
4
|
+
var getCharacter = require('./get-character.js');
|
|
5
|
+
var isSelectionCollapsed = require('./is-selection-collapsed.js');
|
|
6
|
+
|
|
7
|
+
function isMarkActive(editor, format) {
|
|
8
|
+
const marks = slate.Editor.marks(editor);
|
|
9
|
+
return marks ? marks[format] === true : false;
|
|
10
|
+
}
|
|
11
|
+
function toggleMark(editor, format) {
|
|
12
|
+
const isActive = isMarkActive(editor, format);
|
|
13
|
+
if (isActive) {
|
|
14
|
+
slate.Editor.removeMark(editor, format);
|
|
15
|
+
} else {
|
|
16
|
+
slate.Editor.addMark(editor, format, true);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function removeMarks(editor) {
|
|
20
|
+
const marks = slate.Editor.marks(editor);
|
|
21
|
+
if (marks) {
|
|
22
|
+
for (const mark in marks) {
|
|
23
|
+
slate.Editor.removeMark(editor, mark);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function leaveMarkEdge(editor, edge) {
|
|
28
|
+
if (isSelectionCollapsed.isSelectionCollapsed(editor.selection)) {
|
|
29
|
+
const marks = Object.keys(slate.Editor.marks(editor) ?? {});
|
|
30
|
+
if (marks.length > 0) {
|
|
31
|
+
const sibling = edge === "start" ? getCharacter.getCharacterBefore(editor, editor.selection) : getCharacter.getCharacterAfter(editor, editor.selection);
|
|
32
|
+
if (!sibling) {
|
|
33
|
+
removeMarks(editor);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
exports.isMarkActive = isMarkActive;
|
|
40
|
+
exports.leaveMarkEdge = leaveMarkEdge;
|
|
41
|
+
exports.removeMarks = removeMarks;
|
|
42
|
+
exports.toggleMark = toggleMark;
|
|
43
|
+
//# sourceMappingURL=marks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marks.js","sources":["../../../src/slate/utils/marks.ts"],"sourcesContent":["import { Editor as SlateEditor } from \"slate\";\n\nimport type { ComposerBodyMarks } from \"../../types\";\nimport { getCharacterAfter, getCharacterBefore } from \"./get-character\";\nimport { isSelectionCollapsed } from \"./is-selection-collapsed\";\n\nexport function isMarkActive(editor: SlateEditor, format: ComposerBodyMarks) {\n const marks = SlateEditor.marks(editor);\n\n return marks ? marks[format] === true : false;\n}\n\nexport function toggleMark(editor: SlateEditor, format: ComposerBodyMarks) {\n const isActive = isMarkActive(editor, format);\n\n if (isActive) {\n SlateEditor.removeMark(editor, format);\n } else {\n SlateEditor.addMark(editor, format, true);\n }\n}\n\nexport function removeMarks(editor: SlateEditor) {\n const marks = SlateEditor.marks(editor);\n\n if (marks) {\n for (const mark in marks) {\n SlateEditor.removeMark(editor, mark);\n }\n }\n}\n\nexport function leaveMarkEdge(editor: SlateEditor, edge: \"start\" | \"end\") {\n if (isSelectionCollapsed(editor.selection)) {\n const marks = Object.keys(SlateEditor.marks(editor) ?? {});\n\n if (marks.length > 0) {\n const sibling =\n edge === \"start\"\n ? getCharacterBefore(editor, editor.selection)\n : getCharacterAfter(editor, editor.selection);\n\n if (!sibling) {\n removeMarks(editor);\n }\n }\n }\n}\n"],"names":["SlateEditor","isSelectionCollapsed","getCharacterBefore","getCharacterAfter"],"mappings":";;;;;;AAMgB,SAAA,YAAA,CAAa,QAAqB,MAA2B,EAAA;AAC3E,EAAM,MAAA,KAAA,GAAQA,YAAY,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEtC,EAAO,OAAA,KAAA,GAAQ,KAAM,CAAA,MAAA,CAAA,KAAY,IAAO,GAAA,KAAA,CAAA;AAC1C,CAAA;AAEgB,SAAA,UAAA,CAAW,QAAqB,MAA2B,EAAA;AACzE,EAAM,MAAA,QAAA,GAAW,YAAa,CAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAE5C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAYA,YAAA,CAAA,UAAA,CAAW,QAAQ,MAAM,CAAA,CAAA;AAAA,GAChC,MAAA;AACL,IAAYA,YAAA,CAAA,OAAA,CAAQ,MAAQ,EAAA,MAAA,EAAQ,IAAI,CAAA,CAAA;AAAA,GAC1C;AACF,CAAA;AAEO,SAAS,YAAY,MAAqB,EAAA;AAC/C,EAAM,MAAA,KAAA,GAAQA,YAAY,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEtC,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,MAAYA,YAAA,CAAA,UAAA,CAAW,QAAQ,IAAI,CAAA,CAAA;AAAA,KACrC;AAAA,GACF;AACF,CAAA;AAEgB,SAAA,aAAA,CAAc,QAAqB,IAAuB,EAAA;AACxE,EAAI,IAAAC,yCAAA,CAAqB,MAAO,CAAA,SAAS,CAAG,EAAA;AAC1C,IAAM,MAAA,KAAA,GAAQ,OAAO,IAAK,CAAAD,YAAA,CAAY,MAAM,MAAM,CAAA,IAAK,EAAE,CAAA,CAAA;AAEzD,IAAI,IAAA,KAAA,CAAM,SAAS,CAAG,EAAA;AACpB,MAAM,MAAA,OAAA,GACJ,IAAS,KAAA,OAAA,GACLE,+BAAmB,CAAA,MAAA,EAAQ,MAAO,CAAA,SAAS,CAC3C,GAAAC,8BAAA,CAAkB,MAAQ,EAAA,MAAA,CAAO,SAAS,CAAA,CAAA;AAEhD,MAAA,IAAI,CAAC,OAAS,EAAA;AACZ,QAAA,WAAA,CAAY,MAAM,CAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,GACF;AACF;;;;;;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Editor } from 'slate';
|
|
2
|
+
import { getCharacterBefore, getCharacterAfter } from './get-character.mjs';
|
|
3
|
+
import { isSelectionCollapsed } from './is-selection-collapsed.mjs';
|
|
4
|
+
|
|
5
|
+
function isMarkActive(editor, format) {
|
|
6
|
+
const marks = Editor.marks(editor);
|
|
7
|
+
return marks ? marks[format] === true : false;
|
|
8
|
+
}
|
|
9
|
+
function toggleMark(editor, format) {
|
|
10
|
+
const isActive = isMarkActive(editor, format);
|
|
11
|
+
if (isActive) {
|
|
12
|
+
Editor.removeMark(editor, format);
|
|
13
|
+
} else {
|
|
14
|
+
Editor.addMark(editor, format, true);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function removeMarks(editor) {
|
|
18
|
+
const marks = Editor.marks(editor);
|
|
19
|
+
if (marks) {
|
|
20
|
+
for (const mark in marks) {
|
|
21
|
+
Editor.removeMark(editor, mark);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function leaveMarkEdge(editor, edge) {
|
|
26
|
+
if (isSelectionCollapsed(editor.selection)) {
|
|
27
|
+
const marks = Object.keys(Editor.marks(editor) ?? {});
|
|
28
|
+
if (marks.length > 0) {
|
|
29
|
+
const sibling = edge === "start" ? getCharacterBefore(editor, editor.selection) : getCharacterAfter(editor, editor.selection);
|
|
30
|
+
if (!sibling) {
|
|
31
|
+
removeMarks(editor);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { isMarkActive, leaveMarkEdge, removeMarks, toggleMark };
|
|
38
|
+
//# sourceMappingURL=marks.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marks.mjs","sources":["../../../src/slate/utils/marks.ts"],"sourcesContent":["import { Editor as SlateEditor } from \"slate\";\n\nimport type { ComposerBodyMarks } from \"../../types\";\nimport { getCharacterAfter, getCharacterBefore } from \"./get-character\";\nimport { isSelectionCollapsed } from \"./is-selection-collapsed\";\n\nexport function isMarkActive(editor: SlateEditor, format: ComposerBodyMarks) {\n const marks = SlateEditor.marks(editor);\n\n return marks ? marks[format] === true : false;\n}\n\nexport function toggleMark(editor: SlateEditor, format: ComposerBodyMarks) {\n const isActive = isMarkActive(editor, format);\n\n if (isActive) {\n SlateEditor.removeMark(editor, format);\n } else {\n SlateEditor.addMark(editor, format, true);\n }\n}\n\nexport function removeMarks(editor: SlateEditor) {\n const marks = SlateEditor.marks(editor);\n\n if (marks) {\n for (const mark in marks) {\n SlateEditor.removeMark(editor, mark);\n }\n }\n}\n\nexport function leaveMarkEdge(editor: SlateEditor, edge: \"start\" | \"end\") {\n if (isSelectionCollapsed(editor.selection)) {\n const marks = Object.keys(SlateEditor.marks(editor) ?? {});\n\n if (marks.length > 0) {\n const sibling =\n edge === \"start\"\n ? getCharacterBefore(editor, editor.selection)\n : getCharacterAfter(editor, editor.selection);\n\n if (!sibling) {\n removeMarks(editor);\n }\n }\n }\n}\n"],"names":["SlateEditor"],"mappings":";;;;AAMgB,SAAA,YAAA,CAAa,QAAqB,MAA2B,EAAA;AAC3E,EAAM,MAAA,KAAA,GAAQA,MAAY,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEtC,EAAO,OAAA,KAAA,GAAQ,KAAM,CAAA,MAAA,CAAA,KAAY,IAAO,GAAA,KAAA,CAAA;AAC1C,CAAA;AAEgB,SAAA,UAAA,CAAW,QAAqB,MAA2B,EAAA;AACzE,EAAM,MAAA,QAAA,GAAW,YAAa,CAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAE5C,EAAA,IAAI,QAAU,EAAA;AACZ,IAAYA,MAAA,CAAA,UAAA,CAAW,QAAQ,MAAM,CAAA,CAAA;AAAA,GAChC,MAAA;AACL,IAAYA,MAAA,CAAA,OAAA,CAAQ,MAAQ,EAAA,MAAA,EAAQ,IAAI,CAAA,CAAA;AAAA,GAC1C;AACF,CAAA;AAEO,SAAS,YAAY,MAAqB,EAAA;AAC/C,EAAM,MAAA,KAAA,GAAQA,MAAY,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEtC,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,MAAYA,MAAA,CAAA,UAAA,CAAW,QAAQ,IAAI,CAAA,CAAA;AAAA,KACrC;AAAA,GACF;AACF,CAAA;AAEgB,SAAA,aAAA,CAAc,QAAqB,IAAuB,EAAA;AACxE,EAAI,IAAA,oBAAA,CAAqB,MAAO,CAAA,SAAS,CAAG,EAAA;AAC1C,IAAM,MAAA,KAAA,GAAQ,OAAO,IAAK,CAAAA,MAAA,CAAY,MAAM,MAAM,CAAA,IAAK,EAAE,CAAA,CAAA;AAEzD,IAAI,IAAA,KAAA,CAAM,SAAS,CAAG,EAAA;AACpB,MAAM,MAAA,OAAA,GACJ,IAAS,KAAA,OAAA,GACL,kBAAmB,CAAA,MAAA,EAAQ,MAAO,CAAA,SAAS,CAC3C,GAAA,iBAAA,CAAkB,MAAQ,EAAA,MAAA,CAAO,SAAS,CAAA,CAAA;AAEhD,MAAA,IAAI,CAAC,OAAS,EAAA;AACZ,QAAA,WAAA,CAAY,MAAM,CAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,GACF;AACF;;;;"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var core = require('@liveblocks/core');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var flushSync = require('./flush-sync.js');
|
|
7
|
+
var useLayoutEffect = require('./use-layout-effect.js');
|
|
8
|
+
|
|
9
|
+
const PERSIST_NAME = "Persist";
|
|
10
|
+
const PersistContext = React.createContext(null);
|
|
11
|
+
function usePersist() {
|
|
12
|
+
const persistContext = React.useContext(PersistContext);
|
|
13
|
+
return core.nn(persistContext, "Persist is missing from the React tree.");
|
|
14
|
+
}
|
|
15
|
+
function getChild(children) {
|
|
16
|
+
const child = Array.isArray(children) ? React.Children.only(children) : children;
|
|
17
|
+
return React.isValidElement(child) ? child : void 0;
|
|
18
|
+
}
|
|
19
|
+
function useAnimationPersist(ref) {
|
|
20
|
+
const [isPresent, unmount] = usePersist();
|
|
21
|
+
const previousAnimationName = React.useRef(null);
|
|
22
|
+
const unmountAnimationName = React.useRef(null);
|
|
23
|
+
useLayoutEffect.useLayoutEffect(() => {
|
|
24
|
+
const element = ref.current;
|
|
25
|
+
if (!element) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const handleAnimationEnd = (event) => {
|
|
29
|
+
if (event.animationName === unmountAnimationName.current) {
|
|
30
|
+
unmount();
|
|
31
|
+
}
|
|
32
|
+
previousAnimationName.current = event.animationName;
|
|
33
|
+
};
|
|
34
|
+
element.addEventListener("animationcancel", handleAnimationEnd);
|
|
35
|
+
element.addEventListener("animationend", handleAnimationEnd);
|
|
36
|
+
return () => {
|
|
37
|
+
element.removeEventListener("animationcancel", handleAnimationEnd);
|
|
38
|
+
element.removeEventListener("animationend", handleAnimationEnd);
|
|
39
|
+
};
|
|
40
|
+
}, [ref, unmount]);
|
|
41
|
+
useLayoutEffect.useLayoutEffect(() => {
|
|
42
|
+
const element = ref.current;
|
|
43
|
+
let animationFrameId;
|
|
44
|
+
if (!element) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (!isPresent) {
|
|
48
|
+
animationFrameId = requestAnimationFrame(() => {
|
|
49
|
+
const styles = getComputedStyle(element);
|
|
50
|
+
unmountAnimationName.current = styles.animationName;
|
|
51
|
+
if (styles.animationName === "none" || styles.animationName === previousAnimationName.current || styles.display === "none") {
|
|
52
|
+
unmount();
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return () => {
|
|
57
|
+
cancelAnimationFrame(animationFrameId);
|
|
58
|
+
};
|
|
59
|
+
}, [isPresent, ref, unmount]);
|
|
60
|
+
}
|
|
61
|
+
function Persist({ children }) {
|
|
62
|
+
const [isPersisting, setPersisting] = React.useState(true);
|
|
63
|
+
const lastPresentChild = React.useRef(null);
|
|
64
|
+
const child = getChild(children);
|
|
65
|
+
const unmount = React.useCallback(() => {
|
|
66
|
+
flushSync.flushSync(() => setPersisting(false));
|
|
67
|
+
}, []);
|
|
68
|
+
useLayoutEffect.useLayoutEffect(() => {
|
|
69
|
+
if (child) {
|
|
70
|
+
setPersisting(true);
|
|
71
|
+
lastPresentChild.current = child;
|
|
72
|
+
}
|
|
73
|
+
}, [child]);
|
|
74
|
+
return /* @__PURE__ */ React.createElement(PersistContext.Provider, {
|
|
75
|
+
value: [Boolean(child), unmount]
|
|
76
|
+
}, child ?? (isPersisting ? lastPresentChild.current : null));
|
|
77
|
+
}
|
|
78
|
+
if (process.env.NODE_ENV !== "production") {
|
|
79
|
+
Persist.displayName = PERSIST_NAME;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
exports.Persist = Persist;
|
|
83
|
+
exports.useAnimationPersist = useAnimationPersist;
|
|
84
|
+
exports.usePersist = usePersist;
|
|
85
|
+
//# sourceMappingURL=Persist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Persist.js","sources":["../../src/utils/Persist.tsx"],"sourcesContent":["\"use client\";\n\nimport { nn } from \"@liveblocks/core\";\nimport type { ReactNode, RefObject } from \"react\";\nimport React, {\n Children,\n createContext,\n isValidElement,\n useCallback,\n useContext,\n useRef,\n useState,\n} from \"react\";\n\nimport { flushSync } from \"./flush-sync\";\nimport { useLayoutEffect } from \"./use-layout-effect\";\n\n// Persist is an overly simplified version of Framer Motion's AnimatePresence,\n// mostly mimicking its usePresence API: https://github.com/framer/motion/blob/main/packages/framer-motion/src/components/AnimatePresence/use-presence.ts\n\nconst PERSIST_NAME = \"Persist\";\n\ninterface PersistProps {\n children: Exclude<ReactNode, Iterable<ReactNode>>;\n}\n\ntype PersistContext = [boolean, () => void];\n\nconst PersistContext = createContext<PersistContext | null>(null);\n\nexport function usePersist() {\n const persistContext = useContext(PersistContext);\n\n return nn(persistContext, \"Persist is missing from the React tree.\");\n}\n\nfunction getChild(children: ReactNode) {\n const child: ReactNode = Array.isArray(children)\n ? Children.only(children)\n : children;\n\n return isValidElement(child) ? child : undefined;\n}\n\nexport function useAnimationPersist(ref: RefObject<HTMLElement>) {\n const [isPresent, unmount] = usePersist();\n const previousAnimationName = useRef<string | null>(null);\n const unmountAnimationName = useRef<string | null>(null);\n\n useLayoutEffect(() => {\n const element = ref.current;\n\n if (!element) {\n return;\n }\n\n /**\n * Stop persisting at the end of the last animation.\n *\n * We keep track of all ending animations because animations stay\n * on getComputedStyle(element).animationName even if they're over,\n * so we need to keep track of previous animations to truly know if\n * an animation should be waited on.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n if (event.animationName === unmountAnimationName.current) {\n unmount();\n }\n\n previousAnimationName.current = event.animationName;\n };\n\n element.addEventListener(\"animationcancel\", handleAnimationEnd);\n element.addEventListener(\"animationend\", handleAnimationEnd);\n\n return () => {\n element.removeEventListener(\"animationcancel\", handleAnimationEnd);\n element.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n }, [ref, unmount]);\n\n useLayoutEffect(() => {\n const element = ref.current;\n let animationFrameId: number;\n\n if (!element) {\n return;\n }\n\n if (!isPresent) {\n // If the element should be unmounting, wait for a repaint and check\n // if it is visible and has an animation. If not, unmount immediately.\n animationFrameId = requestAnimationFrame(() => {\n const styles = getComputedStyle(element);\n unmountAnimationName.current = styles.animationName;\n\n if (\n styles.animationName === \"none\" ||\n styles.animationName === previousAnimationName.current ||\n styles.display === \"none\"\n ) {\n unmount();\n }\n });\n }\n\n return () => {\n cancelAnimationFrame(animationFrameId);\n };\n }, [isPresent, ref, unmount]);\n}\n\n/**\n * Persist a component until it decides to unmount by\n * itself (instead of orchestrating the unmount from the parent).\n */\nexport function Persist({ children }: PersistProps) {\n const [isPersisting, setPersisting] = useState(true);\n const lastPresentChild = useRef<ReactNode>(null);\n const child = getChild(children);\n\n const unmount = useCallback(() => {\n flushSync(() => setPersisting(false));\n }, []);\n\n useLayoutEffect(() => {\n if (child) {\n setPersisting(true);\n lastPresentChild.current = child;\n }\n }, [child]);\n\n return (\n <PersistContext.Provider value={[Boolean(child), unmount]}>\n {child ?? (isPersisting ? lastPresentChild.current : null)}\n </PersistContext.Provider>\n );\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Persist.displayName = PERSIST_NAME;\n}\n"],"names":[],"mappings":";;;;;;;;AAoBA;AAQA;AAEO;AACL;AAEA;AACF;AAEA;AACE;AAIA;AACF;AAEO;AACL;AACA;AACA;AAEA;AACE;AAEA;AACE;AAAA;AAWF;AACE;AACE;AAAQ;AAGV;AAAsC;AAGxC;AACA;AAEA;AACE;AACA;AAA8D;AAChE;AAGF;AACE;AACA;AAEA;AACE;AAAA;AAGF;AAGE;AACE;AACA;AAEA;AAKE;AAAQ;AACV;AACD;AAGH;AACE;AAAqC;AACvC;AAEJ;AAMgB;AACd;AACA;AACA;AAEA;AACE;AAAoC;AAGtC;AACE;AACE;AACA;AAA2B;AAC7B;AAGF;AACG;AAAuD;AAI5D;AAEA;AACE;AACF;;;;"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { nn } from '@liveblocks/core';
|
|
3
|
+
import React__default, { createContext, useContext, useRef, useState, useCallback, Children, isValidElement } from 'react';
|
|
4
|
+
import { flushSync } from './flush-sync.mjs';
|
|
5
|
+
import { useLayoutEffect } from './use-layout-effect.mjs';
|
|
6
|
+
|
|
7
|
+
const PERSIST_NAME = "Persist";
|
|
8
|
+
const PersistContext = createContext(null);
|
|
9
|
+
function usePersist() {
|
|
10
|
+
const persistContext = useContext(PersistContext);
|
|
11
|
+
return nn(persistContext, "Persist is missing from the React tree.");
|
|
12
|
+
}
|
|
13
|
+
function getChild(children) {
|
|
14
|
+
const child = Array.isArray(children) ? Children.only(children) : children;
|
|
15
|
+
return isValidElement(child) ? child : void 0;
|
|
16
|
+
}
|
|
17
|
+
function useAnimationPersist(ref) {
|
|
18
|
+
const [isPresent, unmount] = usePersist();
|
|
19
|
+
const previousAnimationName = useRef(null);
|
|
20
|
+
const unmountAnimationName = useRef(null);
|
|
21
|
+
useLayoutEffect(() => {
|
|
22
|
+
const element = ref.current;
|
|
23
|
+
if (!element) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const handleAnimationEnd = (event) => {
|
|
27
|
+
if (event.animationName === unmountAnimationName.current) {
|
|
28
|
+
unmount();
|
|
29
|
+
}
|
|
30
|
+
previousAnimationName.current = event.animationName;
|
|
31
|
+
};
|
|
32
|
+
element.addEventListener("animationcancel", handleAnimationEnd);
|
|
33
|
+
element.addEventListener("animationend", handleAnimationEnd);
|
|
34
|
+
return () => {
|
|
35
|
+
element.removeEventListener("animationcancel", handleAnimationEnd);
|
|
36
|
+
element.removeEventListener("animationend", handleAnimationEnd);
|
|
37
|
+
};
|
|
38
|
+
}, [ref, unmount]);
|
|
39
|
+
useLayoutEffect(() => {
|
|
40
|
+
const element = ref.current;
|
|
41
|
+
let animationFrameId;
|
|
42
|
+
if (!element) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (!isPresent) {
|
|
46
|
+
animationFrameId = requestAnimationFrame(() => {
|
|
47
|
+
const styles = getComputedStyle(element);
|
|
48
|
+
unmountAnimationName.current = styles.animationName;
|
|
49
|
+
if (styles.animationName === "none" || styles.animationName === previousAnimationName.current || styles.display === "none") {
|
|
50
|
+
unmount();
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return () => {
|
|
55
|
+
cancelAnimationFrame(animationFrameId);
|
|
56
|
+
};
|
|
57
|
+
}, [isPresent, ref, unmount]);
|
|
58
|
+
}
|
|
59
|
+
function Persist({ children }) {
|
|
60
|
+
const [isPersisting, setPersisting] = useState(true);
|
|
61
|
+
const lastPresentChild = useRef(null);
|
|
62
|
+
const child = getChild(children);
|
|
63
|
+
const unmount = useCallback(() => {
|
|
64
|
+
flushSync(() => setPersisting(false));
|
|
65
|
+
}, []);
|
|
66
|
+
useLayoutEffect(() => {
|
|
67
|
+
if (child) {
|
|
68
|
+
setPersisting(true);
|
|
69
|
+
lastPresentChild.current = child;
|
|
70
|
+
}
|
|
71
|
+
}, [child]);
|
|
72
|
+
return /* @__PURE__ */ React__default.createElement(PersistContext.Provider, {
|
|
73
|
+
value: [Boolean(child), unmount]
|
|
74
|
+
}, child ?? (isPersisting ? lastPresentChild.current : null));
|
|
75
|
+
}
|
|
76
|
+
if (process.env.NODE_ENV !== "production") {
|
|
77
|
+
Persist.displayName = PERSIST_NAME;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export { Persist, useAnimationPersist, usePersist };
|
|
81
|
+
//# sourceMappingURL=Persist.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Persist.mjs","sources":["../../src/utils/Persist.tsx"],"sourcesContent":["\"use client\";\n\nimport { nn } from \"@liveblocks/core\";\nimport type { ReactNode, RefObject } from \"react\";\nimport React, {\n Children,\n createContext,\n isValidElement,\n useCallback,\n useContext,\n useRef,\n useState,\n} from \"react\";\n\nimport { flushSync } from \"./flush-sync\";\nimport { useLayoutEffect } from \"./use-layout-effect\";\n\n// Persist is an overly simplified version of Framer Motion's AnimatePresence,\n// mostly mimicking its usePresence API: https://github.com/framer/motion/blob/main/packages/framer-motion/src/components/AnimatePresence/use-presence.ts\n\nconst PERSIST_NAME = \"Persist\";\n\ninterface PersistProps {\n children: Exclude<ReactNode, Iterable<ReactNode>>;\n}\n\ntype PersistContext = [boolean, () => void];\n\nconst PersistContext = createContext<PersistContext | null>(null);\n\nexport function usePersist() {\n const persistContext = useContext(PersistContext);\n\n return nn(persistContext, \"Persist is missing from the React tree.\");\n}\n\nfunction getChild(children: ReactNode) {\n const child: ReactNode = Array.isArray(children)\n ? Children.only(children)\n : children;\n\n return isValidElement(child) ? child : undefined;\n}\n\nexport function useAnimationPersist(ref: RefObject<HTMLElement>) {\n const [isPresent, unmount] = usePersist();\n const previousAnimationName = useRef<string | null>(null);\n const unmountAnimationName = useRef<string | null>(null);\n\n useLayoutEffect(() => {\n const element = ref.current;\n\n if (!element) {\n return;\n }\n\n /**\n * Stop persisting at the end of the last animation.\n *\n * We keep track of all ending animations because animations stay\n * on getComputedStyle(element).animationName even if they're over,\n * so we need to keep track of previous animations to truly know if\n * an animation should be waited on.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n if (event.animationName === unmountAnimationName.current) {\n unmount();\n }\n\n previousAnimationName.current = event.animationName;\n };\n\n element.addEventListener(\"animationcancel\", handleAnimationEnd);\n element.addEventListener(\"animationend\", handleAnimationEnd);\n\n return () => {\n element.removeEventListener(\"animationcancel\", handleAnimationEnd);\n element.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n }, [ref, unmount]);\n\n useLayoutEffect(() => {\n const element = ref.current;\n let animationFrameId: number;\n\n if (!element) {\n return;\n }\n\n if (!isPresent) {\n // If the element should be unmounting, wait for a repaint and check\n // if it is visible and has an animation. If not, unmount immediately.\n animationFrameId = requestAnimationFrame(() => {\n const styles = getComputedStyle(element);\n unmountAnimationName.current = styles.animationName;\n\n if (\n styles.animationName === \"none\" ||\n styles.animationName === previousAnimationName.current ||\n styles.display === \"none\"\n ) {\n unmount();\n }\n });\n }\n\n return () => {\n cancelAnimationFrame(animationFrameId);\n };\n }, [isPresent, ref, unmount]);\n}\n\n/**\n * Persist a component until it decides to unmount by\n * itself (instead of orchestrating the unmount from the parent).\n */\nexport function Persist({ children }: PersistProps) {\n const [isPersisting, setPersisting] = useState(true);\n const lastPresentChild = useRef<ReactNode>(null);\n const child = getChild(children);\n\n const unmount = useCallback(() => {\n flushSync(() => setPersisting(false));\n }, []);\n\n useLayoutEffect(() => {\n if (child) {\n setPersisting(true);\n lastPresentChild.current = child;\n }\n }, [child]);\n\n return (\n <PersistContext.Provider value={[Boolean(child), unmount]}>\n {child ?? (isPersisting ? lastPresentChild.current : null)}\n </PersistContext.Provider>\n );\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Persist.displayName = PERSIST_NAME;\n}\n"],"names":[],"mappings":";;;;;;AAoBA;AAQA;AAEO;AACL;AAEA;AACF;AAEA;AACE;AAIA;AACF;AAEO;AACL;AACA;AACA;AAEA;AACE;AAEA;AACE;AAAA;AAWF;AACE;AACE;AAAQ;AAGV;AAAsC;AAGxC;AACA;AAEA;AACE;AACA;AAA8D;AAChE;AAGF;AACE;AACA;AAEA;AACE;AAAA;AAGF;AAGE;AACE;AACA;AAEA;AAKE;AAAQ;AACV;AACD;AAGH;AACE;AAAqC;AACvC;AAEJ;AAMgB;AACd;AACA;AACA;AAEA;AACE;AAAoC;AAGtC;AACE;AACE;AACA;AAA2B;AAC7B;AAGF;AACG;AAAuD;AAI5D;AAEA;AACE;AACF;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var ReactDOM = require('react-dom');
|
|
7
|
+
|
|
8
|
+
const PORTAL_NAME = "Portal";
|
|
9
|
+
const Portal = React.forwardRef(
|
|
10
|
+
({ container = document?.body, asChild, ...props }, forwardedRef) => {
|
|
11
|
+
const Component = asChild ? reactSlot.Slot : "div";
|
|
12
|
+
return container ? ReactDOM.createPortal(
|
|
13
|
+
/* @__PURE__ */ React.createElement(Component, {
|
|
14
|
+
"data-liveblocks-portal": "",
|
|
15
|
+
...props,
|
|
16
|
+
ref: forwardedRef
|
|
17
|
+
}),
|
|
18
|
+
container
|
|
19
|
+
) : null;
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
if (process.env.NODE_ENV !== "production") {
|
|
23
|
+
Portal.displayName = PORTAL_NAME;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
exports.Portal = Portal;
|
|
27
|
+
//# sourceMappingURL=Portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Portal.js","sources":["../../src/utils/Portal.tsx"],"sourcesContent":["\"use client\";\n\nimport { Slot } from \"@radix-ui/react-slot\";\nimport React, { forwardRef } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport type { ComponentPropsWithSlot } from \"../types\";\n\nconst PORTAL_NAME = \"Portal\";\n\ninterface PortalProps extends ComponentPropsWithSlot<\"div\"> {\n /**\n * The container to render the portal into.\n */\n container?: HTMLElement | null;\n}\n\nconst Portal = forwardRef<HTMLDivElement, PortalProps>(\n ({ container = document?.body, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n\n return container\n ? createPortal(\n <Component data-liveblocks-portal=\"\" {...props} ref={forwardedRef} />,\n container\n )\n : null;\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = PORTAL_NAME;\n}\n\nexport { Portal };\n"],"names":[],"mappings":";;;;;;;AAQA;AASA;AAAe;AAEX;AAEA;AACI;AACG;AAAiC;AAAO;AAAY;AAAc;AACnE;AAEF;AAER;AAEA;AACE;AACF;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
3
|
+
import React__default, { forwardRef } from 'react';
|
|
4
|
+
import { createPortal } from 'react-dom';
|
|
5
|
+
|
|
6
|
+
const PORTAL_NAME = "Portal";
|
|
7
|
+
const Portal = forwardRef(
|
|
8
|
+
({ container = document?.body, asChild, ...props }, forwardedRef) => {
|
|
9
|
+
const Component = asChild ? Slot : "div";
|
|
10
|
+
return container ? createPortal(
|
|
11
|
+
/* @__PURE__ */ React__default.createElement(Component, {
|
|
12
|
+
"data-liveblocks-portal": "",
|
|
13
|
+
...props,
|
|
14
|
+
ref: forwardedRef
|
|
15
|
+
}),
|
|
16
|
+
container
|
|
17
|
+
) : null;
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
if (process.env.NODE_ENV !== "production") {
|
|
21
|
+
Portal.displayName = PORTAL_NAME;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { Portal };
|
|
25
|
+
//# sourceMappingURL=Portal.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Portal.mjs","sources":["../../src/utils/Portal.tsx"],"sourcesContent":["\"use client\";\n\nimport { Slot } from \"@radix-ui/react-slot\";\nimport React, { forwardRef } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport type { ComponentPropsWithSlot } from \"../types\";\n\nconst PORTAL_NAME = \"Portal\";\n\ninterface PortalProps extends ComponentPropsWithSlot<\"div\"> {\n /**\n * The container to render the portal into.\n */\n container?: HTMLElement | null;\n}\n\nconst Portal = forwardRef<HTMLDivElement, PortalProps>(\n ({ container = document?.body, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n\n return container\n ? createPortal(\n <Component data-liveblocks-portal=\"\" {...props} ref={forwardedRef} />,\n container\n )\n : null;\n }\n);\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = PORTAL_NAME;\n}\n\nexport { Portal };\n"],"names":[],"mappings":";;;;;AAQA;AASA;AAAe;AAEX;AAEA;AACI;AACG;AAAiC;AAAO;AAAY;AAAc;AACnE;AAEF;AAER;AAEA;AACE;AACF;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalize.js","sources":["../../src/utils/capitalize.ts"],"sourcesContent":["export function capitalize(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n"],"names":[],"mappings":";;AAAO,SAAS,WAAW,MAAgB,EAAA;AACzC,EAAO,OAAA,MAAA,CAAO,OAAO,CAAC,CAAA,CAAE,aAAgB,GAAA,MAAA,CAAO,MAAM,CAAC,CAAA,CAAA;AACxD;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalize.mjs","sources":["../../src/utils/capitalize.ts"],"sourcesContent":["export function capitalize(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n"],"names":[],"mappings":"AAAO,SAAS,WAAW,MAAgB,EAAA;AACzC,EAAO,OAAA,MAAA,CAAO,OAAO,CAAC,CAAA,CAAE,aAAgB,GAAA,MAAA,CAAO,MAAM,CAAC,CAAA,CAAA;AACxD;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk.js","sources":["../../src/utils/chunk.ts"],"sourcesContent":["export function chunk<T>(array: T[], size: number): T[][] {\n const chunks: T[][] = [];\n\n for (let i = 0, j = array.length; i < j; i += size) {\n chunks.push(array.slice(i, i + size));\n }\n\n return chunks;\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,KAAA,CAAS,OAAY,IAAqB,EAAA;AACxD,EAAA,MAAM,SAAgB,EAAC,CAAA;AAEvB,EAAS,KAAA,IAAA,CAAA,GAAI,GAAG,CAAI,GAAA,KAAA,CAAM,QAAQ,CAAI,GAAA,CAAA,EAAG,KAAK,IAAM,EAAA;AAClD,IAAA,MAAA,CAAO,KAAK,KAAM,CAAA,KAAA,CAAM,CAAG,EAAA,CAAA,GAAI,IAAI,CAAC,CAAA,CAAA;AAAA,GACtC;AAEA,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk.mjs","sources":["../../src/utils/chunk.ts"],"sourcesContent":["export function chunk<T>(array: T[], size: number): T[][] {\n const chunks: T[][] = [];\n\n for (let i = 0, j = array.length; i < j; i += size) {\n chunks.push(array.slice(i, i + size));\n }\n\n return chunks;\n}\n"],"names":[],"mappings":"AAAgB,SAAA,KAAA,CAAS,OAAY,IAAqB,EAAA;AACxD,EAAA,MAAM,SAAgB,EAAC,CAAA;AAEvB,EAAS,KAAA,IAAA,CAAA,GAAI,GAAG,CAAI,GAAA,KAAA,CAAM,QAAQ,CAAI,GAAA,CAAA,EAAG,KAAK,IAAM,EAAA;AAClD,IAAA,MAAA,CAAO,KAAK,KAAM,CAAA,KAAA,CAAM,CAAG,EAAA,CAAA,GAAI,IAAI,CAAC,CAAA,CAAA;AAAA,GACtC;AAEA,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clamp.js","sources":["../../src/utils/clamp.ts"],"sourcesContent":["export function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,KAAA,CAAM,KAAe,EAAA,GAAA,EAAa,GAAa,EAAA;AAC7D,EAAA,OAAO,KAAK,GAAI,CAAA,IAAA,CAAK,IAAI,KAAO,EAAA,GAAG,GAAG,GAAG,CAAA,CAAA;AAC3C;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clamp.mjs","sources":["../../src/utils/clamp.ts"],"sourcesContent":["export function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n"],"names":[],"mappings":"AAAgB,SAAA,KAAA,CAAM,KAAe,EAAA,GAAA,EAAa,GAAa,EAAA;AAC7D,EAAA,OAAO,KAAK,GAAI,CAAA,IAAA,CAAK,IAAI,KAAO,EAAA,GAAG,GAAG,GAAG,CAAA,CAAA;AAC3C;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-names.js","sources":["../../src/utils/class-names.ts"],"sourcesContent":["export function classNames(\n ...args: (string | number | boolean | undefined | null)[]\n) {\n return args\n .filter((arg) => typeof arg === \"string\" || typeof arg === \"number\")\n .join(\" \");\n}\n"],"names":[],"mappings":";;AAAO,SAAS,cACX,IACH,EAAA;AACA,EAAA,OAAO,IACJ,CAAA,MAAA,CAAO,CAAC,GAAA,KAAQ,OAAO,GAAA,KAAQ,QAAY,IAAA,OAAO,GAAQ,KAAA,QAAQ,CAClE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AACb;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-names.mjs","sources":["../../src/utils/class-names.ts"],"sourcesContent":["export function classNames(\n ...args: (string | number | boolean | undefined | null)[]\n) {\n return args\n .filter((arg) => typeof arg === \"string\" || typeof arg === \"number\")\n .join(\" \");\n}\n"],"names":[],"mappings":"AAAO,SAAS,cACX,IACH,EAAA;AACA,EAAA,OAAO,IACJ,CAAA,MAAA,CAAO,CAAC,GAAA,KAAQ,OAAO,GAAA,KAAQ,QAAY,IAAA,OAAO,GAAQ,KAAA,QAAQ,CAClE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AACb;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exists.js","sources":["../../src/utils/exists.ts"],"sourcesContent":["export function exists<T>(input: null | undefined | T): input is T {\n return input !== null && input !== undefined;\n}\n"],"names":[],"mappings":";;AAAO,SAAS,OAAU,KAAyC,EAAA;AACjE,EAAO,OAAA,KAAA,KAAU,QAAQ,KAAU,KAAA,KAAA,CAAA,CAAA;AACrC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exists.mjs","sources":["../../src/utils/exists.ts"],"sourcesContent":["export function exists<T>(input: null | undefined | T): input is T {\n return input !== null && input !== undefined;\n}\n"],"names":[],"mappings":"AAAO,SAAS,OAAU,KAAyC,EAAA;AACjE,EAAO,OAAA,KAAA,KAAU,QAAQ,KAAU,KAAA,KAAA,CAAA,CAAA;AACrC;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function findLastIndex(array, predicate) {
|
|
4
|
+
let index = array.length - 1;
|
|
5
|
+
while (index >= 0) {
|
|
6
|
+
if (predicate(array[index])) {
|
|
7
|
+
return index;
|
|
8
|
+
}
|
|
9
|
+
index--;
|
|
10
|
+
}
|
|
11
|
+
return -1;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.findLastIndex = findLastIndex;
|
|
15
|
+
//# sourceMappingURL=find-last-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-last-index.js","sources":["../../src/utils/find-last-index.ts"],"sourcesContent":["export function findLastIndex<T>(\n array: T[],\n predicate: (member: T) => unknown\n) {\n let index = array.length - 1;\n\n while (index >= 0) {\n if (predicate(array[index])) {\n return index;\n }\n\n index--;\n }\n\n return -1;\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,aAAA,CACd,OACA,SACA,EAAA;AACA,EAAI,IAAA,KAAA,GAAQ,MAAM,MAAS,GAAA,CAAA,CAAA;AAE3B,EAAA,OAAO,SAAS,CAAG,EAAA;AACjB,IAAI,IAAA,SAAA,CAAU,KAAM,CAAA,KAAA,CAAM,CAAG,EAAA;AAC3B,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAEA,IAAA,KAAA,EAAA,CAAA;AAAA,GACF;AAEA,EAAO,OAAA,CAAA,CAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function findLastIndex(array, predicate) {
|
|
2
|
+
let index = array.length - 1;
|
|
3
|
+
while (index >= 0) {
|
|
4
|
+
if (predicate(array[index])) {
|
|
5
|
+
return index;
|
|
6
|
+
}
|
|
7
|
+
index--;
|
|
8
|
+
}
|
|
9
|
+
return -1;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { findLastIndex };
|
|
13
|
+
//# sourceMappingURL=find-last-index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-last-index.mjs","sources":["../../src/utils/find-last-index.ts"],"sourcesContent":["export function findLastIndex<T>(\n array: T[],\n predicate: (member: T) => unknown\n) {\n let index = array.length - 1;\n\n while (index >= 0) {\n if (predicate(array[index])) {\n return index;\n }\n\n index--;\n }\n\n return -1;\n}\n"],"names":[],"mappings":"AAAgB,SAAA,aAAA,CACd,OACA,SACA,EAAA;AACA,EAAI,IAAA,KAAA,GAAQ,MAAM,MAAS,GAAA,CAAA,CAAA;AAE3B,EAAA,OAAO,SAAS,CAAG,EAAA;AACjB,IAAI,IAAA,SAAA,CAAU,KAAM,CAAA,KAAA,CAAM,CAAG,EAAA;AAC3B,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAEA,IAAA,KAAA,EAAA,CAAA;AAAA,GACF;AAEA,EAAO,OAAA,CAAA,CAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ReactDOM = require('react-dom');
|
|
4
|
+
|
|
5
|
+
const useReactFlushSync = ReactDOM["flushSync".toString()];
|
|
6
|
+
function flushSyncFallback(fn) {
|
|
7
|
+
return fn();
|
|
8
|
+
}
|
|
9
|
+
const flushSync = useReactFlushSync ?? flushSyncFallback;
|
|
10
|
+
|
|
11
|
+
exports.flushSync = flushSync;
|
|
12
|
+
//# sourceMappingURL=flush-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flush-sync.js","sources":["../../src/utils/flush-sync.ts"],"sourcesContent":["import ReactDOM from \"react-dom\";\n\n// Prevent bundlers from importing `flushSync` directly\n// See https://github.com/radix-ui/primitives/pull/1028\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nconst useReactFlushSync: typeof ReactDOM.flushSync = (ReactDOM as any)[\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n \"flushSync\".toString()\n];\n\nfunction flushSyncFallback<R>(fn: () => R) {\n return fn();\n}\n\n// React's `flushSync` is only available in React >=17.\nexport const flushSync: typeof ReactDOM.flushSync =\n useReactFlushSync ?? flushSyncFallback;\n"],"names":[],"mappings":";;;;AAKA,MAAM,iBAAA,GAAgD,QAEpD,CAAA,WAAA,CAAY,QAAS,EAAA,CAAA,CAAA;AAGvB,SAAS,kBAAqB,EAAa,EAAA;AACzC,EAAA,OAAO,EAAG,EAAA,CAAA;AACZ,CAAA;AAGO,MAAM,YACX,iBAAqB,IAAA;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import ReactDOM from 'react-dom';
|
|
2
|
+
|
|
3
|
+
const useReactFlushSync = ReactDOM["flushSync".toString()];
|
|
4
|
+
function flushSyncFallback(fn) {
|
|
5
|
+
return fn();
|
|
6
|
+
}
|
|
7
|
+
const flushSync = useReactFlushSync ?? flushSyncFallback;
|
|
8
|
+
|
|
9
|
+
export { flushSync };
|
|
10
|
+
//# sourceMappingURL=flush-sync.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flush-sync.mjs","sources":["../../src/utils/flush-sync.ts"],"sourcesContent":["import ReactDOM from \"react-dom\";\n\n// Prevent bundlers from importing `flushSync` directly\n// See https://github.com/radix-ui/primitives/pull/1028\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nconst useReactFlushSync: typeof ReactDOM.flushSync = (ReactDOM as any)[\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n \"flushSync\".toString()\n];\n\nfunction flushSyncFallback<R>(fn: () => R) {\n return fn();\n}\n\n// React's `flushSync` is only available in React >=17.\nexport const flushSync: typeof ReactDOM.flushSync =\n useReactFlushSync ?? flushSyncFallback;\n"],"names":[],"mappings":";;AAKA,MAAM,iBAAA,GAAgD,QAEpD,CAAA,WAAA,CAAY,QAAS,EAAA,CAAA,CAAA;AAGvB,SAAS,kBAAqB,EAAa,EAAA;AACzC,EAAA,OAAO,EAAG,EAAA,CAAA;AACZ,CAAA;AAGO,MAAM,YACX,iBAAqB,IAAA;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function getInitials(name) {
|
|
4
|
+
return name.trim().split(" ").reduce((initials, name2, index, array) => {
|
|
5
|
+
if (index === 0 || index === array.length - 1) {
|
|
6
|
+
initials += name2.charAt(0).toLocaleUpperCase();
|
|
7
|
+
}
|
|
8
|
+
return initials;
|
|
9
|
+
}, "");
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
exports.getInitials = getInitials;
|
|
13
|
+
//# sourceMappingURL=get-initials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-initials.js","sources":["../../src/utils/get-initials.ts"],"sourcesContent":["export function getInitials(name: string) {\n return name\n .trim()\n .split(\" \")\n .reduce((initials, name, index, array) => {\n if (index === 0 || index === array.length - 1) {\n initials += name.charAt(0).toLocaleUpperCase();\n }\n\n return initials;\n }, \"\");\n}\n"],"names":["name"],"mappings":";;AAAO,SAAS,YAAY,IAAc,EAAA;AACxC,EAAO,OAAA,IAAA,CACJ,IAAK,EAAA,CACL,KAAM,CAAA,GAAG,CACT,CAAA,MAAA,CAAO,CAAC,QAAA,EAAUA,KAAM,EAAA,KAAA,EAAO,KAAU,KAAA;AACxC,IAAA,IAAI,KAAU,KAAA,CAAA,IAAK,KAAU,KAAA,KAAA,CAAM,SAAS,CAAG,EAAA;AAC7C,MAAA,QAAA,IAAYA,KAAK,CAAA,MAAA,CAAO,CAAC,CAAA,CAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/C;AAEA,IAAO,OAAA,QAAA,CAAA;AAAA,KACN,EAAE,CAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
function getInitials(name) {
|
|
2
|
+
return name.trim().split(" ").reduce((initials, name2, index, array) => {
|
|
3
|
+
if (index === 0 || index === array.length - 1) {
|
|
4
|
+
initials += name2.charAt(0).toLocaleUpperCase();
|
|
5
|
+
}
|
|
6
|
+
return initials;
|
|
7
|
+
}, "");
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { getInitials };
|
|
11
|
+
//# sourceMappingURL=get-initials.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-initials.mjs","sources":["../../src/utils/get-initials.ts"],"sourcesContent":["export function getInitials(name: string) {\n return name\n .trim()\n .split(\" \")\n .reduce((initials, name, index, array) => {\n if (index === 0 || index === array.length - 1) {\n initials += name.charAt(0).toLocaleUpperCase();\n }\n\n return initials;\n }, \"\");\n}\n"],"names":["name"],"mappings":"AAAO,SAAS,YAAY,IAAc,EAAA;AACxC,EAAO,OAAA,IAAA,CACJ,IAAK,EAAA,CACL,KAAM,CAAA,GAAG,CACT,CAAA,MAAA,CAAO,CAAC,QAAA,EAAUA,KAAM,EAAA,KAAA,EAAO,KAAU,KAAA;AACxC,IAAA,IAAI,KAAU,KAAA,CAAA,IAAK,KAAU,KAAA,KAAA,CAAM,SAAS,CAAG,EAAA;AAC7C,MAAA,QAAA,IAAYA,KAAK,CAAA,MAAA,CAAO,CAAC,CAAA,CAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/C;AAEA,IAAO,OAAA,QAAA,CAAA;AAAA,KACN,EAAE,CAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var memoize = require('./memoize.js');
|
|
4
|
+
|
|
5
|
+
const dateTimeFormat = memoize.memoize(
|
|
6
|
+
(...args) => {
|
|
7
|
+
return new Intl.DateTimeFormat(...args);
|
|
8
|
+
}
|
|
9
|
+
);
|
|
10
|
+
const relativeTimeFormat = memoize.memoize(
|
|
11
|
+
(...args) => {
|
|
12
|
+
return new Intl.RelativeTimeFormat(...args);
|
|
13
|
+
}
|
|
14
|
+
);
|
|
15
|
+
const listFormat = memoize.memoize(
|
|
16
|
+
(...args) => {
|
|
17
|
+
return new Intl.ListFormat(...args);
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
exports.dateTimeFormat = dateTimeFormat;
|
|
22
|
+
exports.listFormat = listFormat;
|
|
23
|
+
exports.relativeTimeFormat = relativeTimeFormat;
|
|
24
|
+
//# sourceMappingURL=intl.js.map
|