@xrift/world-components 0.47.0 → 0.49.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 (309) hide show
  1. package/dist/components/BillboardY/hooks.d.ts +1 -1
  2. package/dist/components/BillboardY/hooks.d.ts.map +1 -1
  3. package/dist/components/BillboardY/index.d.ts +1 -1
  4. package/dist/components/BillboardY/index.d.ts.map +1 -1
  5. package/dist/components/DevEnvironment/components/ControlsHelp.d.ts +1 -1
  6. package/dist/components/DevEnvironment/components/ControlsHelp.d.ts.map +1 -1
  7. package/dist/components/DevEnvironment/components/Crosshair.d.ts +1 -1
  8. package/dist/components/DevEnvironment/components/Crosshair.d.ts.map +1 -1
  9. package/dist/components/DevEnvironment/components/GrabSystem/index.d.ts +1 -1
  10. package/dist/components/DevEnvironment/components/GrabSystem/index.d.ts.map +1 -1
  11. package/dist/components/DevEnvironment/components/PhysicsPlayer.d.ts +1 -1
  12. package/dist/components/DevEnvironment/components/PhysicsPlayer.d.ts.map +1 -1
  13. package/dist/components/DevEnvironment/components/PointerLockStatus.d.ts +1 -1
  14. package/dist/components/DevEnvironment/components/PointerLockStatus.d.ts.map +1 -1
  15. package/dist/components/DevEnvironment/index.d.ts +1 -1
  16. package/dist/components/DevEnvironment/index.d.ts.map +1 -1
  17. package/dist/components/EntryLogBoard/components/AvatarIcon.d.ts +1 -1
  18. package/dist/components/EntryLogBoard/components/AvatarIcon.d.ts.map +1 -1
  19. package/dist/components/EntryLogBoard/components/LogRow.d.ts +1 -1
  20. package/dist/components/EntryLogBoard/components/LogRow.d.ts.map +1 -1
  21. package/dist/components/EntryLogBoard/index.d.ts +1 -1
  22. package/dist/components/EntryLogBoard/index.d.ts.map +1 -1
  23. package/dist/components/LiveVideoPlayer/components/ControlPanel/index.d.ts +1 -1
  24. package/dist/components/LiveVideoPlayer/components/ControlPanel/index.d.ts.map +1 -1
  25. package/dist/components/LiveVideoPlayer/components/LiveVideoTexture.d.ts +1 -1
  26. package/dist/components/LiveVideoPlayer/components/LiveVideoTexture.d.ts.map +1 -1
  27. package/dist/components/LiveVideoPlayer/index.d.ts +1 -1
  28. package/dist/components/LiveVideoPlayer/index.d.ts.map +1 -1
  29. package/dist/components/Mirror/index.d.ts +1 -1
  30. package/dist/components/Mirror/index.d.ts.map +1 -1
  31. package/dist/components/Portal/components/PortalGlow/index.d.ts +1 -1
  32. package/dist/components/Portal/components/PortalGlow/index.d.ts.map +1 -1
  33. package/dist/components/Portal/components/PortalParticles/index.d.ts +1 -1
  34. package/dist/components/Portal/components/PortalParticles/index.d.ts.map +1 -1
  35. package/dist/components/Portal/components/PortalPedestal/index.d.ts +1 -1
  36. package/dist/components/Portal/components/PortalPedestal/index.d.ts.map +1 -1
  37. package/dist/components/Portal/components/PortalThumbnail/index.d.ts +1 -1
  38. package/dist/components/Portal/components/PortalThumbnail/index.d.ts.map +1 -1
  39. package/dist/components/Portal/components/PortalVortex/index.d.ts +1 -1
  40. package/dist/components/Portal/components/PortalVortex/index.d.ts.map +1 -1
  41. package/dist/components/Portal/index.d.ts +1 -1
  42. package/dist/components/Portal/index.d.ts.map +1 -1
  43. package/dist/components/ScreenShareDisplay/index.d.ts +1 -1
  44. package/dist/components/ScreenShareDisplay/index.d.ts.map +1 -1
  45. package/dist/components/Skybox/index.d.ts +1 -1
  46. package/dist/components/Skybox/index.d.ts.map +1 -1
  47. package/dist/components/TagBoard/components/TagChip.d.ts +1 -1
  48. package/dist/components/TagBoard/components/TagChip.d.ts.map +1 -1
  49. package/dist/components/TagBoard/components/TagDisplay/index.d.ts +1 -1
  50. package/dist/components/TagBoard/components/TagDisplay/index.d.ts.map +1 -1
  51. package/dist/components/TagBoard/components/TagSelector/components/ActionButton.d.ts +1 -1
  52. package/dist/components/TagBoard/components/TagSelector/components/ActionButton.d.ts.map +1 -1
  53. package/dist/components/TagBoard/components/TagSelector/components/TagButton.d.ts +1 -1
  54. package/dist/components/TagBoard/components/TagSelector/components/TagButton.d.ts.map +1 -1
  55. package/dist/components/TagBoard/components/TagSelector/index.d.ts +1 -1
  56. package/dist/components/TagBoard/components/TagSelector/index.d.ts.map +1 -1
  57. package/dist/components/TagBoard/index.d.ts +1 -1
  58. package/dist/components/TagBoard/index.d.ts.map +1 -1
  59. package/dist/components/Video180Sphere/EyeView.d.ts +1 -1
  60. package/dist/components/Video180Sphere/EyeView.d.ts.map +1 -1
  61. package/dist/components/Video180Sphere/index.d.ts +1 -1
  62. package/dist/components/Video180Sphere/index.d.ts.map +1 -1
  63. package/dist/components/VideoPlayer/components/ControlPanel.d.ts +1 -1
  64. package/dist/components/VideoPlayer/components/ControlPanel.d.ts.map +1 -1
  65. package/dist/components/VideoPlayer/index.d.ts +1 -1
  66. package/dist/components/VideoPlayer/index.d.ts.map +1 -1
  67. package/dist/components/VideoScreen/constants.d.ts +27 -0
  68. package/dist/components/VideoScreen/constants.d.ts.map +1 -0
  69. package/dist/components/VideoScreen/constants.js +27 -0
  70. package/dist/components/VideoScreen/constants.js.map +1 -0
  71. package/dist/components/VideoScreen/hooks.d.ts +19 -0
  72. package/dist/components/VideoScreen/hooks.d.ts.map +1 -0
  73. package/dist/components/VideoScreen/hooks.js +69 -0
  74. package/dist/components/VideoScreen/hooks.js.map +1 -0
  75. package/dist/components/VideoScreen/index.d.ts +1 -1
  76. package/dist/components/VideoScreen/index.d.ts.map +1 -1
  77. package/dist/components/VideoScreen/index.js +22 -17
  78. package/dist/components/VideoScreen/index.js.map +1 -1
  79. package/dist/components/VideoScreen/types.d.ts +14 -4
  80. package/dist/components/VideoScreen/types.d.ts.map +1 -1
  81. package/dist/components/VideoScreen/utils.d.ts +73 -0
  82. package/dist/components/VideoScreen/utils.d.ts.map +1 -0
  83. package/dist/components/VideoScreen/utils.js +74 -0
  84. package/dist/components/VideoScreen/utils.js.map +1 -0
  85. package/dist/components/commons/IconButton/index.d.ts +1 -1
  86. package/dist/components/commons/IconButton/index.d.ts.map +1 -1
  87. package/dist/components/commons/PlaceholderScreen/index.d.ts +1 -1
  88. package/dist/components/commons/PlaceholderScreen/index.d.ts.map +1 -1
  89. package/dist/components/commons/VideoMesh/index.d.ts +1 -1
  90. package/dist/components/commons/VideoMesh/index.d.ts.map +1 -1
  91. package/dist/components/commons/VolumeControl/index.d.ts +1 -1
  92. package/dist/components/commons/VolumeControl/index.d.ts.map +1 -1
  93. package/dist/contexts/AudioVolumeContext.d.ts +2 -2
  94. package/dist/contexts/AudioVolumeContext.d.ts.map +1 -1
  95. package/dist/contexts/ConfirmContext.d.ts +1 -1
  96. package/dist/contexts/ConfirmContext.d.ts.map +1 -1
  97. package/dist/contexts/FileInputContext.d.ts +1 -1
  98. package/dist/contexts/FileInputContext.d.ts.map +1 -1
  99. package/dist/contexts/GrabbableContext.d.ts +1 -1
  100. package/dist/contexts/GrabbableContext.d.ts.map +1 -1
  101. package/dist/contexts/InstanceContext.d.ts +1 -1
  102. package/dist/contexts/InstanceContext.d.ts.map +1 -1
  103. package/dist/contexts/InstanceEventContext.d.ts +1 -1
  104. package/dist/contexts/InstanceEventContext.d.ts.map +1 -1
  105. package/dist/contexts/InstanceStateContext.d.ts +1 -1
  106. package/dist/contexts/InstanceStateContext.d.ts.map +1 -1
  107. package/dist/contexts/ItemContext.d.ts +23 -3
  108. package/dist/contexts/ItemContext.d.ts.map +1 -1
  109. package/dist/contexts/ItemContext.js +7 -3
  110. package/dist/contexts/ItemContext.js.map +1 -1
  111. package/dist/contexts/PlacementStateContext.d.ts +1 -1
  112. package/dist/contexts/PlacementStateContext.d.ts.map +1 -1
  113. package/dist/contexts/ScreenShareContext.d.ts +1 -1
  114. package/dist/contexts/ScreenShareContext.d.ts.map +1 -1
  115. package/dist/contexts/ServerClockContext.d.ts +1 -1
  116. package/dist/contexts/ServerClockContext.d.ts.map +1 -1
  117. package/dist/contexts/SharedFileContext.d.ts +1 -1
  118. package/dist/contexts/SharedFileContext.d.ts.map +1 -1
  119. package/dist/contexts/SpawnPointContext.d.ts +1 -1
  120. package/dist/contexts/SpawnPointContext.d.ts.map +1 -1
  121. package/dist/contexts/TeleportContext.d.ts +1 -1
  122. package/dist/contexts/TeleportContext.d.ts.map +1 -1
  123. package/dist/contexts/TextInputContext.d.ts +1 -1
  124. package/dist/contexts/TextInputContext.d.ts.map +1 -1
  125. package/dist/contexts/UsersContext.d.ts +1 -1
  126. package/dist/contexts/UsersContext.d.ts.map +1 -1
  127. package/dist/contexts/WorldContext.d.ts +1 -1
  128. package/dist/contexts/WorldContext.d.ts.map +1 -1
  129. package/dist/contexts/WorldStorageContext.d.ts +1 -1
  130. package/dist/contexts/WorldStorageContext.d.ts.map +1 -1
  131. package/dist/contexts/XRiftContext.d.ts +1 -1
  132. package/dist/contexts/XRiftContext.d.ts.map +1 -1
  133. package/dist/index.d.ts +3 -1
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +2 -0
  136. package/dist/index.js.map +1 -1
  137. package/package.json +7 -5
  138. package/dist/components/BillboardY/__tests__/utils.test.d.ts +0 -2
  139. package/dist/components/BillboardY/__tests__/utils.test.d.ts.map +0 -1
  140. package/dist/components/BillboardY/__tests__/utils.test.js +0 -45
  141. package/dist/components/BillboardY/__tests__/utils.test.js.map +0 -1
  142. package/dist/components/DevEnvironment/__tests__/utils.test.d.ts +0 -2
  143. package/dist/components/DevEnvironment/__tests__/utils.test.d.ts.map +0 -1
  144. package/dist/components/DevEnvironment/__tests__/utils.test.js +0 -24
  145. package/dist/components/DevEnvironment/__tests__/utils.test.js.map +0 -1
  146. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/store.test.d.ts +0 -2
  147. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/store.test.d.ts.map +0 -1
  148. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/store.test.js +0 -114
  149. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/store.test.js.map +0 -1
  150. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.d.ts +0 -2
  151. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.d.ts.map +0 -1
  152. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.js +0 -103
  153. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.js.map +0 -1
  154. package/dist/components/EntryLogBoard/__tests__/utils.test.d.ts +0 -2
  155. package/dist/components/EntryLogBoard/__tests__/utils.test.d.ts.map +0 -1
  156. package/dist/components/EntryLogBoard/__tests__/utils.test.js +0 -231
  157. package/dist/components/EntryLogBoard/__tests__/utils.test.js.map +0 -1
  158. package/dist/components/Grabbable/__tests__/utils.test.d.ts +0 -2
  159. package/dist/components/Grabbable/__tests__/utils.test.d.ts.map +0 -1
  160. package/dist/components/Grabbable/__tests__/utils.test.js +0 -59
  161. package/dist/components/Grabbable/__tests__/utils.test.js.map +0 -1
  162. package/dist/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.d.ts +0 -8
  163. package/dist/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.d.ts.map +0 -1
  164. package/dist/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.js +0 -11
  165. package/dist/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.js.map +0 -1
  166. package/dist/components/LiveVideoPlayer/components/index.d.ts +0 -3
  167. package/dist/components/LiveVideoPlayer/components/index.d.ts.map +0 -1
  168. package/dist/components/LiveVideoPlayer/components/index.js +0 -3
  169. package/dist/components/LiveVideoPlayer/components/index.js.map +0 -1
  170. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/__tests__/utils.test.d.ts +0 -2
  171. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/__tests__/utils.test.d.ts.map +0 -1
  172. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/__tests__/utils.test.js +0 -196
  173. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/__tests__/utils.test.js.map +0 -1
  174. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/HlsJsPlayer.test.d.ts +0 -2
  175. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/HlsJsPlayer.test.d.ts.map +0 -1
  176. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/HlsJsPlayer.test.js +0 -146
  177. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/HlsJsPlayer.test.js.map +0 -1
  178. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/NativeHlsPlayer.test.d.ts +0 -2
  179. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/NativeHlsPlayer.test.d.ts.map +0 -1
  180. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/NativeHlsPlayer.test.js +0 -94
  181. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/NativeHlsPlayer.test.js.map +0 -1
  182. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/RecoveryTracker.test.d.ts +0 -2
  183. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/RecoveryTracker.test.d.ts.map +0 -1
  184. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/RecoveryTracker.test.js +0 -74
  185. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/RecoveryTracker.test.js.map +0 -1
  186. package/dist/components/LiveVideoPlayer/hooks/useLiveVideoPlayer/index.d.ts +0 -25
  187. package/dist/components/LiveVideoPlayer/hooks/useLiveVideoPlayer/index.d.ts.map +0 -1
  188. package/dist/components/LiveVideoPlayer/hooks/useLiveVideoPlayer/index.js +0 -97
  189. package/dist/components/LiveVideoPlayer/hooks/useLiveVideoPlayer/index.js.map +0 -1
  190. package/dist/components/Mirror/__tests__/utils.test.d.ts +0 -2
  191. package/dist/components/Mirror/__tests__/utils.test.d.ts.map +0 -1
  192. package/dist/components/Mirror/__tests__/utils.test.js +0 -42
  193. package/dist/components/Mirror/__tests__/utils.test.js.map +0 -1
  194. package/dist/components/MsdfText/index.d.ts +0 -24
  195. package/dist/components/MsdfText/index.d.ts.map +0 -1
  196. package/dist/components/MsdfText/index.js +0 -24
  197. package/dist/components/MsdfText/index.js.map +0 -1
  198. package/dist/components/Portal/__tests__/utils.test.d.ts +0 -2
  199. package/dist/components/Portal/__tests__/utils.test.d.ts.map +0 -1
  200. package/dist/components/Portal/__tests__/utils.test.js +0 -56
  201. package/dist/components/Portal/__tests__/utils.test.js.map +0 -1
  202. package/dist/components/ScreenShareDisplay/__tests__/utils.test.d.ts +0 -2
  203. package/dist/components/ScreenShareDisplay/__tests__/utils.test.d.ts.map +0 -1
  204. package/dist/components/ScreenShareDisplay/__tests__/utils.test.js +0 -47
  205. package/dist/components/ScreenShareDisplay/__tests__/utils.test.js.map +0 -1
  206. package/dist/components/TroikaText/index.d.ts +0 -4
  207. package/dist/components/TroikaText/index.d.ts.map +0 -1
  208. package/dist/components/TroikaText/index.js +0 -50
  209. package/dist/components/TroikaText/index.js.map +0 -1
  210. package/dist/components/TroikaText/types.d.ts +0 -19
  211. package/dist/components/TroikaText/types.d.ts.map +0 -1
  212. package/dist/components/TroikaText/types.js +0 -2
  213. package/dist/components/TroikaText/types.js.map +0 -1
  214. package/dist/components/VideoPlayer/ControlPanel.d.ts +0 -3
  215. package/dist/components/VideoPlayer/ControlPanel.d.ts.map +0 -1
  216. package/dist/components/VideoPlayer/ControlPanel.js +0 -34
  217. package/dist/components/VideoPlayer/ControlPanel.js.map +0 -1
  218. package/dist/components/VideoPlayer/ProgressBar.d.ts +0 -3
  219. package/dist/components/VideoPlayer/ProgressBar.d.ts.map +0 -1
  220. package/dist/components/VideoPlayer/ProgressBar.js +0 -21
  221. package/dist/components/VideoPlayer/ProgressBar.js.map +0 -1
  222. package/dist/components/VideoPlayer/__tests__/utils.test.d.ts +0 -2
  223. package/dist/components/VideoPlayer/__tests__/utils.test.d.ts.map +0 -1
  224. package/dist/components/VideoPlayer/__tests__/utils.test.js +0 -23
  225. package/dist/components/VideoPlayer/__tests__/utils.test.js.map +0 -1
  226. package/dist/components/VideoPlayer/components/ProgressBar.d.ts +0 -12
  227. package/dist/components/VideoPlayer/components/ProgressBar.d.ts.map +0 -1
  228. package/dist/components/VideoPlayer/components/ProgressBar.js +0 -21
  229. package/dist/components/VideoPlayer/components/ProgressBar.js.map +0 -1
  230. package/dist/components/VideoPlayer/components/index.d.ts +0 -3
  231. package/dist/components/VideoPlayer/components/index.d.ts.map +0 -1
  232. package/dist/components/VideoPlayer/components/index.js +0 -3
  233. package/dist/components/VideoPlayer/components/index.js.map +0 -1
  234. package/dist/components/VideoPlayer/types.d.ts +0 -44
  235. package/dist/components/VideoPlayer/types.d.ts.map +0 -1
  236. package/dist/components/VideoPlayer/types.js +0 -2
  237. package/dist/components/VideoPlayer/types.js.map +0 -1
  238. package/dist/components/VideoPlayer/utils.test.d.ts +0 -2
  239. package/dist/components/VideoPlayer/utils.test.d.ts.map +0 -1
  240. package/dist/components/VideoPlayer/utils.test.js +0 -23
  241. package/dist/components/VideoPlayer/utils.test.js.map +0 -1
  242. package/dist/components/commons/utils.test.d.ts +0 -2
  243. package/dist/components/commons/utils.test.d.ts.map +0 -1
  244. package/dist/components/commons/utils.test.js +0 -79
  245. package/dist/components/commons/utils.test.js.map +0 -1
  246. package/dist/contexts/FontContext.d.ts +0 -17
  247. package/dist/contexts/FontContext.d.ts.map +0 -1
  248. package/dist/contexts/FontContext.js +0 -25
  249. package/dist/contexts/FontContext.js.map +0 -1
  250. package/dist/contexts/InstanceInfoContext.d.ts +0 -39
  251. package/dist/contexts/InstanceInfoContext.d.ts.map +0 -1
  252. package/dist/contexts/InstanceInfoContext.js +0 -42
  253. package/dist/contexts/InstanceInfoContext.js.map +0 -1
  254. package/dist/contexts/PortalContext.d.ts +0 -39
  255. package/dist/contexts/PortalContext.d.ts.map +0 -1
  256. package/dist/contexts/PortalContext.js +0 -42
  257. package/dist/contexts/PortalContext.js.map +0 -1
  258. package/dist/contexts/WorldEventContext.d.ts +0 -32
  259. package/dist/contexts/WorldEventContext.d.ts.map +0 -1
  260. package/dist/contexts/WorldEventContext.js +0 -54
  261. package/dist/contexts/WorldEventContext.js.map +0 -1
  262. package/dist/contexts/__tests__/ServerClockContext.test.d.ts +0 -2
  263. package/dist/contexts/__tests__/ServerClockContext.test.d.ts.map +0 -1
  264. package/dist/contexts/__tests__/ServerClockContext.test.js +0 -43
  265. package/dist/contexts/__tests__/ServerClockContext.test.js.map +0 -1
  266. package/dist/contexts/__tests__/WorldStorageContext.test.d.ts +0 -2
  267. package/dist/contexts/__tests__/WorldStorageContext.test.d.ts.map +0 -1
  268. package/dist/contexts/__tests__/WorldStorageContext.test.js +0 -120
  269. package/dist/contexts/__tests__/WorldStorageContext.test.js.map +0 -1
  270. package/dist/fonts/FontContext.d.ts +0 -9
  271. package/dist/fonts/FontContext.d.ts.map +0 -1
  272. package/dist/fonts/FontContext.js +0 -5
  273. package/dist/fonts/FontContext.js.map +0 -1
  274. package/dist/fonts/FontProvider.d.ts +0 -31
  275. package/dist/fonts/FontProvider.d.ts.map +0 -1
  276. package/dist/fonts/FontProvider.js +0 -40
  277. package/dist/fonts/FontProvider.js.map +0 -1
  278. package/dist/fonts/FontReadyContainer.d.ts +0 -35
  279. package/dist/fonts/FontReadyContainer.d.ts.map +0 -1
  280. package/dist/fonts/FontReadyContainer.js +0 -40
  281. package/dist/fonts/FontReadyContainer.js.map +0 -1
  282. package/dist/fonts/constants.d.ts +0 -5
  283. package/dist/fonts/constants.d.ts.map +0 -1
  284. package/dist/fonts/constants.js +0 -5
  285. package/dist/fonts/constants.js.map +0 -1
  286. package/dist/fonts/loadTTF.d.ts +0 -18
  287. package/dist/fonts/loadTTF.d.ts.map +0 -1
  288. package/dist/fonts/loadTTF.js +0 -36
  289. package/dist/fonts/loadTTF.js.map +0 -1
  290. package/dist/fonts/useTTF.d.ts +0 -7
  291. package/dist/fonts/useTTF.d.ts.map +0 -1
  292. package/dist/fonts/useTTF.js +0 -9
  293. package/dist/fonts/useTTF.js.map +0 -1
  294. package/dist/hooks/useJapaneseFont.d.ts +0 -7
  295. package/dist/hooks/useJapaneseFont.d.ts.map +0 -1
  296. package/dist/hooks/useJapaneseFont.js +0 -25
  297. package/dist/hooks/useJapaneseFont.js.map +0 -1
  298. package/dist/hooks/useMsdfFont.d.ts +0 -11
  299. package/dist/hooks/useMsdfFont.d.ts.map +0 -1
  300. package/dist/hooks/useMsdfFont.js +0 -19
  301. package/dist/hooks/useMsdfFont.js.map +0 -1
  302. package/dist/hooks/usePortalNavigation.d.ts +0 -10
  303. package/dist/hooks/usePortalNavigation.d.ts.map +0 -1
  304. package/dist/hooks/usePortalNavigation.js +0 -46
  305. package/dist/hooks/usePortalNavigation.js.map +0 -1
  306. package/dist/hooks/useWorldEvent.d.ts +0 -25
  307. package/dist/hooks/useWorldEvent.d.ts.map +0 -1
  308. package/dist/hooks/useWorldEvent.js +0 -45
  309. package/dist/hooks/useWorldEvent.js.map +0 -1
@@ -1,114 +0,0 @@
1
- import { describe, expect, it, vi } from 'vitest';
2
- import { MAX_HOLD_DISTANCE, MIN_HOLD_DISTANCE } from '../constants';
3
- import { createDevGrabStore } from '../store';
4
- const createEntry = (overrides = {}) => ({
5
- renderGhost: () => null,
6
- onMove: () => { },
7
- getTransform: () => ({
8
- position: { x: 0, y: 1, z: -3 },
9
- rotation: { x: 0, y: 0.5, z: 0 },
10
- scale: 2,
11
- }),
12
- ...overrides,
13
- });
14
- describe('createDevGrabStore', () => {
15
- it('登録した対象を掴むと holding になり、掴んだ時点の姿勢を保持する', () => {
16
- const store = createDevGrabStore();
17
- store.contextValue.registerGrabbable('box', createEntry());
18
- store.grab('box', { x: 0, y: 1, z: 0 });
19
- const state = store.getState();
20
- expect(state.phase).toBe('holding');
21
- expect(state.grabbedId).toBe('box');
22
- expect(state.holdDistance).toBeCloseTo(3);
23
- expect(state.heldRotation).toEqual({ x: 0, y: 0.5, z: 0 });
24
- expect(state.heldScale).toBe(2);
25
- });
26
- it('未登録の ID を掴もうとしても idle のまま', () => {
27
- const store = createDevGrabStore();
28
- store.grab('unknown', { x: 0, y: 0, z: 0 });
29
- expect(store.getState().phase).toBe('idle');
30
- });
31
- it('掴み距離は MIN/MAX に丸められる', () => {
32
- const store = createDevGrabStore();
33
- store.contextValue.registerGrabbable('near', createEntry({
34
- getTransform: () => ({
35
- position: { x: 0, y: 0, z: -0.1 },
36
- rotation: { x: 0, y: 0, z: 0 },
37
- scale: 1,
38
- }),
39
- }));
40
- store.grab('near', { x: 0, y: 0, z: 0 });
41
- expect(store.getState().holdDistance).toBe(MIN_HOLD_DISTANCE);
42
- });
43
- it('adjustHoldDistance は holding 中のみ動作し clamp される', () => {
44
- const store = createDevGrabStore();
45
- store.contextValue.registerGrabbable('box', createEntry());
46
- store.adjustHoldDistance(1);
47
- expect(store.getState().holdDistance).toBe(0);
48
- store.grab('box', { x: 0, y: 1, z: 0 });
49
- store.adjustHoldDistance(100);
50
- expect(store.getState().holdDistance).toBe(MAX_HOLD_DISTANCE);
51
- store.adjustHoldDistance(-100);
52
- expect(store.getState().holdDistance).toBe(MIN_HOLD_DISTANCE);
53
- });
54
- it('release で最後の heldPosition と掴んだ時点の回転が onMove に渡り idle に戻る', () => {
55
- const onMove = vi.fn();
56
- const store = createDevGrabStore();
57
- store.contextValue.registerGrabbable('box', createEntry({ onMove }));
58
- store.grab('box', { x: 0, y: 1, z: 0 });
59
- store.updateHeldPosition({ x: 5, y: 2, z: -1 });
60
- store.release();
61
- expect(onMove).toHaveBeenCalledWith({
62
- position: { x: 5, y: 2, z: -1 },
63
- rotation: { x: 0, y: 0.5, z: 0 },
64
- });
65
- expect(store.getState().phase).toBe('idle');
66
- expect(store.getState().grabbedId).toBeNull();
67
- });
68
- it('cancel は onMove を呼ばずに idle に戻る', () => {
69
- const onMove = vi.fn();
70
- const store = createDevGrabStore();
71
- store.contextValue.registerGrabbable('box', createEntry({ onMove }));
72
- store.grab('box', { x: 0, y: 1, z: 0 });
73
- store.cancel();
74
- expect(onMove).not.toHaveBeenCalled();
75
- expect(store.getState().phase).toBe('idle');
76
- });
77
- it('holding 中は別の対象を掴めない', () => {
78
- const store = createDevGrabStore();
79
- store.contextValue.registerGrabbable('a', createEntry());
80
- store.contextValue.registerGrabbable('b', createEntry());
81
- store.grab('a', { x: 0, y: 1, z: 0 });
82
- store.grab('b', { x: 0, y: 1, z: 0 });
83
- expect(store.getState().grabbedId).toBe('a');
84
- });
85
- it('掴み中の対象が登録解除されたら idle に戻る', () => {
86
- const store = createDevGrabStore();
87
- store.contextValue.registerGrabbable('box', createEntry());
88
- store.grab('box', { x: 0, y: 1, z: 0 });
89
- store.contextValue.unregisterGrabbable('box');
90
- expect(store.getState().phase).toBe('idle');
91
- expect(store.getState().grabbedId).toBeNull();
92
- });
93
- it('ホバー中の対象が登録解除されたら hoveredId が消える', () => {
94
- const store = createDevGrabStore();
95
- store.contextValue.registerGrabbable('box', createEntry());
96
- store.setHovered('box');
97
- store.contextValue.unregisterGrabbable('box');
98
- expect(store.getState().hoveredId).toBeNull();
99
- });
100
- it('subscribeGrabbedId のリスナーが掴み/離しで呼ばれる', () => {
101
- const listener = vi.fn();
102
- const store = createDevGrabStore();
103
- store.contextValue.registerGrabbable('box', createEntry());
104
- const unsubscribe = store.contextValue.subscribeGrabbedId(listener);
105
- store.grab('box', { x: 0, y: 1, z: 0 });
106
- expect(listener).toHaveBeenCalledTimes(1);
107
- store.release();
108
- expect(listener).toHaveBeenCalledTimes(2);
109
- unsubscribe();
110
- store.grab('box', { x: 0, y: 1, z: 0 });
111
- expect(listener).toHaveBeenCalledTimes(2);
112
- });
113
- });
114
- //# sourceMappingURL=store.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../../../../../src/components/DevEnvironment/components/GrabSystem/__tests__/store.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=utils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../../../../src/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.ts"],"names":[],"mappings":""}
@@ -1,103 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { Object3D, Quaternion, Vector3 } from 'three';
3
- import { GRABBABLE_USER_DATA_KEY } from '../../../../Grabbable/constants';
4
- import { MAX_ANCESTOR_DEPTH, MAX_HOLD_DISTANCE, MIN_HOLD_DISTANCE } from '../constants';
5
- import { clampHoldDistance, computeHeldPosition, distanceBetween, findFirstGrabbableId, findGrabbableId, } from '../utils';
6
- describe('clampHoldDistance', () => {
7
- it('範囲内の距離はそのまま返す', () => {
8
- expect(clampHoldDistance(3)).toBe(3);
9
- });
10
- it('最小距離未満は MIN_HOLD_DISTANCE に丸める', () => {
11
- expect(clampHoldDistance(0.2)).toBe(MIN_HOLD_DISTANCE);
12
- });
13
- it('最大距離超過は MAX_HOLD_DISTANCE に丸める', () => {
14
- expect(clampHoldDistance(99)).toBe(MAX_HOLD_DISTANCE);
15
- });
16
- });
17
- describe('distanceBetween', () => {
18
- it('2点間の距離を返す', () => {
19
- expect(distanceBetween({ x: 0, y: 0, z: 0 }, { x: 3, y: 4, z: 0 })).toBeCloseTo(5);
20
- });
21
- it('同一点は 0 を返す', () => {
22
- expect(distanceBetween({ x: 1, y: 2, z: 3 }, { x: 1, y: 2, z: 3 })).toBeCloseTo(0);
23
- });
24
- });
25
- describe('computeHeldPosition', () => {
26
- it('無回転なら前方(-Z)distance の位置を返す', () => {
27
- const q = { x: 0, y: 0, z: 0, w: 1 };
28
- const result = computeHeldPosition({ x: 1, y: 2, z: 3 }, q, 2);
29
- expect(result.x).toBeCloseTo(1);
30
- expect(result.y).toBeCloseTo(2);
31
- expect(result.z).toBeCloseTo(1);
32
- });
33
- it('three.js の applyQuaternion と同じ結果になる', () => {
34
- const quaternions = [
35
- new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), Math.PI / 2),
36
- new Quaternion().setFromAxisAngle(new Vector3(1, 0, 0), -Math.PI / 4),
37
- new Quaternion().setFromAxisAngle(new Vector3(1, 2, 3).normalize(), 1.23),
38
- ];
39
- const cameraPosition = { x: -2, y: 1.6, z: 5 };
40
- const distance = 3.5;
41
- for (const q of quaternions) {
42
- const expected = new Vector3(0, 0, -1)
43
- .applyQuaternion(q)
44
- .multiplyScalar(distance)
45
- .add(new Vector3(cameraPosition.x, cameraPosition.y, cameraPosition.z));
46
- const result = computeHeldPosition(cameraPosition, q, distance);
47
- expect(result.x).toBeCloseTo(expected.x);
48
- expect(result.y).toBeCloseTo(expected.y);
49
- expect(result.z).toBeCloseTo(expected.z);
50
- }
51
- });
52
- });
53
- describe('findGrabbableId', () => {
54
- it('自身の userData から ID を見つける', () => {
55
- const obj = new Object3D();
56
- obj.userData[GRABBABLE_USER_DATA_KEY] = 'target-1';
57
- expect(findGrabbableId(obj)).toBe('target-1');
58
- });
59
- it('親を辿って ID を見つける', () => {
60
- const root = new Object3D();
61
- root.userData[GRABBABLE_USER_DATA_KEY] = 'target-2';
62
- const middle = new Object3D();
63
- const leaf = new Object3D();
64
- root.add(middle);
65
- middle.add(leaf);
66
- expect(findGrabbableId(leaf)).toBe('target-2');
67
- });
68
- it('ID が無ければ null を返す', () => {
69
- expect(findGrabbableId(new Object3D())).toBeNull();
70
- expect(findGrabbableId(null)).toBeNull();
71
- });
72
- it('最大親階層を超える探索はしない', () => {
73
- const root = new Object3D();
74
- root.userData[GRABBABLE_USER_DATA_KEY] = 'too-deep';
75
- let current = root;
76
- for (let i = 0; i < MAX_ANCESTOR_DEPTH; i++) {
77
- const child = new Object3D();
78
- current.add(child);
79
- current = child;
80
- }
81
- expect(findGrabbableId(current)).toBeNull();
82
- });
83
- });
84
- describe('findFirstGrabbableId', () => {
85
- it('手前から順に走査して最初の ID を返す', () => {
86
- const plain = new Object3D();
87
- const grabbable = new Object3D();
88
- grabbable.userData[GRABBABLE_USER_DATA_KEY] = 'first';
89
- const another = new Object3D();
90
- another.userData[GRABBABLE_USER_DATA_KEY] = 'second';
91
- const result = findFirstGrabbableId([
92
- { object: plain },
93
- { object: grabbable },
94
- { object: another },
95
- ]);
96
- expect(result).toBe('first');
97
- });
98
- it('掴める対象が無ければ null を返す', () => {
99
- expect(findFirstGrabbableId([{ object: new Object3D() }])).toBeNull();
100
- expect(findFirstGrabbableId([])).toBeNull();
101
- });
102
- });
103
- //# sourceMappingURL=utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../../../src/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=utils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../../src/components/EntryLogBoard/__tests__/utils.test.ts"],"names":[],"mappings":""}
@@ -1,231 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { buildLogEntryId, createLogEntry, defaultFormatTimestamp, enrichLogsWithCache, isWriterAmong, mergeLogs, } from '../utils';
3
- describe('defaultFormatTimestamp', () => {
4
- it('HH:MM 形式でフォーマットする', () => {
5
- const date = new Date(2024, 0, 1, 9, 5);
6
- expect(defaultFormatTimestamp(date)).toBe('09:05');
7
- });
8
- it('午後の時刻も正しくフォーマットする', () => {
9
- const date = new Date(2024, 0, 1, 14, 30);
10
- expect(defaultFormatTimestamp(date)).toBe('14:30');
11
- });
12
- it('0時0分をゼロパディングする', () => {
13
- const date = new Date(2024, 0, 1, 0, 0);
14
- expect(defaultFormatTimestamp(date)).toBe('00:00');
15
- });
16
- });
17
- describe('buildLogEntryId', () => {
18
- it('同じユーザーの join が無い場合は 0 から始まるIDを生成する', () => {
19
- const id = buildLogEntryId('join', 'user-1', []);
20
- expect(id).toBe('join-user-1-0');
21
- });
22
- it('同じユーザーの join が1件ある場合は 1 のIDを生成する', () => {
23
- const existingLogs = [
24
- {
25
- id: 'join-user-1-0',
26
- type: 'join',
27
- userId: 'user-1',
28
- displayName: 'Alice',
29
- avatarUrl: null,
30
- timestamp: '10:00',
31
- },
32
- ];
33
- const id = buildLogEntryId('join', 'user-1', existingLogs);
34
- expect(id).toBe('join-user-1-1');
35
- });
36
- it('異なるユーザーのログはカウントに含めない', () => {
37
- const existingLogs = [
38
- {
39
- id: 'join-user-2-0',
40
- type: 'join',
41
- userId: 'user-2',
42
- displayName: 'Bob',
43
- avatarUrl: null,
44
- timestamp: '10:00',
45
- },
46
- ];
47
- const id = buildLogEntryId('join', 'user-1', existingLogs);
48
- expect(id).toBe('join-user-1-0');
49
- });
50
- it('異なるタイプのログはカウントに含めない', () => {
51
- const existingLogs = [
52
- {
53
- id: 'leave-user-1-0',
54
- type: 'leave',
55
- userId: 'user-1',
56
- displayName: 'Alice',
57
- avatarUrl: null,
58
- timestamp: '10:00',
59
- },
60
- ];
61
- const id = buildLogEntryId('join', 'user-1', existingLogs);
62
- expect(id).toBe('join-user-1-0');
63
- });
64
- it('leave タイプでも正しくIDを生成する', () => {
65
- const existingLogs = [
66
- {
67
- id: 'leave-user-1-0',
68
- type: 'leave',
69
- userId: 'user-1',
70
- displayName: 'Alice',
71
- avatarUrl: null,
72
- timestamp: '10:00',
73
- },
74
- ];
75
- const id = buildLogEntryId('leave', 'user-1', existingLogs);
76
- expect(id).toBe('leave-user-1-1');
77
- });
78
- });
79
- describe('createLogEntry', () => {
80
- const mockFormatTimestamp = () => '12:34';
81
- it('join エントリを正しく生成する', () => {
82
- const entry = createLogEntry('join', 'user-1', 'Alice', 'https://example.com/avatar.png', [], mockFormatTimestamp);
83
- expect(entry).toEqual({
84
- id: 'join-user-1-0',
85
- type: 'join',
86
- userId: 'user-1',
87
- displayName: 'Alice',
88
- avatarUrl: 'https://example.com/avatar.png',
89
- timestamp: '12:34',
90
- });
91
- });
92
- it('leave エントリを正しく生成する', () => {
93
- const entry = createLogEntry('leave', 'user-1', 'Alice', null, [], mockFormatTimestamp);
94
- expect(entry).toEqual({
95
- id: 'leave-user-1-0',
96
- type: 'leave',
97
- userId: 'user-1',
98
- displayName: 'Alice',
99
- avatarUrl: null,
100
- timestamp: '12:34',
101
- });
102
- });
103
- it('既存ログを考慮してIDを決定論的に生成する', () => {
104
- const existingLogs = [
105
- {
106
- id: 'join-user-1-0',
107
- type: 'join',
108
- userId: 'user-1',
109
- displayName: 'Alice',
110
- avatarUrl: null,
111
- timestamp: '10:00',
112
- },
113
- ];
114
- const entry = createLogEntry('join', 'user-1', 'Alice', null, existingLogs, mockFormatTimestamp);
115
- expect(entry.id).toBe('join-user-1-1');
116
- });
117
- });
118
- describe('isWriterAmong', () => {
119
- it('辞書順最小のIDがtargetIdと一致する場合はtrueを返す', () => {
120
- expect(isWriterAmong(['user-b', 'user-a', 'user-c'], 'user-a')).toBe(true);
121
- });
122
- it('辞書順最小のIDがtargetIdと一致しない場合はfalseを返す', () => {
123
- expect(isWriterAmong(['user-b', 'user-a', 'user-c'], 'user-b')).toBe(false);
124
- });
125
- it('targetIdがundefinedの場合はfalseを返す', () => {
126
- expect(isWriterAmong(['user-a', 'user-b'], undefined)).toBe(false);
127
- });
128
- it('候補が空配列の場合はfalseを返す', () => {
129
- expect(isWriterAmong([], 'user-a')).toBe(false);
130
- });
131
- it('候補にundefinedが含まれていてもフィルタして判定する', () => {
132
- expect(isWriterAmong([undefined, 'user-b', 'user-a'], 'user-a')).toBe(true);
133
- });
134
- it('候補が1つだけでtargetIdと一致する場合はtrueを返す', () => {
135
- expect(isWriterAmong(['user-a'], 'user-a')).toBe(true);
136
- });
137
- });
138
- describe('enrichLogsWithCache', () => {
139
- const unknownEntry = {
140
- id: 'join-user-1-0',
141
- type: 'join',
142
- userId: 'user-1',
143
- displayName: 'Unknown',
144
- avatarUrl: null,
145
- timestamp: '10:00',
146
- };
147
- const knownEntry = {
148
- id: 'join-user-2-0',
149
- type: 'join',
150
- userId: 'user-2',
151
- displayName: 'Bob',
152
- avatarUrl: 'https://example.com/bob.png',
153
- timestamp: '10:01',
154
- };
155
- it('Unknown エントリをキャッシュの情報で補完する', () => {
156
- const cache = new Map([
157
- ['user-1', { displayName: 'Alice', avatarUrl: 'https://example.com/alice.png' }],
158
- ]);
159
- const result = enrichLogsWithCache([unknownEntry], 'Unknown', cache);
160
- expect(result[0].displayName).toBe('Alice');
161
- expect(result[0].avatarUrl).toBe('https://example.com/alice.png');
162
- });
163
- it('Unknown でないエントリはそのまま返す', () => {
164
- const logs = [knownEntry];
165
- const cache = new Map([
166
- ['user-2', { displayName: 'Bob2', avatarUrl: null }],
167
- ]);
168
- const result = enrichLogsWithCache(logs, 'Unknown', cache);
169
- expect(result).toBe(logs);
170
- });
171
- it('キャッシュにないユーザーの Unknown はそのまま', () => {
172
- const logs = [unknownEntry];
173
- const cache = new Map();
174
- const result = enrichLogsWithCache(logs, 'Unknown', cache);
175
- expect(result).toBe(logs);
176
- });
177
- it('変更がなければ元の配列参照を返す', () => {
178
- const logs = [knownEntry];
179
- const cache = new Map();
180
- const result = enrichLogsWithCache(logs, 'Unknown', cache);
181
- expect(result).toBe(logs);
182
- });
183
- });
184
- describe('mergeLogs', () => {
185
- const baseEntry = {
186
- id: 'join-user-1-0',
187
- type: 'join',
188
- userId: 'user-1',
189
- displayName: 'Alice',
190
- avatarUrl: null,
191
- timestamp: '10:00',
192
- };
193
- it('空のログに新しいエントリを追加する', () => {
194
- const result = mergeLogs([], baseEntry, 20);
195
- expect(result).toHaveLength(1);
196
- expect(result[0]).toEqual(baseEntry);
197
- });
198
- it('重複するIDのエントリは追加しない(冪等性)', () => {
199
- const existingLogs = [baseEntry];
200
- const result = mergeLogs(existingLogs, baseEntry, 20);
201
- expect(result).toHaveLength(1);
202
- expect(result).toBe(existingLogs); // 同じ参照を返す
203
- });
204
- it('異なるIDのエントリは追加する', () => {
205
- const existingLogs = [baseEntry];
206
- const newEntry = {
207
- ...baseEntry,
208
- id: 'leave-user-1-0',
209
- type: 'leave',
210
- };
211
- const result = mergeLogs(existingLogs, newEntry, 20);
212
- expect(result).toHaveLength(2);
213
- });
214
- it('maxEntries を超えた場合は古いエントリを削除する', () => {
215
- const existingLogs = [
216
- { ...baseEntry, id: 'join-user-1-0' },
217
- { ...baseEntry, id: 'join-user-2-0', userId: 'user-2' },
218
- { ...baseEntry, id: 'join-user-3-0', userId: 'user-3' },
219
- ];
220
- const newEntry = {
221
- ...baseEntry,
222
- id: 'join-user-4-0',
223
- userId: 'user-4',
224
- };
225
- const result = mergeLogs(existingLogs, newEntry, 3);
226
- expect(result).toHaveLength(3);
227
- expect(result[0].id).toBe('join-user-2-0'); // 最も古いエントリが削除される
228
- expect(result[2].id).toBe('join-user-4-0'); // 新しいエントリが末尾に追加
229
- });
230
- });
231
- //# sourceMappingURL=utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../src/components/EntryLogBoard/__tests__/utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAG7C,OAAO,EACL,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,SAAS,GACV,MAAM,UAAU,CAAA;AAEjB,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACzC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QAChD,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,YAAY,GAAe;YAC/B;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,OAAO;gBACpB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;aACnB;SACF,CAAA;QACD,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC1D,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,YAAY,GAAe;YAC/B;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;aACnB;SACF,CAAA;QACD,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC1D,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,YAAY,GAAe;YAC/B;gBACE,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,OAAO;gBACpB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;aACnB;SACF,CAAA;QACD,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC1D,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,YAAY,GAAe;YAC/B;gBACE,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,OAAO;gBACpB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;aACnB;SACF,CAAA;QACD,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC3D,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAA;IAEzC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAG,cAAc,CAC1B,MAAM,EACN,QAAQ,EACR,OAAO,EACP,gCAAgC,EAChC,EAAE,EACF,mBAAmB,CACpB,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,EAAE,EAAE,eAAe;YACnB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,gCAAgC;YAC3C,SAAS,EAAE,OAAO;SACnB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,KAAK,GAAG,cAAc,CAC1B,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,EAAE,EACF,mBAAmB,CACpB,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,OAAO;SACnB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,YAAY,GAAe;YAC/B;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,OAAO;gBACpB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;aACnB;SACF,CAAA;QAED,MAAM,KAAK,GAAG,cAAc,CAC1B,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,mBAAmB,CACpB,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,YAAY,GAAa;QAC7B,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,OAAO;KACnB,CAAA;IAED,MAAM,UAAU,GAAa;QAC3B,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,6BAA6B;QACxC,SAAS,EAAE,OAAO;KACnB,CAAA;IAED,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;YACpB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,+BAA+B,EAAE,CAAC;SACjF,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QACpE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;QACzB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;YACpB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACrD,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,CAAA;QAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6D,CAAA;QAClF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;QACzB,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6D,CAAA;QAClF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,MAAM,SAAS,GAAa;QAC1B,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,OAAO;KACnB,CAAA;IAED,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC,CAAA;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA,CAAC,UAAU;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC,CAAA;QAChC,MAAM,QAAQ,GAAa;YACzB,GAAG,SAAS;YACZ,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,OAAO;SACd,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,YAAY,GAAe;YAC/B,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE;YACrC,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE;YACvD,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE;SACxD,CAAA;QACD,MAAM,QAAQ,GAAa;YACzB,GAAG,SAAS;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,QAAQ;SACjB,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA,CAAC,iBAAiB;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA,CAAC,gBAAgB;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=utils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../../src/components/Grabbable/__tests__/utils.test.ts"],"names":[],"mappings":""}
@@ -1,59 +0,0 @@
1
- import { Euler, Matrix4, Quaternion, Vector3 } from 'three';
2
- import { describe, expect, it } from 'vitest';
3
- import { decomposeWorldTransform, worldToLocalTransform } from '../utils';
4
- describe('decomposeWorldTransform', () => {
5
- it('単位行列は原点・無回転・スケール1', () => {
6
- const t = decomposeWorldTransform(new Matrix4());
7
- expect(t.position).toEqual({ x: 0, y: 0, z: 0 });
8
- expect(t.scale).toBeCloseTo(1);
9
- });
10
- it('平行移動+スケールを分解できる', () => {
11
- const m = new Matrix4().compose(new Vector3(1, 2, 3), new Quaternion(), new Vector3(2, 2, 2));
12
- const t = decomposeWorldTransform(m);
13
- expect(t.position.x).toBeCloseTo(1);
14
- expect(t.position.y).toBeCloseTo(2);
15
- expect(t.position.z).toBeCloseTo(3);
16
- expect(t.scale).toBeCloseTo(2);
17
- });
18
- });
19
- describe('worldToLocalTransform', () => {
20
- it('親が単位行列ならワールド=ローカル(そのまま返る)', () => {
21
- const local = worldToLocalTransform({ x: 1, y: 5, z: -2 }, { x: 0, y: 0, z: 0 }, new Matrix4());
22
- expect(local.position.x).toBeCloseTo(1);
23
- expect(local.position.y).toBeCloseTo(5);
24
- expect(local.position.z).toBeCloseTo(-2);
25
- });
26
- it('親が平行移動している場合、その分を差し引く(-4 オフセットの再現)', () => {
27
- // 親が y=-4 に平行移動 → ワールド y=-3 はローカル y=1
28
- const parent = new Matrix4().makeTranslation(0, -4, 0);
29
- const local = worldToLocalTransform({ x: 0, y: -3, z: 1 }, { x: 0, y: 0, z: 0 }, parent);
30
- expect(local.position.x).toBeCloseTo(0);
31
- expect(local.position.y).toBeCloseTo(1);
32
- expect(local.position.z).toBeCloseTo(1);
33
- });
34
- it('ローカル→ワールド→ローカルで往復一致する(回転付き親)', () => {
35
- const parent = new Matrix4().compose(new Vector3(2, -4, 1), new Quaternion().setFromEuler(new Euler(0, Math.PI / 3, 0)), new Vector3(1, 1, 1));
36
- // 既知のローカル姿勢
37
- const localPos = new Vector3(0.5, 1.2, -0.3);
38
- const localEuler = new Euler(0.1, 0.4, -0.2);
39
- const localQuat = new Quaternion().setFromEuler(localEuler);
40
- // ローカル→ワールド
41
- const worldMatrix = new Matrix4()
42
- .copy(parent)
43
- .multiply(new Matrix4().compose(localPos, localQuat, new Vector3(1, 1, 1)));
44
- const wp = new Vector3();
45
- const wq = new Quaternion();
46
- const ws = new Vector3();
47
- worldMatrix.decompose(wp, wq, ws);
48
- const worldEuler = new Euler().setFromQuaternion(wq);
49
- // ワールド→ローカルで元に戻る
50
- const back = worldToLocalTransform({ x: wp.x, y: wp.y, z: wp.z }, { x: worldEuler.x, y: worldEuler.y, z: worldEuler.z }, parent);
51
- expect(back.position.x).toBeCloseTo(localPos.x);
52
- expect(back.position.y).toBeCloseTo(localPos.y);
53
- expect(back.position.z).toBeCloseTo(localPos.z);
54
- // 回転はクォータニオン一致で確認
55
- const backQuat = new Quaternion().setFromEuler(new Euler(back.rotation.x, back.rotation.y, back.rotation.z));
56
- expect(Math.abs(backQuat.dot(localQuat))).toBeCloseTo(1);
57
- });
58
- });
59
- //# sourceMappingURL=utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../src/components/Grabbable/__tests__/utils.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- interface Props {
2
- position: [number, number, number];
3
- size: number;
4
- playing: boolean;
5
- }
6
- export declare const LiveIndicator: import("react").MemoExoticComponent<({ position, size, playing }: Props) => import("react/jsx-runtime").JSX.Element>;
7
- export {};
8
- //# sourceMappingURL=LiveIndicator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveIndicator.d.ts","sourceRoot":"","sources":["../../../../../src/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.tsx"],"names":[],"mappings":"AAGA,UAAU,KAAK;IACb,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,aAAa,oEAAsC,KAAK,6CAuBnE,CAAA"}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo } from 'react';
3
- import { Text } from '@react-three/drei';
4
- export const LiveIndicator = memo(({ position, size, playing }) => {
5
- const dotSize = size * 0.15;
6
- const fontSize = size * 0.4;
7
- const dotColor = playing ? '#ff0000' : '#666666';
8
- return (_jsxs("group", { position: position, children: [_jsxs("mesh", { position: [-size * 0.5, 0, 0], children: [_jsx("circleGeometry", { args: [dotSize, 16] }), _jsx("meshBasicMaterial", { color: dotColor }, playing ? 'playing' : 'paused')] }), _jsx(Text, { position: [size * 0.15, 0, 0], fontSize: fontSize, color: "#ffffff", anchorX: "center", anchorY: "middle", fontWeight: "bold", children: "LIVE" })] }));
9
- });
10
- LiveIndicator.displayName = 'LiveIndicator';
11
- //# sourceMappingURL=LiveIndicator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveIndicator.js","sourceRoot":"","sources":["../../../../../src/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAQxC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAS,EAAE,EAAE;IACvE,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAA;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAEhD,OAAO,CACL,iBAAO,QAAQ,EAAE,QAAQ,aACvB,gBAAM,QAAQ,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,aACjC,yBAAgB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAI,EACvC,4BAAwD,KAAK,EAAE,QAAQ,IAA/C,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAqB,IACtE,EACP,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,EAChB,UAAU,EAAC,MAAM,qBAGZ,IACD,CACT,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA"}
@@ -1,3 +0,0 @@
1
- export { ControlPanel } from "./ControlPanel";
2
- export { LiveVideoTexture } from "./LiveVideoTexture";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/LiveVideoPlayer/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { ControlPanel } from "./ControlPanel";
2
- export { LiveVideoTexture } from "./LiveVideoTexture";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/LiveVideoPlayer/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}