@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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=WorldStorageContext.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorldStorageContext.test.d.ts","sourceRoot":"","sources":["../../../src/contexts/__tests__/WorldStorageContext.test.ts"],"names":[],"mappings":""}
@@ -1,120 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { WORLD_STORAGE_LIMITS, WorldStorageError, createDefaultWorldStorageImplementation, getWorldStorageEntrySize, incrementWorldStorageValue, isValidWorldStorageKey, } from '../WorldStorageContext';
3
- describe('isValidWorldStorageKey', () => {
4
- it('英数字・アンダースコア・ドット・ハイフン・コロンを許可する', () => {
5
- expect(isValidWorldStorageKey('event_phase')).toBe(true);
6
- expect(isValidWorldStorageKey('player.score-1:jp')).toBe(true);
7
- expect(isValidWorldStorageKey('A')).toBe(true);
8
- });
9
- it('空文字を拒否する', () => {
10
- expect(isValidWorldStorageKey('')).toBe(false);
11
- });
12
- it('128文字を超えるキーを拒否する', () => {
13
- expect(isValidWorldStorageKey('a'.repeat(128))).toBe(true);
14
- expect(isValidWorldStorageKey('a'.repeat(129))).toBe(false);
15
- });
16
- it('許可されない文字を拒否する', () => {
17
- expect(isValidWorldStorageKey('日本語')).toBe(false);
18
- expect(isValidWorldStorageKey('key with space')).toBe(false);
19
- expect(isValidWorldStorageKey('key/slash')).toBe(false);
20
- });
21
- });
22
- describe('getWorldStorageEntrySize', () => {
23
- it('JSON化したバイト数を返す', () => {
24
- expect(getWorldStorageEntrySize('ab')).toBe(4); // "ab"
25
- expect(getWorldStorageEntrySize(123)).toBe(3);
26
- expect(getWorldStorageEntrySize({ a: 1 })).toBe(7); // {"a":1}
27
- });
28
- it('マルチバイト文字をバイト数で数える', () => {
29
- expect(getWorldStorageEntrySize('あ')).toBe(5); // "あ" = 2(引用符) + 3
30
- });
31
- });
32
- describe('incrementWorldStorageValue', () => {
33
- it('既存値が undefined の場合は delta を返す', () => {
34
- expect(incrementWorldStorageValue(undefined, 5)).toBe(5);
35
- });
36
- it('既存の数値に delta を加算する', () => {
37
- expect(incrementWorldStorageValue(10, 5)).toBe(15);
38
- expect(incrementWorldStorageValue(10, -3)).toBe(7);
39
- });
40
- it('浮動小数点の加算ができる', () => {
41
- expect(incrementWorldStorageValue(0.1, 0.2)).toBeCloseTo(0.3);
42
- });
43
- it('既存値が数値以外の場合は TYPE_MISMATCH を投げる', () => {
44
- expect(() => incrementWorldStorageValue('text', 1)).toThrowError(WorldStorageError);
45
- try {
46
- incrementWorldStorageValue('text', 1);
47
- }
48
- catch (err) {
49
- expect(err.code).toBe('TYPE_MISMATCH');
50
- }
51
- });
52
- });
53
- describe('createDefaultWorldStorageImplementation', () => {
54
- it('shared: set した値を get / list で取得できる', async () => {
55
- const storage = createDefaultWorldStorageImplementation();
56
- await storage.shared.set('event_phase', '第2章');
57
- expect(await storage.shared.get('event_phase')).toBe('第2章');
58
- expect(await storage.shared.list()).toEqual([{ key: 'event_phase', value: '第2章' }]);
59
- });
60
- it('shared: 存在しないキーの get は undefined を返す', async () => {
61
- const storage = createDefaultWorldStorageImplementation();
62
- expect(await storage.shared.get('missing')).toBeUndefined();
63
- });
64
- it('shared: increment は加算後の値を返す', async () => {
65
- const storage = createDefaultWorldStorageImplementation();
66
- expect(await storage.shared.increment('total_visits', 1)).toBe(1);
67
- expect(await storage.shared.increment('total_visits', 2)).toBe(3);
68
- expect(await storage.shared.get('total_visits')).toBe(3);
69
- });
70
- it('shared: delete は冪等', async () => {
71
- const storage = createDefaultWorldStorageImplementation();
72
- await storage.shared.set('key', 'value');
73
- await storage.shared.delete('key');
74
- await storage.shared.delete('key');
75
- expect(await storage.shared.get('key')).toBeUndefined();
76
- });
77
- it('不正なキーで INVALID_KEY を投げる', async () => {
78
- const storage = createDefaultWorldStorageImplementation();
79
- await expect(storage.shared.set('無効なキー', 1)).rejects.toMatchObject({
80
- code: 'INVALID_KEY',
81
- });
82
- await expect(storage.player.get('bad key')).rejects.toMatchObject({
83
- code: 'INVALID_KEY',
84
- });
85
- });
86
- it('100KB を超える値で ENTRY_TOO_LARGE を投げる', async () => {
87
- const storage = createDefaultWorldStorageImplementation();
88
- const large = 'a'.repeat(WORLD_STORAGE_LIMITS.entrySize + 1);
89
- await expect(storage.shared.set('key', large)).rejects.toMatchObject({
90
- code: 'ENTRY_TOO_LARGE',
91
- });
92
- });
93
- it('player: キー数上限を超えると LIMIT_EXCEEDED を投げる', async () => {
94
- const storage = createDefaultWorldStorageImplementation();
95
- for (let i = 0; i < WORLD_STORAGE_LIMITS.playerKeysPerUser; i++) {
96
- await storage.player.set(`key-${i}`, i);
97
- }
98
- await expect(storage.player.set('one-more', 1)).rejects.toMatchObject({
99
- code: 'LIMIT_EXCEEDED',
100
- });
101
- // 既存キーの上書きは可能
102
- await storage.player.set('key-0', 100);
103
- expect(await storage.player.get('key-0')).toBe(100);
104
- });
105
- it('player: 自分と他ユーザーの値が分離されている', async () => {
106
- const storage = createDefaultWorldStorageImplementation();
107
- await storage.player.set('coins', 340);
108
- expect(await storage.player.get('coins')).toBe(340);
109
- expect(await storage.player.get('coins', { userId: 'other-user' })).toBeUndefined();
110
- expect(await storage.player.list({ userId: 'other-user' })).toEqual([]);
111
- });
112
- it('shared と player の値が分離されている', async () => {
113
- const storage = createDefaultWorldStorageImplementation();
114
- await storage.shared.set('key', 'shared-value');
115
- await storage.player.set('key', 'player-value');
116
- expect(await storage.shared.get('key')).toBe('shared-value');
117
- expect(await storage.player.get('key')).toBe('player-value');
118
- });
119
- });
120
- //# sourceMappingURL=WorldStorageContext.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorldStorageContext.test.js","sourceRoot":"","sources":["../../../src/contexts/__tests__/WorldStorageContext.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { GenerateFontResult } from '@zappar/msdf-generator';
2
- interface FontContextValue {
3
- fontFamilies: GenerateFontResult;
4
- }
5
- export declare const FontContext: import("react").Context<FontContextValue | null>;
6
- /** FontProvider 内では fontFamilies を返し、Provider 外では null を返す */
7
- export declare const useFontContext: () => FontContextValue | null;
8
- export {};
9
- //# sourceMappingURL=FontContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FontContext.d.ts","sourceRoot":"","sources":["../../src/fonts/FontContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAEhE,UAAU,gBAAgB;IACxB,YAAY,EAAE,kBAAkB,CAAA;CACjC;AAED,eAAO,MAAM,WAAW,kDAA+C,CAAA;AAEvE,8DAA8D;AAC9D,eAAO,MAAM,cAAc,QAAO,gBAAgB,GAAG,IAC5B,CAAA"}
@@ -1,5 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
- export const FontContext = createContext(null);
3
- /** FontProvider 内では fontFamilies を返し、Provider 外では null を返す */
4
- export const useFontContext = () => useContext(FontContext);
5
- //# sourceMappingURL=FontContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FontContext.js","sourceRoot":"","sources":["../../src/fonts/FontContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAOjD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAA;AAEvE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,GAA4B,EAAE,CAC1D,UAAU,CAAC,WAAW,CAAC,CAAA"}
@@ -1,31 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- interface Props {
3
- /** MSDF 生成に含めるテキスト配列。安定した参照の配列を渡すことを推奨。 */
4
- texts: string[];
5
- children: ReactNode;
6
- /** フォント URL(デフォルト: Noto Sans JP Regular) */
7
- fontUrl?: string;
8
- /** MSDF テクスチャサイズ(デフォルト: [2048, 2048]) */
9
- textureSize?: [number, number];
10
- }
11
- /**
12
- * ツリー全体で MSDF アトラスを共有し、配下で日本語テキストを直接使えるようにする Provider。
13
- *
14
- * `texts` に含まれる文字から MSDF フォントを1回だけ生成し、
15
- * `fontFamilies` を Container 経由で配下に適用する。
16
- * Suspense 対応のため、親に `<Suspense>` が必要。
17
- *
18
- * @example
19
- * ```tsx
20
- * const ALL_TEXTS = ['URLを入力してください', '再接続中...']
21
- *
22
- * <Suspense fallback={null}>
23
- * <FontProvider texts={ALL_TEXTS}>
24
- * <Text fontSize={48}>URLを入力してください</Text>
25
- * </FontProvider>
26
- * </Suspense>
27
- * ```
28
- */
29
- export declare const FontProvider: import("react").MemoExoticComponent<({ texts, fontUrl, textureSize, children }: Props) => import("react/jsx-runtime").JSX.Element>;
30
- export {};
31
- //# sourceMappingURL=FontProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FontProvider.d.ts","sourceRoot":"","sources":["../../src/fonts/FontProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK1E,UAAU,KAAK;IACb,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,SAAS,CAAA;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,kFACqB,KAAK,6CAuBlD,CAAA"}
@@ -1,40 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { memo, useMemo, useState, useEffect } from 'react';
3
- import { Container, Text } from '@react-three/uikit';
4
- import { FontContext } from './FontContext';
5
- import { useMsdfFont } from '../hooks/useMsdfFont';
6
- /**
7
- * ツリー全体で MSDF アトラスを共有し、配下で日本語テキストを直接使えるようにする Provider。
8
- *
9
- * `texts` に含まれる文字から MSDF フォントを1回だけ生成し、
10
- * `fontFamilies` を Container 経由で配下に適用する。
11
- * Suspense 対応のため、親に `<Suspense>` が必要。
12
- *
13
- * @example
14
- * ```tsx
15
- * const ALL_TEXTS = ['URLを入力してください', '再接続中...']
16
- *
17
- * <Suspense fallback={null}>
18
- * <FontProvider texts={ALL_TEXTS}>
19
- * <Text fontSize={48}>URLを入力してください</Text>
20
- * </FontProvider>
21
- * </Suspense>
22
- * ```
23
- */
24
- export const FontProvider = memo(({ texts, fontUrl, textureSize, children }) => {
25
- const fontFamilies = useMsdfFont(texts, fontUrl, textureSize);
26
- const value = useMemo(() => ({ fontFamilies }), [fontFamilies]);
27
- // uikit はフォントテクスチャを非同期でロードするため、
28
- // 初回レンダリングでデフォルトの inter フォントへフォールバックし
29
- // "Missing glyph info" 警告が出る。スペースのみの Text で
30
- // フォントロードをトリガーし、次フレームで children を表示する。
31
- const [fontReady, setFontReady] = useState(false);
32
- useEffect(() => {
33
- setFontReady(false);
34
- const id = requestAnimationFrame(() => setFontReady(true));
35
- return () => cancelAnimationFrame(id);
36
- }, [fontFamilies]);
37
- return (_jsx(FontContext.Provider, { value: value, children: _jsx(Container, { fontFamilies: fontFamilies, children: fontReady ? children : _jsx(Text, { fontSize: 1, children: ' ' }) }) }));
38
- });
39
- FontProvider.displayName = 'FontProvider';
40
- //# sourceMappingURL=FontProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FontProvider.js","sourceRoot":"","sources":["../../src/fonts/FontProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAYlD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAC9B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAS,EAAE,EAAE;IACnD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAE/D,gCAAgC;IAChC,sCAAsC;IACtC,4CAA4C;IAC5C,uCAAuC;IACvC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,MAAM,EAAE,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1D,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,OAAO,CACL,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAChC,KAAC,SAAS,IAAC,YAAY,EAAE,YAAY,YAClC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,YAAG,GAAG,GAAQ,GAC7C,GACS,CACxB,CAAA;AACH,CAAC,CACF,CAAA;AAED,YAAY,CAAC,WAAW,GAAG,cAAc,CAAA"}
@@ -1,35 +0,0 @@
1
- import { type ComponentProps, type ReactNode } from 'react';
2
- import { Container } from '@react-three/uikit';
3
- type ContainerProps = ComponentProps<typeof Container>;
4
- interface Props extends Omit<ContainerProps, 'children'> {
5
- /** MSDF 生成に含めるテキスト配列。安定した参照の配列を渡すことを推奨。 */
6
- texts: string[];
7
- children: ReactNode;
8
- /** フォント URL(デフォルト: Noto Sans JP Regular) */
9
- fontUrl?: string;
10
- /** MSDF テクスチャサイズ(デフォルト: [2048, 2048]) */
11
- textureSize?: [number, number];
12
- }
13
- /**
14
- * 日本語 MSDF フォントの読み込み・ロード待ちを内包した Container。
15
- *
16
- * `texts` に含まれる文字からフォントを生成し、
17
- * テクスチャのロードが完了してから children を表示する。
18
- * Suspense 対応のため、親に `<Suspense>` が必要。
19
- *
20
- * 複数コンポーネントでアトラスを共有したい場合は `FontProvider` を使用。
21
- *
22
- * @example
23
- * ```tsx
24
- * const TEXTS = ['URLを入力してください']
25
- *
26
- * <Suspense fallback={null}>
27
- * <FontReadyContainer texts={TEXTS} sizeX={4} backgroundColor={0x000000}>
28
- * <Text fontSize={48}>URLを入力してください</Text>
29
- * </FontReadyContainer>
30
- * </Suspense>
31
- * ```
32
- */
33
- export declare const FontReadyContainer: import("react").MemoExoticComponent<({ texts, children, fontUrl, textureSize, ...containerProps }: Props) => import("react/jsx-runtime").JSX.Element>;
34
- export {};
35
- //# sourceMappingURL=FontReadyContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FontReadyContainer.d.ts","sourceRoot":"","sources":["../../src/fonts/FontReadyContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACtF,OAAO,EAAE,SAAS,EAAQ,MAAM,oBAAoB,CAAA;AAGpD,KAAK,cAAc,GAAG,cAAc,CAAC,OAAO,SAAS,CAAC,CAAA;AAEtD,UAAU,KAAM,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IACtD,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,SAAS,CAAA;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,qGACkC,KAAK,6CAoBrE,CAAA"}
@@ -1,40 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { memo, useState, useEffect } from 'react';
3
- import { Container, Text } from '@react-three/uikit';
4
- import { useMsdfFont } from '../hooks/useMsdfFont';
5
- /**
6
- * 日本語 MSDF フォントの読み込み・ロード待ちを内包した Container。
7
- *
8
- * `texts` に含まれる文字からフォントを生成し、
9
- * テクスチャのロードが完了してから children を表示する。
10
- * Suspense 対応のため、親に `<Suspense>` が必要。
11
- *
12
- * 複数コンポーネントでアトラスを共有したい場合は `FontProvider` を使用。
13
- *
14
- * @example
15
- * ```tsx
16
- * const TEXTS = ['URLを入力してください']
17
- *
18
- * <Suspense fallback={null}>
19
- * <FontReadyContainer texts={TEXTS} sizeX={4} backgroundColor={0x000000}>
20
- * <Text fontSize={48}>URLを入力してください</Text>
21
- * </FontReadyContainer>
22
- * </Suspense>
23
- * ```
24
- */
25
- export const FontReadyContainer = memo(({ texts, children, fontUrl, textureSize, ...containerProps }) => {
26
- const fontFamilies = useMsdfFont(texts, fontUrl, textureSize);
27
- // uikit はフォントテクスチャを非同期でロードするため、
28
- // 初回レンダリングでデフォルトの inter フォントへフォールバックし
29
- // "Missing glyph info" 警告が出る。スペースのみの Text で
30
- // フォントロードをトリガーし、次フレームで children を表示する。
31
- const [fontReady, setFontReady] = useState(false);
32
- useEffect(() => {
33
- setFontReady(false);
34
- const id = requestAnimationFrame(() => setFontReady(true));
35
- return () => cancelAnimationFrame(id);
36
- }, [fontFamilies]);
37
- return (_jsx(Container, { fontFamilies: fontFamilies, ...containerProps, children: fontReady ? children : _jsx(Text, { fontSize: 1, children: ' ' }) }));
38
- });
39
- FontReadyContainer.displayName = 'FontReadyContainer';
40
- //# sourceMappingURL=FontReadyContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FontReadyContainer.js","sourceRoot":"","sources":["../../src/fonts/FontReadyContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAuC,MAAM,OAAO,CAAA;AACtF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAclD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CACpC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,cAAc,EAAS,EAAE,EAAE;IACtE,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAE7D,gCAAgC;IAChC,sCAAsC;IACtC,4CAA4C;IAC5C,uCAAuC;IACvC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,MAAM,EAAE,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1D,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,OAAO,CACL,KAAC,SAAS,IAAC,YAAY,EAAE,YAAY,KAAM,cAAc,YACtD,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,YAAG,GAAG,GAAQ,GAC7C,CACb,CAAA;AACH,CAAC,CACF,CAAA;AAED,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAA"}
@@ -1,5 +0,0 @@
1
- /** Noto Sans JP Regular (CDN) */
2
- export declare const JAPANESE_FONT_URL = "https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-jp@latest/japanese-400-normal.ttf";
3
- /** MSDF テクスチャサイズ(日本語文字数に対応するため大きめ) */
4
- export declare const JAPANESE_TEXTURE_SIZE: [number, number];
5
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/fonts/constants.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,eAAO,MAAM,iBAAiB,0FAC2D,CAAA;AAEzF,sCAAsC;AACtC,eAAO,MAAM,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAgB,CAAA"}
@@ -1,5 +0,0 @@
1
- /** Noto Sans JP Regular (CDN) */
2
- export const JAPANESE_FONT_URL = 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-jp@latest/japanese-400-normal.ttf';
3
- /** MSDF テクスチャサイズ(日本語文字数に対応するため大きめ) */
4
- export const JAPANESE_TEXTURE_SIZE = [2048, 2048];
5
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/fonts/constants.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAC5B,uFAAuF,CAAA;AAEzF,sCAAsC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA"}
@@ -1,18 +0,0 @@
1
- import { type GenerateFontResult } from '@zappar/msdf-generator';
2
- interface FontInput {
3
- url: string;
4
- charset: string;
5
- fontSize?: number;
6
- textureSize?: [number, number];
7
- fieldRange?: number;
8
- padding?: number;
9
- fixOverlaps?: boolean;
10
- }
11
- /**
12
- * TTF フォントを読み込み MSDF アトラスを生成する。
13
- * `@zappar/msdf-generator` を static import することで、
14
- * dynamic import がハングする Triplex 環境でも動作する。
15
- */
16
- export declare const loadTTF: (input: FontInput) => Promise<GenerateFontResult>;
17
- export {};
18
- //# sourceMappingURL=loadTTF.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loadTTF.d.ts","sourceRoot":"","sources":["../../src/fonts/loadTTF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAGtE,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAUD;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAU,OAAO,SAAS,KAAG,OAAO,CAAC,kBAAkB,CAoB1E,CAAA"}
@@ -1,36 +0,0 @@
1
- import { MSDF } from '@zappar/msdf-generator';
2
- import { FileLoader } from 'three';
3
- const DEFAULTS = {
4
- fontSize: 48,
5
- textureSize: [512, 512],
6
- fieldRange: 4,
7
- padding: 4,
8
- fixOverlaps: true,
9
- };
10
- /**
11
- * TTF フォントを読み込み MSDF アトラスを生成する。
12
- * `@zappar/msdf-generator` を static import することで、
13
- * dynamic import がハングする Triplex 環境でも動作する。
14
- */
15
- export const loadTTF = async (input) => {
16
- const loader = new FileLoader();
17
- loader.setResponseType('arraybuffer');
18
- const arrayBuffer = (await loader.loadAsync(input.url));
19
- const generator = new MSDF();
20
- try {
21
- await generator.initialize();
22
- return await generator.generate({
23
- font: new Uint8Array(arrayBuffer),
24
- charset: input.charset,
25
- fontSize: input.fontSize ?? DEFAULTS.fontSize,
26
- textureSize: input.textureSize ?? DEFAULTS.textureSize,
27
- fieldRange: input.fieldRange ?? DEFAULTS.fieldRange,
28
- padding: input.padding ?? DEFAULTS.padding,
29
- fixOverlaps: input.fixOverlaps ?? DEFAULTS.fixOverlaps,
30
- });
31
- }
32
- finally {
33
- generator.dispose();
34
- }
35
- };
36
- //# sourceMappingURL=loadTTF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loadTTF.js","sourceRoot":"","sources":["../../src/fonts/loadTTF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA2B,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAYlC,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAqB;IAC3C,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,IAAI;CACT,CAAA;AAEV;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,KAAgB,EAA+B,EAAE;IAC7E,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;IAC/B,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;IACrC,MAAM,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAgB,CAAA;IAEtE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,UAAU,EAAE,CAAA;QAC5B,OAAO,MAAM,SAAS,CAAC,QAAQ,CAAC;YAC9B,IAAI,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC;YACjC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;YAC7C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW;YACtD,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU;YACnD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;YAC1C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW;SACvD,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,OAAO,EAAE,CAAA;IACrB,CAAC;AACH,CAAC,CAAA"}
@@ -1,7 +0,0 @@
1
- import type { GenerateFontResult } from '@zappar/msdf-generator';
2
- /**
3
- * TTF フォントを MSDF 形式で読み込む Suspense 対応 hook。
4
- * static import 版の loadTTF を使用するため Triplex でも動作する。
5
- */
6
- export declare const useTTF: (url: string, charset: string, textureSize?: [number, number]) => GenerateFontResult;
7
- //# sourceMappingURL=useTTF.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTTF.d.ts","sourceRoot":"","sources":["../../src/fonts/useTTF.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAKhE;;;GAGG;AACH,eAAO,MAAM,MAAM,GACjB,KAAK,MAAM,EACX,SAAS,MAAM,EACf,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAC7B,kBASA,CAAA"}
@@ -1,9 +0,0 @@
1
- import { suspend } from 'suspend-react';
2
- import { loadTTF } from './loadTTF';
3
- const cacheSymbol = Symbol('xrift-ttf');
4
- /**
5
- * TTF フォントを MSDF 形式で読み込む Suspense 対応 hook。
6
- * static import 版の loadTTF を使用するため Triplex でも動作する。
7
- */
8
- export const useTTF = (url, charset, textureSize) => suspend(async (_key, url, charset, textureSize) => loadTTF({ url, charset, textureSize }), [cacheSymbol, url, charset, textureSize]);
9
- //# sourceMappingURL=useTTF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTTF.js","sourceRoot":"","sources":["../../src/fonts/useTTF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;AAEvC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,GAAW,EACX,OAAe,EACf,WAA8B,EACV,EAAE,CACtB,OAAO,CACL,KAAK,EACH,IAAY,EACZ,GAAW,EACX,OAAe,EACf,WAA8B,EAC9B,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAC3C,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CACzC,CAAA"}
@@ -1,7 +0,0 @@
1
- /**
2
- * 日本語フォントを MSDF 形式で読み込む hook。
3
- * @param texts - 表示予定のテキスト配列。ここに含まれる漢字のみ MSDF 生成されるため、
4
- * 表示する全テキストを渡すこと。安定した参照の配列を渡すことを推奨。
5
- */
6
- export declare const useJapaneseFont: (texts: string[]) => import("@zappar/msdf-generator").FontFamily;
7
- //# sourceMappingURL=useJapaneseFont.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useJapaneseFont.d.ts","sourceRoot":"","sources":["../../src/hooks/useJapaneseFont.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,gDAa9C,CAAA"}
@@ -1,25 +0,0 @@
1
- import { useMemo } from 'react';
2
- // useTTF は @react-three/uikit のメインエントリに含まれないため dist/use-ttf から直接インポート
3
- import { useTTF } from '@react-three/uikit/dist/use-ttf';
4
- import { JAPANESE_FONT_URL, JAPANESE_BASE_CHARSET, JAPANESE_TEXTURE_SIZE, } from '../fonts/constants';
5
- const deriveCharset = (texts) => {
6
- const extra = [...new Set(texts.join(''))].join('');
7
- return JAPANESE_BASE_CHARSET + extra;
8
- };
9
- /**
10
- * 日本語フォントを MSDF 形式で読み込む hook。
11
- * @param texts - 表示予定のテキスト配列。ここに含まれる漢字のみ MSDF 生成されるため、
12
- * 表示する全テキストを渡すこと。安定した参照の配列を渡すことを推奨。
13
- */
14
- export const useJapaneseFont = (texts) => {
15
- const key = texts.join('\0');
16
- const input = useMemo(() => [
17
- {
18
- url: JAPANESE_FONT_URL,
19
- charset: deriveCharset(texts),
20
- textureSize: JAPANESE_TEXTURE_SIZE,
21
- },
22
- ], [key]);
23
- return useTTF(input);
24
- };
25
- //# sourceMappingURL=useJapaneseFont.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useJapaneseFont.js","sourceRoot":"","sources":["../../src/hooks/useJapaneseFont.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,sEAAsE;AACtE,OAAO,EAAE,MAAM,EAAqB,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,aAAa,GAAG,CAAC,KAAe,EAAU,EAAE;IAChD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnD,OAAO,qBAAqB,GAAG,KAAK,CAAA;AACtC,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAe,EAAE,EAAE;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5B,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC;QACJ;YACE,GAAG,EAAE,iBAAiB;YACtB,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC;YAC7B,WAAW,EAAE,qBAAqB;SACnC;KACF,EACD,CAAC,GAAG,CAAC,CACN,CAAA;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC,CAAA"}
@@ -1,11 +0,0 @@
1
- /**
2
- * MSDF フォントを読み込む hook。
3
- * MsdfText を使わず uikit のレイアウトを自分で組みたい場合に使用する。
4
- *
5
- * @param texts - 表示予定のテキスト配列。ここに含まれる文字が MSDF 生成される。
6
- * 安定した参照の配列を渡すことを推奨。
7
- * @param fontUrl - フォント URL(デフォルト: Noto Sans JP Regular)
8
- * @param textureSize - MSDF テクスチャサイズ(デフォルト: [2048, 2048])
9
- */
10
- export declare const useMsdfFont: (texts: string[], fontUrl?: string, textureSize?: [number, number]) => import("@zappar/msdf-generator").FontFamily;
11
- //# sourceMappingURL=useMsdfFont.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMsdfFont.d.ts","sourceRoot":"","sources":["../../src/hooks/useMsdfFont.ts"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,MAAM,EAAE,EACf,UAAS,MAA0B,EACnC,cAAa,CAAC,MAAM,EAAE,MAAM,CAAyB,gDAMtD,CAAA"}
@@ -1,19 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { useTTF } from '../fonts/useTTF';
3
- import { JAPANESE_FONT_URL, JAPANESE_TEXTURE_SIZE, } from '../fonts/constants';
4
- const deriveCharset = (texts) => [...new Set(texts.join(''))].join('');
5
- /**
6
- * MSDF フォントを読み込む hook。
7
- * MsdfText を使わず uikit のレイアウトを自分で組みたい場合に使用する。
8
- *
9
- * @param texts - 表示予定のテキスト配列。ここに含まれる文字が MSDF 生成される。
10
- * 安定した参照の配列を渡すことを推奨。
11
- * @param fontUrl - フォント URL(デフォルト: Noto Sans JP Regular)
12
- * @param textureSize - MSDF テクスチャサイズ(デフォルト: [2048, 2048])
13
- */
14
- export const useMsdfFont = (texts, fontUrl = JAPANESE_FONT_URL, textureSize = JAPANESE_TEXTURE_SIZE) => {
15
- const key = texts.join('\0');
16
- const charset = useMemo(() => deriveCharset(texts), [key]);
17
- return useTTF(fontUrl, charset, textureSize);
18
- };
19
- //# sourceMappingURL=useMsdfFont.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMsdfFont.js","sourceRoot":"","sources":["../../src/hooks/useMsdfFont.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,aAAa,GAAG,CAAC,KAAe,EAAU,EAAE,CAChD,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAEvC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAe,EACf,UAAkB,iBAAiB,EACnC,cAAgC,qBAAqB,EACrD,EAAE;IACF,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAE1D,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAC9C,CAAC,CAAA"}
@@ -1,10 +0,0 @@
1
- import { type InstanceInfo } from '../contexts/InstanceInfoContext';
2
- /**
3
- * Portal 内部で使うヘルパーフック
4
- * instanceId からインスタンス情報を取得し、台座進入時に確認モーダル → 遷移を行う
5
- */
6
- export declare const usePortalNavigation: (instanceId: string) => {
7
- info: InstanceInfo | null;
8
- enterPortal: () => Promise<void>;
9
- };
10
- //# sourceMappingURL=usePortalNavigation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePortalNavigation.d.ts","sourceRoot":"","sources":["../../src/hooks/usePortalNavigation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,iCAAiC,CAAA;AAE3F;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM;;;CAqCrD,CAAA"}
@@ -1,46 +0,0 @@
1
- import { useCallback, useEffect, useState } from 'react';
2
- import { useConfirmContext } from '../contexts/ConfirmContext';
3
- import { useInstanceInfoContext } from '../contexts/InstanceInfoContext';
4
- /**
5
- * Portal 内部で使うヘルパーフック
6
- * instanceId からインスタンス情報を取得し、台座進入時に確認モーダル → 遷移を行う
7
- */
8
- export const usePortalNavigation = (instanceId) => {
9
- const { getInstanceInfo, navigateToInstance } = useInstanceInfoContext();
10
- const { requestConfirm } = useConfirmContext();
11
- const [info, setInfo] = useState(null);
12
- // マウント時にインスタンス情報を取得
13
- useEffect(() => {
14
- let cancelled = false;
15
- getInstanceInfo(instanceId)
16
- .then((result) => {
17
- if (!cancelled)
18
- setInfo(result);
19
- })
20
- .catch((err) => {
21
- console.warn('[Portal] Failed to fetch instance info:', err);
22
- });
23
- return () => {
24
- cancelled = true;
25
- };
26
- }, [instanceId, getInstanceInfo]);
27
- // 台座進入時の処理
28
- const enterPortal = useCallback(async () => {
29
- try {
30
- const latestInfo = await getInstanceInfo(instanceId);
31
- const confirmed = await requestConfirm({
32
- title: latestInfo.worldName,
33
- message: `「${latestInfo.instanceName}」に移動しますか?\n👥 ${latestInfo.currentUsers}/${latestInfo.maxCapacity}`,
34
- confirmLabel: '移動する',
35
- cancelLabel: 'キャンセル',
36
- });
37
- if (confirmed)
38
- navigateToInstance(instanceId);
39
- }
40
- catch (err) {
41
- console.warn('[Portal] Failed to enter portal:', err);
42
- }
43
- }, [instanceId, getInstanceInfo, navigateToInstance, requestConfirm]);
44
- return { info, enterPortal };
45
- };
46
- //# sourceMappingURL=usePortalNavigation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePortalNavigation.js","sourceRoot":"","sources":["../../src/hooks/usePortalNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAqB,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAE3F;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACxD,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,sBAAsB,EAAE,CAAA;IACxE,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAA;IAE3D,oBAAoB;IACpB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,eAAe,CAAC,UAAU,CAAC;aACxB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAA;IAEjC,WAAW;IACX,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAA;YACpD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;gBACrC,KAAK,EAAE,UAAU,CAAC,SAAS;gBAC3B,OAAO,EAAE,IAAI,UAAU,CAAC,YAAY,iBAAiB,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,WAAW,EAAE;gBACxG,YAAY,EAAE,MAAM;gBACpB,WAAW,EAAE,OAAO;aACrB,CAAC,CAAA;YACF,IAAI,SAAS;gBAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;QACvD,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAA;IAErE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AAC9B,CAAC,CAAA"}