@streamplace/components 0.8.8 → 0.8.11

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 (603) hide show
  1. package/dist/components/chat/chat-box.d.ts +8 -0
  2. package/dist/components/chat/chat-box.d.ts.map +1 -0
  3. package/dist/components/chat/chat-box.js +19 -2
  4. package/dist/components/chat/chat-box.js.map +1 -0
  5. package/dist/components/chat/chat-message.d.ts +8 -0
  6. package/dist/components/chat/chat-message.d.ts.map +1 -0
  7. package/dist/components/chat/chat-message.js +1 -0
  8. package/dist/components/chat/chat-message.js.map +1 -0
  9. package/dist/components/chat/chat.d.ts +7 -0
  10. package/dist/components/chat/chat.d.ts.map +1 -0
  11. package/dist/components/chat/chat.js +1 -0
  12. package/dist/components/chat/chat.js.map +1 -0
  13. package/dist/components/chat/emoji-suggestions.d.ts +38 -0
  14. package/dist/components/chat/emoji-suggestions.d.ts.map +1 -0
  15. package/dist/components/chat/emoji-suggestions.js +1 -0
  16. package/dist/components/chat/emoji-suggestions.js.map +1 -0
  17. package/dist/components/chat/mention-suggestions.d.ts +9 -0
  18. package/dist/components/chat/mention-suggestions.d.ts.map +1 -0
  19. package/dist/components/chat/mention-suggestions.js +1 -0
  20. package/dist/components/chat/mention-suggestions.js.map +1 -0
  21. package/dist/components/chat/mod-view.d.ts +20 -0
  22. package/dist/components/chat/mod-view.d.ts.map +1 -0
  23. package/dist/components/chat/mod-view.js +1 -0
  24. package/dist/components/chat/mod-view.js.map +1 -0
  25. package/dist/components/chat/system-message.d.ts +7 -0
  26. package/dist/components/chat/system-message.d.ts.map +1 -0
  27. package/dist/components/chat/system-message.js +1 -0
  28. package/dist/components/chat/system-message.js.map +1 -0
  29. package/dist/components/content-metadata/content-metadata-form.d.ts +9 -0
  30. package/dist/components/content-metadata/content-metadata-form.d.ts.map +1 -0
  31. package/dist/components/content-metadata/content-metadata-form.js +4 -2
  32. package/dist/components/content-metadata/content-metadata-form.js.map +1 -0
  33. package/dist/components/content-metadata/content-rights.d.ts +14 -0
  34. package/dist/components/content-metadata/content-rights.d.ts.map +1 -0
  35. package/dist/components/content-metadata/content-rights.js +1 -0
  36. package/dist/components/content-metadata/content-rights.js.map +1 -0
  37. package/dist/components/content-metadata/content-warning-badge.d.ts +5 -0
  38. package/dist/components/content-metadata/content-warning-badge.d.ts.map +1 -0
  39. package/dist/components/content-metadata/content-warning-badge.js +1 -0
  40. package/dist/components/content-metadata/content-warning-badge.js.map +1 -0
  41. package/dist/components/content-metadata/content-warnings.d.ts +7 -0
  42. package/dist/components/content-metadata/content-warnings.d.ts.map +1 -0
  43. package/dist/components/content-metadata/content-warnings.js +1 -0
  44. package/dist/components/content-metadata/content-warnings.js.map +1 -0
  45. package/dist/components/content-metadata/index.d.ts +8 -0
  46. package/dist/components/content-metadata/index.d.ts.map +1 -0
  47. package/dist/components/content-metadata/index.js +1 -0
  48. package/dist/components/content-metadata/index.js.map +1 -0
  49. package/dist/components/danmu/danmu-message.d.ts +17 -0
  50. package/dist/components/danmu/danmu-message.d.ts.map +1 -0
  51. package/dist/components/danmu/danmu-message.js +112 -0
  52. package/dist/components/danmu/danmu-message.js.map +1 -0
  53. package/dist/components/danmu/danmu-overlay-obs.d.ts +11 -0
  54. package/dist/components/danmu/danmu-overlay-obs.d.ts.map +1 -0
  55. package/dist/components/danmu/danmu-overlay-obs.js +21 -0
  56. package/dist/components/danmu/danmu-overlay-obs.js.map +1 -0
  57. package/dist/components/danmu/danmu-overlay.d.ts +10 -0
  58. package/dist/components/danmu/danmu-overlay.d.ts.map +1 -0
  59. package/dist/components/danmu/danmu-overlay.js +150 -0
  60. package/dist/components/danmu/danmu-overlay.js.map +1 -0
  61. package/dist/components/danmu/math.d.ts +10 -0
  62. package/dist/components/danmu/math.d.ts.map +1 -0
  63. package/dist/components/danmu/math.js +16 -0
  64. package/dist/components/danmu/math.js.map +1 -0
  65. package/dist/components/danmu/mu.d.ts +9 -0
  66. package/dist/components/danmu/mu.d.ts.map +1 -0
  67. package/dist/components/danmu/mu.js +9 -0
  68. package/dist/components/danmu/mu.js.map +1 -0
  69. package/dist/components/danmu/use-danmu-lanes.d.ts +19 -0
  70. package/dist/components/danmu/use-danmu-lanes.d.ts.map +1 -0
  71. package/dist/components/danmu/use-danmu-lanes.js +77 -0
  72. package/dist/components/danmu/use-danmu-lanes.js.map +1 -0
  73. package/dist/components/dashboard/chat-panel.d.ts +9 -0
  74. package/dist/components/dashboard/chat-panel.d.ts.map +1 -0
  75. package/dist/components/dashboard/chat-panel.js +1 -0
  76. package/dist/components/dashboard/chat-panel.js.map +1 -0
  77. package/dist/components/dashboard/header.d.ts +14 -0
  78. package/dist/components/dashboard/header.d.ts.map +1 -0
  79. package/dist/components/dashboard/header.js +1 -0
  80. package/dist/components/dashboard/header.js.map +1 -0
  81. package/dist/components/dashboard/index.d.ts +6 -0
  82. package/dist/components/dashboard/index.d.ts.map +1 -0
  83. package/dist/components/dashboard/index.js +1 -0
  84. package/dist/components/dashboard/index.js.map +1 -0
  85. package/dist/components/dashboard/information-widget.d.ts +9 -0
  86. package/dist/components/dashboard/information-widget.d.ts.map +1 -0
  87. package/dist/components/dashboard/information-widget.js +1 -0
  88. package/dist/components/dashboard/information-widget.js.map +1 -0
  89. package/dist/components/dashboard/mod-actions.d.ts +15 -0
  90. package/dist/components/dashboard/mod-actions.d.ts.map +1 -0
  91. package/dist/components/dashboard/mod-actions.js +1 -0
  92. package/dist/components/dashboard/mod-actions.js.map +1 -0
  93. package/dist/components/dashboard/problems.d.ts +13 -0
  94. package/dist/components/dashboard/problems.d.ts.map +1 -0
  95. package/dist/components/dashboard/problems.js +1 -0
  96. package/dist/components/dashboard/problems.js.map +1 -0
  97. package/dist/components/icons/bluesky-icon.d.ts +5 -0
  98. package/dist/components/icons/bluesky-icon.d.ts.map +1 -0
  99. package/dist/components/icons/bluesky-icon.js +1 -0
  100. package/dist/components/icons/bluesky-icon.js.map +1 -0
  101. package/dist/components/keep-awake.d.ts +2 -0
  102. package/dist/components/keep-awake.d.ts.map +1 -0
  103. package/dist/components/keep-awake.js +1 -0
  104. package/dist/components/keep-awake.js.map +1 -0
  105. package/dist/components/keep-awake.native.d.ts +2 -0
  106. package/dist/components/keep-awake.native.d.ts.map +1 -0
  107. package/dist/components/keep-awake.native.js +1 -0
  108. package/dist/components/keep-awake.native.js.map +1 -0
  109. package/dist/components/mobile-player/fullscreen.d.ts +7 -0
  110. package/dist/components/mobile-player/fullscreen.d.ts.map +1 -0
  111. package/dist/components/mobile-player/fullscreen.js +7 -1
  112. package/dist/components/mobile-player/fullscreen.js.map +1 -0
  113. package/dist/components/mobile-player/fullscreen.native.d.ts +7 -0
  114. package/dist/components/mobile-player/fullscreen.native.d.ts.map +1 -0
  115. package/dist/components/mobile-player/fullscreen.native.js +8 -2
  116. package/dist/components/mobile-player/fullscreen.native.js.map +1 -0
  117. package/dist/components/mobile-player/player.d.ts +8 -0
  118. package/dist/components/mobile-player/player.d.ts.map +1 -0
  119. package/dist/components/mobile-player/player.js +1 -0
  120. package/dist/components/mobile-player/player.js.map +1 -0
  121. package/dist/components/mobile-player/props.d.ts +19 -0
  122. package/dist/components/mobile-player/props.d.ts.map +1 -0
  123. package/dist/components/mobile-player/props.js +1 -0
  124. package/dist/components/mobile-player/props.js.map +1 -0
  125. package/dist/components/mobile-player/rotation-async.native.d.ts +4 -0
  126. package/dist/components/mobile-player/rotation-async.native.d.ts.map +1 -0
  127. package/dist/components/mobile-player/rotation-async.native.js +1 -0
  128. package/dist/components/mobile-player/rotation-async.native.js.map +1 -0
  129. package/dist/components/mobile-player/rotation-lock.d.ts +18 -0
  130. package/dist/components/mobile-player/rotation-lock.d.ts.map +1 -0
  131. package/dist/components/mobile-player/rotation-lock.js +1 -0
  132. package/dist/components/mobile-player/rotation-lock.js.map +1 -0
  133. package/dist/components/mobile-player/shared.d.ts +9 -0
  134. package/dist/components/mobile-player/shared.d.ts.map +1 -0
  135. package/dist/components/mobile-player/shared.js +1 -0
  136. package/dist/components/mobile-player/shared.js.map +1 -0
  137. package/dist/components/mobile-player/ui/autoplay-button.d.ts +2 -0
  138. package/dist/components/mobile-player/ui/autoplay-button.d.ts.map +1 -0
  139. package/dist/components/mobile-player/ui/autoplay-button.js +1 -0
  140. package/dist/components/mobile-player/ui/autoplay-button.js.map +1 -0
  141. package/dist/components/mobile-player/ui/countdown.d.ts +10 -0
  142. package/dist/components/mobile-player/ui/countdown.d.ts.map +1 -0
  143. package/dist/components/mobile-player/ui/countdown.js +1 -0
  144. package/dist/components/mobile-player/ui/countdown.js.map +1 -0
  145. package/dist/components/mobile-player/ui/index.d.ts +11 -0
  146. package/dist/components/mobile-player/ui/index.d.ts.map +1 -0
  147. package/dist/components/mobile-player/ui/index.js +2 -0
  148. package/dist/components/mobile-player/ui/index.js.map +1 -0
  149. package/dist/components/mobile-player/ui/input.d.ts +9 -0
  150. package/dist/components/mobile-player/ui/input.d.ts.map +1 -0
  151. package/dist/components/mobile-player/ui/input.js +1 -0
  152. package/dist/components/mobile-player/ui/input.js.map +1 -0
  153. package/dist/components/mobile-player/ui/metrics.d.ts +6 -0
  154. package/dist/components/mobile-player/ui/metrics.d.ts.map +1 -0
  155. package/dist/components/mobile-player/ui/metrics.js +1 -0
  156. package/dist/components/mobile-player/ui/metrics.js.map +1 -0
  157. package/dist/components/mobile-player/ui/report-modal.d.ts +13 -0
  158. package/dist/components/mobile-player/ui/report-modal.d.ts.map +1 -0
  159. package/dist/components/mobile-player/ui/report-modal.js +1 -0
  160. package/dist/components/mobile-player/ui/report-modal.js.map +1 -0
  161. package/dist/components/mobile-player/ui/streamer-context-menu.d.ts +2 -0
  162. package/dist/components/mobile-player/ui/streamer-context-menu.d.ts.map +1 -0
  163. package/dist/components/mobile-player/ui/streamer-context-menu.js +1 -0
  164. package/dist/components/mobile-player/ui/streamer-context-menu.js.map +1 -0
  165. package/dist/components/mobile-player/ui/streamer-loading-overlay.d.ts +11 -0
  166. package/dist/components/mobile-player/ui/streamer-loading-overlay.d.ts.map +1 -0
  167. package/dist/components/mobile-player/ui/streamer-loading-overlay.js +1 -0
  168. package/dist/components/mobile-player/ui/streamer-loading-overlay.js.map +1 -0
  169. package/dist/components/mobile-player/ui/viewer-context-menu.d.ts +9 -0
  170. package/dist/components/mobile-player/ui/viewer-context-menu.d.ts.map +1 -0
  171. package/dist/components/mobile-player/ui/viewer-context-menu.js +8 -6
  172. package/dist/components/mobile-player/ui/viewer-context-menu.js.map +1 -0
  173. package/dist/components/mobile-player/ui/viewer-count.d.ts +10 -0
  174. package/dist/components/mobile-player/ui/viewer-count.d.ts.map +1 -0
  175. package/dist/components/mobile-player/ui/viewer-count.js +24 -0
  176. package/dist/components/mobile-player/ui/viewer-count.js.map +1 -0
  177. package/dist/components/mobile-player/ui/viewer-loading-overlay.d.ts +2 -0
  178. package/dist/components/mobile-player/ui/viewer-loading-overlay.d.ts.map +1 -0
  179. package/dist/components/mobile-player/ui/viewer-loading-overlay.js +1 -0
  180. package/dist/components/mobile-player/ui/viewer-loading-overlay.js.map +1 -0
  181. package/dist/components/mobile-player/ui/viewers.d.ts +6 -0
  182. package/dist/components/mobile-player/ui/viewers.d.ts.map +1 -0
  183. package/dist/components/mobile-player/ui/viewers.js +9 -7
  184. package/dist/components/mobile-player/ui/viewers.js.map +1 -0
  185. package/dist/components/mobile-player/use-webrtc.d.ts +19 -0
  186. package/dist/components/mobile-player/use-webrtc.d.ts.map +1 -0
  187. package/dist/components/mobile-player/use-webrtc.js +1 -0
  188. package/dist/components/mobile-player/use-webrtc.js.map +1 -0
  189. package/dist/components/mobile-player/video-async.native.d.ts +16 -0
  190. package/dist/components/mobile-player/video-async.native.d.ts.map +1 -0
  191. package/dist/components/mobile-player/video-async.native.js +1 -0
  192. package/dist/components/mobile-player/video-async.native.js.map +1 -0
  193. package/dist/components/mobile-player/video-retry.d.ts +5 -0
  194. package/dist/components/mobile-player/video-retry.d.ts.map +1 -0
  195. package/dist/components/mobile-player/video-retry.js +1 -0
  196. package/dist/components/mobile-player/video-retry.js.map +1 -0
  197. package/dist/components/mobile-player/video.d.ts +25 -0
  198. package/dist/components/mobile-player/video.d.ts.map +1 -0
  199. package/dist/components/mobile-player/video.js +1 -0
  200. package/dist/components/mobile-player/video.js.map +1 -0
  201. package/dist/components/mobile-player/video.native.d.ts +3 -0
  202. package/dist/components/mobile-player/video.native.d.ts.map +1 -0
  203. package/dist/components/mobile-player/video.native.js +1 -0
  204. package/dist/components/mobile-player/video.native.js.map +1 -0
  205. package/dist/components/mobile-player/webrtc-diagnostics.d.ts +14 -0
  206. package/dist/components/mobile-player/webrtc-diagnostics.d.ts.map +1 -0
  207. package/dist/components/mobile-player/webrtc-diagnostics.js +1 -0
  208. package/dist/components/mobile-player/webrtc-diagnostics.js.map +1 -0
  209. package/dist/components/mobile-player/webrtc-primitives.d.ts +19 -0
  210. package/dist/components/mobile-player/webrtc-primitives.d.ts.map +1 -0
  211. package/dist/components/mobile-player/webrtc-primitives.js +1 -0
  212. package/dist/components/mobile-player/webrtc-primitives.js.map +1 -0
  213. package/dist/components/mobile-player/webrtc-primitives.native.d.ts +2 -0
  214. package/dist/components/mobile-player/webrtc-primitives.native.d.ts.map +1 -0
  215. package/dist/components/mobile-player/webrtc-primitives.native.js +1 -0
  216. package/dist/components/mobile-player/webrtc-primitives.native.js.map +1 -0
  217. package/dist/components/share/sharesheet.d.ts +5 -0
  218. package/dist/components/share/sharesheet.d.ts.map +1 -0
  219. package/dist/components/share/sharesheet.js +1 -0
  220. package/dist/components/share/sharesheet.js.map +1 -0
  221. package/dist/components/ui/button.d.ts +18 -0
  222. package/dist/components/ui/button.d.ts.map +1 -0
  223. package/dist/components/ui/button.js +14 -2
  224. package/dist/components/ui/button.js.map +1 -0
  225. package/dist/components/ui/checkbox.d.ts +11 -0
  226. package/dist/components/ui/checkbox.d.ts.map +1 -0
  227. package/dist/components/ui/checkbox.js +1 -0
  228. package/dist/components/ui/checkbox.js.map +1 -0
  229. package/dist/components/ui/dialog.d.ts +38 -0
  230. package/dist/components/ui/dialog.d.ts.map +1 -0
  231. package/dist/components/ui/dialog.js +1 -0
  232. package/dist/components/ui/dialog.js.map +1 -0
  233. package/dist/components/ui/dropdown.d.ts +132 -0
  234. package/dist/components/ui/dropdown.d.ts.map +1 -0
  235. package/dist/components/ui/dropdown.js +35 -38
  236. package/dist/components/ui/dropdown.js.map +1 -0
  237. package/dist/components/ui/dropdown.native.d.ts +132 -0
  238. package/dist/components/ui/dropdown.native.d.ts.map +1 -0
  239. package/dist/components/ui/dropdown.native.js +319 -0
  240. package/dist/components/ui/dropdown.native.js.map +1 -0
  241. package/dist/components/ui/icons.d.ts +12 -0
  242. package/dist/components/ui/icons.d.ts.map +1 -0
  243. package/dist/components/ui/icons.js +1 -0
  244. package/dist/components/ui/icons.js.map +1 -0
  245. package/dist/components/ui/index.d.ts +33 -0
  246. package/dist/components/ui/index.d.ts.map +1 -0
  247. package/dist/components/ui/index.js +2 -0
  248. package/dist/components/ui/index.js.map +1 -0
  249. package/dist/components/ui/info-box.d.ts +9 -0
  250. package/dist/components/ui/info-box.d.ts.map +1 -0
  251. package/dist/components/ui/info-box.js +1 -0
  252. package/dist/components/ui/info-box.js.map +1 -0
  253. package/dist/components/ui/info-row.d.ts +9 -0
  254. package/dist/components/ui/info-row.d.ts.map +1 -0
  255. package/dist/components/ui/info-row.js +1 -0
  256. package/dist/components/ui/info-row.js.map +1 -0
  257. package/dist/components/ui/input.d.ts +20 -0
  258. package/dist/components/ui/input.d.ts.map +1 -0
  259. package/dist/components/ui/input.js +1 -0
  260. package/dist/components/ui/input.js.map +1 -0
  261. package/dist/components/ui/loader.d.ts +3 -0
  262. package/dist/components/ui/loader.d.ts.map +1 -0
  263. package/dist/components/ui/loader.js +1 -0
  264. package/dist/components/ui/loader.js.map +1 -0
  265. package/dist/components/ui/menu.d.ts +34 -0
  266. package/dist/components/ui/menu.d.ts.map +1 -0
  267. package/dist/components/ui/menu.js +57 -0
  268. package/dist/components/ui/menu.js.map +1 -0
  269. package/dist/components/ui/primitives/button.d.ts +41 -0
  270. package/dist/components/ui/primitives/button.d.ts.map +1 -0
  271. package/dist/components/ui/primitives/button.js +1 -0
  272. package/dist/components/ui/primitives/button.js.map +1 -0
  273. package/dist/components/ui/primitives/input.d.ts +52 -0
  274. package/dist/components/ui/primitives/input.d.ts.map +1 -0
  275. package/dist/components/ui/primitives/input.js +1 -0
  276. package/dist/components/ui/primitives/input.js.map +1 -0
  277. package/dist/components/ui/primitives/modal.d.ts +46 -0
  278. package/dist/components/ui/primitives/modal.d.ts.map +1 -0
  279. package/dist/components/ui/primitives/modal.js +1 -0
  280. package/dist/components/ui/primitives/modal.js.map +1 -0
  281. package/dist/components/ui/primitives/text.d.ts +48 -0
  282. package/dist/components/ui/primitives/text.d.ts.map +1 -0
  283. package/dist/components/ui/primitives/text.js +1 -0
  284. package/dist/components/ui/primitives/text.js.map +1 -0
  285. package/dist/components/ui/resizeable.d.ts +14 -0
  286. package/dist/components/ui/resizeable.d.ts.map +1 -0
  287. package/dist/components/ui/resizeable.js +2 -1
  288. package/dist/components/ui/resizeable.js.map +1 -0
  289. package/dist/components/ui/select.d.ts +16 -0
  290. package/dist/components/ui/select.d.ts.map +1 -0
  291. package/dist/components/ui/select.js +1 -0
  292. package/dist/components/ui/select.js.map +1 -0
  293. package/dist/components/ui/slider.d.ts +2 -0
  294. package/dist/components/ui/slider.d.ts.map +1 -0
  295. package/dist/components/ui/slider.js +1 -0
  296. package/dist/components/ui/slider.js.map +1 -0
  297. package/dist/components/ui/text.d.ts +45 -0
  298. package/dist/components/ui/text.d.ts.map +1 -0
  299. package/dist/components/ui/text.js +1 -0
  300. package/dist/components/ui/text.js.map +1 -0
  301. package/dist/components/ui/textarea.d.ts +5 -0
  302. package/dist/components/ui/textarea.d.ts.map +1 -0
  303. package/dist/components/ui/textarea.js +1 -0
  304. package/dist/components/ui/textarea.js.map +1 -0
  305. package/dist/components/ui/toast.d.ts +92 -0
  306. package/dist/components/ui/toast.d.ts.map +1 -0
  307. package/dist/components/ui/toast.js +2 -1
  308. package/dist/components/ui/toast.js.map +1 -0
  309. package/dist/components/ui/tooltip.d.ts +8 -0
  310. package/dist/components/ui/tooltip.d.ts.map +1 -0
  311. package/dist/components/ui/tooltip.js +1 -0
  312. package/dist/components/ui/tooltip.js.map +1 -0
  313. package/dist/components/ui/view.d.ts +33 -0
  314. package/dist/components/ui/view.d.ts.map +1 -0
  315. package/dist/components/ui/view.js +1 -0
  316. package/dist/components/ui/view.js.map +1 -0
  317. package/dist/crypto-polyfill.d.ts +1 -0
  318. package/dist/crypto-polyfill.d.ts.map +1 -0
  319. package/dist/crypto-polyfill.js +1 -0
  320. package/dist/crypto-polyfill.js.map +1 -0
  321. package/dist/crypto-polyfill.native.d.ts +3 -0
  322. package/dist/crypto-polyfill.native.d.ts.map +1 -0
  323. package/dist/crypto-polyfill.native.js +1 -0
  324. package/dist/crypto-polyfill.native.js.map +1 -0
  325. package/dist/hooks/index.d.ts +11 -0
  326. package/dist/hooks/index.d.ts.map +1 -0
  327. package/dist/hooks/index.js +1 -0
  328. package/dist/hooks/index.js.map +1 -0
  329. package/dist/hooks/useAvatars.d.ts +3 -0
  330. package/dist/hooks/useAvatars.d.ts.map +1 -0
  331. package/dist/hooks/useAvatars.js +1 -0
  332. package/dist/hooks/useAvatars.js.map +1 -0
  333. package/dist/hooks/useCameraToggle.d.ts +5 -0
  334. package/dist/hooks/useCameraToggle.d.ts.map +1 -0
  335. package/dist/hooks/useCameraToggle.js +1 -0
  336. package/dist/hooks/useCameraToggle.js.map +1 -0
  337. package/dist/hooks/useKeyboard.d.ts +5 -0
  338. package/dist/hooks/useKeyboard.d.ts.map +1 -0
  339. package/dist/hooks/useKeyboard.js +1 -0
  340. package/dist/hooks/useKeyboard.js.map +1 -0
  341. package/dist/hooks/useKeyboardSlide.d.ts +5 -0
  342. package/dist/hooks/useKeyboardSlide.d.ts.map +1 -0
  343. package/dist/hooks/useKeyboardSlide.js +1 -0
  344. package/dist/hooks/useKeyboardSlide.js.map +1 -0
  345. package/dist/hooks/useLivestreamInfo.d.ts +15 -0
  346. package/dist/hooks/useLivestreamInfo.d.ts.map +1 -0
  347. package/dist/hooks/useLivestreamInfo.js +1 -0
  348. package/dist/hooks/useLivestreamInfo.js.map +1 -0
  349. package/dist/hooks/useOuterAndInnerDimensions.d.ts +10 -0
  350. package/dist/hooks/useOuterAndInnerDimensions.d.ts.map +1 -0
  351. package/dist/hooks/useOuterAndInnerDimensions.js +1 -0
  352. package/dist/hooks/useOuterAndInnerDimensions.js.map +1 -0
  353. package/dist/hooks/usePlayerDimensions.d.ts +12 -0
  354. package/dist/hooks/usePlayerDimensions.d.ts.map +1 -0
  355. package/dist/hooks/usePlayerDimensions.js +1 -0
  356. package/dist/hooks/usePlayerDimensions.js.map +1 -0
  357. package/dist/hooks/usePointerDevice.d.ts +12 -0
  358. package/dist/hooks/usePointerDevice.d.ts.map +1 -0
  359. package/dist/hooks/usePointerDevice.js +1 -0
  360. package/dist/hooks/usePointerDevice.js.map +1 -0
  361. package/dist/hooks/useSegmentDimensions.d.ts +6 -0
  362. package/dist/hooks/useSegmentDimensions.d.ts.map +1 -0
  363. package/dist/hooks/useSegmentDimensions.js +1 -0
  364. package/dist/hooks/useSegmentDimensions.js.map +1 -0
  365. package/dist/hooks/useSegmentTiming.d.ts +9 -0
  366. package/dist/hooks/useSegmentTiming.d.ts.map +1 -0
  367. package/dist/hooks/useSegmentTiming.js +1 -0
  368. package/dist/hooks/useSegmentTiming.js.map +1 -0
  369. package/dist/i18n/i18next-config.d.ts +41 -0
  370. package/dist/i18n/i18next-config.d.ts.map +1 -0
  371. package/dist/i18n/i18next-config.js +264 -0
  372. package/dist/i18n/i18next-config.js.map +1 -0
  373. package/dist/i18n/index.d.ts +11 -0
  374. package/dist/i18n/index.d.ts.map +1 -0
  375. package/dist/i18n/index.js +45 -0
  376. package/dist/i18n/index.js.map +1 -0
  377. package/dist/i18n/provider.d.ts +14 -0
  378. package/dist/i18n/provider.d.ts.map +1 -0
  379. package/dist/i18n/provider.js +58 -0
  380. package/dist/i18n/provider.js.map +1 -0
  381. package/dist/index.d.ts +33 -0
  382. package/dist/index.d.ts.map +1 -0
  383. package/dist/index.js +9 -1
  384. package/dist/index.js.map +1 -0
  385. package/dist/lib/browser.d.ts +2 -0
  386. package/dist/lib/browser.d.ts.map +1 -0
  387. package/dist/lib/browser.js +1 -0
  388. package/dist/lib/browser.js.map +1 -0
  389. package/dist/lib/facet.d.ts +11 -0
  390. package/dist/lib/facet.d.ts.map +1 -0
  391. package/dist/lib/facet.js +1 -0
  392. package/dist/lib/facet.js.map +1 -0
  393. package/dist/lib/metadata-constants.d.ts +13 -0
  394. package/dist/lib/metadata-constants.d.ts.map +1 -0
  395. package/dist/lib/metadata-constants.js +1 -0
  396. package/dist/lib/metadata-constants.js.map +1 -0
  397. package/dist/lib/system-messages.d.ts +49 -0
  398. package/dist/lib/system-messages.d.ts.map +1 -0
  399. package/dist/lib/system-messages.js +1 -0
  400. package/dist/lib/system-messages.js.map +1 -0
  401. package/dist/lib/theme/atoms.d.ts +4226 -0
  402. package/dist/lib/theme/atoms.d.ts.map +1 -0
  403. package/dist/lib/theme/atoms.js +1 -0
  404. package/dist/lib/theme/atoms.js.map +1 -0
  405. package/dist/lib/theme/atoms.types.d.ts +228 -0
  406. package/dist/lib/theme/atoms.types.d.ts.map +1 -0
  407. package/dist/lib/theme/atoms.types.js +1 -0
  408. package/dist/lib/theme/atoms.types.js.map +1 -0
  409. package/dist/lib/theme/index.d.ts +6 -0
  410. package/dist/lib/theme/index.d.ts.map +1 -0
  411. package/dist/lib/theme/index.js +1 -0
  412. package/dist/lib/theme/index.js.map +1 -0
  413. package/dist/lib/theme/theme.d.ts +327 -0
  414. package/dist/lib/theme/theme.d.ts.map +1 -0
  415. package/dist/lib/theme/theme.js +1 -0
  416. package/dist/lib/theme/theme.js.map +1 -0
  417. package/dist/lib/theme/tokens.d.ts +766 -0
  418. package/dist/lib/theme/tokens.d.ts.map +1 -0
  419. package/dist/lib/theme/tokens.js +1 -0
  420. package/dist/lib/theme/tokens.js.map +1 -0
  421. package/dist/lib/utils.d.ts +53 -0
  422. package/dist/lib/utils.d.ts.map +1 -0
  423. package/dist/lib/utils.js +1 -0
  424. package/dist/lib/utils.js.map +1 -0
  425. package/dist/livestream-provider/index.d.ts +13 -0
  426. package/dist/livestream-provider/index.d.ts.map +1 -0
  427. package/dist/livestream-provider/index.js +1 -0
  428. package/dist/livestream-provider/index.js.map +1 -0
  429. package/dist/livestream-provider/websocket.d.ts +2 -0
  430. package/dist/livestream-provider/websocket.d.ts.map +1 -0
  431. package/dist/livestream-provider/websocket.js +1 -0
  432. package/dist/livestream-provider/websocket.js.map +1 -0
  433. package/dist/livestream-store/chat.d.ts +21 -0
  434. package/dist/livestream-store/chat.d.ts.map +1 -0
  435. package/dist/livestream-store/chat.js +1 -0
  436. package/dist/livestream-store/chat.js.map +1 -0
  437. package/dist/livestream-store/context.d.ts +7 -0
  438. package/dist/livestream-store/context.d.ts.map +1 -0
  439. package/dist/livestream-store/context.js +1 -0
  440. package/dist/livestream-store/context.js.map +1 -0
  441. package/dist/livestream-store/index.d.ts +5 -0
  442. package/dist/livestream-store/index.d.ts.map +1 -0
  443. package/dist/livestream-store/index.js +1 -0
  444. package/dist/livestream-store/index.js.map +1 -0
  445. package/dist/livestream-store/livestream-state.d.ts +29 -0
  446. package/dist/livestream-store/livestream-state.d.ts.map +1 -0
  447. package/dist/livestream-store/livestream-state.js +1 -0
  448. package/dist/livestream-store/livestream-state.js.map +1 -0
  449. package/dist/livestream-store/livestream-store.d.ts +14 -0
  450. package/dist/livestream-store/livestream-store.d.ts.map +1 -0
  451. package/dist/livestream-store/livestream-store.js +1 -0
  452. package/dist/livestream-store/livestream-store.js.map +1 -0
  453. package/dist/livestream-store/problems.d.ts +4 -0
  454. package/dist/livestream-store/problems.d.ts.map +1 -0
  455. package/dist/livestream-store/problems.js +1 -0
  456. package/dist/livestream-store/problems.js.map +1 -0
  457. package/dist/livestream-store/stream-key.d.ts +9 -0
  458. package/dist/livestream-store/stream-key.d.ts.map +1 -0
  459. package/dist/livestream-store/stream-key.js +1 -0
  460. package/dist/livestream-store/stream-key.js.map +1 -0
  461. package/dist/livestream-store/websocket-consumer.d.ts +3 -0
  462. package/dist/livestream-store/websocket-consumer.d.ts.map +1 -0
  463. package/dist/livestream-store/websocket-consumer.js +1 -0
  464. package/dist/livestream-store/websocket-consumer.js.map +1 -0
  465. package/dist/player-store/context.d.ts +10 -0
  466. package/dist/player-store/context.d.ts.map +1 -0
  467. package/dist/player-store/context.js +1 -0
  468. package/dist/player-store/context.js.map +1 -0
  469. package/dist/player-store/index.d.ts +6 -0
  470. package/dist/player-store/index.d.ts.map +1 -0
  471. package/dist/player-store/index.js +1 -0
  472. package/dist/player-store/index.js.map +1 -0
  473. package/dist/player-store/player-provider.d.ts +12 -0
  474. package/dist/player-store/player-provider.d.ts.map +1 -0
  475. package/dist/player-store/player-provider.js +1 -0
  476. package/dist/player-store/player-provider.js.map +1 -0
  477. package/dist/player-store/player-state.d.ts +138 -0
  478. package/dist/player-store/player-state.d.ts.map +1 -0
  479. package/dist/player-store/player-state.js +1 -0
  480. package/dist/player-store/player-state.js.map +1 -0
  481. package/dist/player-store/player-store.d.ts +18 -0
  482. package/dist/player-store/player-store.d.ts.map +1 -0
  483. package/dist/player-store/player-store.js +1 -0
  484. package/dist/player-store/player-store.js.map +1 -0
  485. package/dist/player-store/single-player-provider.d.ts +61 -0
  486. package/dist/player-store/single-player-provider.d.ts.map +1 -0
  487. package/dist/player-store/single-player-provider.js +1 -0
  488. package/dist/player-store/single-player-provider.js.map +1 -0
  489. package/dist/storage/index.d.ts +4 -0
  490. package/dist/storage/index.d.ts.map +1 -0
  491. package/dist/storage/index.js +1 -0
  492. package/dist/storage/index.js.map +1 -0
  493. package/dist/storage/lock.d.ts +8 -0
  494. package/dist/storage/lock.d.ts.map +1 -0
  495. package/dist/storage/lock.js +1 -0
  496. package/dist/storage/lock.js.map +1 -0
  497. package/dist/storage/storage.d.ts +7 -0
  498. package/dist/storage/storage.d.ts.map +1 -0
  499. package/dist/storage/storage.js +1 -0
  500. package/dist/storage/storage.js.map +1 -0
  501. package/dist/storage/storage.native.d.ts +7 -0
  502. package/dist/storage/storage.native.d.ts.map +1 -0
  503. package/dist/storage/storage.native.js +1 -0
  504. package/dist/storage/storage.native.js.map +1 -0
  505. package/dist/storage/storage.shared.d.ts +6 -0
  506. package/dist/storage/storage.shared.d.ts.map +1 -0
  507. package/dist/storage/storage.shared.js +1 -0
  508. package/dist/storage/storage.shared.js.map +1 -0
  509. package/dist/streamplace-provider/context.d.ts +7 -0
  510. package/dist/streamplace-provider/context.d.ts.map +1 -0
  511. package/dist/streamplace-provider/context.js +1 -0
  512. package/dist/streamplace-provider/context.js.map +1 -0
  513. package/dist/streamplace-provider/index.d.ts +11 -0
  514. package/dist/streamplace-provider/index.d.ts.map +1 -0
  515. package/dist/streamplace-provider/index.js +1 -0
  516. package/dist/streamplace-provider/index.js.map +1 -0
  517. package/dist/streamplace-provider/poller.d.ts +5 -0
  518. package/dist/streamplace-provider/poller.d.ts.map +1 -0
  519. package/dist/streamplace-provider/poller.js +1 -0
  520. package/dist/streamplace-provider/poller.js.map +1 -0
  521. package/dist/streamplace-provider/xrpc.d.ts +1 -0
  522. package/dist/streamplace-provider/xrpc.d.ts.map +1 -0
  523. package/dist/streamplace-provider/xrpc.js +1 -0
  524. package/dist/streamplace-provider/xrpc.js.map +1 -0
  525. package/dist/streamplace-store/block.d.ts +9 -0
  526. package/dist/streamplace-store/block.d.ts.map +1 -0
  527. package/dist/streamplace-store/block.js +1 -0
  528. package/dist/streamplace-store/block.js.map +1 -0
  529. package/dist/streamplace-store/content-metadata-actions.d.ts +9 -0
  530. package/dist/streamplace-store/content-metadata-actions.d.ts.map +1 -0
  531. package/dist/streamplace-store/content-metadata-actions.js +1 -0
  532. package/dist/streamplace-store/content-metadata-actions.js.map +1 -0
  533. package/dist/streamplace-store/graph.d.ts +22 -0
  534. package/dist/streamplace-store/graph.d.ts.map +1 -0
  535. package/dist/streamplace-store/graph.js +1 -0
  536. package/dist/streamplace-store/graph.js.map +1 -0
  537. package/dist/streamplace-store/index.d.ts +4 -0
  538. package/dist/streamplace-store/index.d.ts.map +1 -0
  539. package/dist/streamplace-store/index.js +1 -0
  540. package/dist/streamplace-store/index.js.map +1 -0
  541. package/dist/streamplace-store/stream.d.ts +11 -0
  542. package/dist/streamplace-store/stream.d.ts.map +1 -0
  543. package/dist/streamplace-store/stream.js +1 -0
  544. package/dist/streamplace-store/stream.js.map +1 -0
  545. package/dist/streamplace-store/streamplace-store.d.ts +92 -0
  546. package/dist/streamplace-store/streamplace-store.d.ts.map +1 -0
  547. package/dist/streamplace-store/streamplace-store.js +158 -3
  548. package/dist/streamplace-store/streamplace-store.js.map +1 -0
  549. package/dist/streamplace-store/user.d.ts +6 -0
  550. package/dist/streamplace-store/user.d.ts.map +1 -0
  551. package/dist/streamplace-store/user.js +1 -0
  552. package/dist/streamplace-store/user.js.map +1 -0
  553. package/dist/streamplace-store/xrpc.d.ts +3 -0
  554. package/dist/streamplace-store/xrpc.d.ts.map +1 -0
  555. package/dist/streamplace-store/xrpc.js +1 -0
  556. package/dist/streamplace-store/xrpc.js.map +1 -0
  557. package/dist/ui/index.d.ts +15 -0
  558. package/dist/ui/index.d.ts.map +1 -0
  559. package/dist/ui/index.js +1 -0
  560. package/dist/ui/index.js.map +1 -0
  561. package/locales/en-US/common.ftl +41 -0
  562. package/locales/en-US/settings.ftl +122 -0
  563. package/locales/es-ES/common.ftl +41 -0
  564. package/locales/es-ES/settings.ftl +161 -0
  565. package/locales/fr-FR/common.ftl +41 -0
  566. package/locales/fr-FR/settings.ftl +158 -0
  567. package/locales/manifest.json +36 -0
  568. package/locales/pt-BR/common.ftl +41 -0
  569. package/locales/pt-BR/settings.ftl +159 -0
  570. package/locales/zh-Hant/common.ftl +41 -0
  571. package/locales/zh-Hant/settings.ftl +154 -0
  572. package/node-compile-cache/v22.15.0-x64-efe9a9df-0/37be0eec +0 -0
  573. package/package.json +24 -3
  574. package/scripts/compile-translations.js +254 -0
  575. package/scripts/extract-i18n.js +336 -0
  576. package/src/components/chat/chat-box.tsx +28 -9
  577. package/src/components/content-metadata/content-metadata-form.tsx +3 -1
  578. package/src/components/danmu/danmu-message.tsx +182 -0
  579. package/src/components/danmu/danmu-overlay-obs.tsx +44 -0
  580. package/src/components/danmu/danmu-overlay.tsx +225 -0
  581. package/src/components/danmu/math.ts +27 -0
  582. package/src/components/danmu/mu.tsx +28 -0
  583. package/src/components/danmu/use-danmu-lanes.ts +114 -0
  584. package/src/components/mobile-player/fullscreen.native.tsx +26 -0
  585. package/src/components/mobile-player/fullscreen.tsx +23 -1
  586. package/src/components/mobile-player/ui/index.ts +1 -0
  587. package/src/components/mobile-player/ui/viewer-context-menu.tsx +49 -26
  588. package/src/components/mobile-player/ui/viewer-count.tsx +39 -0
  589. package/src/components/mobile-player/ui/viewers.tsx +10 -14
  590. package/src/components/ui/button.tsx +22 -4
  591. package/src/components/ui/dropdown.native.tsx +696 -0
  592. package/src/components/ui/dropdown.tsx +76 -96
  593. package/src/components/ui/index.ts +1 -0
  594. package/src/components/ui/menu.tsx +171 -0
  595. package/src/components/ui/resizeable.tsx +1 -1
  596. package/src/components/ui/toast.tsx +6 -1
  597. package/src/i18n/i18next-config.ts +301 -0
  598. package/src/i18n/index.ts +50 -0
  599. package/src/i18n/provider.tsx +70 -0
  600. package/src/index.tsx +7 -0
  601. package/src/streamplace-store/streamplace-store.tsx +184 -2
  602. package/tsconfig.json +11 -2
  603. package/tsconfig.tsbuildinfo +0 -1
@@ -1,23 +1,18 @@
1
- import BottomSheet, { BottomSheetView } from "@gorhom/bottom-sheet";
2
1
  import * as DropdownMenuPrimitive from "@rn-primitives/dropdown-menu";
3
2
  import {
4
3
  Check,
5
- CheckCircle,
6
4
  ChevronDown,
7
5
  ChevronRight,
8
6
  ChevronUp,
9
- Circle,
10
7
  } from "lucide-react-native";
11
- import React, { forwardRef, ReactNode, useRef } from "react";
8
+ import React, { forwardRef, ReactNode } from "react";
12
9
  import {
13
10
  Platform,
14
- Pressable,
15
11
  ScrollView,
16
12
  StyleSheet,
17
13
  useWindowDimensions,
18
14
  View,
19
15
  } from "react-native";
20
- import { zero } from "../..";
21
16
  import {
22
17
  a,
23
18
  borderRadius,
@@ -45,69 +40,45 @@ import { Text } from "./text";
45
40
  export const DropdownMenu = DropdownMenuPrimitive.Root;
46
41
  export const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
47
42
  export const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
48
- export const DropdownMenuSub = DropdownMenuPrimitive.Sub;
49
- export const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
50
-
51
- export const DropdownMenuBottomSheet = forwardRef<
52
- any,
53
- DropdownMenuPrimitive.ContentProps & {
54
- overlayStyle?: any;
55
- portalHost?: string;
56
- }
57
- >(function DropdownMenuBottomSheet(
58
- { overlayStyle, portalHost, children, ...rest },
59
- _ref,
60
- ) {
61
- // Use the primitives' context to know if open
62
- const { open, onOpenChange } = DropdownMenuPrimitive.useRootContext();
63
- const { zero: zt } = useTheme();
64
- const sheetRef = useRef<BottomSheet>(null);
65
43
 
44
+ export const DropdownMenuRadioGroup = forwardRef<
45
+ React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>,
46
+ React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioGroup>
47
+ >(({ children, ...props }, ref) => {
66
48
  return (
67
- <DropdownMenuPrimitive.Portal hostName={portalHost}>
68
- <BottomSheet
69
- ref={sheetRef}
70
- enablePanDownToClose
71
- enableDynamicSizing
72
- enableContentPanningGesture={false}
73
- backdropComponent={({ style }) => (
74
- <Pressable
75
- style={[style, StyleSheet.absoluteFill]}
76
- onPress={() => onOpenChange?.(false)}
77
- />
78
- )}
79
- onClose={() => onOpenChange?.(false)}
80
- style={[overlayStyle, StyleSheet.flatten(rest.style)]}
81
- backgroundStyle={[zt.bg.popover, a.radius.all.md, a.shadows.md, p[1]]}
82
- handleIndicatorStyle={[
83
- a.sizes.width[12],
84
- a.sizes.height[1],
85
- zt.bg.mutedForeground,
86
- ]}
87
- >
88
- <BottomSheetView style={[px[4]]}>
89
- {typeof children === "function"
90
- ? children({ pressed: true })
91
- : children}
92
- </BottomSheetView>
93
- </BottomSheet>
94
- </DropdownMenuPrimitive.Portal>
49
+ <DropdownMenuPrimitive.RadioGroup ref={ref} {...props}>
50
+ {children}
51
+ </DropdownMenuPrimitive.RadioGroup>
95
52
  );
96
53
  });
97
54
 
55
+ export const DropdownMenuSub = forwardRef<any, any>(
56
+ ({ children, ...props }, ref) => {
57
+ return (
58
+ <DropdownMenuPrimitive.Sub ref={ref} {...props}>
59
+ {children}
60
+ </DropdownMenuPrimitive.Sub>
61
+ );
62
+ },
63
+ );
64
+
98
65
  export const DropdownMenuSubTrigger = forwardRef<
99
66
  any,
100
- DropdownMenuPrimitive.SubTriggerProps & { inset?: boolean } & {
67
+ DropdownMenuPrimitive.SubTriggerProps & {
68
+ inset?: boolean;
69
+ subMenuTitle?: string;
70
+ } & {
101
71
  ref?: React.RefObject<DropdownMenuPrimitive.SubTriggerRef>;
102
72
  className?: string;
103
73
  inset?: boolean;
104
74
  children?: React.ReactNode;
105
75
  }
106
- >(({ inset, children, ...props }, ref) => {
107
- const { open } = DropdownMenuPrimitive.useSubContext();
76
+ >(({ inset, children, subMenuTitle, ...props }, ref) => {
108
77
  const { icons } = useTheme();
78
+ const { open } = DropdownMenuPrimitive.useSubContext();
109
79
  const Icon =
110
80
  Platform.OS === "web" ? ChevronRight : open ? ChevronUp : ChevronDown;
81
+
111
82
  return (
112
83
  <TextClassContext.Provider
113
84
  value={objectFromObjects([
@@ -138,15 +109,17 @@ export const DropdownMenuSubTrigger = forwardRef<
138
109
 
139
110
  export const DropdownMenuSubContent = forwardRef<
140
111
  any,
141
- DropdownMenuPrimitive.SubContentProps
142
- >((props, ref) => {
112
+ DropdownMenuPrimitive.SubContentProps & { children?: ReactNode }
113
+ >(({ children, ...props }, ref) => {
143
114
  const { zero: zt } = useTheme();
115
+
144
116
  return (
145
117
  <DropdownMenuPrimitive.SubContent
146
118
  ref={ref}
147
119
  style={[
148
120
  a.zIndex[50],
149
- a.sizes.minWidth[32],
121
+ a.sizes.minWidth[64],
122
+ a.sizes.maxWidth[64],
150
123
  a.overflow.hidden,
151
124
  a.radius.all.md,
152
125
  a.borders.width.thin,
@@ -157,7 +130,9 @@ export const DropdownMenuSubContent = forwardRef<
157
130
  a.shadows.md,
158
131
  ]}
159
132
  {...props}
160
- />
133
+ >
134
+ {children}
135
+ </DropdownMenuPrimitive.SubContent>
161
136
  );
162
137
  });
163
138
 
@@ -169,6 +144,9 @@ export const DropdownMenuContent = forwardRef<
169
144
  }
170
145
  >(({ overlayStyle, portalHost, style, children, ...props }, ref) => {
171
146
  const { zero: zt } = useTheme();
147
+ const { height } = useWindowDimensions();
148
+ const maxHeight = height * 0.9;
149
+
172
150
  return (
173
151
  <DropdownMenuPrimitive.Portal hostName={portalHost}>
174
152
  <DropdownMenuPrimitive.Overlay
@@ -182,8 +160,9 @@ export const DropdownMenuContent = forwardRef<
182
160
  style={
183
161
  [
184
162
  a.zIndex[50],
185
- a.sizes.minWidth[32],
163
+ a.sizes.minWidth[64],
186
164
  a.sizes.maxWidth[64],
165
+ { maxHeight: maxHeight },
187
166
  a.overflow.hidden,
188
167
  a.radius.all.md,
189
168
  a.borders.width.thin,
@@ -196,7 +175,7 @@ export const DropdownMenuContent = forwardRef<
196
175
  }
197
176
  {...props}
198
177
  >
199
- <ScrollView showsVerticalScrollIndicator={true}>
178
+ <ScrollView showsVerticalScrollIndicator={false}>
200
179
  {typeof children === "function"
201
180
  ? children({ pressed: false })
202
181
  : children}
@@ -215,7 +194,7 @@ export const DropdownMenuContentWithoutPortal = forwardRef<
215
194
  }
216
195
  >(
217
196
  (
218
- { overlayStyle, maxHeightPercentage = 0.8, children, style, ...props },
197
+ { overlayStyle, maxHeightPercentage = 0.9, children, style, ...props },
219
198
  ref,
220
199
  ) => {
221
200
  const { theme } = useTheme();
@@ -234,8 +213,9 @@ export const DropdownMenuContentWithoutPortal = forwardRef<
234
213
  style={
235
214
  [
236
215
  { zIndex: 999999 },
237
- a.sizes.minWidth[32],
216
+ a.sizes.minWidth[64],
238
217
  a.sizes.maxWidth[64],
218
+ { maxHeight: maxHeight },
239
219
  a.radius.all.md,
240
220
  a.borders.width.thin,
241
221
  { borderColor: theme.colors.border },
@@ -247,7 +227,7 @@ export const DropdownMenuContentWithoutPortal = forwardRef<
247
227
  }
248
228
  {...props}
249
229
  >
250
- <ScrollView style={{ maxHeight }} showsVerticalScrollIndicator={true}>
230
+ <ScrollView showsVerticalScrollIndicator={false}>
251
231
  {typeof children === "function"
252
232
  ? children({ pressed: false })
253
233
  : children}
@@ -258,29 +238,32 @@ export const DropdownMenuContentWithoutPortal = forwardRef<
258
238
  },
259
239
  );
260
240
 
261
- /// Responsive Dropdown Menu Content. On mobile this will render a *bottom sheet* that is **portaled to the root of the app**.
262
- /// Prefer passing scoped content in as **otherwise it may crash the app**.
263
- export const ResponsiveDropdownMenuContent = forwardRef<any, any>(
264
- ({ children, ...props }, ref) => {
265
- const { width } = useWindowDimensions();
241
+ export const ResponsiveDropdownMenuContent = forwardRef<
242
+ any,
243
+ any & { onModeChange?: (isSheet: boolean) => void }
244
+ >(({ children, onModeChange, ...props }, ref) => {
245
+ const { width } = useWindowDimensions();
246
+
247
+ const isBottomSheet =
248
+ Platform.OS !== "web" || (Platform.OS === "web" && width <= 980);
266
249
 
267
- // On web, you might want to always use the normal dropdown
268
- const isBottomSheet = Platform.OS !== "web" && width < 800;
250
+ React.useEffect(() => {
251
+ onModeChange?.(isBottomSheet);
252
+ }, [isBottomSheet, onModeChange]);
269
253
 
270
- if (isBottomSheet) {
271
- return (
272
- <DropdownMenuBottomSheet ref={ref} {...props}>
273
- <ScrollView style={[zero.pb[12]]}>{children}</ScrollView>
274
- </DropdownMenuBottomSheet>
275
- );
276
- }
254
+ if (isBottomSheet) {
277
255
  return (
278
- <DropdownMenuContent ref={ref} {...props}>
256
+ <DropdownMenuContent align="start" ref={ref} {...props}>
279
257
  {children}
280
258
  </DropdownMenuContent>
281
259
  );
282
- },
283
- );
260
+ }
261
+ return (
262
+ <DropdownMenuContent ref={ref} {...props}>
263
+ {children}
264
+ </DropdownMenuContent>
265
+ );
266
+ });
284
267
 
285
268
  export const DropdownMenuItem = forwardRef<
286
269
  any,
@@ -288,7 +271,7 @@ export const DropdownMenuItem = forwardRef<
288
271
  >(({ inset, disabled, style, children, ...props }, ref) => {
289
272
  const { theme } = useTheme();
290
273
  return (
291
- <Pressable {...props}>
274
+ <DropdownMenuPrimitive.Item ref={ref} {...props}>
292
275
  <TextClassContext.Provider
293
276
  value={objectFromObjects([
294
277
  { color: theme.colors.popoverForeground },
@@ -316,7 +299,7 @@ export const DropdownMenuItem = forwardRef<
316
299
  )}
317
300
  </View>
318
301
  </TextClassContext.Provider>
319
- </Pressable>
302
+ </DropdownMenuPrimitive.Item>
320
303
  );
321
304
  });
322
305
 
@@ -328,6 +311,7 @@ export const DropdownMenuCheckboxItem = forwardRef<
328
311
  }
329
312
  >(({ children, checked, ...props }, ref) => {
330
313
  const { theme } = useTheme();
314
+
331
315
  return (
332
316
  <DropdownMenuPrimitive.CheckboxItem
333
317
  ref={ref}
@@ -348,19 +332,9 @@ export const DropdownMenuCheckboxItem = forwardRef<
348
332
  >
349
333
  {children}
350
334
  <View style={[pl[1], layout.position.absolute, right[1]]}>
351
- {checked ? (
352
- <CheckCircle
353
- size={14}
354
- strokeWidth={3}
355
- color={theme.colors.foreground}
356
- />
357
- ) : (
358
- <Circle
359
- size={14}
360
- strokeWidth={3}
361
- color={theme.colors.mutedForeground}
362
- />
363
- )}
335
+ <DropdownMenuPrimitive.ItemIndicator>
336
+ <Check size={14} strokeWidth={3} color={theme.colors.foreground} />
337
+ </DropdownMenuPrimitive.ItemIndicator>
364
338
  </View>
365
339
  </View>
366
340
  </DropdownMenuPrimitive.CheckboxItem>
@@ -372,13 +346,16 @@ export const DropdownMenuRadioItem = forwardRef<
372
346
  DropdownMenuPrimitive.RadioItemProps & {
373
347
  ref?: React.RefObject<DropdownMenuPrimitive.RadioItemRef>;
374
348
  children?: React.ReactNode;
349
+ value?: string;
375
350
  }
376
- >(({ children, ...props }, ref) => {
351
+ >(({ children, value, ...props }, ref) => {
377
352
  const { theme } = useTheme();
353
+
378
354
  return (
379
355
  <DropdownMenuPrimitive.RadioItem
380
356
  ref={ref}
381
357
  closeOnPress={props.closeOnPress || false}
358
+ value={value}
382
359
  {...props}
383
360
  >
384
361
  <View
@@ -504,3 +481,6 @@ export const DropdownMenuInfo = forwardRef<any, any>(
504
481
  );
505
482
  },
506
483
  );
484
+
485
+ // Re-export DropdownMenuBottomSheet for compatibility with native
486
+ export const DropdownMenuBottomSheet = DropdownMenuContent;
@@ -14,6 +14,7 @@ export * from "./info-box";
14
14
  export * from "./info-row";
15
15
  export * from "./input";
16
16
  export * from "./loader";
17
+ export * from "./menu";
17
18
  export * from "./resizeable";
18
19
  export * from "./slider";
19
20
  export * from "./text";
@@ -0,0 +1,171 @@
1
+ import { forwardRef, ReactNode } from "react";
2
+ import { Platform, View, ViewStyle } from "react-native";
3
+ import {
4
+ a,
5
+ borderRadius,
6
+ fontSize,
7
+ gap,
8
+ mt,
9
+ mx,
10
+ p,
11
+ pb,
12
+ pl,
13
+ pr,
14
+ pt,
15
+ px,
16
+ py,
17
+ } from "../../lib/theme/atoms";
18
+ import { mergeStyles, useTheme } from "../../ui";
19
+ import { Text } from "./text";
20
+
21
+ export interface MenuContainerProps {
22
+ children: ReactNode;
23
+ style?: ViewStyle;
24
+ }
25
+
26
+ export const MenuContainer = forwardRef<View, MenuContainerProps>(
27
+ ({ children, style }, ref) => {
28
+ const { theme } = useTheme();
29
+ return (
30
+ <View ref={ref} style={[gap.all[4], mt[4], mx[2], style]}>
31
+ {children}
32
+ </View>
33
+ );
34
+ },
35
+ );
36
+
37
+ export interface MenuGroupProps {
38
+ children: ReactNode;
39
+ style?: ViewStyle;
40
+ }
41
+
42
+ export const MenuGroup = forwardRef<View, MenuGroupProps>(
43
+ ({ children, style }, ref) => {
44
+ const { theme } = useTheme();
45
+ return (
46
+ <View
47
+ ref={ref}
48
+ style={[
49
+ { backgroundColor: theme.colors.muted + "c0" },
50
+ Platform.OS === "web" ? [px[1], py[1]] : p[1],
51
+ gap.all[1],
52
+ { borderRadius: borderRadius.lg },
53
+ style,
54
+ ]}
55
+ >
56
+ {children}
57
+ </View>
58
+ );
59
+ },
60
+ );
61
+
62
+ export interface MenuItemProps {
63
+ children: ReactNode;
64
+ disabled?: boolean;
65
+ style?: ViewStyle;
66
+ onPress?: () => void;
67
+ }
68
+
69
+ export const MenuItem = forwardRef<View, MenuItemProps>(
70
+ ({ children, disabled, style }, ref) => {
71
+ const { theme } = useTheme();
72
+ return (
73
+ <View
74
+ ref={ref}
75
+ style={[
76
+ a.layout.flex.row,
77
+ a.layout.flex.alignCenter,
78
+ a.radius.all.sm,
79
+ py[1],
80
+ pl[3],
81
+ pr[2],
82
+ disabled && { opacity: 0.5 },
83
+ style,
84
+ ]}
85
+ >
86
+ {typeof children === "string" ? (
87
+ <Text style={{ color: theme.colors.popoverForeground }}>
88
+ {children}
89
+ </Text>
90
+ ) : (
91
+ children
92
+ )}
93
+ </View>
94
+ );
95
+ },
96
+ );
97
+
98
+ export interface MenuLabelProps {
99
+ children: ReactNode;
100
+ style?: ViewStyle;
101
+ }
102
+
103
+ export const MenuLabel = forwardRef<View, MenuLabelProps>(
104
+ ({ children, style }, ref) => {
105
+ const { theme } = useTheme();
106
+ return (
107
+ <Text
108
+ ref={ref as any}
109
+ style={mergeStyles(
110
+ px[4],
111
+ py[2],
112
+ { color: theme.colors.textMuted },
113
+ a.fontSize.base,
114
+ style,
115
+ )}
116
+ >
117
+ {children}
118
+ </Text>
119
+ );
120
+ },
121
+ );
122
+
123
+ export interface MenuSeparatorProps {
124
+ style?: ViewStyle;
125
+ }
126
+
127
+ export const MenuSeparator = forwardRef<View, MenuSeparatorProps>(
128
+ ({ style }, ref) => {
129
+ const { theme } = useTheme();
130
+ return (
131
+ <View
132
+ ref={ref}
133
+ style={[
134
+ mx[2],
135
+ {
136
+ height: 1,
137
+ backgroundColor: theme.colors.border,
138
+ marginVertical: 0,
139
+ },
140
+ style,
141
+ ]}
142
+ />
143
+ );
144
+ },
145
+ );
146
+
147
+ export interface MenuInfoProps {
148
+ description: string;
149
+ style?: ViewStyle;
150
+ }
151
+
152
+ export const MenuInfo = forwardRef<View, MenuInfoProps>(
153
+ ({ description, style }, ref) => {
154
+ const { theme } = useTheme();
155
+ return (
156
+ <Text
157
+ ref={ref as any}
158
+ style={mergeStyles(
159
+ { color: theme.colors.textMuted, marginTop: -8 },
160
+ pt[1],
161
+ pl[4],
162
+ pb[2],
163
+ fontSize.sm,
164
+ style,
165
+ )}
166
+ >
167
+ {description}
168
+ </Text>
169
+ );
170
+ },
171
+ );
@@ -39,7 +39,7 @@ export function Resizable({
39
39
  }: ResizableChatSheetProps) {
40
40
  const { slideKeyboard } = useKeyboardSlide();
41
41
  const { bottom: safeBottom } = useSafeAreaInsets();
42
- const MAX_HEIGHT = (SCREEN_HEIGHT - safeBottom) * 0.5;
42
+ const MAX_HEIGHT = (SCREEN_HEIGHT - safeBottom) * 0.55;
43
43
  const MIN_HEIGHT = -(SCREEN_HEIGHT - safeBottom) * 0.2;
44
44
  const COLLAPSE_HEIGHT = (SCREEN_HEIGHT - safeBottom) * 0.1;
45
45
 
@@ -880,13 +880,18 @@ export function Toast({
880
880
  width: "100%",
881
881
  }}
882
882
  >
883
- <Button variant={buttonTypeMap[variant]} onPress={onAction}>
883
+ <Button
884
+ width="min"
885
+ variant={buttonTypeMap[variant]}
886
+ onPress={onAction}
887
+ >
884
888
  <Text style={{ color: theme.colors.foreground }}>
885
889
  {actionLabel}
886
890
  </Text>
887
891
  </Button>
888
892
  <Button
889
893
  variant="secondary"
894
+ width="min"
890
895
  onPress={() => onOpenChange(false)}
891
896
  >
892
897
  <Text style={{ color: theme.colors.foreground }}>