@vincentt-xr/sdk 2.0.0-alpha.7 → 2.0.0-alpha.9
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.
- package/GROUNDING.md +5651 -82
- package/README.md +1 -0
- package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
- package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
- package/dist/DebuggerUI-7ngnJsBe.js +275 -0
- package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
- package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
- package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
- package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
- package/dist/FaceSurface-DmP9AEeC.js +27 -0
- package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
- package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
- package/dist/SkeletonUtils-C2r90MtN.js +21 -0
- package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
- package/dist/TextLabel-XE0rQSDn.cjs +2 -0
- package/dist/TextLabel-c9BCucOI.js +961 -0
- package/dist/assets/cache.d.ts +99 -0
- package/dist/assets/estimate.d.ts +11 -0
- package/dist/assets/gltfLoader.d.ts +16 -0
- package/dist/assets/index.d.ts +7 -0
- package/dist/assets/loaders.d.ts +43 -0
- package/dist/assets/react.d.ts +33 -0
- package/dist/body-pose/index.d.ts +521 -0
- package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
- package/dist/body-trigger/frame.d.ts +88 -0
- package/dist/body-trigger/index.d.ts +6 -0
- package/dist/body-trigger/moves.d.ts +235 -0
- package/dist/body-trigger/trigger.d.ts +75 -0
- package/dist/calibration/calibration.d.ts +75 -0
- package/dist/calibration/index.d.ts +6 -0
- package/dist/calibration/storage.d.ts +13 -0
- package/dist/calibration/types.d.ts +53 -0
- package/dist/calibration/useXRCalibration.d.ts +46 -0
- package/dist/camera/CameraPermissionGate.d.ts +26 -0
- package/dist/camera/devices.d.ts +26 -0
- package/dist/camera/index.d.ts +8 -0
- package/dist/camera/permission.d.ts +86 -0
- package/dist/camera/useCameraPermission.d.ts +35 -0
- package/dist/canonicalFace-BHwyCx1c.js +9 -0
- package/dist/canonicalFace-C83I225R.cjs +1 -0
- package/dist/capabilities/detect.d.ts +45 -0
- package/dist/capabilities/index.d.ts +5 -0
- package/dist/capabilities/types.d.ts +120 -0
- package/dist/capabilities/useXRCapabilities.d.ts +18 -0
- package/dist/compat/environment.d.ts +5 -0
- package/dist/compat/index.d.ts +4 -0
- package/dist/compat/run.d.ts +18 -0
- package/dist/compat/scenarios.d.ts +10 -0
- package/dist/compat/types.d.ts +101 -0
- package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
- package/dist/components/BodyInstruction/index.d.ts +69 -0
- package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
- package/dist/components/BodyTracker/index.d.ts +17 -0
- package/dist/components/BodyTrigger/index.d.ts +49 -0
- package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
- package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
- package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
- package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
- package/dist/components/FaceAtlas/constants.d.ts +8 -0
- package/dist/components/FaceAtlas/index.d.ts +7 -0
- package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
- package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
- package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
- package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
- package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
- package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
- package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
- package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
- package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
- package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
- package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
- package/dist/components/FaceCharacter/index.d.ts +18 -0
- package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
- package/dist/components/FaceInset/FaceInset.d.ts +68 -0
- package/dist/components/FaceInset/frame.d.ts +94 -0
- package/dist/components/FaceInset/index.d.ts +6 -0
- package/dist/components/FaceInset/material.d.ts +40 -0
- package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
- package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
- package/dist/components/FaceInstruction/index.d.ts +56 -0
- package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
- package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
- package/dist/components/FaceLiquify/debug.d.ts +37 -0
- package/dist/components/FaceLiquify/frame.d.ts +55 -0
- package/dist/components/FaceLiquify/index.d.ts +10 -0
- package/dist/components/FaceLiquify/material.d.ts +39 -0
- package/dist/components/FaceLiquify/pass.d.ts +49 -0
- package/dist/components/FaceLiquify/presence.d.ts +25 -0
- package/dist/components/FaceLiquify/presets.d.ts +82 -0
- package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
- package/dist/components/FaceLiquify/target.d.ts +85 -0
- package/dist/components/FaceLiquify/warp.d.ts +72 -0
- package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +37 -5
- package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +21 -0
- package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
- package/dist/components/FaceMesh/index.d.ts +2 -2
- package/dist/components/FaceRetouch/Background.d.ts +3 -1
- package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
- package/dist/components/FaceRetouch/renderState.d.ts +19 -0
- package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
- package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
- package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
- package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
- package/dist/components/FaceSwap/index.d.ts +13 -0
- package/dist/components/FaceSwap/settings.d.ts +300 -0
- package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
- package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
- package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
- package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
- package/dist/components/FaceWarp3D/index.d.ts +2 -3
- package/dist/components/Faceless/Faceless.d.ts +51 -0
- package/dist/components/Faceless/index.d.ts +2 -0
- package/dist/components/GestureListener/index.d.ts +11 -0
- package/dist/components/HairLock/HairLock.d.ts +39 -0
- package/dist/components/HairLock/index.d.ts +2 -0
- package/dist/components/HairLock/lockGeometry.d.ts +15 -0
- package/dist/components/HandCutout/index.d.ts +35 -0
- package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
- package/dist/components/HandInstruction/index.d.ts +74 -0
- package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
- package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
- package/dist/components/HandRig/HandAttachment.d.ts +34 -0
- package/dist/components/HandRig/HandOccluder.d.ts +55 -0
- package/dist/components/HandRig/HandTattoo.d.ts +61 -0
- package/dist/components/HandRig/WristAttachment.d.ts +34 -0
- package/dist/components/HandRig/index.d.ts +101 -0
- package/dist/components/HandRig/useArmMask.d.ts +29 -0
- package/dist/components/HandRig/wristSolve.d.ts +69 -0
- package/dist/components/HandTouch/HandTouch.d.ts +62 -0
- package/dist/components/HandTouch/Touchable.d.ts +36 -0
- package/dist/components/HandTouch/index.d.ts +2 -0
- package/dist/components/HandTracker/index.d.ts +10 -0
- package/dist/components/HeadBinding/index.d.ts +14 -0
- package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
- package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
- package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
- package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
- package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
- package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
- package/dist/components/HeadOccluder/index.d.ts +57 -3
- package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
- package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
- package/dist/components/HolisticTracker/index.d.ts +69 -0
- package/dist/components/HolisticTracker/settings.d.ts +58 -0
- package/dist/components/HolisticTracker/signals.d.ts +49 -0
- package/dist/components/Instruction/HintStage.d.ts +29 -0
- package/dist/components/Instruction/InstructionCue.d.ts +126 -0
- package/dist/components/Instruction/gestureHold.d.ts +20 -0
- package/dist/components/Instruction/ghost.d.ts +129 -0
- package/dist/components/Instruction/hintBlend.d.ts +19 -0
- package/dist/components/Instruction/hintLook.d.ts +81 -0
- package/dist/components/Instruction/hintLoop.d.ts +36 -0
- package/dist/components/Instruction/index.d.ts +41 -0
- package/dist/components/Instruction/useGhostModel.d.ts +33 -0
- package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
- package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
- package/dist/components/IrisEffect/index.d.ts +51 -0
- package/dist/components/IrisEffect/settings.d.ts +117 -0
- package/dist/components/LipEffect/LipEffect.d.ts +27 -1
- package/dist/components/LipEffect/LipEffectMaterial.d.ts +95 -7
- package/dist/components/LipEffect/LipEffects.d.ts +12 -0
- package/dist/components/LipEffect/defaults.d.ts +46 -4
- package/dist/components/LipEffect/index.d.ts +11 -3
- package/dist/components/LipEffect/lipShading.d.ts +73 -0
- package/dist/components/LipEffect/settings.d.ts +375 -0
- package/dist/components/LipEffect/shader.d.ts +39 -0
- package/dist/components/LipEffect/types.d.ts +128 -9
- package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
- package/dist/components/LipEffect/uvGuide.d.ts +74 -0
- package/dist/components/Makeup/Blush.d.ts +18 -0
- package/dist/components/Makeup/Brows.d.ts +20 -0
- package/dist/components/Makeup/Contour.d.ts +17 -0
- package/dist/components/Makeup/Eyeliner.d.ts +20 -0
- package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
- package/dist/components/Makeup/Highlighter.d.ts +18 -0
- package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
- package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
- package/dist/components/Makeup/constants.d.ts +44 -0
- package/dist/components/Makeup/design.d.ts +106 -0
- package/dist/components/Makeup/designSamples.d.ts +42 -0
- package/dist/components/Makeup/eyes.d.ts +114 -0
- package/dist/components/Makeup/fields.d.ts +10 -0
- package/dist/components/Makeup/geometry.d.ts +106 -0
- package/dist/components/Makeup/index.d.ts +26 -0
- package/dist/components/Makeup/looks.d.ts +28 -0
- package/dist/components/Makeup/material.d.ts +239 -0
- package/dist/components/Makeup/settings.d.ts +54 -0
- package/dist/components/Makeup/shades.d.ts +143 -0
- package/dist/components/Makeup/shapes.d.ts +27 -0
- package/dist/components/Makeup/skinTone.d.ts +135 -0
- package/dist/components/Makeup/types.d.ts +110 -0
- package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
- package/dist/components/Necklace/Necklace.d.ts +44 -0
- package/dist/components/Necklace/index.d.ts +1 -0
- package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
- package/dist/components/ParticleEmitter/index.d.ts +1 -0
- package/dist/components/PersonCutout/index.d.ts +50 -0
- package/dist/components/PersonCutout/personCutout.d.ts +16 -0
- package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +1 -1
- package/dist/components/ScreenImage/index.d.ts +3 -1
- package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +1 -1
- package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
- package/dist/components/ScreenImage/source.d.ts +6 -0
- package/dist/components/ScreenImage/types.d.ts +18 -0
- package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
- package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
- package/dist/components/SegmentationOverlay/index.d.ts +9 -0
- package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
- package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
- package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
- package/dist/components/ShoulderOccluder/index.d.ts +43 -0
- package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
- package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
- package/dist/components/SpringSwing/index.d.ts +1 -0
- package/dist/components/XRProvider/index.d.ts +16 -2
- package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
- package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +1 -1
- package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +1 -1
- package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +1 -1
- package/dist/components/index.d.ts +11 -0
- package/dist/config/index.d.ts +0 -1
- package/dist/constants/index.d.ts +4 -1
- package/dist/context-DTxSQvp4.js +13 -0
- package/dist/context-hA0Rb2Xa.cjs +1 -0
- package/dist/contexts-BH7PdKFS.cjs +1 -0
- package/dist/contexts-jak8-tND.js +667 -0
- package/dist/coordinates/feed.d.ts +52 -0
- package/dist/coordinates/index.d.ts +7 -0
- package/dist/coordinates/side.d.ts +40 -0
- package/dist/coordinates/spaces.d.ts +49 -0
- package/dist/coordinates/viewport.d.ts +22 -0
- package/dist/coordinates/world.d.ts +15 -0
- package/dist/debug-ui/default-setting.cjs +2 -2
- package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
- package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
- package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
- package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
- package/dist/debug-ui/index.d.ts +18 -3
- package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
- package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
- package/dist/debug-ui/media-source/index.d.ts +1 -1
- package/dist/debug-ui/media-source/session.d.ts +30 -2
- package/dist/debug-ui/media-source.cjs +1 -1
- package/dist/debug-ui/media-source.js +1 -1
- package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
- package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
- package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
- package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
- package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
- package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
- package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
- package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
- package/dist/debug-ui/settings-panel/index.d.ts +6 -1
- package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
- package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
- package/dist/debug-ui.cjs +3 -3
- package/dist/debug-ui.js +2695 -2547
- package/dist/detector-K8aej4MB.js +59 -0
- package/dist/detector-ijypGtse.cjs +1 -0
- package/dist/entries/all.d.ts +3 -1
- package/dist/entries/core.d.ts +20 -2
- package/dist/entries/face-effects.d.ts +123 -9
- package/dist/entries/instructions.d.ts +48 -0
- package/dist/entries/internal.d.ts +2 -1
- package/dist/entries/low-level.d.ts +49 -3
- package/dist/entries/particles.d.ts +11 -0
- package/dist/entries/product.d.ts +11 -0
- package/dist/entries/tracking.d.ts +60 -2
- package/dist/face-atlas/attributes.d.ts +30 -0
- package/dist/face-atlas/eyes.d.ts +272 -0
- package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
- package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
- package/dist/face-atlas/glsl/common.d.ts +55 -0
- package/dist/face-atlas/glsl/design.d.ts +49 -0
- package/dist/face-atlas/glsl/eyes.d.ts +73 -0
- package/dist/face-atlas/glsl/finish.d.ts +24 -0
- package/dist/face-atlas/glsl/format.d.ts +4 -0
- package/dist/face-atlas/glsl/index.d.ts +59 -0
- package/dist/face-atlas/glsl/shading.d.ts +15 -0
- package/dist/face-atlas/glsl/shapes.d.ts +66 -0
- package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
- package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
- package/dist/face-atlas/guide.d.ts +51 -0
- package/dist/face-atlas/index.d.ts +25 -0
- package/dist/face-atlas/lead.d.ts +117 -0
- package/dist/face-atlas/madeUpCamera.d.ts +125 -0
- package/dist/face-atlas/masks.d.ts +53 -0
- package/dist/face-atlas/obj.d.ts +69 -0
- package/dist/face-atlas/polylines.d.ts +63 -0
- package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
- package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
- package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
- package/dist/face-atlas/probe/constants.d.ts +137 -0
- package/dist/face-atlas/probe/glsl.d.ts +43 -0
- package/dist/face-atlas/probe/lightFit.d.ts +108 -0
- package/dist/face-atlas/probe/schedule.d.ts +44 -0
- package/dist/face-atlas/probe/selfTest.d.ts +87 -0
- package/dist/face-atlas/probe/stats.d.ts +143 -0
- package/dist/face-atlas/probe/targets.d.ts +70 -0
- package/dist/face-atlas/probe/unwrap.d.ts +76 -0
- package/dist/face-atlas/quality.d.ts +28 -0
- package/dist/face-atlas/regions.d.ts +31 -0
- package/dist/face-atlas/registry.d.ts +252 -0
- package/dist/face-atlas/renderState.d.ts +86 -0
- package/dist/face-atlas/selfOcclusion.d.ts +62 -0
- package/dist/face-atlas/shading.d.ts +406 -0
- package/dist/face-atlas/shapes.d.ts +86 -0
- package/dist/face-atlas/sides.d.ts +41 -0
- package/dist/face-atlas/skinMask.d.ts +35 -0
- package/dist/face-atlas/surface.d.ts +155 -0
- package/dist/face-atlas/topology.d.ts +44 -0
- package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
- package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
- package/dist/face-character/bindFaceModel.d.ts +106 -0
- package/dist/face-character/canonicalFace.d.ts +17 -0
- package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
- package/dist/face-character/canonicalFacePositions.d.ts +7 -0
- package/dist/face-character/driveFaceModel.d.ts +57 -0
- package/dist/face-character/expressionOutputs.d.ts +45 -0
- package/dist/face-character/faceExpressions.d.ts +104 -0
- package/dist/face-character/faceImageLandmarker.d.ts +93 -0
- package/dist/face-character/faceMeshBinding.d.ts +62 -0
- package/dist/face-character/faceMorph.d.ts +77 -0
- package/dist/face-character/faceMorphs.d.ts +46 -0
- package/dist/face-character/facePhoto.d.ts +138 -0
- package/dist/face-character/facePiercings.d.ts +116 -0
- package/dist/face-character/facePin.d.ts +131 -0
- package/dist/face-character/faceReprojection.d.ts +273 -0
- package/dist/face-character/faceReprojector.d.ts +171 -0
- package/dist/face-character/faceRig.d.ts +176 -0
- package/dist/face-character/faceSwapPresence.d.ts +85 -0
- package/dist/face-character/faceTexture.d.ts +169 -0
- package/dist/face-character/faceTextureBaker.d.ts +86 -0
- package/dist/face-character/faceTextureGuide.d.ts +106 -0
- package/dist/face-character/faceTextureStats.d.ts +298 -0
- package/dist/face-character/faceTransfer.d.ts +396 -0
- package/dist/face-character/faceTransferGeometry.d.ts +109 -0
- package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
- package/dist/face-character/faceWarp3D.d.ts +101 -0
- package/dist/face-character/faceless.d.ts +79 -0
- package/dist/face-character/featureWarp.d.ts +28 -0
- package/dist/face-character/liveFaceRegistry.d.ts +370 -0
- package/dist/face-character/liveValue.d.ts +12 -0
- package/dist/face-character/memo.d.ts +15 -0
- package/dist/face-effects.cjs +2324 -1
- package/dist/face-effects.js +14208 -2268
- package/dist/face-expression/index.d.ts +182 -0
- package/dist/face-info/landmarks.d.ts +17 -3
- package/dist/face-info/types.d.ts +20 -3
- package/dist/gestures/definitions.d.ts +98 -0
- package/dist/gestures/detector.d.ts +87 -0
- package/dist/gestures/index.d.ts +8 -0
- package/dist/gestures/measures.d.ts +114 -0
- package/dist/gestures/settings.d.ts +49 -0
- package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
- package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
- package/dist/hand/armFit.d.ts +46 -0
- package/dist/hand/armMask.d.ts +178 -0
- package/dist/hand/handCutout.d.ts +23 -0
- package/dist/hand/handCutoutRegistry.d.ts +7 -0
- package/dist/hand/handGestures.d.ts +524 -0
- package/dist/hand/handPose.d.ts +98 -0
- package/dist/hand/handRigSolver.d.ts +159 -0
- package/dist/hand/handTattoo.d.ts +81 -0
- package/dist/hand/handTouch.d.ts +240 -0
- package/dist/hand/wrist.d.ts +44 -0
- package/dist/hand/wristFilter.d.ts +44 -0
- package/dist/hooks/selectors.d.ts +76 -1
- package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
- package/dist/hooks/useFaceInfo.d.ts +13 -1
- package/dist/hooks/useFaceInfos.d.ts +1 -1
- package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
- package/dist/hooks/useGesture.d.ts +32 -0
- package/dist/hooks/useIrisTracking.d.ts +45 -0
- package/dist/hooks/useTrackerContext.d.ts +6 -0
- package/dist/hooks/useXRDiagnostics.d.ts +81 -0
- package/dist/hooks/useXRModel.d.ts +7 -0
- package/dist/hooks/useXRSession/facade.d.ts +42 -2
- package/dist/hooks/useXRSession/index.d.ts +2 -2
- package/dist/hooks/useXRSession/reason.d.ts +3 -1
- package/dist/hooks/useXRSession/registry.d.ts +14 -0
- package/dist/hooks/useXRSession/store.d.ts +52 -3
- package/dist/index-B1_TzJaI.js +1104 -0
- package/dist/index-BavF06C6.js +190 -0
- package/dist/index-BfFmpddl.cjs +21 -0
- package/dist/index-BuBzneeW.cjs +46 -0
- package/dist/index-CGsQWodV.cjs +1 -0
- package/dist/index-CIe7eCMH.js +3200 -0
- package/dist/index-CfSF8LXa.cjs +1 -0
- package/dist/index-D5GTzOzD.cjs +1 -0
- package/dist/index-DBhQzvVa.js +314 -0
- package/dist/index-DE17y0ZI.cjs +1 -0
- package/dist/index-JII7huPk.js +442 -0
- package/dist/index-tpCr9CLj.cjs +1 -0
- package/dist/index-w1S7fI2B.js +1432 -0
- package/dist/index-zGaqrz_K.js +188 -0
- package/dist/instructions.cjs +30 -0
- package/dist/instructions.js +1507 -0
- package/dist/{internal-Dmk1cTXq.js → internal-B90P-clC.js} +138 -119
- package/dist/internal-Cjinca64.cjs +1 -0
- package/dist/internal.cjs +1 -1
- package/dist/internal.js +15 -10
- package/dist/iris/compute.d.ts +27 -0
- package/dist/iris/index.d.ts +4 -0
- package/dist/iris/lead.d.ts +19 -0
- package/dist/iris/types.d.ts +89 -0
- package/dist/landmarkMask-BFDyBnKM.js +224 -0
- package/dist/landmarkMask-u7es2k4X.cjs +1 -0
- package/dist/landmarks-BlUqf5MZ.cjs +1 -0
- package/dist/landmarks-bftdwq6Z.js +76 -0
- package/dist/loaders-BGAUACsd.js +363 -0
- package/dist/loaders-BJ1_QCHt.cjs +1 -0
- package/dist/low-level.cjs +1 -1
- package/dist/low-level.js +1190 -675
- package/dist/main.cjs +1 -1
- package/dist/main.js +1190 -452
- package/dist/models/Base/index.d.ts +49 -0
- package/dist/models/Body/index.d.ts +3 -1
- package/dist/models/Face/constants.d.ts +8 -0
- package/dist/models/Face/index.d.ts +4 -12
- package/dist/models/Face/rotation.d.ts +18 -3
- package/dist/models/Hand/GestureTracking.d.ts +1 -1
- package/dist/models/Hand/HandTracking.d.ts +17 -1
- package/dist/models/Holistic/index.d.ts +49 -0
- package/dist/models/Holistic/result.d.ts +68 -0
- package/dist/models/Segmentation/index.d.ts +2 -0
- package/dist/models/SemanticSegmentation/index.d.ts +31 -0
- package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
- package/dist/models/index.d.ts +2 -0
- package/dist/models/nodeSource.d.ts +9 -0
- package/dist/particles/emission.d.ts +24 -0
- package/dist/particles/eyes.d.ts +24 -0
- package/dist/particles/glsl.d.ts +14 -0
- package/dist/particles/index.d.ts +10 -0
- package/dist/particles/motion.d.ts +42 -0
- package/dist/particles/presets.d.ts +12 -0
- package/dist/particles/ring.d.ts +58 -0
- package/dist/particles/selfTest.d.ts +53 -0
- package/dist/particles/settings.d.ts +127 -0
- package/dist/particles/shapes.d.ts +29 -0
- package/dist/particles/spawner.d.ts +60 -0
- package/dist/particles/system.d.ts +64 -0
- package/dist/particles.cjs +122 -0
- package/dist/particles.js +774 -0
- package/dist/product/ProductDimensions.d.ts +16 -0
- package/dist/product/ProductHotspot.d.ts +16 -0
- package/dist/product/ProductViewer.d.ts +9 -0
- package/dist/product/details.d.ts +53 -0
- package/dist/product/index.d.ts +14 -0
- package/dist/product/loadModelViewer.d.ts +4 -0
- package/dist/product/types.d.ts +71 -0
- package/dist/product/useProductAr.d.ts +37 -0
- package/dist/product/useProductDetails.d.ts +60 -0
- package/dist/product.cjs +1 -0
- package/dist/product.js +414 -0
- package/dist/providers-C8rE26Uf.js +366 -0
- package/dist/providers-DHsrhDI2.cjs +62 -0
- package/dist/quality/XRQualityController.d.ts +25 -0
- package/dist/quality/controller.d.ts +33 -0
- package/dist/quality/index.d.ts +6 -0
- package/dist/quality/types.d.ts +100 -0
- package/dist/quality/useXRQuality.d.ts +28 -0
- package/dist/render/renderPasses.d.ts +8 -0
- package/dist/render/sceneBeforeRender.d.ts +12 -0
- package/dist/{renderGroups-KZk6eRiY.js → renderGroups-B38pUaX2.js} +1 -1
- package/dist/{renderGroups-80H3DpTl.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
- package/dist/renderPasses-B6l8IpJv.js +1290 -0
- package/dist/renderPasses-dqmkft4P.cjs +158 -0
- package/dist/renderState-CJNmj5jz.js +39 -0
- package/dist/renderState-apSfg4eR.cjs +1 -0
- package/dist/scene-object.cjs +1 -1
- package/dist/scene-object.js +2 -2
- package/dist/segmentation-Cb3ouK6Z.js +1758 -0
- package/dist/segmentation-D9pYO6aR.cjs +1 -0
- package/dist/segmentation2d/faceMemory.d.ts +28 -0
- package/dist/segmentation2d/faceRegions.d.ts +24 -0
- package/dist/segmentation2d/index.d.ts +9 -0
- package/dist/segmentation2d/maskUv.d.ts +23 -0
- package/dist/segmentation2d/rasterize.d.ts +14 -0
- package/dist/segmentation2d/types.d.ts +52 -0
- package/dist/select-Ck5LGz-J.cjs +1 -0
- package/dist/select-pYRo_win.js +233 -0
- package/dist/selectors-C4X71aoD.cjs +1 -0
- package/dist/selectors-DmNaKIwE.js +196 -0
- package/dist/session-BrH8G7iJ.cjs +31 -0
- package/dist/session-DgA_z6O1.js +418 -0
- package/dist/settings-BJ7FMBsO.js +111 -0
- package/dist/settings-C63FMBlF.cjs +1 -0
- package/dist/similarityFit-BFqHND2e.cjs +1 -0
- package/dist/similarityFit-Bbz-R8AY.js +91 -0
- package/dist/spring/index.d.ts +2 -0
- package/dist/spring/spring.d.ts +69 -0
- package/dist/spring/swing.d.ts +54 -0
- package/dist/subjects/index.d.ts +2 -0
- package/dist/subjects/select.d.ts +62 -0
- package/dist/subjects/types.d.ts +55 -0
- package/dist/tracking-config/apply.d.ts +57 -0
- package/dist/tracking-config/index.d.ts +7 -0
- package/dist/tracking-config/resolve.d.ts +25 -0
- package/dist/tracking-config/storage.d.ts +8 -0
- package/dist/tracking-config/types.d.ts +106 -0
- package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
- package/dist/tracking.cjs +10 -1
- package/dist/tracking.js +1326 -506
- package/dist/trigger-D0Pm9noT.cjs +49 -0
- package/dist/trigger-IQeys0oS.js +2128 -0
- package/dist/types/compositor.d.ts +21 -0
- package/dist/types/face.d.ts +20 -1
- package/dist/types/hand-tracking.d.ts +9 -0
- package/dist/types/holistic.d.ts +121 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/model.d.ts +22 -2
- package/dist/types/nodes.d.ts +47 -3
- package/dist/types/segmentation.d.ts +24 -0
- package/dist/types/session.d.ts +41 -3
- package/dist/updateThrottle-BseecYag.js +4 -0
- package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
- package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
- package/dist/useFaceInfo-J4x7LsqL.js +76 -0
- package/dist/useFaceResultReader-BvEo5REG.js +61 -0
- package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
- package/dist/useInstructionHold-DOu-RpCM.js +53 -0
- package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
- package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
- package/dist/useXRCapabilities-Cr3RzuAW.cjs +1 -0
- package/dist/useXRCapabilities-Cxmlmpbd.js +30 -0
- package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
- package/dist/utils/fns.d.ts +6 -3
- package/dist/utils/headOccluderFit.d.ts +42 -0
- package/dist/utils/integrity.d.ts +21 -1
- package/dist/utils/resolveNumFaces.d.ts +13 -0
- package/dist/utils/shoulderOccluderFit.d.ts +38 -0
- package/dist/utils/similarityFit.d.ts +23 -0
- package/dist/utils/updateThrottle.d.ts +2 -0
- package/dist/utils/useStableUniforms.d.ts +18 -0
- package/dist/uv-BMFt19bg.cjs +1 -0
- package/dist/{index-ByoNj0QP.js → uv-DJU_XfmN.js} +15 -247
- package/docs/SDK_DOCUMENTATION.md +1 -2
- package/docs/api/adaptive-quality.mdx +104 -0
- package/docs/api/asset-lifecycle.mdx +78 -0
- package/docs/api/body-instructions.mdx +285 -0
- package/docs/api/body-triggers.mdx +234 -0
- package/docs/api/camera-permission.mdx +142 -0
- package/docs/api/coordinate-spaces.mdx +168 -0
- package/docs/api/cross-camera.mdx +89 -0
- package/docs/api/debug-ui-scene-editor.mdx +23 -2
- package/docs/api/diagnostics-calibration.mdx +97 -0
- package/docs/api/external-face-mesh.mdx +231 -0
- package/docs/api/face-actions.mdx +20 -16
- package/docs/api/face-attribute-expression.mdx +1 -1
- package/docs/api/face-binding-anchors.mdx +4 -2
- package/docs/api/face-character.mdx +157 -0
- package/docs/api/face-effects.mdx +9 -0
- package/docs/api/face-expression-controller.mdx +153 -0
- package/docs/api/face-info.mdx +17 -11
- package/docs/api/face-inset.mdx +204 -0
- package/docs/api/face-instructions.mdx +183 -0
- package/docs/api/face-liquify.mdx +196 -0
- package/docs/api/face-mesh.mdx +8 -9
- package/docs/api/face-morph.mdx +117 -0
- package/docs/api/face-painting.mdx +7 -0
- package/docs/api/face-reprojection.mdx +154 -0
- package/docs/api/face-retouching.mdx +18 -10
- package/docs/api/face-swap.mdx +350 -0
- package/docs/api/face-warp-3d.mdx +166 -0
- package/docs/api/faceless.mdx +143 -0
- package/docs/api/gestures.mdx +209 -0
- package/docs/api/hair.mdx +97 -0
- package/docs/api/hand-instructions.mdx +222 -0
- package/docs/api/hand-rig.mdx +535 -0
- package/docs/api/hand-touch.mdx +162 -0
- package/docs/api/head-occluder.mdx +563 -0
- package/docs/api/holistic-tracker.mdx +164 -0
- package/docs/api/instructions.mdx +323 -0
- package/docs/api/iris-tracking.mdx +247 -0
- package/docs/api/made-up-camera.mdx +131 -0
- package/docs/api/makeup-skin-tone.mdx +135 -0
- package/docs/api/makeup.mdx +353 -0
- package/docs/api/multi-subject.mdx +98 -0
- package/docs/api/particles.mdx +155 -0
- package/docs/api/person-cutout.mdx +136 -0
- package/docs/api/pin-to-face-mesh.mdx +274 -0
- package/docs/api/product-ar.mdx +114 -0
- package/docs/api/product-details.mdx +78 -0
- package/docs/api/screen-space-coordinates.mdx +4 -1
- package/docs/api/segmentation-overlay.mdx +301 -0
- package/docs/api/session-lifecycle.mdx +136 -0
- package/docs/api/trackers.mdx +5 -0
- package/docs/api/tracking-config.mdx +108 -0
- package/docs/docs.json +51 -1
- package/docs/examples/lip-shaders.mdx +273 -0
- package/docs/guides/face-atlas-template.svg +1 -0
- package/docs/guides/face-atlas-textures.mdx +186 -0
- package/docs/guides/face-texture-template.svg +1 -0
- package/docs/guides/harness-debug-ui.mdx +4 -4
- package/docs/guides/lip-effect-textures.mdx +368 -0
- package/docs/guides/lip-uv-template.png +0 -0
- package/docs/guides/lip-uv-template.svg +1 -0
- package/docs/guides/makeup-design-textures.mdx +109 -0
- package/docs/introduction.mdx +1 -2
- package/package.json +23 -1
- package/dist/DebuggerUI-B6bP6P9r.cjs +0 -1
- package/dist/DebuggerUI-BjOMr8q_.js +0 -269
- package/dist/FaceMeshRenderer-C5l6VLdO.cjs +0 -155
- package/dist/FaceMeshRenderer-wjAHrJzP.js +0 -1270
- package/dist/FaceRetouch-BkJzoA79.cjs +0 -134
- package/dist/FaceRetouch-DwbKQJAN.js +0 -551
- package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
- package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
- package/dist/components/FaceWarp3D/warp.d.ts +0 -13
- package/dist/contexts-ByhzppYl.js +0 -663
- package/dist/contexts-Dr62It_K.cjs +0 -1
- package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
- package/dist/getFaceInfo-C4QpCQIY.js +0 -118
- package/dist/getFaceInfo-fA1bFBub.cjs +0 -1
- package/dist/index-9dlAQAhy.js +0 -1462
- package/dist/index-BjmTe9eM.cjs +0 -1
- package/dist/index-BpEf2BBb.cjs +0 -1
- package/dist/index-CyUUurQT.cjs +0 -1
- package/dist/index-DCiMbxC3.cjs +0 -1
- package/dist/index-DXT3WccE.js +0 -2089
- package/dist/index-DpI-qo5X.cjs +0 -17
- package/dist/index-DyVF4vEW.js +0 -111
- package/dist/index-VJ0SJwmG.js +0 -214
- package/dist/internal-Cq-TEQ5Y.cjs +0 -1
- package/dist/renderLayers-lDtL0_43.cjs +0 -1
- package/dist/renderLayers-zrK2pv5O.js +0 -13
- package/dist/renderPasses-BOoBSr8z.cjs +0 -21
- package/dist/renderPasses-BcquyVtu.js +0 -1500
- package/dist/selectors-B8H97CKA.js +0 -59
- package/dist/selectors-CZLKT2Iv.cjs +0 -1
- package/dist/session-CpkiK5YA.cjs +0 -31
- package/dist/session-DLFN_VII.js +0 -363
- package/dist/useFaceInfo-BJ8-_MOs.cjs +0 -1
- package/dist/useFaceInfo-Dk426LTu.js +0 -62
- package/dist/useFaceResults-CtetsO9M.js +0 -19
- package/dist/useFaceResults-wBJF3zyp.cjs +0 -1
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { useSyncExternalStore as s, useMemo as u } from "react";
|
|
2
|
+
import { u as d, m as g, s as p, i as h, c as S } from "./index-CIe7eCMH.js";
|
|
3
|
+
const r = () => d().session.store, o = (e) => (t) => e.subscribe(t), k = () => {
|
|
4
|
+
const e = r();
|
|
5
|
+
return s(
|
|
6
|
+
o(e),
|
|
7
|
+
() => e.getSnapshot().ready,
|
|
8
|
+
() => !1
|
|
9
|
+
);
|
|
10
|
+
}, R = () => {
|
|
11
|
+
const e = r();
|
|
12
|
+
return s(
|
|
13
|
+
o(e),
|
|
14
|
+
() => e.getSnapshot().error,
|
|
15
|
+
() => {
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
}, m = () => {
|
|
19
|
+
const e = r();
|
|
20
|
+
return s(
|
|
21
|
+
o(e),
|
|
22
|
+
() => e.getSnapshot().lifecycle,
|
|
23
|
+
() => "idle"
|
|
24
|
+
);
|
|
25
|
+
}, M = () => {
|
|
26
|
+
const e = r();
|
|
27
|
+
return s(
|
|
28
|
+
o(e),
|
|
29
|
+
() => e.getSnapshot().modelErrors,
|
|
30
|
+
() => f
|
|
31
|
+
);
|
|
32
|
+
}, f = /* @__PURE__ */ new Map(), C = () => {
|
|
33
|
+
const e = r(), t = s(
|
|
34
|
+
o(e),
|
|
35
|
+
() => e.getSnapshot().sourceKind,
|
|
36
|
+
() => {
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
return h(t);
|
|
40
|
+
}, T = () => {
|
|
41
|
+
const e = r();
|
|
42
|
+
return s(
|
|
43
|
+
o(e),
|
|
44
|
+
() => e.getSnapshot().orientation,
|
|
45
|
+
() => X
|
|
46
|
+
);
|
|
47
|
+
}, X = { type: "portrait", angle: 0 }, v = () => {
|
|
48
|
+
const e = r();
|
|
49
|
+
return s(
|
|
50
|
+
o(e),
|
|
51
|
+
() => e.getSnapshot().cameraDeviceId,
|
|
52
|
+
() => null
|
|
53
|
+
);
|
|
54
|
+
}, F = () => {
|
|
55
|
+
const e = r();
|
|
56
|
+
return s(
|
|
57
|
+
o(e),
|
|
58
|
+
() => e.getSnapshot().qualityConfig,
|
|
59
|
+
() => null
|
|
60
|
+
);
|
|
61
|
+
}, H = () => {
|
|
62
|
+
const e = r();
|
|
63
|
+
return s(
|
|
64
|
+
o(e),
|
|
65
|
+
() => e.getSnapshot().quality,
|
|
66
|
+
() => null
|
|
67
|
+
);
|
|
68
|
+
}, W = () => {
|
|
69
|
+
const e = r();
|
|
70
|
+
return s(
|
|
71
|
+
o(e),
|
|
72
|
+
() => e.getSnapshot().cameraFacing,
|
|
73
|
+
() => null
|
|
74
|
+
);
|
|
75
|
+
}, w = () => {
|
|
76
|
+
const e = r(), t = s(
|
|
77
|
+
o(e),
|
|
78
|
+
() => e.getSnapshot().cameraPermission,
|
|
79
|
+
() => "unknown"
|
|
80
|
+
), n = s(
|
|
81
|
+
o(e),
|
|
82
|
+
() => e.getSnapshot().cameraPermissionReason,
|
|
83
|
+
() => null
|
|
84
|
+
);
|
|
85
|
+
return u(() => ({ state: t, reason: n }), [t, n]);
|
|
86
|
+
}, x = (e) => {
|
|
87
|
+
const t = r(), { session: n } = d(), a = R(), c = s(
|
|
88
|
+
o(t),
|
|
89
|
+
() => t.getSnapshot().pipeline.get(e) ?? null,
|
|
90
|
+
() => null
|
|
91
|
+
), i = s(
|
|
92
|
+
o(t),
|
|
93
|
+
() => t.getSnapshot().modelErrors.get(e) ?? null,
|
|
94
|
+
() => null
|
|
95
|
+
), l = m();
|
|
96
|
+
return u(() => i ? { status: "error", fallback: g(i.error) } : a ? { status: "blocked", fallback: p(a.reason) } : c ? { status: "ready", fallback: null } : { status: n.registry.getState(e) === "initializing" ? "loading" : "unavailable", fallback: null }, [i, a, c, n, e, l]);
|
|
97
|
+
}, O = () => {
|
|
98
|
+
const e = r();
|
|
99
|
+
return s(
|
|
100
|
+
o(e),
|
|
101
|
+
() => e.getSnapshot().cameraTexture,
|
|
102
|
+
() => {
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
}, P = () => {
|
|
106
|
+
const e = r(), t = s(
|
|
107
|
+
o(e),
|
|
108
|
+
() => e.getSnapshot().renderWidth,
|
|
109
|
+
() => 0
|
|
110
|
+
), n = s(
|
|
111
|
+
o(e),
|
|
112
|
+
() => e.getSnapshot().renderHeight,
|
|
113
|
+
() => 0
|
|
114
|
+
);
|
|
115
|
+
return u(() => ({ width: t, height: n }), [t, n]);
|
|
116
|
+
}, A = () => {
|
|
117
|
+
const e = r();
|
|
118
|
+
return s(
|
|
119
|
+
o(e),
|
|
120
|
+
() => {
|
|
121
|
+
const { renderWidth: t, renderHeight: n, sourceWidth: a, sourceHeight: c } = e.getSnapshot();
|
|
122
|
+
return t > 0 && n > 0 ? t / n : a > 0 && c > 0 ? a / c : 1;
|
|
123
|
+
},
|
|
124
|
+
() => 1
|
|
125
|
+
);
|
|
126
|
+
}, D = () => {
|
|
127
|
+
const e = r(), t = s(
|
|
128
|
+
o(e),
|
|
129
|
+
() => e.getSnapshot().sourceWidth,
|
|
130
|
+
() => 0
|
|
131
|
+
), n = s(
|
|
132
|
+
o(e),
|
|
133
|
+
() => e.getSnapshot().sourceHeight,
|
|
134
|
+
() => 0
|
|
135
|
+
), a = s(
|
|
136
|
+
o(e),
|
|
137
|
+
() => e.getSnapshot().renderWidth,
|
|
138
|
+
() => 0
|
|
139
|
+
), c = s(
|
|
140
|
+
o(e),
|
|
141
|
+
() => e.getSnapshot().renderHeight,
|
|
142
|
+
() => 0
|
|
143
|
+
), i = s(
|
|
144
|
+
o(e),
|
|
145
|
+
() => e.getSnapshot().cameraZoom,
|
|
146
|
+
() => 1.2
|
|
147
|
+
), l = s(
|
|
148
|
+
o(e),
|
|
149
|
+
() => e.getSnapshot().sourceKind,
|
|
150
|
+
() => {
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
return u(
|
|
154
|
+
() => S({
|
|
155
|
+
source: { width: t, height: n },
|
|
156
|
+
feed: { width: a, height: c },
|
|
157
|
+
zoom: i,
|
|
158
|
+
mirrored: h(l)
|
|
159
|
+
}),
|
|
160
|
+
[t, n, a, c, i, l]
|
|
161
|
+
);
|
|
162
|
+
}, I = (e) => {
|
|
163
|
+
const t = r(), n = s(
|
|
164
|
+
o(t),
|
|
165
|
+
() => t.getSnapshot().pipeline.get(e) ?? null,
|
|
166
|
+
() => null
|
|
167
|
+
);
|
|
168
|
+
return u(() => n ? n.getModelNode() : null, [n]);
|
|
169
|
+
}, K = () => {
|
|
170
|
+
const e = r(), t = s(
|
|
171
|
+
o(e),
|
|
172
|
+
() => e.getSnapshot().pipeline,
|
|
173
|
+
() => e.getSnapshot().pipeline
|
|
174
|
+
);
|
|
175
|
+
return u(() => Array.from(t.keys()), [t]);
|
|
176
|
+
};
|
|
177
|
+
export {
|
|
178
|
+
F as a,
|
|
179
|
+
I as b,
|
|
180
|
+
O as c,
|
|
181
|
+
k as d,
|
|
182
|
+
C as e,
|
|
183
|
+
R as f,
|
|
184
|
+
A as g,
|
|
185
|
+
m as h,
|
|
186
|
+
M as i,
|
|
187
|
+
x as j,
|
|
188
|
+
w as k,
|
|
189
|
+
W as l,
|
|
190
|
+
v as m,
|
|
191
|
+
T as n,
|
|
192
|
+
P as o,
|
|
193
|
+
D as p,
|
|
194
|
+
K as q,
|
|
195
|
+
H as u
|
|
196
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";const m=require("./index-CfSF8LXa.cjs"),s=require("react/jsx-runtime"),L=require("react-dom"),a=require("react"),p=require("./x-KC8E4Gaj.cjs"),j=(e,t)=>new URL(`/assets/sdk/debug-ui/v1/${e}/${t}`,m.libConfig.assetStorageEndpoint).href,M=e=>e.replace(/\.[^.]+$/,"").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,t=>t.toUpperCase()),z=["person_fullbody.mp4","person_looking.mp4","person_shaking_head.mp4","person_thumbUp.mp4","two_people_smiling.mp4"],F=["person_fist_sign.jpg","person_fullbody.jpg","person_peace_sign.jpg","person_portrait.jpg","three_people_smiling.jpg","two_people_smiling.jpg"],T=(e,t)=>({id:`sdk-video-${t+1}`,kind:"video",label:M(e),url:j("videos",e)}),W=(e,t)=>({id:`sdk-image-${t+1}`,kind:"image",label:M(e),url:j("images",e)}),v=z.map(T),_=F.map(W),$=[...v,{id:"webcam",kind:"webcam",label:"Webcam"},..._];/**
|
|
2
|
+
* @license lucide-react v1.17.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const N=[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]],P=p.createLucideIcon("camera",N);/**
|
|
7
|
+
* @license lucide-react v1.17.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const V=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],D=p.createLucideIcon("chevron-down",V);/**
|
|
12
|
+
* @license lucide-react v1.17.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/const X=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],U=p.createLucideIcon("grip-vertical",X);/**
|
|
17
|
+
* @license lucide-react v1.17.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/const A=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],K=p.createLucideIcon("image",A);/**
|
|
22
|
+
* @license lucide-react v1.17.0 - ISC
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the ISC license.
|
|
25
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/const O=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],q=p.createLucideIcon("menu",O);/**
|
|
27
|
+
* @license lucide-react v1.17.0 - ISC
|
|
28
|
+
*
|
|
29
|
+
* This source code is licensed under the ISC license.
|
|
30
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
31
|
+
*/const B=[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]],H=p.createLucideIcon("video",B),G=e=>e==="webcam"?"📷 ":e==="image"?"🖼 ":"▶ ",Y={position:"fixed",zIndex:2e4,pointerEvents:"none"},R={pointerEvents:"auto",border:"1px solid rgba(255, 255, 255, 0.12)",background:"rgba(8, 15, 28, 0.58)",boxShadow:"0 12px 32px rgba(0, 0, 0, 0.28)",backdropFilter:"blur(20px) saturate(1.15)",WebkitBackdropFilter:"blur(20px) saturate(1.15)",color:"#f8fafc",display:"flex"},J={...R,width:34,height:34,borderRadius:17,alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"transform 150ms ease"},Q={...R,flexDirection:"column",borderRadius:12,overflow:"hidden",padding:4,gap:4},Z={display:"flex",alignItems:"center",gap:3},ee={width:1,height:12,background:"rgba(255, 255, 255, 0.12)",margin:"0 3px"},te={display:"flex",width:16,height:24,alignItems:"center",justifyContent:"center",cursor:"grab",color:"rgba(148, 163, 184, 0.8)",flex:"0 0 auto"},w=(e=!1)=>({display:"flex",width:24,height:24,alignItems:"center",justifyContent:"center",borderRadius:8,border:`1px solid ${e?"rgba(255, 255, 255, 0.12)":"transparent"}`,background:e?"rgba(255, 255, 255, 0.08)":"transparent",color:e?"#f8fafc":"rgba(226, 232, 240, 0.72)",cursor:"pointer",flex:"0 0 auto",transition:"background 120ms ease, color 120ms ease"}),re={position:"relative",display:"flex",alignItems:"center"},ne={width:"100%",minWidth:140,height:24,borderRadius:8,border:"1px solid rgba(255, 255, 255, 0.10)",background:"rgba(15, 23, 42, 0.65)",color:"#f8fafc",fontSize:11,outline:"none",paddingLeft:7,paddingRight:20,appearance:"none",cursor:"pointer"},se={pointerEvents:"none",position:"absolute",right:5,top:0,bottom:0,display:"flex",alignItems:"center",color:"rgba(148, 163, 184, 0.9)"},ie={height:24,display:"flex",alignItems:"center",padding:"0 8px",borderRadius:8,border:"1px solid rgba(255, 255, 255, 0.08)",background:"rgba(255, 255, 255, 0.04)",color:"rgba(226, 232, 240, 0.72)",fontSize:11},S={width:14,height:14},ae=({value:e,onChange:t,sources:n,style:i})=>{const[c,d]=a.useState(!1),[g,h]=a.useState({x:16,y:16}),[u,f]=a.useState(e.kind),o=a.useRef(null),x=a.useMemo(()=>({webcam:n.filter(r=>r.kind==="webcam"),image:n.filter(r=>r.kind==="image"),video:n.filter(r=>r.kind==="video")}),[n]),b=x[u];a.useEffect(()=>{f(e.kind)},[e.kind]);const I=r=>{f(r);const l=x[r][0];l&&t(l)};a.useEffect(()=>{const r=y=>{o.current&&h({x:Math.max(8,y.clientX-o.current.x),y:Math.max(8,y.clientY-o.current.y)})},l=()=>{o.current=null,document.body.classList.remove("select-none")};return window.addEventListener("pointermove",r),window.addEventListener("pointerup",l),()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",l)}},[]);const k=r=>{const l=r.currentTarget.getBoundingClientRect();o.current={x:r.clientX-l.left,y:r.clientY-l.top},document.body.classList.add("select-none"),r.currentTarget.setPointerCapture(r.pointerId)},C=()=>{if(b.length===0){const r=u==="webcam"?"No camera source":u==="image"?"No image preview":"No video preview";return s.jsx("div",{style:ie,children:r})}return s.jsxs("div",{style:re,children:[s.jsx("select",{value:e.id,onChange:r=>{const l=n.find(y=>y.id===r.target.value);l&&t(l)},style:ne,children:b.map(r=>s.jsxs("option",{value:r.id,children:[G(u),r.label]},r.id))}),s.jsx("div",{style:se,children:s.jsx("span",{style:{width:10,height:10},children:s.jsx(D,{size:10,strokeWidth:1.8})})})]})};return typeof document>"u"?null:L.createPortal(s.jsx("div",{style:{...Y,left:g.x,top:g.y,...i},children:c?s.jsxs("div",{style:Q,children:[s.jsxs("div",{style:Z,children:[s.jsx("div",{onPointerDown:k,style:te,title:"Drag to move",children:s.jsx(U,{size:11,strokeWidth:2})}),s.jsx("button",{type:"button",onClick:()=>d(!1),style:w(!1),title:"Close Menu",children:s.jsx("span",{style:S,children:s.jsx(p.X,{size:14,strokeWidth:1.8})})}),s.jsx("div",{style:ee}),["webcam","image","video"].map(r=>s.jsx("button",{type:"button",onClick:()=>I(r),style:w(u===r),title:r.charAt(0).toUpperCase()+r.slice(1),children:s.jsx("span",{style:S,children:r==="webcam"?s.jsx(P,{size:14,strokeWidth:1.8}):r==="image"?s.jsx(K,{size:14,strokeWidth:1.8}):s.jsx(H,{size:14,strokeWidth:1.8})})},r))]}),C()]}):s.jsx("div",{style:J,onClick:()=>d(!0),onPointerDown:k,title:"Open Media Menu",children:s.jsx("span",{style:{width:16,height:16},children:s.jsx(q,{size:14,strokeWidth:1.8})})})}),document.body)},ce=async e=>{const t=new Image;t.crossOrigin="anonymous",t.src=e,await t.decode();const n=document.createElement("canvas");n.width=t.naturalWidth,n.height=t.naturalHeight;const i=n.getContext("2d");if(!i)throw new Error("Unable to create image media canvas");i.drawImage(t,0,0,n.width,n.height);const c=n.captureStream(30);return{stream:c,release:()=>{c.getTracks().forEach(d=>d.stop()),n.width=0,n.height=0}}},oe=1/30,le=e=>{const[t,n]=a.useState(null);return a.useEffect(()=>{if(!e){n(null);return}const i=()=>n({paused:e.paused,time:e.currentTime,duration:Number.isFinite(e.duration)?e.duration:0,rate:e.playbackRate});i();const c=["play","pause","timeupdate","seeked","ratechange","durationchange"];for(const d of c)e.addEventListener(d,i);return()=>{for(const d of c)e.removeEventListener(d,i)}},[e]),a.useMemo(()=>!e||!t?null:{...t,pause:()=>e.pause(),play:()=>{e.play().catch(()=>{})},restart:()=>{e.currentTime=0},step:(i=1)=>{e.pause();const c=Number.isFinite(e.duration)?e.duration:1/0;e.currentTime=Math.min(c,Math.max(0,e.currentTime+i*oe))},setRate:i=>{e.playbackRate=i}},[e,t])},de=async e=>{const t=document.createElement("video");t.src=e,t.loop=!0,t.muted=!0,t.playsInline=!0,t.crossOrigin="anonymous",await t.play();const n=t.captureStream();return{stream:n,video:t,release:()=>{n.getTracks().forEach(i=>i.stop()),t.pause(),t.removeAttribute("src"),t.load()}}},E=(e,t)=>{const{session:n}=m.useXRContext(),[i,c]=a.useState(null),d=JSON.stringify((t==null?void 0:t.pipeline)??null),g=a.useRef(t==null?void 0:t.pipeline);return g.current=t==null?void 0:t.pipeline,a.useEffect(()=>{let h=!1,u=null;return(async()=>{try{if(e.kind==="webcam")await n.setMediaSource({source:m.XRMediaSource.WEBCAM});else{if(!e.url)throw new Error(`Missing media URL for ${e.id}`);const o=e.kind==="image"?await ce(e.url):await de(e.url);if(u=o,h){o.release();return}c(o.video??null),await n.setMediaSource({source:m.XRMediaSource.STREAM,stream:o.stream,sourceKind:e.kind})}await n.registerXRPipeline(g.current??[{model:m.XRModel.FACE_TRACKER,options:{numFaces:(t==null?void 0:t.numFaces)??1}}]),await n.start()}catch(o){console.error("[MediaSourceSession] Error initializing XR session:",o)}})(),()=>{h=!0,u==null||u.release(),c(null)}},[e,t==null?void 0:t.numFaces,d,n]),le(i)},ue=E;exports.MediaSourceSwitcher=ae;exports.defaultMediaSources=$;exports.sdkImageMediaSources=_;exports.sdkVideoMediaSources=v;exports.useFaceTrackingMediaSourceSession=ue;exports.useMediaSourceSession=E;
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
import { C as z, u as W, z as S, X as $ } from "./index-CIe7eCMH.js";
|
|
2
|
+
import { jsx as a, jsxs as y } from "react/jsx-runtime";
|
|
3
|
+
import { createPortal as F } from "react-dom";
|
|
4
|
+
import { useState as g, useRef as _, useMemo as E, useEffect as f } from "react";
|
|
5
|
+
import { c as u, X as T } from "./x-Co8jPhP0.js";
|
|
6
|
+
const R = (e, t) => new URL(`/assets/sdk/debug-ui/v1/${e}/${t}`, z.assetStorageEndpoint).href, C = (e) => e.replace(/\.[^.]+$/, "").replace(/[_-]+/g, " ").replace(/\s+/g, " ").trim().replace(/\b\w/g, (t) => t.toUpperCase()), N = [
|
|
7
|
+
"person_fullbody.mp4",
|
|
8
|
+
"person_looking.mp4",
|
|
9
|
+
"person_shaking_head.mp4",
|
|
10
|
+
"person_thumbUp.mp4",
|
|
11
|
+
"two_people_smiling.mp4"
|
|
12
|
+
], P = [
|
|
13
|
+
"person_fist_sign.jpg",
|
|
14
|
+
"person_fullbody.jpg",
|
|
15
|
+
"person_peace_sign.jpg",
|
|
16
|
+
"person_portrait.jpg",
|
|
17
|
+
"three_people_smiling.jpg",
|
|
18
|
+
"two_people_smiling.jpg"
|
|
19
|
+
], V = (e, t) => ({
|
|
20
|
+
id: `sdk-video-${t + 1}`,
|
|
21
|
+
kind: "video",
|
|
22
|
+
label: C(e),
|
|
23
|
+
url: R("videos", e)
|
|
24
|
+
}), X = (e, t) => ({
|
|
25
|
+
id: `sdk-image-${t + 1}`,
|
|
26
|
+
kind: "image",
|
|
27
|
+
label: C(e),
|
|
28
|
+
url: R("images", e)
|
|
29
|
+
}), D = N.map(V), U = P.map(X), Se = [
|
|
30
|
+
...D,
|
|
31
|
+
{ id: "webcam", kind: "webcam", label: "Webcam" },
|
|
32
|
+
...U
|
|
33
|
+
];
|
|
34
|
+
/**
|
|
35
|
+
* @license lucide-react v1.17.0 - ISC
|
|
36
|
+
*
|
|
37
|
+
* This source code is licensed under the ISC license.
|
|
38
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
39
|
+
*/
|
|
40
|
+
const A = [
|
|
41
|
+
[
|
|
42
|
+
"path",
|
|
43
|
+
{
|
|
44
|
+
d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
|
|
45
|
+
key: "18u6gg"
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
["circle", { cx: "12", cy: "13", r: "3", key: "1vg3eu" }]
|
|
49
|
+
], K = u("camera", A);
|
|
50
|
+
/**
|
|
51
|
+
* @license lucide-react v1.17.0 - ISC
|
|
52
|
+
*
|
|
53
|
+
* This source code is licensed under the ISC license.
|
|
54
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
55
|
+
*/
|
|
56
|
+
const O = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]], B = u("chevron-down", O);
|
|
57
|
+
/**
|
|
58
|
+
* @license lucide-react v1.17.0 - ISC
|
|
59
|
+
*
|
|
60
|
+
* This source code is licensed under the ISC license.
|
|
61
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
62
|
+
*/
|
|
63
|
+
const H = [
|
|
64
|
+
["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
|
|
65
|
+
["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
|
|
66
|
+
["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
|
|
67
|
+
["circle", { cx: "15", cy: "12", r: "1", key: "1tmaij" }],
|
|
68
|
+
["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
|
|
69
|
+
["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
|
|
70
|
+
], G = u("grip-vertical", H);
|
|
71
|
+
/**
|
|
72
|
+
* @license lucide-react v1.17.0 - ISC
|
|
73
|
+
*
|
|
74
|
+
* This source code is licensed under the ISC license.
|
|
75
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
76
|
+
*/
|
|
77
|
+
const Y = [
|
|
78
|
+
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
|
|
79
|
+
["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
|
|
80
|
+
["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
|
|
81
|
+
], q = u("image", Y);
|
|
82
|
+
/**
|
|
83
|
+
* @license lucide-react v1.17.0 - ISC
|
|
84
|
+
*
|
|
85
|
+
* This source code is licensed under the ISC license.
|
|
86
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
87
|
+
*/
|
|
88
|
+
const J = [
|
|
89
|
+
["path", { d: "M4 5h16", key: "1tepv9" }],
|
|
90
|
+
["path", { d: "M4 12h16", key: "1lakjw" }],
|
|
91
|
+
["path", { d: "M4 19h16", key: "1djgab" }]
|
|
92
|
+
], Q = u("menu", J);
|
|
93
|
+
/**
|
|
94
|
+
* @license lucide-react v1.17.0 - ISC
|
|
95
|
+
*
|
|
96
|
+
* This source code is licensed under the ISC license.
|
|
97
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
98
|
+
*/
|
|
99
|
+
const Z = [
|
|
100
|
+
[
|
|
101
|
+
"path",
|
|
102
|
+
{
|
|
103
|
+
d: "m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",
|
|
104
|
+
key: "ftymec"
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
["rect", { x: "2", y: "6", width: "14", height: "12", rx: "2", key: "158x01" }]
|
|
108
|
+
], ee = u("video", Z), te = (e) => e === "webcam" ? "📷 " : e === "image" ? "🖼 " : "▶ ", re = {
|
|
109
|
+
position: "fixed",
|
|
110
|
+
zIndex: 2e4,
|
|
111
|
+
pointerEvents: "none"
|
|
112
|
+
}, I = {
|
|
113
|
+
pointerEvents: "auto",
|
|
114
|
+
border: "1px solid rgba(255, 255, 255, 0.12)",
|
|
115
|
+
background: "rgba(8, 15, 28, 0.58)",
|
|
116
|
+
boxShadow: "0 12px 32px rgba(0, 0, 0, 0.28)",
|
|
117
|
+
backdropFilter: "blur(20px) saturate(1.15)",
|
|
118
|
+
WebkitBackdropFilter: "blur(20px) saturate(1.15)",
|
|
119
|
+
color: "#f8fafc",
|
|
120
|
+
display: "flex"
|
|
121
|
+
}, ne = {
|
|
122
|
+
...I,
|
|
123
|
+
width: 34,
|
|
124
|
+
height: 34,
|
|
125
|
+
borderRadius: 17,
|
|
126
|
+
alignItems: "center",
|
|
127
|
+
justifyContent: "center",
|
|
128
|
+
cursor: "pointer",
|
|
129
|
+
transition: "transform 150ms ease"
|
|
130
|
+
}, ae = {
|
|
131
|
+
...I,
|
|
132
|
+
flexDirection: "column",
|
|
133
|
+
borderRadius: 12,
|
|
134
|
+
overflow: "hidden",
|
|
135
|
+
padding: 4,
|
|
136
|
+
gap: 4
|
|
137
|
+
}, ie = {
|
|
138
|
+
display: "flex",
|
|
139
|
+
alignItems: "center",
|
|
140
|
+
gap: 3
|
|
141
|
+
}, se = {
|
|
142
|
+
width: 1,
|
|
143
|
+
height: 12,
|
|
144
|
+
background: "rgba(255, 255, 255, 0.12)",
|
|
145
|
+
margin: "0 3px"
|
|
146
|
+
}, oe = {
|
|
147
|
+
display: "flex",
|
|
148
|
+
width: 16,
|
|
149
|
+
height: 24,
|
|
150
|
+
alignItems: "center",
|
|
151
|
+
justifyContent: "center",
|
|
152
|
+
cursor: "grab",
|
|
153
|
+
color: "rgba(148, 163, 184, 0.8)",
|
|
154
|
+
flex: "0 0 auto"
|
|
155
|
+
}, v = (e = !1) => ({
|
|
156
|
+
display: "flex",
|
|
157
|
+
width: 24,
|
|
158
|
+
height: 24,
|
|
159
|
+
alignItems: "center",
|
|
160
|
+
justifyContent: "center",
|
|
161
|
+
borderRadius: 8,
|
|
162
|
+
border: `1px solid ${e ? "rgba(255, 255, 255, 0.12)" : "transparent"}`,
|
|
163
|
+
background: e ? "rgba(255, 255, 255, 0.08)" : "transparent",
|
|
164
|
+
color: e ? "#f8fafc" : "rgba(226, 232, 240, 0.72)",
|
|
165
|
+
cursor: "pointer",
|
|
166
|
+
flex: "0 0 auto",
|
|
167
|
+
transition: "background 120ms ease, color 120ms ease"
|
|
168
|
+
}), ce = {
|
|
169
|
+
position: "relative",
|
|
170
|
+
display: "flex",
|
|
171
|
+
alignItems: "center"
|
|
172
|
+
}, le = {
|
|
173
|
+
width: "100%",
|
|
174
|
+
minWidth: 140,
|
|
175
|
+
height: 24,
|
|
176
|
+
borderRadius: 8,
|
|
177
|
+
border: "1px solid rgba(255, 255, 255, 0.10)",
|
|
178
|
+
background: "rgba(15, 23, 42, 0.65)",
|
|
179
|
+
color: "#f8fafc",
|
|
180
|
+
fontSize: 11,
|
|
181
|
+
outline: "none",
|
|
182
|
+
paddingLeft: 7,
|
|
183
|
+
paddingRight: 20,
|
|
184
|
+
appearance: "none",
|
|
185
|
+
cursor: "pointer"
|
|
186
|
+
}, de = {
|
|
187
|
+
pointerEvents: "none",
|
|
188
|
+
position: "absolute",
|
|
189
|
+
right: 5,
|
|
190
|
+
top: 0,
|
|
191
|
+
bottom: 0,
|
|
192
|
+
display: "flex",
|
|
193
|
+
alignItems: "center",
|
|
194
|
+
color: "rgba(148, 163, 184, 0.9)"
|
|
195
|
+
}, ue = {
|
|
196
|
+
height: 24,
|
|
197
|
+
display: "flex",
|
|
198
|
+
alignItems: "center",
|
|
199
|
+
padding: "0 8px",
|
|
200
|
+
borderRadius: 8,
|
|
201
|
+
border: "1px solid rgba(255, 255, 255, 0.08)",
|
|
202
|
+
background: "rgba(255, 255, 255, 0.04)",
|
|
203
|
+
color: "rgba(226, 232, 240, 0.72)",
|
|
204
|
+
fontSize: 11
|
|
205
|
+
}, M = { width: 14, height: 14 }, ve = ({
|
|
206
|
+
value: e,
|
|
207
|
+
onChange: t,
|
|
208
|
+
sources: n,
|
|
209
|
+
style: i
|
|
210
|
+
}) => {
|
|
211
|
+
const [s, l] = g(!1), [p, m] = g({ x: 16, y: 16 }), [d, b] = g(e.kind), o = _(null), w = E(
|
|
212
|
+
() => ({
|
|
213
|
+
webcam: n.filter((r) => r.kind === "webcam"),
|
|
214
|
+
image: n.filter((r) => r.kind === "image"),
|
|
215
|
+
video: n.filter((r) => r.kind === "video")
|
|
216
|
+
}),
|
|
217
|
+
[n]
|
|
218
|
+
), k = w[d];
|
|
219
|
+
f(() => {
|
|
220
|
+
b(e.kind);
|
|
221
|
+
}, [e.kind]);
|
|
222
|
+
const j = (r) => {
|
|
223
|
+
b(r);
|
|
224
|
+
const c = w[r][0];
|
|
225
|
+
c && t(c);
|
|
226
|
+
};
|
|
227
|
+
f(() => {
|
|
228
|
+
const r = (h) => {
|
|
229
|
+
o.current && m({
|
|
230
|
+
x: Math.max(8, h.clientX - o.current.x),
|
|
231
|
+
y: Math.max(8, h.clientY - o.current.y)
|
|
232
|
+
});
|
|
233
|
+
}, c = () => {
|
|
234
|
+
o.current = null, document.body.classList.remove("select-none");
|
|
235
|
+
};
|
|
236
|
+
return window.addEventListener("pointermove", r), window.addEventListener("pointerup", c), () => {
|
|
237
|
+
window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", c);
|
|
238
|
+
};
|
|
239
|
+
}, []);
|
|
240
|
+
const x = (r) => {
|
|
241
|
+
const c = r.currentTarget.getBoundingClientRect();
|
|
242
|
+
o.current = {
|
|
243
|
+
x: r.clientX - c.left,
|
|
244
|
+
y: r.clientY - c.top
|
|
245
|
+
}, document.body.classList.add("select-none"), r.currentTarget.setPointerCapture(r.pointerId);
|
|
246
|
+
}, L = () => k.length === 0 ? /* @__PURE__ */ a("div", { style: ue, children: d === "webcam" ? "No camera source" : d === "image" ? "No image preview" : "No video preview" }) : /* @__PURE__ */ y("div", { style: ce, children: [
|
|
247
|
+
/* @__PURE__ */ a(
|
|
248
|
+
"select",
|
|
249
|
+
{
|
|
250
|
+
value: e.id,
|
|
251
|
+
onChange: (r) => {
|
|
252
|
+
const c = n.find((h) => h.id === r.target.value);
|
|
253
|
+
c && t(c);
|
|
254
|
+
},
|
|
255
|
+
style: le,
|
|
256
|
+
children: k.map((r) => /* @__PURE__ */ y("option", { value: r.id, children: [
|
|
257
|
+
te(d),
|
|
258
|
+
r.label
|
|
259
|
+
] }, r.id))
|
|
260
|
+
}
|
|
261
|
+
),
|
|
262
|
+
/* @__PURE__ */ a("div", { style: de, children: /* @__PURE__ */ a("span", { style: { width: 10, height: 10 }, children: /* @__PURE__ */ a(B, { size: 10, strokeWidth: 1.8 }) }) })
|
|
263
|
+
] });
|
|
264
|
+
return typeof document > "u" ? null : F(
|
|
265
|
+
/* @__PURE__ */ a("div", { style: { ...re, left: p.x, top: p.y, ...i }, children: s ? (
|
|
266
|
+
// --- Expanded State ---
|
|
267
|
+
/* @__PURE__ */ y("div", { style: ae, children: [
|
|
268
|
+
/* @__PURE__ */ y("div", { style: ie, children: [
|
|
269
|
+
/* @__PURE__ */ a("div", { onPointerDown: x, style: oe, title: "Drag to move", children: /* @__PURE__ */ a(G, { size: 11, strokeWidth: 2 }) }),
|
|
270
|
+
/* @__PURE__ */ a(
|
|
271
|
+
"button",
|
|
272
|
+
{
|
|
273
|
+
type: "button",
|
|
274
|
+
onClick: () => l(!1),
|
|
275
|
+
style: v(!1),
|
|
276
|
+
title: "Close Menu",
|
|
277
|
+
children: /* @__PURE__ */ a("span", { style: M, children: /* @__PURE__ */ a(T, { size: 14, strokeWidth: 1.8 }) })
|
|
278
|
+
}
|
|
279
|
+
),
|
|
280
|
+
/* @__PURE__ */ a("div", { style: se }),
|
|
281
|
+
["webcam", "image", "video"].map((r) => /* @__PURE__ */ a(
|
|
282
|
+
"button",
|
|
283
|
+
{
|
|
284
|
+
type: "button",
|
|
285
|
+
onClick: () => j(r),
|
|
286
|
+
style: v(d === r),
|
|
287
|
+
title: r.charAt(0).toUpperCase() + r.slice(1),
|
|
288
|
+
children: /* @__PURE__ */ a("span", { style: M, children: r === "webcam" ? /* @__PURE__ */ a(K, { size: 14, strokeWidth: 1.8 }) : r === "image" ? /* @__PURE__ */ a(q, { size: 14, strokeWidth: 1.8 }) : /* @__PURE__ */ a(ee, { size: 14, strokeWidth: 1.8 }) })
|
|
289
|
+
},
|
|
290
|
+
r
|
|
291
|
+
))
|
|
292
|
+
] }),
|
|
293
|
+
L()
|
|
294
|
+
] })
|
|
295
|
+
) : (
|
|
296
|
+
// --- Collapsed State (Minimal FAB) ---
|
|
297
|
+
/* @__PURE__ */ a(
|
|
298
|
+
"div",
|
|
299
|
+
{
|
|
300
|
+
style: ne,
|
|
301
|
+
onClick: () => l(!0),
|
|
302
|
+
onPointerDown: x,
|
|
303
|
+
title: "Open Media Menu",
|
|
304
|
+
children: /* @__PURE__ */ a("span", { style: { width: 16, height: 16 }, children: /* @__PURE__ */ a(Q, { size: 14, strokeWidth: 1.8 }) })
|
|
305
|
+
}
|
|
306
|
+
)
|
|
307
|
+
) }),
|
|
308
|
+
document.body
|
|
309
|
+
);
|
|
310
|
+
}, pe = async (e) => {
|
|
311
|
+
const t = new Image();
|
|
312
|
+
t.crossOrigin = "anonymous", t.src = e, await t.decode();
|
|
313
|
+
const n = document.createElement("canvas");
|
|
314
|
+
n.width = t.naturalWidth, n.height = t.naturalHeight;
|
|
315
|
+
const i = n.getContext("2d");
|
|
316
|
+
if (!i) throw new Error("Unable to create image media canvas");
|
|
317
|
+
i.drawImage(t, 0, 0, n.width, n.height);
|
|
318
|
+
const s = n.captureStream(30);
|
|
319
|
+
return {
|
|
320
|
+
stream: s,
|
|
321
|
+
release: () => {
|
|
322
|
+
s.getTracks().forEach((l) => l.stop()), n.width = 0, n.height = 0;
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
}, ge = 1 / 30, me = (e) => {
|
|
326
|
+
const [t, n] = g(null);
|
|
327
|
+
return f(() => {
|
|
328
|
+
if (!e) {
|
|
329
|
+
n(null);
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
const i = () => n({
|
|
333
|
+
paused: e.paused,
|
|
334
|
+
time: e.currentTime,
|
|
335
|
+
duration: Number.isFinite(e.duration) ? e.duration : 0,
|
|
336
|
+
rate: e.playbackRate
|
|
337
|
+
});
|
|
338
|
+
i();
|
|
339
|
+
const s = ["play", "pause", "timeupdate", "seeked", "ratechange", "durationchange"];
|
|
340
|
+
for (const l of s) e.addEventListener(l, i);
|
|
341
|
+
return () => {
|
|
342
|
+
for (const l of s) e.removeEventListener(l, i);
|
|
343
|
+
};
|
|
344
|
+
}, [e]), E(() => !e || !t ? null : {
|
|
345
|
+
...t,
|
|
346
|
+
pause: () => e.pause(),
|
|
347
|
+
play: () => {
|
|
348
|
+
e.play().catch(() => {
|
|
349
|
+
});
|
|
350
|
+
},
|
|
351
|
+
restart: () => {
|
|
352
|
+
e.currentTime = 0;
|
|
353
|
+
},
|
|
354
|
+
step: (i = 1) => {
|
|
355
|
+
e.pause();
|
|
356
|
+
const s = Number.isFinite(e.duration) ? e.duration : 1 / 0;
|
|
357
|
+
e.currentTime = Math.min(s, Math.max(0, e.currentTime + i * ge));
|
|
358
|
+
},
|
|
359
|
+
setRate: (i) => {
|
|
360
|
+
e.playbackRate = i;
|
|
361
|
+
}
|
|
362
|
+
}, [e, t]);
|
|
363
|
+
}, he = async (e) => {
|
|
364
|
+
const t = document.createElement("video");
|
|
365
|
+
t.src = e, t.loop = !0, t.muted = !0, t.playsInline = !0, t.crossOrigin = "anonymous", await t.play();
|
|
366
|
+
const n = t.captureStream();
|
|
367
|
+
return {
|
|
368
|
+
stream: n,
|
|
369
|
+
video: t,
|
|
370
|
+
// Stopping the stream's tracks does not stop the video: a looping sample
|
|
371
|
+
// left playing kept decoding in the background, and every switch added
|
|
372
|
+
// one more (the page got heavier with each change until a reload).
|
|
373
|
+
release: () => {
|
|
374
|
+
n.getTracks().forEach((i) => i.stop()), t.pause(), t.removeAttribute("src"), t.load();
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
}, ye = (e, t) => {
|
|
378
|
+
const { session: n } = W(), [i, s] = g(null), l = JSON.stringify((t == null ? void 0 : t.pipeline) ?? null), p = _(t == null ? void 0 : t.pipeline);
|
|
379
|
+
return p.current = t == null ? void 0 : t.pipeline, f(() => {
|
|
380
|
+
let m = !1, d = null;
|
|
381
|
+
return (async () => {
|
|
382
|
+
try {
|
|
383
|
+
if (e.kind === "webcam")
|
|
384
|
+
await n.setMediaSource({ source: S.WEBCAM });
|
|
385
|
+
else {
|
|
386
|
+
if (!e.url) throw new Error(`Missing media URL for ${e.id}`);
|
|
387
|
+
const o = e.kind === "image" ? await pe(e.url) : await he(e.url);
|
|
388
|
+
if (d = o, m) {
|
|
389
|
+
o.release();
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
s(o.video ?? null), await n.setMediaSource({
|
|
393
|
+
source: S.STREAM,
|
|
394
|
+
stream: o.stream,
|
|
395
|
+
sourceKind: e.kind
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
await n.registerXRPipeline(
|
|
399
|
+
p.current ?? [
|
|
400
|
+
{ model: $.FACE_TRACKER, options: { numFaces: (t == null ? void 0 : t.numFaces) ?? 1 } }
|
|
401
|
+
]
|
|
402
|
+
), await n.start();
|
|
403
|
+
} catch (o) {
|
|
404
|
+
console.error("[MediaSourceSession] Error initializing XR session:", o);
|
|
405
|
+
}
|
|
406
|
+
})(), () => {
|
|
407
|
+
m = !0, d == null || d.release(), s(null);
|
|
408
|
+
};
|
|
409
|
+
}, [e, t == null ? void 0 : t.numFaces, l, n]), me(i);
|
|
410
|
+
}, Me = ye;
|
|
411
|
+
export {
|
|
412
|
+
ve as M,
|
|
413
|
+
D as a,
|
|
414
|
+
ye as b,
|
|
415
|
+
Se as d,
|
|
416
|
+
U as s,
|
|
417
|
+
Me as u
|
|
418
|
+
};
|