@vincentt-xr/sdk 2.0.0-alpha.1 → 2.0.0-alpha.3

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 (355) hide show
  1. package/GROUNDING.md +1614 -21
  2. package/dist/{DebuggerUI-CatYc-RG.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
  3. package/dist/{DebuggerUI-gLMKiVwJ.js → DebuggerUI-xp4bg3gH.js} +1 -1
  4. package/dist/FaceMeshRenderer-CALA4k49.js +1195 -0
  5. package/dist/FaceMeshRenderer-D4PFqsb3.cjs +155 -0
  6. package/dist/FaceRetouch-Bq2rtPlV.cjs +134 -0
  7. package/dist/FaceRetouch-DF5UsOsZ.js +551 -0
  8. package/dist/audio/AudioEngine.d.ts +3 -1
  9. package/dist/audio/AudioPlayer.d.ts +29 -0
  10. package/dist/audio/AudioPlayerLogic.d.ts +4 -0
  11. package/dist/audio/index.d.ts +2 -0
  12. package/dist/components/Axes/index.d.ts +6 -0
  13. package/dist/components/FaceMesh/FaceMeshRenderer.d.ts +17 -0
  14. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +17 -1
  15. package/dist/components/FaceMesh/canonical/FaceMeshMaterial.d.ts +25 -0
  16. package/dist/components/FaceMesh/canonical/assets.d.ts +3 -0
  17. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +9 -0
  18. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +2 -0
  19. package/dist/components/FaceMesh/canonical/shaders.d.ts +2 -0
  20. package/dist/components/FaceMesh/deform.d.ts +3 -0
  21. package/dist/components/FaceMesh/index.d.ts +5 -0
  22. package/dist/components/FaceMesh/material/defaults.d.ts +70 -0
  23. package/dist/components/FaceMesh/material/index.d.ts +1 -0
  24. package/dist/components/FaceMesh/material/options.d.ts +5 -1
  25. package/dist/components/FaceMesh/material/support.d.ts +7 -2
  26. package/dist/components/FaceMesh/material/textures.d.ts +4 -0
  27. package/dist/components/FaceMesh/material/types.d.ts +2 -2
  28. package/dist/components/FaceRetouch/Background.d.ts +5 -6
  29. package/dist/components/FaceRetouch/FaceRetouch.d.ts +47 -0
  30. package/dist/components/FaceRetouch/index.d.ts +2 -8
  31. package/dist/components/FaceRetouch/landmarkMask.d.ts +0 -5
  32. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +3 -7
  33. package/dist/components/FaceTracker/index.d.ts +5 -3
  34. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +1 -1
  35. package/dist/components/HandJoints2D/index.d.ts +1 -1
  36. package/dist/components/HandTracking2D/HandVisual.d.ts +1 -1
  37. package/dist/components/HandTracking2D/index.d.ts +1 -1
  38. package/dist/components/HandTracking2DController/index.d.ts +1 -1
  39. package/dist/components/HandTracking3D/index.d.ts +1 -1
  40. package/dist/components/LightObject/index.d.ts +20 -0
  41. package/dist/components/LookAt/index.d.ts +23 -0
  42. package/dist/components/MeshRenderer/index.d.ts +59 -0
  43. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  44. package/dist/components/PinToMesh/index.d.ts +47 -0
  45. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  46. package/dist/components/SceneObjectRenderer/index.d.ts +16 -0
  47. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  48. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  49. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  50. package/dist/components/Screen2D/index.d.ts +5 -0
  51. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  52. package/dist/components/ScreenGlass/index.d.ts +5 -0
  53. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  54. package/dist/components/ScreenGlass/types.d.ts +10 -0
  55. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  56. package/dist/components/ScreenGradient/index.d.ts +5 -0
  57. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  58. package/dist/components/ScreenGradient/types.d.ts +19 -0
  59. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  60. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  61. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  62. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  63. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  64. package/dist/components/ScreenImage/fit.d.ts +52 -0
  65. package/dist/components/ScreenImage/index.d.ts +8 -87
  66. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  67. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  68. package/dist/components/ScreenImage/source.d.ts +19 -0
  69. package/dist/components/ScreenImage/types.d.ts +37 -0
  70. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  71. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  72. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  73. package/dist/components/ScreenShape/index.d.ts +5 -0
  74. package/dist/components/ScreenShape/types.d.ts +41 -0
  75. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  76. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  77. package/dist/components/ScreenSpaceUI/index.d.ts +2 -0
  78. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  79. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  80. package/dist/components/ScreenText/constants.d.ts +5 -0
  81. package/dist/components/ScreenText/index.d.ts +6 -20
  82. package/dist/components/ScreenText/types.d.ts +31 -0
  83. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  84. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  85. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  86. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  87. package/dist/components/TextLabel/alignment.d.ts +4 -0
  88. package/dist/components/TextLabel/bend.d.ts +9 -0
  89. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  90. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  91. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  92. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  93. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  94. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  95. package/dist/components/TextLabel/constants.d.ts +2 -0
  96. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  97. package/dist/components/TextLabel/index.d.ts +2 -161
  98. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  99. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  100. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  101. package/dist/components/TextLabel/types.d.ts +227 -0
  102. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  103. package/dist/components/Transform3D/index.d.ts +30 -0
  104. package/dist/components/XRMediaSurface/index.d.ts +6 -6
  105. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  106. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  107. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  108. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  109. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  110. package/dist/components/XRViewport/constants.d.ts +24 -0
  111. package/dist/components/XRViewport/contexts.d.ts +6 -0
  112. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  113. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  114. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  115. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  116. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  117. package/dist/components/XRViewport/index.d.ts +3 -118
  118. package/dist/components/XRViewport/layout.d.ts +16 -0
  119. package/dist/components/XRViewport/slots.d.ts +16 -0
  120. package/dist/components/XRViewport/types.d.ts +89 -0
  121. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  122. package/dist/components/index.d.ts +12 -0
  123. package/dist/contexts-D5TQcwmv.js +660 -0
  124. package/dist/contexts-Dv1SA0bS.cjs +1 -0
  125. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  126. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  127. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  128. package/dist/debug-ui/hand-joints-2d/index.d.ts +1 -1
  129. package/dist/debug-ui/hand-tracking-2d/index.d.ts +1 -1
  130. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +1 -1
  131. package/dist/debug-ui/hand-tracking-3d/index.d.ts +1 -1
  132. package/dist/debug-ui/hierarchy-panel/index.d.ts +29 -0
  133. package/dist/debug-ui/index.d.ts +25 -2
  134. package/dist/debug-ui/layer-panel/index.d.ts +3 -2
  135. package/dist/debug-ui/media-source/index.d.ts +2 -0
  136. package/dist/debug-ui/media-source/session.d.ts +12 -0
  137. package/dist/debug-ui/media-source.cjs +1 -1
  138. package/dist/debug-ui/media-source.js +6 -4
  139. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  140. package/dist/debug-ui/object-inspector-panel/index.d.ts +25 -0
  141. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  142. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  143. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +9 -0
  144. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  145. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +7 -0
  146. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  147. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  148. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  149. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  150. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  151. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  152. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  153. package/dist/debug-ui/screen-image-settings/index.d.ts +4 -2
  154. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  155. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  156. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  157. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  158. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  159. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  160. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -122
  161. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  162. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  163. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  164. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  165. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  166. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  167. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  168. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  169. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  170. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  171. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  172. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  173. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  174. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  175. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  176. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  177. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  178. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  179. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  180. package/dist/debug-ui/screen-text-settings/types.d.ts +9 -0
  181. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +6 -3
  182. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  183. package/dist/debug-ui.cjs +3 -13
  184. package/dist/debug-ui.js +7735 -4896
  185. package/dist/drawNormalizedCrop-B-7zU-Xw.cjs +1 -0
  186. package/dist/drawNormalizedCrop-CRdIDyl1.js +44 -0
  187. package/dist/entries/all.d.ts +1 -0
  188. package/dist/entries/core.d.ts +53 -6
  189. package/dist/entries/face-effects.d.ts +10 -8
  190. package/dist/entries/internal.d.ts +1 -1
  191. package/dist/entries/low-level.d.ts +21 -4
  192. package/dist/entries/scene-object.d.ts +10 -0
  193. package/dist/entries/tracking.d.ts +25 -2
  194. package/dist/face-action/index.d.ts +34 -0
  195. package/dist/face-attribute-expression/index.d.ts +10 -0
  196. package/dist/face-effects.cjs +1 -342
  197. package/dist/face-effects.js +1391 -2767
  198. package/dist/face-info/blendshapes.d.ts +3 -0
  199. package/dist/face-info/derive.d.ts +8 -0
  200. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  201. package/dist/face-info/getFaceInfo.d.ts +8 -0
  202. package/dist/face-info/index.d.ts +8 -0
  203. package/dist/face-info/landmarks.d.ts +21 -0
  204. package/dist/face-info/types.d.ts +52 -0
  205. package/dist/getFaceInfo-Cjcgcc4w.js +118 -0
  206. package/dist/getFaceInfo-oQcP40Ha.cjs +1 -0
  207. package/dist/{handJoints2d.d.ts → hand/handJoints2d.d.ts} +1 -1
  208. package/dist/{handTracking2d.d.ts → hand/handTracking2d.d.ts} +1 -1
  209. package/dist/{handTracking2dController.d.ts → hand/handTracking2dController.d.ts} +1 -1
  210. package/dist/{handTracking3d.d.ts → hand/handTracking3d.d.ts} +1 -1
  211. package/dist/hooks/faceResults.d.ts +1 -1
  212. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  213. package/dist/hooks/useFaceAction.d.ts +3 -0
  214. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  215. package/dist/hooks/useFaceDetection.d.ts +18 -0
  216. package/dist/hooks/useFaceInfo.d.ts +7 -0
  217. package/dist/hooks/useFaceInfos.d.ts +15 -0
  218. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  219. package/dist/hooks/useFrameCapture.d.ts +18 -0
  220. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  221. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  222. package/dist/hooks/useTrackerContext.d.ts +2 -2
  223. package/dist/hooks/useXRModel.d.ts +5 -0
  224. package/dist/hooks/useXRSession/facade.d.ts +3 -0
  225. package/dist/hooks/useXRSession/registry.d.ts +9 -0
  226. package/dist/index-Be-S7uSm.cjs +1 -0
  227. package/dist/index-D4bLzBr6.cjs +1 -0
  228. package/dist/index-DdWBnI7A.cjs +17 -0
  229. package/dist/index-DpVIEBHw.js +2068 -0
  230. package/dist/index-DqhqBi7O.cjs +1 -0
  231. package/dist/index-HxT9XEuh.js +111 -0
  232. package/dist/{index-safCs_af.js → index-JygePOwo.js} +565 -508
  233. package/dist/index-N7C6fNah.js +214 -0
  234. package/dist/index-UU5ODHGU.cjs +1 -0
  235. package/dist/{index-BGNbrc4C.js → index-YMUaJU7U.js} +217 -126
  236. package/dist/{internal-Cae1ps15.js → internal-D7NxAsc6.js} +86 -80
  237. package/dist/internal-i2JkM85N.cjs +1 -0
  238. package/dist/internal.cjs +1 -1
  239. package/dist/internal.js +2 -2
  240. package/dist/low-level.cjs +1 -1
  241. package/dist/low-level.js +1138 -86
  242. package/dist/main.cjs +1 -73
  243. package/dist/main.js +545 -1693
  244. package/dist/material/MaterialFill.d.ts +20 -0
  245. package/dist/material/MeshMaterial.d.ts +14 -0
  246. package/dist/material/index.d.ts +2 -0
  247. package/dist/models/Body/index.d.ts +1 -1
  248. package/dist/models/Face/index.d.ts +1 -0
  249. package/dist/models/Face/rotation.d.ts +3 -0
  250. package/dist/render/renderGroups.d.ts +47 -0
  251. package/dist/render/renderPasses.d.ts +18 -0
  252. package/dist/renderGroups-JEXqSACh.js +152 -0
  253. package/dist/renderGroups-uXXsFpvw.cjs +1 -0
  254. package/dist/renderLayers-lDtL0_43.cjs +1 -0
  255. package/dist/renderLayers-zrK2pv5O.js +13 -0
  256. package/dist/renderPasses-CVWt0t8m.cjs +21 -0
  257. package/dist/renderPasses-CdGZeHHL.js +1500 -0
  258. package/dist/scene-object/index.d.ts +146 -0
  259. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  260. package/dist/scene-object.cjs +1 -0
  261. package/dist/scene-object.js +40 -0
  262. package/dist/{screenImageSettings.d.ts → screen-image/screenImageSettings.d.ts} +9 -2
  263. package/dist/{screenTextSettings.d.ts → screen-text/screenTextSettings.d.ts} +18 -2
  264. package/dist/screen2d/coordinates.d.ts +87 -0
  265. package/dist/screen2d/index.d.ts +3 -0
  266. package/dist/screen2d/screenTransform.d.ts +47 -0
  267. package/dist/screen2d/smoothing.d.ts +5 -0
  268. package/dist/{selectors-BLl2JUWW.cjs → selectors-2QvO5RYY.cjs} +1 -1
  269. package/dist/{selectors-CXd_x-6t.js → selectors-twqYByYZ.js} +6 -6
  270. package/dist/services/MetricsCollector/index.d.ts +7 -1
  271. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  272. package/dist/session-BChR4TgK.cjs +31 -0
  273. package/dist/session-C1StwN0f.js +363 -0
  274. package/dist/texture/animatedTexture.d.ts +63 -0
  275. package/dist/texture/animationMath.d.ts +8 -0
  276. package/dist/texture/gifReader.d.ts +17 -0
  277. package/dist/texture/gifTextureSource.d.ts +16 -0
  278. package/dist/texture/sourceResolver.d.ts +30 -0
  279. package/dist/tracking.cjs +1 -1
  280. package/dist/tracking.js +580 -321
  281. package/dist/types/face.d.ts +1 -13
  282. package/dist/types/index.d.ts +0 -1
  283. package/dist/types/nodes.d.ts +2 -1
  284. package/dist/types/session.d.ts +2 -0
  285. package/dist/types/tracking.d.ts +8 -2
  286. package/dist/types/util-types.d.ts +1 -1
  287. package/dist/useFaceInfo-DOJCGlDG.js +62 -0
  288. package/dist/useFaceInfo-DSUmuzzO.cjs +1 -0
  289. package/dist/useFaceResults-B1BSGUAW.cjs +1 -0
  290. package/dist/useFaceResults-CBmhT5E8.js +19 -0
  291. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  292. package/dist/utils/integrity.d.ts +4 -25
  293. package/dist/utils/landmarkBounds.d.ts +1 -1
  294. package/dist/utils/logger.d.ts +2 -2
  295. package/docs/MIGRATION_GUIDE.md +589 -0
  296. package/docs/SDK_DOCUMENTATION.md +1155 -0
  297. package/docs/api/audio.mdx +36 -0
  298. package/docs/api/behavior-components.mdx +164 -0
  299. package/docs/api/capture-recording.mdx +103 -0
  300. package/docs/api/debug-ui-scene-editor.mdx +249 -0
  301. package/docs/api/face-actions.mdx +104 -0
  302. package/docs/api/face-attribute-expression.mdx +87 -0
  303. package/docs/api/face-binding-anchors.mdx +53 -0
  304. package/docs/api/face-effects.mdx +19 -0
  305. package/docs/api/face-info.mdx +112 -0
  306. package/docs/api/face-mesh.mdx +98 -0
  307. package/docs/api/face-painting.mdx +33 -0
  308. package/docs/api/face-retouching.mdx +73 -0
  309. package/docs/api/material-render-state.mdx +132 -0
  310. package/docs/api/runtime-3d.mdx +311 -0
  311. package/docs/api/scene-object-store.mdx +213 -0
  312. package/docs/api/screen-image.mdx +65 -0
  313. package/docs/api/screen-shape.mdx +64 -0
  314. package/docs/api/screen-space-coordinates.mdx +41 -0
  315. package/docs/api/screen-text.mdx +39 -0
  316. package/docs/api/texture-sources.mdx +74 -0
  317. package/docs/api/trackers.mdx +46 -0
  318. package/docs/docs.json +70 -0
  319. package/docs/examples/scene-object-recipes.mdx +194 -0
  320. package/docs/guides/harness-debug-ui.mdx +139 -0
  321. package/docs/inspector/hierarchy-panel.mdx +51 -0
  322. package/docs/inspector/object-inspector-panel.mdx +51 -0
  323. package/docs/introduction.mdx +121 -0
  324. package/docs/scene-objects/overview.mdx +127 -0
  325. package/docs/scene-objects/render-groups.mdx +77 -0
  326. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  327. package/docs/texture-api-consumer.md +84 -0
  328. package/package.json +38 -8
  329. package/dist/MediaSourceSwitcher-C-xYg0nQ.js +0 -317
  330. package/dist/MediaSourceSwitcher-Cq3g4IKw.cjs +0 -31
  331. package/dist/components/FaceRetouch/defaults.d.ts +0 -13
  332. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  333. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  334. package/dist/defaults-BLpcN3pG.cjs +0 -1
  335. package/dist/defaults-LtY4M7dg.js +0 -55
  336. package/dist/index-BXyObVHF.cjs +0 -1
  337. package/dist/index-CY3bUAcW.js +0 -12
  338. package/dist/index-C_Duh13c.cjs +0 -1
  339. package/dist/index-D8fpPQkC.cjs +0 -1
  340. package/dist/index-DxshgBu0.cjs +0 -1
  341. package/dist/index-O-2crZ3M.js +0 -1102
  342. package/dist/internal-BjyhBP8i.cjs +0 -1
  343. package/dist/modules/XRClient/index.d.ts +0 -9
  344. package/dist/modules/index.d.ts +0 -1
  345. package/dist/screenImageSettings-6NRg4cx9.js +0 -39
  346. package/dist/screenImageSettings-y_B4_767.cjs +0 -1
  347. package/dist/services/ApiService.d.ts +0 -12
  348. package/dist/types/client.d.ts +0 -3
  349. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  350. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
  351. package/dist/useXRModel-3DcUa28n.cjs +0 -1
  352. package/dist/useXRModel-BMJE1hrk.js +0 -28
  353. /package/dist/{layerStack.d.ts → render/layerStack.d.ts} +0 -0
  354. /package/dist/{screenImagePresets.d.ts → screen-image/screenImagePresets.d.ts} +0 -0
  355. /package/dist/{screenTextPresets.d.ts → screen-text/screenTextPresets.d.ts} +0 -0
package/dist/low-level.js CHANGED
@@ -1,14 +1,1046 @@
1
- import { H as T, u as F } from "./index-BGNbrc4C.js";
2
- import { u as P } from "./useXRModel-BMJE1hrk.js";
3
- import { b as E, a as z, d as L, e as V, u as A, c as I } from "./selectors-CXd_x-6t.js";
4
- import { useState as d, useEffect as m } from "react";
5
- import { c as f } from "./useFaceResults-cpsSmKKc.js";
6
- import { S as U, X as D, a as H, d as j, b as q, c as W, r as Y, g as _, u as G, f as J, e as K } from "./index-O-2crZ3M.js";
7
- import { h as Z } from "./hasFullUnitUVBounds-BGvcFsQM.js";
8
- import { u as ee } from "./index-safCs_af.js";
9
- import { jsx as u } from "react/jsx-runtime";
10
- import { PerspectiveCamera as h } from "@react-three/drei";
11
- const x = {
1
+ import { u as se, X as O } from "./index-JygePOwo.js";
2
+ import { u as le } from "./index-YMUaJU7U.js";
3
+ import { H as dt, a as ut } from "./index-YMUaJU7U.js";
4
+ import { c as ce } from "./selectors-twqYByYZ.js";
5
+ import { u as mt, b as ft, e as pt, a as gt, d as bt } from "./selectors-twqYByYZ.js";
6
+ import { useEffect as M, useState as S, useRef as X, useCallback as de, useLayoutEffect as ue, useMemo as $, Children as he, isValidElement as me } from "react";
7
+ import { c as fe } from "./getFaceInfo-Cjcgcc4w.js";
8
+ import { d as xt, e as vt } from "./getFaceInfo-Cjcgcc4w.js";
9
+ import { jsx as g, jsxs as k, Fragment as W } from "react/jsx-runtime";
10
+ import { PerspectiveCamera as pe } from "@react-three/drei";
11
+ import { S as Ct, g as St, c as Rt, d as It, u as Et } from "./index-N7C6fNah.js";
12
+ import { u as ee } from "./useFaceResults-CBmhT5E8.js";
13
+ import { h as Ft } from "./hasFullUnitUVBounds-BGvcFsQM.js";
14
+ import { X as ge, a as be, b as we } from "./contexts-D5TQcwmv.js";
15
+ import { B as zt, M as Xt, h as kt, i as At, T as Lt, c as Vt, j as Dt, k as Bt, g as Wt, e as _t, f as Ht, r as Pt, t as $t, d as qt, u as Ut } from "./contexts-D5TQcwmv.js";
16
+ import * as L from "three";
17
+ const B = ({
18
+ children: e,
19
+ config: t,
20
+ style: n
21
+ }) => /* @__PURE__ */ g(
22
+ "div",
23
+ {
24
+ "data-render-target": t.name,
25
+ style: {
26
+ position: "absolute",
27
+ inset: 0,
28
+ overflow: "hidden",
29
+ background: t.clearColor,
30
+ pointerEvents: t.pointerEvents ?? "none",
31
+ zIndex: t.zIndex,
32
+ opacity: t.hidden ? 0 : 1,
33
+ ...n
34
+ },
35
+ children: e
36
+ }
37
+ ), q = ({
38
+ canvas: e,
39
+ layout: t,
40
+ media: n,
41
+ mirrored: r,
42
+ filter: o
43
+ }) => {
44
+ const i = Math.round(t.destination.width), a = Math.round(t.destination.height);
45
+ e.width !== i && (e.width = i), e.height !== a && (e.height = a);
46
+ const s = e.getContext("2d");
47
+ s && (s.setTransform(1, 0, 0, 1, 0, 0), s.clearRect(0, 0, i, a), r && (s.translate(i, 0), s.scale(-1, 1)), o && (s.filter = o), s.drawImage(n, t.offsetX, t.offsetY, t.drawWidth, t.drawHeight), o && (s.filter = "none"), s.setTransform(1, 0, 0, 1, 0, 0));
48
+ }, te = ({
49
+ canvasRef: e,
50
+ enabled: t = !0,
51
+ fps: n = 30,
52
+ imageRef: r,
53
+ layout: o,
54
+ mirrored: i,
55
+ sourceKind: a,
56
+ videoRef: s
57
+ }) => {
58
+ M(() => {
59
+ if (!t) {
60
+ const b = e.current, f = b == null ? void 0 : b.getContext("2d");
61
+ b && f && f.clearRect(0, 0, b.width, b.height);
62
+ return;
63
+ }
64
+ let l = 0, c = 0;
65
+ const d = n > 0 ? 1e3 / n : 0, h = (b) => {
66
+ if (l = requestAnimationFrame(h), d > 0 && b - c < d) return;
67
+ c = b;
68
+ const f = e.current;
69
+ if (!f || !o) return;
70
+ if (a === "image") {
71
+ const p = r.current;
72
+ if (!p || !p.complete || p.naturalWidth <= 0 || p.naturalHeight <= 0)
73
+ return;
74
+ q({
75
+ canvas: f,
76
+ layout: o,
77
+ media: p,
78
+ mirrored: i
79
+ });
80
+ return;
81
+ }
82
+ const w = s.current;
83
+ !w || w.readyState < 2 || w.videoWidth <= 0 || w.videoHeight <= 0 || q({
84
+ canvas: f,
85
+ layout: o,
86
+ media: w,
87
+ mirrored: i
88
+ });
89
+ };
90
+ return l = requestAnimationFrame(h), () => {
91
+ cancelAnimationFrame(l);
92
+ };
93
+ }, [e, t, n, r, o, i, a, s]);
94
+ }, xe = ({
95
+ canvasRef: e,
96
+ imageRef: t,
97
+ layer: n,
98
+ layout: r,
99
+ mirrored: o,
100
+ sourceKind: i,
101
+ videoRef: a
102
+ }) => (te({
103
+ canvasRef: e,
104
+ imageRef: t,
105
+ layout: r,
106
+ mirrored: o,
107
+ sourceKind: i,
108
+ videoRef: a
109
+ }), /* @__PURE__ */ g(B, { config: n, children: /* @__PURE__ */ g(
110
+ "canvas",
111
+ {
112
+ ref: e,
113
+ style: {
114
+ position: "absolute",
115
+ inset: 0,
116
+ width: "100%",
117
+ height: "100%",
118
+ display: "block",
119
+ background: "#000"
120
+ }
121
+ }
122
+ ) })), tt = ({
123
+ canvasRef: e,
124
+ controlInsetTop: t,
125
+ debugVisible: n,
126
+ fps: r = 15,
127
+ imageRef: o,
128
+ layer: i,
129
+ layout: a,
130
+ mirrored: s,
131
+ sourceKind: l,
132
+ videoRef: c,
133
+ viewportSize: d
134
+ }) => {
135
+ te({
136
+ canvasRef: e,
137
+ enabled: n,
138
+ fps: r,
139
+ imageRef: o,
140
+ layout: a,
141
+ mirrored: s,
142
+ sourceKind: l,
143
+ videoRef: c
144
+ });
145
+ const h = Math.min(220, Math.max(120, d.width * 0.22)), b = d.width > 0 && d.height > 0 ? d.width / d.height : 1, f = Math.min(d.height - 24, Math.max(t ?? 16, 16));
146
+ return /* @__PURE__ */ g(B, { config: i, children: /* @__PURE__ */ g(
147
+ "canvas",
148
+ {
149
+ ref: e,
150
+ style: {
151
+ position: "absolute",
152
+ left: 16,
153
+ top: f,
154
+ width: n ? h : 1,
155
+ height: n ? "auto" : 1,
156
+ aspectRatio: `${b}`,
157
+ opacity: n ? 0.85 : 0,
158
+ borderRadius: 10,
159
+ border: n ? "1px solid rgba(255,255,255,0.16)" : "none",
160
+ pointerEvents: "none",
161
+ objectFit: "contain",
162
+ background: "#000"
163
+ }
164
+ }
165
+ ) });
166
+ }, ve = {
167
+ audio: !1,
168
+ video: {
169
+ facingMode: "user",
170
+ frameRate: { ideal: 30, max: 60 }
171
+ }
172
+ }, ye = {
173
+ name: "viewport-live",
174
+ clearColor: "#000000",
175
+ pointerEvents: "none",
176
+ zIndex: 0
177
+ }, Ce = {
178
+ name: "viewport-ui",
179
+ clearColor: "transparent",
180
+ pointerEvents: "auto",
181
+ zIndex: 5
182
+ }, Se = {
183
+ name: "viewport-scene",
184
+ clearColor: "transparent",
185
+ pointerEvents: "auto",
186
+ zIndex: 1
187
+ }, A = {
188
+ webcam: { icon: "◉", label: "Webcam" },
189
+ image: { icon: "▣", label: "Images" },
190
+ video: { icon: "▶", label: "Videos" }
191
+ }, Re = ({
192
+ imageRef: e,
193
+ selectedSource: t,
194
+ videoRef: n
195
+ }) => /* @__PURE__ */ k(W, { children: [
196
+ /* @__PURE__ */ g(
197
+ "video",
198
+ {
199
+ ref: n,
200
+ style: {
201
+ position: "absolute",
202
+ width: 1,
203
+ height: 1,
204
+ opacity: t === "image" ? 0 : 1e-3,
205
+ pointerEvents: "none"
206
+ }
207
+ }
208
+ ),
209
+ /* @__PURE__ */ g(
210
+ "img",
211
+ {
212
+ ref: e,
213
+ alt: "",
214
+ style: {
215
+ position: "absolute",
216
+ width: 1,
217
+ height: 1,
218
+ opacity: t === "image" ? 1e-3 : 0,
219
+ pointerEvents: "none"
220
+ }
221
+ }
222
+ )
223
+ ] }), Y = ({
224
+ dock: e,
225
+ label: t,
226
+ onChange: n,
227
+ options: r,
228
+ value: o
229
+ }) => /* @__PURE__ */ g(
230
+ "div",
231
+ {
232
+ style: {
233
+ position: "absolute",
234
+ top: e === "top-left" ? 74 : void 0,
235
+ bottom: e === "bottom-left" ? 74 : void 0,
236
+ left: 16,
237
+ zIndex: 5,
238
+ maxWidth: "calc(100vw - 32px)",
239
+ padding: 10,
240
+ borderRadius: 14,
241
+ background: "rgba(15, 23, 42, 0.72)",
242
+ border: "1px solid rgba(255,255,255,0.12)",
243
+ boxShadow: "0 12px 30px rgba(0,0,0,0.18)",
244
+ backdropFilter: "blur(10px)"
245
+ },
246
+ children: /* @__PURE__ */ k(
247
+ "label",
248
+ {
249
+ style: {
250
+ display: "grid",
251
+ gap: 6,
252
+ color: "#e5eefb",
253
+ fontSize: 12,
254
+ fontWeight: 700
255
+ },
256
+ children: [
257
+ /* @__PURE__ */ g("span", { children: t }),
258
+ /* @__PURE__ */ g(
259
+ "select",
260
+ {
261
+ value: o,
262
+ onChange: (i) => n(i.target.value),
263
+ style: {
264
+ minWidth: 180,
265
+ maxWidth: "calc(100vw - 52px)",
266
+ height: 36,
267
+ borderRadius: 10,
268
+ border: "1px solid rgba(255,255,255,0.12)",
269
+ background: "rgba(255,255,255,0.06)",
270
+ color: "#e5eefb",
271
+ padding: "0 10px"
272
+ },
273
+ children: r.map((i) => /* @__PURE__ */ g("option", { value: i.id, style: { color: "#111827" }, children: i.label }, i.id))
274
+ }
275
+ )
276
+ ]
277
+ }
278
+ )
279
+ }
280
+ ), Ie = ({
281
+ dock: e,
282
+ imageOptions: t,
283
+ selectedImageId: n,
284
+ selectedSource: r,
285
+ selectedVideoId: o,
286
+ setSelectedImageId: i,
287
+ setSelectedSource: a,
288
+ setSelectedVideoId: s,
289
+ showMediaControls: l,
290
+ videoOptions: c
291
+ }) => {
292
+ const [d, h] = S(!1), b = ["webcam", "image", "video"].filter((f) => f === "image" ? t.length > 0 : f === "video" ? c.length > 0 : !0);
293
+ return l ? d ? /* @__PURE__ */ g(
294
+ "button",
295
+ {
296
+ type: "button",
297
+ onClick: () => h(!1),
298
+ "aria-label": "Open media controls",
299
+ title: "Open media controls",
300
+ style: {
301
+ position: "absolute",
302
+ top: e === "top-left" ? 16 : void 0,
303
+ bottom: e === "bottom-left" ? 16 : void 0,
304
+ left: 16,
305
+ zIndex: 5,
306
+ width: 40,
307
+ height: 40,
308
+ border: "1px solid rgba(255,255,255,0.12)",
309
+ borderRadius: 999,
310
+ background: "rgba(15, 23, 42, 0.72)",
311
+ color: "#e5eefb",
312
+ boxShadow: "0 12px 30px rgba(0,0,0,0.18)",
313
+ backdropFilter: "blur(10px)",
314
+ cursor: "pointer"
315
+ },
316
+ children: "≡"
317
+ }
318
+ ) : /* @__PURE__ */ k(W, { children: [
319
+ /* @__PURE__ */ k(
320
+ "div",
321
+ {
322
+ style: {
323
+ position: "absolute",
324
+ top: e === "top-left" ? 16 : void 0,
325
+ bottom: e === "bottom-left" ? 16 : void 0,
326
+ left: 16,
327
+ zIndex: 5,
328
+ display: "inline-flex",
329
+ alignItems: "center",
330
+ gap: 8,
331
+ maxWidth: "calc(100vw - 32px)"
332
+ },
333
+ children: [
334
+ /* @__PURE__ */ g(
335
+ "div",
336
+ {
337
+ style: {
338
+ display: "inline-flex",
339
+ alignItems: "center",
340
+ gap: 8,
341
+ padding: 8,
342
+ borderRadius: 999,
343
+ background: "rgba(15, 23, 42, 0.72)",
344
+ border: "1px solid rgba(255,255,255,0.12)",
345
+ boxShadow: "0 12px 30px rgba(0,0,0,0.18)",
346
+ backdropFilter: "blur(10px)",
347
+ overflowX: "auto"
348
+ },
349
+ children: b.map((f) => {
350
+ const w = f === r;
351
+ return /* @__PURE__ */ k(
352
+ "button",
353
+ {
354
+ type: "button",
355
+ onClick: () => a(f),
356
+ "aria-pressed": w,
357
+ title: A[f].label,
358
+ style: {
359
+ border: "none",
360
+ borderRadius: 999,
361
+ minWidth: 42,
362
+ height: 42,
363
+ padding: "0 12px",
364
+ display: "inline-flex",
365
+ alignItems: "center",
366
+ justifyContent: "center",
367
+ gap: 8,
368
+ background: w ? "rgba(56, 189, 248, 0.18)" : "rgba(255,255,255,0.04)",
369
+ color: w ? "#e0f2fe" : "rgba(229,238,251,0.82)",
370
+ cursor: "pointer",
371
+ flex: "0 0 auto"
372
+ },
373
+ children: [
374
+ /* @__PURE__ */ g("span", { style: { fontSize: 14, lineHeight: 1 }, children: A[f].icon }),
375
+ /* @__PURE__ */ g("span", { style: { fontSize: 12, fontWeight: 700, letterSpacing: "0.01em" }, children: A[f].label })
376
+ ]
377
+ },
378
+ f
379
+ );
380
+ })
381
+ }
382
+ ),
383
+ /* @__PURE__ */ g(
384
+ "button",
385
+ {
386
+ type: "button",
387
+ onClick: () => h(!0),
388
+ "aria-label": "Close media controls",
389
+ title: "Close media controls",
390
+ style: {
391
+ width: 40,
392
+ height: 40,
393
+ border: "1px solid rgba(255,255,255,0.12)",
394
+ borderRadius: 999,
395
+ background: "rgba(15, 23, 42, 0.72)",
396
+ color: "#e5eefb",
397
+ boxShadow: "0 12px 30px rgba(0,0,0,0.18)",
398
+ backdropFilter: "blur(10px)",
399
+ cursor: "pointer",
400
+ flex: "0 0 auto"
401
+ },
402
+ children: "×"
403
+ }
404
+ )
405
+ ]
406
+ }
407
+ ),
408
+ r === "image" && t.length > 0 && /* @__PURE__ */ g(
409
+ Y,
410
+ {
411
+ dock: e,
412
+ label: "Image Asset",
413
+ options: t,
414
+ value: n,
415
+ onChange: i
416
+ }
417
+ ),
418
+ r === "video" && c.length > 0 && /* @__PURE__ */ g(
419
+ Y,
420
+ {
421
+ dock: e,
422
+ label: "Video Asset",
423
+ options: c,
424
+ value: o,
425
+ onChange: s
426
+ }
427
+ )
428
+ ] }) : null;
429
+ }, Ee = ({
430
+ containerRef: e,
431
+ displayCanvasRef: t,
432
+ imageOptions: n,
433
+ imageRef: r,
434
+ layout: o,
435
+ managesOwnMedia: i,
436
+ mediaDock: a,
437
+ mode: s,
438
+ overlayContent: l,
439
+ renderOutputs: c,
440
+ sceneContent: d,
441
+ selectedImageId: h,
442
+ selectedSource: b,
443
+ selectedVideoId: f,
444
+ setSceneRenderOutputs: w,
445
+ setSelectedImageId: p,
446
+ setSelectedSource: m,
447
+ setSelectedVideoId: y,
448
+ showMediaControls: F,
449
+ style: R,
450
+ videoOptions: v,
451
+ videoRef: I,
452
+ viewportSize: x,
453
+ mirrored: u
454
+ }) => /* @__PURE__ */ k(
455
+ "div",
456
+ {
457
+ ref: e,
458
+ style: {
459
+ position: "fixed",
460
+ inset: 0,
461
+ overflow: "hidden",
462
+ background: "#000",
463
+ ...R
464
+ },
465
+ children: [
466
+ /* @__PURE__ */ g(Re, { imageRef: r, selectedSource: b, videoRef: I }),
467
+ s === "dom" && i && /* @__PURE__ */ g(
468
+ xe,
469
+ {
470
+ canvasRef: t,
471
+ imageRef: r,
472
+ videoRef: I,
473
+ layer: ye,
474
+ layout: o,
475
+ mirrored: u,
476
+ sourceKind: b === "image" ? "image" : "video"
477
+ }
478
+ ),
479
+ (s === "r3f" || s === "hybrid") && /* @__PURE__ */ g(B, { config: Se, children: /* @__PURE__ */ g(
480
+ ge,
481
+ {
482
+ onRenderOutputs: w,
483
+ renderOutputs: {
484
+ sceneColor: c.sceneColor || c.finalColor,
485
+ sceneDepth: c.sceneDepth
486
+ },
487
+ renderTargetSize: x,
488
+ style: { width: "100%", height: "100%" },
489
+ children: d
490
+ }
491
+ ) }),
492
+ /* @__PURE__ */ k(B, { config: Ce, children: [
493
+ i && /* @__PURE__ */ g(
494
+ Ie,
495
+ {
496
+ dock: a,
497
+ imageOptions: n,
498
+ selectedImageId: h,
499
+ selectedSource: b,
500
+ selectedVideoId: f,
501
+ setSelectedImageId: p,
502
+ setSelectedSource: m,
503
+ setSelectedVideoId: y,
504
+ showMediaControls: F,
505
+ videoOptions: v
506
+ }
507
+ ),
508
+ l
509
+ ] })
510
+ ]
511
+ }
512
+ ), Te = 5, Fe = 1, Me = (e, t) => t, ze = "brightness(2.2) contrast(1.5) saturate(1.25)", Xe = ({
513
+ enabled: e,
514
+ displayMirrored: t,
515
+ imageRef: n,
516
+ layout: r,
517
+ mode: o,
518
+ numFaces: i,
519
+ selectedSource: a,
520
+ sourceStream: s,
521
+ videoRef: l
522
+ }) => {
523
+ const { session: c } = se(), d = X(null), h = X(!1), b = X(document.createElement("canvas")), {
524
+ ready: f,
525
+ node: w,
526
+ error: p
527
+ } = le(O.FACE_TRACKER, {
528
+ numFaces: i ?? (o === "head-binding" ? Fe : Te)
529
+ }), [m, y] = S("idle"), [F, R] = S(null), v = e && f && !!w, I = ee({
530
+ node: v ? w : null,
531
+ enabled: v,
532
+ selectedSource: a,
533
+ onFrame: de(() => {
534
+ R(null), y("ready");
535
+ }, [])
536
+ });
537
+ return M(() => {
538
+ if (!e || !r) return;
539
+ const x = () => {
540
+ const C = a === "image" ? n.current : l.current;
541
+ if (C) {
542
+ if (C instanceof HTMLImageElement) {
543
+ if (!C.complete || C.naturalWidth <= 0 || C.naturalHeight <= 0) return;
544
+ } else if (C.readyState < 2 || C.videoWidth <= 0 || C.videoHeight <= 0)
545
+ return;
546
+ q({
547
+ canvas: b.current,
548
+ layout: r,
549
+ media: C,
550
+ mirrored: t,
551
+ filter: a === "webcam" ? ze : void 0
552
+ });
553
+ }
554
+ };
555
+ if (a === "image") {
556
+ x();
557
+ return;
558
+ }
559
+ let u = 0;
560
+ const E = () => {
561
+ u = requestAnimationFrame(E), x();
562
+ };
563
+ return u = requestAnimationFrame(E), () => cancelAnimationFrame(u);
564
+ }, [t, e, n, r, a, l]), M(() => {
565
+ var V;
566
+ if (!e) {
567
+ y("idle"), R(null), h.current = !1, d.current = null;
568
+ return;
569
+ }
570
+ if (!r) {
571
+ y("initializing");
572
+ return;
573
+ }
574
+ const x = (s == null ? void 0 : s.id) ?? (((V = l.current) == null ? void 0 : V.srcObject) instanceof MediaStream ? l.current.srcObject.id : "none"), E = a === "webcam" ? `webcam:${x}` : a;
575
+ d.current !== E && (h.current = !1, d.current = E);
576
+ let C = !1;
577
+ return (async () => {
578
+ try {
579
+ if (y("initializing"), h.current || (await c.setFrameSource({
580
+ canvas: b.current,
581
+ sourceKind: a
582
+ }), await c.start(), h.current = !0), C) return;
583
+ R(null), y("initializing");
584
+ } catch (z) {
585
+ if (C) return;
586
+ y("error"), R(z instanceof Error ? z.message : "Failed to initialize SDK face tracking");
587
+ }
588
+ })(), () => {
589
+ C = !0;
590
+ };
591
+ }, [e, r, a, c, s, l]), M(() => {
592
+ !v && e && !p && y("initializing");
593
+ }, [v, e, p]), M(() => {
594
+ p && (y("error"), R(p.message));
595
+ }, [p]), M(() => () => {
596
+ h.current = !1, c.stop();
597
+ }, [c]), {
598
+ activeDelegate: "GPU",
599
+ faces: I,
600
+ status: m,
601
+ error: F
602
+ };
603
+ }, ke = (e, t) => e === "auto" ? t === "webcam" ? "cover" : "contain" : e, Ae = ({
604
+ imageOptions: e,
605
+ initialImageId: t,
606
+ initialSource: n,
607
+ initialVideoId: r,
608
+ source: o,
609
+ videoOptions: i
610
+ }) => {
611
+ var l, c, d, h;
612
+ const a = (o == null ? void 0 : o.kind) ?? n ?? "webcam";
613
+ return {
614
+ selectedSource: a === "image" && e.length === 0 || a === "video" && i.length === 0 ? "webcam" : a,
615
+ selectedImageId: (o == null ? void 0 : o.kind) === "image" ? o.assetId ?? ((l = e[0]) == null ? void 0 : l.id) ?? "" : t ?? ((c = e[0]) == null ? void 0 : c.id) ?? "",
616
+ selectedVideoId: (o == null ? void 0 : o.kind) === "video" ? o.assetId ?? ((d = i[0]) == null ? void 0 : d.id) ?? "" : r ?? ((h = i[0]) == null ? void 0 : h.id) ?? ""
617
+ };
618
+ }, Le = (e, t, n) => {
619
+ if (e.width <= 0 || e.height <= 0 || t.width <= 0 || t.height <= 0)
620
+ return null;
621
+ const r = n === "contain" ? Math.min(t.width / e.width, t.height / e.height) : Math.max(t.width / e.width, t.height / e.height), o = e.width * r, i = e.height * r;
622
+ return {
623
+ source: e,
624
+ destination: t,
625
+ drawWidth: o,
626
+ drawHeight: i,
627
+ offsetX: (t.width - o) * 0.5,
628
+ offsetY: (t.height - i) * 0.5,
629
+ scale: r
630
+ };
631
+ }, Ve = (e) => {
632
+ if (!e) return { width: 0, height: 0 };
633
+ const t = e.getBoundingClientRect();
634
+ return {
635
+ width: t.width || e.clientWidth,
636
+ height: t.height || e.clientHeight
637
+ };
638
+ }, De = (e) => {
639
+ const [t, n] = S({ width: 0, height: 0 });
640
+ return ue(() => {
641
+ const r = e.current;
642
+ if (!r) return;
643
+ let o = 0;
644
+ const i = () => {
645
+ const c = Ve(r);
646
+ n(
647
+ (d) => d.width === c.width && d.height === c.height ? d : c
648
+ );
649
+ }, a = () => {
650
+ i(), o && cancelAnimationFrame(o), o = requestAnimationFrame(i);
651
+ };
652
+ a();
653
+ const s = new ResizeObserver(a);
654
+ s.observe(r);
655
+ const l = window.visualViewport;
656
+ return window.addEventListener("resize", a), window.addEventListener("orientationchange", a), l == null || l.addEventListener("resize", a), l == null || l.addEventListener("scroll", a), () => {
657
+ o && cancelAnimationFrame(o), s.disconnect(), window.removeEventListener("resize", a), window.removeEventListener("orientationchange", a), l == null || l.removeEventListener("resize", a), l == null || l.removeEventListener("scroll", a);
658
+ };
659
+ }, [e]), t;
660
+ }, Be = ({
661
+ enabled: e,
662
+ selectedSource: t
663
+ }) => {
664
+ const n = ce(O.FACE_TRACKER);
665
+ return {
666
+ faces: ee({ node: n, enabled: e, selectedSource: t }),
667
+ trackerStatus: n ? "ready" : "idle"
668
+ };
669
+ }, J = (e) => {
670
+ e && (e.pause(), e.removeAttribute("src"), e.srcObject = null, e.load());
671
+ }, Q = (e) => {
672
+ e && e.removeAttribute("src");
673
+ }, We = ({
674
+ enabled: e,
675
+ imageAsset: t,
676
+ selectedSource: n,
677
+ videoAsset: r
678
+ }) => {
679
+ const o = X(null), i = X(null), [a, s] = S(null), [l, c] = S({ width: 0, height: 0 }), [d, h] = S("idle"), [b, f] = S(null);
680
+ return M(() => {
681
+ if (!e) {
682
+ J(o.current), Q(i.current), s(null), c({ width: 0, height: 0 }), h("idle"), f(null);
683
+ return;
684
+ }
685
+ let w = !1, p = null;
686
+ const m = (x, u) => {
687
+ w || (c({ width: x, height: u }), h("ready"), f(null));
688
+ }, y = () => {
689
+ J(o.current), Q(i.current), p == null || p.getTracks().forEach((x) => x.stop()), p = null, s(null);
690
+ }, F = async () => {
691
+ h("requesting");
692
+ const x = await navigator.mediaDevices.getUserMedia(ve);
693
+ if (w) {
694
+ x.getTracks().forEach((E) => E.stop());
695
+ return;
696
+ }
697
+ p = x, s(x);
698
+ const u = o.current;
699
+ u && (u.srcObject = x, u.muted = !0, u.playsInline = !0, u.autoplay = !0, await u.play(), m(u.videoWidth, u.videoHeight));
700
+ }, R = async (x) => {
701
+ h("requesting"), s(null);
702
+ const u = o.current;
703
+ u && (u.src = x, u.muted = !0, u.loop = !0, u.playsInline = !0, u.autoplay = !0, u.crossOrigin = "anonymous", await u.play(), m(u.videoWidth, u.videoHeight));
704
+ }, v = async (x) => {
705
+ h("requesting"), s(null);
706
+ const u = i.current;
707
+ u && (await new Promise((E, C) => {
708
+ u.onload = () => E(), u.onerror = () => C(new Error("Unable to load image")), u.src = x;
709
+ }), m(u.naturalWidth, u.naturalHeight));
710
+ };
711
+ return y(), (async () => {
712
+ try {
713
+ if (n === "webcam") {
714
+ await F();
715
+ return;
716
+ }
717
+ if (n === "video") {
718
+ if (!(r != null && r.src)) throw new Error("Missing video source");
719
+ await R(r.src);
720
+ return;
721
+ }
722
+ if (!(t != null && t.src)) throw new Error("Missing image source");
723
+ await v(t.src);
724
+ } catch (x) {
725
+ if (w) return;
726
+ h("error"), f(x instanceof Error ? x.message : `Unable to initialize ${n}`);
727
+ }
728
+ })(), () => {
729
+ w = !0, y();
730
+ };
731
+ }, [e, t, n, r]), {
732
+ videoRef: o,
733
+ imageRef: i,
734
+ stream: a,
735
+ mediaSize: l,
736
+ status: d,
737
+ error: b
738
+ };
739
+ }, _e = ({
740
+ enabled: e,
741
+ imageRef: t,
742
+ selectedSource: n,
743
+ status: r,
744
+ videoRef: o
745
+ }) => {
746
+ const [i, a] = S(null);
747
+ return M(() => {
748
+ if (!e || r !== "ready") {
749
+ a((c) => (c == null || c.dispose(), null));
750
+ return;
751
+ }
752
+ const s = n === "image" ? t.current : o.current;
753
+ if (!s) return;
754
+ const l = n === "image" ? new L.Texture(s) : new L.VideoTexture(s);
755
+ return l.colorSpace = L.SRGBColorSpace, l.minFilter = L.LinearFilter, l.magFilter = L.LinearFilter, l.generateMipmaps = !1, l.needsUpdate = !0, a((c) => (c == null || c.dispose(), l)), () => {
756
+ l.dispose();
757
+ };
758
+ }, [e, t, n, r, o]), i;
759
+ }, He = ({
760
+ externalTracker: e,
761
+ imageOptions: t,
762
+ layout: n,
763
+ managesOwnMedia: r,
764
+ mediaError: o,
765
+ mediaFitMode: i,
766
+ mediaSize: a,
767
+ mediaStatus: s,
768
+ mirrored: l,
769
+ selectedImage: c,
770
+ selectedImageId: d,
771
+ selectedSource: h,
772
+ selectedVideo: b,
773
+ selectedVideoId: f,
774
+ setMirrored: w,
775
+ setSelectedImageId: p,
776
+ setSelectedSource: m,
777
+ setSelectedVideoId: y,
778
+ setShowMediaControls: F,
779
+ showMediaControls: R,
780
+ tracker: v,
781
+ videoOptions: I,
782
+ viewportSize: x
783
+ }) => {
784
+ const u = h === "image" ? `${A.image.label}: ${(c == null ? void 0 : c.label) ?? ""}` : h === "video" ? `${A.video.label}: ${(b == null ? void 0 : b.label) ?? ""}` : A.webcam.label;
785
+ return {
786
+ activeDelegate: r ? v.activeDelegate : null,
787
+ faces: r ? v.faces : e.faces,
788
+ imageOptions: t,
789
+ layout: n,
790
+ mediaError: o,
791
+ mediaFitMode: i,
792
+ mediaLabel: u,
793
+ mediaStatus: s,
794
+ mirrored: l,
795
+ selectedImageId: d,
796
+ selectedSource: h,
797
+ selectedVideoId: f,
798
+ setMirrored: w,
799
+ setSelectedImageId: p,
800
+ setSelectedSource: m,
801
+ setSelectedVideoId: y,
802
+ setShowMediaControls: F,
803
+ showMediaControls: R,
804
+ trackerError: r ? v.error : null,
805
+ trackerStatus: r ? v.status : e.trackerStatus,
806
+ videoOptions: I,
807
+ viewportSize: x,
808
+ mediaSize: a
809
+ };
810
+ }, Pe = ({
811
+ mediaTexture: e,
812
+ previewMode: t,
813
+ renderOutputs: n,
814
+ sceneRenderOutputs: r
815
+ }) => $(
816
+ () => ({
817
+ requested: n,
818
+ previewMode: t,
819
+ mediaColorTexture: e,
820
+ sceneColorTexture: r.sceneColorTexture,
821
+ finalColorTexture: n.finalColor ? r.sceneColorTexture : null,
822
+ sceneDepthTexture: r.sceneDepthTexture,
823
+ estimatedDepthTexture: null,
824
+ available: {
825
+ mediaColor: e !== null,
826
+ sceneColor: r.sceneColorTexture !== null,
827
+ finalColor: !!(n.finalColor && r.sceneColorTexture),
828
+ sceneDepth: r.sceneDepthTexture !== null,
829
+ estimatedDepth: !1
830
+ }
831
+ }),
832
+ [e, t, n, r]
833
+ ), $e = ({
834
+ fitMode: e,
835
+ imageOptions: t,
836
+ initialImageId: n,
837
+ initialMirrored: r,
838
+ initialSource: o,
839
+ initialVideoId: i,
840
+ mediaStrategy: a,
841
+ previewMode: s,
842
+ renderOutputs: l,
843
+ showMediaControlsByDefault: c,
844
+ source: d,
845
+ videoOptions: h
846
+ }) => {
847
+ const b = X(null), f = X(null), w = De(b), p = $(
848
+ () => Ae({
849
+ imageOptions: t,
850
+ initialImageId: n,
851
+ initialSource: o,
852
+ initialVideoId: i,
853
+ source: d,
854
+ videoOptions: h
855
+ }),
856
+ [t, n, o, i, d, h]
857
+ ), [m, y] = S(r), [F, R] = S(c), [v, I] = S(
858
+ p.selectedSource
859
+ ), [x, u] = S(p.selectedImageId), [E, C] = S(p.selectedVideoId), [j, V] = S({
860
+ sceneColorTexture: null,
861
+ sceneDepthTexture: null
862
+ }), z = a === "internal";
863
+ M(() => {
864
+ d && (I(p.selectedSource), u(p.selectedImageId), C(p.selectedVideoId));
865
+ }, [p, d]);
866
+ const K = t.find((P) => P.id === x) ?? t[0], G = h.find((P) => P.id === E) ?? h[0], T = We({
867
+ enabled: z,
868
+ imageAsset: K,
869
+ selectedSource: v,
870
+ videoAsset: G
871
+ }), _ = ke(e, v), D = $(
872
+ () => Le(T.mediaSize, w, _),
873
+ [T.mediaSize, _, w]
874
+ ), re = _e({
875
+ enabled: !!(l.mediaColor || l.finalColor),
876
+ imageRef: T.imageRef,
877
+ selectedSource: v,
878
+ status: T.status,
879
+ videoRef: T.videoRef
880
+ }), H = Me(v, m), ne = Xe({
881
+ displayMirrored: H,
882
+ enabled: z && T.status === "ready" && D !== null,
883
+ imageRef: T.imageRef,
884
+ layout: D,
885
+ selectedSource: v,
886
+ sourceStream: T.stream,
887
+ videoRef: T.videoRef
888
+ }), oe = Be({
889
+ enabled: !z,
890
+ selectedSource: v
891
+ }), ie = He({
892
+ externalTracker: oe,
893
+ imageOptions: t,
894
+ layout: D,
895
+ managesOwnMedia: z,
896
+ mediaError: T.error,
897
+ mediaFitMode: _,
898
+ mediaSize: T.mediaSize,
899
+ mediaStatus: T.status,
900
+ mirrored: H,
901
+ selectedImage: K,
902
+ selectedImageId: x,
903
+ selectedSource: v,
904
+ selectedVideo: G,
905
+ selectedVideoId: E,
906
+ setMirrored: y,
907
+ setSelectedImageId: u,
908
+ setSelectedSource: I,
909
+ setSelectedVideoId: C,
910
+ setShowMediaControls: R,
911
+ showMediaControls: F,
912
+ tracker: ne,
913
+ videoOptions: h,
914
+ viewportSize: w
915
+ }), ae = Pe({
916
+ mediaTexture: re,
917
+ previewMode: s,
918
+ renderOutputs: l,
919
+ sceneRenderOutputs: j
920
+ });
921
+ return {
922
+ containerRef: b,
923
+ displayCanvasRef: f,
924
+ displayMirrored: H,
925
+ layout: D,
926
+ managesOwnMedia: z,
927
+ media: T,
928
+ renderOutputState: ae,
929
+ renderState: ie,
930
+ selectedImageId: x,
931
+ selectedSource: v,
932
+ selectedVideoId: E,
933
+ setSceneRenderOutputs: V,
934
+ setSelectedImageId: u,
935
+ setSelectedSource: I,
936
+ setSelectedVideoId: C,
937
+ showMediaControls: F,
938
+ viewportSize: w
939
+ };
940
+ }, U = ({ children: e }) => /* @__PURE__ */ g(W, { children: e });
941
+ U.displayName = "XRViewport.Scene";
942
+ const N = ({ children: e }) => /* @__PURE__ */ g(W, { children: e });
943
+ N.displayName = "XRViewport.Overlay";
944
+ const qe = (e, t) => {
945
+ if (e === "dom")
946
+ return {
947
+ sceneContent: null,
948
+ overlayContent: t
949
+ };
950
+ let n = null, r = null;
951
+ const o = [];
952
+ return he.forEach(t, (i) => {
953
+ var s;
954
+ if (!me(i)) {
955
+ i != null && o.push(i);
956
+ return;
957
+ }
958
+ const a = (s = i.type) == null ? void 0 : s.displayName;
959
+ if (a === U.displayName) {
960
+ n = i.props.children;
961
+ return;
962
+ }
963
+ if (a === N.displayName) {
964
+ r = i.props.children;
965
+ return;
966
+ }
967
+ o.push(i);
968
+ }), !r && o.length > 0 && (r = o), {
969
+ sceneContent: n,
970
+ overlayContent: r
971
+ };
972
+ }, Z = (e, t) => typeof e == "function" ? e(t) : e;
973
+ function Ue(e) {
974
+ return e.Scene = U, e.Overlay = N, e;
975
+ }
976
+ const rt = Ue(({
977
+ children: e,
978
+ fitMode: t = "auto",
979
+ imageOptions: n = [],
980
+ initialImageId: r,
981
+ initialMirrored: o = !0,
982
+ initialSource: i = "webcam",
983
+ initialVideoId: a,
984
+ mediaStrategy: s = "internal",
985
+ mediaDock: l = "bottom-left",
986
+ mode: c = "dom",
987
+ previewMode: d = "finalColor",
988
+ renderOutputs: h = {},
989
+ showMediaControlsByDefault: b = !0,
990
+ source: f,
991
+ style: w,
992
+ videoOptions: p = []
993
+ }) => {
994
+ const m = $e({
995
+ fitMode: t,
996
+ imageOptions: n,
997
+ initialImageId: r,
998
+ initialMirrored: o,
999
+ initialSource: i,
1000
+ initialVideoId: a,
1001
+ mediaStrategy: s,
1002
+ previewMode: d,
1003
+ renderOutputs: h,
1004
+ showMediaControlsByDefault: b,
1005
+ source: f,
1006
+ videoOptions: p
1007
+ }), y = typeof e == "function" ? e(m.renderState) : e, { sceneContent: F, overlayContent: R } = qe(c, y), v = Z(
1008
+ F,
1009
+ m.renderState
1010
+ ), I = Z(
1011
+ R,
1012
+ m.renderState
1013
+ );
1014
+ return /* @__PURE__ */ g(be.Provider, { value: m.renderState, children: /* @__PURE__ */ g(we.Provider, { value: m.renderOutputState, children: /* @__PURE__ */ g(
1015
+ Ee,
1016
+ {
1017
+ containerRef: m.containerRef,
1018
+ displayCanvasRef: m.displayCanvasRef,
1019
+ imageOptions: n,
1020
+ imageRef: m.media.imageRef,
1021
+ layout: m.layout,
1022
+ managesOwnMedia: m.managesOwnMedia,
1023
+ mediaDock: l,
1024
+ mirrored: m.displayMirrored,
1025
+ mode: c,
1026
+ overlayContent: I,
1027
+ renderOutputs: h,
1028
+ sceneContent: v,
1029
+ selectedImageId: m.selectedImageId,
1030
+ selectedSource: m.selectedSource,
1031
+ selectedVideoId: m.selectedVideoId,
1032
+ setSceneRenderOutputs: m.setSceneRenderOutputs,
1033
+ setSelectedImageId: m.setSelectedImageId,
1034
+ setSelectedSource: m.setSelectedSource,
1035
+ setSelectedVideoId: m.setSelectedVideoId,
1036
+ showMediaControls: m.showMediaControls,
1037
+ style: w,
1038
+ videoOptions: p,
1039
+ videoRef: m.media.videoRef,
1040
+ viewportSize: m.viewportSize
1041
+ }
1042
+ ) }) });
1043
+ }), Ne = {
12
1044
  position: "absolute",
13
1045
  top: -28,
14
1046
  left: 0,
@@ -19,13 +1051,13 @@ const x = {
19
1051
  fontWeight: 700,
20
1052
  padding: "4px 8px",
21
1053
  whiteSpace: "nowrap"
22
- }, b = ({
1054
+ }, nt = ({
23
1055
  boundingBox: e,
24
1056
  label: t = "face bounding box",
25
- color: o = "#22c55e",
26
- style: s,
27
- labelStyle: n
28
- }) => /* @__PURE__ */ u(
1057
+ color: n = "#22c55e",
1058
+ style: r,
1059
+ labelStyle: o
1060
+ }) => /* @__PURE__ */ g(
29
1061
  "div",
30
1062
  {
31
1063
  style: {
@@ -34,29 +1066,43 @@ const x = {
34
1066
  top: `${e.top * 100}%`,
35
1067
  width: `${e.width * 100}%`,
36
1068
  height: `${e.height * 100}%`,
37
- border: `3px solid ${o}`,
1069
+ border: `3px solid ${n}`,
38
1070
  boxSizing: "border-box",
39
1071
  pointerEvents: "none",
40
1072
  zIndex: 20,
41
- ...s
1073
+ ...r
42
1074
  },
43
- children: t !== null && /* @__PURE__ */ u("div", { style: { ...x, ...n }, children: t })
1075
+ children: t !== null && /* @__PURE__ */ g("div", { style: { ...Ne, ...o }, children: t })
44
1076
  }
45
- ), v = (e) => {
46
- const { makeDefault: t = !0, ...o } = e, s = {
47
- position: [0, 0, 40],
48
- fov: 30,
49
- near: 0.1,
50
- far: 1e3,
51
- makeDefault: t,
52
- ...o
53
- };
54
- return /* @__PURE__ */ u(h, { ...s });
55
- }, w = ({
1077
+ ), ot = (e) => {
1078
+ const [t, n] = S(null);
1079
+ return M(() => {
1080
+ let r = 0;
1081
+ const o = () => {
1082
+ var l, c;
1083
+ r = requestAnimationFrame(o);
1084
+ const i = (c = (l = e == null ? void 0 : e.detectionResults) == null ? void 0 : l.faceLandmarks) == null ? void 0 : c[0];
1085
+ if (!i || i.length === 0) {
1086
+ n(null);
1087
+ return;
1088
+ }
1089
+ const a = fe(i), s = {
1090
+ left: a.minX,
1091
+ top: a.minY,
1092
+ width: a.width,
1093
+ height: a.height
1094
+ };
1095
+ n((d) => d && d.left === s.left && d.top === s.top && d.width === s.width && d.height === s.height ? d : s);
1096
+ };
1097
+ return o(), () => {
1098
+ cancelAnimationFrame(r);
1099
+ };
1100
+ }, [e]), t;
1101
+ }, it = ({
56
1102
  background: e = "#000",
57
1103
  children: t,
58
- style: o
59
- }) => /* @__PURE__ */ u(
1104
+ style: n
1105
+ }) => /* @__PURE__ */ g(
60
1106
  "div",
61
1107
  {
62
1108
  style: {
@@ -64,62 +1110,68 @@ const x = {
64
1110
  inset: 0,
65
1111
  overflow: "hidden",
66
1112
  background: e,
67
- ...o
1113
+ ...n
68
1114
  },
69
1115
  children: t
70
1116
  }
71
- ), C = (e) => {
72
- const [t, o] = d(null);
73
- return m(() => {
74
- let s = 0;
75
- const n = () => {
76
- var l, c;
77
- s = requestAnimationFrame(n);
78
- const p = (c = (l = e == null ? void 0 : e.detectionResults) == null ? void 0 : l.faceLandmarks) == null ? void 0 : c[0];
79
- if (!p || p.length === 0) {
80
- o(null);
81
- return;
82
- }
83
- const i = f(p), a = {
84
- left: i.minX,
85
- top: i.minY,
86
- width: i.width,
87
- height: i.height
88
- };
89
- o((r) => r && r.left === a.left && r.top === a.top && r.width === a.width && r.height === a.height ? r : a);
90
- };
91
- return n(), () => {
92
- cancelAnimationFrame(s);
93
- };
94
- }, [e]), t;
95
- }, y = ["fill", "contain"];
1117
+ ), at = (e) => {
1118
+ const { makeDefault: t = !0, ...n } = e;
1119
+ return /* @__PURE__ */ g(
1120
+ pe,
1121
+ {
1122
+ position: [0, 0, 40],
1123
+ fov: 30,
1124
+ near: 0.1,
1125
+ far: 1e3,
1126
+ makeDefault: t,
1127
+ ...n
1128
+ }
1129
+ );
1130
+ }, st = ["fill", "contain"];
96
1131
  export {
97
- b as BoundingBoxOverlay,
98
- T as HeadTracker,
99
- v as PerspectiveCamera,
100
- U as ScreenRectAspectContext,
101
- y as TEXTURE_FITS,
102
- w as XRCompositor,
103
- D as XRLayer,
104
- H as XRMediaSurface,
105
- j as XRTrackingOverlay,
106
- q as XRViewport,
107
- f as computeLandmarkBounds,
108
- W as computeScreenTransform,
109
- Z as hasFullUnitUVBounds,
110
- Y as resolveCalibrationFaceDisplayMirrored,
111
- _ as useCalibrationFaceTracker,
112
- C as useFaceBoundingBox,
113
- G as useScreenSpace,
114
- F as useTrackerContext,
115
- E as useXRCameraTexture,
116
- ee as useXRContext,
117
- z as useXRError,
118
- P as useXRModel,
119
- L as useXRModelNode,
120
- V as useXRPipelineSnapshot,
121
- A as useXRReady,
122
- I as useXRRenderSize,
123
- J as useXRViewportRenderOutputs,
124
- K as useXRViewportState
1132
+ zt as BasicAnimatedTextureController,
1133
+ nt as BoundingBoxOverlay,
1134
+ dt as HeadTracker,
1135
+ Xt as MAX_GIF_BYTES,
1136
+ kt as MAX_GIF_FRAMES,
1137
+ At as MAX_GIF_PIXELS,
1138
+ at as PerspectiveCamera,
1139
+ Ct as ScreenRectAspectContext,
1140
+ st as TEXTURE_FITS,
1141
+ Lt as TextureSourceLoadError,
1142
+ it as XRCompositor,
1143
+ B as XRLayer,
1144
+ xe as XRMediaSurface,
1145
+ tt as XRTrackingOverlay,
1146
+ rt as XRViewport,
1147
+ fe as computeLandmarkBounds,
1148
+ Vt as computeScreenTransform,
1149
+ xt as createFaceInfoTarget,
1150
+ Dt as createTextureSourceResolver,
1151
+ Bt as disposeResolvedTextureSource,
1152
+ vt as getFaceInfo,
1153
+ Wt as getPlaybackFrame,
1154
+ _t as getSequenceFrame,
1155
+ St as getThreeBlending,
1156
+ Rt as getThreeDepthFunction,
1157
+ It as getThreeSide,
1158
+ Ht as gifTextureSourceProvider,
1159
+ Ft as hasFullUnitUVBounds,
1160
+ Me as resolveCalibrationFaceDisplayMirrored,
1161
+ Pt as resolveTextureSource,
1162
+ $t as throwIfAborted,
1163
+ Xe as useCalibrationFaceTracker,
1164
+ ot as useFaceBoundingBox,
1165
+ Et as useScreenSpace,
1166
+ ut as useTrackerContext,
1167
+ mt as useXRCameraTexture,
1168
+ se as useXRContext,
1169
+ ft as useXRError,
1170
+ le as useXRModel,
1171
+ ce as useXRModelNode,
1172
+ pt as useXRPipelineSnapshot,
1173
+ gt as useXRReady,
1174
+ bt as useXRRenderSize,
1175
+ qt as useXRViewportRenderOutputs,
1176
+ Ut as useXRViewportState
125
1177
  };