@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 @@
|
|
|
1
|
+
{"version":3,"file":"intl.js","sources":["../../src/utils/intl.ts"],"sourcesContent":["import { memoize } from \"./memoize\";\n\n// Avoid creating Intl formatters on every invocation.\n\nexport const dateTimeFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"DateTimeFormat\"]>) => {\n return new Intl.DateTimeFormat(...args);\n }\n);\n\nexport const relativeTimeFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"RelativeTimeFormat\"]>) => {\n return new Intl.RelativeTimeFormat(...args);\n }\n);\n\nexport const listFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"ListFormat\"]>) => {\n return new Intl.ListFormat(...args);\n }\n);\n"],"names":["memoize"],"mappings":";;;;AAIO,MAAM,cAAiB,GAAAA,eAAA;AAAA,EAC5B,IAAI,IAAiE,KAAA;AACnE,IAAA,OAAO,IAAI,IAAA,CAAK,cAAe,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACxC;AACF,EAAA;AAEO,MAAM,kBAAqB,GAAAA,eAAA;AAAA,EAChC,IAAI,IAAqE,KAAA;AACvE,IAAA,OAAO,IAAI,IAAA,CAAK,kBAAmB,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GAC5C;AACF,EAAA;AAEO,MAAM,UAAa,GAAAA,eAAA;AAAA,EACxB,IAAI,IAA6D,KAAA;AAC/D,IAAA,OAAO,IAAI,IAAA,CAAK,UAAW,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACpC;AACF;;;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { memoize } from './memoize.mjs';
|
|
2
|
+
|
|
3
|
+
const dateTimeFormat = memoize(
|
|
4
|
+
(...args) => {
|
|
5
|
+
return new Intl.DateTimeFormat(...args);
|
|
6
|
+
}
|
|
7
|
+
);
|
|
8
|
+
const relativeTimeFormat = memoize(
|
|
9
|
+
(...args) => {
|
|
10
|
+
return new Intl.RelativeTimeFormat(...args);
|
|
11
|
+
}
|
|
12
|
+
);
|
|
13
|
+
const listFormat = memoize(
|
|
14
|
+
(...args) => {
|
|
15
|
+
return new Intl.ListFormat(...args);
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export { dateTimeFormat, listFormat, relativeTimeFormat };
|
|
20
|
+
//# sourceMappingURL=intl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intl.mjs","sources":["../../src/utils/intl.ts"],"sourcesContent":["import { memoize } from \"./memoize\";\n\n// Avoid creating Intl formatters on every invocation.\n\nexport const dateTimeFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"DateTimeFormat\"]>) => {\n return new Intl.DateTimeFormat(...args);\n }\n);\n\nexport const relativeTimeFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"RelativeTimeFormat\"]>) => {\n return new Intl.RelativeTimeFormat(...args);\n }\n);\n\nexport const listFormat = memoize(\n (...args: ConstructorParameters<(typeof Intl)[\"ListFormat\"]>) => {\n return new Intl.ListFormat(...args);\n }\n);\n"],"names":[],"mappings":";;AAIO,MAAM,cAAiB,GAAA,OAAA;AAAA,EAC5B,IAAI,IAAiE,KAAA;AACnE,IAAA,OAAO,IAAI,IAAA,CAAK,cAAe,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACxC;AACF,EAAA;AAEO,MAAM,kBAAqB,GAAA,OAAA;AAAA,EAChC,IAAI,IAAqE,KAAA;AACvE,IAAA,OAAO,IAAI,IAAA,CAAK,kBAAmB,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GAC5C;AACF,EAAA;AAEO,MAAM,UAAa,GAAA,OAAA;AAAA,EACxB,IAAI,IAA6D,KAAA;AAC/D,IAAA,OAAO,IAAI,IAAA,CAAK,UAAW,CAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACpC;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-apple.js","sources":["../../src/utils/is-apple.ts"],"sourcesContent":["const APPLE_REGEX = /Mac|iPod|iPhone|iPad/;\n\nexport function isApple() {\n return (\n typeof window !== \"undefined\" && APPLE_REGEX.test(window.navigator.platform)\n );\n}\n"],"names":[],"mappings":";;AAAA,MAAM,WAAc,GAAA,sBAAA,CAAA;AAEb,SAAS,OAAU,GAAA;AACxB,EAAA,OACE,OAAO,MAAW,KAAA,WAAA,IAAe,YAAY,IAAK,CAAA,MAAA,CAAO,UAAU,QAAQ,CAAA,CAAA;AAE/E;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-apple.mjs","sources":["../../src/utils/is-apple.ts"],"sourcesContent":["const APPLE_REGEX = /Mac|iPod|iPhone|iPad/;\n\nexport function isApple() {\n return (\n typeof window !== \"undefined\" && APPLE_REGEX.test(window.navigator.platform)\n );\n}\n"],"names":[],"mappings":"AAAA,MAAM,WAAc,GAAA,sBAAA,CAAA;AAEb,SAAS,OAAU,GAAA;AACxB,EAAA,OACE,OAAO,MAAW,KAAA,WAAA,IAAe,YAAY,IAAK,CAAA,MAAA,CAAO,UAAU,QAAQ,CAAA,CAAA;AAE/E;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isApple = require('./is-apple.js');
|
|
4
|
+
|
|
5
|
+
const MODIFIERS = {
|
|
6
|
+
alt: () => "altKey",
|
|
7
|
+
ctrl: () => "ctrlKey",
|
|
8
|
+
meta: () => "metaKey",
|
|
9
|
+
mod: () => isApple.isApple() ? "metaKey" : "ctrlKey",
|
|
10
|
+
shift: () => "shiftKey"
|
|
11
|
+
};
|
|
12
|
+
function isKey(event, key, modifiers = {}) {
|
|
13
|
+
if (event.key !== key) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const explicitModifiers = Object.entries(modifiers).filter(
|
|
17
|
+
([, value]) => typeof value === "boolean"
|
|
18
|
+
);
|
|
19
|
+
return explicitModifiers.every(([modifier, value]) => {
|
|
20
|
+
const property = MODIFIERS[modifier]();
|
|
21
|
+
return event[property] === value;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
exports.isKey = isKey;
|
|
26
|
+
//# sourceMappingURL=is-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-key.js","sources":["../../src/utils/is-key.ts"],"sourcesContent":["import type { KeyboardEvent as ReactKeyboardEvent } from \"react\";\n\nimport { isApple } from \"./is-apple\";\n\nconst MODIFIERS = {\n alt: () => \"altKey\" as const,\n ctrl: () => \"ctrlKey\" as const,\n meta: () => \"metaKey\" as const,\n mod: () => (isApple() ? (\"metaKey\" as const) : (\"ctrlKey\" as const)),\n shift: () => \"shiftKey\" as const,\n} as const;\n\nexport function isKey(\n event: KeyboardEvent | ReactKeyboardEvent,\n key: string,\n modifiers: Partial<Record<keyof typeof MODIFIERS, boolean>> = {}\n) {\n if (event.key !== key) {\n return false;\n }\n\n const explicitModifiers = Object.entries(modifiers).filter(\n ([, value]) => typeof value === \"boolean\"\n ) as [keyof typeof MODIFIERS, boolean][];\n\n return explicitModifiers.every(([modifier, value]) => {\n const property = MODIFIERS[modifier]();\n\n return event[property] === value;\n });\n}\n"],"names":["isApple"],"mappings":";;;;AAIA,MAAM,SAAY,GAAA;AAAA,EAChB,KAAK,MAAM,QAAA;AAAA,EACX,MAAM,MAAM,SAAA;AAAA,EACZ,MAAM,MAAM,SAAA;AAAA,EACZ,GAAK,EAAA,MAAOA,eAAQ,EAAA,GAAK,SAAuB,GAAA,SAAA;AAAA,EAChD,OAAO,MAAM,UAAA;AACf,CAAA,CAAA;AAEO,SAAS,KACd,CAAA,KAAA,EACA,GACA,EAAA,SAAA,GAA8D,EAC9D,EAAA;AACA,EAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,iBAAoB,GAAA,MAAA,CAAO,OAAQ,CAAA,SAAS,CAAE,CAAA,MAAA;AAAA,IAClD,CAAC,GAAG,KAAK,CAAA,KAAM,OAAO,KAAU,KAAA,SAAA;AAAA,GAClC,CAAA;AAEA,EAAA,OAAO,kBAAkB,KAAM,CAAA,CAAC,CAAC,QAAA,EAAU,KAAK,CAAM,KAAA;AACpD,IAAM,MAAA,QAAA,GAAW,UAAU,QAAU,CAAA,EAAA,CAAA;AAErC,IAAA,OAAO,MAAM,QAAc,CAAA,KAAA,KAAA,CAAA;AAAA,GAC5B,CAAA,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { isApple } from './is-apple.mjs';
|
|
2
|
+
|
|
3
|
+
const MODIFIERS = {
|
|
4
|
+
alt: () => "altKey",
|
|
5
|
+
ctrl: () => "ctrlKey",
|
|
6
|
+
meta: () => "metaKey",
|
|
7
|
+
mod: () => isApple() ? "metaKey" : "ctrlKey",
|
|
8
|
+
shift: () => "shiftKey"
|
|
9
|
+
};
|
|
10
|
+
function isKey(event, key, modifiers = {}) {
|
|
11
|
+
if (event.key !== key) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const explicitModifiers = Object.entries(modifiers).filter(
|
|
15
|
+
([, value]) => typeof value === "boolean"
|
|
16
|
+
);
|
|
17
|
+
return explicitModifiers.every(([modifier, value]) => {
|
|
18
|
+
const property = MODIFIERS[modifier]();
|
|
19
|
+
return event[property] === value;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { isKey };
|
|
24
|
+
//# sourceMappingURL=is-key.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-key.mjs","sources":["../../src/utils/is-key.ts"],"sourcesContent":["import type { KeyboardEvent as ReactKeyboardEvent } from \"react\";\n\nimport { isApple } from \"./is-apple\";\n\nconst MODIFIERS = {\n alt: () => \"altKey\" as const,\n ctrl: () => \"ctrlKey\" as const,\n meta: () => \"metaKey\" as const,\n mod: () => (isApple() ? (\"metaKey\" as const) : (\"ctrlKey\" as const)),\n shift: () => \"shiftKey\" as const,\n} as const;\n\nexport function isKey(\n event: KeyboardEvent | ReactKeyboardEvent,\n key: string,\n modifiers: Partial<Record<keyof typeof MODIFIERS, boolean>> = {}\n) {\n if (event.key !== key) {\n return false;\n }\n\n const explicitModifiers = Object.entries(modifiers).filter(\n ([, value]) => typeof value === \"boolean\"\n ) as [keyof typeof MODIFIERS, boolean][];\n\n return explicitModifiers.every(([modifier, value]) => {\n const property = MODIFIERS[modifier]();\n\n return event[property] === value;\n });\n}\n"],"names":[],"mappings":";;AAIA,MAAM,SAAY,GAAA;AAAA,EAChB,KAAK,MAAM,QAAA;AAAA,EACX,MAAM,MAAM,SAAA;AAAA,EACZ,MAAM,MAAM,SAAA;AAAA,EACZ,GAAK,EAAA,MAAO,OAAQ,EAAA,GAAK,SAAuB,GAAA,SAAA;AAAA,EAChD,OAAO,MAAM,UAAA;AACf,CAAA,CAAA;AAEO,SAAS,KACd,CAAA,KAAA,EACA,GACA,EAAA,SAAA,GAA8D,EAC9D,EAAA;AACA,EAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,iBAAoB,GAAA,MAAA,CAAO,OAAQ,CAAA,SAAS,CAAE,CAAA,MAAA;AAAA,IAClD,CAAC,GAAG,KAAK,CAAA,KAAM,OAAO,KAAU,KAAA,SAAA;AAAA,GAClC,CAAA;AAEA,EAAA,OAAO,kBAAkB,KAAM,CAAA,CAAC,CAAC,QAAA,EAAU,KAAK,CAAM,KAAA;AACpD,IAAM,MAAA,QAAA,GAAW,UAAU,QAAU,CAAA,EAAA,CAAA;AAErC,IAAA,OAAO,MAAM,QAAc,CAAA,KAAA,KAAA,CAAA;AAAA,GAC5B,CAAA,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var core = require('@liveblocks/core');
|
|
4
|
+
|
|
5
|
+
function memoize(fn) {
|
|
6
|
+
const cache = /* @__PURE__ */ new Map();
|
|
7
|
+
return (...args) => {
|
|
8
|
+
const key = JSON.stringify(args.map((arg) => core.stringify(arg)));
|
|
9
|
+
if (cache.has(key)) {
|
|
10
|
+
return cache.get(key);
|
|
11
|
+
}
|
|
12
|
+
const result = fn(...args);
|
|
13
|
+
cache.set(key, result);
|
|
14
|
+
return result;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.memoize = memoize;
|
|
19
|
+
//# sourceMappingURL=memoize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoize.js","sources":["../../src/utils/memoize.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\n\nimport { stringify } from \"@liveblocks/core\";\n\nexport function memoize<T extends (...args: any[]) => any>(fn: T): T {\n const cache = new Map<string, ReturnType<T>>();\n\n return ((...args: Parameters<T>): ReturnType<T> => {\n const key = JSON.stringify(args.map((arg) => stringify(arg)));\n\n if (cache.has(key)) {\n return cache.get(key)!;\n }\n\n const result = fn(...args) as ReturnType<T>;\n\n cache.set(key, result);\n\n return result;\n }) as T;\n}\n"],"names":["stringify"],"mappings":";;;;AAIO,SAAS,QAA2C,EAAU,EAAA;AACnE,EAAM,MAAA,KAAA,uBAAY,GAA2B,EAAA,CAAA;AAE7C,EAAA,OAAQ,IAAI,IAAuC,KAAA;AACjD,IAAM,MAAA,GAAA,GAAM,IAAK,CAAA,SAAA,CAAU,IAAK,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAAA,cAAA,CAAU,GAAG,CAAC,CAAC,CAAA,CAAA;AAE5D,IAAI,IAAA,KAAA,CAAM,GAAI,CAAA,GAAG,CAAG,EAAA;AAClB,MAAO,OAAA,KAAA,CAAM,IAAI,GAAG,CAAA,CAAA;AAAA,KACtB;AAEA,IAAM,MAAA,MAAA,GAAS,EAAG,CAAA,GAAG,IAAI,CAAA,CAAA;AAEzB,IAAM,KAAA,CAAA,GAAA,CAAI,KAAK,MAAM,CAAA,CAAA;AAErB,IAAO,OAAA,MAAA,CAAA;AAAA,GACT,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { stringify } from '@liveblocks/core';
|
|
2
|
+
|
|
3
|
+
function memoize(fn) {
|
|
4
|
+
const cache = /* @__PURE__ */ new Map();
|
|
5
|
+
return (...args) => {
|
|
6
|
+
const key = JSON.stringify(args.map((arg) => stringify(arg)));
|
|
7
|
+
if (cache.has(key)) {
|
|
8
|
+
return cache.get(key);
|
|
9
|
+
}
|
|
10
|
+
const result = fn(...args);
|
|
11
|
+
cache.set(key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { memoize };
|
|
17
|
+
//# sourceMappingURL=memoize.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoize.mjs","sources":["../../src/utils/memoize.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\n\nimport { stringify } from \"@liveblocks/core\";\n\nexport function memoize<T extends (...args: any[]) => any>(fn: T): T {\n const cache = new Map<string, ReturnType<T>>();\n\n return ((...args: Parameters<T>): ReturnType<T> => {\n const key = JSON.stringify(args.map((arg) => stringify(arg)));\n\n if (cache.has(key)) {\n return cache.get(key)!;\n }\n\n const result = fn(...args) as ReturnType<T>;\n\n cache.set(key, result);\n\n return result;\n }) as T;\n}\n"],"names":[],"mappings":";;AAIO,SAAS,QAA2C,EAAU,EAAA;AACnE,EAAM,MAAA,KAAA,uBAAY,GAA2B,EAAA,CAAA;AAE7C,EAAA,OAAQ,IAAI,IAAuC,KAAA;AACjD,IAAM,MAAA,GAAA,GAAM,IAAK,CAAA,SAAA,CAAU,IAAK,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA,SAAA,CAAU,GAAG,CAAC,CAAC,CAAA,CAAA;AAE5D,IAAI,IAAA,KAAA,CAAM,GAAI,CAAA,GAAG,CAAG,EAAA;AAClB,MAAO,OAAA,KAAA,CAAM,IAAI,GAAG,CAAA,CAAA;AAAA,KACtB;AAEA,IAAM,MAAA,MAAA,GAAS,EAAG,CAAA,GAAG,IAAI,CAAA,CAAA;AAEzB,IAAM,KAAA,CAAA,GAAA,CAAI,KAAK,MAAM,CAAA,CAAA;AAErB,IAAO,OAAA,MAAA,CAAA;AAAA,GACT,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluralize.js","sources":["../../src/utils/pluralize.ts"],"sourcesContent":["export function pluralize<\n C extends number,\n S extends string,\n P extends string = `${S}s`,\n>(count: C, singular: S, plural?: P): C extends 1 ? S : P {\n return (count === 1 ? singular : plural ?? `${singular}s`) as C extends 1\n ? S\n : P;\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,SAAA,CAId,KAAU,EAAA,QAAA,EAAa,MAAiC,EAAA;AACxD,EAAA,OAAQ,KAAU,KAAA,CAAA,GAAI,QAAW,GAAA,MAAA,IAAU,CAAG,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAGhD;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluralize.mjs","sources":["../../src/utils/pluralize.ts"],"sourcesContent":["export function pluralize<\n C extends number,\n S extends string,\n P extends string = `${S}s`,\n>(count: C, singular: S, plural?: P): C extends 1 ? S : P {\n return (count === 1 ? singular : plural ?? `${singular}s`) as C extends 1\n ? S\n : P;\n}\n"],"names":[],"mappings":"AAAgB,SAAA,SAAA,CAId,KAAU,EAAA,QAAA,EAAa,MAAiC,EAAA;AACxD,EAAA,OAAQ,KAAU,KAAA,CAAA,GAAI,QAAW,GAAA,MAAA,IAAU,CAAG,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAGhD;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const IDLE_CALLBACK_FALLBACK_TIMEOUT = 100;
|
|
4
|
+
function requestIdleCallbackFallback(callback, options) {
|
|
5
|
+
return setTimeout(
|
|
6
|
+
callback,
|
|
7
|
+
Math.min(options?.timeout ?? Infinity, IDLE_CALLBACK_FALLBACK_TIMEOUT)
|
|
8
|
+
);
|
|
9
|
+
}
|
|
10
|
+
const requestIdleCallback = (typeof window !== "undefined" ? window.requestIdleCallback : null) ?? requestIdleCallbackFallback;
|
|
11
|
+
const cancelIdleCallback = (typeof window !== "undefined" ? window.cancelIdleCallback : null) ?? clearTimeout;
|
|
12
|
+
|
|
13
|
+
exports.cancelIdleCallback = cancelIdleCallback;
|
|
14
|
+
exports.requestIdleCallback = requestIdleCallback;
|
|
15
|
+
//# sourceMappingURL=request-idle-callback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-idle-callback.js","sources":["../../src/utils/request-idle-callback.ts"],"sourcesContent":["const IDLE_CALLBACK_FALLBACK_TIMEOUT = 100;\n\nfunction requestIdleCallbackFallback(\n callback: IdleRequestCallback,\n options?: IdleRequestOptions\n) {\n return setTimeout(\n callback,\n Math.min(options?.timeout ?? Infinity, IDLE_CALLBACK_FALLBACK_TIMEOUT)\n );\n}\n\n/**\n * Ponyfill for `window.requestIdleCallback`.\n */\nexport const requestIdleCallback: typeof window.requestIdleCallback =\n (typeof window !== \"undefined\" ? window.requestIdleCallback : null) ??\n requestIdleCallbackFallback;\n\n/**\n * Ponyfill for `window.cancelIdleCallback`.\n */\nexport const cancelIdleCallback: typeof window.cancelIdleCallback =\n (typeof window !== \"undefined\" ? window.cancelIdleCallback : null) ??\n clearTimeout;\n"],"names":[],"mappings":";;AAAA,MAAM,8BAAiC,GAAA,GAAA,CAAA;AAEvC,SAAS,2BAAA,CACP,UACA,OACA,EAAA;AACA,EAAO,OAAA,UAAA;AAAA,IACL,QAAA;AAAA,IACA,IAAK,CAAA,GAAA,CAAI,OAAS,EAAA,OAAA,IAAW,UAAU,8BAA8B,CAAA;AAAA,GACvE,CAAA;AACF,CAAA;AAKO,MAAM,uBACV,OAAO,MAAA,KAAW,WAAc,GAAA,MAAA,CAAO,sBAAsB,IAC9D,KAAA,4BAAA;AAKK,MAAM,sBACV,OAAO,MAAA,KAAW,WAAc,GAAA,MAAA,CAAO,qBAAqB,IAC7D,KAAA;;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const IDLE_CALLBACK_FALLBACK_TIMEOUT = 100;
|
|
2
|
+
function requestIdleCallbackFallback(callback, options) {
|
|
3
|
+
return setTimeout(
|
|
4
|
+
callback,
|
|
5
|
+
Math.min(options?.timeout ?? Infinity, IDLE_CALLBACK_FALLBACK_TIMEOUT)
|
|
6
|
+
);
|
|
7
|
+
}
|
|
8
|
+
const requestIdleCallback = (typeof window !== "undefined" ? window.requestIdleCallback : null) ?? requestIdleCallbackFallback;
|
|
9
|
+
const cancelIdleCallback = (typeof window !== "undefined" ? window.cancelIdleCallback : null) ?? clearTimeout;
|
|
10
|
+
|
|
11
|
+
export { cancelIdleCallback, requestIdleCallback };
|
|
12
|
+
//# sourceMappingURL=request-idle-callback.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-idle-callback.mjs","sources":["../../src/utils/request-idle-callback.ts"],"sourcesContent":["const IDLE_CALLBACK_FALLBACK_TIMEOUT = 100;\n\nfunction requestIdleCallbackFallback(\n callback: IdleRequestCallback,\n options?: IdleRequestOptions\n) {\n return setTimeout(\n callback,\n Math.min(options?.timeout ?? Infinity, IDLE_CALLBACK_FALLBACK_TIMEOUT)\n );\n}\n\n/**\n * Ponyfill for `window.requestIdleCallback`.\n */\nexport const requestIdleCallback: typeof window.requestIdleCallback =\n (typeof window !== \"undefined\" ? window.requestIdleCallback : null) ??\n requestIdleCallbackFallback;\n\n/**\n * Ponyfill for `window.cancelIdleCallback`.\n */\nexport const cancelIdleCallback: typeof window.cancelIdleCallback =\n (typeof window !== \"undefined\" ? window.cancelIdleCallback : null) ??\n clearTimeout;\n"],"names":[],"mappings":"AAAA,MAAM,8BAAiC,GAAA,GAAA,CAAA;AAEvC,SAAS,2BAAA,CACP,UACA,OACA,EAAA;AACA,EAAO,OAAA,UAAA;AAAA,IACL,QAAA;AAAA,IACA,IAAK,CAAA,GAAA,CAAI,OAAS,EAAA,OAAA,IAAW,UAAU,8BAA8B,CAAA;AAAA,GACvE,CAAA;AACF,CAAA;AAKO,MAAM,uBACV,OAAO,MAAA,KAAW,WAAc,GAAA,MAAA,CAAO,sBAAsB,IAC9D,KAAA,4BAAA;AAKK,MAAM,sBACV,OAAO,MAAA,KAAW,WAAc,GAAA,MAAA,CAAO,qBAAqB,IAC7D,KAAA;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function requestSubmit(form, submitter) {
|
|
4
|
+
if (typeof form.requestSubmit === "function") {
|
|
5
|
+
return form.requestSubmit(submitter);
|
|
6
|
+
}
|
|
7
|
+
if (submitter) {
|
|
8
|
+
submitter.click();
|
|
9
|
+
} else {
|
|
10
|
+
submitter = document.createElement("input");
|
|
11
|
+
submitter.type = "submit";
|
|
12
|
+
submitter.hidden = true;
|
|
13
|
+
form.appendChild(submitter);
|
|
14
|
+
submitter.click();
|
|
15
|
+
form.removeChild(submitter);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
exports.requestSubmit = requestSubmit;
|
|
20
|
+
//# sourceMappingURL=request-submit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-submit.js","sources":["../../src/utils/request-submit.ts"],"sourcesContent":["/**\n * Ponyfill for `HTMLFormElement.requestSubmit`.\n */\nexport function requestSubmit(\n form: HTMLFormElement,\n submitter?: HTMLElement | null\n) {\n if (typeof form.requestSubmit === \"function\") {\n return form.requestSubmit(submitter);\n }\n\n if (submitter) {\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n (submitter as HTMLInputElement).type = \"submit\";\n submitter.hidden = true;\n\n form.appendChild(submitter);\n\n submitter.click();\n\n form.removeChild(submitter);\n }\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,aAAA,CACd,MACA,SACA,EAAA;AACA,EAAI,IAAA,OAAO,IAAK,CAAA,aAAA,KAAkB,UAAY,EAAA;AAC5C,IAAO,OAAA,IAAA,CAAK,cAAc,SAAS,CAAA,CAAA;AAAA,GACrC;AAEA,EAAA,IAAI,SAAW,EAAA;AACb,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAAA,GACX,MAAA;AACL,IAAY,SAAA,GAAA,QAAA,CAAS,cAAc,OAAO,CAAA,CAAA;AAC1C,IAAC,UAA+B,IAAO,GAAA,QAAA,CAAA;AACvC,IAAA,SAAA,CAAU,MAAS,GAAA,IAAA,CAAA;AAEnB,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAE1B,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAEhB,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAAA,GAC5B;AACF;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
function requestSubmit(form, submitter) {
|
|
2
|
+
if (typeof form.requestSubmit === "function") {
|
|
3
|
+
return form.requestSubmit(submitter);
|
|
4
|
+
}
|
|
5
|
+
if (submitter) {
|
|
6
|
+
submitter.click();
|
|
7
|
+
} else {
|
|
8
|
+
submitter = document.createElement("input");
|
|
9
|
+
submitter.type = "submit";
|
|
10
|
+
submitter.hidden = true;
|
|
11
|
+
form.appendChild(submitter);
|
|
12
|
+
submitter.click();
|
|
13
|
+
form.removeChild(submitter);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { requestSubmit };
|
|
18
|
+
//# sourceMappingURL=request-submit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-submit.mjs","sources":["../../src/utils/request-submit.ts"],"sourcesContent":["/**\n * Ponyfill for `HTMLFormElement.requestSubmit`.\n */\nexport function requestSubmit(\n form: HTMLFormElement,\n submitter?: HTMLElement | null\n) {\n if (typeof form.requestSubmit === \"function\") {\n return form.requestSubmit(submitter);\n }\n\n if (submitter) {\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n (submitter as HTMLInputElement).type = \"submit\";\n submitter.hidden = true;\n\n form.appendChild(submitter);\n\n submitter.click();\n\n form.removeChild(submitter);\n }\n}\n"],"names":[],"mappings":"AAGgB,SAAA,aAAA,CACd,MACA,SACA,EAAA;AACA,EAAI,IAAA,OAAO,IAAK,CAAA,aAAA,KAAkB,UAAY,EAAA;AAC5C,IAAO,OAAA,IAAA,CAAK,cAAc,SAAS,CAAA,CAAA;AAAA,GACrC;AAEA,EAAA,IAAI,SAAW,EAAA;AACb,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAAA,GACX,MAAA;AACL,IAAY,SAAA,GAAA,QAAA,CAAS,cAAc,OAAO,CAAA,CAAA;AAC1C,IAAC,UAA+B,IAAO,GAAA,QAAA,CAAA;AACvC,IAAA,SAAA,CAAU,MAAS,GAAA,IAAA,CAAA;AAEnB,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAE1B,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAEhB,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAAA,GAC5B;AACF;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const PLACEHOLDER_BASE_URL = "https://localhost:9999";
|
|
4
|
+
const ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
|
|
5
|
+
function generateURL(url, params, hash) {
|
|
6
|
+
const isAbsolute = ABSOLUTE_URL_REGEX.test(url);
|
|
7
|
+
const urlObject = new URL(url, isAbsolute ? void 0 : PLACEHOLDER_BASE_URL);
|
|
8
|
+
if (params !== void 0) {
|
|
9
|
+
for (const [param, value] of Object.entries(params)) {
|
|
10
|
+
if (value) {
|
|
11
|
+
urlObject.searchParams.set(param, String(value));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (!urlObject.hash && hash !== void 0) {
|
|
16
|
+
urlObject.hash = `#${hash}`;
|
|
17
|
+
}
|
|
18
|
+
return isAbsolute ? urlObject.href : urlObject.href.replace(PLACEHOLDER_BASE_URL, "");
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
exports.generateURL = generateURL;
|
|
22
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sources":["../../src/utils/url.ts"],"sourcesContent":["const PLACEHOLDER_BASE_URL = \"https://localhost:9999\";\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\nexport function generateURL(\n url: string,\n params?: Record<string, string | number | undefined>,\n hash?: string\n) {\n const isAbsolute = ABSOLUTE_URL_REGEX.test(url);\n const urlObject = new URL(url, isAbsolute ? undefined : PLACEHOLDER_BASE_URL);\n\n if (params !== undefined) {\n for (const [param, value] of Object.entries(params)) {\n if (value) {\n urlObject.searchParams.set(param, String(value));\n }\n }\n }\n\n // Only add the new hash if the URL does not already have one\n if (!urlObject.hash && hash !== undefined) {\n urlObject.hash = `#${hash}`;\n }\n\n return isAbsolute\n ? urlObject.href\n : urlObject.href.replace(PLACEHOLDER_BASE_URL, \"\");\n}\n"],"names":[],"mappings":";;AAAA,MAAM,oBAAuB,GAAA,wBAAA,CAAA;AAC7B,MAAM,kBAAqB,GAAA,4BAAA,CAAA;AAEX,SAAA,WAAA,CACd,GACA,EAAA,MAAA,EACA,IACA,EAAA;AACA,EAAM,MAAA,UAAA,GAAa,kBAAmB,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC9C,EAAA,MAAM,YAAY,IAAI,GAAA,CAAI,GAAK,EAAA,UAAA,GAAa,SAAY,oBAAoB,CAAA,CAAA;AAE5E,EAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACxB,IAAA,KAAA,MAAW,CAAC,KAAO,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,MAAM,CAAG,EAAA;AACnD,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,SAAA,CAAU,YAAa,CAAA,GAAA,CAAI,KAAO,EAAA,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,GACF;AAGA,EAAA,IAAI,CAAC,SAAA,CAAU,IAAQ,IAAA,IAAA,KAAS,KAAW,CAAA,EAAA;AACzC,IAAA,SAAA,CAAU,OAAO,CAAI,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,OAAO,aACH,SAAU,CAAA,IAAA,GACV,UAAU,IAAK,CAAA,OAAA,CAAQ,sBAAsB,EAAE,CAAA,CAAA;AACrD;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const PLACEHOLDER_BASE_URL = "https://localhost:9999";
|
|
2
|
+
const ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
|
|
3
|
+
function generateURL(url, params, hash) {
|
|
4
|
+
const isAbsolute = ABSOLUTE_URL_REGEX.test(url);
|
|
5
|
+
const urlObject = new URL(url, isAbsolute ? void 0 : PLACEHOLDER_BASE_URL);
|
|
6
|
+
if (params !== void 0) {
|
|
7
|
+
for (const [param, value] of Object.entries(params)) {
|
|
8
|
+
if (value) {
|
|
9
|
+
urlObject.searchParams.set(param, String(value));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
if (!urlObject.hash && hash !== void 0) {
|
|
14
|
+
urlObject.hash = `#${hash}`;
|
|
15
|
+
}
|
|
16
|
+
return isAbsolute ? urlObject.href : urlObject.href.replace(PLACEHOLDER_BASE_URL, "");
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { generateURL };
|
|
20
|
+
//# sourceMappingURL=url.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.mjs","sources":["../../src/utils/url.ts"],"sourcesContent":["const PLACEHOLDER_BASE_URL = \"https://localhost:9999\";\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\nexport function generateURL(\n url: string,\n params?: Record<string, string | number | undefined>,\n hash?: string\n) {\n const isAbsolute = ABSOLUTE_URL_REGEX.test(url);\n const urlObject = new URL(url, isAbsolute ? undefined : PLACEHOLDER_BASE_URL);\n\n if (params !== undefined) {\n for (const [param, value] of Object.entries(params)) {\n if (value) {\n urlObject.searchParams.set(param, String(value));\n }\n }\n }\n\n // Only add the new hash if the URL does not already have one\n if (!urlObject.hash && hash !== undefined) {\n urlObject.hash = `#${hash}`;\n }\n\n return isAbsolute\n ? urlObject.href\n : urlObject.href.replace(PLACEHOLDER_BASE_URL, \"\");\n}\n"],"names":[],"mappings":"AAAA,MAAM,oBAAuB,GAAA,wBAAA,CAAA;AAC7B,MAAM,kBAAqB,GAAA,4BAAA,CAAA;AAEX,SAAA,WAAA,CACd,GACA,EAAA,MAAA,EACA,IACA,EAAA;AACA,EAAM,MAAA,UAAA,GAAa,kBAAmB,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC9C,EAAA,MAAM,YAAY,IAAI,GAAA,CAAI,GAAK,EAAA,UAAA,GAAa,SAAY,oBAAoB,CAAA,CAAA;AAE5E,EAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACxB,IAAA,KAAA,MAAW,CAAC,KAAO,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,MAAM,CAAG,EAAA;AACnD,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,SAAA,CAAU,YAAa,CAAA,GAAA,CAAI,KAAO,EAAA,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,GACF;AAGA,EAAA,IAAI,CAAC,SAAA,CAAU,IAAQ,IAAA,IAAA,KAAS,KAAW,CAAA,EAAA;AACzC,IAAA,SAAA,CAAU,OAAO,CAAI,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,OAAO,aACH,SAAU,CAAA,IAAA,GACV,UAAU,IAAK,CAAA,OAAA,CAAQ,sBAAsB,EAAE,CAAA,CAAA;AACrD;;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var core = require('@liveblocks/core');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
|
|
6
|
+
function useControllableState(value, onChange, defaultValue) {
|
|
7
|
+
const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);
|
|
8
|
+
const isControlled = value !== void 0;
|
|
9
|
+
const wasControlled = React.useRef(isControlled);
|
|
10
|
+
React.useEffect(() => {
|
|
11
|
+
if (process.env.NODE_ENV !== "production" && wasControlled.current !== isControlled) {
|
|
12
|
+
core.console.warn(
|
|
13
|
+
`A component is changing from ${wasControlled ? "controlled" : "uncontrolled"} to ${isControlled ? "controlled" : "uncontrolled"}.`
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
wasControlled.current = isControlled;
|
|
17
|
+
}, [isControlled]);
|
|
18
|
+
const currentValue = isControlled ? value : uncontrolledValue;
|
|
19
|
+
const setValue = React.useCallback(
|
|
20
|
+
(value2) => {
|
|
21
|
+
if (isControlled) {
|
|
22
|
+
return onChange?.(value2);
|
|
23
|
+
} else {
|
|
24
|
+
setUncontrolledValue(value2);
|
|
25
|
+
return onChange?.(value2);
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
[isControlled, onChange]
|
|
29
|
+
);
|
|
30
|
+
return [currentValue, setValue];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
exports.useControllableState = useControllableState;
|
|
34
|
+
//# sourceMappingURL=use-controllable-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-controllable-state.js","sources":["../../src/utils/use-controllable-state.ts"],"sourcesContent":["import { console } from \"@liveblocks/core\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport function useControllableState<T>(\n value?: T,\n onChange?: (value: T) => void,\n defaultValue?: T\n) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const wasControlled = useRef(isControlled);\n\n useEffect(() => {\n if (\n process.env.NODE_ENV !== \"production\" &&\n wasControlled.current !== isControlled\n ) {\n console.warn(\n `A component is changing from ${\n wasControlled ? \"controlled\" : \"uncontrolled\"\n } to ${isControlled ? \"controlled\" : \"uncontrolled\"}.`\n );\n }\n\n wasControlled.current = isControlled;\n }, [isControlled]);\n\n const currentValue = isControlled ? value : uncontrolledValue;\n\n const setValue = useCallback(\n (value: T) => {\n if (isControlled) {\n return onChange?.(value);\n } else {\n setUncontrolledValue(value);\n\n return onChange?.(value);\n }\n },\n [isControlled, onChange]\n );\n\n return [currentValue, setValue] as const;\n}\n"],"names":["useState","useRef","useEffect","console","useCallback","value"],"mappings":";;;;;AAGgB,SAAA,oBAAA,CACd,KACA,EAAA,QAAA,EACA,YACA,EAAA;AACA,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,eAAS,YAAY,CAAA,CAAA;AACvE,EAAA,MAAM,eAAe,KAAU,KAAA,KAAA,CAAA,CAAA;AAC/B,EAAM,MAAA,aAAA,GAAgBC,aAAO,YAAY,CAAA,CAAA;AAEzC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IACE,QAAQ,GAAI,CAAA,QAAA,KAAa,YACzB,IAAA,aAAA,CAAc,YAAY,YAC1B,EAAA;AACA,MAAQC,YAAA,CAAA,IAAA;AAAA,QACN,CACE,6BAAA,EAAA,aAAA,GAAgB,YAAe,GAAA,cAAA,CAAA,IAAA,EAC1B,eAAe,YAAe,GAAA,cAAA,CAAA,CAAA,CAAA;AAAA,OACvC,CAAA;AAAA,KACF;AAEA,IAAA,aAAA,CAAc,OAAU,GAAA,YAAA,CAAA;AAAA,GAC1B,EAAG,CAAC,YAAY,CAAC,CAAA,CAAA;AAEjB,EAAM,MAAA,YAAA,GAAe,eAAe,KAAQ,GAAA,iBAAA,CAAA;AAE5C,EAAA,MAAM,QAAW,GAAAC,iBAAA;AAAA,IACf,CAACC,MAAa,KAAA;AACZ,MAAA,IAAI,YAAc,EAAA;AAChB,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OAClB,MAAA;AACL,QAAA,oBAAA,CAAqBA,MAAK,CAAA,CAAA;AAE1B,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OACzB;AAAA,KACF;AAAA,IACA,CAAC,cAAc,QAAQ,CAAA;AAAA,GACzB,CAAA;AAEA,EAAO,OAAA,CAAC,cAAc,QAAQ,CAAA,CAAA;AAChC;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { console } from '@liveblocks/core';
|
|
2
|
+
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
|
+
|
|
4
|
+
function useControllableState(value, onChange, defaultValue) {
|
|
5
|
+
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
6
|
+
const isControlled = value !== void 0;
|
|
7
|
+
const wasControlled = useRef(isControlled);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (process.env.NODE_ENV !== "production" && wasControlled.current !== isControlled) {
|
|
10
|
+
console.warn(
|
|
11
|
+
`A component is changing from ${wasControlled ? "controlled" : "uncontrolled"} to ${isControlled ? "controlled" : "uncontrolled"}.`
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
wasControlled.current = isControlled;
|
|
15
|
+
}, [isControlled]);
|
|
16
|
+
const currentValue = isControlled ? value : uncontrolledValue;
|
|
17
|
+
const setValue = useCallback(
|
|
18
|
+
(value2) => {
|
|
19
|
+
if (isControlled) {
|
|
20
|
+
return onChange?.(value2);
|
|
21
|
+
} else {
|
|
22
|
+
setUncontrolledValue(value2);
|
|
23
|
+
return onChange?.(value2);
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
[isControlled, onChange]
|
|
27
|
+
);
|
|
28
|
+
return [currentValue, setValue];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { useControllableState };
|
|
32
|
+
//# sourceMappingURL=use-controllable-state.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-controllable-state.mjs","sources":["../../src/utils/use-controllable-state.ts"],"sourcesContent":["import { console } from \"@liveblocks/core\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport function useControllableState<T>(\n value?: T,\n onChange?: (value: T) => void,\n defaultValue?: T\n) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const wasControlled = useRef(isControlled);\n\n useEffect(() => {\n if (\n process.env.NODE_ENV !== \"production\" &&\n wasControlled.current !== isControlled\n ) {\n console.warn(\n `A component is changing from ${\n wasControlled ? \"controlled\" : \"uncontrolled\"\n } to ${isControlled ? \"controlled\" : \"uncontrolled\"}.`\n );\n }\n\n wasControlled.current = isControlled;\n }, [isControlled]);\n\n const currentValue = isControlled ? value : uncontrolledValue;\n\n const setValue = useCallback(\n (value: T) => {\n if (isControlled) {\n return onChange?.(value);\n } else {\n setUncontrolledValue(value);\n\n return onChange?.(value);\n }\n },\n [isControlled, onChange]\n );\n\n return [currentValue, setValue] as const;\n}\n"],"names":["value"],"mappings":";;;AAGgB,SAAA,oBAAA,CACd,KACA,EAAA,QAAA,EACA,YACA,EAAA;AACA,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,YAAY,CAAA,CAAA;AACvE,EAAA,MAAM,eAAe,KAAU,KAAA,KAAA,CAAA,CAAA;AAC/B,EAAM,MAAA,aAAA,GAAgB,OAAO,YAAY,CAAA,CAAA;AAEzC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IACE,QAAQ,GAAI,CAAA,QAAA,KAAa,YACzB,IAAA,aAAA,CAAc,YAAY,YAC1B,EAAA;AACA,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN,CACE,6BAAA,EAAA,aAAA,GAAgB,YAAe,GAAA,cAAA,CAAA,IAAA,EAC1B,eAAe,YAAe,GAAA,cAAA,CAAA,CAAA,CAAA;AAAA,OACvC,CAAA;AAAA,KACF;AAEA,IAAA,aAAA,CAAc,OAAU,GAAA,YAAA,CAAA;AAAA,GAC1B,EAAG,CAAC,YAAY,CAAC,CAAA,CAAA;AAEjB,EAAM,MAAA,YAAA,GAAe,eAAe,KAAQ,GAAA,iBAAA,CAAA;AAE5C,EAAA,MAAM,QAAW,GAAA,WAAA;AAAA,IACf,CAACA,MAAa,KAAA;AACZ,MAAA,IAAI,YAAc,EAAA;AAChB,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OAClB,MAAA;AACL,QAAA,oBAAA,CAAqBA,MAAK,CAAA,CAAA;AAE1B,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OACzB;AAAA,KACF;AAAA,IACA,CAAC,cAAc,QAAQ,CAAA;AAAA,GACzB,CAAA;AAEA,EAAO,OAAA,CAAC,cAAc,QAAQ,CAAA,CAAA;AAChC;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var useLayoutEffect = require('./use-layout-effect.js');
|
|
5
|
+
|
|
6
|
+
let isHydrated = false;
|
|
7
|
+
let id = 0;
|
|
8
|
+
function getId() {
|
|
9
|
+
return ++id;
|
|
10
|
+
}
|
|
11
|
+
const useReactId = React["useId".toString()];
|
|
12
|
+
function useIncrementalId() {
|
|
13
|
+
const [id2, setId] = React.useState(isHydrated ? getId : null);
|
|
14
|
+
useLayoutEffect.useLayoutEffect(() => {
|
|
15
|
+
if (id2 === null) {
|
|
16
|
+
setId(getId());
|
|
17
|
+
}
|
|
18
|
+
}, [id2]);
|
|
19
|
+
React.useEffect(() => {
|
|
20
|
+
if (!isHydrated) {
|
|
21
|
+
isHydrated = true;
|
|
22
|
+
}
|
|
23
|
+
}, []);
|
|
24
|
+
return String(id2) ?? void 0;
|
|
25
|
+
}
|
|
26
|
+
const useId = useReactId ?? useIncrementalId;
|
|
27
|
+
|
|
28
|
+
exports.useId = useId;
|
|
29
|
+
//# sourceMappingURL=use-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-id.js","sources":["../../src/utils/use-id.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { useLayoutEffect } from \"./use-layout-effect\";\n\nlet isHydrated = false;\nlet id = 0;\n\nfunction getId() {\n return ++id;\n}\n\n// Prevent bundlers from importing `useId` directly.\n// See https://github.com/radix-ui/primitives/pull/1028\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\nconst useReactId: typeof React.useId = (React as any)[\"useId\".toString()];\n\nfunction useIncrementalId() {\n const [id, setId] = useState(isHydrated ? getId : null);\n\n useLayoutEffect(() => {\n if (id === null) {\n setId(getId());\n }\n }, [id]);\n\n useEffect(() => {\n if (!isHydrated) {\n isHydrated = true;\n }\n }, []);\n\n return String(id) ?? undefined;\n}\n\n// React's `useId` is only available in React >=18.\nexport const useId: typeof React.useId = useReactId ?? useIncrementalId;\n"],"names":["id","useState","useLayoutEffect","useEffect"],"mappings":";;;;;AAIA,IAAI,UAAa,GAAA,KAAA,CAAA;AACjB,IAAI,EAAK,GAAA,CAAA,CAAA;AAET,SAAS,KAAQ,GAAA;AACf,EAAA,OAAO,EAAE,EAAA,CAAA;AACX,CAAA;AAKA,MAAM,UAAA,GAAkC,KAAc,CAAA,OAAA,CAAQ,QAAS,EAAA,CAAA,CAAA;AAEvE,SAAS,gBAAmB,GAAA;AAC1B,EAAA,MAAM,CAACA,GAAI,EAAA,KAAK,IAAIC,cAAS,CAAA,UAAA,GAAa,QAAQ,IAAI,CAAA,CAAA;AAEtD,EAAAC,+BAAA,CAAgB,MAAM;AACpB,IAAA,IAAIF,QAAO,IAAM,EAAA;AACf,MAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,KACf;AAAA,GACF,EAAG,CAACA,GAAE,CAAC,CAAA,CAAA;AAEP,EAAAG,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,UAAY,EAAA;AACf,MAAa,UAAA,GAAA,IAAA,CAAA;AAAA,KACf;AAAA,GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAO,OAAA,MAAA,CAAOH,GAAE,CAAK,IAAA,KAAA,CAAA,CAAA;AACvB,CAAA;AAGO,MAAM,QAA4B,UAAc,IAAA;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React__default, { useState, useEffect } from 'react';
|
|
2
|
+
import { useLayoutEffect } from './use-layout-effect.mjs';
|
|
3
|
+
|
|
4
|
+
let isHydrated = false;
|
|
5
|
+
let id = 0;
|
|
6
|
+
function getId() {
|
|
7
|
+
return ++id;
|
|
8
|
+
}
|
|
9
|
+
const useReactId = React__default["useId".toString()];
|
|
10
|
+
function useIncrementalId() {
|
|
11
|
+
const [id2, setId] = useState(isHydrated ? getId : null);
|
|
12
|
+
useLayoutEffect(() => {
|
|
13
|
+
if (id2 === null) {
|
|
14
|
+
setId(getId());
|
|
15
|
+
}
|
|
16
|
+
}, [id2]);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (!isHydrated) {
|
|
19
|
+
isHydrated = true;
|
|
20
|
+
}
|
|
21
|
+
}, []);
|
|
22
|
+
return String(id2) ?? void 0;
|
|
23
|
+
}
|
|
24
|
+
const useId = useReactId ?? useIncrementalId;
|
|
25
|
+
|
|
26
|
+
export { useId };
|
|
27
|
+
//# sourceMappingURL=use-id.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-id.mjs","sources":["../../src/utils/use-id.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { useLayoutEffect } from \"./use-layout-effect\";\n\nlet isHydrated = false;\nlet id = 0;\n\nfunction getId() {\n return ++id;\n}\n\n// Prevent bundlers from importing `useId` directly.\n// See https://github.com/radix-ui/primitives/pull/1028\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\nconst useReactId: typeof React.useId = (React as any)[\"useId\".toString()];\n\nfunction useIncrementalId() {\n const [id, setId] = useState(isHydrated ? getId : null);\n\n useLayoutEffect(() => {\n if (id === null) {\n setId(getId());\n }\n }, [id]);\n\n useEffect(() => {\n if (!isHydrated) {\n isHydrated = true;\n }\n }, []);\n\n return String(id) ?? undefined;\n}\n\n// React's `useId` is only available in React >=18.\nexport const useId: typeof React.useId = useReactId ?? useIncrementalId;\n"],"names":["React","id"],"mappings":";;;AAIA,IAAI,UAAa,GAAA,KAAA,CAAA;AACjB,IAAI,EAAK,GAAA,CAAA,CAAA;AAET,SAAS,KAAQ,GAAA;AACf,EAAA,OAAO,EAAE,EAAA,CAAA;AACX,CAAA;AAKA,MAAM,UAAA,GAAkCA,cAAc,CAAA,OAAA,CAAQ,QAAS,EAAA,CAAA,CAAA;AAEvE,SAAS,gBAAmB,GAAA;AAC1B,EAAA,MAAM,CAACC,GAAI,EAAA,KAAK,IAAI,QAAS,CAAA,UAAA,GAAa,QAAQ,IAAI,CAAA,CAAA;AAEtD,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAIA,QAAO,IAAM,EAAA;AACf,MAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,KACf;AAAA,GACF,EAAG,CAACA,GAAE,CAAC,CAAA,CAAA;AAEP,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,UAAY,EAAA;AACf,MAAa,UAAA,GAAA,IAAA,CAAA;AAAA,KACf;AAAA,GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAO,OAAA,MAAA,CAAOA,GAAE,CAAK,IAAA,KAAA,CAAA,CAAA;AACvB,CAAA;AAGO,MAAM,QAA4B,UAAc,IAAA;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var clamp = require('./clamp.js');
|
|
5
|
+
var wrap = require('./wrap.js');
|
|
6
|
+
|
|
7
|
+
const defaultOptions = {
|
|
8
|
+
wrap: true
|
|
9
|
+
};
|
|
10
|
+
function useIndex(initial, length, options) {
|
|
11
|
+
const { wrap: shouldWrap } = React.useMemo(() => {
|
|
12
|
+
return {
|
|
13
|
+
...defaultOptions,
|
|
14
|
+
...options
|
|
15
|
+
};
|
|
16
|
+
}, [options]);
|
|
17
|
+
const transform = React.useMemo(() => shouldWrap ? wrap.wrap : clamp.clamp, [shouldWrap]);
|
|
18
|
+
const [index, setIndex] = React.useState(initial);
|
|
19
|
+
React.useEffect(() => {
|
|
20
|
+
setIndex((index2) => clamp.clamp(index2, 0, Math.max(length - 1, 0)));
|
|
21
|
+
}, [length]);
|
|
22
|
+
const previousIndex = React.useCallback(() => {
|
|
23
|
+
setIndex((index2) => transform(index2 - 1, 0, Math.max(length, 0)));
|
|
24
|
+
}, [length, transform]);
|
|
25
|
+
const nextIndex = React.useCallback(() => {
|
|
26
|
+
setIndex((index2) => transform(index2 + 1, 0, Math.max(length, 0)));
|
|
27
|
+
}, [length, transform]);
|
|
28
|
+
return [index, previousIndex, nextIndex, setIndex];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
exports.useIndex = useIndex;
|
|
32
|
+
//# sourceMappingURL=use-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-index.js","sources":["../../src/utils/use-index.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { clamp } from \"./clamp\";\nimport { wrap } from \"./wrap\";\n\ntype Options = {\n wrap: boolean;\n};\n\nconst defaultOptions: Options = {\n wrap: true,\n};\n\nexport function useIndex(\n initial: number,\n length: number,\n options?: Partial<Options>\n) {\n const { wrap: shouldWrap } = useMemo(() => {\n return {\n ...defaultOptions,\n ...options,\n };\n }, [options]);\n const transform = useMemo(() => (shouldWrap ? wrap : clamp), [shouldWrap]);\n const [index, setIndex] = useState(initial);\n\n useEffect(() => {\n setIndex((index) => clamp(index, 0, Math.max(length - 1, 0)));\n }, [length]);\n\n const previousIndex = useCallback(() => {\n setIndex((index) => transform(index - 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n const nextIndex = useCallback(() => {\n setIndex((index) => transform(index + 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n return [index, previousIndex, nextIndex, setIndex] as const;\n}\n"],"names":["useMemo","wrap","clamp","useState","useEffect","index","useCallback"],"mappings":";;;;;;AASA,MAAM,cAA0B,GAAA;AAAA,EAC9B,IAAM,EAAA,IAAA;AACR,CAAA,CAAA;AAEgB,SAAA,QAAA,CACd,OACA,EAAA,MAAA,EACA,OACA,EAAA;AACA,EAAA,MAAM,EAAE,IAAA,EAAM,UAAW,EAAA,GAAIA,cAAQ,MAAM;AACzC,IAAO,OAAA;AAAA,MACL,GAAG,cAAA;AAAA,MACH,GAAG,OAAA;AAAA,KACL,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AACZ,EAAM,MAAA,SAAA,GAAYA,cAAQ,MAAO,UAAA,GAAaC,YAAOC,WAAQ,EAAA,CAAC,UAAU,CAAC,CAAA,CAAA;AACzE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,eAAS,OAAO,CAAA,CAAA;AAE1C,EAAAC,eAAA,CAAU,MAAM;AACd,IAAS,QAAA,CAAA,CAACC,MAAU,KAAAH,WAAA,CAAMG,MAAO,EAAA,CAAA,EAAG,IAAK,CAAA,GAAA,CAAI,MAAS,GAAA,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC9D,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAM,MAAA,aAAA,GAAgBC,kBAAY,MAAM;AACtC,IAAS,QAAA,CAAA,CAACD,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAM,MAAA,SAAA,GAAYC,kBAAY,MAAM;AAClC,IAAS,QAAA,CAAA,CAACD,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAA,OAAO,CAAC,KAAA,EAAO,aAAe,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AACnD;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useMemo, useState, useEffect, useCallback } from 'react';
|
|
2
|
+
import { clamp } from './clamp.mjs';
|
|
3
|
+
import { wrap } from './wrap.mjs';
|
|
4
|
+
|
|
5
|
+
const defaultOptions = {
|
|
6
|
+
wrap: true
|
|
7
|
+
};
|
|
8
|
+
function useIndex(initial, length, options) {
|
|
9
|
+
const { wrap: shouldWrap } = useMemo(() => {
|
|
10
|
+
return {
|
|
11
|
+
...defaultOptions,
|
|
12
|
+
...options
|
|
13
|
+
};
|
|
14
|
+
}, [options]);
|
|
15
|
+
const transform = useMemo(() => shouldWrap ? wrap : clamp, [shouldWrap]);
|
|
16
|
+
const [index, setIndex] = useState(initial);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
setIndex((index2) => clamp(index2, 0, Math.max(length - 1, 0)));
|
|
19
|
+
}, [length]);
|
|
20
|
+
const previousIndex = useCallback(() => {
|
|
21
|
+
setIndex((index2) => transform(index2 - 1, 0, Math.max(length, 0)));
|
|
22
|
+
}, [length, transform]);
|
|
23
|
+
const nextIndex = useCallback(() => {
|
|
24
|
+
setIndex((index2) => transform(index2 + 1, 0, Math.max(length, 0)));
|
|
25
|
+
}, [length, transform]);
|
|
26
|
+
return [index, previousIndex, nextIndex, setIndex];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { useIndex };
|
|
30
|
+
//# sourceMappingURL=use-index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-index.mjs","sources":["../../src/utils/use-index.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { clamp } from \"./clamp\";\nimport { wrap } from \"./wrap\";\n\ntype Options = {\n wrap: boolean;\n};\n\nconst defaultOptions: Options = {\n wrap: true,\n};\n\nexport function useIndex(\n initial: number,\n length: number,\n options?: Partial<Options>\n) {\n const { wrap: shouldWrap } = useMemo(() => {\n return {\n ...defaultOptions,\n ...options,\n };\n }, [options]);\n const transform = useMemo(() => (shouldWrap ? wrap : clamp), [shouldWrap]);\n const [index, setIndex] = useState(initial);\n\n useEffect(() => {\n setIndex((index) => clamp(index, 0, Math.max(length - 1, 0)));\n }, [length]);\n\n const previousIndex = useCallback(() => {\n setIndex((index) => transform(index - 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n const nextIndex = useCallback(() => {\n setIndex((index) => transform(index + 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n return [index, previousIndex, nextIndex, setIndex] as const;\n}\n"],"names":["index"],"mappings":";;;;AASA,MAAM,cAA0B,GAAA;AAAA,EAC9B,IAAM,EAAA,IAAA;AACR,CAAA,CAAA;AAEgB,SAAA,QAAA,CACd,OACA,EAAA,MAAA,EACA,OACA,EAAA;AACA,EAAA,MAAM,EAAE,IAAA,EAAM,UAAW,EAAA,GAAI,QAAQ,MAAM;AACzC,IAAO,OAAA;AAAA,MACL,GAAG,cAAA;AAAA,MACH,GAAG,OAAA;AAAA,KACL,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AACZ,EAAM,MAAA,SAAA,GAAY,QAAQ,MAAO,UAAA,GAAa,OAAO,KAAQ,EAAA,CAAC,UAAU,CAAC,CAAA,CAAA;AACzE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,OAAO,CAAA,CAAA;AAE1C,EAAA,SAAA,CAAU,MAAM;AACd,IAAS,QAAA,CAAA,CAACA,MAAU,KAAA,KAAA,CAAMA,MAAO,EAAA,CAAA,EAAG,IAAK,CAAA,GAAA,CAAI,MAAS,GAAA,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC9D,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAM,MAAA,aAAA,GAAgB,YAAY,MAAM;AACtC,IAAS,QAAA,CAAA,CAACA,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAM,MAAA,SAAA,GAAY,YAAY,MAAM;AAClC,IAAS,QAAA,CAAA,CAACA,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAA,OAAO,CAAC,KAAA,EAAO,aAAe,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AACnD;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-initial.js","sources":["../../src/utils/use-initial.ts"],"sourcesContent":["import { useRef } from \"react\";\n\n/**\n * \"Freezes\" a given value, so that it will return the same value/instance on\n * each subsequent render. This can be used to freeze \"initial\" values for\n * custom hooks, much like how `useState(initialState)` or\n * `useRef(initialValue)` works.\n */\nexport function useInitial<T>(value: T | (() => T)): T {\n return useRef(value instanceof Function ? value() : value).current;\n}\n"],"names":["useRef"],"mappings":";;;;AAQO,SAAS,WAAc,KAAyB,EAAA;AACrD,EAAA,OAAOA,aAAO,KAAiB,YAAA,QAAA,GAAW,KAAM,EAAA,GAAI,KAAK,CAAE,CAAA,OAAA,CAAA;AAC7D;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-initial.mjs","sources":["../../src/utils/use-initial.ts"],"sourcesContent":["import { useRef } from \"react\";\n\n/**\n * \"Freezes\" a given value, so that it will return the same value/instance on\n * each subsequent render. This can be used to freeze \"initial\" values for\n * custom hooks, much like how `useState(initialState)` or\n * `useRef(initialValue)` works.\n */\nexport function useInitial<T>(value: T | (() => T)): T {\n return useRef(value instanceof Function ? value() : value).current;\n}\n"],"names":[],"mappings":";;AAQO,SAAS,WAAc,KAAyB,EAAA;AACrD,EAAA,OAAO,OAAO,KAAiB,YAAA,QAAA,GAAW,KAAM,EAAA,GAAI,KAAK,CAAE,CAAA,OAAA,CAAA;AAC7D;;;;"}
|