@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.
Files changed (544) hide show
  1. package/README.md +134 -29
  2. package/android/build.gradle +35 -0
  3. package/android/compatibility/ModuleApiCompatibility.java +215 -0
  4. package/android/src/main/AndroidManifest.xml +2 -1
  5. package/android/src/main/java/ai/q9labs/chalk/reactnative/ChalkSpaceForegroundService.java +105 -31
  6. package/android/src/main/kotlin/ai/q9labs/chalk/reactnative/ChalkAndroidConnectionServicePackage.kt +2 -0
  7. package/android/src/main/kotlin/ai/q9labs/chalk/reactnative/ChalkAudioRouteModule.kt +137 -0
  8. package/android/src/main/kotlin/ai/q9labs/chalk/reactnative/ChalkCallServiceModule.kt +32 -0
  9. package/android/src/main/kotlin/ai/q9labs/chalk/reactnative/CommunicationDeviceListener.kt +23 -0
  10. package/android/src/test/kotlin/ai/q9labs/chalk/compatibility/UnsafeSignatures.kt +29 -0
  11. package/dist/android/call-service.d.ts +4 -0
  12. package/dist/android/call-service.d.ts.map +1 -0
  13. package/dist/avatar/FaceAvatar.d.ts +19 -0
  14. package/dist/avatar/FaceAvatar.d.ts.map +1 -0
  15. package/dist/avatar/tile-avatar-size.d.ts +3 -0
  16. package/dist/avatar/tile-avatar-size.d.ts.map +1 -0
  17. package/dist/chunk-GYVZSOGQ.js +30 -0
  18. package/dist/chunk-IHE6EA3T.js +25 -0
  19. package/dist/chunk-OIBT2FNM.js +1479 -0
  20. package/dist/client.d.ts +1 -5
  21. package/dist/client.d.ts.map +1 -1
  22. package/dist/client.js +185 -2
  23. package/dist/components/EmbeddedWhiteboard.d.ts.map +1 -1
  24. package/dist/components/native-media-visibility.d.ts +3 -2
  25. package/dist/components/native-media-visibility.d.ts.map +1 -1
  26. package/dist/components/useAndroidCallService.d.ts +8 -0
  27. package/dist/components/useAndroidCallService.d.ts.map +1 -0
  28. package/dist/dev.d.ts +10 -0
  29. package/dist/dev.d.ts.map +1 -0
  30. package/dist/dev.js +10 -0
  31. package/dist/dock/Dock.d.ts +23 -0
  32. package/dist/dock/Dock.d.ts.map +1 -0
  33. package/dist/dock/LeaveMenu.d.ts +12 -0
  34. package/dist/dock/LeaveMenu.d.ts.map +1 -0
  35. package/dist/dock/MoreSheet.d.ts +17 -0
  36. package/dist/dock/MoreSheet.d.ts.map +1 -0
  37. package/dist/dock/ReactionBurst.d.ts +8 -0
  38. package/dist/dock/ReactionBurst.d.ts.map +1 -0
  39. package/dist/dock/RoutePicker.d.ts +16 -0
  40. package/dist/dock/RoutePicker.d.ts.map +1 -0
  41. package/dist/dock/audio-route.d.ts +25 -0
  42. package/dist/dock/audio-route.d.ts.map +1 -0
  43. package/dist/error-YOPTEH5N.wav +0 -0
  44. package/dist/frame/CallFrame.d.ts +17 -0
  45. package/dist/frame/CallFrame.d.ts.map +1 -0
  46. package/dist/frame/Chalk.d.ts +40 -0
  47. package/dist/frame/Chalk.d.ts.map +1 -0
  48. package/dist/frame/back-handler.d.ts +6 -0
  49. package/dist/frame/back-handler.d.ts.map +1 -0
  50. package/dist/frame/dev-scenario.d.ts +28 -0
  51. package/dist/frame/dev-scenario.d.ts.map +1 -0
  52. package/dist/frame/device-layout.d.ts +16 -0
  53. package/dist/frame/device-layout.d.ts.map +1 -0
  54. package/dist/frame/measurement.d.ts +28 -0
  55. package/dist/frame/measurement.d.ts.map +1 -0
  56. package/dist/frame/portal.d.ts +24 -0
  57. package/dist/frame/portal.d.ts.map +1 -0
  58. package/dist/frame/preferences.d.ts +21 -0
  59. package/dist/frame/preferences.d.ts.map +1 -0
  60. package/dist/frame/regions.d.ts +25 -0
  61. package/dist/frame/regions.d.ts.map +1 -0
  62. package/dist/hand-DFWVXPH2.wav +0 -0
  63. package/dist/haptics/haptics.d.ts +12 -0
  64. package/dist/haptics/haptics.d.ts.map +1 -0
  65. package/dist/header/CallDetailsSheet.d.ts +18 -0
  66. package/dist/header/CallDetailsSheet.d.ts.map +1 -0
  67. package/dist/header/Header.d.ts +17 -0
  68. package/dist/header/Header.d.ts.map +1 -0
  69. package/dist/header/QrCode.d.ts +6 -0
  70. package/dist/header/QrCode.d.ts.map +1 -0
  71. package/dist/icons/Icon.d.ts +12 -0
  72. package/dist/icons/Icon.d.ts.map +1 -0
  73. package/dist/icons/icon-element.d.ts +24 -0
  74. package/dist/icons/icon-element.d.ts.map +1 -0
  75. package/dist/icons/icon-paths.d.ts +530 -0
  76. package/dist/icons/icon-paths.d.ts.map +1 -0
  77. package/dist/index.d.ts +6 -9
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +2956 -38
  80. package/dist/join-Z6RL5AHE.wav +0 -0
  81. package/dist/knock-4VBQSHK4.wav +0 -0
  82. package/dist/leave-MQLZOWQD.wav +0 -0
  83. package/dist/limbo/Limbo.d.ts +25 -0
  84. package/dist/limbo/Limbo.d.ts.map +1 -0
  85. package/dist/limbo/Veil.d.ts +10 -0
  86. package/dist/limbo/Veil.d.ts.map +1 -0
  87. package/dist/media/native-capture-error.d.ts +7 -0
  88. package/dist/media/native-capture-error.d.ts.map +1 -0
  89. package/dist/message-6Y6WJGTB.wav +0 -0
  90. package/dist/motion/MovingFrame.d.ts +36 -0
  91. package/dist/motion/MovingFrame.d.ts.map +1 -0
  92. package/dist/motion/motion.d.ts +82 -0
  93. package/dist/motion/motion.d.ts.map +1 -0
  94. package/dist/motion/presence.d.ts +6 -0
  95. package/dist/motion/presence.d.ts.map +1 -0
  96. package/dist/motion/press.d.ts +15 -0
  97. package/dist/motion/press.d.ts.map +1 -0
  98. package/dist/mute-H5SJFXVI.wav +0 -0
  99. package/dist/primitives/BottomSheet.d.ts +36 -0
  100. package/dist/primitives/BottomSheet.d.ts.map +1 -0
  101. package/dist/primitives/ChalkText.d.ts +13 -0
  102. package/dist/primitives/ChalkText.d.ts.map +1 -0
  103. package/dist/primitives/CopyButton.d.ts +11 -0
  104. package/dist/primitives/CopyButton.d.ts.map +1 -0
  105. package/dist/primitives/IconButton.d.ts +26 -0
  106. package/dist/primitives/IconButton.d.ts.map +1 -0
  107. package/dist/primitives/Menu.d.ts +39 -0
  108. package/dist/primitives/Menu.d.ts.map +1 -0
  109. package/dist/primitives/NameTag.d.ts +19 -0
  110. package/dist/primitives/NameTag.d.ts.map +1 -0
  111. package/dist/primitives/PillButton.d.ts +19 -0
  112. package/dist/primitives/PillButton.d.ts.map +1 -0
  113. package/dist/primitives/SegmentedControl.d.ts +17 -0
  114. package/dist/primitives/SegmentedControl.d.ts.map +1 -0
  115. package/dist/primitives/SheetGroup.d.ts +24 -0
  116. package/dist/primitives/SheetGroup.d.ts.map +1 -0
  117. package/dist/primitives/Switch.d.ts +9 -0
  118. package/dist/primitives/Switch.d.ts.map +1 -0
  119. package/dist/primitives/TileShell.d.ts +18 -0
  120. package/dist/primitives/TileShell.d.ts.map +1 -0
  121. package/dist/primitives/announce.d.ts +3 -0
  122. package/dist/primitives/announce.d.ts.map +1 -0
  123. package/dist/primitives/menu-placement.d.ts +32 -0
  124. package/dist/primitives/menu-placement.d.ts.map +1 -0
  125. package/dist/primitives/toast/Toast.d.ts +8 -0
  126. package/dist/primitives/toast/Toast.d.ts.map +1 -0
  127. package/dist/primitives/toast/ToastStack.d.ts +18 -0
  128. package/dist/primitives/toast/ToastStack.d.ts.map +1 -0
  129. package/dist/primitives/toast/toast-store.d.ts +39 -0
  130. package/dist/primitives/toast/toast-store.d.ts.map +1 -0
  131. package/dist/recording-Q4GB77Y4.wav +0 -0
  132. package/dist/sheets/people-chat/ChatNotices.d.ts +14 -0
  133. package/dist/sheets/people-chat/ChatNotices.d.ts.map +1 -0
  134. package/dist/sheets/people-chat/ChatTab.d.ts +6 -0
  135. package/dist/sheets/people-chat/ChatTab.d.ts.map +1 -0
  136. package/dist/sheets/people-chat/Composer.d.ts +7 -0
  137. package/dist/sheets/people-chat/Composer.d.ts.map +1 -0
  138. package/dist/sheets/people-chat/PeopleChatSheet.d.ts +17 -0
  139. package/dist/sheets/people-chat/PeopleChatSheet.d.ts.map +1 -0
  140. package/dist/sheets/people-chat/PeopleTab.d.ts +3 -0
  141. package/dist/sheets/people-chat/PeopleTab.d.ts.map +1 -0
  142. package/dist/sheets/people-chat/PhotoViewer.d.ts +19 -0
  143. package/dist/sheets/people-chat/PhotoViewer.d.ts.map +1 -0
  144. package/dist/sheets/people-chat/TextField.d.ts +4 -0
  145. package/dist/sheets/people-chat/TextField.d.ts.map +1 -0
  146. package/dist/sheets/people-chat/attachments.d.ts +33 -0
  147. package/dist/sheets/people-chat/attachments.d.ts.map +1 -0
  148. package/dist/sheets/people-chat/chat-model.d.ts +64 -0
  149. package/dist/sheets/people-chat/chat-model.d.ts.map +1 -0
  150. package/dist/sheets/people-chat/people-model.d.ts +43 -0
  151. package/dist/sheets/people-chat/people-model.d.ts.map +1 -0
  152. package/dist/sounds/sounds.d.ts +33 -0
  153. package/dist/sounds/sounds.d.ts.map +1 -0
  154. package/dist/space-client/create-native-space-client.d.ts +0 -4
  155. package/dist/space-client/create-native-space-client.d.ts.map +1 -1
  156. package/dist/space-client/random-uuid.d.ts +7 -0
  157. package/dist/space-client/random-uuid.d.ts.map +1 -0
  158. package/dist/stage/ContentTile.d.ts +18 -0
  159. package/dist/stage/ContentTile.d.ts.map +1 -0
  160. package/dist/stage/ParticipantTile.d.ts +18 -0
  161. package/dist/stage/ParticipantTile.d.ts.map +1 -0
  162. package/dist/stage/Stage.d.ts +14 -0
  163. package/dist/stage/Stage.d.ts.map +1 -0
  164. package/dist/stage/TileSheet.d.ts +12 -0
  165. package/dist/stage/TileSheet.d.ts.map +1 -0
  166. package/dist/stage/camera.d.ts +7 -0
  167. package/dist/stage/camera.d.ts.map +1 -0
  168. package/dist/stage/layout.d.ts +57 -0
  169. package/dist/stage/layout.d.ts.map +1 -0
  170. package/dist/stage/space-selector.d.ts +10 -0
  171. package/dist/stage/space-selector.d.ts.map +1 -0
  172. package/dist/stage/stage-view.d.ts +23 -0
  173. package/dist/stage/stage-view.d.ts.map +1 -0
  174. package/dist/status/CallOverlays.d.ts +17 -0
  175. package/dist/status/CallOverlays.d.ts.map +1 -0
  176. package/dist/status/ChalkArrival.d.ts +24 -0
  177. package/dist/status/ChalkArrival.d.ts.map +1 -0
  178. package/dist/status/StatusPage.d.ts +14 -0
  179. package/dist/status/StatusPage.d.ts.map +1 -0
  180. package/dist/status/call-screen.d.ts +20 -0
  181. package/dist/status/call-screen.d.ts.map +1 -0
  182. package/dist/test-VD2KAM4D.wav +0 -0
  183. package/dist/theme/theme.d.ts +15 -0
  184. package/dist/theme/theme.d.ts.map +1 -0
  185. package/dist/theme/tokens.d.ts +248 -0
  186. package/dist/theme/tokens.d.ts.map +1 -0
  187. package/dist/toasts/CallEventToasts.d.ts +21 -0
  188. package/dist/toasts/CallEventToasts.d.ts.map +1 -0
  189. package/dist/toasts/notices.d.ts +34 -0
  190. package/dist/toasts/notices.d.ts.map +1 -0
  191. package/dist/ui/ChalkUI.d.ts +12 -0
  192. package/dist/ui/ChalkUI.d.ts.map +1 -0
  193. package/dist/ui.d.ts +25 -0
  194. package/dist/ui.d.ts.map +1 -0
  195. package/dist/ui.js +77 -0
  196. package/dist/unmute-2XR2LICU.wav +0 -0
  197. package/embedded/chalk-whiteboard/asset-manifest.json +2 -2
  198. package/embedded/chalk-whiteboard/renderer.js +510 -510
  199. package/ios/ChalkAudioRouteModule.swift +93 -0
  200. package/ios/ChalkAudioRouteModuleBridge.m +9 -0
  201. package/package.json +46 -76
  202. package/src/android/call-service.ts +19 -0
  203. package/src/avatar/FaceAvatar.tsx +145 -0
  204. package/src/avatar/tile-avatar-size.ts +4 -0
  205. package/src/client.ts +1 -5
  206. package/src/components/EmbeddedWhiteboard.tsx +14 -71
  207. package/src/components/native-media-visibility.ts +1 -2
  208. package/src/components/useAndroidCallService.ts +41 -0
  209. package/src/dev.ts +9 -0
  210. package/src/dock/Dock.tsx +95 -0
  211. package/src/dock/LeaveMenu.tsx +21 -0
  212. package/src/dock/MoreSheet.tsx +233 -0
  213. package/src/dock/ReactionBurst.tsx +55 -0
  214. package/src/dock/RoutePicker.tsx +42 -0
  215. package/src/dock/audio-route.ts +69 -0
  216. package/src/frame/CallFrame.tsx +209 -0
  217. package/src/frame/Chalk.tsx +83 -0
  218. package/src/frame/back-handler.ts +19 -0
  219. package/src/frame/dev-scenario.ts +48 -0
  220. package/src/frame/device-layout.tsx +31 -0
  221. package/src/frame/measurement.ts +44 -0
  222. package/src/frame/portal.tsx +107 -0
  223. package/src/frame/preferences.tsx +48 -0
  224. package/src/frame/regions.test.ts +38 -0
  225. package/src/frame/regions.ts +60 -0
  226. package/src/haptics/haptics.ts +19 -0
  227. package/src/header/CallDetailsSheet.tsx +139 -0
  228. package/src/header/Header.tsx +107 -0
  229. package/src/header/QrCode.tsx +34 -0
  230. package/src/icons/Icon.tsx +35 -0
  231. package/src/icons/icon-element.ts +11 -0
  232. package/src/icons/icon-paths.ts +199 -0
  233. package/src/index.ts +6 -9
  234. package/src/limbo/Limbo.tsx +159 -0
  235. package/src/limbo/Veil.tsx +36 -0
  236. package/src/media/native-capture-error.test.ts +19 -0
  237. package/src/media/native-capture-error.ts +13 -0
  238. package/src/motion/MovingFrame.tsx +101 -0
  239. package/src/motion/motion.ts +33 -0
  240. package/src/motion/presence.ts +20 -0
  241. package/src/motion/press.ts +35 -0
  242. package/src/primitives/BottomSheet.tsx +211 -0
  243. package/src/primitives/ChalkText.tsx +23 -0
  244. package/src/primitives/CopyButton.tsx +78 -0
  245. package/src/primitives/IconButton.tsx +90 -0
  246. package/src/primitives/Menu.tsx +212 -0
  247. package/src/primitives/NameTag.tsx +68 -0
  248. package/src/primitives/PillButton.tsx +56 -0
  249. package/src/primitives/SegmentedControl.tsx +55 -0
  250. package/src/primitives/SheetGroup.tsx +72 -0
  251. package/src/primitives/Switch.tsx +39 -0
  252. package/src/primitives/TileShell.tsx +53 -0
  253. package/src/primitives/announce.ts +7 -0
  254. package/src/primitives/menu-placement.test.ts +50 -0
  255. package/src/primitives/menu-placement.ts +43 -0
  256. package/src/primitives/toast/Toast.tsx +50 -0
  257. package/src/primitives/toast/ToastStack.tsx +89 -0
  258. package/src/primitives/toast/toast-store.ts +86 -0
  259. package/src/sheets/people-chat/ChatNotices.tsx +69 -0
  260. package/src/sheets/people-chat/ChatTab.tsx +186 -0
  261. package/src/sheets/people-chat/Composer.tsx +182 -0
  262. package/src/sheets/people-chat/PeopleChatSheet.tsx +100 -0
  263. package/src/sheets/people-chat/PeopleTab.tsx +326 -0
  264. package/src/sheets/people-chat/PhotoViewer.tsx +132 -0
  265. package/src/sheets/people-chat/TextField.tsx +14 -0
  266. package/src/sheets/people-chat/attachments.tsx +183 -0
  267. package/src/sheets/people-chat/chat-model.ts +157 -0
  268. package/src/sheets/people-chat/people-chat-model.test.ts +98 -0
  269. package/src/sheets/people-chat/people-model.ts +68 -0
  270. package/src/sounds/assets/error.wav +0 -0
  271. package/src/sounds/assets/hand.wav +0 -0
  272. package/src/sounds/assets/join.wav +0 -0
  273. package/src/sounds/assets/knock.wav +0 -0
  274. package/src/sounds/assets/leave.wav +0 -0
  275. package/src/sounds/assets/message.wav +0 -0
  276. package/src/sounds/assets/mute.wav +0 -0
  277. package/src/sounds/assets/recording.wav +0 -0
  278. package/src/sounds/assets/test.wav +0 -0
  279. package/src/sounds/assets/unmute.wav +0 -0
  280. package/src/sounds/assets.d.ts +5 -0
  281. package/src/sounds/sounds.ts +50 -0
  282. package/src/space-client/create-native-space-client.ts +20 -181
  283. package/src/space-client/random-uuid.ts +17 -0
  284. package/src/space-client/whiteboard-watchdog.test.ts +23 -0
  285. package/src/stage/ContentTile.tsx +100 -0
  286. package/src/stage/ParticipantTile.tsx +140 -0
  287. package/src/stage/Stage.tsx +152 -0
  288. package/src/stage/TileSheet.tsx +116 -0
  289. package/src/stage/camera.ts +20 -0
  290. package/src/stage/layout.test.ts +77 -0
  291. package/src/stage/layout.ts +226 -0
  292. package/src/stage/space-selector.ts +31 -0
  293. package/src/stage/stage-view.tsx +68 -0
  294. package/src/status/CallOverlays.tsx +47 -0
  295. package/src/status/ChalkArrival.tsx +53 -0
  296. package/src/status/StatusPage.tsx +123 -0
  297. package/src/status/call-screen.test.ts +42 -0
  298. package/src/status/call-screen.ts +29 -0
  299. package/src/theme/theme.tsx +28 -0
  300. package/src/theme/tokens.ts +247 -0
  301. package/src/toasts/CallEventToasts.tsx +192 -0
  302. package/src/toasts/notices.test.ts +92 -0
  303. package/src/toasts/notices.ts +62 -0
  304. package/src/ui/ChalkUI.tsx +49 -0
  305. package/src/ui.ts +24 -0
  306. package/dist/android.d.ts +0 -2
  307. package/dist/android.d.ts.map +0 -1
  308. package/dist/android.js +0 -62
  309. package/dist/chunk-2OS7SSXE.js +0 -552
  310. package/dist/chunk-5DQ4KBRH.js +0 -690
  311. package/dist/chunk-ITLUHTVS.js +0 -5271
  312. package/dist/chunk-JB4LNWVP.js +0 -247
  313. package/dist/components/Chalk.d.ts +0 -79
  314. package/dist/components/Chalk.d.ts.map +0 -1
  315. package/dist/components/ChatMessageList.d.ts +0 -11
  316. package/dist/components/ChatMessageList.d.ts.map +0 -1
  317. package/dist/components/Entrance.d.ts +0 -22
  318. package/dist/components/Entrance.d.ts.map +0 -1
  319. package/dist/components/EntranceView.android.d.ts +0 -4
  320. package/dist/components/EntranceView.android.d.ts.map +0 -1
  321. package/dist/components/EntranceView.d.ts +0 -18
  322. package/dist/components/EntranceView.d.ts.map +0 -1
  323. package/dist/components/EntranceView.ios-pad.d.ts +0 -3
  324. package/dist/components/EntranceView.ios-pad.d.ts.map +0 -1
  325. package/dist/components/EntranceView.ios-phone.d.ts +0 -3
  326. package/dist/components/EntranceView.ios-phone.d.ts.map +0 -1
  327. package/dist/components/EntranceView.macos.d.ts +0 -4
  328. package/dist/components/EntranceView.macos.d.ts.map +0 -1
  329. package/dist/components/FaceAvatar.d.ts +0 -16
  330. package/dist/components/FaceAvatar.d.ts.map +0 -1
  331. package/dist/components/GradientSurface.d.ts +0 -14
  332. package/dist/components/GradientSurface.d.ts.map +0 -1
  333. package/dist/components/MediaView.d.ts +0 -14
  334. package/dist/components/MediaView.d.ts.map +0 -1
  335. package/dist/components/ReactionPicker.d.ts +0 -10
  336. package/dist/components/ReactionPicker.d.ts.map +0 -1
  337. package/dist/components/SpaceView.android.d.ts +0 -2
  338. package/dist/components/SpaceView.android.d.ts.map +0 -1
  339. package/dist/components/SpaceView.d.ts +0 -33
  340. package/dist/components/SpaceView.d.ts.map +0 -1
  341. package/dist/components/SpaceView.ios-pad.d.ts +0 -2
  342. package/dist/components/SpaceView.ios-pad.d.ts.map +0 -1
  343. package/dist/components/SpaceView.ios-phone.d.ts +0 -2
  344. package/dist/components/SpaceView.ios-phone.d.ts.map +0 -1
  345. package/dist/components/SpaceView.macos.d.ts +0 -2
  346. package/dist/components/SpaceView.macos.d.ts.map +0 -1
  347. package/dist/components/SpaceView.shared.d.ts +0 -3
  348. package/dist/components/SpaceView.shared.d.ts.map +0 -1
  349. package/dist/components/episode-diagnostic-render-observer.d.ts +0 -2
  350. package/dist/components/episode-diagnostic-render-observer.d.ts.map +0 -1
  351. package/dist/components/logo/Logo.d.ts +0 -11
  352. package/dist/components/logo/Logo.d.ts.map +0 -1
  353. package/dist/components/native-animation-controller.d.ts +0 -7
  354. package/dist/components/native-animation-controller.d.ts.map +0 -1
  355. package/dist/components/native-chat.d.ts +0 -8
  356. package/dist/components/native-chat.d.ts.map +0 -1
  357. package/dist/components/native-entrance/entrance-controller-store.d.ts +0 -34
  358. package/dist/components/native-entrance/entrance-controller-store.d.ts.map +0 -1
  359. package/dist/components/native-entrance/useEntranceController.d.ts +0 -19
  360. package/dist/components/native-entrance/useEntranceController.d.ts.map +0 -1
  361. package/dist/components/native-joining-loading-animation.d.ts +0 -9
  362. package/dist/components/native-joining-loading-animation.d.ts.map +0 -1
  363. package/dist/components/native-space-view/AppearanceSettings.d.ts +0 -2
  364. package/dist/components/native-space-view/AppearanceSettings.d.ts.map +0 -1
  365. package/dist/components/native-space-view/FeedbackSheet.d.ts +0 -12
  366. package/dist/components/native-space-view/FeedbackSheet.d.ts.map +0 -1
  367. package/dist/components/native-space-view/ParticipantActionSheet.d.ts +0 -9
  368. package/dist/components/native-space-view/ParticipantActionSheet.d.ts.map +0 -1
  369. package/dist/components/native-space-view/SettingsSheet.d.ts +0 -7
  370. package/dist/components/native-space-view/SettingsSheet.d.ts.map +0 -1
  371. package/dist/components/native-space-view/SpaceActionMenu.d.ts +0 -10
  372. package/dist/components/native-space-view/SpaceActionMenu.d.ts.map +0 -1
  373. package/dist/components/native-space-view/SpaceBottomDock.android.d.ts +0 -4
  374. package/dist/components/native-space-view/SpaceBottomDock.android.d.ts.map +0 -1
  375. package/dist/components/native-space-view/SpaceChatAttachment.d.ts +0 -8
  376. package/dist/components/native-space-view/SpaceChatAttachment.d.ts.map +0 -1
  377. package/dist/components/native-space-view/SpaceChatSheet.d.ts +0 -5
  378. package/dist/components/native-space-view/SpaceChatSheet.d.ts.map +0 -1
  379. package/dist/components/native-space-view/SpaceGrid.android.d.ts +0 -8
  380. package/dist/components/native-space-view/SpaceGrid.android.d.ts.map +0 -1
  381. package/dist/components/native-space-view/SpaceMoreSheet.d.ts +0 -7
  382. package/dist/components/native-space-view/SpaceMoreSheet.d.ts.map +0 -1
  383. package/dist/components/native-space-view/SpacePanelSheet.d.ts +0 -5
  384. package/dist/components/native-space-view/SpacePanelSheet.d.ts.map +0 -1
  385. package/dist/components/native-space-view/SpacePeopleSheet.d.ts +0 -5
  386. package/dist/components/native-space-view/SpacePeopleSheet.d.ts.map +0 -1
  387. package/dist/components/native-space-view/SpaceStage.android.d.ts +0 -29
  388. package/dist/components/native-space-view/SpaceStage.android.d.ts.map +0 -1
  389. package/dist/components/native-space-view/SpaceSurfacePrimitives.d.ts +0 -30
  390. package/dist/components/native-space-view/SpaceSurfacePrimitives.d.ts.map +0 -1
  391. package/dist/components/native-space-view/SpaceTopBar.android.d.ts +0 -11
  392. package/dist/components/native-space-view/SpaceTopBar.android.d.ts.map +0 -1
  393. package/dist/components/native-space-view/SpaceWhiteboardSurface.d.ts +0 -15
  394. package/dist/components/native-space-view/SpaceWhiteboardSurface.d.ts.map +0 -1
  395. package/dist/components/native-space-view/diagnostics.d.ts +0 -48
  396. package/dist/components/native-space-view/diagnostics.d.ts.map +0 -1
  397. package/dist/components/native-space-view/format-space-duration.d.ts +0 -2
  398. package/dist/components/native-space-view/format-space-duration.d.ts.map +0 -1
  399. package/dist/components/native-space-view/native-space-grid-keys.d.ts +0 -3
  400. package/dist/components/native-space-view/native-space-grid-keys.d.ts.map +0 -1
  401. package/dist/components/native-space-view/native-space-page-store.d.ts +0 -8
  402. package/dist/components/native-space-view/native-space-page-store.d.ts.map +0 -1
  403. package/dist/components/native-space-view/space-chat-attachments.d.ts +0 -15
  404. package/dist/components/native-space-view/space-chat-attachments.d.ts.map +0 -1
  405. package/dist/components/native-space-view/space-panel-layout.d.ts +0 -10
  406. package/dist/components/native-space-view/space-panel-layout.d.ts.map +0 -1
  407. package/dist/components/native-space-view/space-progressive-surface-helpers.d.ts +0 -16
  408. package/dist/components/native-space-view/space-progressive-surface-helpers.d.ts.map +0 -1
  409. package/dist/components/native-space-view/space-progressive-surface-types.d.ts +0 -3
  410. package/dist/components/native-space-view/space-progressive-surface-types.d.ts.map +0 -1
  411. package/dist/components/native-space-view/types.d.ts +0 -24
  412. package/dist/components/native-space-view/types.d.ts.map +0 -1
  413. package/dist/components/native-space-view/useSpaceViewController.contract.d.ts +0 -41
  414. package/dist/components/native-space-view/useSpaceViewController.contract.d.ts.map +0 -1
  415. package/dist/components/native-space-view/useSpaceViewController.d.ts +0 -156
  416. package/dist/components/native-space-view/useSpaceViewController.d.ts.map +0 -1
  417. package/dist/components/native-space-view/useSpaceViewDerived.d.ts +0 -12
  418. package/dist/components/native-space-view/useSpaceViewDerived.d.ts.map +0 -1
  419. package/dist/components/native-space-view/useSpaceViewPanels.d.ts +0 -70
  420. package/dist/components/native-space-view/useSpaceViewPanels.d.ts.map +0 -1
  421. package/dist/feedback/native-capture.d.ts +0 -9
  422. package/dist/feedback/native-capture.d.ts.map +0 -1
  423. package/dist/feedback/native-evidence.d.ts +0 -3
  424. package/dist/feedback/native-evidence.d.ts.map +0 -1
  425. package/dist/hooks/entrance-preview-store.d.ts +0 -16
  426. package/dist/hooks/entrance-preview-store.d.ts.map +0 -1
  427. package/dist/hooks/useEntrancePreview.d.ts +0 -7
  428. package/dist/hooks/useEntrancePreview.d.ts.map +0 -1
  429. package/dist/hooks/useLayout.d.ts +0 -16
  430. package/dist/hooks/useLayout.d.ts.map +0 -1
  431. package/dist/hooks/usePanels.d.ts +0 -12
  432. package/dist/hooks/usePanels.d.ts.map +0 -1
  433. package/dist/ios-pad.d.ts +0 -2
  434. package/dist/ios-pad.d.ts.map +0 -1
  435. package/dist/ios-pad.js +0 -62
  436. package/dist/ios-phone.d.ts +0 -2
  437. package/dist/ios-phone.d.ts.map +0 -1
  438. package/dist/ios-phone.js +0 -62
  439. package/dist/ios.d.ts +0 -2
  440. package/dist/ios.d.ts.map +0 -1
  441. package/dist/ios.js +0 -62
  442. package/dist/macos.d.ts +0 -2
  443. package/dist/macos.d.ts.map +0 -1
  444. package/dist/macos.js +0 -62
  445. package/dist/space-client/cloudflare-rtk-native.d.ts +0 -3
  446. package/dist/space-client/cloudflare-rtk-native.d.ts.map +0 -1
  447. package/dist/telemetry.d.ts +0 -63
  448. package/dist/telemetry.d.ts.map +0 -1
  449. package/dist/ui/appearance.d.ts +0 -246
  450. package/dist/ui/appearance.d.ts.map +0 -1
  451. package/dist/ui/appearance.js +0 -14
  452. package/dist/ui/native-appearance-context.d.ts +0 -15
  453. package/dist/ui/native-appearance-context.d.ts.map +0 -1
  454. package/dist/ui/native-theme.d.ts +0 -17
  455. package/dist/ui/native-theme.d.ts.map +0 -1
  456. package/dist/ui/native-types.d.ts +0 -38
  457. package/dist/ui/native-types.d.ts.map +0 -1
  458. package/dist/ui/participant-avatar.d.ts +0 -21
  459. package/dist/ui/participant-avatar.d.ts.map +0 -1
  460. package/dist/ui/theme-tokens.d.ts +0 -25
  461. package/dist/ui/theme-tokens.d.ts.map +0 -1
  462. package/dist/ui/theme.d.ts +0 -404
  463. package/dist/ui/theme.d.ts.map +0 -1
  464. package/dist/ui/theme.js +0 -8
  465. package/dist/utils/native-space-layout.d.ts +0 -42
  466. package/dist/utils/native-space-layout.d.ts.map +0 -1
  467. package/src/android.ts +0 -1
  468. package/src/components/Chalk.tsx +0 -363
  469. package/src/components/ChatMessageList.tsx +0 -209
  470. package/src/components/Entrance.tsx +0 -42
  471. package/src/components/EntranceView.android.tsx +0 -274
  472. package/src/components/EntranceView.ios-pad.tsx +0 -326
  473. package/src/components/EntranceView.ios-phone.tsx +0 -271
  474. package/src/components/EntranceView.macos.tsx +0 -278
  475. package/src/components/EntranceView.tsx +0 -38
  476. package/src/components/FaceAvatar.tsx +0 -120
  477. package/src/components/GradientSurface.tsx +0 -23
  478. package/src/components/MediaView.tsx +0 -76
  479. package/src/components/ReactionPicker.tsx +0 -98
  480. package/src/components/SpaceView.android.tsx +0 -1
  481. package/src/components/SpaceView.ios-pad.tsx +0 -1
  482. package/src/components/SpaceView.ios-phone.tsx +0 -1
  483. package/src/components/SpaceView.macos.tsx +0 -1
  484. package/src/components/SpaceView.shared.tsx +0 -98
  485. package/src/components/SpaceView.tsx +0 -54
  486. package/src/components/episode-diagnostic-render-observer.ts +0 -12
  487. package/src/components/logo/Logo.tsx +0 -309
  488. package/src/components/native-animation-controller.ts +0 -36
  489. package/src/components/native-chat.ts +0 -23
  490. package/src/components/native-entrance/entrance-controller-store.ts +0 -112
  491. package/src/components/native-entrance/useEntranceController.ts +0 -60
  492. package/src/components/native-joining-loading-animation.ts +0 -26
  493. package/src/components/native-space-view/AppearanceSettings.tsx +0 -114
  494. package/src/components/native-space-view/FeedbackSheet.tsx +0 -296
  495. package/src/components/native-space-view/ParticipantActionSheet.tsx +0 -99
  496. package/src/components/native-space-view/SettingsSheet.tsx +0 -164
  497. package/src/components/native-space-view/SpaceActionMenu.tsx +0 -109
  498. package/src/components/native-space-view/SpaceBottomDock.android.tsx +0 -115
  499. package/src/components/native-space-view/SpaceChatAttachment.tsx +0 -105
  500. package/src/components/native-space-view/SpaceChatSheet.tsx +0 -184
  501. package/src/components/native-space-view/SpaceGrid.android.tsx +0 -323
  502. package/src/components/native-space-view/SpaceMoreSheet.tsx +0 -190
  503. package/src/components/native-space-view/SpacePanelSheet.tsx +0 -45
  504. package/src/components/native-space-view/SpacePeopleSheet.tsx +0 -116
  505. package/src/components/native-space-view/SpaceStage.android.tsx +0 -372
  506. package/src/components/native-space-view/SpaceSurfacePrimitives.tsx +0 -75
  507. package/src/components/native-space-view/SpaceTopBar.android.tsx +0 -113
  508. package/src/components/native-space-view/SpaceWhiteboardSurface.tsx +0 -69
  509. package/src/components/native-space-view/diagnostics.ts +0 -84
  510. package/src/components/native-space-view/format-space-duration.ts +0 -3
  511. package/src/components/native-space-view/native-space-grid-keys.ts +0 -6
  512. package/src/components/native-space-view/native-space-page-store.ts +0 -41
  513. package/src/components/native-space-view/space-chat-attachments.test.ts +0 -26
  514. package/src/components/native-space-view/space-chat-attachments.ts +0 -37
  515. package/src/components/native-space-view/space-panel-layout.ts +0 -10
  516. package/src/components/native-space-view/space-progressive-surface-helpers.ts +0 -33
  517. package/src/components/native-space-view/space-progressive-surface-types.ts +0 -3
  518. package/src/components/native-space-view/types.ts +0 -25
  519. package/src/components/native-space-view/useSpaceViewController.contract.ts +0 -34
  520. package/src/components/native-space-view/useSpaceViewController.ts +0 -416
  521. package/src/components/native-space-view/useSpaceViewDerived.ts +0 -29
  522. package/src/components/native-space-view/useSpaceViewPanels.ts +0 -170
  523. package/src/feedback/native-capture.ts +0 -62
  524. package/src/feedback/native-evidence.ts +0 -37
  525. package/src/hooks/entrance-preview-store.ts +0 -99
  526. package/src/hooks/useEntrancePreview.ts +0 -26
  527. package/src/hooks/useLayout.ts +0 -37
  528. package/src/hooks/usePanels.ts +0 -30
  529. package/src/ios-pad.ts +0 -1
  530. package/src/ios-phone.ts +0 -1
  531. package/src/ios.ts +0 -1
  532. package/src/macos.ts +0 -1
  533. package/src/space-client/cloudflare-rtk-native.ts +0 -104
  534. package/src/telemetry.ts +0 -234
  535. package/src/types/hugeicons-direct.d.ts +0 -4
  536. package/src/types/react-native-safe-area-context.d.ts +0 -8
  537. package/src/ui/appearance.ts +0 -808
  538. package/src/ui/native-appearance-context.tsx +0 -74
  539. package/src/ui/native-theme.tsx +0 -54
  540. package/src/ui/native-types.ts +0 -40
  541. package/src/ui/participant-avatar.ts +0 -47
  542. package/src/ui/theme-tokens.ts +0 -41
  543. package/src/ui/theme.ts +0 -214
  544. 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
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,YAAY,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC"}
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
- createNativeSpaceClient
3
- } from "./chunk-2OS7SSXE.js";
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,EAAqG,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAOjK,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,CAyKlR"}
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: Participant | null;
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,iBAAiB,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,wBAAgB,4BAA4B,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAoB,EAAE,EAAE;IAAE,WAAW,EAAE,WAAW,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,CAcnP"}
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,10 @@
1
+ import {
2
+ setDevScenario
3
+ } from "./chunk-IHE6EA3T.js";
4
+ import {
5
+ setMeasurementRegistry
6
+ } from "./chunk-GYVZSOGQ.js";
7
+ export {
8
+ setDevScenario,
9
+ setMeasurementRegistry
10
+ };
@@ -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"}