@q9labsai/chalk-react-native 4.1.17 → 5.0.1
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 +134 -29
- package/android/build.gradle +35 -0
- package/android/compatibility/ModuleApiCompatibility.java +215 -0
- package/android/src/main/AndroidManifest.xml +2 -1
- package/android/src/main/java/ai/q9labs/chalk/reactnative/ChalkSpaceForegroundService.java +105 -31
- package/android/src/main/kotlin/ai/q9labs/chalk/reactnative/ChalkAndroidConnectionServicePackage.kt +2 -0
- package/android/src/main/kotlin/ai/q9labs/chalk/reactnative/ChalkAudioRouteModule.kt +137 -0
- package/android/src/main/kotlin/ai/q9labs/chalk/reactnative/ChalkCallServiceModule.kt +32 -0
- package/android/src/main/kotlin/ai/q9labs/chalk/reactnative/CommunicationDeviceListener.kt +23 -0
- package/android/src/test/kotlin/ai/q9labs/chalk/compatibility/UnsafeSignatures.kt +29 -0
- package/dist/android/call-service.d.ts +4 -0
- package/dist/android/call-service.d.ts.map +1 -0
- package/dist/avatar/FaceAvatar.d.ts +19 -0
- package/dist/avatar/FaceAvatar.d.ts.map +1 -0
- package/dist/avatar/tile-avatar-size.d.ts +3 -0
- package/dist/avatar/tile-avatar-size.d.ts.map +1 -0
- package/dist/chunk-GYVZSOGQ.js +30 -0
- package/dist/chunk-IHE6EA3T.js +25 -0
- package/dist/chunk-OIBT2FNM.js +1479 -0
- package/dist/client.d.ts +1 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +185 -2
- package/dist/components/EmbeddedWhiteboard.d.ts.map +1 -1
- package/dist/components/native-media-visibility.d.ts +3 -2
- package/dist/components/native-media-visibility.d.ts.map +1 -1
- package/dist/components/useAndroidCallService.d.ts +8 -0
- package/dist/components/useAndroidCallService.d.ts.map +1 -0
- package/dist/dev.d.ts +10 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +10 -0
- package/dist/dock/Dock.d.ts +23 -0
- package/dist/dock/Dock.d.ts.map +1 -0
- package/dist/dock/LeaveMenu.d.ts +12 -0
- package/dist/dock/LeaveMenu.d.ts.map +1 -0
- package/dist/dock/MoreSheet.d.ts +17 -0
- package/dist/dock/MoreSheet.d.ts.map +1 -0
- package/dist/dock/ReactionBurst.d.ts +8 -0
- package/dist/dock/ReactionBurst.d.ts.map +1 -0
- package/dist/dock/RoutePicker.d.ts +16 -0
- package/dist/dock/RoutePicker.d.ts.map +1 -0
- package/dist/dock/audio-route.d.ts +25 -0
- package/dist/dock/audio-route.d.ts.map +1 -0
- package/dist/error-YOPTEH5N.wav +0 -0
- package/dist/frame/CallFrame.d.ts +17 -0
- package/dist/frame/CallFrame.d.ts.map +1 -0
- package/dist/frame/Chalk.d.ts +40 -0
- package/dist/frame/Chalk.d.ts.map +1 -0
- package/dist/frame/back-handler.d.ts +6 -0
- package/dist/frame/back-handler.d.ts.map +1 -0
- package/dist/frame/dev-scenario.d.ts +28 -0
- package/dist/frame/dev-scenario.d.ts.map +1 -0
- package/dist/frame/device-layout.d.ts +16 -0
- package/dist/frame/device-layout.d.ts.map +1 -0
- package/dist/frame/measurement.d.ts +28 -0
- package/dist/frame/measurement.d.ts.map +1 -0
- package/dist/frame/portal.d.ts +24 -0
- package/dist/frame/portal.d.ts.map +1 -0
- package/dist/frame/preferences.d.ts +21 -0
- package/dist/frame/preferences.d.ts.map +1 -0
- package/dist/frame/regions.d.ts +25 -0
- package/dist/frame/regions.d.ts.map +1 -0
- package/dist/hand-DFWVXPH2.wav +0 -0
- package/dist/haptics/haptics.d.ts +12 -0
- package/dist/haptics/haptics.d.ts.map +1 -0
- package/dist/header/CallDetailsSheet.d.ts +18 -0
- package/dist/header/CallDetailsSheet.d.ts.map +1 -0
- package/dist/header/Header.d.ts +17 -0
- package/dist/header/Header.d.ts.map +1 -0
- package/dist/header/QrCode.d.ts +6 -0
- package/dist/header/QrCode.d.ts.map +1 -0
- package/dist/icons/Icon.d.ts +12 -0
- package/dist/icons/Icon.d.ts.map +1 -0
- package/dist/icons/icon-element.d.ts +24 -0
- package/dist/icons/icon-element.d.ts.map +1 -0
- package/dist/icons/icon-paths.d.ts +530 -0
- package/dist/icons/icon-paths.d.ts.map +1 -0
- package/dist/index.d.ts +6 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2956 -38
- package/dist/join-Z6RL5AHE.wav +0 -0
- package/dist/knock-4VBQSHK4.wav +0 -0
- package/dist/leave-MQLZOWQD.wav +0 -0
- package/dist/limbo/Limbo.d.ts +25 -0
- package/dist/limbo/Limbo.d.ts.map +1 -0
- package/dist/limbo/Veil.d.ts +10 -0
- package/dist/limbo/Veil.d.ts.map +1 -0
- package/dist/media/native-capture-error.d.ts +7 -0
- package/dist/media/native-capture-error.d.ts.map +1 -0
- package/dist/message-6Y6WJGTB.wav +0 -0
- package/dist/motion/MovingFrame.d.ts +36 -0
- package/dist/motion/MovingFrame.d.ts.map +1 -0
- package/dist/motion/motion.d.ts +82 -0
- package/dist/motion/motion.d.ts.map +1 -0
- package/dist/motion/presence.d.ts +6 -0
- package/dist/motion/presence.d.ts.map +1 -0
- package/dist/motion/press.d.ts +15 -0
- package/dist/motion/press.d.ts.map +1 -0
- package/dist/mute-H5SJFXVI.wav +0 -0
- package/dist/primitives/BottomSheet.d.ts +36 -0
- package/dist/primitives/BottomSheet.d.ts.map +1 -0
- package/dist/primitives/ChalkText.d.ts +13 -0
- package/dist/primitives/ChalkText.d.ts.map +1 -0
- package/dist/primitives/CopyButton.d.ts +11 -0
- package/dist/primitives/CopyButton.d.ts.map +1 -0
- package/dist/primitives/IconButton.d.ts +26 -0
- package/dist/primitives/IconButton.d.ts.map +1 -0
- package/dist/primitives/Menu.d.ts +39 -0
- package/dist/primitives/Menu.d.ts.map +1 -0
- package/dist/primitives/NameTag.d.ts +19 -0
- package/dist/primitives/NameTag.d.ts.map +1 -0
- package/dist/primitives/PillButton.d.ts +19 -0
- package/dist/primitives/PillButton.d.ts.map +1 -0
- package/dist/primitives/SegmentedControl.d.ts +17 -0
- package/dist/primitives/SegmentedControl.d.ts.map +1 -0
- package/dist/primitives/SheetGroup.d.ts +24 -0
- package/dist/primitives/SheetGroup.d.ts.map +1 -0
- package/dist/primitives/Switch.d.ts +9 -0
- package/dist/primitives/Switch.d.ts.map +1 -0
- package/dist/primitives/TileShell.d.ts +18 -0
- package/dist/primitives/TileShell.d.ts.map +1 -0
- package/dist/primitives/announce.d.ts +3 -0
- package/dist/primitives/announce.d.ts.map +1 -0
- package/dist/primitives/menu-placement.d.ts +32 -0
- package/dist/primitives/menu-placement.d.ts.map +1 -0
- package/dist/primitives/toast/Toast.d.ts +8 -0
- package/dist/primitives/toast/Toast.d.ts.map +1 -0
- package/dist/primitives/toast/ToastStack.d.ts +18 -0
- package/dist/primitives/toast/ToastStack.d.ts.map +1 -0
- package/dist/primitives/toast/toast-store.d.ts +39 -0
- package/dist/primitives/toast/toast-store.d.ts.map +1 -0
- package/dist/recording-Q4GB77Y4.wav +0 -0
- package/dist/sheets/people-chat/ChatNotices.d.ts +14 -0
- package/dist/sheets/people-chat/ChatNotices.d.ts.map +1 -0
- package/dist/sheets/people-chat/ChatTab.d.ts +6 -0
- package/dist/sheets/people-chat/ChatTab.d.ts.map +1 -0
- package/dist/sheets/people-chat/Composer.d.ts +7 -0
- package/dist/sheets/people-chat/Composer.d.ts.map +1 -0
- package/dist/sheets/people-chat/PeopleChatSheet.d.ts +17 -0
- package/dist/sheets/people-chat/PeopleChatSheet.d.ts.map +1 -0
- package/dist/sheets/people-chat/PeopleTab.d.ts +3 -0
- package/dist/sheets/people-chat/PeopleTab.d.ts.map +1 -0
- package/dist/sheets/people-chat/PhotoViewer.d.ts +19 -0
- package/dist/sheets/people-chat/PhotoViewer.d.ts.map +1 -0
- package/dist/sheets/people-chat/TextField.d.ts +4 -0
- package/dist/sheets/people-chat/TextField.d.ts.map +1 -0
- package/dist/sheets/people-chat/attachments.d.ts +33 -0
- package/dist/sheets/people-chat/attachments.d.ts.map +1 -0
- package/dist/sheets/people-chat/chat-model.d.ts +64 -0
- package/dist/sheets/people-chat/chat-model.d.ts.map +1 -0
- package/dist/sheets/people-chat/people-model.d.ts +43 -0
- package/dist/sheets/people-chat/people-model.d.ts.map +1 -0
- package/dist/sounds/sounds.d.ts +33 -0
- package/dist/sounds/sounds.d.ts.map +1 -0
- package/dist/space-client/create-native-space-client.d.ts +0 -4
- package/dist/space-client/create-native-space-client.d.ts.map +1 -1
- package/dist/space-client/random-uuid.d.ts +7 -0
- package/dist/space-client/random-uuid.d.ts.map +1 -0
- package/dist/stage/ContentTile.d.ts +18 -0
- package/dist/stage/ContentTile.d.ts.map +1 -0
- package/dist/stage/ParticipantTile.d.ts +18 -0
- package/dist/stage/ParticipantTile.d.ts.map +1 -0
- package/dist/stage/Stage.d.ts +14 -0
- package/dist/stage/Stage.d.ts.map +1 -0
- package/dist/stage/TileSheet.d.ts +12 -0
- package/dist/stage/TileSheet.d.ts.map +1 -0
- package/dist/stage/camera.d.ts +7 -0
- package/dist/stage/camera.d.ts.map +1 -0
- package/dist/stage/layout.d.ts +57 -0
- package/dist/stage/layout.d.ts.map +1 -0
- package/dist/stage/space-selector.d.ts +10 -0
- package/dist/stage/space-selector.d.ts.map +1 -0
- package/dist/stage/stage-view.d.ts +23 -0
- package/dist/stage/stage-view.d.ts.map +1 -0
- package/dist/status/CallOverlays.d.ts +17 -0
- package/dist/status/CallOverlays.d.ts.map +1 -0
- package/dist/status/ChalkArrival.d.ts +24 -0
- package/dist/status/ChalkArrival.d.ts.map +1 -0
- package/dist/status/StatusPage.d.ts +14 -0
- package/dist/status/StatusPage.d.ts.map +1 -0
- package/dist/status/call-screen.d.ts +20 -0
- package/dist/status/call-screen.d.ts.map +1 -0
- package/dist/test-VD2KAM4D.wav +0 -0
- package/dist/theme/theme.d.ts +15 -0
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/theme/tokens.d.ts +248 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/toasts/CallEventToasts.d.ts +21 -0
- package/dist/toasts/CallEventToasts.d.ts.map +1 -0
- package/dist/toasts/notices.d.ts +34 -0
- package/dist/toasts/notices.d.ts.map +1 -0
- package/dist/ui/ChalkUI.d.ts +12 -0
- package/dist/ui/ChalkUI.d.ts.map +1 -0
- package/dist/ui.d.ts +25 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +77 -0
- package/dist/unmute-2XR2LICU.wav +0 -0
- package/embedded/chalk-whiteboard/asset-manifest.json +2 -2
- package/embedded/chalk-whiteboard/renderer.js +510 -510
- package/ios/ChalkAudioRouteModule.swift +93 -0
- package/ios/ChalkAudioRouteModuleBridge.m +9 -0
- package/package.json +46 -76
- package/src/android/call-service.ts +19 -0
- package/src/avatar/FaceAvatar.tsx +145 -0
- package/src/avatar/tile-avatar-size.ts +4 -0
- package/src/client.ts +1 -5
- package/src/components/EmbeddedWhiteboard.tsx +14 -71
- package/src/components/native-media-visibility.ts +1 -2
- package/src/components/useAndroidCallService.ts +41 -0
- package/src/dev.ts +9 -0
- package/src/dock/Dock.tsx +95 -0
- package/src/dock/LeaveMenu.tsx +21 -0
- package/src/dock/MoreSheet.tsx +233 -0
- package/src/dock/ReactionBurst.tsx +55 -0
- package/src/dock/RoutePicker.tsx +42 -0
- package/src/dock/audio-route.ts +69 -0
- package/src/frame/CallFrame.tsx +209 -0
- package/src/frame/Chalk.tsx +83 -0
- package/src/frame/back-handler.ts +19 -0
- package/src/frame/dev-scenario.ts +48 -0
- package/src/frame/device-layout.tsx +31 -0
- package/src/frame/measurement.ts +44 -0
- package/src/frame/portal.tsx +107 -0
- package/src/frame/preferences.tsx +48 -0
- package/src/frame/regions.test.ts +38 -0
- package/src/frame/regions.ts +60 -0
- package/src/haptics/haptics.ts +19 -0
- package/src/header/CallDetailsSheet.tsx +139 -0
- package/src/header/Header.tsx +107 -0
- package/src/header/QrCode.tsx +34 -0
- package/src/icons/Icon.tsx +35 -0
- package/src/icons/icon-element.ts +11 -0
- package/src/icons/icon-paths.ts +199 -0
- package/src/index.ts +6 -9
- package/src/limbo/Limbo.tsx +159 -0
- package/src/limbo/Veil.tsx +36 -0
- package/src/media/native-capture-error.test.ts +19 -0
- package/src/media/native-capture-error.ts +13 -0
- package/src/motion/MovingFrame.tsx +101 -0
- package/src/motion/motion.ts +33 -0
- package/src/motion/presence.ts +20 -0
- package/src/motion/press.ts +35 -0
- package/src/primitives/BottomSheet.tsx +211 -0
- package/src/primitives/ChalkText.tsx +23 -0
- package/src/primitives/CopyButton.tsx +78 -0
- package/src/primitives/IconButton.tsx +90 -0
- package/src/primitives/Menu.tsx +212 -0
- package/src/primitives/NameTag.tsx +68 -0
- package/src/primitives/PillButton.tsx +56 -0
- package/src/primitives/SegmentedControl.tsx +55 -0
- package/src/primitives/SheetGroup.tsx +72 -0
- package/src/primitives/Switch.tsx +39 -0
- package/src/primitives/TileShell.tsx +53 -0
- package/src/primitives/announce.ts +7 -0
- package/src/primitives/menu-placement.test.ts +50 -0
- package/src/primitives/menu-placement.ts +43 -0
- package/src/primitives/toast/Toast.tsx +50 -0
- package/src/primitives/toast/ToastStack.tsx +89 -0
- package/src/primitives/toast/toast-store.ts +86 -0
- package/src/sheets/people-chat/ChatNotices.tsx +69 -0
- package/src/sheets/people-chat/ChatTab.tsx +186 -0
- package/src/sheets/people-chat/Composer.tsx +182 -0
- package/src/sheets/people-chat/PeopleChatSheet.tsx +100 -0
- package/src/sheets/people-chat/PeopleTab.tsx +326 -0
- package/src/sheets/people-chat/PhotoViewer.tsx +132 -0
- package/src/sheets/people-chat/TextField.tsx +14 -0
- package/src/sheets/people-chat/attachments.tsx +183 -0
- package/src/sheets/people-chat/chat-model.ts +157 -0
- package/src/sheets/people-chat/people-chat-model.test.ts +98 -0
- package/src/sheets/people-chat/people-model.ts +68 -0
- package/src/sounds/assets/error.wav +0 -0
- package/src/sounds/assets/hand.wav +0 -0
- package/src/sounds/assets/join.wav +0 -0
- package/src/sounds/assets/knock.wav +0 -0
- package/src/sounds/assets/leave.wav +0 -0
- package/src/sounds/assets/message.wav +0 -0
- package/src/sounds/assets/mute.wav +0 -0
- package/src/sounds/assets/recording.wav +0 -0
- package/src/sounds/assets/test.wav +0 -0
- package/src/sounds/assets/unmute.wav +0 -0
- package/src/sounds/assets.d.ts +5 -0
- package/src/sounds/sounds.ts +50 -0
- package/src/space-client/create-native-space-client.ts +20 -181
- package/src/space-client/random-uuid.ts +17 -0
- package/src/space-client/whiteboard-watchdog.test.ts +23 -0
- package/src/stage/ContentTile.tsx +100 -0
- package/src/stage/ParticipantTile.tsx +140 -0
- package/src/stage/Stage.tsx +152 -0
- package/src/stage/TileSheet.tsx +116 -0
- package/src/stage/camera.ts +20 -0
- package/src/stage/layout.test.ts +77 -0
- package/src/stage/layout.ts +226 -0
- package/src/stage/space-selector.ts +31 -0
- package/src/stage/stage-view.tsx +68 -0
- package/src/status/CallOverlays.tsx +47 -0
- package/src/status/ChalkArrival.tsx +53 -0
- package/src/status/StatusPage.tsx +123 -0
- package/src/status/call-screen.test.ts +42 -0
- package/src/status/call-screen.ts +29 -0
- package/src/theme/theme.tsx +28 -0
- package/src/theme/tokens.ts +247 -0
- package/src/toasts/CallEventToasts.tsx +192 -0
- package/src/toasts/notices.test.ts +92 -0
- package/src/toasts/notices.ts +62 -0
- package/src/ui/ChalkUI.tsx +49 -0
- package/src/ui.ts +24 -0
- package/dist/android.d.ts +0 -2
- package/dist/android.d.ts.map +0 -1
- package/dist/android.js +0 -62
- package/dist/chunk-2OS7SSXE.js +0 -552
- package/dist/chunk-5DQ4KBRH.js +0 -690
- package/dist/chunk-ITLUHTVS.js +0 -5271
- package/dist/chunk-JB4LNWVP.js +0 -247
- package/dist/components/Chalk.d.ts +0 -79
- package/dist/components/Chalk.d.ts.map +0 -1
- package/dist/components/ChatMessageList.d.ts +0 -11
- package/dist/components/ChatMessageList.d.ts.map +0 -1
- package/dist/components/Entrance.d.ts +0 -22
- package/dist/components/Entrance.d.ts.map +0 -1
- package/dist/components/EntranceView.android.d.ts +0 -4
- package/dist/components/EntranceView.android.d.ts.map +0 -1
- package/dist/components/EntranceView.d.ts +0 -18
- package/dist/components/EntranceView.d.ts.map +0 -1
- package/dist/components/EntranceView.ios-pad.d.ts +0 -3
- package/dist/components/EntranceView.ios-pad.d.ts.map +0 -1
- package/dist/components/EntranceView.ios-phone.d.ts +0 -3
- package/dist/components/EntranceView.ios-phone.d.ts.map +0 -1
- package/dist/components/EntranceView.macos.d.ts +0 -4
- package/dist/components/EntranceView.macos.d.ts.map +0 -1
- package/dist/components/FaceAvatar.d.ts +0 -16
- package/dist/components/FaceAvatar.d.ts.map +0 -1
- package/dist/components/GradientSurface.d.ts +0 -14
- package/dist/components/GradientSurface.d.ts.map +0 -1
- package/dist/components/MediaView.d.ts +0 -14
- package/dist/components/MediaView.d.ts.map +0 -1
- package/dist/components/ReactionPicker.d.ts +0 -10
- package/dist/components/ReactionPicker.d.ts.map +0 -1
- package/dist/components/SpaceView.android.d.ts +0 -2
- package/dist/components/SpaceView.android.d.ts.map +0 -1
- package/dist/components/SpaceView.d.ts +0 -33
- package/dist/components/SpaceView.d.ts.map +0 -1
- package/dist/components/SpaceView.ios-pad.d.ts +0 -2
- package/dist/components/SpaceView.ios-pad.d.ts.map +0 -1
- package/dist/components/SpaceView.ios-phone.d.ts +0 -2
- package/dist/components/SpaceView.ios-phone.d.ts.map +0 -1
- package/dist/components/SpaceView.macos.d.ts +0 -2
- package/dist/components/SpaceView.macos.d.ts.map +0 -1
- package/dist/components/SpaceView.shared.d.ts +0 -3
- package/dist/components/SpaceView.shared.d.ts.map +0 -1
- package/dist/components/episode-diagnostic-render-observer.d.ts +0 -2
- package/dist/components/episode-diagnostic-render-observer.d.ts.map +0 -1
- package/dist/components/logo/Logo.d.ts +0 -11
- package/dist/components/logo/Logo.d.ts.map +0 -1
- package/dist/components/native-animation-controller.d.ts +0 -7
- package/dist/components/native-animation-controller.d.ts.map +0 -1
- package/dist/components/native-chat.d.ts +0 -8
- package/dist/components/native-chat.d.ts.map +0 -1
- package/dist/components/native-entrance/entrance-controller-store.d.ts +0 -34
- package/dist/components/native-entrance/entrance-controller-store.d.ts.map +0 -1
- package/dist/components/native-entrance/useEntranceController.d.ts +0 -19
- package/dist/components/native-entrance/useEntranceController.d.ts.map +0 -1
- package/dist/components/native-joining-loading-animation.d.ts +0 -9
- package/dist/components/native-joining-loading-animation.d.ts.map +0 -1
- package/dist/components/native-space-view/AppearanceSettings.d.ts +0 -2
- package/dist/components/native-space-view/AppearanceSettings.d.ts.map +0 -1
- package/dist/components/native-space-view/FeedbackSheet.d.ts +0 -12
- package/dist/components/native-space-view/FeedbackSheet.d.ts.map +0 -1
- package/dist/components/native-space-view/ParticipantActionSheet.d.ts +0 -9
- package/dist/components/native-space-view/ParticipantActionSheet.d.ts.map +0 -1
- package/dist/components/native-space-view/SettingsSheet.d.ts +0 -7
- package/dist/components/native-space-view/SettingsSheet.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceActionMenu.d.ts +0 -10
- package/dist/components/native-space-view/SpaceActionMenu.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceBottomDock.android.d.ts +0 -4
- package/dist/components/native-space-view/SpaceBottomDock.android.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceChatAttachment.d.ts +0 -8
- package/dist/components/native-space-view/SpaceChatAttachment.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceChatSheet.d.ts +0 -5
- package/dist/components/native-space-view/SpaceChatSheet.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceGrid.android.d.ts +0 -8
- package/dist/components/native-space-view/SpaceGrid.android.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceMoreSheet.d.ts +0 -7
- package/dist/components/native-space-view/SpaceMoreSheet.d.ts.map +0 -1
- package/dist/components/native-space-view/SpacePanelSheet.d.ts +0 -5
- package/dist/components/native-space-view/SpacePanelSheet.d.ts.map +0 -1
- package/dist/components/native-space-view/SpacePeopleSheet.d.ts +0 -5
- package/dist/components/native-space-view/SpacePeopleSheet.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceStage.android.d.ts +0 -29
- package/dist/components/native-space-view/SpaceStage.android.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceSurfacePrimitives.d.ts +0 -30
- package/dist/components/native-space-view/SpaceSurfacePrimitives.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceTopBar.android.d.ts +0 -11
- package/dist/components/native-space-view/SpaceTopBar.android.d.ts.map +0 -1
- package/dist/components/native-space-view/SpaceWhiteboardSurface.d.ts +0 -15
- package/dist/components/native-space-view/SpaceWhiteboardSurface.d.ts.map +0 -1
- package/dist/components/native-space-view/diagnostics.d.ts +0 -48
- package/dist/components/native-space-view/diagnostics.d.ts.map +0 -1
- package/dist/components/native-space-view/format-space-duration.d.ts +0 -2
- package/dist/components/native-space-view/format-space-duration.d.ts.map +0 -1
- package/dist/components/native-space-view/native-space-grid-keys.d.ts +0 -3
- package/dist/components/native-space-view/native-space-grid-keys.d.ts.map +0 -1
- package/dist/components/native-space-view/native-space-page-store.d.ts +0 -8
- package/dist/components/native-space-view/native-space-page-store.d.ts.map +0 -1
- package/dist/components/native-space-view/space-chat-attachments.d.ts +0 -15
- package/dist/components/native-space-view/space-chat-attachments.d.ts.map +0 -1
- package/dist/components/native-space-view/space-panel-layout.d.ts +0 -10
- package/dist/components/native-space-view/space-panel-layout.d.ts.map +0 -1
- package/dist/components/native-space-view/space-progressive-surface-helpers.d.ts +0 -16
- package/dist/components/native-space-view/space-progressive-surface-helpers.d.ts.map +0 -1
- package/dist/components/native-space-view/space-progressive-surface-types.d.ts +0 -3
- package/dist/components/native-space-view/space-progressive-surface-types.d.ts.map +0 -1
- package/dist/components/native-space-view/types.d.ts +0 -24
- package/dist/components/native-space-view/types.d.ts.map +0 -1
- package/dist/components/native-space-view/useSpaceViewController.contract.d.ts +0 -41
- package/dist/components/native-space-view/useSpaceViewController.contract.d.ts.map +0 -1
- package/dist/components/native-space-view/useSpaceViewController.d.ts +0 -156
- package/dist/components/native-space-view/useSpaceViewController.d.ts.map +0 -1
- package/dist/components/native-space-view/useSpaceViewDerived.d.ts +0 -12
- package/dist/components/native-space-view/useSpaceViewDerived.d.ts.map +0 -1
- package/dist/components/native-space-view/useSpaceViewPanels.d.ts +0 -70
- package/dist/components/native-space-view/useSpaceViewPanels.d.ts.map +0 -1
- package/dist/feedback/native-capture.d.ts +0 -9
- package/dist/feedback/native-capture.d.ts.map +0 -1
- package/dist/feedback/native-evidence.d.ts +0 -3
- package/dist/feedback/native-evidence.d.ts.map +0 -1
- package/dist/hooks/entrance-preview-store.d.ts +0 -16
- package/dist/hooks/entrance-preview-store.d.ts.map +0 -1
- package/dist/hooks/useEntrancePreview.d.ts +0 -7
- package/dist/hooks/useEntrancePreview.d.ts.map +0 -1
- package/dist/hooks/useLayout.d.ts +0 -16
- package/dist/hooks/useLayout.d.ts.map +0 -1
- package/dist/hooks/usePanels.d.ts +0 -12
- package/dist/hooks/usePanels.d.ts.map +0 -1
- package/dist/ios-pad.d.ts +0 -2
- package/dist/ios-pad.d.ts.map +0 -1
- package/dist/ios-pad.js +0 -62
- package/dist/ios-phone.d.ts +0 -2
- package/dist/ios-phone.d.ts.map +0 -1
- package/dist/ios-phone.js +0 -62
- package/dist/ios.d.ts +0 -2
- package/dist/ios.d.ts.map +0 -1
- package/dist/ios.js +0 -62
- package/dist/macos.d.ts +0 -2
- package/dist/macos.d.ts.map +0 -1
- package/dist/macos.js +0 -62
- package/dist/space-client/cloudflare-rtk-native.d.ts +0 -3
- package/dist/space-client/cloudflare-rtk-native.d.ts.map +0 -1
- package/dist/telemetry.d.ts +0 -63
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/ui/appearance.d.ts +0 -246
- package/dist/ui/appearance.d.ts.map +0 -1
- package/dist/ui/appearance.js +0 -14
- package/dist/ui/native-appearance-context.d.ts +0 -15
- package/dist/ui/native-appearance-context.d.ts.map +0 -1
- package/dist/ui/native-theme.d.ts +0 -17
- package/dist/ui/native-theme.d.ts.map +0 -1
- package/dist/ui/native-types.d.ts +0 -38
- package/dist/ui/native-types.d.ts.map +0 -1
- package/dist/ui/participant-avatar.d.ts +0 -21
- package/dist/ui/participant-avatar.d.ts.map +0 -1
- package/dist/ui/theme-tokens.d.ts +0 -25
- package/dist/ui/theme-tokens.d.ts.map +0 -1
- package/dist/ui/theme.d.ts +0 -404
- package/dist/ui/theme.d.ts.map +0 -1
- package/dist/ui/theme.js +0 -8
- package/dist/utils/native-space-layout.d.ts +0 -42
- package/dist/utils/native-space-layout.d.ts.map +0 -1
- package/src/android.ts +0 -1
- package/src/components/Chalk.tsx +0 -363
- package/src/components/ChatMessageList.tsx +0 -209
- package/src/components/Entrance.tsx +0 -42
- package/src/components/EntranceView.android.tsx +0 -274
- package/src/components/EntranceView.ios-pad.tsx +0 -326
- package/src/components/EntranceView.ios-phone.tsx +0 -271
- package/src/components/EntranceView.macos.tsx +0 -278
- package/src/components/EntranceView.tsx +0 -38
- package/src/components/FaceAvatar.tsx +0 -120
- package/src/components/GradientSurface.tsx +0 -23
- package/src/components/MediaView.tsx +0 -76
- package/src/components/ReactionPicker.tsx +0 -98
- package/src/components/SpaceView.android.tsx +0 -1
- package/src/components/SpaceView.ios-pad.tsx +0 -1
- package/src/components/SpaceView.ios-phone.tsx +0 -1
- package/src/components/SpaceView.macos.tsx +0 -1
- package/src/components/SpaceView.shared.tsx +0 -98
- package/src/components/SpaceView.tsx +0 -54
- package/src/components/episode-diagnostic-render-observer.ts +0 -12
- package/src/components/logo/Logo.tsx +0 -309
- package/src/components/native-animation-controller.ts +0 -36
- package/src/components/native-chat.ts +0 -23
- package/src/components/native-entrance/entrance-controller-store.ts +0 -112
- package/src/components/native-entrance/useEntranceController.ts +0 -60
- package/src/components/native-joining-loading-animation.ts +0 -26
- package/src/components/native-space-view/AppearanceSettings.tsx +0 -114
- package/src/components/native-space-view/FeedbackSheet.tsx +0 -296
- package/src/components/native-space-view/ParticipantActionSheet.tsx +0 -99
- package/src/components/native-space-view/SettingsSheet.tsx +0 -164
- package/src/components/native-space-view/SpaceActionMenu.tsx +0 -109
- package/src/components/native-space-view/SpaceBottomDock.android.tsx +0 -115
- package/src/components/native-space-view/SpaceChatAttachment.tsx +0 -105
- package/src/components/native-space-view/SpaceChatSheet.tsx +0 -184
- package/src/components/native-space-view/SpaceGrid.android.tsx +0 -323
- package/src/components/native-space-view/SpaceMoreSheet.tsx +0 -190
- package/src/components/native-space-view/SpacePanelSheet.tsx +0 -45
- package/src/components/native-space-view/SpacePeopleSheet.tsx +0 -116
- package/src/components/native-space-view/SpaceStage.android.tsx +0 -372
- package/src/components/native-space-view/SpaceSurfacePrimitives.tsx +0 -75
- package/src/components/native-space-view/SpaceTopBar.android.tsx +0 -113
- package/src/components/native-space-view/SpaceWhiteboardSurface.tsx +0 -69
- package/src/components/native-space-view/diagnostics.ts +0 -84
- package/src/components/native-space-view/format-space-duration.ts +0 -3
- package/src/components/native-space-view/native-space-grid-keys.ts +0 -6
- package/src/components/native-space-view/native-space-page-store.ts +0 -41
- package/src/components/native-space-view/space-chat-attachments.test.ts +0 -26
- package/src/components/native-space-view/space-chat-attachments.ts +0 -37
- package/src/components/native-space-view/space-panel-layout.ts +0 -10
- package/src/components/native-space-view/space-progressive-surface-helpers.ts +0 -33
- package/src/components/native-space-view/space-progressive-surface-types.ts +0 -3
- package/src/components/native-space-view/types.ts +0 -25
- package/src/components/native-space-view/useSpaceViewController.contract.ts +0 -34
- package/src/components/native-space-view/useSpaceViewController.ts +0 -416
- package/src/components/native-space-view/useSpaceViewDerived.ts +0 -29
- package/src/components/native-space-view/useSpaceViewPanels.ts +0 -170
- package/src/feedback/native-capture.ts +0 -62
- package/src/feedback/native-evidence.ts +0 -37
- package/src/hooks/entrance-preview-store.ts +0 -99
- package/src/hooks/useEntrancePreview.ts +0 -26
- package/src/hooks/useLayout.ts +0 -37
- package/src/hooks/usePanels.ts +0 -30
- package/src/ios-pad.ts +0 -1
- package/src/ios-phone.ts +0 -1
- package/src/ios.ts +0 -1
- package/src/macos.ts +0 -1
- package/src/space-client/cloudflare-rtk-native.ts +0 -104
- package/src/telemetry.ts +0 -234
- package/src/types/hugeicons-direct.d.ts +0 -4
- package/src/types/react-native-safe-area-context.d.ts +0 -8
- package/src/ui/appearance.ts +0 -808
- package/src/ui/native-appearance-context.tsx +0 -74
- package/src/ui/native-theme.tsx +0 -54
- package/src/ui/native-types.ts +0 -40
- package/src/ui/participant-avatar.ts +0 -47
- package/src/ui/theme-tokens.ts +0 -41
- package/src/ui/theme.ts +0 -214
- package/src/utils/native-space-layout.ts +0 -135
package/dist/client.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Native implementation seam for advanced construction. The turnkey root
|
|
3
|
-
* remains `Chalk`; applications that need direct lifecycle ownership can
|
|
4
|
-
* create the React Native SpaceClient through this explicit subpath.
|
|
5
|
-
*/
|
|
1
|
+
/** Native client construction for applications that own the call lifecycle. */
|
|
6
2
|
export { createNativeSpaceClient } from "./space-client/create-native-space-client";
|
|
7
3
|
export type { NativeSpaceClientOptions } from "./space-client/create-native-space-client";
|
|
8
4
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,YAAY,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC"}
|
package/dist/client.js
CHANGED
|
@@ -1,6 +1,189 @@
|
|
|
1
|
+
// src/space-client/create-native-space-client.ts
|
|
1
2
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
AsyncStorageV1PendingTargetStore,
|
|
4
|
+
CloudflareSFUClient,
|
|
5
|
+
createChalkChatFileHttpTransport,
|
|
6
|
+
createChalkWhiteboardV1Client,
|
|
7
|
+
createChalkWhiteboardV1FileDownloadTransport,
|
|
8
|
+
createCloudflareSFUHTTPTransport,
|
|
9
|
+
createReactNativeSyncLifecycle,
|
|
10
|
+
createReactNativeWebSocketFactory,
|
|
11
|
+
createV1SyncClient
|
|
12
|
+
} from "@q9labsai/chalk-client";
|
|
13
|
+
import { createSpaceClientForPlatform } from "@q9labsai/chalk-client/effect";
|
|
14
|
+
import { RTCPeerConnection, mediaDevices } from "@cloudflare/react-native-webrtc";
|
|
15
|
+
import { AppState } from "react-native";
|
|
16
|
+
|
|
17
|
+
// src/media/native-capture-error.ts
|
|
18
|
+
function toNativeCaptureError(cause) {
|
|
19
|
+
if (!isNativePermissionDenial(cause)) return cause;
|
|
20
|
+
return Object.assign(new Error(cause.message), { name: "NotAllowedError", cause });
|
|
21
|
+
}
|
|
22
|
+
function isNativePermissionDenial(cause) {
|
|
23
|
+
return typeof cause === "object" && cause !== null && "name" in cause && cause.name === "SecurityError" && "message" in cause && cause.message === "Permission denied.";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// src/space-client/random-uuid.ts
|
|
27
|
+
import { randomUUID } from "expo-crypto";
|
|
28
|
+
function ensureRandomUUID() {
|
|
29
|
+
const existing = globalThis.crypto;
|
|
30
|
+
if (typeof existing?.randomUUID === "function") return;
|
|
31
|
+
if (existing === void 0) {
|
|
32
|
+
Object.defineProperty(globalThis, "crypto", { configurable: true, value: { randomUUID } });
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
Object.defineProperty(existing, "randomUUID", { configurable: true, value: randomUUID });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// src/space-client/create-native-space-client.ts
|
|
39
|
+
function createNativeSpaceClient(options) {
|
|
40
|
+
ensureRandomUUID();
|
|
41
|
+
const { storage } = options;
|
|
42
|
+
const apiBaseURL = options.baseUrl ?? "https://api.chalkmeet.com";
|
|
43
|
+
const syncURL = options.syncUrl ?? defaultSyncURL(apiBaseURL);
|
|
44
|
+
const fetch = globalThis.fetch;
|
|
45
|
+
const lifecycle = createReactNativeSyncLifecycle({ appState: AppState });
|
|
46
|
+
const webSocket = createReactNativeWebSocketFactory(globalThis.WebSocket);
|
|
47
|
+
const dependencies = {
|
|
48
|
+
clock: {
|
|
49
|
+
now: () => Date.now(),
|
|
50
|
+
setTimeout: (callback, milliseconds) => globalThis.setTimeout(callback, milliseconds),
|
|
51
|
+
clearTimeout: (handle) => globalThis.clearTimeout(handle)
|
|
52
|
+
},
|
|
53
|
+
mediaDevices: {
|
|
54
|
+
getUserMedia: async (constraints) => {
|
|
55
|
+
try {
|
|
56
|
+
return await mediaDevices.getUserMedia(constraints);
|
|
57
|
+
} catch (cause) {
|
|
58
|
+
throw toNativeCaptureError(cause);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
getDisplayMedia: async () => await mediaDevices.getDisplayMedia()
|
|
62
|
+
},
|
|
63
|
+
createMediaClient: (input) => createMediaClient(apiBaseURL, input, fetch),
|
|
64
|
+
createSyncClient: (input) => createSyncClient(syncURL, input, lifecycle, webSocket, storage),
|
|
65
|
+
createChatFileTransport: (input) => createChatFileTransport(apiBaseURL, input, fetch),
|
|
66
|
+
createWhiteboardClient: options.whiteboardURL === null ? void 0 : (input) => createWhiteboardClient(apiBaseURL, options.whiteboardURL ?? whiteboardURL(syncURL), input, fetch, lifecycle, webSocket),
|
|
67
|
+
subscribeForeground: (listener) => {
|
|
68
|
+
const subscription = AppState.addEventListener("change", (state) => {
|
|
69
|
+
if (state === "active") listener();
|
|
70
|
+
});
|
|
71
|
+
return () => subscription.remove();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const client = createSpaceClientForPlatform(
|
|
75
|
+
{ space: options.space, getAccess: options.getAccess, baseUrl: apiBaseURL },
|
|
76
|
+
{
|
|
77
|
+
apiBaseUrl: apiBaseURL,
|
|
78
|
+
syncUrl: syncURL,
|
|
79
|
+
whiteboardUrl: options.whiteboardURL,
|
|
80
|
+
dependencies,
|
|
81
|
+
fetch,
|
|
82
|
+
syncStartupTimeoutMs: options.syncStartupTimeoutMs ?? 3e4,
|
|
83
|
+
initialMicrophoneEnabled: options.microphone,
|
|
84
|
+
initialCameraEnabled: options.camera
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
return client;
|
|
88
|
+
}
|
|
89
|
+
function createMediaClient(apiBaseURL, input, fetch) {
|
|
90
|
+
const { subject } = input.access;
|
|
91
|
+
const replaceMediaConnection = input.replaceMediaConnection;
|
|
92
|
+
const client = new CloudflareSFUClient({
|
|
93
|
+
bootstrap: input.access.media.clientPayload,
|
|
94
|
+
participantId: subject.participantId,
|
|
95
|
+
transport: createCloudflareSFUHTTPTransport({
|
|
96
|
+
apiBaseURL,
|
|
97
|
+
credential: input.credential,
|
|
98
|
+
tenantId: subject.tenantId,
|
|
99
|
+
spaceId: subject.spaceId,
|
|
100
|
+
episodeId: subject.episodeId,
|
|
101
|
+
participantId: subject.participantId,
|
|
102
|
+
fetch
|
|
103
|
+
}),
|
|
104
|
+
replaceMediaConnection: replaceMediaConnection ? async () => {
|
|
105
|
+
const replacement = await replaceMediaConnection();
|
|
106
|
+
if (replacement.provider !== "cloudflare_sfu") throw new TypeError("The Cloudflare SFU adapter requires a Cloudflare SFU access grant");
|
|
107
|
+
return replacement.clientPayload;
|
|
108
|
+
} : void 0,
|
|
109
|
+
peerConnectionFactory: (configuration) => {
|
|
110
|
+
const connection = new RTCPeerConnection(configuration);
|
|
111
|
+
return connection;
|
|
112
|
+
},
|
|
113
|
+
onError: input.onFailure,
|
|
114
|
+
onScreenEnded: input.onScreenEnded
|
|
115
|
+
});
|
|
116
|
+
return createSFUConnectionMediaClient(client);
|
|
117
|
+
}
|
|
118
|
+
function createSFUConnectionMediaClient(client) {
|
|
119
|
+
return {
|
|
120
|
+
setLocalPublicationTarget: client.setLocalPublicationTarget.bind(client),
|
|
121
|
+
observeLocalPublications: client.observeLocalPublications.bind(client),
|
|
122
|
+
observeRemotePublications: client.observeRemotePublications.bind(client),
|
|
123
|
+
start: client.start.bind(client),
|
|
124
|
+
stop: client.stop.bind(client),
|
|
125
|
+
restart: (input) => {
|
|
126
|
+
if ("provider" in input) {
|
|
127
|
+
if (input.provider !== "cloudflare_sfu") throw new TypeError("The Cloudflare SFU adapter requires a Cloudflare SFU access grant");
|
|
128
|
+
return client.restart(input.clientPayload);
|
|
129
|
+
}
|
|
130
|
+
return client.restart(input);
|
|
131
|
+
},
|
|
132
|
+
prepareLocalTrack: client.prepareLocalTrack.bind(client),
|
|
133
|
+
clearPreparedLocalTrack: client.clearPreparedLocalTrack.bind(client),
|
|
134
|
+
getSnapshot: client.getSnapshot.bind(client),
|
|
135
|
+
subscribe: client.subscribe.bind(client)
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function createSyncClient(syncURL, input, lifecycle, webSocket, storage) {
|
|
139
|
+
const subject = input.access.subject;
|
|
140
|
+
const scope = `${subject.tenantId}:${subject.episodeId}:${subject.participantId}`;
|
|
141
|
+
return createV1SyncClient({
|
|
142
|
+
url: syncURL,
|
|
143
|
+
token: input.token,
|
|
144
|
+
mediaPlane: input.media,
|
|
145
|
+
lifecycle,
|
|
146
|
+
webSocket,
|
|
147
|
+
...storage ? { pendingStore: new AsyncStorageV1PendingTargetStore({ scope, storage }) } : {}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
function createChatFileTransport(apiBaseURL, input, fetch) {
|
|
151
|
+
return createChalkChatFileHttpTransport({ baseUrl: apiBaseURL, token: input.token, fetch });
|
|
152
|
+
}
|
|
153
|
+
function createWhiteboardClient(apiBaseURL, url, input, fetch, lifecycle, webSocket) {
|
|
154
|
+
const files = createChalkWhiteboardV1FileDownloadTransport({
|
|
155
|
+
baseUrl: apiBaseURL,
|
|
156
|
+
token: input.token,
|
|
157
|
+
fetch
|
|
158
|
+
});
|
|
159
|
+
return createChalkWhiteboardV1Client({
|
|
160
|
+
url,
|
|
161
|
+
token: input.token,
|
|
162
|
+
files,
|
|
163
|
+
lifecycle,
|
|
164
|
+
webSocket,
|
|
165
|
+
onWatchdogReplacement: input.onWatchdogReplacement,
|
|
166
|
+
onSummary: (summary) => {
|
|
167
|
+
input.onSummary(summary);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
function whiteboardURL(syncURL) {
|
|
172
|
+
const url = new URL(syncURL);
|
|
173
|
+
url.pathname = "/v1/whiteboard";
|
|
174
|
+
url.search = "";
|
|
175
|
+
url.hash = "";
|
|
176
|
+
return url.toString();
|
|
177
|
+
}
|
|
178
|
+
function defaultSyncURL(apiBaseURL) {
|
|
179
|
+
const url = new URL(apiBaseURL);
|
|
180
|
+
url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
|
|
181
|
+
if (url.hostname.startsWith("api.")) url.hostname = `sync.${url.hostname.slice(4)}`;
|
|
182
|
+
url.pathname = "/v1/sync";
|
|
183
|
+
url.search = "";
|
|
184
|
+
url.hash = "";
|
|
185
|
+
return url.toString();
|
|
186
|
+
}
|
|
4
187
|
export {
|
|
5
188
|
createNativeSpaceClient
|
|
6
189
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddedWhiteboard.d.ts","sourceRoot":"","sources":["../../src/components/EmbeddedWhiteboard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,gCAAgC,EAAwC,MAAM,qCAAqC,CAAC;AAE7J,OAAO,
|
|
1
|
+
{"version":3,"file":"EmbeddedWhiteboard.d.ts","sourceRoot":"","sources":["../../src/components/EmbeddedWhiteboard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,gCAAgC,EAAwC,MAAM,qCAAqC,CAAC;AAE7J,OAAO,EAAyF,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMrJ,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IACnK,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACvH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9J;AAED,eAAO,MAAM,uCAAuC;;;;;;;;;;;;EAYlD,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,uBAAuB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwKlR"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { NativeParticipant as Participant } from "../ui/native-types";
|
|
2
1
|
import type { NativeMediaStreamTrack } from "../media/native-webrtc";
|
|
3
2
|
export declare function shouldRenderNativeMediaTrack({ participant, track, mediaKind }: {
|
|
4
|
-
participant:
|
|
3
|
+
participant: {
|
|
4
|
+
readonly videoEnabled: boolean;
|
|
5
|
+
} | null;
|
|
5
6
|
track: MediaStreamTrack | NativeMediaStreamTrack | null | undefined;
|
|
6
7
|
mediaKind?: "camera" | "screen-share";
|
|
7
8
|
}): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-media-visibility.d.ts","sourceRoot":"","sources":["../../src/components/native-media-visibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"native-media-visibility.d.ts","sourceRoot":"","sources":["../../src/components/native-media-visibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,wBAAgB,4BAA4B,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAoB,EAAE,EAAE;IAAE,WAAW,EAAE;QAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,IAAI,GAAG,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAA;CAAE,GAAG,OAAO,CAc1Q"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runs the Android foreground service for as long as the person is in the call, so the microphone
|
|
3
|
+
* and camera keep working in the background. It starts again when the microphone or camera turns on,
|
|
4
|
+
* because that's when the person has granted the permission the service declares, and on every return
|
|
5
|
+
* to the foreground, because Android can refuse a start made while the app is in the background.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useAndroidCallService(): void;
|
|
8
|
+
//# sourceMappingURL=useAndroidCallService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAndroidCallService.d.ts","sourceRoot":"","sources":["../../src/components/useAndroidCallService.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CA6B5C"}
|
package/dist/dev.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Development-only seams for a state harness and parity checks. Import this entry behind `__DEV__`
|
|
3
|
+
* with `require`, so Metro drops it, and everything only it reaches, from release bundles.
|
|
4
|
+
*/
|
|
5
|
+
export { setDevScenario } from "./frame/dev-scenario";
|
|
6
|
+
export type { DevScenario } from "./frame/dev-scenario";
|
|
7
|
+
export type { AudioRoute, AudioRouteKind, AudioRoutes } from "./dock/audio-route";
|
|
8
|
+
export { setMeasurementRegistry } from "./frame/measurement";
|
|
9
|
+
export type { MeasuredFrame, Measurement, MeasurementRegistry } from "./frame/measurement";
|
|
10
|
+
//# sourceMappingURL=dev.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/dev.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
import { View } from "react-native";
|
|
3
|
+
import type { Arrangement } from "../frame/regions";
|
|
4
|
+
export type DockProps = {
|
|
5
|
+
readonly arrangement: Arrangement;
|
|
6
|
+
readonly microphoneOn: boolean;
|
|
7
|
+
readonly cameraOn: boolean;
|
|
8
|
+
readonly onToggleMicrophone: () => void;
|
|
9
|
+
readonly onToggleCamera: () => void;
|
|
10
|
+
readonly onOpenMore: () => void;
|
|
11
|
+
readonly onLeave: () => void;
|
|
12
|
+
readonly moreOpen: boolean;
|
|
13
|
+
/** Set only when Leave opens a menu (hosts), so others hear a plain button. */
|
|
14
|
+
readonly leaveOpen?: boolean;
|
|
15
|
+
readonly moreRef: RefObject<View | null>;
|
|
16
|
+
readonly leaveRef: RefObject<View | null>;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The call controls (`.dock`): microphone, camera, audio output with its name under it (R1),
|
|
20
|
+
* More and Leave. Spread across the phone in portrait, centred with 14 pt gaps in landscape.
|
|
21
|
+
*/
|
|
22
|
+
export declare const Dock: import("react").MemoExoticComponent<({ arrangement, microphoneOn, cameraOn, onToggleMicrophone, onToggleCamera, onOpenMore, onLeave, moreOpen, leaveOpen, moreRef, leaveRef }: DockProps) => import("react").JSX.Element>;
|
|
23
|
+
//# sourceMappingURL=Dock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dock.d.ts","sourceRoot":"","sources":["../../src/dock/Dock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvF,OAAO,EAAc,IAAI,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQpD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,IAAI,iLAAgK,SAAS,iCAexL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RefObject } from "react";
|
|
2
|
+
import type { View } from "react-native";
|
|
3
|
+
export type LeaveMenuProps = {
|
|
4
|
+
readonly open: boolean;
|
|
5
|
+
readonly onClose: () => void;
|
|
6
|
+
readonly anchorRef: RefObject<View | null>;
|
|
7
|
+
readonly onLeave: () => void;
|
|
8
|
+
readonly onEnd: () => void;
|
|
9
|
+
};
|
|
10
|
+
/** A host's Leave button asks whether to leave alone or end the call for everyone. */
|
|
11
|
+
export declare function LeaveMenu({ open, onClose, anchorRef, onLeave, onEnd }: LeaveMenuProps): React.JSX.Element | null;
|
|
12
|
+
//# sourceMappingURL=LeaveMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeaveMenu.d.ts","sourceRoot":"","sources":["../../src/dock/LeaveMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAOhH"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
import { View } from "react-native";
|
|
3
|
+
export type MoreSheetProps = {
|
|
4
|
+
readonly open: boolean;
|
|
5
|
+
readonly onClose: () => void;
|
|
6
|
+
readonly onOpenPeople: () => void;
|
|
7
|
+
readonly onOpenChat: () => void;
|
|
8
|
+
/** The call's link; without it the sheet leaves out Copy link and Share link. */
|
|
9
|
+
readonly inviteLink?: string;
|
|
10
|
+
readonly returnFocusRef?: RefObject<View | null>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* More (`#more`): raise hand and reactions on top, then the call's link, recording for hosts,
|
|
14
|
+
* Chat, People and the stage layout. Actions that change the call close the sheet; copying keeps it open.
|
|
15
|
+
*/
|
|
16
|
+
export declare function MoreSheet({ open, onClose, onOpenPeople, onOpenChat, inviteLink, returnFocusRef }: MoreSheetProps): React.JSX.Element;
|
|
17
|
+
//# sourceMappingURL=MoreSheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoreSheet.d.ts","sourceRoot":"","sources":["../../src/dock/MoreSheet.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAgD,IAAI,EAAE,MAAM,cAAc,CAAC;AAoBlF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAChC,iFAAiF;IACjF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CAClD,CAAC;AAYF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+CpI"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reactions a person sends (F12), floating up from the lower middle of their tile. Mount it inside
|
|
3
|
+
* the tile; it draws nothing while that person has no reaction showing.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ReactionBurst: import("react").MemoExoticComponent<({ participantId }: {
|
|
6
|
+
readonly participantId: string;
|
|
7
|
+
}) => React.JSX.Element | null>;
|
|
8
|
+
//# sourceMappingURL=ReactionBurst.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactionBurst.d.ts","sourceRoot":"","sources":["../../src/dock/ReactionBurst.tsx"],"names":[],"mappings":"AAWA;;;GAGG;AACH,eAAO,MAAM,aAAa,0DAAkD;IAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAAE,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAUvI,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RefObject } from "react";
|
|
2
|
+
import { type View } from "react-native";
|
|
3
|
+
import { type AudioOutput } from "./audio-route";
|
|
4
|
+
export type RoutePickerProps = {
|
|
5
|
+
readonly open: boolean;
|
|
6
|
+
readonly onClose: () => void;
|
|
7
|
+
readonly onSelect: (id: string) => void;
|
|
8
|
+
readonly output: AudioOutput;
|
|
9
|
+
readonly anchorRef: RefObject<View | null>;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The audio output choice once a headset joins the earpiece and the speaker: a menu next to the
|
|
13
|
+
* button on iOS, where the mockup draws the system route menu, and a sheet on Android.
|
|
14
|
+
*/
|
|
15
|
+
export declare function RoutePicker({ open, onClose, onSelect, output, anchorRef }: RoutePickerProps): React.JSX.Element | null;
|
|
16
|
+
//# sourceMappingURL=RoutePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoutePicker.d.ts","sourceRoot":"","sources":["../../src/dock/RoutePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CAC5C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAoBtH"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { IconName } from "../icons/Icon";
|
|
2
|
+
export type AudioRouteKind = "earpiece" | "speaker" | "bluetooth" | "wired";
|
|
3
|
+
/** One place the call's sound can play. Bluetooth and wired headsets carry their device name. */
|
|
4
|
+
export type AudioRoute = {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly kind: AudioRouteKind;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
};
|
|
9
|
+
export type AudioRoutes = {
|
|
10
|
+
readonly routes: readonly AudioRoute[];
|
|
11
|
+
readonly selected: string;
|
|
12
|
+
};
|
|
13
|
+
export type AudioOutput = AudioRoutes & {
|
|
14
|
+
readonly current: AudioRoute;
|
|
15
|
+
readonly select: (id: string) => Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export declare const routeIcons: Readonly<Record<AudioRouteKind, IconName>>;
|
|
18
|
+
/** The mockup's `ROUTEN`: the phone's own speaker is "iPhone" on iOS and "Phone" on Android. */
|
|
19
|
+
export declare function routeName(route: AudioRoute): string;
|
|
20
|
+
/**
|
|
21
|
+
* The audio output button's state (R1), from the SDK's native route module. Null when the app's
|
|
22
|
+
* native build doesn't include the module yet, so the dock leaves the button out.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useAudioOutput(): AudioOutput | null;
|
|
25
|
+
//# sourceMappingURL=audio-route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-route.d.ts","sourceRoot":"","sources":["../../src/dock/audio-route.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAE5E,iGAAiG;AACjG,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvG,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD,CAAC;AAaF,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAA8E,CAAC;AAEjJ,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAInD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CA2BnD"}
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Permission } from "../toasts/CallEventToasts";
|
|
2
|
+
export type CallFrameProps = {
|
|
3
|
+
readonly displayName?: string;
|
|
4
|
+
readonly callName?: string;
|
|
5
|
+
readonly inviteLink?: string;
|
|
6
|
+
readonly onLeave?: () => void;
|
|
7
|
+
readonly onOpenSettings?: (permission: Permission) => void;
|
|
8
|
+
readonly resumedAfterSettings?: Permission;
|
|
9
|
+
readonly onRejoin: () => void;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The call's frame: header, stage and dock regions, then the sheets layer, the limbo and status
|
|
13
|
+
* overlays, the menus layer and the toasts layer, each inside the safe area for the current
|
|
14
|
+
* arrangement. Each region lives in its own folder so the part lanes can work in parallel.
|
|
15
|
+
*/
|
|
16
|
+
export declare function CallFrame({ displayName, callName, inviteLink, onLeave, onOpenSettings, onRejoin, resumedAfterSettings }: CallFrameProps): React.JSX.Element;
|
|
17
|
+
//# sourceMappingURL=CallFrame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CallFrame.d.ts","sourceRoot":"","sources":["../../src/frame/CallFrame.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAQhF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,WAAW,EAAE,QAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4HpK"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SpaceClient } from "@q9labsai/chalk-client";
|
|
2
|
+
import type { ColorScheme } from "../theme/tokens";
|
|
3
|
+
import type { Permission } from "../toasts/CallEventToasts";
|
|
4
|
+
export type ChalkProps = {
|
|
5
|
+
/** The call's client. The app creates it with `createNativeSpaceClient` and disposes it; `Chalk` joins it. */
|
|
6
|
+
readonly client: SpaceClient;
|
|
7
|
+
/** The name others see. Without it the server's stored name is used. */
|
|
8
|
+
readonly displayName?: string;
|
|
9
|
+
/** The call's name in the header, such as "Q9 team". */
|
|
10
|
+
readonly callName?: string;
|
|
11
|
+
/** The call's link, which More and the call details offer to copy, share and show as a QR code. */
|
|
12
|
+
readonly inviteLink?: string;
|
|
13
|
+
/** Dark by default. Set it with `onColorSchemeChange` to keep the person's choice. */
|
|
14
|
+
readonly colorScheme?: ColorScheme;
|
|
15
|
+
readonly onColorSchemeChange?: (colorScheme: ColorScheme) => void;
|
|
16
|
+
/** Call sounds, on by default. Set it with `onSoundsEnabledChange` to keep the person's choice. */
|
|
17
|
+
readonly soundsEnabled?: boolean;
|
|
18
|
+
readonly onSoundsEnabledChange?: (enabled: boolean) => void;
|
|
19
|
+
/** Called when the person is done with the call: Home on the page that shows after they leave, the call ends, or it fails. */
|
|
20
|
+
readonly onLeave?: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* Called just before Open Settings takes the person to the system settings to allow the microphone
|
|
23
|
+
* or camera. iOS restarts the app when a permission changes, so store the call here and, on the
|
|
24
|
+
* next launch, open it again with `resumedAfterSettings`.
|
|
25
|
+
*/
|
|
26
|
+
readonly onOpenSettings?: (permission: Permission) => void;
|
|
27
|
+
/** Set when the app reopens the call after Open Settings; the call says "Rejoining" and then that it can use the device now. */
|
|
28
|
+
readonly resumedAfterSettings?: Permission;
|
|
29
|
+
/**
|
|
30
|
+
* Called when the person chooses Rejoin or Try again on the page that shows after they leave, the call
|
|
31
|
+
* ends, or it fails. That client can't join again: give the arrival back, then render `Chalk` with a new client.
|
|
32
|
+
*/
|
|
33
|
+
readonly onRejoin: () => void;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* The drop-in call view. It fills the screen it's given, joins the call muted and with the camera
|
|
37
|
+
* off, and draws everything inside the safe area in portrait, landscape and on iPad.
|
|
38
|
+
*/
|
|
39
|
+
export declare function Chalk({ client, colorScheme, onColorSchemeChange, soundsEnabled, onSoundsEnabledChange, ...frame }: ChalkProps): React.JSX.Element;
|
|
40
|
+
//# sourceMappingURL=Chalk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chalk.d.ts","sourceRoot":"","sources":["../../src/frame/Chalk.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAS1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAO5D,MAAM,MAAM,UAAU,GAAG;IACvB,8GAA8G;IAC9G,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mGAAmG;IACnG,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAClE,mGAAmG;IACnG,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,8HAA8H;IAC9H,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3D,gIAAgI;IAChI,QAAQ,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,qBAAqB,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAyBjJ"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* While `active`, Android's back gesture calls `onBack` and stops there. Handlers run newest
|
|
3
|
+
* first, so the sheet or menu opened last closes first.
|
|
4
|
+
*/
|
|
5
|
+
export declare function useBackHandler(active: boolean, onBack: () => void): void;
|
|
6
|
+
//# sourceMappingURL=back-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"back-handler.d.ts","sourceRoot":"","sources":["../../src/frame/back-handler.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAWxE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { ArrivalState } from "../status/ChalkArrival";
|
|
3
|
+
import type { CallOutcome } from "../status/StatusPage";
|
|
4
|
+
import type { AudioRoutes } from "../dock/audio-route";
|
|
5
|
+
/** UI-only state a development harness forces on the call. Nothing sets it in a real call. */
|
|
6
|
+
export type DevScenario = {
|
|
7
|
+
/** Opens this sheet as if the user had opened it; the user can still close it. */
|
|
8
|
+
readonly sheet?: "more" | "people" | "chat" | "details" | "route";
|
|
9
|
+
/** Opens this menu as if the user had opened it. */
|
|
10
|
+
readonly menu?: "leave" | "route";
|
|
11
|
+
/** Content drawn in a tile in place of the camera, keyed by participant id. */
|
|
12
|
+
readonly videoSlots?: Readonly<Record<string, ReactNode>>;
|
|
13
|
+
/** Shows a call state the fixture client can't reach: a screen before joining, a status page, or a phone call holding the call. */
|
|
14
|
+
readonly callState?: ArrivalState | CallOutcome | "hold";
|
|
15
|
+
/** Content drawn in place of a person's shared screen, keyed by the sharer's participant id. */
|
|
16
|
+
readonly screenSlots?: Readonly<Record<string, ReactNode>>;
|
|
17
|
+
/** The shared screen's width over height (S1 to S4). A real share is drawn as 16:9. */
|
|
18
|
+
readonly shareAspect?: number;
|
|
19
|
+
/** Spotlight (G1) or Grid (G2), as if the user had chosen it. */
|
|
20
|
+
readonly layout?: "spotlight" | "grid";
|
|
21
|
+
/** Pins this participant, as if the user had pinned them. */
|
|
22
|
+
readonly pinned?: string;
|
|
23
|
+
/** Audio outputs in place of the device's, such as a Bluetooth headset on a simulator (K3). */
|
|
24
|
+
readonly audioRoutes?: AudioRoutes;
|
|
25
|
+
};
|
|
26
|
+
export declare function setDevScenario(next: DevScenario | null): void;
|
|
27
|
+
export declare function useDevScenario(): DevScenario;
|
|
28
|
+
//# sourceMappingURL=dev-scenario.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-scenario.d.ts","sourceRoot":"","sources":["../../src/frame/dev-scenario.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,8FAA8F;AAC9F,MAAM,MAAM,WAAW,GAAG;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAClE,oDAAoD;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAClC,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1D,mIAAmI;IACnI,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,MAAM,CAAC;IACzD,gGAAgG;IAChG,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,uFAAuF;IACvF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACvC,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,+FAA+F;IAC/F,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC,CAAC;AAMF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAG7D;AAOD,wBAAgB,cAAc,IAAI,WAAW,CAM5C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type EdgeInsets } from "react-native-safe-area-context";
|
|
3
|
+
import { type Arrangement } from "./regions";
|
|
4
|
+
export type DeviceLayout = {
|
|
5
|
+
readonly arrangement: Arrangement;
|
|
6
|
+
/** True for `portrait` and `landscape`: the phone look (bottom sheets, 52 pt dock, 48 pt menu rows). */
|
|
7
|
+
readonly phone: boolean;
|
|
8
|
+
readonly width: number;
|
|
9
|
+
readonly height: number;
|
|
10
|
+
readonly insets: EdgeInsets;
|
|
11
|
+
};
|
|
12
|
+
export declare function DeviceLayoutProvider({ children }: {
|
|
13
|
+
readonly children: ReactNode;
|
|
14
|
+
}): React.JSX.Element;
|
|
15
|
+
export declare function useDeviceLayout(): DeviceLayout;
|
|
16
|
+
//# sourceMappingURL=device-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-layout.d.ts","sourceRoot":"","sources":["../../src/frame/device-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,wGAAwG;IACxG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B,CAAC;AAIF,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAQtG;AAED,wBAAgB,eAAe,IAAI,YAAY,CAI9C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
import { type StyleProp, type TextStyle, type ViewStyle } from "react-native";
|
|
3
|
+
export type MeasuredFrame = {
|
|
4
|
+
readonly x: number;
|
|
5
|
+
readonly y: number;
|
|
6
|
+
readonly width: number;
|
|
7
|
+
readonly height: number;
|
|
8
|
+
};
|
|
9
|
+
/** A host view's frame in window points and the style it declares at rest (animated values excluded). */
|
|
10
|
+
export type Measurement = {
|
|
11
|
+
readonly frame: MeasuredFrame;
|
|
12
|
+
readonly style: TextStyle;
|
|
13
|
+
};
|
|
14
|
+
/** Receives each measured testID while it's mounted; returns the function that forgets it. */
|
|
15
|
+
export type MeasurementRegistry = (testID: string, measure: () => Promise<Measurement>) => () => void;
|
|
16
|
+
type MeasurableNode = {
|
|
17
|
+
measureInWindow: (callback: (x: number, y: number, width: number, height: number) => void) => void;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Development tooling only: the app's parity harness installs a registry before it renders
|
|
21
|
+
* `Chalk`, and the call's regions and primitives report their frames and declared styles to it.
|
|
22
|
+
* Nothing is measured while no registry is installed.
|
|
23
|
+
*/
|
|
24
|
+
export declare function setMeasurementRegistry(next: MeasurementRegistry | null): void;
|
|
25
|
+
/** A ref for the host view that carries `testID`; attach it to that view. */
|
|
26
|
+
export declare function useMeasuredRef<TNode extends MeasurableNode>(testID: string | undefined, style: StyleProp<ViewStyle | TextStyle>): RefObject<TNode | null>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=measurement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measurement.d.ts","sourceRoot":"","sources":["../../src/frame/measurement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1F,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExH,yGAAyG;AACzG,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEvF,8FAA8F;AAC9F,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,CAAC;AAEtG,KAAK,cAAc,GAAG;IAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAA;CAAE,CAAC;AAI7H;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAE7E;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,KAAK,SAAS,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,CAkBzJ"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
/** Layers above the call, bottom to top. Sheets sit under the limbo and status overlays; menus and toasts sit above everything. */
|
|
3
|
+
export type PortalLayer = "sheets" | "menus" | "toasts";
|
|
4
|
+
export declare function PortalProvider({ children }: {
|
|
5
|
+
readonly children: ReactNode;
|
|
6
|
+
}): React.JSX.Element;
|
|
7
|
+
/**
|
|
8
|
+
* Renders its children in one of the frame's layers, so a sheet or menu opened deep in the tree
|
|
9
|
+
* draws above the whole call. Context providers between `<Chalk>` and the portal don't reach the
|
|
10
|
+
* children; pass what they need as props.
|
|
11
|
+
*/
|
|
12
|
+
export declare function Portal({ layer, children }: {
|
|
13
|
+
readonly layer: PortalLayer;
|
|
14
|
+
readonly children: ReactNode;
|
|
15
|
+
}): null;
|
|
16
|
+
export declare function PortalHost({ layer }: {
|
|
17
|
+
readonly layer: PortalLayer;
|
|
18
|
+
}): React.JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* How many portals a layer holds. Portals publish on every render, so an ancestor of a portal must
|
|
21
|
+
* read this count, not the entries, or each publish re-renders the portal and loops.
|
|
22
|
+
*/
|
|
23
|
+
export declare function usePortalCount(layer: PortalLayer): number;
|
|
24
|
+
//# sourceMappingURL=portal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../src/frame/portal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgG,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAErI,mIAAmI;AACnI,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAwCxD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAGhG;AAUD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAY/G;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CASxF;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAOzD"}
|