@vincentt-xr/sdk 2.0.0-alpha.7 → 2.0.0-alpha.8
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 +1109 -13
- package/dist/{DebuggerUI-BjOMr8q_.js → DebuggerUI-C-ldiozL.js} +1 -1
- package/dist/{DebuggerUI-B6bP6P9r.cjs → DebuggerUI-CWX5EtQv.cjs} +1 -1
- package/dist/FaceMeshRenderer-BEEXZwS6.cjs +158 -0
- package/dist/FaceMeshRenderer-UuH5sTXG.js +1322 -0
- package/dist/FaceRetouch-C7h7x9kd.js +683 -0
- package/dist/FaceRetouch-DqftT26Y.cjs +134 -0
- package/dist/GLTFLoader-C5q63sKO.js +1633 -0
- package/dist/GLTFLoader-Cb_CRwmG.cjs +1 -0
- package/dist/SegmentationOverlay-DQuW3dsc.js +133 -0
- package/dist/SegmentationOverlay-aWVod8Kl.cjs +1 -0
- package/dist/assets/cache.d.ts +99 -0
- package/dist/assets/estimate.d.ts +11 -0
- package/dist/assets/index.d.ts +7 -0
- package/dist/assets/loaders.d.ts +28 -0
- package/dist/assets/react.d.ts +33 -0
- package/dist/calibration/calibration.d.ts +70 -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/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/BodyTracker/index.d.ts +9 -0
- package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +33 -3
- package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +12 -0
- package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
- package/dist/components/FaceMesh/index.d.ts +1 -1
- package/dist/components/GestureListener/index.d.ts +11 -0
- package/dist/components/HandTracker/index.d.ts +10 -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/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 +7 -1
- package/dist/components/LipEffect/LipEffectMaterial.d.ts +43 -7
- package/dist/components/LipEffect/LipEffects.d.ts +9 -0
- package/dist/components/LipEffect/defaults.d.ts +27 -4
- package/dist/components/LipEffect/index.d.ts +11 -3
- package/dist/components/LipEffect/settings.d.ts +271 -0
- package/dist/components/LipEffect/types.d.ts +56 -9
- package/dist/components/LipEffect/useLipDesignTextures.d.ts +11 -0
- package/dist/components/LipEffect/uvGuide.d.ts +59 -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/XRProvider/index.d.ts +16 -2
- 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 +3 -0
- package/dist/constants/index.d.ts +4 -1
- package/dist/contexts-CO0sd4JQ.cjs +1 -0
- package/dist/{contexts-ByhzppYl.js → contexts-FzlnnMYD.js} +252 -246
- package/dist/coordinates/feed.d.ts +52 -0
- package/dist/coordinates/index.d.ts +5 -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/gesture-settings/index.d.ts +14 -0
- package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
- package/dist/debug-ui/index.d.ts +14 -0
- 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.cjs +1 -1
- package/dist/debug-ui/media-source.js +1 -1
- package/dist/debug-ui/product-hotspots/index.d.ts +24 -0
- package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
- package/dist/debug-ui/xr-diagnostics/index.d.ts +25 -0
- package/dist/debug-ui.cjs +3 -3
- package/dist/debug-ui.js +2057 -1687
- package/dist/detector-K8aej4MB.js +59 -0
- package/dist/detector-ijypGtse.cjs +1 -0
- package/dist/entries/core.d.ts +18 -1
- package/dist/entries/face-effects.d.ts +11 -3
- package/dist/entries/low-level.d.ts +22 -3
- package/dist/entries/product.d.ts +11 -0
- package/dist/entries/tracking.d.ts +24 -1
- package/dist/face-effects.cjs +155 -1
- package/dist/face-effects.js +1134 -2197
- package/dist/gestures/definitions.d.ts +85 -0
- package/dist/gestures/detector.d.ts +87 -0
- package/dist/gestures/index.d.ts +8 -0
- package/dist/gestures/measures.d.ts +101 -0
- package/dist/gestures/settings.d.ts +49 -0
- package/dist/{getFaceInfo-C4QpCQIY.js → getFaceInfo-BkZfaQs-.js} +5 -5
- package/dist/{getFaceInfo-fA1bFBub.cjs → getFaceInfo-ahPxQFGu.cjs} +1 -1
- package/dist/hooks/selectors.d.ts +68 -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/useGesture.d.ts +32 -0
- package/dist/hooks/useIrisTracking.d.ts +45 -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--RgGzZ6X.cjs +47 -0
- package/dist/{index-VJ0SJwmG.js → index-CHVbH0hz.js} +4 -4
- package/dist/index-CeVkgsag.cjs +1 -0
- package/dist/index-CnGox6Xr.js +3054 -0
- package/dist/{index-ByoNj0QP.js → index-CsUdQ-pn.js} +113 -111
- package/dist/{index-BjmTe9eM.cjs → index-DKBAh6hV.cjs} +1 -1
- package/dist/index-DsZwTfG0.cjs +1 -0
- package/dist/index-Dw6tj2Mi.js +144 -0
- package/dist/index-OCPjOaeP.cjs +1 -0
- package/dist/{index-DXT3WccE.js → index-s9pF4zkG.js} +1065 -1101
- package/dist/internal-BYza1h8_.cjs +1 -0
- package/dist/{internal-Dmk1cTXq.js → internal-vsfNQycj.js} +15 -16
- package/dist/internal.cjs +1 -1
- package/dist/internal.js +2 -2
- package/dist/iris/compute.d.ts +25 -0
- package/dist/iris/index.d.ts +4 -0
- package/dist/iris/lead.d.ts +19 -0
- package/dist/iris/types.d.ts +87 -0
- package/dist/landmarkMask-CbTFzBYG.js +224 -0
- package/dist/landmarkMask-u7es2k4X.cjs +1 -0
- package/dist/low-level.cjs +1 -1
- package/dist/low-level.js +1085 -634
- package/dist/main.cjs +1 -1
- package/dist/main.js +1519 -465
- package/dist/measures-9dQPdw96.js +154 -0
- package/dist/measures-KfJzpvod.cjs +1 -0
- package/dist/models/Base/index.d.ts +49 -0
- package/dist/models/Body/index.d.ts +1 -1
- package/dist/models/Face/index.d.ts +1 -1
- package/dist/models/Hand/GestureTracking.d.ts +1 -1
- package/dist/models/Hand/HandTracking.d.ts +1 -1
- package/dist/models/Holistic/index.d.ts +49 -0
- package/dist/models/Holistic/result.d.ts +68 -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/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-C0Dlhh9Z.js +365 -0
- package/dist/providers-YNwkmNeK.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/{renderGroups-KZk6eRiY.js → renderGroups-CN1cGFUo.js} +1 -1
- package/dist/{renderGroups-80H3DpTl.cjs → renderGroups-O4KmaMl9.cjs} +1 -1
- package/dist/renderPasses-Cg-zqmEz.cjs +21 -0
- package/dist/renderPasses-NnKZVfBy.js +1460 -0
- package/dist/scene-object.cjs +1 -1
- package/dist/scene-object.js +2 -2
- package/dist/screenTransform-BenfCtZt.js +44 -0
- package/dist/screenTransform-BiXdpVf0.cjs +1 -0
- package/dist/segmentation-9PhSvc-R.cjs +1 -0
- package/dist/segmentation-CeOTKemr.js +5 -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 +46 -0
- package/dist/selectors-C5G1PMYL.js +195 -0
- package/dist/selectors-Du_PsVnW.cjs +1 -0
- package/dist/{session-CpkiK5YA.cjs → session-BBr0yN8h.cjs} +7 -7
- package/dist/{session-DLFN_VII.js → session-Cy0m7l7-.js} +76 -76
- package/dist/settings-DRR7-snV.cjs +1 -0
- package/dist/settings-aQk845NJ.js +73 -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 +1 -1
- package/dist/tracking.js +1056 -383
- package/dist/types/compositor.d.ts +21 -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 +27 -2
- package/dist/types/segmentation.d.ts +19 -0
- package/dist/types/session.d.ts +41 -3
- package/dist/useFaceInfo-Blf7FCu3.js +303 -0
- package/dist/useFaceInfo-C5mO8NQY.cjs +1 -0
- package/dist/useXRCapabilities-B1R2ghy-.cjs +1 -0
- package/dist/useXRCapabilities-C68v__wB.js +30 -0
- package/dist/utils/fns.d.ts +6 -3
- package/dist/utils/integrity.d.ts +4 -1
- package/dist/utils/updateThrottle.d.ts +2 -0
- package/dist/utils/useStableUniforms.d.ts +18 -0
- package/docs/api/adaptive-quality.mdx +104 -0
- package/docs/api/asset-lifecycle.mdx +78 -0
- package/docs/api/camera-permission.mdx +142 -0
- package/docs/api/coordinate-spaces.mdx +165 -0
- package/docs/api/cross-camera.mdx +88 -0
- package/docs/api/diagnostics-calibration.mdx +97 -0
- package/docs/api/face-effects.mdx +6 -0
- package/docs/api/face-mesh.mdx +4 -2
- package/docs/api/gestures.mdx +173 -0
- package/docs/api/holistic-tracker.mdx +159 -0
- package/docs/api/iris-tracking.mdx +242 -0
- package/docs/api/multi-subject.mdx +95 -0
- package/docs/api/person-cutout.mdx +136 -0
- package/docs/api/product-ar.mdx +111 -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 +23 -1
- package/docs/examples/lip-shaders.mdx +224 -0
- package/docs/guides/lip-effect-textures.mdx +292 -0
- package/docs/guides/lip-uv-template.png +0 -0
- package/docs/guides/lip-uv-template.svg +1 -0
- package/package.json +13 -1
- 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/contexts-Dr62It_K.cjs +0 -1
- package/dist/index-9dlAQAhy.js +0 -1462
- package/dist/index-BpEf2BBb.cjs +0 -1
- package/dist/index-CyUUurQT.cjs +0 -1
- package/dist/index-DCiMbxC3.cjs +0 -1
- package/dist/index-DpI-qo5X.cjs +0 -17
- package/dist/index-DyVF4vEW.js +0 -111
- 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/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,21 @@
|
|
|
1
|
+
"use strict";const Y=require("./index-DKBAh6hV.cjs"),re=require("@react-three/fiber"),h=require("react"),d=require("three"),Le=require("./index-CeVkgsag.cjs"),Ne=require("./index-DsZwTfG0.cjs"),I=require("./FaceMeshRenderer-BEEXZwS6.cjs"),R=require("./screenTransform-BiXdpVf0.cjs"),p=require("react/jsx-runtime"),Ue=require("@react-three/drei");function Ie(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const ee=Ie(d),ae={move:"grab",pivot:"all-scroll",rotateTopLeft:"alias",rotateTopRight:"alias",rotateBottomLeft:"alias",rotateBottomRight:"alias",top:"ns-resize",bottom:"ns-resize",left:"ew-resize",right:"ew-resize",topLeft:"nwse-resize",bottomRight:"nwse-resize",topRight:"nesw-resize",bottomLeft:"nesw-resize"},Ge=({color:e="#22d3ee",controlScale:t=[1,1,1],handleColor:n="#ffffff",onHandlePointerDown:o,opacity:r=.9,pivot:s=[.5,.5],pivotScale:a=t,renderOrder:i,showSideHandles:l=!0,thickness:f=.004})=>{const m=p.jsx("meshBasicMaterial",{color:e,transparent:!0,opacity:r,depthTest:!1,depthWrite:!1,toneMapped:!1}),x=p.jsx("meshBasicMaterial",{color:n,transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,toneMapped:!1}),w=Math.max(f*7,.028),b=Math.max(f*7,.03),O=Math.max(f*8,.032),S=.04,c=.06,y=.08,E=.1,u=i??0,z=[["topLeft",-.5,.5],["topRight",.5,.5],["bottomLeft",-.5,-.5],["bottomRight",.5,-.5],...l?[["top",0,.5],["bottom",0,-.5],["left",-.5,0],["right",.5,0]]:[]],_=[["rotateTopLeft",-.56,.56,0],["rotateTopRight",.56,.56,-Math.PI/2],["rotateBottomRight",.56,-.56,Math.PI],["rotateBottomLeft",-.56,-.56,Math.PI/2]],g=T=>o?P=>{P.stopPropagation(),document.body.style.cursor=T==="move"?"grabbing":ae[T],o(T,P)}:void 0,v=T=>{o&&(document.body.style.cursor=ae[T])},D=()=>{o&&(document.body.style.cursor="")},M=[s[0]-.5,s[1]-.5,E];return p.jsxs("group",{renderOrder:u,children:[p.jsxs("mesh",{position:[0,.5,S],scale:[1,f,1],renderOrder:u,children:[p.jsx("planeGeometry",{args:[1,1]}),m]}),p.jsxs("mesh",{position:[0,-.5,S],scale:[1,f,1],renderOrder:u,children:[p.jsx("planeGeometry",{args:[1,1]}),m]}),p.jsxs("mesh",{position:[-.5,0,S],scale:[f,1,1],renderOrder:u,children:[p.jsx("planeGeometry",{args:[1,1]}),m]}),p.jsxs("mesh",{position:[.5,0,S],scale:[f,1,1],renderOrder:u,children:[p.jsx("planeGeometry",{args:[1,1]}),m]}),p.jsxs("mesh",{position:[0,0,c],renderOrder:u+1,onPointerDown:g("move"),onPointerOver:()=>v("move"),onPointerOut:D,children:[p.jsx("planeGeometry",{args:[1,1]}),p.jsx("meshBasicMaterial",{transparent:!0,opacity:0,depthTest:!1,depthWrite:!1})]}),z.map(([T,P,j])=>p.jsxs("mesh",{position:[P,j,y],scale:[w*t[0],w*t[1],t[2]],renderOrder:u+2,onPointerDown:g(T),onPointerOver:()=>v(T),onPointerOut:D,children:[p.jsx("planeGeometry",{args:[1,1]}),x]},T)),_.map(([T,P,j,k])=>p.jsx("group",{position:[P,j,y+.01],rotation:[0,0,k],scale:[O*t[0],O*t[1],t[2]],renderOrder:u+3,onPointerDown:g(T),onPointerOver:()=>v(T),onPointerOut:D,children:p.jsxs("mesh",{renderOrder:u+3,children:[p.jsx("planeGeometry",{args:[1.9,1.9]}),p.jsx("meshBasicMaterial",{transparent:!0,opacity:0,depthTest:!1,depthWrite:!1})]})},T)),p.jsx("group",{position:M,scale:[b*a[0],b*a[1],a[2]],renderOrder:u+5,onPointerDown:g("pivot"),onPointerOver:()=>v("pivot"),onPointerOut:D,children:p.jsxs("group",{rotation:[0,0,Math.PI/4],children:[p.jsxs("mesh",{scale:[1.8,1.8,1],renderOrder:u+5,children:[p.jsx("planeGeometry",{args:[1,1]}),p.jsx("meshBasicMaterial",{transparent:!0,opacity:0,depthTest:!1,depthWrite:!1})]}),p.jsxs("mesh",{position:[0,0,.002],renderOrder:u+6,children:[p.jsx("planeGeometry",{args:[1,1]}),x]}),p.jsxs("mesh",{scale:[.62,.62,1],position:[0,0,.004],renderOrder:u+7,children:[p.jsx("planeGeometry",{args:[1,1]}),p.jsx("meshBasicMaterial",{color:"#111827",transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,toneMapped:!1})]})]})})]})},C=e=>Math.round(e*2)/2,ce=e=>Math.min(1,Math.max(0,e)),$={move:"grab",pivot:"all-scroll",rotateTopLeft:"alias",rotateTopRight:"alias",rotateBottomLeft:"alias",rotateBottomRight:"alias",top:"ns-resize",bottom:"ns-resize",left:"ew-resize",right:"ew-resize",topLeft:"nwse-resize",bottomRight:"nwse-resize",topRight:"nesw-resize",bottomLeft:"nesw-resize"},We=[["topLeft",0,0],["top",.5,0],["topRight",1,0],["right",1,.5],["bottomRight",1,1],["bottom",.5,1],["bottomLeft",0,1],["left",0,.5]],ke=[["rotateTopLeft",-.03,-.03],["rotateTopRight",1.03,-.03],["rotateBottomRight",1.03,1.03],["rotateBottomLeft",-.03,1.03]],Xe=(e,t)=>{const n=R.resolveScreenTransform2D({transform:t,parentSize:{width:e.width,height:e.height}}),o=Math.min(e.width/R.DEFAULT_SCREEN_TRANSFORM_ROOT.width,e.height/R.DEFAULT_SCREEN_TRANSFORM_ROOT.height)*(R.DEFAULT_REFERENCE_PIXELS_PER_UNIT/Math.max(t.referencePixelsPerUnit,1e-6))||1,r=R.DEFAULT_SCREEN_TRANSFORM_ROOT.width*o,s=R.DEFAULT_SCREEN_TRANSFORM_ROOT.height*o,a=e.left+(e.width-r)/2,i=e.top+(e.height-s)/2,l=a+r/2,f=i+s/2,m=n.size[0],x=n.size[1],w=l+n.center[0],b=f-n.center[1];return{centerX:w,centerY:b,height:x,left:w-m/2,scale:o,top:b-x/2,width:m}},Be=(e,t,n,o)=>{const r=R.DEFAULT_SCREEN_TRANSFORM_ROOT.width*o,s=R.DEFAULT_SCREEN_TRANSFORM_ROOT.height*o,a=n.left+(n.width-r)/2,i=n.top+(n.height-s)/2;return{x:(e-(a+r/2))/o,y:(i+s/2-t)/o}},Ye=({color:e="#38bdf8",handleColor:t="#ffffff",onChange:n,transform:o})=>{const r=h.useRef(n);r.current=n;const{gl:s}=re.useThree(),[a,i]=h.useState(null),l=h.useRef(null),f=h.useRef(null),m=h.useCallback(()=>{i(s.domElement.getBoundingClientRect())},[s.domElement]);h.useEffect(()=>(m(),window.addEventListener("resize",m),window.addEventListener("scroll",m,!0),()=>{window.removeEventListener("resize",m),window.removeEventListener("scroll",m,!0)}),[m]);const x=h.useMemo(()=>a?Xe(a,o):null,[a,o]),w=h.useCallback(S=>{const c=l.current,y=r.current;if(!c||!y)return;const E=(S.clientX-c.startX)/c.scale,u=-(S.clientY-c.startY)/c.scale,z={x:c.startPointerDesign.x+E,y:c.startPointerDesign.y+u},_={...c.startTransform,position:{...c.startTransform.position},size:{...c.startTransform.size},pivot:[...c.startTransform.pivot]};if(c.handle==="move")_.position={x:C(c.startTransform.position.x+E),y:C(c.startTransform.position.y+u)};else if(c.handle==="pivot"){const g=Math.max(1,c.startTransform.size.width*c.startTransform.scale2D.x),v=Math.max(1,c.startTransform.size.height*c.startTransform.scale2D.y),D=ce(c.startTransform.pivot[0]+E/g),M=ce(c.startTransform.pivot[1]+u/v);_.pivot=[C(D*1e3)/1e3,C(M*1e3)/1e3],_.position={x:C(c.startTransform.position.x+(_.pivot[0]-c.startTransform.pivot[0])*g),y:C(c.startTransform.position.y+(_.pivot[1]-c.startTransform.pivot[1])*v)}}else if(c.handle.startsWith("rotate")){const g=Math.atan2(c.startPointerDesign.y-c.startTransform.position.y,c.startPointerDesign.x-c.startTransform.position.x),v=Math.atan2(z.y-c.startTransform.position.y,z.x-c.startTransform.position.x);_.rotation=C(c.startTransform.rotation+(v-g)*180/Math.PI)}else{const g=c.handle==="left"||c.handle.endsWith("Left"),v=c.handle==="right"||c.handle.endsWith("Right"),D=c.handle==="top"||c.handle.startsWith("top"),M=c.handle==="bottom"||c.handle.startsWith("bottom"),T=v?E*2:g?-E*2:0,P=D?u*2:M?-u*2:0;_.size={width:Math.max(1,C(c.startTransform.size.width+T)),height:Math.max(1,C(c.startTransform.size.height+P))}}y(_)},[]),b=h.useCallback(()=>{l.current=null,document.body.style.cursor="",window.removeEventListener("pointermove",w),window.removeEventListener("pointerup",b)},[w]);h.useEffect(()=>b,[b]);const O=h.useCallback((S,c)=>{!a||!x||!n||(c.preventDefault(),document.body.style.cursor=S==="move"?"grabbing":$[S],l.current={handle:S,startX:c.clientX,startY:c.clientY,startPointerDesign:Be(c.clientX,c.clientY,a,x.scale),startTransform:o,scale:x.scale},window.addEventListener("pointermove",w),window.addEventListener("pointerup",b))},[a,x,n,b,o,w]);return h.useEffect(()=>{if(typeof document>"u")return;const S=document.createElement("div");return document.body.appendChild(S),f.current=S,()=>{S.remove(),f.current=null}},[]),h.useEffect(()=>{const S=f.current;if(!S||(S.replaceChildren(),!x))return;const c=12,y=12,E=document.createElement("div");Object.assign(E.style,{position:"fixed",inset:"0",zIndex:"19999",pointerEvents:"none"});const u=document.createElement("div");Object.assign(u.style,{position:"absolute",left:`${x.left}px`,top:`${x.top}px`,width:`${x.width}px`,height:`${x.height}px`,border:`1px solid ${e}`,boxSizing:"border-box",transform:`rotate(${-o.rotation}deg)`,transformOrigin:`${o.pivot[0]*100}% ${(1-o.pivot[1])*100}%`,pointerEvents:n?"auto":"none",cursor:$.move}),u.addEventListener("pointerdown",g=>O("move",g));const z=(g,v,D,M,T="translate(-50%, -50%)")=>{const P=document.createElement("div");return Object.assign(P.style,{position:"absolute",left:`${v*100}%`,top:`${D*100}%`,width:`${M}px`,height:`${M}px`,cursor:$[g],transform:T,pointerEvents:"auto"}),P.addEventListener("pointerdown",j=>{j.stopPropagation(),O(g,j)}),P};for(const[g,v,D]of We){const M=z(g,v,D,c);M.style.background=t,u.appendChild(M)}for(const[g,v,D]of ke)u.appendChild(z(g,v,D,26));const _=z("pivot",o.pivot[0],1-o.pivot[1],y,"translate(-50%, -50%) rotate(45deg)");return Object.assign(_.style,{border:"2px solid #ffffff",background:"#111827",boxSizing:"border-box"}),u.appendChild(_),E.appendChild(u),S.appendChild(E),()=>{S.replaceChildren()}},[e,t,x,n,O,o]),null},X={enabled:!1,targetObjectId:null,orientation:"none",uv:{x:.5,y:.5},vertexNormal:!1,offsetSpace:"local",offsetPosition:{x:0,y:0,z:0},offsetRotation:{x:0,y:0,z:0}},Ve=(e,t,n,o)=>{const r=n.clone().sub(t),s=o.clone().sub(t),a=e.clone().sub(t),i=r.x*s.y-s.x*r.y;if(Math.abs(i)<1e-8)return null;const l=(a.x*s.y-s.x*a.y)/i,f=(r.x*a.y-a.x*r.y)/i,m=1-l-f;return m>=-1e-5&&l>=-1e-5&&f>=-1e-5?[m,l,f]:null},$e=(e,t,n=!1)=>{const o=new d.Vector2(t.x,t.y),r=new d.Vector2,s=new d.Vector2,a=new d.Vector2,i=new d.Vector3,l=new d.Vector3,f=new d.Vector3,m=new d.Vector3,x=new d.Vector3,w=new d.Vector3;let b=null;if(e.traverse(S=>{var v,D;if(b||!S.isMesh)return;const c=S,y=c.geometry,E=(v=y==null?void 0:y.attributes)==null?void 0:v.position,u=(D=y==null?void 0:y.attributes)==null?void 0:D.uv;if(!E||!u)return;const z=y.attributes.normal,_=y.index,g=M=>(_==null?void 0:_.getX(M))??M;for(let M=0;M<(_?_.count:E.count);M+=3){const T=[g(M),g(M+1),g(M+2)];r.set(u.getX(T[0]),u.getY(T[0])),s.set(u.getX(T[1]),u.getY(T[1])),a.set(u.getX(T[2]),u.getY(T[2]));const P=Ve(o,r,s,a);if(P){i.set(0,0,0),l.set(0,0,0),T.forEach((j,k)=>{f.fromBufferAttribute(E,j),i.addScaledVector(f,P[k]),z&&n&&l.addScaledVector(f.fromBufferAttribute(z,j),P[k])}),n||(m.fromBufferAttribute(E,T[0]),x.fromBufferAttribute(E,T[1]),w.fromBufferAttribute(E,T[2]),l.copy(x.sub(m).cross(w.sub(m)).normalize())),b={mesh:c,localPosition:i.clone(),localNormal:l.clone().normalize()};break}}}),b)return b;const O=new d.Box3().setFromObject(e);return{mesh:e,localPosition:e.worldToLocal(O.getCenter(new d.Vector3)),localNormal:new d.Vector3(0,1,0)}},He=e=>({position:e.mesh.localToWorld(e.localPosition.clone()),normal:e.localNormal.clone().transformDirection(e.mesh.matrixWorld).normalize()}),N=(e,t=0)=>Number.isFinite(e)?e:t,H=new d.Vector3,q=new d.Vector3,le=new d.Matrix4,Q=new d.Quaternion,K=new d.Quaternion,qe=new d.Vector3(0,1,0),Qe=e=>{e.position.set(0,0,0),e.quaternion.identity()},Ke=({settings:e,source:t,surface:n})=>{e.orientation==="positionAndDirection"?(le.lookAt(n.position,n.position.clone().add(n.normal),qe),Q.setFromRotationMatrix(le)):Q.identity(),t.quaternion.copy(Q),q.set(N(e.offsetPosition.x),N(e.offsetPosition.y),N(e.offsetPosition.z)),e.offsetSpace==="local"&&q.applyQuaternion(t.quaternion),H.copy(n.position).add(q),t.parent&&t.parent.worldToLocal(H),t.position.copy(H),K.setFromEuler(new d.Euler(N(e.offsetRotation.x)*Math.PI/180,N(e.offsetRotation.y)*Math.PI/180,N(e.offsetRotation.z)*Math.PI/180)),e.offsetSpace==="local"?t.quaternion.multiply(K):t.quaternion.premultiply(K)},Ze=({target:e,settings:t,children:n})=>{const o=Le.useResolveRuntimeObject(),r=h.useRef(null),s=h.useRef(null),a=()=>{r.current&&Qe(r.current)};return h.useEffect(()=>{s.current=null},[t.targetObjectId]),h.useEffect(()=>{t.enabled||a()},[t.enabled]),re.useFrame(()=>{const i=e??o(t.targetObjectId);if(!t.enabled||!i||!r.current){(!t.enabled||!i)&&a();return}const l=`${t.uv.x}:${t.uv.y}:${t.vertexNormal?"vertex":"face"}`;(!s.current||s.current.target!==i||s.current.key!==l)&&(s.current={key:l,target:i,surface:$e(i,t.uv,t.vertexNormal)}),i.updateWorldMatrix(!0,!0);const f=He(s.current.surface);Ke({source:r.current,surface:f,settings:t})}),h.createElement("group",{ref:r},n)},F=e=>Math.round(e*2)/2,de=e=>Math.min(1,Math.max(0,e));function Je(e){return Math.min(e.width/R.DEFAULT_SCREEN_TRANSFORM_ROOT.width,e.height/R.DEFAULT_SCREEN_TRANSFORM_ROOT.height)||1}function et({resolved:e,transform:t}){return e.size[0]/Math.max(Math.abs(t.size.width*t.scale2D.x),1e-6)||1}function tt({parent:e,resolved:t,transform:n}){const s=16*((Math.min(e.width/R.DEFAULT_SCREEN_TRANSFORM_ROOT.width,e.height/R.DEFAULT_SCREEN_TRANSFORM_ROOT.height)||1)*(R.DEFAULT_REFERENCE_PIXELS_PER_UNIT/Math.max(n.referencePixelsPerUnit,1e-6))),a=.028;return[s/Math.max(Math.abs(t.size[0])*a,1e-6),s/Math.max(Math.abs(t.size[1])*a,1e-6),1]}function nt({drag:e,clientX:t,clientY:n,designScale:o}){const r=(t-e.startX)/o,s=-(n-e.startY)/o,a={x:e.startPointerDesign.x+r,y:e.startPointerDesign.y+s},i={...e.startTransform,position:{...e.startTransform.position},size:{...e.startTransform.size},pivot:[...e.startTransform.pivot]};if(e.handle==="move")return i.position={x:F(e.startTransform.position.x+r),y:F(e.startTransform.position.y+s)},i;if(e.handle==="pivot"){const O=Math.max(1,e.startTransform.size.width*e.startTransform.scale2D.x),S=Math.max(1,e.startTransform.size.height*e.startTransform.scale2D.y),c=de(e.startTransform.pivot[0]+r/O),y=de(e.startTransform.pivot[1]+s/S);return i.pivot=[F(c*1e3)/1e3,F(y*1e3)/1e3],i.position={x:F(e.startTransform.position.x+(i.pivot[0]-e.startTransform.pivot[0])*O),y:F(e.startTransform.position.y+(i.pivot[1]-e.startTransform.pivot[1])*S)},i}if(e.handle.startsWith("rotate")){const O=Math.atan2(e.startPointerDesign.y-e.startTransform.position.y,e.startPointerDesign.x-e.startTransform.position.x),S=Math.atan2(a.y-e.startTransform.position.y,a.x-e.startTransform.position.x);return i.rotation=F(e.startTransform.rotation+(S-O)*180/Math.PI),i}const l=e.handle==="left"||e.handle.endsWith("Left"),f=e.handle==="right"||e.handle.endsWith("Right"),m=e.handle==="top"||e.handle.startsWith("top"),x=e.handle==="bottom"||e.handle.startsWith("bottom"),w=f?r*2:l?-r*2:0,b=m?s*2:x?-s*2:0;return i.size={width:Math.max(1,F(e.startTransform.size.width+w)),height:Math.max(1,F(e.startTransform.size.height+b))},i}function pe({transform:e,guideLayer:t,guideColor:n,onChange:o,children:r}){const s=Y.useScreenSpace(),{size:a}=re.useThree(),i=h.useRef(o);i.current=o;const l=h.useRef(null),f=h.useMemo(()=>R.resolveScreenTransform2D({transform:e,parentSize:s}),[s,e]),m=Je(a),x=h.useRef(m);x.current=m;const w=et({resolved:f,transform:e}),b=h.useCallback(y=>{const E=l.current,u=i.current;!E||!u||u(nt({drag:E,clientX:y.clientX,clientY:y.clientY,designScale:x.current}))},[]),O=h.useCallback(()=>{l.current=null,document.body.style.cursor="",window.removeEventListener("pointermove",b),window.removeEventListener("pointerup",O)},[b]);h.useEffect(()=>O,[O]);const S=h.useCallback((y,E)=>{o&&(l.current={handle:y,startX:E.nativeEvent.clientX,startY:E.nativeEvent.clientY,startPointerDesign:{x:E.point.x/w,y:E.point.y/w},startTransform:e},window.addEventListener("pointermove",b),window.addEventListener("pointerup",O))},[o,O,e,w,b]),c=h.useMemo(()=>tt({parent:s,resolved:f,transform:e}),[s,f,e]);return p.jsx("group",{position:[f.center[0]+(e.pivot[0]-.5)*f.size[0],f.center[1]+(e.pivot[1]-.5)*f.size[1],0],rotation:f.rotation,children:p.jsx("group",{position:[(.5-e.pivot[0])*f.size[0],(.5-e.pivot[1])*f.size[1],0],scale:f.size,children:p.jsxs(Y.ScreenRectAspectContext.Provider,{value:f.aspect,children:[r,e.showTransformGuides&&t==="scene"?p.jsx(Ge,{color:n,controlScale:c,onHandlePointerDown:o?S:void 0,pivot:e.pivot,pivotScale:c,renderOrder:e.renderOrder+1}):null,e.showTransformGuides&&t==="overlay"?p.jsx(Ye,{color:n,onChange:o,transform:e}):null]})})})}const U={tint:"#dff6ff",opacity:.28,frost:.35,highlight:.55},se=e=>({...U,...e,opacity:d.MathUtils.clamp((e==null?void 0:e.opacity)??U.opacity,0,1),frost:d.MathUtils.clamp((e==null?void 0:e.frost)??U.frost,0,1),highlight:d.MathUtils.clamp((e==null?void 0:e.highlight)??U.highlight,0,1)}),ot=`
|
|
2
|
+
varying vec2 vPosition;
|
|
3
|
+
void main() {
|
|
4
|
+
vPosition = position.xy;
|
|
5
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
6
|
+
}
|
|
7
|
+
`,rt=`
|
|
8
|
+
uniform vec3 tint;
|
|
9
|
+
uniform float opacity;
|
|
10
|
+
uniform float frost;
|
|
11
|
+
uniform float highlight;
|
|
12
|
+
varying vec2 vPosition;
|
|
13
|
+
|
|
14
|
+
void main() {
|
|
15
|
+
float grain = fract(sin(dot(vPosition * 997.0, vec2(12.9898, 78.233))) * 43758.5453);
|
|
16
|
+
float sheen = smoothstep(0.15, 0.85, 1.0 - (vPosition.x + vPosition.y + 1.0) * 0.5);
|
|
17
|
+
vec3 frosted = mix(tint, vec3(1.0), frost * (0.18 + grain * 0.08));
|
|
18
|
+
vec3 color = mix(frosted, vec3(1.0), sheen * highlight * 0.32);
|
|
19
|
+
gl_FragColor = vec4(color, opacity);
|
|
20
|
+
}
|
|
21
|
+
`,ue=({opacity:e=1,value:t})=>{const n=h.useMemo(()=>{const r=se(t);return{tint:new d.Color(r.tint),opacity:r.opacity*e,frost:r.frost,highlight:r.highlight}},[e,t]),o=I.useStableUniforms(n);return p.jsx("shaderMaterial",{uniforms:o,vertexShader:ot,fragmentShader:rt,transparent:!0,depthTest:!1,depthWrite:!1,toneMapped:!1})},Z=(e,t=1)=>Array.from({length:e},(n,o)=>{const r=o%2?t*.5:.5,s=-Math.PI/2+o/e*Math.PI*2;return[Math.cos(s)*r,Math.sin(s)*r,0]}),st=e=>{switch(e.kind){case"line":return[[e.lineStart.x-.5,.5-e.lineStart.y,0],[e.lineEnd.x-.5,.5-e.lineEnd.y,0]];case"polygon":return Z(Math.max(3,Math.round(e.sides)));case"star":return Z(Math.max(3,Math.round(e.sides))*2,ee.MathUtils.clamp(e.innerRadiusRatio,.05,.95));case"rectangle":return[[-.5,-.5,0],[.5,-.5,0],[.5,.5,0],[-.5,.5,0]];case"roundedRectangle":{const t=ee.MathUtils.clamp(e.cornerRadius,0,.5),n=[];return[[.5-t,.5-t,0],[-.5+t,.5-t,Math.PI/2],[-.5+t,-.5+t,Math.PI],[.5-t,-.5+t,Math.PI*1.5]].forEach(([r,s,a])=>{for(let i=0;i<=6;i+=1){const l=a+i/6*(Math.PI/2);n.push([r+Math.cos(l)*t,s+Math.sin(l)*t,0])}}),n}case"circle":case"ellipse":default:return Z(64)}},it=e=>{const t=new ee.Shape;return e.forEach(([n,o],r)=>r?t.lineTo(n,o):t.moveTo(n,o)),t.closePath(),t},G={kind:"rectangle",fillColor:"#38bdf8",fillOpacity:1,fillMode:"solid",gradient:I.DEFAULT_SCREEN_GRADIENT,glass:U,strokeColor:"#ffffff",strokeOpacity:1,strokeWidth:3,cornerRadius:.15,sides:5,innerRadiusRatio:.45,dashed:!1,lineStart:{x:.1,y:.5},lineEnd:{x:.9,y:.5}},he=e=>{const t={...G,...e,lineStart:{...G.lineStart,...e==null?void 0:e.lineStart},lineEnd:{...G.lineEnd,...e==null?void 0:e.lineEnd},gradient:I.normalizeScreenGradient(e==null?void 0:e.gradient),glass:se(e==null?void 0:e.glass)},n=(o,r)=>Number.isFinite(o)?o:r;return{...t,fillOpacity:d.MathUtils.clamp(n(t.fillOpacity,1),0,1),strokeOpacity:d.MathUtils.clamp(n(t.strokeOpacity,1),0,1),strokeWidth:Math.max(0,n(t.strokeWidth,0)),cornerRadius:d.MathUtils.clamp(n(t.cornerRadius,0),0,.5),sides:d.MathUtils.clamp(Math.round(n(t.sides,5)),3,12),innerRadiusRatio:d.MathUtils.clamp(n(t.innerRadiusRatio,.45),.05,.95),lineStart:{x:d.MathUtils.clamp(n(t.lineStart.x,.1),0,1),y:d.MathUtils.clamp(n(t.lineStart.y,.5),0,1)},lineEnd:{x:d.MathUtils.clamp(n(t.lineEnd.x,.9),0,1),y:d.MathUtils.clamp(n(t.lineEnd.y,.5),0,1)}}},at=({name:e,renderOrder:t,settings:n,visible:o})=>{const r=Y.useScreenRectAspect(),s=h.useMemo(()=>st(n),[n]),a=h.useMemo(()=>it(s),[s]),l=["circle","polygon","star"].includes(n.kind)?[Math.min(1,1/r),Math.min(1,r),1]:[1,1,1],m=n.kind!=="line"?[...s,s[0]]:s;return p.jsxs("group",{name:e,visible:o,scale:l,children:[n.kind!=="line"&&n.fillOpacity>0?p.jsxs("mesh",{renderOrder:t,children:[p.jsx("shapeGeometry",{args:[a]}),n.fillMode==="glass"?p.jsx(ue,{value:n.glass,opacity:n.fillOpacity}):p.jsx(I.MaterialFill,{settings:{source:n.fillMode,color:n.fillColor,opacity:n.fillOpacity,gradient:n.gradient}})]}):null,n.strokeWidth>0&&n.strokeOpacity>0?p.jsx(Ue.Line,{points:m,color:n.strokeColor,lineWidth:n.strokeWidth,opacity:n.strokeOpacity,transparent:n.strokeOpacity<1,dashed:n.dashed,dashSize:.05,gapSize:.03,depthTest:!1,depthWrite:!1,renderOrder:t+1}):null]})},ct=({name:e,onScreenTransformChange:t,renderOrder:n,settings:o,transform:r,transformGuideLayer:s="scene",visible:a=!0})=>{const i=h.useMemo(()=>he(o),[o]),l=h.useMemo(()=>R.mergeScreenTransform2D(r??R.DEFAULT_SCREEN_TRANSFORM_2D),[r]);return l.enabled?p.jsx(pe,{transform:l,guideLayer:s,guideColor:"#38bdf8",onChange:t,children:p.jsx(at,{name:e,settings:i,visible:a&&l.visible,renderOrder:n??l.renderOrder})}):null};function lt(e){const{screenSpaceUI:t,screenImage:n}=e,{image:o,transformation:r}=n,s=o.src.trim();return{shouldRender:t.enabled&&n.enabled&&r.enabled,props:{source:o.sourceKind==="image"&&s.length>0?{kind:"image",src:s}:o.sourceKind==="gif"&&s.length>0?{kind:"gif",src:s}:{kind:"default"},transform:n.screenTransform,coordinateSpace:r.coordinateSpace,canvasSize:r.canvasSize,position:[r.position.x,r.position.y],size:[r.size.width,r.size.height],rotation:r.rotation,pivot:r.pivot,stretchMode:o.stretchMode,materialType:o.materialType,blendMode:o.blendMode,opacity:o.opacity,color:o.color,flipX:o.flipX,flipY:o.flipY,renderOrder:r.renderOrder,transparent:o.transparent,alphaTest:o.alphaTest,overlay:r.overlay,visible:r.visible}}}const V={enabled:!0,preset:"placeholder",transformation:{enabled:!0,showFitGuides:!1,coordinateSpace:"canvas",canvasSize:{width:720,height:1280},position:{x:0,y:0},size:{width:680,height:1230},rotation:0,pivot:[.5,.5],renderOrder:999,overlay:!0,visible:!0},screenTransform:{...R.DEFAULT_SCREEN_TRANSFORM_2D,renderOrder:999},image:{sourceKind:"default",src:"",stretchMode:"fit",materialType:"unlit",blendMode:"normal",opacity:1,color:"#ffffff",flipX:!1,flipY:!1,transparent:!0,alphaTest:0}},dt={screenImage:V,screenSpaceUI:{enabled:!0}},ft=e=>e*Math.PI/180;function me(e){if(!e)return;const t=e.offset??0,n=ft(e.angle??-45);return{color:e.color,opacity:e.opacity,blur:(e.feather??0)*100,offsetX:Math.cos(n)*t,offsetY:Math.sin(n)*t}}function pt(e){const{screenSpaceUI:t,screenText:n}=e,{content:o,layout:r,style:s,transformation:a}=n,i=s.background;return{shouldRender:t.enabled&&n.enabled&&a.enabled,props:{text:o.text,screenTransform:n.screenTransform,coordinateSpace:a.coordinateSpace,canvasSize:a.canvasSize,position:[a.position.x,a.position.y],size:[a.size.width,a.size.height],rotation:a.rotation,pivot:a.pivot,renderOrder:a.renderOrder,overlay:a.overlay,visible:a.visible,showTransformGuides:a.showTransformGuides,fontSize:s.fontSize,fontFamily:s.fontFamily,fontWeight:s.fontWeight,fontStyle:s.fontStyle,underline:s.underline,strikethrough:s.strikethrough,letterSpacing:s.letterSpacing,lineSpacing:s.lineSpacing,color:s.color,opacity:s.opacity,outlineEnabled:s.outlineEnabled,strokeLayers:s.strokeLayers,shadowEnabled:s.shadowEnabled,shadowLayers:s.shadowLayers,innerShadow:s.innerShadowEnabled?me(s.innerShadow):void 0,glow:s.glowEnabled?s.glow:void 0,bend:s.bendEnabled?s.bend:void 0,bgColor:i.enabled?i.color:"transparent",bgOpacity:i.opacity,bgFit:i.fit,bgAutoSize:i.autoSize,bgFillMode:i.fillMode,bgWidth:i.width,bgHeight:i.height,bgGradientStops:i.gradientStops,bgTextureUrl:i.textureUrl,bgTextureFit:i.textureFit,bgTextureFlipX:i.textureFlipX,bgTextureFlipY:i.textureFlipY,padding:i.padding,borderColor:i.borderEnabled?i.borderColor:void 0,borderWidth:i.borderEnabled?i.borderWidth:0,borderRadius:i.borderRadius,textAlign:r.textAlign,verticalAlign:r.verticalAlign,overflow:r.overflow,resizeToFit:r.resizeToFit,minFontSize:r.minFontSize}}}const Se={color:"#000000",blur:0,offsetX:7.071,offsetY:-7.071,opacity:1,offset:10,angle:-45,feather:0},Te={screenText:{enabled:!0,content:{text:"Hello from Vincentt"},layout:{textAlign:"center",verticalAlign:"center",overflow:"clip",resizeToFit:!1,minFontSize:32},style:{fontSize:72,fontFamily:'"Space Grotesk", sans-serif',fontWeight:400,bold:!1,fontStyle:"normal",underline:!1,strikethrough:!1,letterSpacing:0,lineSpacing:.3,color:"#ffffff",opacity:1,aspect:3,outlineEnabled:!0,shadowEnabled:!1,innerShadowEnabled:!1,innerShadow:{color:"#000000",opacity:1,offset:10,angle:-45,feather:0},glowEnabled:!1,glow:{color:"#ffffff",style:"outward",intensity:.5,range:.5,horizontalAngle:0,verticalAngle:0},bendEnabled:!1,bend:{preset:"arc",strength:100},background:{enabled:!1,autoSize:!0,fit:"text",fillMode:"solid",color:"#14286e",opacity:1,borderRadius:32,padding:0,width:540,height:220,borderEnabled:!1,borderWidth:0,borderColor:"#ffffff",gradientStops:[{color:"#14286e",position:0},{color:"#3657d6",position:.5},{color:"#8ab4ff",position:1}],textureUrl:"",textureFit:"cover",textureFlipX:!1,textureFlipY:!1},strokeLayers:[{color:"#0f172a",width:12,opacity:1}],shadowLayers:[Se]},screenTransform:{...R.DEFAULT_SCREEN_TRANSFORM_2D,renderOrder:1e3},transformation:{enabled:!0,showTransformGuides:!1,coordinateSpace:"canvas",canvasSize:{width:720,height:1280},position:{x:0,y:0},size:{width:680,height:1230},rotation:0,pivot:[.5,.5],renderOrder:1e3,overlay:!0,visible:!0},textArtPreset:"clean"},screenImage:V,screenSpaceUI:{enabled:!0}},ie=e=>{const t=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;return`${e}_${t}`},Ee=()=>ie("obj"),xe=()=>ie("cmp"),L=e=>typeof structuredClone=="function"?structuredClone(e):JSON.parse(JSON.stringify(e)),ge=()=>L(I.DEFAULT_TRANSFORM_3D),be=()=>L(R.DEFAULT_SCREEN_TRANSFORM_2D),ye=()=>L(V),Re=()=>L(Te.screenText),ve=()=>L(G),Me=()=>L(Y.DEFAULT_MESH_RENDERER),we=()=>L(I.DEFAULT_FACE_MESH_RENDERER),Oe=()=>({type:"standard",color:"#ffffff",opacity:1,wireframe:!1,roughness:.42,metalness:.08}),_e=()=>({flipX:!1,flipY:!1}),ut=()=>({enabled:!0,type:"directional",color:"#ffffff",intensity:2.2,castShadow:!0,distance:10,angle:Math.PI/6,penumbra:.2,decay:2,showHelper:!1}),ht=()=>({enabled:!1,targetObjectId:null,mode:"point",inheritChildren:!1,offsetRotation:{x:0,y:0,z:0}}),mt=()=>({...X,uv:{...X.uv},offsetPosition:{...X.offsetPosition},offsetRotation:{...X.offsetRotation}}),St=()=>L(Ne.DEFAULT_TRACKING_ANCHOR),De={Transform:ge,ScreenTransform:be,ScreenImage:ye,ScreenText:Re,ScreenShape:ve,MeshRenderer:Me,FaceMeshRenderer:we,Material:Oe,Texture:_e,Light:ut,LookAt:ht,PinToMesh:mt,TrackingAnchor:St},Tt=({componentIds:e=[],enabled:t=!0,id:n=Ee(),parentObjectId:o=null,childObjectIds:r=[],renderGroupId:s,layerId:a,name:i})=>({id:n,name:i,enabled:t,parentObjectId:o,childObjectIds:r,layerId:a,renderGroupId:s??a,componentIds:e}),Et=(e,t)=>({id:xe(),objectId:t,type:e,enabled:!0,settings:De[e]()}),W=(e,t)=>{const n=e.objects[t];return n?n.componentIds.map(o=>e.components[o]).filter(o=>!!o):[]},xt=()=>{let e=null,t=null,n=null,o=[];return(r,s)=>{const a=r.objects[s];if(!a)return e=r,t=s,n=null,o=[],o;const i=a.componentIds;return e===r&&t===s&&n===i&&o.length===i.length&&o.every(f=>r.components[f.id]===f)||(e=r,t=s,n=i,o=W(r,s)),o}},gt=(e,t)=>{const n=e.objects[t.objectId];return n?{...e,objects:{...e.objects,[n.id]:{...n,componentIds:[...n.componentIds,t.id]}},components:{...e.components,[t.id]:t}}:e},bt=(e,t,n,o)=>{const r=e.objects[t];if(!r||r.componentIds.indexOf(n)<0)return e;const a=r.componentIds.filter(i=>i!==n);return a.splice(Math.max(0,Math.min(o,a.length)),0,n),{...e,objects:{...e.objects,[t]:{...r,componentIds:a}}}},yt=(e,t,n)=>{const o=e.objects[t];if(!o)return e;const r={...e.components};return delete r[n],{...e,objects:{...e.objects,[t]:{...o,componentIds:o.componentIds.filter(s=>s!==n)}},components:r}},te=(e,t)=>e.components[t.id]?{...e,components:{...e.components,[t.id]:t}}:e,Pe=(e,t)=>e.objects[t.id]?{...e,objects:{...e.objects,[t.id]:t}}:e,Ae=(e,t)=>{const n=e.objects[t],o=(n==null?void 0:n.childObjectIds)??[],r=Object.values(e.objects).filter(a=>a.parentObjectId===t).map(a=>a.id);return[...new Set([...o,...r])].map(a=>e.objects[a]).filter(a=>!!a)},Rt=(e,t,n)=>{var s;let o=n;const r=new Set;for(;o;){if(o===t||r.has(o))return!0;r.add(o),o=((s=e.objects[o])==null?void 0:s.parentObjectId)??null}return!1},fe=(e,t)=>{const n=new Set(W(e,t).map(o=>o.type));return n.has("Transform")?"3d":n.has("ScreenTransform")?"2d":null},ze=(e,t,n,o)=>{const r=e.objects[t];if(!r||n!==null&&!e.objects[n])return e;if(n!==null){const i=fe(e,t),l=fe(e,n);if(i&&l&&i!==l)return e}if(Rt(e,t,n))return e;const s=r.parentObjectId??null;if(s===n&&n===null)return e;const a={...e.objects};if(s&&a[s]){const i=a[s];a[s]={...i,childObjectIds:(i.childObjectIds??[]).filter(l=>l!==t)}}if(a[t]={...r,parentObjectId:n},n){const i=a[n],l=(i.childObjectIds??[]).filter(f=>f!==t);l.splice(Math.max(0,Math.min(o??l.length,l.length)),0,t),a[n]={...i,childObjectIds:l}}return{...e,objects:a}},J=Math.PI/180,B=180/Math.PI,A=e=>Number(e.toFixed(4)),vt=e=>(e==null?void 0:e.type)==="Transform",je=(e,t)=>W(e,t).find(vt)??null,Mt=e=>(e==null?void 0:e.type)==="ScreenTransform",Ce=(e,t)=>W(e,t).find(Mt)??null,wt=e=>new d.Matrix4().compose(new d.Vector3(e.position.x,e.position.y,e.position.z),new d.Quaternion().setFromEuler(new d.Euler(e.rotation.x*J,e.rotation.y*J,e.rotation.z*J)),new d.Vector3(e.scale.x,e.scale.y,e.scale.z)),Ot=(e,t)=>{const n=je(e,t);return n?wt(n.settings):new d.Matrix4},ne=(e,t)=>{const n=e.objects[t],o=Ot(e,t);return!(n!=null&&n.parentObjectId)||!e.objects[n.parentObjectId]?o:ne(e,n.parentObjectId).multiply(o)},_t=e=>{const t=R.resolveScreenTransform2D({transform:e,parentSize:R.DEFAULT_SCREEN_TRANSFORM_ROOT,snapIncrement:0});return new d.Matrix4().compose(new d.Vector3(...t.center),new d.Quaternion().setFromEuler(new d.Euler(...t.rotation)),new d.Vector3(...t.size))},oe=(e,t)=>{var s;const n=Ce(e,t),o=n?_t(n.settings):new d.Matrix4,r=(s=e.objects[t])==null?void 0:s.parentObjectId;return!r||!e.objects[r]?o:oe(e,r).multiply(o)},Dt=(e,t)=>{const n=new d.Vector3,o=new d.Quaternion,r=new d.Vector3;e.decompose(n,o,r);const s=new d.Euler().setFromQuaternion(o);return{...t,position:{x:A(n.x),y:A(n.y),z:A(n.z)},rotation:{x:A(s.x*B),y:A(s.y*B),z:A(s.z*B)},scale:{x:A(r.x),y:A(r.y),z:A(r.z)}}},Pt=(e,t)=>{const n=new d.Vector3,o=new d.Quaternion,r=new d.Vector3;e.decompose(n,o,r);const s=new d.Euler().setFromQuaternion(o),a=R.DEFAULT_REFERENCE_PIXELS_PER_UNIT/t.referencePixelsPerUnit,i=Math.abs(r.x),l=Math.abs(r.y),f=(t.pivot[0]-.5)*i,m=(t.pivot[1]-.5)*l;return{...t,position:{x:A((n.x+f)/a),y:A((n.y+m)/a)},rotation:A(s.z*B),scale2D:{x:A(i/(t.size.width*a)),y:A(l/(t.size.height*a))}}},At=(e,t,n,o)=>{const r=je(e,t),s=Ce(e,t),a=r?ne(e,t):s?oe(e,t):null,i=ze(e,t,n,o);if(i===e||!a)return i;const f=(n?r?ne(i,n):oe(i,n):new d.Matrix4).clone().invert().multiply(a);return s?te(i,{...s,settings:Pt(f,s.settings)}):r?te(i,{...r,settings:Dt(f,r.settings)}):i},zt=(e,t,n)=>{const o=e.objects[t];return o?Pe(e,{...o,enabled:n}):e},jt=(e,t)=>{const n=e.objects[t];if(!n)return e;const o=Ae(e,t).map(i=>i.id),r={...e.objects};delete r[t];const s=Object.fromEntries(Object.entries(r).map(([i,l])=>[i,o.includes(i)||l.parentObjectId===t?{...l,parentObjectId:null}:{...l,childObjectIds:(l.childObjectIds??[]).filter(f=>f!==t)}])),a={...e.components};for(const i of n.componentIds)delete a[i];return{...e,objects:s,components:a}},Fe=30,Ct=31,Ft=(e,t=1)=>{const n=t+e;if(n<1||n>Fe)throw new RangeError(`Render-group layer ${n} is outside the supported range 1-30.`);return n},Lt=({renderer:e,scene:t,camera:n,layers:o,includeDefaultLayer:r=!0})=>{const s=n.layers.mask,a=e.autoClear;try{if(e.autoClear=!1,e.clear(!0,!0,!0),o.length===0){n.layers.set(0),e.render(t,n);return}o.forEach((i,l)=>{n.layers.set(i),r&&i!==0&&n.layers.enable(0),l>0&&e.clearDepth(),e.render(t,n)})}finally{n.layers.mask=s,e.autoClear=a}};exports.DEFAULT_SCREEN_GLASS=U;exports.DEFAULT_SCREEN_IMAGE_SCENE_SETTINGS=dt;exports.DEFAULT_SCREEN_IMAGE_SETTINGS=V;exports.DEFAULT_SCREEN_SHAPE_SETTINGS=G;exports.DEFAULT_SCREEN_TEXT_SCENE_SETTINGS=Te;exports.DEFAULT_SCREEN_TEXT_SHADOW_LAYER=Se;exports.EXTERNAL_BACKGROUND_RENDER_LAYER=Ct;exports.MAX_RENDER_GROUP_PASSES=Fe;exports.PinToMesh=Ze;exports.ScreenGlassMaterial=ue;exports.ScreenShape=ct;exports.ScreenTransformFrame=pe;exports.addComponentToObject=gt;exports.componentDefaults=De;exports.createDefaultComponent=Et;exports.createDefaultFaceMeshRendererSettings=we;exports.createDefaultMaterialSettings=Oe;exports.createDefaultMeshRendererSettings=Me;exports.createDefaultScreenImageSettings=ye;exports.createDefaultScreenShapeSettings=ve;exports.createDefaultScreenTextSettings=Re;exports.createDefaultScreenTransformSettings=be;exports.createDefaultTextureSettings=_e;exports.createDefaultTransformSettings=ge;exports.createOrderedComponentsSelector=xt;exports.createSceneComponentId=xe;exports.createSceneId=ie;exports.createSceneObject=Tt;exports.createSceneObjectId=Ee;exports.deleteSceneObject=jt;exports.getOrderedComponents=W;exports.getRenderGroupLayer=Ft;exports.getSceneObjectChildren=Ae;exports.mapScreenImageSettingsToProps=lt;exports.mapScreenTextInnerShadowToProps=me;exports.mapScreenTextSettingsToProps=pt;exports.mergeScreenShapeSettings=he;exports.moveComponent=bt;exports.normalizeScreenGlass=se;exports.removeComponent=yt;exports.renderSequentialPasses=Lt;exports.replaceSceneComponent=te;exports.replaceSceneObject=Pe;exports.setSceneObjectParent=ze;exports.setSceneObjectParentPreserveWorldTransform=At;exports.setSceneObjectVisible=zt;
|