@vincentt-xr/sdk 2.0.0-alpha.0 → 2.0.0-alpha.2

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 (362) hide show
  1. package/GROUNDING.md +1813 -27
  2. package/dist/{DebuggerUI-CEfdddkZ.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
  3. package/dist/{DebuggerUI-Dgop6Q6o.js → DebuggerUI-Cq28c18s.js} +1 -1
  4. package/dist/FaceMeshRenderer-6t8OsQhK.js +1195 -0
  5. package/dist/FaceMeshRenderer-lQLhYIW-.cjs +155 -0
  6. package/dist/FaceRetouch-CDrL0pXg.js +551 -0
  7. package/dist/FaceRetouch-DtNl8-4e.cjs +134 -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 +22 -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 +74 -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 +4 -2
  28. package/dist/components/FaceRetouch/Background.d.ts +9 -5
  29. package/dist/components/FaceRetouch/FaceRetouch.d.ts +47 -0
  30. package/dist/components/FaceRetouch/index.d.ts +2 -6
  31. package/dist/components/FaceRetouch/landmarkMask.d.ts +4 -6
  32. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +4 -7
  33. package/dist/components/FaceTracker/index.d.ts +5 -3
  34. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +15 -0
  35. package/dist/components/FaceWarp3D/defaults.d.ts +37 -0
  36. package/dist/components/FaceWarp3D/index.d.ts +3 -0
  37. package/dist/components/FaceWarp3D/warp.d.ts +13 -0
  38. package/dist/components/HandJoints2D/index.d.ts +6 -0
  39. package/dist/components/HandTracker/index.d.ts +2 -2
  40. package/dist/components/HandTracking2D/HandVisual.d.ts +12 -0
  41. package/dist/components/HandTracking2D/index.d.ts +5 -0
  42. package/dist/components/HandTracking2DController/index.d.ts +5 -0
  43. package/dist/components/HandTracking3D/index.d.ts +6 -0
  44. package/dist/components/LightObject/index.d.ts +20 -0
  45. package/dist/components/LookAt/index.d.ts +23 -0
  46. package/dist/components/MeshRenderer/index.d.ts +58 -0
  47. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  48. package/dist/components/PinToMesh/index.d.ts +47 -0
  49. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  50. package/dist/components/SceneObjectRenderer/index.d.ts +16 -0
  51. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  52. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  53. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  54. package/dist/components/Screen2D/index.d.ts +5 -0
  55. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  56. package/dist/components/ScreenGlass/index.d.ts +5 -0
  57. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  58. package/dist/components/ScreenGlass/types.d.ts +10 -0
  59. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  60. package/dist/components/ScreenGradient/index.d.ts +5 -0
  61. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  62. package/dist/components/ScreenGradient/types.d.ts +19 -0
  63. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  64. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  65. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  66. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  67. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  68. package/dist/components/ScreenImage/fit.d.ts +52 -0
  69. package/dist/components/ScreenImage/index.d.ts +8 -0
  70. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  71. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  72. package/dist/components/ScreenImage/source.d.ts +16 -0
  73. package/dist/components/ScreenImage/types.d.ts +37 -0
  74. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  75. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  76. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  77. package/dist/components/ScreenShape/index.d.ts +5 -0
  78. package/dist/components/ScreenShape/types.d.ts +41 -0
  79. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  80. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  81. package/dist/components/ScreenSpaceUI/index.d.ts +2 -0
  82. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  83. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  84. package/dist/components/ScreenText/constants.d.ts +5 -0
  85. package/dist/components/ScreenText/index.d.ts +6 -0
  86. package/dist/components/ScreenText/types.d.ts +31 -0
  87. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  88. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  89. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  90. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  91. package/dist/components/TextLabel/alignment.d.ts +4 -0
  92. package/dist/components/TextLabel/bend.d.ts +9 -0
  93. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  94. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  95. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  96. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  97. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  98. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  99. package/dist/components/TextLabel/constants.d.ts +2 -0
  100. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  101. package/dist/components/TextLabel/index.d.ts +2 -62
  102. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  103. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  104. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  105. package/dist/components/TextLabel/types.d.ts +227 -0
  106. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  107. package/dist/components/Transform3D/index.d.ts +30 -0
  108. package/dist/components/XRMediaSurface/index.d.ts +6 -6
  109. package/dist/components/XRScene/index.d.ts +14 -3
  110. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  111. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  112. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  113. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  114. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  115. package/dist/components/XRViewport/constants.d.ts +24 -0
  116. package/dist/components/XRViewport/contexts.d.ts +6 -0
  117. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  118. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  119. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  120. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  121. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  122. package/dist/components/XRViewport/index.d.ts +3 -101
  123. package/dist/components/XRViewport/layout.d.ts +16 -0
  124. package/dist/components/XRViewport/slots.d.ts +16 -0
  125. package/dist/components/XRViewport/types.d.ts +89 -0
  126. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  127. package/dist/components/index.d.ts +19 -0
  128. package/dist/contexts-BKvTIayr.cjs +1 -0
  129. package/dist/contexts-Bk5zz_VR.js +214 -0
  130. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  131. package/dist/debug-ui/default-setting/index.d.ts +37 -0
  132. package/dist/debug-ui/default-setting.cjs +21 -0
  133. package/dist/debug-ui/default-setting.js +777 -0
  134. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  135. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  136. package/dist/debug-ui/face-warp-3d/index.d.ts +6 -0
  137. package/dist/debug-ui/hand-joints-2d/index.d.ts +6 -0
  138. package/dist/debug-ui/hand-tracking-2d/index.d.ts +6 -0
  139. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +6 -0
  140. package/dist/debug-ui/hand-tracking-3d/index.d.ts +6 -0
  141. package/dist/debug-ui/hierarchy-panel/index.d.ts +29 -0
  142. package/dist/debug-ui/index.d.ts +46 -0
  143. package/dist/debug-ui/layer-panel/index.d.ts +18 -0
  144. package/dist/debug-ui/media-source/MediaSourceSwitcher.d.ts +10 -0
  145. package/dist/debug-ui/media-source/index.d.ts +6 -0
  146. package/dist/debug-ui/media-source/media-preset.d.ts +9 -0
  147. package/dist/debug-ui/media-source/session.d.ts +12 -0
  148. package/dist/debug-ui/media-source.cjs +1 -0
  149. package/dist/debug-ui/media-source.js +9 -0
  150. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  151. package/dist/debug-ui/object-inspector-panel/index.d.ts +25 -0
  152. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  153. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  154. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +9 -0
  155. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  156. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +7 -0
  157. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  158. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  159. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  160. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  161. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  162. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  163. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  164. package/dist/debug-ui/screen-image-settings/index.d.ts +9 -0
  165. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  166. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  167. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  168. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  169. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  170. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  171. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -0
  172. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  173. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  174. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  175. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  176. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  177. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  178. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  179. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  180. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  181. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  182. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  183. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  184. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  185. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  186. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  187. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  188. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  189. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  190. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  191. package/dist/debug-ui/screen-text-settings/types.d.ts +9 -0
  192. package/dist/debug-ui/settings-panel/index.d.ts +38 -0
  193. package/dist/debug-ui/shared/MaterialSection.d.ts +13 -0
  194. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +32 -0
  195. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  196. package/dist/debug-ui.cjs +10 -0
  197. package/dist/debug-ui.js +8861 -0
  198. package/dist/drawNormalizedCrop-B-7zU-Xw.cjs +1 -0
  199. package/dist/drawNormalizedCrop-CRdIDyl1.js +44 -0
  200. package/dist/entries/all.d.ts +1 -0
  201. package/dist/entries/core.d.ts +55 -4
  202. package/dist/entries/face-effects.d.ts +12 -8
  203. package/dist/entries/internal.d.ts +1 -1
  204. package/dist/entries/low-level.d.ts +21 -4
  205. package/dist/entries/scene-object.d.ts +10 -0
  206. package/dist/entries/tracking.d.ts +25 -2
  207. package/dist/face-action/index.d.ts +34 -0
  208. package/dist/face-attribute-expression/index.d.ts +10 -0
  209. package/dist/face-effects.cjs +1 -252
  210. package/dist/face-effects.js +1404 -2613
  211. package/dist/face-info/blendshapes.d.ts +3 -0
  212. package/dist/face-info/derive.d.ts +8 -0
  213. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  214. package/dist/face-info/getFaceInfo.d.ts +8 -0
  215. package/dist/face-info/index.d.ts +8 -0
  216. package/dist/face-info/landmarks.d.ts +21 -0
  217. package/dist/face-info/types.d.ts +52 -0
  218. package/dist/getFaceInfo-CyPAKh3h.cjs +1 -0
  219. package/dist/getFaceInfo-hUKMLFcr.js +118 -0
  220. package/dist/hand/handJoints2d.d.ts +49 -0
  221. package/dist/hand/handTracking2d.d.ts +33 -0
  222. package/dist/hand/handTracking2dController.d.ts +65 -0
  223. package/dist/hand/handTracking3d.d.ts +52 -0
  224. package/dist/hooks/faceResults.d.ts +1 -1
  225. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  226. package/dist/hooks/useFaceAction.d.ts +3 -0
  227. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  228. package/dist/hooks/useFaceDetection.d.ts +18 -0
  229. package/dist/hooks/useFaceInfo.d.ts +7 -0
  230. package/dist/hooks/useFaceInfos.d.ts +15 -0
  231. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  232. package/dist/hooks/useFrameCapture.d.ts +18 -0
  233. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  234. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  235. package/dist/hooks/useTrackerContext.d.ts +2 -2
  236. package/dist/hooks/useXRSession/facade.d.ts +3 -0
  237. package/dist/hooks/useXRSession/registry.d.ts +9 -0
  238. package/dist/index-82aENaRq.cjs +1 -0
  239. package/dist/{index-BD-JWMjE.js → index-BgQAX8rs.js} +198 -134
  240. package/dist/index-CEc1CAmB.cjs +1 -0
  241. package/dist/index-CTHeBQOs.js +178 -0
  242. package/dist/index-D4bLzBr6.cjs +1 -0
  243. package/dist/index-DSpzjuqd.cjs +1 -0
  244. package/dist/index-Di70KWuY.js +2049 -0
  245. package/dist/index-DzEzkBIH.cjs +17 -0
  246. package/dist/{index-CYMj26Ej.js → index-JygePOwo.js} +565 -498
  247. package/dist/index-UC0Ux38E.js +111 -0
  248. package/dist/{internal-KOKJDxCG.js → internal-DuMPpcbp.js} +86 -80
  249. package/dist/internal-i2JkM85N.cjs +1 -0
  250. package/dist/internal.cjs +1 -1
  251. package/dist/internal.js +2 -2
  252. package/dist/low-level.cjs +1 -1
  253. package/dist/low-level.js +959 -632
  254. package/dist/main.cjs +1 -1
  255. package/dist/main.js +556 -455
  256. package/dist/material/MaterialFill.d.ts +20 -0
  257. package/dist/material/MeshMaterial.d.ts +14 -0
  258. package/dist/material/index.d.ts +2 -0
  259. package/dist/models/Body/index.d.ts +1 -1
  260. package/dist/models/Face/index.d.ts +1 -0
  261. package/dist/models/Face/rotation.d.ts +3 -0
  262. package/dist/models/Hand/HandTracking.d.ts +2 -0
  263. package/dist/render/layerStack.d.ts +29 -0
  264. package/dist/render/renderGroups.d.ts +47 -0
  265. package/dist/render/renderPasses.d.ts +18 -0
  266. package/dist/renderGroups-C9QJrAXu.js +152 -0
  267. package/dist/renderGroups-Dvm1J4lW.cjs +1 -0
  268. package/dist/renderLayers-lDtL0_43.cjs +1 -0
  269. package/dist/renderLayers-zrK2pv5O.js +13 -0
  270. package/dist/renderPasses-CT5iBwtg.cjs +21 -0
  271. package/dist/renderPasses-CjgG_6kQ.js +1500 -0
  272. package/dist/scene-object/index.d.ts +146 -0
  273. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  274. package/dist/scene-object.cjs +1 -0
  275. package/dist/scene-object.js +40 -0
  276. package/dist/screen-image/screenImagePresets.d.ts +13 -0
  277. package/dist/screen-image/screenImageSettings.d.ts +57 -0
  278. package/dist/screen-text/screenTextPresets.d.ts +6 -0
  279. package/dist/screen-text/screenTextSettings.d.ts +147 -0
  280. package/dist/screen2d/coordinates.d.ts +87 -0
  281. package/dist/screen2d/index.d.ts +7 -0
  282. package/dist/screen2d/material-runtime.d.ts +32 -0
  283. package/dist/screen2d/screenTransform.d.ts +47 -0
  284. package/dist/screen2d/smoothing.d.ts +5 -0
  285. package/dist/screen2d/texture.d.ts +10 -0
  286. package/dist/screen2d/transform.d.ts +25 -0
  287. package/dist/screen2d/types.d.ts +90 -0
  288. package/dist/{selectors-Bub0o3qy.cjs → selectors-2QvO5RYY.cjs} +1 -1
  289. package/dist/{selectors-BHO6TnoC.js → selectors-Dw3C-gSk.js} +5 -5
  290. package/dist/services/MetricsCollector/index.d.ts +7 -1
  291. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  292. package/dist/session-BChR4TgK.cjs +31 -0
  293. package/dist/session-C1StwN0f.js +363 -0
  294. package/dist/texture/animatedTexture.d.ts +61 -0
  295. package/dist/texture/animationMath.d.ts +8 -0
  296. package/dist/texture/sourceResolver.d.ts +30 -0
  297. package/dist/tracking.cjs +1 -1
  298. package/dist/tracking.js +582 -298
  299. package/dist/types/face.d.ts +1 -13
  300. package/dist/types/hand-tracking.d.ts +8 -0
  301. package/dist/types/index.d.ts +0 -1
  302. package/dist/types/nodes.d.ts +4 -1
  303. package/dist/types/session.d.ts +2 -0
  304. package/dist/types/tracking.d.ts +8 -2
  305. package/dist/types/util-types.d.ts +1 -1
  306. package/dist/useFaceInfo-C-WfMlYp.cjs +1 -0
  307. package/dist/useFaceInfo-CwsHZedC.js +62 -0
  308. package/dist/useFaceResults-CkFc1egZ.js +19 -0
  309. package/dist/useFaceResults-VcFdOUFV.cjs +1 -0
  310. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  311. package/dist/utils/integrity.d.ts +4 -25
  312. package/dist/utils/landmarkBounds.d.ts +1 -1
  313. package/dist/utils/logger.d.ts +2 -2
  314. package/dist/x-Co8jPhP0.js +127 -0
  315. package/dist/x-KC8E4Gaj.cjs +41 -0
  316. package/docs/MIGRATION_GUIDE.md +589 -0
  317. package/docs/SDK_DOCUMENTATION.md +1155 -0
  318. package/docs/api/audio.mdx +36 -0
  319. package/docs/api/behavior-components.mdx +164 -0
  320. package/docs/api/capture-recording.mdx +103 -0
  321. package/docs/api/debug-ui-scene-editor.mdx +249 -0
  322. package/docs/api/face-actions.mdx +104 -0
  323. package/docs/api/face-attribute-expression.mdx +87 -0
  324. package/docs/api/face-binding-anchors.mdx +53 -0
  325. package/docs/api/face-effects.mdx +19 -0
  326. package/docs/api/face-info.mdx +112 -0
  327. package/docs/api/face-mesh.mdx +98 -0
  328. package/docs/api/face-painting.mdx +33 -0
  329. package/docs/api/face-retouching.mdx +73 -0
  330. package/docs/api/material-render-state.mdx +132 -0
  331. package/docs/api/runtime-3d.mdx +311 -0
  332. package/docs/api/scene-object-store.mdx +213 -0
  333. package/docs/api/screen-image.mdx +41 -0
  334. package/docs/api/screen-shape.mdx +64 -0
  335. package/docs/api/screen-space-coordinates.mdx +41 -0
  336. package/docs/api/screen-text.mdx +39 -0
  337. package/docs/api/texture-sources.mdx +55 -0
  338. package/docs/api/trackers.mdx +46 -0
  339. package/docs/docs.json +70 -0
  340. package/docs/examples/scene-object-recipes.mdx +194 -0
  341. package/docs/guides/harness-debug-ui.mdx +139 -0
  342. package/docs/inspector/hierarchy-panel.mdx +51 -0
  343. package/docs/inspector/object-inspector-panel.mdx +51 -0
  344. package/docs/introduction.mdx +121 -0
  345. package/docs/scene-objects/overview.mdx +127 -0
  346. package/docs/scene-objects/render-groups.mdx +77 -0
  347. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  348. package/docs/texture-api-consumer.md +58 -0
  349. package/package.json +55 -7
  350. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  351. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  352. package/dist/index-B5J4gzn2.cjs +0 -1
  353. package/dist/index-BVBVg96G.cjs +0 -1
  354. package/dist/index-DtwHElmG.js +0 -157
  355. package/dist/index-PtFmD6B8.cjs +0 -1
  356. package/dist/internal-DH5d1Xnq.cjs +0 -1
  357. package/dist/modules/XRClient/index.d.ts +0 -9
  358. package/dist/modules/index.d.ts +0 -1
  359. package/dist/services/ApiService.d.ts +0 -12
  360. package/dist/types/client.d.ts +0 -3
  361. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  362. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
@@ -0,0 +1,12 @@
1
+ import { HandTracking2DHandFrame, HandTracking2DPoint, HandTracking2DSettings } from '../../hand/handTracking2d';
2
+ type RenderedHand = HandTracking2DHandFrame & {
3
+ key: string;
4
+ points: HandTracking2DPoint[];
5
+ };
6
+ export declare function HandVisual({ hand, index, settings, aspectScale, }: {
7
+ hand: RenderedHand;
8
+ index: number;
9
+ settings: HandTracking2DSettings;
10
+ aspectScale: number;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,5 @@
1
+ import { HandTracking2DSettings } from '../../hand/handTracking2d';
2
+ export type HandTracking2DProps = {
3
+ settings?: HandTracking2DSettings;
4
+ };
5
+ export declare const HandTracking2D: ({ settings, }: HandTracking2DProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,5 @@
1
+ import { HandTracking2DControllerSettings } from '../../hand/handTracking2dController';
2
+ export type HandTracking2DControllerProps = {
3
+ settings?: HandTracking2DControllerSettings;
4
+ };
5
+ export declare const HandTracking2DController: ({ settings, }: HandTracking2DControllerProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,6 @@
1
+ import { HandTracking3DRenderedHandFrame, HandTracking3DSettings } from '../../hand/handTracking3d';
2
+ export type HandTracking3DProps = {
3
+ settings?: HandTracking3DSettings;
4
+ onHandsChange?: (hands: HandTracking3DRenderedHandFrame[]) => void;
5
+ };
6
+ export declare const HandTracking3D: ({ settings, onHandsChange, }: HandTracking3DProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,20 @@
1
+ import { Transform3DSettings } from '../Transform3D';
2
+ export type LightType = "ambient" | "directional" | "point" | "spot";
3
+ export type LightSettings = {
4
+ enabled: boolean;
5
+ type: LightType;
6
+ color: string;
7
+ intensity: number;
8
+ castShadow: boolean;
9
+ distance: number;
10
+ angle: number;
11
+ penumbra: number;
12
+ decay: number;
13
+ showHelper: boolean;
14
+ };
15
+ export declare const DEFAULT_LIGHT_SETTINGS: LightSettings;
16
+ export type LightObjectProps = {
17
+ settings: LightSettings;
18
+ transform: Transform3DSettings;
19
+ };
20
+ export declare const LightObject: ({ settings, transform }: LightObjectProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,23 @@
1
+ import { Object3D } from 'three';
2
+ export type LookAtSettings = {
3
+ enabled: boolean;
4
+ targetObjectId: string | null;
5
+ mode: "point" | "direction";
6
+ inheritChildren: boolean;
7
+ offsetRotation: {
8
+ x: number;
9
+ y: number;
10
+ z: number;
11
+ };
12
+ };
13
+ export type LookAtProps = {
14
+ target: Object3D | null;
15
+ settings: LookAtSettings;
16
+ children: React.ReactNode;
17
+ };
18
+ export declare const applyLookAt: ({ source, target, settings, }: {
19
+ source: Object3D;
20
+ target: Object3D | null;
21
+ settings: LookAtSettings;
22
+ }) => boolean;
23
+ export declare const LookAt: ({ target, settings, children }: LookAtProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,58 @@
1
+ import { Blending, DepthModes, Side } from 'three';
2
+ export type MeshRendererMesh = "cube" | "sphere" | "plane";
3
+ export type MeshRendererMaterialType = "standard" | "basic";
4
+ export type MeshRendererShadowMode = "off" | "cast" | "receive" | "castReceive";
5
+ export type MeshRendererDepthFunction = "never" | "less" | "equal" | "lessEqual" | "greater" | "notEqual" | "greaterEqual" | "always";
6
+ export type MeshRendererCullMode = "back" | "front" | "off";
7
+ export type MeshRendererBlendMode = "normal" | "additive" | "subtractive" | "multiply" | "none";
8
+ export type MeshRendererRenderState = {
9
+ depthTest: boolean;
10
+ depthWrite: boolean;
11
+ depthFunc: MeshRendererDepthFunction;
12
+ colorWrite: boolean;
13
+ colorMask: {
14
+ r: boolean;
15
+ g: boolean;
16
+ b: boolean;
17
+ a: boolean;
18
+ };
19
+ cullMode: MeshRendererCullMode;
20
+ blendMode: MeshRendererBlendMode;
21
+ polygonOffset: {
22
+ enabled: boolean;
23
+ factor: number;
24
+ units: number;
25
+ };
26
+ };
27
+ export type MeshRendererSettings = {
28
+ enabled: boolean;
29
+ mesh: MeshRendererMesh;
30
+ /** Optional GLTF/GLB asset URL. When set, renders the imported asset instead of a primitive. */
31
+ assetUrl?: string;
32
+ assetNodeName?: string;
33
+ material: {
34
+ type: MeshRendererMaterialType;
35
+ color: string;
36
+ opacity: number;
37
+ wireframe: boolean;
38
+ roughness: number;
39
+ metalness: number;
40
+ renderState?: Partial<Omit<MeshRendererRenderState, "colorMask" | "polygonOffset"> & {
41
+ colorMask: Partial<MeshRendererRenderState["colorMask"]>;
42
+ polygonOffset: Partial<MeshRendererRenderState["polygonOffset"]>;
43
+ }>;
44
+ };
45
+ shadowMode: MeshRendererShadowMode;
46
+ visible: boolean;
47
+ };
48
+ export type MeshRendererProps = {
49
+ value: MeshRendererSettings;
50
+ renderOrder?: number;
51
+ };
52
+ export declare const DEFAULT_MESH_RENDERER: MeshRendererSettings;
53
+ export declare const DEFAULT_MESH_RENDERER_RENDER_STATE: MeshRendererRenderState;
54
+ export declare const normalizeMeshRendererRenderState: (renderState?: MeshRendererSettings["material"]["renderState"]) => MeshRendererRenderState;
55
+ export declare const getThreeDepthFunction: (depthFunc: MeshRendererDepthFunction) => DepthModes;
56
+ export declare const getThreeSide: (cullMode: MeshRendererCullMode) => Side;
57
+ export declare const getThreeBlending: (blendMode: MeshRendererBlendMode) => Blending;
58
+ export declare const MeshRenderer: ({ renderOrder, value }: MeshRendererProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -1,13 +1,7 @@
1
1
  import { PerspectiveCameraProps } from '@react-three/fiber';
2
2
  /**
3
- * @deprecated Use @react-three/drei's PerspectiveCamera directly for the new unified architecture.
4
- * This component is kept for backwards compatibility with old examples.
5
- *
6
- * For new projects, use:
7
- * ```tsx
8
- * import { PerspectiveCamera } from '@react-three/drei';
9
- * <PerspectiveCamera makeDefault position={[0, 0, 5]} fov={45} />
10
- * ```
3
+ * @deprecated Import PerspectiveCamera directly from @react-three/drei.
4
+ * Retained for backwards compatibility with existing SDK consumers.
11
5
  */
12
6
  export declare const PerspectiveCamera: (props: PerspectiveCameraProps & {
13
7
  makeDefault?: boolean;
@@ -0,0 +1,47 @@
1
+ import { Object3D, Vector3 } from 'three';
2
+ export type PinToMeshOrientation = "none" | "position" | "positionAndDirection";
3
+ export type PinToMeshVector3 = {
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ };
8
+ export type PinToMeshSettings = {
9
+ enabled: boolean;
10
+ targetObjectId: string | null;
11
+ orientation: PinToMeshOrientation;
12
+ uv: {
13
+ x: number;
14
+ y: number;
15
+ };
16
+ vertexNormal: boolean;
17
+ offsetSpace: "local" | "world";
18
+ offsetPosition: PinToMeshVector3;
19
+ offsetRotation: PinToMeshVector3;
20
+ };
21
+ export declare const DEFAULT_PIN_TO_MESH: PinToMeshSettings;
22
+ export type PinToMeshProps = {
23
+ target: Object3D | null;
24
+ settings: PinToMeshSettings;
25
+ children: React.ReactNode;
26
+ };
27
+ /** Resolve a UV coordinate to the first matching mesh triangle in world space. */
28
+ export declare const resolvePinSurface: (target: Object3D, uv: {
29
+ x: number;
30
+ y: number;
31
+ }, useVertexNormal?: boolean) => {
32
+ position: Vector3;
33
+ normal: Vector3;
34
+ };
35
+ export type ApplyPinToMeshOptions = {
36
+ source: Object3D;
37
+ surface: {
38
+ position: Vector3;
39
+ normal: Vector3;
40
+ };
41
+ settings: Pick<PinToMeshSettings, "offsetPosition" | "offsetRotation" | "offsetSpace" | "orientation">;
42
+ };
43
+ export declare const resetPinnedObject: (source: Object3D) => void;
44
+ export declare const applyPinToMeshTransform: ({ settings, source, surface }: ApplyPinToMeshOptions) => void;
45
+ export declare const PinToMesh: ({ target, settings, children }: PinToMeshProps) => import('react').ReactElement<{
46
+ ref: import('react').RefObject<Object3D<import('three').Object3DEventMap>>;
47
+ }, string | import('react').JSXElementConstructor<any>>;
@@ -0,0 +1,6 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export type RenderGroupLayerProps = PropsWithChildren & {
3
+ layer?: number;
4
+ };
5
+ /** Assigns every renderable descendant to one camera layer. */
6
+ export declare const RenderGroupLayer: ({ children, layer }: RenderGroupLayerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from 'react';
2
+ import { SceneComponent, SceneObjectId, SceneObjectStore } from '../../scene-object';
3
+ export type SceneObjectRendererProps = {
4
+ objectId: SceneObjectId;
5
+ store: SceneObjectStore;
6
+ editorMode?: boolean;
7
+ /** Stable renderer sorting value, normally supplied by createRenderPlan(). */
8
+ renderOrder?: number;
9
+ /** Camera layer used by SequentialRenderPasses for guaranteed group composition. */
10
+ renderLayer?: number;
11
+ onComponentChange?: (component: SceneComponent) => void;
12
+ fallback?: (message: string) => ReactNode;
13
+ /** Internal: descendants already share an ancestor ScreenSpaceUI plane. */
14
+ insideScreenSpaceUI?: boolean;
15
+ };
16
+ export declare const SceneObjectRenderer: ({ editorMode, fallback, insideScreenSpaceUI, objectId, onComponentChange, renderLayer, renderOrder, store, }: SceneObjectRendererProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { ScreenTransformGuideLayer } from '../ScreenSpaceUI';
3
+ import { ScreenTransform2DSettings } from '../../screen2d';
4
+ export type ScreenTransformFrameProps = {
5
+ transform: ScreenTransform2DSettings;
6
+ guideLayer: ScreenTransformGuideLayer;
7
+ guideColor: string;
8
+ onChange?: (next: ScreenTransform2DSettings) => void;
9
+ children: ReactNode;
10
+ };
11
+ export declare function ScreenTransformFrame({ transform, guideLayer, guideColor, onChange, children, }: ScreenTransformFrameProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { ResolvedScreenTransform2D, ScreenTransform2DSettings } from '../../screen2d';
2
+ export declare const snapHalfPixel: (value: number) => number;
3
+ export declare const clamp01: (value: number) => number;
4
+ export declare function resolveScreenTransformDesignScale(viewportSize: {
5
+ width: number;
6
+ height: number;
7
+ }): number;
8
+ export declare function resolveScreenTransformUnitScale({ resolved, transform, }: {
9
+ resolved: ResolvedScreenTransform2D;
10
+ transform: ScreenTransform2DSettings;
11
+ }): number;
12
+ export declare function resolveScreenTransformControlScale({ parent, resolved, transform, }: {
13
+ parent: {
14
+ width: number;
15
+ height: number;
16
+ };
17
+ resolved: ResolvedScreenTransform2D;
18
+ transform: ScreenTransform2DSettings;
19
+ }): [number, number, number];
@@ -0,0 +1,18 @@
1
+ import { ScreenTransformControlHandle } from '../ScreenSpaceUI/ScreenTransformGuide';
2
+ import { ScreenTransform2DSettings } from '../../screen2d';
3
+ export type ScreenTransformDragState = {
4
+ handle: ScreenTransformControlHandle;
5
+ startX: number;
6
+ startY: number;
7
+ startPointerDesign: {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ startTransform: ScreenTransform2DSettings;
12
+ };
13
+ export declare function applyScreenTransformDrag({ drag, clientX, clientY, designScale, }: {
14
+ drag: ScreenTransformDragState;
15
+ clientX: number;
16
+ clientY: number;
17
+ designScale: number;
18
+ }): ScreenTransform2DSettings;
@@ -0,0 +1,5 @@
1
+ export { ScreenTransformFrame } from './ScreenTransformFrame';
2
+ export type { ScreenTransformFrameProps } from './ScreenTransformFrame';
3
+ export { applyScreenTransformDrag } from './ScreenTransformInteraction';
4
+ export type { ScreenTransformDragState } from './ScreenTransformInteraction';
5
+ export { clamp01, resolveScreenTransformControlScale, resolveScreenTransformDesignScale, resolveScreenTransformUnitScale, snapHalfPixel, } from './ScreenTransformHelpers';
@@ -0,0 +1,3 @@
1
+ import { ScreenGlassSettings } from './types';
2
+ export declare const DEFAULT_SCREEN_GLASS: ScreenGlassSettings;
3
+ export declare const normalizeScreenGlass: (value?: Partial<ScreenGlassSettings>) => ScreenGlassSettings;
@@ -0,0 +1,5 @@
1
+ import { DEFAULT_SCREEN_GLASS, normalizeScreenGlass } from './defaults';
2
+ import { ScreenGlassMaterialProps } from './types';
3
+ export type { ScreenGlassMaterialProps, ScreenGlassSettings } from './types';
4
+ export { DEFAULT_SCREEN_GLASS, normalizeScreenGlass };
5
+ export declare const ScreenGlassMaterial: ({ opacity, value }: ScreenGlassMaterialProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export declare const screenGlassVertexShader = "\n varying vec2 vPosition;\n void main() {\n vPosition = position.xy;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n";
2
+ export declare const screenGlassFragmentShader = "\n uniform vec3 tint;\n uniform float opacity;\n uniform float frost;\n uniform float highlight;\n varying vec2 vPosition;\n\n void main() {\n float grain = fract(sin(dot(vPosition * 997.0, vec2(12.9898, 78.233))) * 43758.5453);\n float sheen = smoothstep(0.15, 0.85, 1.0 - (vPosition.x + vPosition.y + 1.0) * 0.5);\n vec3 frosted = mix(tint, vec3(1.0), frost * (0.18 + grain * 0.08));\n vec3 color = mix(frosted, vec3(1.0), sheen * highlight * 0.32);\n gl_FragColor = vec4(color, opacity);\n }\n";
@@ -0,0 +1,10 @@
1
+ export type ScreenGlassSettings = {
2
+ tint: string;
3
+ opacity: number;
4
+ frost: number;
5
+ highlight: number;
6
+ };
7
+ export type ScreenGlassMaterialProps = {
8
+ value: ScreenGlassSettings;
9
+ opacity?: number;
10
+ };
@@ -0,0 +1,5 @@
1
+ import { ScreenGradientSettings, ScreenGradientStop } from './types';
2
+ export declare const MAX_SCREEN_GRADIENT_STOPS = 8;
3
+ export declare const DEFAULT_SCREEN_GRADIENT: ScreenGradientSettings;
4
+ export declare const normalizeScreenGradientStops: (stops: ScreenGradientStop[]) => ScreenGradientStop[];
5
+ export declare const normalizeScreenGradient: (value?: Partial<ScreenGradientSettings>) => ScreenGradientSettings;
@@ -0,0 +1,5 @@
1
+ import { DEFAULT_SCREEN_GRADIENT, MAX_SCREEN_GRADIENT_STOPS, normalizeScreenGradient, normalizeScreenGradientStops } from './defaults';
2
+ import { ScreenGradientMaterialProps } from './types';
3
+ export type { ScreenGradientMaterialProps, ScreenGradientSettings, ScreenGradientStop, ScreenGradientType, } from './types';
4
+ export { DEFAULT_SCREEN_GRADIENT, MAX_SCREEN_GRADIENT_STOPS, normalizeScreenGradient, normalizeScreenGradientStops, };
5
+ export declare const ScreenGradientMaterial: ({ opacity, value }: ScreenGradientMaterialProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export declare const screenGradientVertexShader = "\n varying vec2 vPosition;\n void main() {\n vPosition = position.xy;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n";
2
+ export declare const screenGradientFragmentShader = "\n #define MAX_STOPS 8\n uniform vec3 stopColors[MAX_STOPS];\n uniform float stopOffsets[MAX_STOPS];\n uniform int stopCount;\n uniform int gradientType;\n uniform vec2 direction;\n uniform vec2 center;\n uniform float radius;\n uniform float angleOffset;\n uniform float opacity;\n varying vec2 vPosition;\n\n vec3 sampleGradient(float amount) {\n vec3 color = stopColors[0];\n for (int index = 1; index < MAX_STOPS; index++) {\n if (index >= stopCount) break;\n if (amount <= stopOffsets[index]) {\n float width = max(0.0001, stopOffsets[index] - stopOffsets[index - 1]);\n return mix(stopColors[index - 1], stopColors[index], clamp((amount - stopOffsets[index - 1]) / width, 0.0, 1.0));\n }\n color = stopColors[index];\n }\n return color;\n }\n\n void main() {\n vec2 delta = vPosition - center;\n float amount;\n if (gradientType == 1) {\n amount = clamp(length(delta) / radius, 0.0, 1.0);\n } else if (gradientType == 2) {\n amount = fract(atan(delta.y, delta.x) / 6.28318530718 + 0.5 + angleOffset);\n } else {\n amount = clamp(dot(delta, direction) + 0.5, 0.0, 1.0);\n }\n gl_FragColor = vec4(sampleGradient(amount), opacity);\n }\n";
@@ -0,0 +1,19 @@
1
+ export type ScreenGradientType = "linear" | "radial" | "angular";
2
+ export type ScreenGradientStop = {
3
+ offset: number;
4
+ color: string;
5
+ };
6
+ export type ScreenGradientSettings = {
7
+ type: ScreenGradientType;
8
+ stops: ScreenGradientStop[];
9
+ angle: number;
10
+ center: {
11
+ x: number;
12
+ y: number;
13
+ };
14
+ radius: number;
15
+ };
16
+ export type ScreenGradientMaterialProps = {
17
+ value: ScreenGradientSettings;
18
+ opacity?: number;
19
+ };
@@ -0,0 +1,4 @@
1
+ import { default as defaultScreenImageUrl } from './assets/Default_square_image.png';
2
+ import { ScreenImageProps } from './types';
3
+ export declare function ScreenImage({ anchors, coordinateSpace, canvasSize, position, size, offsets, pivot, rotation, transform, onScreenTransformChange, transformGuideLayer, ...bodyProps }: ScreenImageProps): import("react/jsx-runtime").JSX.Element | null;
4
+ export { defaultScreenImageUrl };
@@ -0,0 +1,9 @@
1
+ import type * as THREE from "three";
2
+ export declare function DynamicTextureSync({ materialTexture, sourceTexture, onSourceSizeChange, }: {
3
+ materialTexture: THREE.Texture;
4
+ sourceTexture: THREE.Texture;
5
+ onSourceSizeChange: (size: {
6
+ width: number;
7
+ height: number;
8
+ }) => void;
9
+ }): null;
@@ -0,0 +1,9 @@
1
+ import { ScreenImageProps } from '../types';
2
+ type ScreenImageBodyProps = Omit<ScreenImageProps, "anchors" | "coordinateSpace" | "canvasSize" | "position" | "size" | "offsets" | "pivot" | "transform"> & {
3
+ layoutSize?: {
4
+ width: number;
5
+ height: number;
6
+ };
7
+ };
8
+ export declare function ScreenImageBody({ name, source, src, fit, stretchMode, materialType, blendMode, backdropTexture: providedBackdropTexture, rotation, opacity, color, flipX, flipY, renderOrder, transparent, alphaTest, overlay, visible, layoutSize, }: ScreenImageBodyProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ import { ScreenAnchorEdges, ScreenOffsetEdges } from '../../ScreenSpaceUI';
3
+ export declare function ScreenImageFrame({ anchors, offsets, pivot, rotation, children, }: {
4
+ anchors: ScreenAnchorEdges;
5
+ offsets: ScreenOffsetEdges;
6
+ pivot: [number, number];
7
+ rotation: number;
8
+ children: ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ import { ScreenTransformGuideLayer } from '../../ScreenSpaceUI';
3
+ import { ScreenTransform2DSettings } from '../../../screen2d';
4
+ export declare function ScreenImageTransformFrame({ transform, guideLayer, onChange, children, }: {
5
+ transform: ScreenTransform2DSettings;
6
+ guideLayer: ScreenTransformGuideLayer;
7
+ onChange?: (next: ScreenTransform2DSettings) => void;
8
+ children: ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,52 @@
1
+ export type ScreenImageFit = "stretch" | "contain" | "cover";
2
+ export type ScreenImageStretchMode = "fit" | "fitWidth" | "fitHeight" | "center" | "stretch" | "fill" | "fillAndCut";
3
+ export type ScreenImageFittedRectInput = {
4
+ rectSize: {
5
+ width: number;
6
+ height: number;
7
+ };
8
+ textureSize?: {
9
+ width: number;
10
+ height: number;
11
+ };
12
+ textureAspect?: number;
13
+ stretchMode?: ScreenImageStretchMode;
14
+ fit?: ScreenImageFit;
15
+ flipX?: boolean;
16
+ flipY?: boolean;
17
+ };
18
+ export type ScreenImageFittedRect = {
19
+ rectAspect: number;
20
+ textureAspect: number;
21
+ scale: {
22
+ x: number;
23
+ y: number;
24
+ };
25
+ size: {
26
+ width: number;
27
+ height: number;
28
+ };
29
+ uvRepeat: {
30
+ x: number;
31
+ y: number;
32
+ };
33
+ uvOffset: {
34
+ x: number;
35
+ y: number;
36
+ };
37
+ };
38
+ export type ScreenImageFitResolution = {
39
+ meshScale: [number, number, number];
40
+ guideScale: [number, number, number];
41
+ repeat: [number, number];
42
+ offset: [number, number];
43
+ };
44
+ export declare const resolveScreenImageStretchMode: (stretchMode: ScreenImageStretchMode | undefined, fit: ScreenImageFit | undefined) => ScreenImageStretchMode;
45
+ export declare const computeScreenImageFitResolution: (stretchMode: ScreenImageStretchMode, rectAspect: number, textureAspect: number, flipX: boolean, flipY: boolean, rectSize?: {
46
+ width: number;
47
+ height: number;
48
+ }, textureSize?: {
49
+ width: number;
50
+ height: number;
51
+ }) => ScreenImageFitResolution;
52
+ export declare const computeScreenImageFittedRect: ({ rectSize, textureSize, textureAspect: providedTextureAspect, stretchMode, fit, flipX, flipY, }: ScreenImageFittedRectInput) => ScreenImageFittedRect;
@@ -0,0 +1,8 @@
1
+ export { ScreenImage, defaultScreenImageUrl } from './ScreenImage';
2
+ export { screenImageBlendModeOptions } from './utils/ScreenImageConstants';
3
+ export { resolveBlendProps } from './materials/ScreenImageBlendMaterial';
4
+ export type { ScreenImageBlendMode, ScreenImageMaterialType, ScreenImageProps } from './types';
5
+ export type { ScreenImageSource } from './source';
6
+ export { getScreenImageTextureAspect, getScreenImageTextureSize, resolveScreenImageSource, } from './source';
7
+ export { computeScreenImageFitResolution, computeScreenImageFittedRect, resolveScreenImageStretchMode, } from './fit';
8
+ export type { ScreenImageFit, ScreenImageFittedRect, ScreenImageFittedRectInput, ScreenImageStretchMode, } from './fit';
@@ -0,0 +1,9 @@
1
+ import { ScreenImageBlendMode } from '../types';
2
+ import * as THREE from "three";
3
+ export declare const ADVANCED_BLEND_MODES: Set<ScreenImageBlendMode>;
4
+ export type AdvancedBlendMode = Extract<ScreenImageBlendMode, "overlay" | "softLight" | "hardLight" | "difference" | "exclusion">;
5
+ export declare const advancedBlendModeIndices: Record<AdvancedBlendMode, number>;
6
+ export type BlendMaterialProps = Partial<Pick<THREE.Material, "blending" | "blendSrc" | "blendDst" | "blendEquation">>;
7
+ export declare const resolveBlendProps: (mode: ScreenImageBlendMode) => BlendMaterialProps;
8
+ export declare const advancedBlendVertexShader = "\nvarying vec2 vUv;\nvoid main(){vUv=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0);}";
9
+ export declare const advancedBlendFragmentShader = "\nuniform sampler2D imageMap;uniform sampler2D backdropMap;uniform vec2 resolution;\nuniform vec3 tint;uniform float opacity;uniform float alphaTest;uniform int blendMode;varying vec2 vUv;\nfloat overlayChannel(float b,float s){return b<.5?2.*b*s:1.-2.*(1.-b)*(1.-s);}\nfloat hardLightChannel(float b,float s){return s<.5?2.*b*s:1.-2.*(1.-b)*(1.-s);}\nfloat softLightChannel(float b,float s){return s<.5?b-(1.-2.*s)*b*(1.-b):b+(2.*s-1.)*(sqrt(max(b,0.))-b);}\nvec3 applyAdvancedBlend(vec3 b,vec3 s){\nif(blendMode==0)return vec3(overlayChannel(b.r,s.r),overlayChannel(b.g,s.g),overlayChannel(b.b,s.b));\nif(blendMode==1)return vec3(softLightChannel(b.r,s.r),softLightChannel(b.g,s.g),softLightChannel(b.b,s.b));\nif(blendMode==2)return vec3(hardLightChannel(b.r,s.r),hardLightChannel(b.g,s.g),hardLightChannel(b.b,s.b));\nif(blendMode==3)return abs(b-s);return b+s-2.*b*s;}\nvoid main(){vec4 image=texture2D(imageMap,vUv)*vec4(tint,opacity);if(image.a<=alphaTest)discard;\nvec2 uv=gl_FragCoord.xy/max(resolution,vec2(1.));vec3 base=texture2D(backdropMap,uv).rgb;\nvec3 mixed=applyAdvancedBlend(base,image.rgb);gl_FragColor=vec4(mix(base,mixed,image.a),1.);}";
@@ -0,0 +1,3 @@
1
+ import * as THREE from "three";
2
+ /** Creates the internally owned procedural matcap used by ScreenImage. */
3
+ export declare const createMatcapTexture: () => THREE.CanvasTexture;
@@ -0,0 +1,16 @@
1
+ import type * as THREE from "three";
2
+ export type ScreenImageSource = {
3
+ kind: "default";
4
+ } | {
5
+ kind: "image";
6
+ src: string;
7
+ } | {
8
+ kind: "texture";
9
+ texture: THREE.Texture;
10
+ };
11
+ export declare const resolveScreenImageSource: (source: ScreenImageSource | undefined, src: string | undefined) => ScreenImageSource;
12
+ export declare const getScreenImageTextureSize: (texture: THREE.Texture) => {
13
+ width: number;
14
+ height: number;
15
+ };
16
+ export declare const getScreenImageTextureAspect: (texture: THREE.Texture) => number;
@@ -0,0 +1,37 @@
1
+ import { ScreenAnchorEdges, ScreenOffsetEdges, ScreenTransformGuideLayer } from '../ScreenSpaceUI';
2
+ import { ScreenCanvasSize, ScreenCoordinateSpace, ScreenTransform2DSettings } from '../../screen2d';
3
+ import { ScreenImageFit, ScreenImageStretchMode } from './fit';
4
+ import { ScreenImageSource } from './source';
5
+ import type * as THREE from "three";
6
+ export type ScreenImageMaterialType = "unlit" | "standardPBR" | "matcap";
7
+ export type ScreenImageBlendMode = "normal" | "add" | "subtract" | "multiply" | "screen" | "lighten" | "darken" | "overlay" | "softLight" | "hardLight" | "difference" | "exclusion";
8
+ export type ScreenImageProps = {
9
+ name?: string;
10
+ source?: ScreenImageSource;
11
+ src?: string;
12
+ anchors?: ScreenAnchorEdges;
13
+ coordinateSpace?: ScreenCoordinateSpace;
14
+ canvasSize?: ScreenCanvasSize;
15
+ position?: [number, number];
16
+ size?: [number, number];
17
+ rotation?: number;
18
+ offsets?: ScreenOffsetEdges;
19
+ pivot?: [number, number];
20
+ transform?: Partial<ScreenTransform2DSettings>;
21
+ onScreenTransformChange?: (next: ScreenTransform2DSettings) => void;
22
+ transformGuideLayer?: ScreenTransformGuideLayer;
23
+ fit?: ScreenImageFit;
24
+ stretchMode?: ScreenImageStretchMode;
25
+ materialType?: ScreenImageMaterialType;
26
+ blendMode?: ScreenImageBlendMode;
27
+ backdropTexture?: THREE.Texture | null;
28
+ opacity?: number;
29
+ color?: THREE.ColorRepresentation;
30
+ flipX?: boolean;
31
+ flipY?: boolean;
32
+ renderOrder?: number;
33
+ transparent?: boolean;
34
+ alphaTest?: number;
35
+ overlay?: boolean;
36
+ visible?: boolean;
37
+ };
@@ -0,0 +1,9 @@
1
+ import { ScreenAnchorEdges, ScreenOffsetEdges } from '../../ScreenSpaceUI';
2
+ import { ScreenImageBlendMode } from '../types';
3
+ export declare const DEFAULT_SCREEN_IMAGE_ANCHORS: Required<ScreenAnchorEdges>;
4
+ export declare const DEFAULT_SCREEN_IMAGE_OFFSET: ScreenOffsetEdges;
5
+ export declare const DEFAULT_SCREEN_IMAGE_PIVOT: [number, number];
6
+ export declare const screenImageBlendModeOptions: Array<{
7
+ label: string;
8
+ value: ScreenImageBlendMode;
9
+ }>;
@@ -0,0 +1,4 @@
1
+ import { ScreenAnchorEdges } from '../../ScreenSpaceUI';
2
+ import { ScreenCanvasSize, ScreenCoordinateSpace } from '../../../screen2d';
3
+ export declare const toScreenTransformPivot: (pivot: [number, number]) => [number, number];
4
+ export declare const resolveScreenImageAnchors: (anchors: ScreenAnchorEdges | undefined, coordinateSpace: ScreenCoordinateSpace | undefined, canvasSize: ScreenCanvasSize | undefined, position: [number, number] | undefined, size: [number, number] | undefined) => ScreenAnchorEdges;
@@ -0,0 +1,5 @@
1
+ import { ScreenShapeSettings } from './types';
2
+ import * as THREE from "three";
3
+ export type ScreenShapePoint = [number, number, number];
4
+ export declare const buildScreenShapePath: (settings: ScreenShapeSettings) => ScreenShapePoint[];
5
+ export declare const createScreenShapeFill: (points: ScreenShapePoint[]) => THREE.Shape;
@@ -0,0 +1,5 @@
1
+ import { ScreenShapeProps, ScreenShapeSettings, ScreenShapeSettingsInput } from './types';
2
+ export type { ScreenShapeKind, ScreenShapeProps, ScreenShapeSettings, ScreenShapeSettingsInput, } from './types';
3
+ export declare const DEFAULT_SCREEN_SHAPE_SETTINGS: ScreenShapeSettings;
4
+ export declare const mergeScreenShapeSettings: (settings?: ScreenShapeSettingsInput) => ScreenShapeSettings;
5
+ export declare const ScreenShape: ({ name, onScreenTransformChange, renderOrder, settings: partialSettings, transform: partialTransform, transformGuideLayer, visible, }: ScreenShapeProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,41 @@
1
+ import { ScreenTransformGuideLayer } from '../ScreenSpaceUI';
2
+ import { ScreenTransform2DSettings } from '../../screen2d';
3
+ import { ScreenGradientSettings } from '../ScreenGradient';
4
+ import { ScreenGlassSettings } from '../ScreenGlass';
5
+ export type ScreenShapeKind = "circle" | "ellipse" | "rectangle" | "roundedRectangle" | "polygon" | "star" | "line";
6
+ export type ScreenShapeSettings = {
7
+ kind: ScreenShapeKind;
8
+ fillColor: string;
9
+ fillOpacity: number;
10
+ fillMode: "solid" | "gradient" | "glass";
11
+ gradient: ScreenGradientSettings;
12
+ glass: ScreenGlassSettings;
13
+ strokeColor: string;
14
+ strokeOpacity: number;
15
+ strokeWidth: number;
16
+ cornerRadius: number;
17
+ sides: number;
18
+ innerRadiusRatio: number;
19
+ dashed: boolean;
20
+ lineStart: {
21
+ x: number;
22
+ y: number;
23
+ };
24
+ lineEnd: {
25
+ x: number;
26
+ y: number;
27
+ };
28
+ };
29
+ export type ScreenShapeSettingsInput = Omit<Partial<ScreenShapeSettings>, "gradient" | "glass"> & {
30
+ gradient?: Partial<ScreenGradientSettings>;
31
+ glass?: Partial<ScreenGlassSettings>;
32
+ };
33
+ export type ScreenShapeProps = {
34
+ name?: string;
35
+ settings?: ScreenShapeSettingsInput;
36
+ transform?: Partial<ScreenTransform2DSettings>;
37
+ onScreenTransformChange?: (next: ScreenTransform2DSettings) => void;
38
+ transformGuideLayer?: ScreenTransformGuideLayer;
39
+ renderOrder?: number;
40
+ visible?: boolean;
41
+ };
@@ -0,0 +1,15 @@
1
+ import { ThreeEvent } from '@react-three/fiber';
2
+ export type ScreenTransformControlHandle = "move" | "pivot" | "rotateTopLeft" | "rotateTopRight" | "rotateBottomLeft" | "rotateBottomRight" | "top" | "bottom" | "left" | "right" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight";
3
+ export type ScreenTransformGuideProps = {
4
+ color?: string;
5
+ controlScale?: [number, number, number];
6
+ handleColor?: string;
7
+ onHandlePointerDown?: (handle: ScreenTransformControlHandle, event: ThreeEvent<PointerEvent>) => void;
8
+ opacity?: number;
9
+ pivot?: [number, number];
10
+ pivotScale?: [number, number, number];
11
+ renderOrder?: number;
12
+ showSideHandles?: boolean;
13
+ thickness?: number;
14
+ };
15
+ export declare const ScreenTransformGuide: ({ color, controlScale, handleColor, onHandlePointerDown, opacity, pivot, pivotScale, renderOrder, showSideHandles, thickness, }: ScreenTransformGuideProps) => import("react/jsx-runtime").JSX.Element;