@syra.fm/sdk 0.4.0 → 0.5.0

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 (307) hide show
  1. package/lib/commonjs/client.js +268 -0
  2. package/lib/commonjs/client.js.map +1 -0
  3. package/lib/commonjs/errors.js +22 -0
  4. package/lib/commonjs/errors.js.map +1 -0
  5. package/lib/commonjs/index.js +63 -0
  6. package/lib/commonjs/index.js.map +1 -0
  7. package/lib/commonjs/index.native.js +28 -0
  8. package/lib/commonjs/index.native.js.map +1 -0
  9. package/lib/commonjs/live/assets/icons/spaces-icon.js +42 -0
  10. package/lib/commonjs/live/assets/icons/spaces-icon.js.map +1 -0
  11. package/lib/commonjs/live/assets/icons/syra-icon.js +43 -0
  12. package/lib/commonjs/live/assets/icons/syra-icon.js.map +1 -0
  13. package/lib/commonjs/live/components/AnimatedPulse.js +38 -0
  14. package/lib/commonjs/live/components/AnimatedPulse.js.map +1 -0
  15. package/lib/commonjs/live/components/AnimatedSpeakerRing.js +90 -0
  16. package/lib/commonjs/live/components/AnimatedSpeakerRing.js.map +1 -0
  17. package/lib/commonjs/live/components/CreateRoomSheet.js +688 -0
  18. package/lib/commonjs/live/components/CreateRoomSheet.js.map +1 -0
  19. package/lib/commonjs/live/components/InsightsPanel.js +333 -0
  20. package/lib/commonjs/live/components/InsightsPanel.js.map +1 -0
  21. package/lib/commonjs/live/components/LiveRoomSheet.js +1195 -0
  22. package/lib/commonjs/live/components/LiveRoomSheet.js.map +1 -0
  23. package/lib/commonjs/live/components/MiniRoomBar.js +161 -0
  24. package/lib/commonjs/live/components/MiniRoomBar.js.map +1 -0
  25. package/lib/commonjs/live/components/PanelHeader.js +57 -0
  26. package/lib/commonjs/live/components/PanelHeader.js.map +1 -0
  27. package/lib/commonjs/live/components/PodcastStreamPicker.js +1190 -0
  28. package/lib/commonjs/live/components/PodcastStreamPicker.js.map +1 -0
  29. package/lib/commonjs/live/components/RecordingCard.js +192 -0
  30. package/lib/commonjs/live/components/RecordingCard.js.map +1 -0
  31. package/lib/commonjs/live/components/RecordingsPanel.js +304 -0
  32. package/lib/commonjs/live/components/RecordingsPanel.js.map +1 -0
  33. package/lib/commonjs/live/components/RoomCard.js +553 -0
  34. package/lib/commonjs/live/components/RoomCard.js.map +1 -0
  35. package/lib/commonjs/live/components/StreamConfigModal.js +656 -0
  36. package/lib/commonjs/live/components/StreamConfigModal.js.map +1 -0
  37. package/lib/commonjs/live/components/StreamConfigPanel.js +822 -0
  38. package/lib/commonjs/live/components/StreamConfigPanel.js.map +1 -0
  39. package/lib/commonjs/live/context/LiveConfigContext.js +46 -0
  40. package/lib/commonjs/live/context/LiveConfigContext.js.map +1 -0
  41. package/lib/commonjs/live/context/LiveRoomContext.js +195 -0
  42. package/lib/commonjs/live/context/LiveRoomContext.js.map +1 -0
  43. package/lib/commonjs/live/hooks/useActiveSpeakers.js +35 -0
  44. package/lib/commonjs/live/hooks/useActiveSpeakers.js.map +1 -0
  45. package/lib/commonjs/live/hooks/useRoomAudio.js +129 -0
  46. package/lib/commonjs/live/hooks/useRoomAudio.js.map +1 -0
  47. package/lib/commonjs/live/hooks/useRoomConnection.js +177 -0
  48. package/lib/commonjs/live/hooks/useRoomConnection.js.map +1 -0
  49. package/lib/commonjs/live/hooks/useRoomManager.js +37 -0
  50. package/lib/commonjs/live/hooks/useRoomManager.js.map +1 -0
  51. package/lib/commonjs/live/hooks/useRoomUsers.js +52 -0
  52. package/lib/commonjs/live/hooks/useRoomUsers.js.map +1 -0
  53. package/lib/commonjs/live/index.js +310 -0
  54. package/lib/commonjs/live/index.js.map +1 -0
  55. package/lib/commonjs/live/services/livekitService.js +20 -0
  56. package/lib/commonjs/live/services/livekitService.js.map +1 -0
  57. package/lib/commonjs/live/services/spaceSocketService.js +181 -0
  58. package/lib/commonjs/live/services/spaceSocketService.js.map +1 -0
  59. package/lib/commonjs/live/services/spacesService.js +642 -0
  60. package/lib/commonjs/live/services/spacesService.js.map +1 -0
  61. package/lib/commonjs/live/types.js +6 -0
  62. package/lib/commonjs/live/types.js.map +1 -0
  63. package/lib/commonjs/live/validation.js +238 -0
  64. package/lib/commonjs/live/validation.js.map +1 -0
  65. package/lib/commonjs/package.json +1 -0
  66. package/{dist/cjs → lib/commonjs}/schema.js +55 -47
  67. package/lib/commonjs/schema.js.map +1 -0
  68. package/lib/module/client.js +264 -0
  69. package/lib/module/client.js.map +1 -0
  70. package/lib/module/errors.js +17 -0
  71. package/lib/module/errors.js.map +1 -0
  72. package/lib/module/index.js +6 -0
  73. package/lib/module/index.js.map +1 -0
  74. package/lib/module/index.native.js +5 -0
  75. package/lib/module/index.native.js.map +1 -0
  76. package/lib/module/live/assets/icons/spaces-icon.js +34 -0
  77. package/lib/module/live/assets/icons/spaces-icon.js.map +1 -0
  78. package/lib/module/live/assets/icons/syra-icon.js +36 -0
  79. package/lib/module/live/assets/icons/syra-icon.js.map +1 -0
  80. package/lib/module/live/components/AnimatedPulse.js +33 -0
  81. package/lib/module/live/components/AnimatedPulse.js.map +1 -0
  82. package/lib/module/live/components/AnimatedSpeakerRing.js +85 -0
  83. package/lib/module/live/components/AnimatedSpeakerRing.js.map +1 -0
  84. package/lib/module/live/components/CreateRoomSheet.js +682 -0
  85. package/lib/module/live/components/CreateRoomSheet.js.map +1 -0
  86. package/lib/module/live/components/InsightsPanel.js +327 -0
  87. package/lib/module/live/components/InsightsPanel.js.map +1 -0
  88. package/lib/module/live/components/LiveRoomSheet.js +1189 -0
  89. package/lib/module/live/components/LiveRoomSheet.js.map +1 -0
  90. package/lib/module/live/components/MiniRoomBar.js +154 -0
  91. package/lib/module/live/components/MiniRoomBar.js.map +1 -0
  92. package/lib/module/live/components/PanelHeader.js +52 -0
  93. package/lib/module/live/components/PanelHeader.js.map +1 -0
  94. package/lib/module/live/components/PodcastStreamPicker.js +1183 -0
  95. package/lib/module/live/components/PodcastStreamPicker.js.map +1 -0
  96. package/lib/module/live/components/RecordingCard.js +187 -0
  97. package/lib/module/live/components/RecordingCard.js.map +1 -0
  98. package/lib/module/live/components/RecordingsPanel.js +298 -0
  99. package/lib/module/live/components/RecordingsPanel.js.map +1 -0
  100. package/lib/module/live/components/RoomCard.js +548 -0
  101. package/lib/module/live/components/RoomCard.js.map +1 -0
  102. package/lib/module/live/components/StreamConfigModal.js +650 -0
  103. package/lib/module/live/components/StreamConfigModal.js.map +1 -0
  104. package/lib/module/live/components/StreamConfigPanel.js +816 -0
  105. package/lib/module/live/components/StreamConfigPanel.js.map +1 -0
  106. package/lib/module/live/context/LiveConfigContext.js +40 -0
  107. package/lib/module/live/context/LiveConfigContext.js.map +1 -0
  108. package/lib/module/live/context/LiveRoomContext.js +189 -0
  109. package/lib/module/live/context/LiveRoomContext.js.map +1 -0
  110. package/lib/module/live/hooks/useActiveSpeakers.js +31 -0
  111. package/lib/module/live/hooks/useActiveSpeakers.js.map +1 -0
  112. package/lib/module/live/hooks/useRoomAudio.js +125 -0
  113. package/lib/module/live/hooks/useRoomAudio.js.map +1 -0
  114. package/lib/module/live/hooks/useRoomConnection.js +173 -0
  115. package/lib/module/live/hooks/useRoomConnection.js.map +1 -0
  116. package/lib/module/live/hooks/useRoomManager.js +32 -0
  117. package/lib/module/live/hooks/useRoomManager.js.map +1 -0
  118. package/lib/module/live/hooks/useRoomUsers.js +46 -0
  119. package/lib/module/live/hooks/useRoomUsers.js.map +1 -0
  120. package/lib/module/live/index.js +38 -0
  121. package/lib/module/live/index.js.map +1 -0
  122. package/lib/module/live/services/livekitService.js +16 -0
  123. package/lib/module/live/services/livekitService.js.map +1 -0
  124. package/lib/module/live/services/spaceSocketService.js +176 -0
  125. package/lib/module/live/services/spaceSocketService.js.map +1 -0
  126. package/lib/module/live/services/spacesService.js +639 -0
  127. package/lib/module/live/services/spacesService.js.map +1 -0
  128. package/lib/module/live/types.js +4 -0
  129. package/lib/module/live/types.js.map +1 -0
  130. package/lib/module/live/validation.js +229 -0
  131. package/lib/module/live/validation.js.map +1 -0
  132. package/lib/module/package.json +1 -0
  133. package/{dist/esm → lib/module}/schema.js +47 -39
  134. package/lib/module/schema.js.map +1 -0
  135. package/{dist/types → lib/typescript/commonjs}/client.d.ts +1 -0
  136. package/lib/typescript/commonjs/client.d.ts.map +1 -0
  137. package/{dist/types → lib/typescript/commonjs}/errors.d.ts +1 -0
  138. package/lib/typescript/commonjs/errors.d.ts.map +1 -0
  139. package/{dist/types → lib/typescript/commonjs}/index.d.ts +1 -0
  140. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/index.native.d.ts +3 -0
  142. package/lib/typescript/commonjs/index.native.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts +13 -0
  144. package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts +13 -0
  146. package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts.map +1 -0
  147. package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts +8 -0
  148. package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts.map +1 -0
  149. package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts +10 -0
  150. package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
  151. package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts +26 -0
  152. package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts.map +1 -0
  153. package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts +11 -0
  154. package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts.map +1 -0
  155. package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts +11 -0
  156. package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts +15 -0
  158. package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts.map +1 -0
  159. package/lib/typescript/commonjs/live/components/PanelHeader.d.ts +10 -0
  160. package/lib/typescript/commonjs/live/components/PanelHeader.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts +54 -0
  162. package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/live/components/RecordingCard.d.ts +11 -0
  164. package/lib/typescript/commonjs/live/components/RecordingCard.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts +12 -0
  166. package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/live/components/RoomCard.d.ts +38 -0
  168. package/lib/typescript/commonjs/live/components/RoomCard.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts +11 -0
  170. package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts +13 -0
  172. package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts +78 -0
  174. package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts +12 -0
  176. package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts +3 -0
  178. package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts +16 -0
  180. package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts +29 -0
  182. package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts +11 -0
  184. package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts +5 -0
  186. package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/live/index.d.ts +24 -0
  188. package/lib/typescript/commonjs/live/index.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/live/services/livekitService.d.ts +7 -0
  190. package/lib/typescript/commonjs/live/services/livekitService.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts +69 -0
  192. package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/live/services/spacesService.d.ts +181 -0
  194. package/lib/typescript/commonjs/live/services/spacesService.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/live/types.d.ts +100 -0
  196. package/lib/typescript/commonjs/live/types.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/live/validation.d.ts +658 -0
  198. package/lib/typescript/commonjs/live/validation.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/package.json +1 -0
  200. package/{dist/types → lib/typescript/commonjs}/schema.d.ts +1 -0
  201. package/lib/typescript/commonjs/schema.d.ts.map +1 -0
  202. package/lib/typescript/module/client.d.ts +141 -0
  203. package/lib/typescript/module/client.d.ts.map +1 -0
  204. package/lib/typescript/module/errors.d.ts +9 -0
  205. package/lib/typescript/module/errors.d.ts.map +1 -0
  206. package/lib/typescript/module/index.d.ts +6 -0
  207. package/lib/typescript/module/index.d.ts.map +1 -0
  208. package/lib/typescript/module/index.native.d.ts +3 -0
  209. package/lib/typescript/module/index.native.d.ts.map +1 -0
  210. package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts +13 -0
  211. package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts.map +1 -0
  212. package/lib/typescript/module/live/assets/icons/syra-icon.d.ts +13 -0
  213. package/lib/typescript/module/live/assets/icons/syra-icon.d.ts.map +1 -0
  214. package/lib/typescript/module/live/components/AnimatedPulse.d.ts +8 -0
  215. package/lib/typescript/module/live/components/AnimatedPulse.d.ts.map +1 -0
  216. package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts +10 -0
  217. package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
  218. package/lib/typescript/module/live/components/CreateRoomSheet.d.ts +26 -0
  219. package/lib/typescript/module/live/components/CreateRoomSheet.d.ts.map +1 -0
  220. package/lib/typescript/module/live/components/InsightsPanel.d.ts +11 -0
  221. package/lib/typescript/module/live/components/InsightsPanel.d.ts.map +1 -0
  222. package/lib/typescript/module/live/components/LiveRoomSheet.d.ts +11 -0
  223. package/lib/typescript/module/live/components/LiveRoomSheet.d.ts.map +1 -0
  224. package/lib/typescript/module/live/components/MiniRoomBar.d.ts +15 -0
  225. package/lib/typescript/module/live/components/MiniRoomBar.d.ts.map +1 -0
  226. package/lib/typescript/module/live/components/PanelHeader.d.ts +10 -0
  227. package/lib/typescript/module/live/components/PanelHeader.d.ts.map +1 -0
  228. package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts +54 -0
  229. package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts.map +1 -0
  230. package/lib/typescript/module/live/components/RecordingCard.d.ts +11 -0
  231. package/lib/typescript/module/live/components/RecordingCard.d.ts.map +1 -0
  232. package/lib/typescript/module/live/components/RecordingsPanel.d.ts +12 -0
  233. package/lib/typescript/module/live/components/RecordingsPanel.d.ts.map +1 -0
  234. package/lib/typescript/module/live/components/RoomCard.d.ts +38 -0
  235. package/lib/typescript/module/live/components/RoomCard.d.ts.map +1 -0
  236. package/lib/typescript/module/live/components/StreamConfigModal.d.ts +11 -0
  237. package/lib/typescript/module/live/components/StreamConfigModal.d.ts.map +1 -0
  238. package/lib/typescript/module/live/components/StreamConfigPanel.d.ts +13 -0
  239. package/lib/typescript/module/live/components/StreamConfigPanel.d.ts.map +1 -0
  240. package/lib/typescript/module/live/context/LiveConfigContext.d.ts +78 -0
  241. package/lib/typescript/module/live/context/LiveConfigContext.d.ts.map +1 -0
  242. package/lib/typescript/module/live/context/LiveRoomContext.d.ts +12 -0
  243. package/lib/typescript/module/live/context/LiveRoomContext.d.ts.map +1 -0
  244. package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts +3 -0
  245. package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts.map +1 -0
  246. package/lib/typescript/module/live/hooks/useRoomAudio.d.ts +16 -0
  247. package/lib/typescript/module/live/hooks/useRoomAudio.d.ts.map +1 -0
  248. package/lib/typescript/module/live/hooks/useRoomConnection.d.ts +29 -0
  249. package/lib/typescript/module/live/hooks/useRoomConnection.d.ts.map +1 -0
  250. package/lib/typescript/module/live/hooks/useRoomManager.d.ts +11 -0
  251. package/lib/typescript/module/live/hooks/useRoomManager.d.ts.map +1 -0
  252. package/lib/typescript/module/live/hooks/useRoomUsers.d.ts +5 -0
  253. package/lib/typescript/module/live/hooks/useRoomUsers.d.ts.map +1 -0
  254. package/lib/typescript/module/live/index.d.ts +24 -0
  255. package/lib/typescript/module/live/index.d.ts.map +1 -0
  256. package/lib/typescript/module/live/services/livekitService.d.ts +7 -0
  257. package/lib/typescript/module/live/services/livekitService.d.ts.map +1 -0
  258. package/lib/typescript/module/live/services/spaceSocketService.d.ts +69 -0
  259. package/lib/typescript/module/live/services/spaceSocketService.d.ts.map +1 -0
  260. package/lib/typescript/module/live/services/spacesService.d.ts +181 -0
  261. package/lib/typescript/module/live/services/spacesService.d.ts.map +1 -0
  262. package/lib/typescript/module/live/types.d.ts +100 -0
  263. package/lib/typescript/module/live/types.d.ts.map +1 -0
  264. package/lib/typescript/module/live/validation.d.ts +658 -0
  265. package/lib/typescript/module/live/validation.d.ts.map +1 -0
  266. package/lib/typescript/module/package.json +1 -0
  267. package/lib/typescript/module/schema.d.ts +1072 -0
  268. package/lib/typescript/module/schema.d.ts.map +1 -0
  269. package/package.json +133 -21
  270. package/src/index.native.ts +2 -0
  271. package/src/live/assets/icons/spaces-icon.tsx +15 -0
  272. package/src/live/assets/icons/syra-icon.tsx +13 -0
  273. package/src/live/assets/sounds/intro.mp3 +0 -0
  274. package/src/live/components/AnimatedPulse.tsx +52 -0
  275. package/src/live/components/AnimatedSpeakerRing.tsx +101 -0
  276. package/src/live/components/CreateRoomSheet.tsx +654 -0
  277. package/src/live/components/InsightsPanel.tsx +202 -0
  278. package/src/live/components/LiveRoomSheet.tsx +969 -0
  279. package/src/live/components/MiniRoomBar.tsx +166 -0
  280. package/src/live/components/PanelHeader.tsx +36 -0
  281. package/src/live/components/PodcastStreamPicker.tsx +1155 -0
  282. package/src/live/components/RecordingCard.tsx +154 -0
  283. package/src/live/components/RecordingsPanel.tsx +251 -0
  284. package/src/live/components/RoomCard.tsx +494 -0
  285. package/src/live/components/StreamConfigModal.tsx +600 -0
  286. package/src/live/components/StreamConfigPanel.tsx +729 -0
  287. package/src/live/context/LiveConfigContext.tsx +96 -0
  288. package/src/live/context/LiveRoomContext.tsx +235 -0
  289. package/src/live/hooks/useActiveSpeakers.ts +39 -0
  290. package/src/live/hooks/useRoomAudio.ts +103 -0
  291. package/src/live/hooks/useRoomConnection.ts +162 -0
  292. package/src/live/hooks/useRoomManager.ts +17 -0
  293. package/src/live/hooks/useRoomUsers.ts +52 -0
  294. package/src/live/index.ts +92 -0
  295. package/src/live/services/livekitService.ts +11 -0
  296. package/src/live/services/spaceSocketService.ts +136 -0
  297. package/src/live/services/spacesService.ts +692 -0
  298. package/src/live/types.ts +119 -0
  299. package/src/live/validation.ts +279 -0
  300. package/dist/cjs/client.js +0 -244
  301. package/dist/cjs/errors.js +0 -16
  302. package/dist/cjs/index.js +0 -15
  303. package/dist/cjs/package.json +0 -3
  304. package/dist/esm/client.js +0 -240
  305. package/dist/esm/errors.js +0 -12
  306. package/dist/esm/index.js +0 -3
  307. package/dist/esm/package.json +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnimatedSpeakerRing","exports","React","memo","isSpeaking","isMuted","primaryColor","children","pulseScale","useSharedValue","pulseOpacity","useEffect","value","withRepeat","withSequence","withTiming","duration","easing","Easing","out","ease","in","cancelAnimation","pulseStyle","useAnimatedStyle","transform","scale","opacity","jsxs","View","style","styles","container","jsx","pulseRing","borderColor","avatarRing","borderWidth","StyleSheet","create","alignItems","justifyContent","position","width","height","borderRadius","padding"],"sourceRoot":"../../../../src","sources":["live/components/AnimatedSpeakerRing.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,688 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.CreateRoomSheet = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _MaterialCommunityIcons = _interopRequireDefault(require("@expo/vector-icons/MaterialCommunityIcons"));
10
+ var _LiveConfigContext = require("../context/LiveConfigContext.js");
11
+ var _LiveRoomContext = require("../context/LiveRoomContext.js");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ const TOPICS = ['Technology', 'Music', 'Sports', 'Gaming', 'News', 'Politics', 'Science', 'Art', 'Business', 'Education', 'Entertainment', 'Health', 'Culture', 'Crypto', 'AI'];
16
+ const ROOM_TYPES = [{
17
+ value: 'talk',
18
+ label: 'Talk',
19
+ icon: 'microphone',
20
+ description: 'Open conversation'
21
+ }, {
22
+ value: 'stage',
23
+ label: 'Stage',
24
+ icon: 'account-voice',
25
+ description: 'Panel discussion'
26
+ }, {
27
+ value: 'broadcast',
28
+ label: 'Broadcast',
29
+ icon: 'broadcast',
30
+ description: 'One-to-many stream'
31
+ }];
32
+ const CreateRoomSheet = exports.CreateRoomSheet = /*#__PURE__*/(0, _react.forwardRef)(({
33
+ onClose,
34
+ onRoomCreated,
35
+ mode = 'standalone',
36
+ ScrollViewComponent,
37
+ hideFooter = false,
38
+ onFormStateChange,
39
+ houses
40
+ }, ref) => {
41
+ const Scroll = ScrollViewComponent || _reactNative.ScrollView;
42
+ const {
43
+ useTheme,
44
+ roomsService,
45
+ toast
46
+ } = (0, _LiveConfigContext.useLiveConfig)();
47
+ const theme = useTheme();
48
+ const {
49
+ joinLiveRoom
50
+ } = (0, _LiveRoomContext.useLiveRoom)();
51
+ const [title, setTitle] = (0, _react.useState)('');
52
+ const [description, setDescription] = (0, _react.useState)('');
53
+ const [topic, setTopic] = (0, _react.useState)('');
54
+ const [scheduledStart, setScheduledStart] = (0, _react.useState)('');
55
+ const [speakerPermission, setSpeakerPermission] = (0, _react.useState)('invited');
56
+ const [roomType, setRoomType] = (0, _react.useState)('talk');
57
+ const [selectedHouse, setSelectedHouse] = (0, _react.useState)(null);
58
+ const [recordingEnabled, setRecordingEnabled] = (0, _react.useState)(true);
59
+ const [loading, setLoading] = (0, _react.useState)(false);
60
+ const isValid = title.trim().length > 0;
61
+ const isBroadcast = roomType === 'broadcast';
62
+ (0, _react.useEffect)(() => {
63
+ onFormStateChange?.({
64
+ isValid,
65
+ loading,
66
+ hasScheduledStart: !!scheduledStart.trim()
67
+ });
68
+ }, [isValid, loading, scheduledStart, onFormStateChange]);
69
+ const buildCreatePayload = () => ({
70
+ title: title.trim(),
71
+ description: description.trim() || undefined,
72
+ topic: topic.trim() || undefined,
73
+ speakerPermission: isBroadcast ? 'invited' : speakerPermission,
74
+ type: roomType,
75
+ ownerType: selectedHouse ? 'house' : 'profile',
76
+ houseId: selectedHouse?._id,
77
+ recordingEnabled
78
+ });
79
+ const handleCreateAndStart = async () => {
80
+ if (!isValid || loading) return;
81
+ setLoading(true);
82
+ try {
83
+ const room = await roomsService.createRoom(buildCreatePayload());
84
+ if (room) {
85
+ const started = await roomsService.startRoom(room._id);
86
+ onClose();
87
+ if (started) {
88
+ joinLiveRoom(room._id);
89
+ } else {
90
+ toast.error('Room created but failed to start');
91
+ }
92
+ onRoomCreated?.(room);
93
+ } else {
94
+ toast.error('Failed to create room');
95
+ }
96
+ } catch (error) {
97
+ console.error('Error creating room:', error);
98
+ toast.error('Failed to create room');
99
+ } finally {
100
+ setLoading(false);
101
+ }
102
+ };
103
+ const handleSchedule = async () => {
104
+ if (!isValid || loading) return;
105
+ if (!scheduledStart.trim()) {
106
+ toast.error('Please enter a scheduled start time');
107
+ return;
108
+ }
109
+ setLoading(true);
110
+ try {
111
+ const room = await roomsService.createRoom({
112
+ ...buildCreatePayload(),
113
+ scheduledStart: scheduledStart.trim()
114
+ });
115
+ if (room) {
116
+ onClose();
117
+ onRoomCreated?.(room);
118
+ } else {
119
+ toast.error('Failed to create room');
120
+ }
121
+ } catch (error) {
122
+ console.error('Error creating room:', error);
123
+ toast.error('Failed to create room');
124
+ } finally {
125
+ setLoading(false);
126
+ }
127
+ };
128
+ const handleCreateForEmbed = async () => {
129
+ if (!isValid || loading) return;
130
+ setLoading(true);
131
+ try {
132
+ const room = await roomsService.createRoom(buildCreatePayload());
133
+ if (room) {
134
+ onClose();
135
+ onRoomCreated?.(room);
136
+ } else {
137
+ toast.error('Failed to create room');
138
+ }
139
+ } catch (error) {
140
+ console.error('Error creating room:', error);
141
+ toast.error('Failed to create room');
142
+ } finally {
143
+ setLoading(false);
144
+ }
145
+ };
146
+ (0, _react.useImperativeHandle)(ref, () => ({
147
+ handleCreateAndStart,
148
+ handleSchedule,
149
+ handleCreateForEmbed
150
+ }), [handleCreateAndStart, handleSchedule, handleCreateForEmbed]);
151
+ const renderFooterContent = () => {
152
+ if (hideFooter) return null;
153
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
154
+ style: [styles.footer, {
155
+ borderTopColor: theme.colors.border,
156
+ backgroundColor: theme.colors.background
157
+ }],
158
+ children: mode === 'standalone' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
159
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
160
+ style: [styles.primaryButton, {
161
+ backgroundColor: isValid ? theme.colors.primary : theme.colors.backgroundSecondary,
162
+ opacity: loading ? 0.6 : 1
163
+ }],
164
+ onPress: handleCreateAndStart,
165
+ disabled: !isValid || loading,
166
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
167
+ name: "play",
168
+ size: 20,
169
+ color: isValid ? theme.colors.card : theme.colors.textSecondary
170
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
171
+ style: [styles.primaryButtonText, {
172
+ color: isValid ? theme.colors.card : theme.colors.textSecondary
173
+ }],
174
+ children: loading ? 'Creating...' : 'Start Now'
175
+ })]
176
+ }), scheduledStart.trim() && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
177
+ style: [styles.secondaryButton, {
178
+ backgroundColor: theme.colors.backgroundSecondary,
179
+ borderColor: theme.colors.border,
180
+ opacity: loading ? 0.6 : 1
181
+ }],
182
+ onPress: handleSchedule,
183
+ disabled: !isValid || loading,
184
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
185
+ name: "calendar",
186
+ size: 20,
187
+ color: theme.colors.text
188
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
189
+ style: [styles.secondaryButtonText, {
190
+ color: theme.colors.text
191
+ }],
192
+ children: "Schedule Room"
193
+ })]
194
+ })]
195
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
196
+ style: [styles.primaryButton, {
197
+ backgroundColor: isValid ? theme.colors.primary : theme.colors.backgroundSecondary,
198
+ opacity: loading ? 0.6 : 1
199
+ }],
200
+ onPress: handleCreateForEmbed,
201
+ disabled: !isValid || loading,
202
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
203
+ name: "radio",
204
+ size: 20,
205
+ color: isValid ? theme.colors.card : theme.colors.textSecondary
206
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
207
+ style: [styles.primaryButtonText, {
208
+ color: isValid ? theme.colors.card : theme.colors.textSecondary
209
+ }],
210
+ children: loading ? 'Creating...' : 'Create Room'
211
+ })]
212
+ })
213
+ });
214
+ };
215
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
216
+ style: [styles.container, {
217
+ backgroundColor: theme.colors.background
218
+ }],
219
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
220
+ style: [styles.header, {
221
+ borderBottomColor: theme.colors.border
222
+ }],
223
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
224
+ onPress: onClose,
225
+ style: styles.headerCloseBtn,
226
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
227
+ name: "close",
228
+ size: 20,
229
+ color: theme.colors.text
230
+ })
231
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
232
+ style: [styles.headerTitle, {
233
+ color: theme.colors.text
234
+ }],
235
+ children: "Create Room"
236
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
237
+ style: {
238
+ width: 28
239
+ }
240
+ })]
241
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroll, {
242
+ style: {
243
+ flex: 1
244
+ },
245
+ contentContainerStyle: [styles.scrollContent, hideFooter && {
246
+ paddingBottom: 72
247
+ }],
248
+ keyboardShouldPersistTaps: "handled",
249
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
250
+ style: [styles.inputSection, styles.sectionPadded],
251
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
252
+ style: [styles.label, {
253
+ color: theme.colors.text
254
+ }],
255
+ children: "Room Type"
256
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
257
+ style: styles.typeSelector,
258
+ children: ROOM_TYPES.map(rt => {
259
+ const selected = roomType === rt.value;
260
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
261
+ style: [styles.typeCard, {
262
+ backgroundColor: selected ? theme.colors.primary : theme.colors.backgroundSecondary,
263
+ borderColor: selected ? theme.colors.primary : theme.colors.border
264
+ }],
265
+ onPress: () => setRoomType(rt.value),
266
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
267
+ name: rt.icon,
268
+ size: 22,
269
+ color: selected ? '#FFFFFF' : theme.colors.textSecondary
270
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
271
+ style: [styles.typeCardLabel, {
272
+ color: selected ? '#FFFFFF' : theme.colors.text
273
+ }],
274
+ children: rt.label
275
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
276
+ style: [styles.typeCardDesc, {
277
+ color: selected ? 'rgba(255,255,255,0.8)' : theme.colors.textSecondary
278
+ }],
279
+ children: rt.description
280
+ })]
281
+ }, rt.value);
282
+ })
283
+ })]
284
+ }), houses && houses.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
285
+ style: styles.inputSection,
286
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
287
+ style: [styles.label, styles.sectionPadded, {
288
+ color: theme.colors.text
289
+ }],
290
+ children: "Create for"
291
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
292
+ horizontal: true,
293
+ showsHorizontalScrollIndicator: false,
294
+ data: [null, ...houses],
295
+ keyExtractor: item => item?._id ?? 'personal',
296
+ contentContainerStyle: styles.chipList,
297
+ renderItem: ({
298
+ item
299
+ }) => {
300
+ const selected = item === null ? !selectedHouse : selectedHouse?._id === item._id;
301
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
302
+ style: [styles.chip, {
303
+ backgroundColor: selected ? theme.colors.primary : theme.colors.backgroundSecondary
304
+ }],
305
+ onPress: () => setSelectedHouse(item),
306
+ children: [item && /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
307
+ name: "home-group",
308
+ size: 14,
309
+ color: selected ? '#FFFFFF' : theme.colors.textSecondary,
310
+ style: {
311
+ marginRight: 4
312
+ }
313
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
314
+ style: [styles.chipText, {
315
+ color: selected ? '#FFFFFF' : theme.colors.text
316
+ }],
317
+ children: item ? item.name : 'Personal'
318
+ })]
319
+ });
320
+ }
321
+ })]
322
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
323
+ style: [styles.inputSection, styles.sectionPadded],
324
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
325
+ style: [styles.label, {
326
+ color: theme.colors.text
327
+ }],
328
+ children: "Title *"
329
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
330
+ style: [styles.input, {
331
+ backgroundColor: theme.colors.backgroundSecondary,
332
+ color: theme.colors.text
333
+ }],
334
+ placeholder: "What's your room about?",
335
+ placeholderTextColor: theme.colors.textTertiary,
336
+ value: title,
337
+ onChangeText: setTitle,
338
+ maxLength: 100
339
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
340
+ style: [styles.charCount, {
341
+ color: theme.colors.textTertiary
342
+ }],
343
+ children: [title.length, "/100"]
344
+ })]
345
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
346
+ style: styles.inputSection,
347
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
348
+ style: [styles.label, styles.sectionPadded, {
349
+ color: theme.colors.text
350
+ }],
351
+ children: "Topic"
352
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
353
+ horizontal: true,
354
+ showsHorizontalScrollIndicator: false,
355
+ data: TOPICS,
356
+ keyExtractor: item => item,
357
+ contentContainerStyle: styles.chipList,
358
+ renderItem: ({
359
+ item
360
+ }) => {
361
+ const selected = topic === item;
362
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
363
+ style: [styles.chip, {
364
+ backgroundColor: selected ? theme.colors.primary : theme.colors.backgroundSecondary
365
+ }],
366
+ onPress: () => setTopic(selected ? '' : item),
367
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
368
+ style: [styles.chipText, {
369
+ color: selected ? '#FFFFFF' : theme.colors.text
370
+ }],
371
+ children: item
372
+ })
373
+ });
374
+ }
375
+ })]
376
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
377
+ style: [styles.inputSection, styles.sectionPadded],
378
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
379
+ style: [styles.label, {
380
+ color: theme.colors.text
381
+ }],
382
+ children: "Description"
383
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
384
+ style: [styles.textArea, {
385
+ backgroundColor: theme.colors.backgroundSecondary,
386
+ color: theme.colors.text
387
+ }],
388
+ placeholder: "Tell people what to expect...",
389
+ placeholderTextColor: theme.colors.textTertiary,
390
+ value: description,
391
+ onChangeText: setDescription,
392
+ multiline: true,
393
+ numberOfLines: 3,
394
+ maxLength: 500
395
+ })]
396
+ }), !isBroadcast && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
397
+ style: [styles.inputSection, styles.sectionPadded],
398
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
399
+ style: [styles.label, {
400
+ color: theme.colors.text
401
+ }],
402
+ children: "Who can speak?"
403
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
404
+ style: styles.radioGroup,
405
+ children: [{
406
+ value: 'everyone',
407
+ label: 'Everyone',
408
+ icon: 'earth'
409
+ }, {
410
+ value: 'followers',
411
+ label: 'People you follow',
412
+ icon: 'account-group'
413
+ }, {
414
+ value: 'invited',
415
+ label: 'Only invited speakers',
416
+ icon: 'account-plus'
417
+ }].map((option, index, arr) => {
418
+ const selected = speakerPermission === option.value;
419
+ const isFirst = index === 0;
420
+ const isLast = index === arr.length - 1;
421
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
422
+ style: [styles.radioRow, {
423
+ backgroundColor: theme.colors.backgroundSecondary,
424
+ borderTopLeftRadius: isFirst ? 12 : 0,
425
+ borderTopRightRadius: isFirst ? 12 : 0,
426
+ borderBottomLeftRadius: isLast ? 12 : 0,
427
+ borderBottomRightRadius: isLast ? 12 : 0
428
+ }],
429
+ onPress: () => setSpeakerPermission(option.value),
430
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
431
+ name: option.icon,
432
+ size: 18,
433
+ color: selected ? theme.colors.primary : theme.colors.textSecondary
434
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
435
+ style: [styles.radioLabel, {
436
+ color: selected ? theme.colors.primary : theme.colors.text
437
+ }],
438
+ children: option.label
439
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
440
+ style: [styles.radioCircle, {
441
+ borderColor: selected ? theme.colors.primary : theme.colors.border,
442
+ backgroundColor: selected ? theme.colors.primary : 'transparent'
443
+ }],
444
+ children: selected && /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
445
+ name: "check",
446
+ size: 12,
447
+ color: "#FFFFFF"
448
+ })
449
+ })]
450
+ }, option.value);
451
+ })
452
+ })]
453
+ }), mode === 'standalone' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
454
+ style: [styles.inputSection, styles.sectionPadded],
455
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
456
+ style: [styles.label, {
457
+ color: theme.colors.text
458
+ }],
459
+ children: "Schedule (Optional)"
460
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
461
+ style: [styles.input, {
462
+ backgroundColor: theme.colors.backgroundSecondary,
463
+ color: theme.colors.text
464
+ }],
465
+ placeholder: "e.g., 2024-03-20 14:00",
466
+ placeholderTextColor: theme.colors.textTertiary,
467
+ value: scheduledStart,
468
+ onChangeText: setScheduledStart
469
+ })]
470
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
471
+ style: [styles.inputSection, styles.sectionPadded],
472
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
473
+ style: [styles.toggleRow, {
474
+ backgroundColor: theme.colors.backgroundSecondary
475
+ }],
476
+ onPress: () => setRecordingEnabled(!recordingEnabled),
477
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
478
+ name: recordingEnabled ? 'record-circle' : 'record-circle-outline',
479
+ size: 20,
480
+ color: recordingEnabled ? '#FF0000' : theme.colors.textSecondary
481
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
482
+ style: {
483
+ flex: 1
484
+ },
485
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
486
+ style: [styles.toggleLabel, {
487
+ color: theme.colors.text
488
+ }],
489
+ children: "Auto-record"
490
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
491
+ style: {
492
+ fontSize: 11,
493
+ color: theme.colors.textSecondary
494
+ },
495
+ children: "Record audio when room goes live (max 1h, expires in 6 months)"
496
+ })]
497
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
498
+ style: [styles.toggleIndicator, {
499
+ backgroundColor: recordingEnabled ? theme.colors.primary : theme.colors.border
500
+ }],
501
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
502
+ style: [styles.toggleDot, recordingEnabled && {
503
+ transform: [{
504
+ translateX: 14
505
+ }]
506
+ }]
507
+ })
508
+ })]
509
+ })
510
+ })]
511
+ }), renderFooterContent()]
512
+ });
513
+ });
514
+ CreateRoomSheet.displayName = 'CreateRoomSheet';
515
+ const styles = _reactNative.StyleSheet.create({
516
+ container: {
517
+ flex: 1
518
+ },
519
+ header: {
520
+ flexDirection: 'row',
521
+ alignItems: 'center',
522
+ justifyContent: 'space-between',
523
+ paddingHorizontal: 12,
524
+ paddingVertical: 8,
525
+ borderBottomWidth: 0.5
526
+ },
527
+ headerCloseBtn: {
528
+ width: 28,
529
+ height: 28,
530
+ alignItems: 'center',
531
+ justifyContent: 'center'
532
+ },
533
+ headerTitle: {
534
+ fontSize: 16,
535
+ fontWeight: '600'
536
+ },
537
+ scrollContent: {
538
+ paddingVertical: 16,
539
+ paddingBottom: 12
540
+ },
541
+ sectionPadded: {
542
+ paddingHorizontal: 16
543
+ },
544
+ inputSection: {
545
+ marginBottom: 16
546
+ },
547
+ label: {
548
+ fontSize: 13,
549
+ fontWeight: '600',
550
+ marginBottom: 6
551
+ },
552
+ input: {
553
+ borderRadius: 12,
554
+ paddingHorizontal: 14,
555
+ paddingVertical: 10,
556
+ fontSize: 15
557
+ },
558
+ textArea: {
559
+ borderRadius: 12,
560
+ paddingHorizontal: 14,
561
+ paddingVertical: 10,
562
+ fontSize: 15,
563
+ minHeight: 72,
564
+ textAlignVertical: 'top'
565
+ },
566
+ charCount: {
567
+ fontSize: 11,
568
+ marginTop: 4
569
+ },
570
+ typeSelector: {
571
+ flexDirection: 'row',
572
+ gap: 10
573
+ },
574
+ typeCard: {
575
+ flex: 1,
576
+ alignItems: 'center',
577
+ paddingVertical: 14,
578
+ paddingHorizontal: 8,
579
+ borderRadius: 12,
580
+ borderWidth: 1,
581
+ gap: 4
582
+ },
583
+ typeCardLabel: {
584
+ fontSize: 13,
585
+ fontWeight: '600',
586
+ marginTop: 2
587
+ },
588
+ typeCardDesc: {
589
+ fontSize: 10,
590
+ textAlign: 'center'
591
+ },
592
+ chipList: {
593
+ gap: 8,
594
+ paddingHorizontal: 16
595
+ },
596
+ chip: {
597
+ flexDirection: 'row',
598
+ alignItems: 'center',
599
+ paddingHorizontal: 14,
600
+ paddingVertical: 8,
601
+ borderRadius: 20
602
+ },
603
+ chipText: {
604
+ fontSize: 13,
605
+ fontWeight: '500'
606
+ },
607
+ radioGroup: {
608
+ gap: 3
609
+ },
610
+ radioRow: {
611
+ flexDirection: 'row',
612
+ alignItems: 'center',
613
+ gap: 10,
614
+ paddingHorizontal: 14,
615
+ paddingVertical: 12
616
+ },
617
+ radioLabel: {
618
+ fontSize: 14,
619
+ flex: 1
620
+ },
621
+ radioCircle: {
622
+ width: 20,
623
+ height: 20,
624
+ borderRadius: 10,
625
+ borderWidth: 2,
626
+ alignItems: 'center',
627
+ justifyContent: 'center'
628
+ },
629
+ footer: {
630
+ gap: 10,
631
+ paddingHorizontal: 16,
632
+ paddingTop: 10,
633
+ paddingBottom: 14,
634
+ borderTopWidth: 0.5
635
+ },
636
+ primaryButton: {
637
+ flexDirection: 'row',
638
+ alignItems: 'center',
639
+ justifyContent: 'center',
640
+ paddingVertical: 12,
641
+ borderRadius: 22,
642
+ gap: 6
643
+ },
644
+ primaryButtonText: {
645
+ fontSize: 15,
646
+ fontWeight: '600'
647
+ },
648
+ secondaryButton: {
649
+ flexDirection: 'row',
650
+ alignItems: 'center',
651
+ justifyContent: 'center',
652
+ paddingVertical: 12,
653
+ borderRadius: 22,
654
+ borderWidth: 1,
655
+ gap: 6
656
+ },
657
+ secondaryButtonText: {
658
+ fontSize: 15,
659
+ fontWeight: '600'
660
+ },
661
+ toggleRow: {
662
+ flexDirection: 'row',
663
+ alignItems: 'center',
664
+ gap: 10,
665
+ paddingHorizontal: 14,
666
+ paddingVertical: 12,
667
+ borderRadius: 12
668
+ },
669
+ toggleLabel: {
670
+ fontSize: 14,
671
+ fontWeight: '500'
672
+ },
673
+ toggleIndicator: {
674
+ width: 36,
675
+ height: 22,
676
+ borderRadius: 11,
677
+ justifyContent: 'center',
678
+ paddingHorizontal: 2
679
+ },
680
+ toggleDot: {
681
+ width: 18,
682
+ height: 18,
683
+ borderRadius: 9,
684
+ backgroundColor: '#FFFFFF'
685
+ }
686
+ });
687
+ var _default = exports.default = CreateRoomSheet;
688
+ //# sourceMappingURL=CreateRoomSheet.js.map