@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.
Files changed (275) hide show
  1. package/GROUNDING.md +1109 -13
  2. package/dist/{DebuggerUI-BjOMr8q_.js → DebuggerUI-C-ldiozL.js} +1 -1
  3. package/dist/{DebuggerUI-B6bP6P9r.cjs → DebuggerUI-CWX5EtQv.cjs} +1 -1
  4. package/dist/FaceMeshRenderer-BEEXZwS6.cjs +158 -0
  5. package/dist/FaceMeshRenderer-UuH5sTXG.js +1322 -0
  6. package/dist/FaceRetouch-C7h7x9kd.js +683 -0
  7. package/dist/FaceRetouch-DqftT26Y.cjs +134 -0
  8. package/dist/GLTFLoader-C5q63sKO.js +1633 -0
  9. package/dist/GLTFLoader-Cb_CRwmG.cjs +1 -0
  10. package/dist/SegmentationOverlay-DQuW3dsc.js +133 -0
  11. package/dist/SegmentationOverlay-aWVod8Kl.cjs +1 -0
  12. package/dist/assets/cache.d.ts +99 -0
  13. package/dist/assets/estimate.d.ts +11 -0
  14. package/dist/assets/index.d.ts +7 -0
  15. package/dist/assets/loaders.d.ts +28 -0
  16. package/dist/assets/react.d.ts +33 -0
  17. package/dist/calibration/calibration.d.ts +70 -0
  18. package/dist/calibration/index.d.ts +6 -0
  19. package/dist/calibration/storage.d.ts +13 -0
  20. package/dist/calibration/types.d.ts +53 -0
  21. package/dist/calibration/useXRCalibration.d.ts +46 -0
  22. package/dist/camera/CameraPermissionGate.d.ts +26 -0
  23. package/dist/camera/devices.d.ts +26 -0
  24. package/dist/camera/index.d.ts +8 -0
  25. package/dist/camera/permission.d.ts +86 -0
  26. package/dist/camera/useCameraPermission.d.ts +35 -0
  27. package/dist/capabilities/detect.d.ts +45 -0
  28. package/dist/capabilities/index.d.ts +5 -0
  29. package/dist/capabilities/types.d.ts +120 -0
  30. package/dist/capabilities/useXRCapabilities.d.ts +18 -0
  31. package/dist/compat/environment.d.ts +5 -0
  32. package/dist/compat/index.d.ts +4 -0
  33. package/dist/compat/run.d.ts +18 -0
  34. package/dist/compat/scenarios.d.ts +10 -0
  35. package/dist/compat/types.d.ts +101 -0
  36. package/dist/components/BodyTracker/index.d.ts +9 -0
  37. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +33 -3
  38. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +12 -0
  39. package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
  40. package/dist/components/FaceMesh/index.d.ts +1 -1
  41. package/dist/components/GestureListener/index.d.ts +11 -0
  42. package/dist/components/HandTracker/index.d.ts +10 -0
  43. package/dist/components/HolisticTracker/index.d.ts +69 -0
  44. package/dist/components/HolisticTracker/settings.d.ts +58 -0
  45. package/dist/components/HolisticTracker/signals.d.ts +49 -0
  46. package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
  47. package/dist/components/IrisEffect/index.d.ts +51 -0
  48. package/dist/components/IrisEffect/settings.d.ts +117 -0
  49. package/dist/components/LipEffect/LipEffect.d.ts +7 -1
  50. package/dist/components/LipEffect/LipEffectMaterial.d.ts +43 -7
  51. package/dist/components/LipEffect/LipEffects.d.ts +9 -0
  52. package/dist/components/LipEffect/defaults.d.ts +27 -4
  53. package/dist/components/LipEffect/index.d.ts +11 -3
  54. package/dist/components/LipEffect/settings.d.ts +271 -0
  55. package/dist/components/LipEffect/types.d.ts +56 -9
  56. package/dist/components/LipEffect/useLipDesignTextures.d.ts +11 -0
  57. package/dist/components/LipEffect/uvGuide.d.ts +59 -0
  58. package/dist/components/PersonCutout/index.d.ts +50 -0
  59. package/dist/components/PersonCutout/personCutout.d.ts +16 -0
  60. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +1 -1
  61. package/dist/components/ScreenImage/index.d.ts +3 -1
  62. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +1 -1
  63. package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
  64. package/dist/components/ScreenImage/source.d.ts +6 -0
  65. package/dist/components/ScreenImage/types.d.ts +18 -0
  66. package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
  67. package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
  68. package/dist/components/SegmentationOverlay/index.d.ts +9 -0
  69. package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
  70. package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
  71. package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
  72. package/dist/components/XRProvider/index.d.ts +16 -2
  73. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +1 -1
  74. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +1 -1
  75. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +1 -1
  76. package/dist/components/index.d.ts +3 -0
  77. package/dist/constants/index.d.ts +4 -1
  78. package/dist/contexts-CO0sd4JQ.cjs +1 -0
  79. package/dist/{contexts-ByhzppYl.js → contexts-FzlnnMYD.js} +252 -246
  80. package/dist/coordinates/feed.d.ts +52 -0
  81. package/dist/coordinates/index.d.ts +5 -0
  82. package/dist/coordinates/spaces.d.ts +49 -0
  83. package/dist/coordinates/viewport.d.ts +22 -0
  84. package/dist/coordinates/world.d.ts +15 -0
  85. package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
  86. package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
  87. package/dist/debug-ui/index.d.ts +14 -0
  88. package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
  89. package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
  90. package/dist/debug-ui/media-source.cjs +1 -1
  91. package/dist/debug-ui/media-source.js +1 -1
  92. package/dist/debug-ui/product-hotspots/index.d.ts +24 -0
  93. package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
  94. package/dist/debug-ui/xr-diagnostics/index.d.ts +25 -0
  95. package/dist/debug-ui.cjs +3 -3
  96. package/dist/debug-ui.js +2057 -1687
  97. package/dist/detector-K8aej4MB.js +59 -0
  98. package/dist/detector-ijypGtse.cjs +1 -0
  99. package/dist/entries/core.d.ts +18 -1
  100. package/dist/entries/face-effects.d.ts +11 -3
  101. package/dist/entries/low-level.d.ts +22 -3
  102. package/dist/entries/product.d.ts +11 -0
  103. package/dist/entries/tracking.d.ts +24 -1
  104. package/dist/face-effects.cjs +155 -1
  105. package/dist/face-effects.js +1134 -2197
  106. package/dist/gestures/definitions.d.ts +85 -0
  107. package/dist/gestures/detector.d.ts +87 -0
  108. package/dist/gestures/index.d.ts +8 -0
  109. package/dist/gestures/measures.d.ts +101 -0
  110. package/dist/gestures/settings.d.ts +49 -0
  111. package/dist/{getFaceInfo-C4QpCQIY.js → getFaceInfo-BkZfaQs-.js} +5 -5
  112. package/dist/{getFaceInfo-fA1bFBub.cjs → getFaceInfo-ahPxQFGu.cjs} +1 -1
  113. package/dist/hooks/selectors.d.ts +68 -1
  114. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  115. package/dist/hooks/useFaceInfo.d.ts +13 -1
  116. package/dist/hooks/useFaceInfos.d.ts +1 -1
  117. package/dist/hooks/useGesture.d.ts +32 -0
  118. package/dist/hooks/useIrisTracking.d.ts +45 -0
  119. package/dist/hooks/useXRDiagnostics.d.ts +81 -0
  120. package/dist/hooks/useXRModel.d.ts +7 -0
  121. package/dist/hooks/useXRSession/facade.d.ts +42 -2
  122. package/dist/hooks/useXRSession/index.d.ts +2 -2
  123. package/dist/hooks/useXRSession/reason.d.ts +3 -1
  124. package/dist/hooks/useXRSession/registry.d.ts +14 -0
  125. package/dist/hooks/useXRSession/store.d.ts +52 -3
  126. package/dist/index--RgGzZ6X.cjs +47 -0
  127. package/dist/{index-VJ0SJwmG.js → index-CHVbH0hz.js} +4 -4
  128. package/dist/index-CeVkgsag.cjs +1 -0
  129. package/dist/index-CnGox6Xr.js +3054 -0
  130. package/dist/{index-ByoNj0QP.js → index-CsUdQ-pn.js} +113 -111
  131. package/dist/{index-BjmTe9eM.cjs → index-DKBAh6hV.cjs} +1 -1
  132. package/dist/index-DsZwTfG0.cjs +1 -0
  133. package/dist/index-Dw6tj2Mi.js +144 -0
  134. package/dist/index-OCPjOaeP.cjs +1 -0
  135. package/dist/{index-DXT3WccE.js → index-s9pF4zkG.js} +1065 -1101
  136. package/dist/internal-BYza1h8_.cjs +1 -0
  137. package/dist/{internal-Dmk1cTXq.js → internal-vsfNQycj.js} +15 -16
  138. package/dist/internal.cjs +1 -1
  139. package/dist/internal.js +2 -2
  140. package/dist/iris/compute.d.ts +25 -0
  141. package/dist/iris/index.d.ts +4 -0
  142. package/dist/iris/lead.d.ts +19 -0
  143. package/dist/iris/types.d.ts +87 -0
  144. package/dist/landmarkMask-CbTFzBYG.js +224 -0
  145. package/dist/landmarkMask-u7es2k4X.cjs +1 -0
  146. package/dist/low-level.cjs +1 -1
  147. package/dist/low-level.js +1085 -634
  148. package/dist/main.cjs +1 -1
  149. package/dist/main.js +1519 -465
  150. package/dist/measures-9dQPdw96.js +154 -0
  151. package/dist/measures-KfJzpvod.cjs +1 -0
  152. package/dist/models/Base/index.d.ts +49 -0
  153. package/dist/models/Body/index.d.ts +1 -1
  154. package/dist/models/Face/index.d.ts +1 -1
  155. package/dist/models/Hand/GestureTracking.d.ts +1 -1
  156. package/dist/models/Hand/HandTracking.d.ts +1 -1
  157. package/dist/models/Holistic/index.d.ts +49 -0
  158. package/dist/models/Holistic/result.d.ts +68 -0
  159. package/dist/models/SemanticSegmentation/index.d.ts +31 -0
  160. package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
  161. package/dist/models/index.d.ts +2 -0
  162. package/dist/product/ProductDimensions.d.ts +16 -0
  163. package/dist/product/ProductHotspot.d.ts +16 -0
  164. package/dist/product/ProductViewer.d.ts +9 -0
  165. package/dist/product/details.d.ts +53 -0
  166. package/dist/product/index.d.ts +14 -0
  167. package/dist/product/loadModelViewer.d.ts +4 -0
  168. package/dist/product/types.d.ts +71 -0
  169. package/dist/product/useProductAr.d.ts +37 -0
  170. package/dist/product/useProductDetails.d.ts +60 -0
  171. package/dist/product.cjs +1 -0
  172. package/dist/product.js +414 -0
  173. package/dist/providers-C0Dlhh9Z.js +365 -0
  174. package/dist/providers-YNwkmNeK.cjs +62 -0
  175. package/dist/quality/XRQualityController.d.ts +25 -0
  176. package/dist/quality/controller.d.ts +33 -0
  177. package/dist/quality/index.d.ts +6 -0
  178. package/dist/quality/types.d.ts +100 -0
  179. package/dist/quality/useXRQuality.d.ts +28 -0
  180. package/dist/{renderGroups-KZk6eRiY.js → renderGroups-CN1cGFUo.js} +1 -1
  181. package/dist/{renderGroups-80H3DpTl.cjs → renderGroups-O4KmaMl9.cjs} +1 -1
  182. package/dist/renderPasses-Cg-zqmEz.cjs +21 -0
  183. package/dist/renderPasses-NnKZVfBy.js +1460 -0
  184. package/dist/scene-object.cjs +1 -1
  185. package/dist/scene-object.js +2 -2
  186. package/dist/screenTransform-BenfCtZt.js +44 -0
  187. package/dist/screenTransform-BiXdpVf0.cjs +1 -0
  188. package/dist/segmentation-9PhSvc-R.cjs +1 -0
  189. package/dist/segmentation-CeOTKemr.js +5 -0
  190. package/dist/segmentation2d/faceMemory.d.ts +28 -0
  191. package/dist/segmentation2d/faceRegions.d.ts +24 -0
  192. package/dist/segmentation2d/index.d.ts +9 -0
  193. package/dist/segmentation2d/maskUv.d.ts +23 -0
  194. package/dist/segmentation2d/rasterize.d.ts +14 -0
  195. package/dist/segmentation2d/types.d.ts +46 -0
  196. package/dist/selectors-C5G1PMYL.js +195 -0
  197. package/dist/selectors-Du_PsVnW.cjs +1 -0
  198. package/dist/{session-CpkiK5YA.cjs → session-BBr0yN8h.cjs} +7 -7
  199. package/dist/{session-DLFN_VII.js → session-Cy0m7l7-.js} +76 -76
  200. package/dist/settings-DRR7-snV.cjs +1 -0
  201. package/dist/settings-aQk845NJ.js +73 -0
  202. package/dist/subjects/index.d.ts +2 -0
  203. package/dist/subjects/select.d.ts +62 -0
  204. package/dist/subjects/types.d.ts +55 -0
  205. package/dist/tracking-config/apply.d.ts +57 -0
  206. package/dist/tracking-config/index.d.ts +7 -0
  207. package/dist/tracking-config/resolve.d.ts +25 -0
  208. package/dist/tracking-config/storage.d.ts +8 -0
  209. package/dist/tracking-config/types.d.ts +106 -0
  210. package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
  211. package/dist/tracking.cjs +1 -1
  212. package/dist/tracking.js +1056 -383
  213. package/dist/types/compositor.d.ts +21 -0
  214. package/dist/types/holistic.d.ts +121 -0
  215. package/dist/types/index.d.ts +1 -0
  216. package/dist/types/model.d.ts +22 -2
  217. package/dist/types/nodes.d.ts +27 -2
  218. package/dist/types/segmentation.d.ts +19 -0
  219. package/dist/types/session.d.ts +41 -3
  220. package/dist/useFaceInfo-Blf7FCu3.js +303 -0
  221. package/dist/useFaceInfo-C5mO8NQY.cjs +1 -0
  222. package/dist/useXRCapabilities-B1R2ghy-.cjs +1 -0
  223. package/dist/useXRCapabilities-C68v__wB.js +30 -0
  224. package/dist/utils/fns.d.ts +6 -3
  225. package/dist/utils/integrity.d.ts +4 -1
  226. package/dist/utils/updateThrottle.d.ts +2 -0
  227. package/dist/utils/useStableUniforms.d.ts +18 -0
  228. package/docs/api/adaptive-quality.mdx +104 -0
  229. package/docs/api/asset-lifecycle.mdx +78 -0
  230. package/docs/api/camera-permission.mdx +142 -0
  231. package/docs/api/coordinate-spaces.mdx +165 -0
  232. package/docs/api/cross-camera.mdx +88 -0
  233. package/docs/api/diagnostics-calibration.mdx +97 -0
  234. package/docs/api/face-effects.mdx +6 -0
  235. package/docs/api/face-mesh.mdx +4 -2
  236. package/docs/api/gestures.mdx +173 -0
  237. package/docs/api/holistic-tracker.mdx +159 -0
  238. package/docs/api/iris-tracking.mdx +242 -0
  239. package/docs/api/multi-subject.mdx +95 -0
  240. package/docs/api/person-cutout.mdx +136 -0
  241. package/docs/api/product-ar.mdx +111 -0
  242. package/docs/api/product-details.mdx +78 -0
  243. package/docs/api/screen-space-coordinates.mdx +4 -1
  244. package/docs/api/segmentation-overlay.mdx +301 -0
  245. package/docs/api/session-lifecycle.mdx +136 -0
  246. package/docs/api/trackers.mdx +5 -0
  247. package/docs/api/tracking-config.mdx +108 -0
  248. package/docs/docs.json +23 -1
  249. package/docs/examples/lip-shaders.mdx +224 -0
  250. package/docs/guides/lip-effect-textures.mdx +292 -0
  251. package/docs/guides/lip-uv-template.png +0 -0
  252. package/docs/guides/lip-uv-template.svg +1 -0
  253. package/package.json +13 -1
  254. package/dist/FaceMeshRenderer-C5l6VLdO.cjs +0 -155
  255. package/dist/FaceMeshRenderer-wjAHrJzP.js +0 -1270
  256. package/dist/FaceRetouch-BkJzoA79.cjs +0 -134
  257. package/dist/FaceRetouch-DwbKQJAN.js +0 -551
  258. package/dist/contexts-Dr62It_K.cjs +0 -1
  259. package/dist/index-9dlAQAhy.js +0 -1462
  260. package/dist/index-BpEf2BBb.cjs +0 -1
  261. package/dist/index-CyUUurQT.cjs +0 -1
  262. package/dist/index-DCiMbxC3.cjs +0 -1
  263. package/dist/index-DpI-qo5X.cjs +0 -17
  264. package/dist/index-DyVF4vEW.js +0 -111
  265. package/dist/internal-Cq-TEQ5Y.cjs +0 -1
  266. package/dist/renderLayers-lDtL0_43.cjs +0 -1
  267. package/dist/renderLayers-zrK2pv5O.js +0 -13
  268. package/dist/renderPasses-BOoBSr8z.cjs +0 -21
  269. package/dist/renderPasses-BcquyVtu.js +0 -1500
  270. package/dist/selectors-B8H97CKA.js +0 -59
  271. package/dist/selectors-CZLKT2Iv.cjs +0 -1
  272. package/dist/useFaceInfo-BJ8-_MOs.cjs +0 -1
  273. package/dist/useFaceInfo-Dk426LTu.js +0 -62
  274. package/dist/useFaceResults-CtetsO9M.js +0 -19
  275. package/dist/useFaceResults-wBJF3zyp.cjs +0 -1
@@ -1,178 +1,70 @@
1
- import { jsx as d, jsxs as W, Fragment as ge } from "react/jsx-runtime";
2
- import { useThree as he, useFrame as se } from "@react-three/fiber";
3
- import { useMemo as x, forwardRef as at, useEffect as te, useState as Ae, useRef as P, useCallback as be, useLayoutEffect as ot } from "react";
1
+ import { jsx as d, jsxs as D, Fragment as Se } from "react/jsx-runtime";
2
+ import { useThree as me, useFrame as se } from "@react-three/fiber";
3
+ import { useMemo as x, forwardRef as qe, useEffect as te, useState as ve, useRef as R, useCallback as Be, useLayoutEffect as je } from "react";
4
4
  import * as B from "three";
5
- import { Vector2 as st, Raycaster as lt, Ray as ct, Vector3 as _, Quaternion as We, Euler as At } from "three";
6
- import { e as ht, a as Ne, u as Ie, S as dt, M as gt } from "./index-VJ0SJwmG.js";
7
- import { z as ce, m as ft } from "./FaceMeshRenderer-wjAHrJzP.js";
8
- import { W as O, U as ne, Z as Ue, X as Ve, s as ut, t as St, b as Xe, P as vt, L as mt, R as Ct, E as Et, Y as je, I as bt } from "./renderPasses-BcquyVtu.js";
9
- import { d as It, j as yt, k as Tt, f as Bt, c as wt, S as pt } from "./contexts-ByhzppYl.js";
10
- import { b as Qt, r as Mt } from "./index-ByoNj0QP.js";
11
- import { T as xt, s as kt } from "./index-DyVF4vEW.js";
12
- import { a as Lt } from "./useFaceInfo-Dk426LTu.js";
13
- import { g as Ft, e as Yt, u as Wt } from "./index-9dlAQAhy.js";
14
- import { useTexture as Xt } from "@react-three/drei";
15
- const ie = {
5
+ import { Quaternion as ke, Vector3 as ie, Euler as _e } from "three";
6
+ import { e as $e, a as Pe, u as Me, S as et, M as tt } from "./index-CHVbH0hz.js";
7
+ import { z as we, T as ue, o as nt } from "./FaceMeshRenderer-UuH5sTXG.js";
8
+ import { T as Ge, s as rt, t as it, b as xe, P as at, L as ot, R as lt, E as st, I as At } from "./renderPasses-NnKZVfBy.js";
9
+ import { d as ct, j as gt, k as dt, f as ft, c as ht, S as ut } from "./contexts-FzlnnMYD.js";
10
+ import { m as Oe, r as ze } from "./screenTransform-BenfCtZt.js";
11
+ import { b as vt, r as mt } from "./index-CsUdQ-pn.js";
12
+ import { b as St, s as Ct } from "./index-Dw6tj2Mi.js";
13
+ import { c as It, n as Et } from "./useFaceInfo-Blf7FCu3.js";
14
+ import { aj as bt, q as pt, u as Tt } from "./index-CnGox6Xr.js";
15
+ import { useTexture as yt } from "@react-three/drei";
16
+ const ae = {
16
17
  width: 720,
17
18
  height: 1280
18
- }, Dt = (t = [0.5, 0.5]) => [
19
+ }, Bt = (t = [0.5, 0.5]) => [
19
20
  t[0] * 2 - 1,
20
21
  t[1] * 2 - 1
21
- ], fe = ({
22
+ ], Ce = ({
22
23
  position: t = [0, 0],
23
24
  size: e = [1, 1]
24
25
  }) => {
25
- const n = e[0] / 2, r = e[1] / 2;
26
+ const n = e[0] / 2, i = e[1] / 2;
26
27
  return {
27
28
  left: t[0] - n,
28
29
  right: t[0] + n,
29
- top: t[1] + r,
30
- bottom: t[1] - r
30
+ top: t[1] + i,
31
+ bottom: t[1] - i
31
32
  };
32
- }, Pt = ({
33
+ }, Mt = ({
33
34
  position: t = [0, 0],
34
35
  size: e,
35
- canvasSize: n = ie
36
+ canvasSize: n = ae
36
37
  }) => {
37
- const r = n.width / 2 || ie.width / 2, a = n.height / 2 || ie.height / 2, i = e ?? [n.width, n.height];
38
- return fe({
39
- position: [t[0] / r, t[1] / a],
40
- size: [i[0] / r, i[1] / a]
38
+ const i = n.width / 2 || ae.width / 2, a = n.height / 2 || ae.height / 2, r = e ?? [n.width, n.height];
39
+ return Ce({
40
+ position: [t[0] / i, t[1] / a],
41
+ size: [r[0] / i, r[1] / a]
41
42
  });
42
- }, Ze = ({
43
+ }, He = ({
43
44
  coordinateSpace: t = "normalized",
44
- canvasSize: e = ie,
45
+ canvasSize: e = ae,
45
46
  position: n,
46
- size: r,
47
+ size: i,
47
48
  fallbackAnchors: a
48
- }) => a || (!n && !r ? fe({}) : t === "canvas" ? Pt({ position: n, size: r, canvasSize: e }) : fe({ position: n, size: r })), k = (t, e) => {
49
- if (!Number.isFinite(t) || t <= 0) throw new RangeError(`${e} must be positive`);
50
- return t;
51
- }, Rt = (t, e) => {
52
- const n = k(e.width, "root.width"), r = k(e.height, "root.height");
53
- return !Number.isFinite(t.width) || !Number.isFinite(t.height) || t.width <= 0 || t.height <= 0 ? 0 : Math.min(t.width / n, t.height / r);
54
- }, ye = (t, e, n, r) => e.width <= 0 || e.height <= 0 ? Object.assign(r, { x: 0, y: 0 }) : (k(n.width, "root.width"), k(n.height, "root.height"), r.x = (t.x / e.width - 0.5) * n.width, r.y = (0.5 - t.y / e.height) * n.height, r), Te = (t, e, n, r) => e.width <= 0 || e.height <= 0 ? Object.assign(r, { x: 0, y: 0 }) : (k(n.width, "root.width"), k(n.height, "root.height"), r.x = (t.x / n.width + 0.5) * e.width, r.y = (0.5 - t.y / n.height) * e.height, r), qe = ({
55
- parentSize: t,
56
- referencePixelsPerUnit: e = ne,
57
- root: n = O
58
- }) => Rt(t, n) * (ne / k(e, "referencePixelsPerUnit")), dr = (t, e) => t * qe(e), gr = (t, e) => {
59
- const n = qe(e);
60
- return n === 0 ? 0 : t / n;
61
- }, fr = ({
62
- point: t,
63
- parentSize: e,
64
- referencePixelsPerUnit: n = ne,
65
- root: r = O,
66
- target: a = { x: 0, y: 0 }
67
- }) => {
68
- if (e.width <= 0 || e.height <= 0) return Object.assign(a, { x: 0, y: 0 });
69
- const i = ne / k(n, "referencePixelsPerUnit");
70
- return a.x = t.x * (e.width / k(r.width, "root.width")) * i, a.y = t.y * (e.height / k(r.height, "root.height")) * i, a;
71
- }, ur = ({
72
- point: t,
73
- parentSize: e,
74
- referencePixelsPerUnit: n = ne,
75
- root: r = O,
76
- target: a = { x: 0, y: 0 }
77
- }) => {
78
- if (e.width <= 0 || e.height <= 0) return Object.assign(a, { x: 0, y: 0 });
79
- const i = ne / k(n, "referencePixelsPerUnit");
80
- return a.x = t.x / (e.width / k(r.width, "root.width") * i), a.y = t.y / (e.height / k(r.height, "root.height") * i), a;
81
- }, Sr = ({
82
- point: t,
83
- rect: e,
84
- root: n = O,
85
- target: r = { x: 0, y: 0 }
86
- }) => ye({ x: t.x - e.left, y: t.y - e.top }, e, n, r), vr = ({
87
- point: t,
88
- rect: e,
89
- root: n = O,
90
- target: r = { x: 0, y: 0 }
91
- }) => (Te(t, e, n, r), r.x += e.left, r.y += e.top, r), _e = ({
92
- point: t,
93
- root: e = O,
94
- target: n = { x: 0, y: 0 },
95
- viewportSize: r
96
- }) => ye(
97
- { x: t.x * r.width, y: t.y * r.height },
98
- r,
99
- e,
100
- n
101
- ), mr = ({
102
- point: t,
103
- root: e = O,
104
- target: n = { x: 0, y: 0 },
105
- viewportSize: r
106
- }) => r.width <= 0 || r.height <= 0 ? Object.assign(n, { x: 0, y: 0 }) : (Te(t, r, e, n), n.x /= r.width, n.y /= r.height, n), Cr = ({
107
- point: t,
108
- root: e = O,
109
- target: n = { x: 0, y: 0 },
110
- viewportSize: r
111
- }) => _e({
112
- point: { x: (t.x + 1) / 2, y: (1 - t.y) / 2 },
113
- viewportSize: r,
114
- root: e,
115
- target: n
116
- }), Er = ({
117
- layout: t,
118
- mirrored: e = !1,
119
- point: n,
120
- root: r = O,
121
- target: a = { x: 0, y: 0 }
122
- }) => {
123
- if (t.scale <= 0) return Object.assign(a, { x: 0, y: 0 });
124
- const i = t.offsetX + n.x * t.scale;
125
- return ye(
126
- {
127
- x: e ? t.destination.width - i : i,
128
- y: t.offsetY + n.y * t.scale
129
- },
130
- t.destination,
131
- r,
132
- a
133
- );
134
- }, br = ({
135
- layout: t,
136
- mirrored: e = !1,
137
- point: n,
138
- root: r = O,
139
- target: a = { x: 0, y: 0 }
140
- }) => {
141
- if (t.scale <= 0) return Object.assign(a, { x: 0, y: 0 });
142
- Te(n, t.destination, r, a);
143
- const i = e ? t.destination.width - a.x : a.x;
144
- return a.x = (i - t.offsetX) / t.scale, a.y = (a.y - t.offsetY) / t.scale, a;
145
- }, le = new _(), De = new st(), Pe = new lt(), Ir = ({
146
- camera: t,
147
- point: e,
148
- root: n = O,
149
- target: r = { x: 0, y: 0, depth: 0 },
150
- viewportSize: a
151
- }) => (k(n.width, "root.width"), k(n.height, "root.height"), le.set(e.x, e.y, e.z).project(t), r.x = le.x * n.width / 2, r.y = le.y * n.height / 2, r.depth = le.z, r), yr = ({
152
- camera: t,
153
- point: e,
154
- root: n = O,
155
- target: r = new ct(),
156
- viewportSize: a
157
- }) => (k(n.width, "root.width"), k(n.height, "root.height"), De.set(e.x * 2 / n.width, e.y * 2 / n.height), Pe.setFromCamera(De, t), r.copy(Pe.ray)), Ot = ({ children: t, depth: e = 0 }) => {
158
- const { camera: n, size: r } = he(), a = x(() => {
49
+ }) => a || (!n && !i ? Ce({}) : t === "canvas" ? Mt({ position: n, size: i, canvasSize: e }) : Ce({ position: n, size: i })), Qt = ({ children: t, depth: e = 0 }) => {
50
+ const { camera: n, size: i } = me(), a = x(() => {
159
51
  if (!n.isPerspectiveCamera)
160
52
  return { width: 10, height: 10 };
161
- const i = n, o = Math.abs(i.position.z - e), s = i.fov * Math.PI / 180, l = 2 * Math.tan(s / 2) * o;
162
- return { width: l * (r.width / r.height), height: l };
163
- }, [n, r, e]);
164
- return /* @__PURE__ */ d(ht.Provider, { value: a, children: /* @__PURE__ */ d("group", { position: [0, 0, e], children: t }) });
165
- }, $e = at(
166
- ({ texture: t, name: e, overlay: n, opacity: r, position: a, rotation: i, scale: o, visible: s, renderOrder: l }, c) => /* @__PURE__ */ W(
53
+ const r = n, o = Math.abs(r.position.z - e), l = r.fov * Math.PI / 180, s = 2 * Math.tan(l / 2) * o;
54
+ return { width: s * (i.width / i.height), height: s };
55
+ }, [n, i, e]);
56
+ return /* @__PURE__ */ d($e.Provider, { value: a, children: /* @__PURE__ */ d("group", { position: [0, 0, e], children: t }) });
57
+ }, Je = qe(
58
+ ({ texture: t, name: e, overlay: n, opacity: i, position: a, rotation: r, scale: o, visible: l, renderOrder: s }, A) => /* @__PURE__ */ D(
167
59
  "mesh",
168
60
  {
169
- ref: c,
61
+ ref: A,
170
62
  name: e,
171
63
  position: a,
172
- rotation: i,
64
+ rotation: r,
173
65
  scale: o,
174
- visible: s,
175
- renderOrder: l,
66
+ visible: l,
67
+ renderOrder: s,
176
68
  children: [
177
69
  /* @__PURE__ */ d("planeGeometry", { args: [1, 1] }),
178
70
  /* @__PURE__ */ d(
@@ -180,7 +72,7 @@ const ie = {
180
72
  {
181
73
  map: t,
182
74
  transparent: !0,
183
- opacity: r,
75
+ opacity: i,
184
76
  depthTest: !n,
185
77
  depthWrite: !n
186
78
  }
@@ -189,8 +81,8 @@ const ie = {
189
81
  }
190
82
  )
191
83
  );
192
- $e.displayName = "TextLabelMesh";
193
- const Gt = {
84
+ Je.displayName = "TextLabelMesh";
85
+ const kt = {
194
86
  color: "#ffffff",
195
87
  strokeWidth: 0,
196
88
  strokeOpacity: 1,
@@ -224,7 +116,7 @@ const Gt = {
224
116
  strikethrough: !1,
225
117
  bendPreset: "arc",
226
118
  bendStrength: 0
227
- }, ue = (t) => {
119
+ }, Ie = (t) => {
228
120
  te(
229
121
  () => () => {
230
122
  t == null || t.dispose();
@@ -232,211 +124,211 @@ const Gt = {
232
124
  [t]
233
125
  );
234
126
  };
235
- function Ht(t, e, n) {
127
+ function wt(t, e, n) {
236
128
  return n === "left" ? e : n === "right" ? t - e : t / 2;
237
129
  }
238
- function Jt(t, e, n, r, a) {
239
- return a === "top" ? e + n / 2 : a === "bottom" ? t - e - r + n / 2 : t / 2 - (r - n) / 2;
130
+ function xt(t, e, n, i, a) {
131
+ return a === "top" ? e + n / 2 : a === "bottom" ? t - e - i + n / 2 : t / 2 - (i - n) / 2;
240
132
  }
241
- function zt(t, e, n, r) {
242
- return r === "full" || n === "left" ? 0 : n === "right" ? t - e : (t - e) / 2;
133
+ function Lt(t, e, n, i) {
134
+ return i === "full" || n === "left" ? 0 : n === "right" ? t - e : (t - e) / 2;
243
135
  }
244
- function et(t, e, n, r) {
245
- return `${t} ${e} ${n}px ${r}`;
136
+ function Ke(t, e, n, i) {
137
+ return `${t} ${e} ${n}px ${i}`;
246
138
  }
247
- function oe(t, e) {
139
+ function le(t, e) {
248
140
  const n = Math.max(0, Math.min(e, 1));
249
141
  return t * n * 0.08;
250
142
  }
251
- function tt(t, e) {
143
+ function Ve(t, e) {
252
144
  const n = Math.max(0, Math.min(e, 1));
253
145
  return t * (1.2 + n * 0.6);
254
146
  }
255
- function nt(t, e) {
147
+ function Ne(t, e) {
256
148
  "letterSpacing" in t && (t.letterSpacing = `${e}px`);
257
149
  }
258
- function rt(t) {
150
+ function Ue(t) {
259
151
  "letterSpacing" in t && (t.letterSpacing = "0px");
260
152
  }
261
- function re(t, e, n) {
262
- nt(t, n);
263
- const r = t.measureText(e).width;
264
- return rt(t), r;
153
+ function ne(t, e, n) {
154
+ Ne(t, n);
155
+ const i = t.measureText(e).width;
156
+ return Ue(t), i;
265
157
  }
266
- function Se(t, e, n, r) {
267
- return Math.max(1, Math.floor((t - e * 2) / tt(n, r)));
158
+ function Ee(t, e, n, i) {
159
+ return Math.max(1, Math.floor((t - e * 2) / Ve(n, i)));
268
160
  }
269
- function Kt(t, e, n, r, a) {
270
- return e.length <= r && e.every((i) => re(t, i, a) <= n);
161
+ function Ft(t, e, n, i, a) {
162
+ return e.length <= i && e.every((r) => ne(t, r, a) <= n);
271
163
  }
272
- function ve(t, e, n, r, a, i, o, s) {
273
- t.font = et(r, a, i, o);
274
- const l = e.split(" "), c = [];
275
- let A = "";
276
- for (const f of l) {
277
- const g = A ? `${A} ${f}` : f;
278
- re(t, g, s) > n && A ? (c.push(A), A = f) : A = g;
164
+ function be(t, e, n, i, a, r, o, l) {
165
+ t.font = Ke(i, a, r, o);
166
+ const s = e.split(" "), A = [];
167
+ let c = "";
168
+ for (const h of s) {
169
+ const f = c ? `${c} ${h}` : h;
170
+ ne(t, f, l) > n && c ? (A.push(c), c = h) : c = f;
279
171
  }
280
- return A && c.push(A), c;
172
+ return c && A.push(c), A;
281
173
  }
282
- function Re(t, e, n, r, a, i, o, s) {
283
- const c = e.split(/\r?\n/).flatMap((A) => A.trim().length === 0 ? [""] : ve(
174
+ function Le(t, e, n, i, a, r, o, l) {
175
+ const A = e.split(/\r?\n/).flatMap((c) => c.trim().length === 0 ? [""] : be(
284
176
  t,
285
- A,
177
+ c,
286
178
  n,
287
- r,
288
- a,
289
179
  i,
180
+ a,
181
+ r,
290
182
  o,
291
- s
183
+ l
292
184
  ));
293
- return c.length > 0 ? c : [e];
185
+ return A.length > 0 ? A : [e];
294
186
  }
295
- function it(t, e, n, r, a) {
296
- const i = r ? "..." : "";
187
+ function Ze(t, e, n, i, a) {
188
+ const r = i ? "..." : "";
297
189
  let o = e.trimEnd();
298
- for (; o.length > 0 && re(t, `${o}${i}`, a) > n; )
190
+ for (; o.length > 0 && ne(t, `${o}${r}`, a) > n; )
299
191
  o = o.slice(0, -1).trimEnd();
300
- return `${o}${i}`;
192
+ return `${o}${r}`;
301
193
  }
302
- function me(t, e, n, r, a) {
303
- return e.map((i, o) => {
304
- if (re(t, i, a) <= n) return i;
305
- const s = o === e.length - 1;
306
- return it(
194
+ function pe(t, e, n, i, a) {
195
+ return e.map((r, o) => {
196
+ if (ne(t, r, a) <= n) return r;
197
+ const l = o === e.length - 1;
198
+ return Ze(
307
199
  t,
308
- i,
200
+ r,
309
201
  n,
310
- r === "ellipsis" && s,
202
+ i === "ellipsis" && l,
311
203
  a
312
204
  );
313
205
  });
314
206
  }
315
- function Oe(t, e, n, r, a, i) {
207
+ function Fe(t, e, n, i, a, r) {
316
208
  if (e.length <= n)
317
- return me(
209
+ return pe(
318
210
  t,
319
211
  e,
320
- r,
212
+ i,
321
213
  a ? "ellipsis" : "clip",
322
- i
214
+ r
323
215
  );
324
- const o = e.slice(0, n), s = o[n - 1];
325
- return o[n - 1] = it(
216
+ const o = e.slice(0, n), l = o[n - 1];
217
+ return o[n - 1] = Ze(
326
218
  t,
327
- s,
328
- r,
219
+ l,
220
+ i,
329
221
  a,
330
- i
331
- ), me(
222
+ r
223
+ ), pe(
332
224
  t,
333
225
  o,
334
- r,
226
+ i,
335
227
  a ? "ellipsis" : "clip",
336
- i
228
+ r
337
229
  );
338
230
  }
339
- function Nt(t) {
231
+ function Wt(t) {
340
232
  const {
341
233
  ctx: e,
342
234
  text: n,
343
- explicitLines: r,
235
+ explicitLines: i,
344
236
  maxWidth: a,
345
- maxHeight: i,
237
+ maxHeight: r,
346
238
  padding: o,
347
- fontStyle: s,
348
- fontWeight: l,
349
- fontSize: c,
350
- fontFamily: A,
351
- letterSpacing: f,
352
- lineSpacing: g,
353
- overflow: S,
239
+ fontStyle: l,
240
+ fontWeight: s,
241
+ fontSize: A,
242
+ fontFamily: c,
243
+ letterSpacing: h,
244
+ lineSpacing: f,
245
+ overflow: u,
354
246
  resizeToFit: v,
355
- minFontSize: m
247
+ minFontSize: S
356
248
  } = t;
357
- let u = c, C = oe(u, f), b = r ?? Re(
249
+ let m = A, C = le(m, h), E = i ?? Le(
358
250
  e,
359
251
  n,
360
252
  a,
361
- s,
362
253
  l,
363
- u,
364
- A,
254
+ s,
255
+ m,
256
+ c,
365
257
  C
366
- ), E = Se(i, o, u, g);
367
- const p = v === !0 || S === "shrink";
368
- for (; p && !Kt(e, b, a, E, C) && u > m && (u = Math.max(m, u - 4), C = oe(u, f), b = r ?? Re(
258
+ ), I = Ee(r, o, m, f);
259
+ const M = v === !0 || u === "shrink";
260
+ for (; M && !Ft(e, E, a, I, C) && m > S && (m = Math.max(S, m - 4), C = le(m, h), E = i ?? Le(
369
261
  e,
370
262
  n,
371
263
  a,
372
- s,
373
264
  l,
374
- u,
375
- A,
265
+ s,
266
+ m,
267
+ c,
376
268
  C
377
- ), E = Se(i, o, u, g), u !== m); )
269
+ ), I = Ee(r, o, m, f), m !== S); )
378
270
  ;
379
- return S === "ellipsis" ? b = Oe(
271
+ return u === "ellipsis" ? E = Fe(
380
272
  e,
381
- b,
382
273
  E,
274
+ I,
383
275
  a,
384
276
  !0,
385
277
  C
386
- ) : S === "clamp" || S === "shrink" ? b = Oe(
278
+ ) : u === "clamp" || u === "shrink" ? E = Fe(
387
279
  e,
388
- b,
389
280
  E,
281
+ I,
390
282
  a,
391
283
  !1,
392
284
  C
393
- ) : S !== "clip" && (b = me(e, b, a, void 0, C)), { fontSize: u, lines: b };
285
+ ) : u !== "clip" && (E = pe(e, E, a, void 0, C)), { fontSize: m, lines: E };
394
286
  }
395
- function Ut(t) {
287
+ function Yt(t) {
396
288
  const {
397
289
  ctx: e,
398
290
  text: n,
399
- maxWidth: r,
291
+ maxWidth: i,
400
292
  maxHeight: a,
401
- padding: i,
293
+ padding: r,
402
294
  fontStyle: o,
403
- fontWeight: s,
404
- fontSize: l,
405
- fontFamily: c,
406
- letterSpacing: A,
407
- lineSpacing: f
295
+ fontWeight: l,
296
+ fontSize: s,
297
+ fontFamily: A,
298
+ letterSpacing: c,
299
+ lineSpacing: h
408
300
  } = t;
409
- let g = l, S = ve(
301
+ let f = s, u = be(
410
302
  e,
411
303
  n,
412
- r,
304
+ i,
413
305
  o,
414
- s,
415
- g,
416
- c,
417
- oe(g, A)
306
+ l,
307
+ f,
308
+ A,
309
+ le(f, c)
418
310
  );
419
- const v = Se(a, i, g, f);
420
- return S.length > v && (g = Math.max(12, Math.round(g * 0.75)), S = ve(
311
+ const v = Ee(a, r, f, h);
312
+ return u.length > v && (f = Math.max(12, Math.round(f * 0.75)), u = be(
421
313
  e,
422
314
  n,
423
- r,
315
+ i,
424
316
  o,
425
- s,
426
- g,
427
- c,
428
- oe(g, A)
429
- )), { fontSize: g, lines: S };
317
+ l,
318
+ f,
319
+ A,
320
+ le(f, c)
321
+ )), { fontSize: f, lines: u };
430
322
  }
431
- function Ce(t, e) {
323
+ function Te(t, e) {
432
324
  return typeof OffscreenCanvas < "u" ? new OffscreenCanvas(t, e) : (() => {
433
325
  const n = document.createElement("canvas");
434
326
  return n.width = t, n.height = e, n;
435
327
  })();
436
328
  }
437
- function Vt(t, e) {
329
+ function Dt(t, e) {
438
330
  const n = e.width - e.padding * 2, a = Array.isArray(e.lines) || e.text.includes(`
439
- `) || e.overflow !== void 0 || e.resizeToFit !== void 0 ? Nt({
331
+ `) || e.overflow !== void 0 || e.resizeToFit !== void 0 ? Wt({
440
332
  ctx: t,
441
333
  text: e.text,
442
334
  explicitLines: e.lines,
@@ -452,7 +344,7 @@ function Vt(t, e) {
452
344
  minFontSize: e.minFontSize,
453
345
  letterSpacing: e.letterSpacing,
454
346
  lineSpacing: e.lineSpacing
455
- }) : Ut({
347
+ }) : Yt({
456
348
  ctx: t,
457
349
  text: e.text,
458
350
  maxWidth: n,
@@ -464,50 +356,50 @@ function Vt(t, e) {
464
356
  fontFamily: e.fontFamily,
465
357
  letterSpacing: e.letterSpacing,
466
358
  lineSpacing: e.lineSpacing
467
- }), i = a.fontSize, o = a.lines;
468
- t.font = et(e.fontStyle, e.fontWeight, i, e.fontFamily);
469
- const s = oe(i, e.letterSpacing), l = tt(i, e.lineSpacing), c = Math.max(
470
- i,
471
- i + (o.length - 1) * l
472
- ), A = Jt(
359
+ }), r = a.fontSize, o = a.lines;
360
+ t.font = Ke(e.fontStyle, e.fontWeight, r, e.fontFamily);
361
+ const l = le(r, e.letterSpacing), s = Ve(r, e.lineSpacing), A = Math.max(
362
+ r,
363
+ r + (o.length - 1) * s
364
+ ), c = xt(
473
365
  e.height,
474
366
  e.padding,
475
- i,
476
- c,
367
+ r,
368
+ A,
477
369
  e.verticalAlign
478
- ), f = o.map(
479
- (g) => re(t, g, s)
370
+ ), h = o.map(
371
+ (f) => ne(t, f, l)
480
372
  );
481
373
  return {
482
- fontSize: i,
374
+ fontSize: r,
483
375
  resolvedLines: o,
484
- letterSpacingPx: s,
485
- lineHeight: l,
486
- startY: A,
376
+ letterSpacingPx: l,
377
+ lineHeight: s,
378
+ startY: c,
487
379
  textBlockWidth: Math.min(
488
380
  e.width,
489
- Math.max(0, Math.max(...f, 0)) + e.padding * 2
381
+ Math.max(0, Math.max(...h, 0)) + e.padding * 2
490
382
  ),
491
- textBlockHeight: Math.min(e.height, c + e.padding * 2),
492
- textX: Ht(e.width, e.padding, e.textAlign)
383
+ textBlockHeight: Math.min(e.height, A + e.padding * 2),
384
+ textX: wt(e.width, e.padding, e.textAlign)
493
385
  };
494
386
  }
495
- function jt(t, e, n, r, a, i) {
496
- t.beginPath(), t.moveTo(e + i, n), t.lineTo(e + r - i, n), t.quadraticCurveTo(e + r, n, e + r, n + i), t.lineTo(e + r, n + a - i), t.quadraticCurveTo(e + r, n + a, e + r - i, n + a), t.lineTo(e + i, n + a), t.quadraticCurveTo(e, n + a, e, n + a - i), t.lineTo(e, n + i), t.quadraticCurveTo(e, n, e + i, n), t.closePath();
387
+ function Xt(t, e, n, i, a, r) {
388
+ t.beginPath(), t.moveTo(e + r, n), t.lineTo(e + i - r, n), t.quadraticCurveTo(e + i, n, e + i, n + r), t.lineTo(e + i, n + a - r), t.quadraticCurveTo(e + i, n + a, e + i - r, n + a), t.lineTo(e + r, n + a), t.quadraticCurveTo(e, n + a, e, n + a - r), t.lineTo(e, n + r), t.quadraticCurveTo(e, n, e + r, n), t.closePath();
497
389
  }
498
- function Ge(t, e, n) {
390
+ function We(t, e, n) {
499
391
  return typeof t != "number" || Number.isNaN(t) || t <= 0 ? e : Math.min(t, n);
500
392
  }
501
- function Zt(t, e) {
502
- const n = zt(
393
+ function Rt(t, e) {
394
+ const n = Lt(
503
395
  e.canvasWidth,
504
396
  e.panelWidth,
505
397
  e.textAlign,
506
398
  e.bgFit
507
- ), r = (e.canvasHeight - e.panelHeight) / 2, a = Math.min(e.borderRadius, Math.min(e.panelWidth, e.panelHeight) / 2);
508
- jt(t, n, r, e.panelWidth, e.panelHeight, a), qt(t, {
399
+ ), i = (e.canvasHeight - e.panelHeight) / 2, a = Math.min(e.borderRadius, Math.min(e.panelWidth, e.panelHeight) / 2);
400
+ Xt(t, n, i, e.panelWidth, e.panelHeight, a), Pt(t, {
509
401
  panelX: n,
510
- panelY: r,
402
+ panelY: i,
511
403
  panelWidth: e.panelWidth,
512
404
  panelHeight: e.panelHeight,
513
405
  bgColor: e.bgColor,
@@ -520,7 +412,7 @@ function Zt(t, e) {
520
412
  bgTextureFlipY: e.bgTextureFlipY
521
413
  }), e.borderColor && e.borderWidth > 0 && (t.lineWidth = e.borderWidth, t.strokeStyle = e.borderColor, t.stroke());
522
414
  }
523
- function qt(t, e) {
415
+ function Pt(t, e) {
524
416
  if (t.save(), t.globalAlpha = Math.max(0, Math.min(e.bgOpacity, 1)), e.bgFillMode === "gradient" && e.bgGradientStops && e.bgGradientStops.length > 1) {
525
417
  const n = t.createLinearGradient(
526
418
  e.panelX,
@@ -528,13 +420,13 @@ function qt(t, e) {
528
420
  e.panelX + e.panelWidth,
529
421
  e.panelY + e.panelHeight
530
422
  );
531
- [...e.bgGradientStops].sort((r, a) => r.position - a.position).forEach(
532
- (r) => n.addColorStop(Math.max(0, Math.min(r.position, 1)), r.color)
423
+ [...e.bgGradientStops].sort((i, a) => i.position - a.position).forEach(
424
+ (i) => n.addColorStop(Math.max(0, Math.min(i.position, 1)), i.color)
533
425
  ), t.fillStyle = n, t.fill(), t.restore();
534
426
  return;
535
427
  }
536
428
  if (e.bgTextureImage) {
537
- t.clip(), _t(t, {
429
+ t.clip(), Gt(t, {
538
430
  image: e.bgTextureImage,
539
431
  x: e.panelX,
540
432
  y: e.panelY,
@@ -548,17 +440,17 @@ function qt(t, e) {
548
440
  }
549
441
  t.fillStyle = e.bgColor, t.fill(), t.restore();
550
442
  }
551
- function _t(t, e) {
552
- const { image: n, x: r, y: a, width: i, height: o, fit: s, flipX: l, flipY: c } = e, A = "naturalWidth" in n ? n.naturalWidth : "videoWidth" in n ? n.videoWidth : n.width, f = "naturalHeight" in n ? n.naturalHeight : "videoHeight" in n ? n.videoHeight : n.height;
553
- let g = i, S = o, v = r, m = a;
554
- if (s !== "stretch" && A > 0 && f > 0) {
555
- const u = s === "cover" ? Math.max(i / A, o / f) : Math.min(i / A, o / f);
556
- g = A * u, S = f * u, v = r + (i - g) / 2, m = a + (o - S) / 2;
443
+ function Gt(t, e) {
444
+ const { image: n, x: i, y: a, width: r, height: o, fit: l, flipX: s, flipY: A } = e, c = "naturalWidth" in n ? n.naturalWidth : "videoWidth" in n ? n.videoWidth : n.width, h = "naturalHeight" in n ? n.naturalHeight : "videoHeight" in n ? n.videoHeight : n.height;
445
+ let f = r, u = o, v = i, S = a;
446
+ if (l !== "stretch" && c > 0 && h > 0) {
447
+ const m = l === "cover" ? Math.max(r / c, o / h) : Math.min(r / c, o / h);
448
+ f = c * m, u = h * m, v = i + (r - f) / 2, S = a + (o - u) / 2;
557
449
  }
558
- t.save(), (l || c) && (t.translate(l ? r + i : 0, c ? a + o : 0), t.scale(l ? -1 : 1, c ? -1 : 1), v = l ? -(v - r) - g + r : v, m = c ? -(m - a) - S + a : m), t.drawImage(n, v, m, g, S), t.restore();
450
+ t.save(), (s || A) && (t.translate(s ? i + r : 0, A ? a + o : 0), t.scale(s ? -1 : 1, A ? -1 : 1), v = s ? -(v - i) - f + i : v, S = A ? -(S - a) - u + a : S), t.drawImage(n, v, S, f, u), t.restore();
559
451
  }
560
- function $t(t, e, n, r, a, i) {
561
- const o = a / 72, s = Math.abs(o), l = 1 - Math.min(1, Math.abs(e)), c = Math.min(1, Math.abs(e)), A = r <= 1 ? 0.5 : n / (r - 1), f = Math.sin(A * Math.PI * 2 - Math.PI / 2), g = Math.sin(A * Math.PI * 2.7 - Math.PI / 2) * (0.65 + A * 0.35), S = a * e * e, v = 2 * a * e / i, m = {
452
+ function Ot(t, e, n, i, a, r) {
453
+ const o = a / 72, l = Math.abs(o), s = 1 - Math.min(1, Math.abs(e)), A = Math.min(1, Math.abs(e)), c = i <= 1 ? 0.5 : n / (i - 1), h = Math.sin(c * Math.PI * 2 - Math.PI / 2), f = Math.sin(c * Math.PI * 2.7 - Math.PI / 2) * (0.65 + c * 0.35), u = a * e * e, v = 2 * a * e / r, S = {
562
454
  xOffset: 0,
563
455
  yOffset: 0,
564
456
  rotation: 0,
@@ -567,118 +459,118 @@ function $t(t, e, n, r, a, i) {
567
459
  };
568
460
  switch (t) {
569
461
  case "arc":
570
- return { ...m, yOffset: S, rotation: Math.atan(v) };
462
+ return { ...S, yOffset: u, rotation: Math.atan(v) };
571
463
  case "arc-lower":
572
464
  return {
573
- ...m,
574
- yOffset: S * 0.55,
465
+ ...S,
466
+ yOffset: u * 0.55,
575
467
  scaleY: Math.max(0.2, 1 + o * e * e * 0.45)
576
468
  };
577
469
  case "arc-upper":
578
470
  return {
579
- ...m,
580
- yOffset: -S * 0.55,
471
+ ...S,
472
+ yOffset: -u * 0.55,
581
473
  scaleY: Math.max(0.2, 1 - o * e * e * 0.45)
582
474
  };
583
475
  case "arch":
584
- return { ...m, yOffset: S };
476
+ return { ...S, yOffset: u };
585
477
  case "bulge":
586
- return { ...m, scaleY: Math.max(0.2, 1 + o * l * 0.75) };
478
+ return { ...S, scaleY: Math.max(0.2, 1 + o * s * 0.75) };
587
479
  case "shell-lower":
588
480
  return {
589
- ...m,
590
- yOffset: a * 0.45 * A * l,
591
- scaleY: Math.max(0.2, 1 + o * A * l)
481
+ ...S,
482
+ yOffset: a * 0.45 * c * s,
483
+ scaleY: Math.max(0.2, 1 + o * c * s)
592
484
  };
593
485
  case "shell-upper":
594
486
  return {
595
- ...m,
596
- yOffset: -a * 0.45 * (1 - A) * l,
597
- scaleY: Math.max(0.2, 1 + o * (1 - A) * l)
487
+ ...S,
488
+ yOffset: -a * 0.45 * (1 - c) * s,
489
+ scaleY: Math.max(0.2, 1 + o * (1 - c) * s)
598
490
  };
599
491
  case "flag":
600
492
  return {
601
- ...m,
602
- yOffset: a * 0.65 * g,
493
+ ...S,
494
+ yOffset: a * 0.65 * f,
603
495
  rotation: Math.atan(
604
- a / Math.max(i, 1) * Math.cos(A * Math.PI * 2.7) * 1.6
496
+ a / Math.max(r, 1) * Math.cos(c * Math.PI * 2.7) * 1.6
605
497
  )
606
498
  };
607
499
  case "wave":
608
500
  return {
609
- ...m,
610
- yOffset: a * 0.6 * f,
611
- rotation: Math.atan(a / Math.max(i, 1) * Math.cos(A * Math.PI * 2) * 1.4)
501
+ ...S,
502
+ yOffset: a * 0.6 * h,
503
+ rotation: Math.atan(a / Math.max(r, 1) * Math.cos(c * Math.PI * 2) * 1.4)
612
504
  };
613
505
  case "fish":
614
506
  return {
615
- ...m,
616
- scaleX: Math.max(0.25, 1 - s * c * 0.55),
617
- scaleY: Math.max(0.2, 1 + o * l)
507
+ ...S,
508
+ scaleX: Math.max(0.25, 1 - l * A * 0.55),
509
+ scaleY: Math.max(0.2, 1 + o * s)
618
510
  };
619
511
  case "rise":
620
- return { ...m, yOffset: a * e };
512
+ return { ...S, yOffset: a * e };
621
513
  case "fisheye":
622
514
  return {
623
- ...m,
624
- yOffset: a * 0.18 * e * l,
625
- scaleX: Math.max(0.25, 1 + o * l * 0.7),
626
- scaleY: Math.max(0.2, 1 + o * l * 0.7)
515
+ ...S,
516
+ yOffset: a * 0.18 * e * s,
517
+ scaleX: Math.max(0.25, 1 + o * s * 0.7),
518
+ scaleY: Math.max(0.2, 1 + o * s * 0.7)
627
519
  };
628
520
  case "inflate":
629
521
  return {
630
- ...m,
631
- scaleX: Math.max(0.25, 1 + o * l * 0.6),
632
- scaleY: Math.max(0.2, 1 + o * l * 0.6)
522
+ ...S,
523
+ scaleX: Math.max(0.25, 1 + o * s * 0.6),
524
+ scaleY: Math.max(0.2, 1 + o * s * 0.6)
633
525
  };
634
526
  case "squeeze":
635
- return { ...m, scaleY: Math.max(0.2, 1 - o * l * 0.8) };
527
+ return { ...S, scaleY: Math.max(0.2, 1 - o * s * 0.8) };
636
528
  case "twist":
637
529
  return {
638
- ...m,
530
+ ...S,
639
531
  yOffset: a * e,
640
532
  rotation: o * e * 0.45,
641
533
  scaleY: Math.max(0.2, 1 + o * e * 0.25)
642
534
  };
643
535
  default:
644
- return m;
536
+ return S;
645
537
  }
646
538
  }
647
- function $(t, e, n, r, a, i, o = "arc", s = 0) {
648
- if (s !== 0) {
649
- en(t, e, n, r, a, i, o, s);
539
+ function ee(t, e, n, i, a, r, o = "arc", l = 0) {
540
+ if (l !== 0) {
541
+ zt(t, e, n, i, a, r, o, l);
650
542
  return;
651
543
  }
652
- nt(t, a), i === "fill" ? t.fillText(e, n, r) : t.strokeText(e, n, r), rt(t);
544
+ Ne(t, a), r === "fill" ? t.fillText(e, n, i) : t.strokeText(e, n, i), Ue(t);
653
545
  }
654
- function en(t, e, n, r, a, i, o, s) {
655
- const l = Array.from(e);
656
- if (l.length === 0) return;
657
- const c = l.map((C) => t.measureText(C).width), A = c.reduce((C, b) => C + b, 0) + a * Math.max(0, l.length - 1), f = t.textAlign, g = f === "right" ? n - A : f === "center" ? n - A / 2 : n, v = Math.max(-100, Math.min(s, 100)) / 100 * 72, m = Math.max(A / 2, 1);
658
- let u = g;
659
- for (let C = 0; C < l.length; C++) {
660
- const b = l[C], E = c[C], p = u + E / 2, w = (p - g - A / 2) / m, y = $t(
546
+ function zt(t, e, n, i, a, r, o, l) {
547
+ const s = Array.from(e);
548
+ if (s.length === 0) return;
549
+ const A = s.map((C) => t.measureText(C).width), c = A.reduce((C, E) => C + E, 0) + a * Math.max(0, s.length - 1), h = t.textAlign, f = h === "right" ? n - c : h === "center" ? n - c / 2 : n, v = Math.max(-100, Math.min(l, 100)) / 100 * 72, S = Math.max(c / 2, 1);
550
+ let m = f;
551
+ for (let C = 0; C < s.length; C++) {
552
+ const E = s[C], I = A[C], M = m + I / 2, b = (M - f - c / 2) / S, y = Ot(
661
553
  o,
662
- w,
554
+ b,
663
555
  C,
664
- l.length,
556
+ s.length,
665
557
  v,
666
- m
558
+ S
667
559
  );
668
- t.save(), t.translate(p + y.xOffset, r + y.yOffset), t.rotate(y.rotation), t.scale(y.scaleX, y.scaleY), t.textAlign = "center", i === "fill" ? t.fillText(b, 0, 0) : t.strokeText(b, 0, 0), t.restore(), u += E + a;
560
+ t.save(), t.translate(M + y.xOffset, i + y.yOffset), t.rotate(y.rotation), t.scale(y.scaleX, y.scaleY), t.textAlign = "center", r === "fill" ? t.fillText(E, 0, 0) : t.strokeText(E, 0, 0), t.restore(), m += I + a;
669
561
  }
670
562
  }
671
- function He(t, e, n, r, a, i, o, s, l) {
672
- const c = re(t, e, s), A = a === "center" ? n - c / 2 : a === "right" ? n - c : n, f = l === "underline" ? o * 0.42 : -o * 0.08, g = r + f;
673
- t.save(), t.strokeStyle = i, t.lineWidth = Math.max(2, o * 0.06), t.lineCap = "round", t.beginPath(), t.moveTo(A, g), t.lineTo(A + c, g), t.stroke(), t.restore();
563
+ function Ye(t, e, n, i, a, r, o, l, s) {
564
+ const A = ne(t, e, l), c = a === "center" ? n - A / 2 : a === "right" ? n - A : n, h = s === "underline" ? o * 0.42 : -o * 0.08, f = i + h;
565
+ t.save(), t.strokeStyle = r, t.lineWidth = Math.max(2, o * 0.06), t.lineCap = "round", t.beginPath(), t.moveTo(c, f), t.lineTo(c + A, f), t.stroke(), t.restore();
674
566
  }
675
- function tn(t, e) {
567
+ function Ht(t, e) {
676
568
  for (let n = 0; n < e.lines.length; n++) {
677
- const r = e.lines[n], a = e.startY + n * e.lineHeight;
678
- for (const i of e.shadowLayers)
679
- t.save(), t.shadowColor = i.color, t.shadowBlur = i.blur, t.shadowOffsetX = i.offsetX ?? 0, t.shadowOffsetY = i.offsetY ?? 0, t.globalAlpha = i.opacity ?? 1, t.fillStyle = e.color, $(
569
+ const i = e.lines[n], a = e.startY + n * e.lineHeight;
570
+ for (const r of e.shadowLayers)
571
+ t.save(), t.shadowColor = r.color, t.shadowBlur = r.blur, t.shadowOffsetX = r.offsetX ?? 0, t.shadowOffsetY = r.offsetY ?? 0, t.globalAlpha = r.opacity ?? 1, t.fillStyle = e.color, ee(
680
572
  t,
681
- r,
573
+ i,
682
574
  e.textX,
683
575
  a,
684
576
  e.letterSpacingPx,
@@ -686,10 +578,10 @@ function tn(t, e) {
686
578
  e.bendPreset,
687
579
  e.bendStrength
688
580
  ), t.restore();
689
- for (const i of e.strokeLayers)
690
- t.save(), t.lineJoin = "round", t.miterLimit = 2, t.lineWidth = i.width, t.strokeStyle = i.color, t.globalAlpha = i.opacity ?? 1, $(
581
+ for (const r of e.strokeLayers)
582
+ t.save(), t.lineJoin = "round", t.miterLimit = 2, t.lineWidth = r.width, t.strokeStyle = r.color, t.globalAlpha = r.opacity ?? 1, ee(
691
583
  t,
692
- r,
584
+ i,
693
585
  e.textX,
694
586
  a,
695
587
  e.letterSpacingPx,
@@ -697,18 +589,18 @@ function tn(t, e) {
697
589
  e.bendPreset,
698
590
  e.bendStrength
699
591
  ), t.restore();
700
- t.save(), t.fillStyle = e.color, t.globalAlpha = 1, $(
592
+ t.save(), t.fillStyle = e.color, t.globalAlpha = 1, ee(
701
593
  t,
702
- r,
594
+ i,
703
595
  e.textX,
704
596
  a,
705
597
  e.letterSpacingPx,
706
598
  "fill",
707
599
  e.bendPreset,
708
600
  e.bendStrength
709
- ), t.restore(), e.underline && He(
601
+ ), t.restore(), e.underline && Ye(
710
602
  t,
711
- r,
603
+ i,
712
604
  e.textX,
713
605
  a,
714
606
  e.textAlign,
@@ -716,9 +608,9 @@ function tn(t, e) {
716
608
  e.fontSize,
717
609
  e.letterSpacingPx,
718
610
  "underline"
719
- ), e.strikethrough && He(
611
+ ), e.strikethrough && Ye(
720
612
  t,
721
- r,
613
+ i,
722
614
  e.textX,
723
615
  a,
724
616
  e.textAlign,
@@ -729,26 +621,26 @@ function tn(t, e) {
729
621
  );
730
622
  }
731
623
  }
732
- function nn(t, e) {
624
+ function Jt(t, e) {
733
625
  const n = Math.max(0, Math.min(e.intensity, 1));
734
626
  if (n <= 0) return;
735
- const r = Math.max(0, Math.min(e.range, 1)), a = r * 72, i = Math.max(-0.5, Math.min(e.horizontalAngle, 0.5)) * 80, o = Math.max(-0.5, Math.min(e.verticalAngle, 0.5)) * 80;
736
- for (let s = 0; s < e.lines.length; s++) {
737
- const l = e.startY + s * e.lineHeight;
738
- t.save(), t.globalAlpha = n, t.shadowColor = e.color, t.shadowBlur = a, t.shadowOffsetX = i, t.shadowOffsetY = o, e.style === "contoured" ? (t.lineJoin = "round", t.miterLimit = 2, t.lineWidth = Math.max(2, r * 42), t.strokeStyle = e.color, $(
627
+ const i = Math.max(0, Math.min(e.range, 1)), a = i * 72, r = Math.max(-0.5, Math.min(e.horizontalAngle, 0.5)) * 80, o = Math.max(-0.5, Math.min(e.verticalAngle, 0.5)) * 80;
628
+ for (let l = 0; l < e.lines.length; l++) {
629
+ const s = e.startY + l * e.lineHeight;
630
+ t.save(), t.globalAlpha = n, t.shadowColor = e.color, t.shadowBlur = a, t.shadowOffsetX = r, t.shadowOffsetY = o, e.style === "contoured" ? (t.lineJoin = "round", t.miterLimit = 2, t.lineWidth = Math.max(2, i * 42), t.strokeStyle = e.color, ee(
739
631
  t,
740
- e.lines[s],
632
+ e.lines[l],
741
633
  e.textX,
742
- l,
634
+ s,
743
635
  e.letterSpacingPx,
744
636
  "stroke",
745
637
  e.bendPreset,
746
638
  e.bendStrength
747
- )) : (t.fillStyle = e.color, $(
639
+ )) : (t.fillStyle = e.color, ee(
748
640
  t,
749
- e.lines[s],
641
+ e.lines[l],
750
642
  e.textX,
751
- l,
643
+ s,
752
644
  e.letterSpacingPx,
753
645
  "fill",
754
646
  e.bendPreset,
@@ -756,12 +648,12 @@ function nn(t, e) {
756
648
  )), t.restore();
757
649
  }
758
650
  }
759
- function rn(t, e) {
760
- const n = Ce(e.width, e.height), r = n.getContext("2d");
761
- r.clearRect(0, 0, e.width, e.height), r.font = e.font, r.fillStyle = "#ffffff", r.textAlign = e.textAlign, r.textBaseline = "middle";
651
+ function Kt(t, e) {
652
+ const n = Te(e.width, e.height), i = n.getContext("2d");
653
+ i.clearRect(0, 0, e.width, e.height), i.font = e.font, i.fillStyle = "#ffffff", i.textAlign = e.textAlign, i.textBaseline = "middle";
762
654
  for (let o = 0; o < e.lines.length; o++)
763
- $(
764
- r,
655
+ ee(
656
+ i,
765
657
  e.lines[o],
766
658
  e.textX,
767
659
  e.startY + o * e.lineHeight,
@@ -770,403 +662,408 @@ function rn(t, e) {
770
662
  e.bendPreset,
771
663
  e.bendStrength
772
664
  );
773
- const a = Ce(e.width, e.height), i = a.getContext("2d");
774
- i.clearRect(0, 0, e.width, e.height), i.save(), i.globalAlpha = e.opacity, i.filter = e.blur > 0 ? `blur(${e.blur}px)` : "none", i.drawImage(n, e.offsetX, e.offsetY), i.restore(), i.globalCompositeOperation = "destination-in", i.drawImage(n, 0, 0), i.globalCompositeOperation = "source-in", i.globalAlpha = e.opacity, i.fillStyle = e.color, i.fillRect(0, 0, e.width, e.height), t.drawImage(a, 0, 0);
665
+ const a = Te(e.width, e.height), r = a.getContext("2d");
666
+ r.clearRect(0, 0, e.width, e.height), r.save(), r.globalAlpha = e.opacity, r.filter = e.blur > 0 ? `blur(${e.blur}px)` : "none", r.drawImage(n, e.offsetX, e.offsetY), r.restore(), r.globalCompositeOperation = "destination-in", r.drawImage(n, 0, 0), r.globalCompositeOperation = "source-in", r.globalAlpha = e.opacity, r.fillStyle = e.color, r.fillRect(0, 0, e.width, e.height), t.drawImage(a, 0, 0);
775
667
  }
776
- function an(t) {
668
+ function Vt(t) {
777
669
  const {
778
670
  width: e,
779
671
  height: n,
780
- color: r,
672
+ color: i,
781
673
  strokeLayers: a,
782
- strokeColor: i,
674
+ strokeColor: r,
783
675
  strokeWidth: o,
784
- strokeOpacity: s,
785
- shadowLayers: l,
786
- innerShadow: c,
787
- glow: A,
788
- shadowColor: f,
789
- shadowBlur: g,
790
- shadowOffsetX: S,
676
+ strokeOpacity: l,
677
+ shadowLayers: s,
678
+ innerShadow: A,
679
+ glow: c,
680
+ shadowColor: h,
681
+ shadowBlur: f,
682
+ shadowOffsetX: u,
791
683
  shadowOffsetY: v,
792
- shadowOpacity: m,
793
- textAlign: u,
684
+ shadowOpacity: S,
685
+ textAlign: m,
794
686
  bgFillMode: C,
795
- bgOpacity: b,
796
- bgFit: E,
797
- bgAutoSize: p,
798
- bgWidth: w,
687
+ bgOpacity: E,
688
+ bgFit: I,
689
+ bgAutoSize: M,
690
+ bgWidth: b,
799
691
  bgHeight: y,
800
- bgGradientStops: L,
801
- bgTextureImage: T,
802
- bgTextureFit: h,
803
- bgTextureFlipX: F,
804
- bgTextureFlipY: z,
805
- underline: H,
806
- strikethrough: V,
807
- bendPreset: K,
808
- bendStrength: D
692
+ bgGradientStops: F,
693
+ bgTextureImage: p,
694
+ bgTextureFit: g,
695
+ bgTextureFlipX: k,
696
+ bgTextureFlipY: J,
697
+ underline: P,
698
+ strikethrough: K,
699
+ bendPreset: W,
700
+ bendStrength: z
809
701
  } = t;
810
- let { fontSize: j, bgColor: U } = t;
811
- const Z = [
702
+ let { fontSize: V, bgColor: N } = t;
703
+ const U = [
812
704
  ...a ?? [],
813
- ...i && o > 0 ? [{ color: i, width: o, opacity: s }] : []
814
- ].filter((Y) => Y.width > 0), R = [
815
- ...l ?? [],
816
- ...f && (g > 0 || S !== 0 || v !== 0) ? [
705
+ ...r && o > 0 ? [{ color: r, width: o, opacity: l }] : []
706
+ ].filter((Q) => Q.width > 0), Z = [
707
+ ...s ?? [],
708
+ ...h && (f > 0 || u !== 0 || v !== 0) ? [
817
709
  {
818
- color: f,
819
- blur: g,
820
- offsetX: S,
710
+ color: h,
711
+ blur: f,
712
+ offsetX: u,
821
713
  offsetY: v,
822
- opacity: m
714
+ opacity: S
823
715
  }
824
716
  ] : []
825
- ].filter((Y) => Y.blur > 0 || (Y.offsetX ?? 0) !== 0 || (Y.offsetY ?? 0) !== 0);
717
+ ].filter((Q) => Q.blur > 0 || (Q.offsetX ?? 0) !== 0 || (Q.offsetY ?? 0) !== 0);
826
718
  let X;
827
- const N = Ce(e, n), M = N.getContext("2d");
828
- M.clearRect(0, 0, e, n), M.fillStyle = r, M.textAlign = u, M.textBaseline = "middle";
829
- const I = Vt(M, t);
830
- if (j = I.fontSize, U !== "transparent") {
831
- const Y = p === !0, q = Ge(
832
- Y ? void 0 : w,
833
- E === "text" || Y ? I.textBlockWidth : e,
719
+ const q = Te(e, n), Y = q.getContext("2d");
720
+ Y.clearRect(0, 0, e, n), Y.fillStyle = i, Y.textAlign = m, Y.textBaseline = "middle";
721
+ const T = Dt(Y, t);
722
+ if (V = T.fontSize, N !== "transparent") {
723
+ const Q = M === !0, L = We(
724
+ Q ? void 0 : b,
725
+ I === "text" || Q ? T.textBlockWidth : e,
834
726
  e
835
- ), G = Ge(
836
- Y ? void 0 : y,
837
- E === "text" || Y ? I.textBlockHeight : n,
727
+ ), H = We(
728
+ Q ? void 0 : y,
729
+ I === "text" || Q ? T.textBlockHeight : n,
838
730
  n
839
731
  );
840
- Zt(M, {
732
+ Rt(Y, {
841
733
  canvasWidth: e,
842
734
  canvasHeight: n,
843
- textAlign: u,
844
- bgFit: E,
845
- panelWidth: q,
846
- panelHeight: G,
847
- bgColor: U,
735
+ textAlign: m,
736
+ bgFit: I,
737
+ panelWidth: L,
738
+ panelHeight: H,
739
+ bgColor: N,
848
740
  bgFillMode: C,
849
- bgOpacity: b,
850
- bgGradientStops: L,
851
- bgTextureImage: T,
852
- bgTextureFit: h,
853
- bgTextureFlipX: F,
854
- bgTextureFlipY: z,
741
+ bgOpacity: E,
742
+ bgGradientStops: F,
743
+ bgTextureImage: p,
744
+ bgTextureFit: g,
745
+ bgTextureFlipX: k,
746
+ bgTextureFlipY: J,
855
747
  borderColor: t.borderColor,
856
748
  borderWidth: t.borderWidth,
857
749
  borderRadius: t.borderRadius
858
750
  });
859
751
  }
860
- return A && nn(M, {
861
- lines: I.resolvedLines,
862
- textX: I.textX,
863
- startY: I.startY,
864
- lineHeight: I.lineHeight,
865
- letterSpacingPx: I.letterSpacingPx,
866
- bendPreset: K,
867
- bendStrength: D,
868
- color: A.color,
869
- style: A.style,
870
- intensity: A.intensity ?? 0.5,
871
- range: A.range ?? 0.5,
872
- horizontalAngle: A.horizontalAngle ?? 0,
873
- verticalAngle: A.verticalAngle ?? 0
874
- }), tn(M, {
875
- lines: I.resolvedLines,
876
- textX: I.textX,
877
- startY: I.startY,
878
- lineHeight: I.lineHeight,
879
- textAlign: u,
880
- color: r,
881
- fontSize: j,
882
- letterSpacingPx: I.letterSpacingPx,
883
- bendPreset: K,
884
- bendStrength: D,
885
- shadowLayers: R,
886
- strokeLayers: Z,
887
- underline: H,
888
- strikethrough: V
889
- }), c && rn(M, {
752
+ return c && Jt(Y, {
753
+ lines: T.resolvedLines,
754
+ textX: T.textX,
755
+ startY: T.startY,
756
+ lineHeight: T.lineHeight,
757
+ letterSpacingPx: T.letterSpacingPx,
758
+ bendPreset: W,
759
+ bendStrength: z,
760
+ color: c.color,
761
+ style: c.style,
762
+ intensity: c.intensity ?? 0.5,
763
+ range: c.range ?? 0.5,
764
+ horizontalAngle: c.horizontalAngle ?? 0,
765
+ verticalAngle: c.verticalAngle ?? 0
766
+ }), Ht(Y, {
767
+ lines: T.resolvedLines,
768
+ textX: T.textX,
769
+ startY: T.startY,
770
+ lineHeight: T.lineHeight,
771
+ textAlign: m,
772
+ color: i,
773
+ fontSize: V,
774
+ letterSpacingPx: T.letterSpacingPx,
775
+ bendPreset: W,
776
+ bendStrength: z,
777
+ shadowLayers: Z,
778
+ strokeLayers: U,
779
+ underline: P,
780
+ strikethrough: K
781
+ }), A && Kt(Y, {
890
782
  width: e,
891
783
  height: n,
892
- font: M.font,
893
- lines: I.resolvedLines,
894
- textX: I.textX,
895
- startY: I.startY,
896
- lineHeight: I.lineHeight,
897
- letterSpacingPx: I.letterSpacingPx,
898
- bendPreset: K,
899
- bendStrength: D,
900
- textAlign: u,
901
- color: c.color,
902
- opacity: c.opacity ?? 1,
903
- blur: c.blur,
904
- offsetX: c.offsetX ?? 0,
905
- offsetY: c.offsetY ?? 0
906
- }), X = new B.CanvasTexture(N), X.needsUpdate = !0, X;
784
+ font: Y.font,
785
+ lines: T.resolvedLines,
786
+ textX: T.textX,
787
+ startY: T.startY,
788
+ lineHeight: T.lineHeight,
789
+ letterSpacingPx: T.letterSpacingPx,
790
+ bendPreset: W,
791
+ bendStrength: z,
792
+ textAlign: m,
793
+ color: A.color,
794
+ opacity: A.opacity ?? 1,
795
+ blur: A.blur,
796
+ offsetX: A.offsetX ?? 0,
797
+ offsetY: A.offsetY ?? 0
798
+ }), X = new B.CanvasTexture(q), X.needsUpdate = !0, X;
907
799
  }
908
- function on(t, e) {
800
+ function Nt(t, e) {
909
801
  const {
910
802
  lines: n,
911
- color: r,
803
+ color: i,
912
804
  strokeLayers: a,
913
- outlineEnabled: i,
805
+ outlineEnabled: r,
914
806
  strokeColor: o,
915
- strokeWidth: s,
916
- strokeOpacity: l,
917
- shadowLayers: c,
918
- shadowEnabled: A,
919
- innerShadow: f,
920
- glow: g,
921
- shadowColor: S,
807
+ strokeWidth: l,
808
+ strokeOpacity: s,
809
+ shadowLayers: A,
810
+ shadowEnabled: c,
811
+ innerShadow: h,
812
+ glow: f,
813
+ shadowColor: u,
922
814
  shadowBlur: v,
923
- shadowOffsetX: m,
924
- shadowOffsetY: u,
815
+ shadowOffsetX: S,
816
+ shadowOffsetY: m,
925
817
  shadowOpacity: C,
926
- fontWeight: b,
927
- fontStyle: E,
928
- fontFamily: p,
929
- fontSize: w,
818
+ fontWeight: E,
819
+ fontStyle: I,
820
+ fontFamily: M,
821
+ fontSize: b,
930
822
  textAlign: y,
931
- verticalAlign: L,
932
- overflow: T,
933
- resizeToFit: h,
934
- minFontSize: F,
935
- letterSpacing: z,
936
- lineSpacing: H,
937
- bgFillMode: V,
938
- bgOpacity: K,
939
- bgFit: D,
940
- bgAutoSize: j,
941
- bgWidth: U,
942
- bgHeight: Z,
943
- bgGradientStops: R,
823
+ verticalAlign: F,
824
+ overflow: p,
825
+ resizeToFit: g,
826
+ minFontSize: k,
827
+ letterSpacing: J,
828
+ lineSpacing: P,
829
+ bgFillMode: K,
830
+ bgOpacity: W,
831
+ bgFit: z,
832
+ bgAutoSize: V,
833
+ bgWidth: N,
834
+ bgHeight: U,
835
+ bgGradientStops: Z,
944
836
  bgTextureFit: X,
945
- bgTextureFlipX: N,
946
- bgTextureFlipY: M,
947
- borderColor: I,
948
- borderWidth: Y,
949
- borderRadius: q,
950
- padding: G,
951
- aspect: Be,
952
- resolution: de,
953
- underline: we,
954
- strikethrough: pe,
955
- bendPreset: Qe,
956
- bendStrength: Me
957
- } = t, xe = x(
958
- () => i === !1 ? [] : a,
959
- [i, a]
960
- ), ke = x(
961
- () => A === !1 ? [] : c,
962
- [A, c]
963
- ), Le = void 0, Fe = x(
837
+ bgTextureFlipX: q,
838
+ bgTextureFlipY: Y,
839
+ borderColor: T,
840
+ borderWidth: Q,
841
+ borderRadius: L,
842
+ padding: H,
843
+ aspect: j,
844
+ resolution: _,
845
+ underline: Ae,
846
+ strikethrough: ce,
847
+ bendPreset: ge,
848
+ bendStrength: re
849
+ } = t, de = x(
850
+ () => r === !1 ? [] : a,
851
+ [r, a]
852
+ ), fe = x(
853
+ () => c === !1 ? [] : A,
854
+ [c, A]
855
+ ), G = void 0, he = x(
964
856
  () => ({
965
857
  text: e.text,
966
858
  lines: n,
967
- color: r,
968
- strokeLayers: xe,
969
- strokeColor: i === !1 ? void 0 : o,
970
- strokeWidth: i === !1 ? 0 : s,
971
- strokeOpacity: l,
972
- shadowLayers: ke,
973
- innerShadow: f,
974
- glow: g,
975
- shadowColor: A === !1 ? void 0 : S,
976
- shadowBlur: A === !1 ? 0 : v,
977
- shadowOffsetX: A === !1 ? 0 : m,
978
- shadowOffsetY: A === !1 ? 0 : u,
859
+ color: i,
860
+ strokeLayers: de,
861
+ strokeColor: r === !1 ? void 0 : o,
862
+ strokeWidth: r === !1 ? 0 : l,
863
+ strokeOpacity: s,
864
+ shadowLayers: fe,
865
+ innerShadow: h,
866
+ glow: f,
867
+ shadowColor: c === !1 ? void 0 : u,
868
+ shadowBlur: c === !1 ? 0 : v,
869
+ shadowOffsetX: c === !1 ? 0 : S,
870
+ shadowOffsetY: c === !1 ? 0 : m,
979
871
  shadowOpacity: C,
980
- fontWeight: b,
981
- fontStyle: E,
982
- fontFamily: p,
983
- fontSize: w,
872
+ fontWeight: E,
873
+ fontStyle: I,
874
+ fontFamily: M,
875
+ fontSize: b,
984
876
  textAlign: y,
985
- verticalAlign: L,
986
- overflow: T,
987
- resizeToFit: h,
988
- minFontSize: F,
989
- letterSpacing: z,
990
- lineSpacing: H,
877
+ verticalAlign: F,
878
+ overflow: p,
879
+ resizeToFit: g,
880
+ minFontSize: k,
881
+ letterSpacing: J,
882
+ lineSpacing: P,
991
883
  bgColor: e.bgColor,
992
- bgFillMode: V,
993
- bgOpacity: K,
994
- bgFit: D,
995
- bgAutoSize: j,
996
- bgWidth: U,
997
- bgHeight: Z,
998
- bgGradientStops: R,
999
- bgTextureImage: Le,
884
+ bgFillMode: K,
885
+ bgOpacity: W,
886
+ bgFit: z,
887
+ bgAutoSize: V,
888
+ bgWidth: N,
889
+ bgHeight: U,
890
+ bgGradientStops: Z,
891
+ bgTextureImage: G,
1000
892
  bgTextureFit: X,
1001
- bgTextureFlipX: N,
1002
- bgTextureFlipY: M,
1003
- borderColor: I,
1004
- borderWidth: Y,
1005
- borderRadius: q,
1006
- padding: G,
1007
- height: de,
1008
- width: Math.round(de * Math.max(Be, 0.1)),
1009
- underline: we,
1010
- strikethrough: pe,
1011
- bendPreset: Qe,
1012
- bendStrength: Me
893
+ bgTextureFlipX: q,
894
+ bgTextureFlipY: Y,
895
+ borderColor: T,
896
+ borderWidth: Q,
897
+ borderRadius: L,
898
+ padding: H,
899
+ height: _,
900
+ width: Math.round(_ * Math.max(j, 0.1)),
901
+ underline: Ae,
902
+ strikethrough: ce,
903
+ bendPreset: ge,
904
+ bendStrength: re
1013
905
  }),
1014
906
  [
1015
907
  e.text,
1016
908
  e.bgColor,
1017
909
  n,
1018
- r,
1019
- xe,
1020
910
  i,
911
+ de,
912
+ r,
1021
913
  o,
1022
- s,
1023
914
  l,
1024
- ke,
915
+ s,
916
+ fe,
917
+ h,
1025
918
  f,
1026
- g,
1027
- A,
1028
- S,
919
+ c,
920
+ u,
1029
921
  v,
922
+ S,
1030
923
  m,
1031
- u,
1032
924
  C,
1033
- b,
1034
925
  E,
1035
- p,
1036
- w,
926
+ I,
927
+ M,
928
+ b,
1037
929
  y,
1038
- L,
1039
- T,
1040
- h,
1041
930
  F,
931
+ p,
932
+ g,
933
+ k,
934
+ J,
935
+ P,
936
+ K,
937
+ W,
1042
938
  z,
1043
- H,
1044
939
  V,
1045
- K,
1046
- D,
1047
- j,
940
+ N,
1048
941
  U,
1049
942
  Z,
1050
- R,
1051
- Le,
943
+ G,
1052
944
  X,
1053
- N,
1054
- M,
1055
- I,
1056
- Y,
1057
945
  q,
1058
- G,
1059
- Be,
1060
- de,
1061
- we,
1062
- pe,
1063
- Qe,
1064
- Me
946
+ Y,
947
+ T,
948
+ Q,
949
+ L,
950
+ H,
951
+ j,
952
+ _,
953
+ Ae,
954
+ ce,
955
+ ge,
956
+ re
1065
957
  ]
1066
- ), Ye = x(() => an(Fe), [Fe]);
1067
- return ue(Ye), Ye;
958
+ ), Qe = x(() => Vt(he), [he]);
959
+ return Ie(Qe), Qe;
1068
960
  }
1069
- function sn(t) {
1070
- const e = { ...Gt, ...t }, {
961
+ function Ut(t) {
962
+ const e = { ...kt, ...t }, {
1071
963
  text: n,
1072
- bgColor: r,
964
+ bgColor: i,
1073
965
  opacity: a,
1074
- name: i,
966
+ name: r,
1075
967
  overlay: o = !0,
1076
- position: s,
1077
- rotation: l,
1078
- scale: c,
1079
- visible: A,
1080
- renderOrder: f
1081
- } = e, [g, S] = Ae(null), [v, m] = Ae(null), u = P(n);
1082
- u.current !== n && (u.current = n, g !== null && S(null));
1083
- const C = P(r);
1084
- C.current !== r && (C.current = r, v !== null && m(null));
1085
- const b = P(null), w = on(e, { text: g ?? n, bgColor: v ?? r });
968
+ position: l,
969
+ rotation: s,
970
+ scale: A,
971
+ visible: c,
972
+ renderOrder: h
973
+ } = e, [f, u] = ve(null), [v, S] = ve(null), m = R(n);
974
+ m.current !== n && (m.current = n, f !== null && u(null));
975
+ const C = R(i);
976
+ C.current !== i && (C.current = i, v !== null && S(null));
977
+ const E = R(null), b = Nt(e, { text: f ?? n, bgColor: v ?? i });
1086
978
  return te(() => {
1087
- const y = b.current;
979
+ const y = E.current;
1088
980
  if (y)
1089
- return y.userData.setText = (L) => S(L), y.userData.setBgColor = (L) => m(L), () => {
981
+ return y.userData.setText = (F) => u(F), y.userData.setBgColor = (F) => S(F), () => {
1090
982
  delete y.userData.setText, delete y.userData.setBgColor;
1091
983
  };
1092
984
  }, []), /* @__PURE__ */ d(
1093
- $e,
985
+ Je,
1094
986
  {
1095
- ref: b,
1096
- name: i,
1097
- texture: w,
987
+ ref: E,
988
+ name: r,
989
+ texture: b,
1098
990
  overlay: o,
1099
991
  opacity: a,
1100
- position: s,
1101
- rotation: l,
1102
- scale: c,
1103
- visible: A,
1104
- renderOrder: f
992
+ position: l,
993
+ rotation: s,
994
+ scale: A,
995
+ visible: c,
996
+ renderOrder: h
1105
997
  }
1106
998
  );
1107
999
  }
1108
- function Ee(t, e) {
1000
+ const Zt = "data:image/png;base64,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";
1001
+ function ye(t, e) {
1109
1002
  return !Number.isFinite(t) || !Number.isFinite(e) || t <= 0 || e <= 0 ? [1, 1, 1] : Math.abs(t - e) < 1e-6 ? [1, 1, 1] : t > e ? [e / t, 1, 1] : [1, t / e, 1];
1110
1003
  }
1111
- const ln = "data:image/png;base64,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", cn = (t, e) => t || (e === "cover" ? "fill" : e === "stretch" ? "stretch" : "fit"), Je = (t, e) => {
1112
- const [n, r] = Ee(t, e);
1113
- return n === 1 && r === 1 ? [1, 1, 1] : n < 1 ? [1, 1 / n, 1] : [1 / r, 1, 1];
1114
- }, An = (t, e, n, r, a, i, o) => {
1115
- let s = [1, 1, 1], l = [1, 1, 1], c = [1, 1], A = [0, 0];
1004
+ const qt = (t, e) => t || (e === "cover" ? "fill" : e === "stretch" ? "stretch" : "fit"), De = (t, e) => {
1005
+ const [n, i] = ye(t, e);
1006
+ return n === 1 && i === 1 ? [1, 1, 1] : n < 1 ? [1, 1 / n, 1] : [1 / i, 1, 1];
1007
+ }, jt = (t, e, n, i, a, r, o) => {
1008
+ let l = [1, 1, 1], s = [1, 1, 1], A = [1, 1], c = [0, 0];
1116
1009
  switch (t) {
1117
1010
  case "fit":
1118
- s = Ee(e, n), l = s;
1011
+ l = ye(e, n), s = l;
1119
1012
  break;
1120
1013
  case "fitWidth":
1121
- s = [1, e > 0 && n > 0 ? e / n : 1, 1], l = s;
1014
+ l = [1, e > 0 && n > 0 ? e / n : 1, 1], s = l;
1122
1015
  break;
1123
1016
  case "fitHeight":
1124
- s = [e > 0 && n > 0 ? n / e : 1, 1, 1], l = s;
1017
+ l = [e > 0 && n > 0 ? n / e : 1, 1, 1], s = l;
1125
1018
  break;
1126
1019
  case "center":
1127
- s = i && o && i.width > 0 && i.height > 0 && o.width > 0 && o.height > 0 ? [o.width / i.width, o.height / i.height, 1] : Ee(e, n), l = s;
1020
+ l = r && o && r.width > 0 && r.height > 0 && o.width > 0 && o.height > 0 ? [o.width / r.width, o.height / r.height, 1] : ye(e, n), s = l;
1128
1021
  break;
1129
1022
  case "fill":
1130
- s = Je(e, n), l = s;
1023
+ l = De(e, n), s = l;
1131
1024
  break;
1132
1025
  case "fillAndCut":
1133
- if (l = Je(e, n), n > e) {
1134
- const f = e / n;
1135
- c = [f, 1], A = [(1 - f) / 2, 0];
1026
+ if (s = De(e, n), n > e) {
1027
+ const h = e / n;
1028
+ A = [h, 1], c = [(1 - h) / 2, 0];
1136
1029
  } else if (n < e) {
1137
- const f = n / e;
1138
- c = [1, f], A = [0, (1 - f) / 2];
1030
+ const h = n / e;
1031
+ A = [1, h], c = [0, (1 - h) / 2];
1139
1032
  }
1140
1033
  break;
1141
1034
  }
1142
1035
  return {
1143
- meshScale: [s[0] * (r ? -1 : 1), s[1] * (a ? -1 : 1), 1],
1144
- guideScale: l,
1145
- repeat: c,
1146
- offset: A
1036
+ meshScale: [l[0] * (i ? -1 : 1), l[1] * (a ? -1 : 1), 1],
1037
+ guideScale: s,
1038
+ repeat: A,
1039
+ offset: c
1147
1040
  };
1148
- }, hn = (t, e) => t ?? (e ? { kind: "image", src: e } : { kind: "default" }), ee = (t) => {
1041
+ }, _t = (t, e) => t ?? (e ? { kind: "image", src: e } : { kind: "default" }), $ = (t) => {
1149
1042
  const e = t.image;
1150
1043
  return {
1151
1044
  width: (e == null ? void 0 : e.videoWidth) ?? (e == null ? void 0 : e.width) ?? 1,
1152
1045
  height: (e == null ? void 0 : e.videoHeight) ?? (e == null ? void 0 : e.height) ?? 1
1153
1046
  };
1154
- }, dn = (t) => {
1155
- const { width: e, height: n } = ee(t);
1047
+ }, $t = (t) => {
1048
+ if (t.isVideoTexture || t.isCanvasTexture) return !0;
1049
+ const e = t.image;
1050
+ return typeof HTMLCanvasElement < "u" && e instanceof HTMLCanvasElement || typeof OffscreenCanvas < "u" && e instanceof OffscreenCanvas;
1051
+ }, en = (t) => {
1052
+ const { width: e, height: n } = $(t);
1156
1053
  return e > 0 && n > 0 ? e / n : 1;
1157
- }, gn = /* @__PURE__ */ new Set([
1054
+ }, tn = /* @__PURE__ */ new Set([
1158
1055
  "overlay",
1159
1056
  "softLight",
1160
1057
  "hardLight",
1161
1058
  "difference",
1162
1059
  "exclusion"
1163
- ]), fn = {
1060
+ ]), nn = {
1164
1061
  overlay: 0,
1165
1062
  softLight: 1,
1166
1063
  hardLight: 2,
1167
1064
  difference: 3,
1168
1065
  exclusion: 4
1169
- }, un = (t) => {
1066
+ }, rn = (t) => {
1170
1067
  switch (t) {
1171
1068
  case "add":
1172
1069
  return { blending: B.AdditiveBlending };
@@ -1198,9 +1095,9 @@ const ln = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAMAAADsrvZaAA
1198
1095
  default:
1199
1096
  return { blending: B.NormalBlending };
1200
1097
  }
1201
- }, Sn = `
1098
+ }, an = `
1202
1099
  varying vec2 vUv;
1203
- void main(){vUv=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0);}`, vn = `
1100
+ void main(){vUv=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0);}`, on = `
1204
1101
  uniform sampler2D imageMap;uniform sampler2D backdropMap;uniform vec2 resolution;
1205
1102
  uniform vec3 tint;uniform float opacity;uniform float alphaTest;uniform int blendMode;varying vec2 vUv;
1206
1103
  float overlayChannel(float b,float s){return b<.5?2.*b*s:1.-2.*(1.-b)*(1.-s);}
@@ -1213,189 +1110,268 @@ if(blendMode==2)return vec3(hardLightChannel(b.r,s.r),hardLightChannel(b.g,s.g),
1213
1110
  if(blendMode==3)return abs(b-s);return b+s-2.*b*s;}
1214
1111
  void main(){vec4 image=texture2D(imageMap,vUv)*vec4(tint,opacity);if(image.a<=alphaTest)discard;
1215
1112
  vec2 uv=gl_FragCoord.xy/max(resolution,vec2(1.));vec3 base=texture2D(backdropMap,uv).rgb;
1216
- vec3 mixed=applyAdvancedBlend(base,image.rgb);gl_FragColor=vec4(mix(base,mixed,image.a),1.);}`, mn = () => {
1113
+ vec3 mixed=applyAdvancedBlend(base,image.rgb);gl_FragColor=vec4(mix(base,mixed,image.a),1.);
1114
+ #include <colorspace_fragment>
1115
+ }`, ln = () => {
1217
1116
  const t = document.createElement("canvas");
1218
1117
  t.width = 256, t.height = 256;
1219
1118
  const e = t.getContext("2d");
1220
1119
  if (!e) return new B.CanvasTexture(t);
1221
1120
  const n = e.createRadialGradient(96, 80, 10, 128, 128, 128);
1222
1121
  n.addColorStop(0, "#ffffff"), n.addColorStop(0.18, "#f8fafc"), n.addColorStop(0.44, "#cbd5e1"), n.addColorStop(0.72, "#475569"), n.addColorStop(1, "#0f172a"), e.fillStyle = n, e.fillRect(0, 0, t.width, t.height);
1223
- const r = new B.CanvasTexture(t);
1224
- return r.needsUpdate = !0, r;
1225
- };
1226
- function Cn({
1122
+ const i = new B.CanvasTexture(t);
1123
+ return i.needsUpdate = !0, i;
1124
+ }, sn = ["alpha", "red", "green", "luminance"], An = (t) => {
1125
+ const e = sn.indexOf(t ?? "alpha");
1126
+ return e < 0 ? 0 : e;
1127
+ }, cn = `
1128
+ varying vec2 vUv;
1129
+ void main(){vUv=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0);}`, gn = `
1130
+ uniform sampler2D imageMap;uniform sampler2D maskMap;uniform mat3 mapTransform;
1131
+ uniform vec3 tint;uniform float opacity;uniform float alphaTest;uniform int maskChannel;uniform float maskInvert;
1132
+ uniform float maskFeather;uniform float maskErode;uniform vec2 maskTexel;
1133
+ varying vec2 vUv;
1134
+ float coverageAt(vec2 uv){
1135
+ vec4 m=texture2D(maskMap,uv);
1136
+ float c=maskChannel==0?m.a:maskChannel==1?m.r:maskChannel==2?m.g:dot(m.rgb,vec3(0.299,0.587,0.114));
1137
+ return mix(c,1.0-c,maskInvert);}
1138
+ void main(){
1139
+ vec2 uv=(mapTransform*vec3(vUv,1.0)).xy;
1140
+ vec4 image=texture2D(imageMap,uv);
1141
+ float coverage;
1142
+ if(maskFeather>0.0){
1143
+ vec2 step=maskTexel*maskFeather;
1144
+ coverage=0.0;
1145
+ for(int y=-1;y<=1;y++){for(int x=-1;x<=1;x++){coverage+=coverageAt(uv+vec2(float(x),float(y))*step);}}
1146
+ coverage/=9.0;
1147
+ // Erode: raise the threshold on the blurred edge so the silhouette shrinks
1148
+ // by up to the feather radius (maskErode is a fraction of that width).
1149
+ coverage=smoothstep(clamp(maskErode,0.0,0.95),1.0,coverage);
1150
+ }else{coverage=coverageAt(uv);}
1151
+ float alpha=image.a*opacity*coverage;
1152
+ if(alpha<=alphaTest)discard;
1153
+ gl_FragColor=vec4(image.rgb*tint,alpha);
1154
+ #include <colorspace_fragment>
1155
+ }`;
1156
+ function dn({
1227
1157
  materialTexture: t,
1228
1158
  sourceTexture: e,
1229
1159
  onSourceSizeChange: n
1230
1160
  }) {
1231
- const r = P(ee(e));
1161
+ const i = R($(e));
1232
1162
  return se(() => {
1233
1163
  t.needsUpdate = !0;
1234
- const a = ee(e);
1235
- (a.width !== r.current.width || a.height !== r.current.height) && (r.current = a, n(a));
1164
+ const a = $(e);
1165
+ (a.width !== i.current.width || a.height !== i.current.height) && (i.current = a, n(a));
1236
1166
  }), null;
1237
1167
  }
1238
- const En = 999, bn = Math.PI / 180, In = yt([
1239
- Bt
1168
+ const fn = 999, hn = Math.PI / 180, un = gt([
1169
+ ft
1240
1170
  ]);
1241
- function yn(t) {
1242
- const [e, n] = Ae(null);
1171
+ function vn(t) {
1172
+ const [e, n] = ve(null);
1243
1173
  return te(() => {
1244
1174
  if (n(null), !t || typeof document > "u") return;
1245
- const r = new AbortController();
1175
+ const i = new AbortController();
1246
1176
  let a;
1247
- return In({ kind: "gif", src: t }, r.signal).then((i) => {
1248
- a = i, n(i);
1249
- }).catch((i) => {
1250
- i instanceof DOMException && i.name === "AbortError" || console.warn("[xr-sdk] Failed to load GIF ScreenImage source", i);
1177
+ return un({ kind: "gif", src: t }, i.signal).then((r) => {
1178
+ a = r, n(r);
1179
+ }).catch((r) => {
1180
+ r instanceof DOMException && r.name === "AbortError" || console.warn("[xr-sdk] Failed to load GIF ScreenImage source", r);
1251
1181
  }), () => {
1252
- r.abort(), Tt(a);
1182
+ i.abort(), dt(a);
1253
1183
  };
1254
1184
  }, [t]), e;
1255
1185
  }
1256
- function ze({
1186
+ function Xe({
1257
1187
  name: t,
1258
1188
  source: e,
1259
1189
  src: n,
1260
- fit: r,
1190
+ fit: i,
1261
1191
  stretchMode: a,
1262
- materialType: i = "unlit",
1192
+ materialType: r = "unlit",
1263
1193
  blendMode: o = "normal",
1264
- backdropTexture: s = null,
1265
- rotation: l = 0,
1266
- opacity: c = 1,
1267
- color: A = "#ffffff",
1268
- flipX: f = !1,
1269
- flipY: g = !1,
1270
- renderOrder: S = En,
1271
- transparent: v = !0,
1272
- alphaTest: m = 0,
1273
- overlay: u = !0,
1274
- visible: C,
1275
- layoutSize: b
1194
+ backdropTexture: l = null,
1195
+ rotation: s = 0,
1196
+ opacity: A = 1,
1197
+ color: c = "#ffffff",
1198
+ maskTexture: h = null,
1199
+ maskChannel: f,
1200
+ maskInvert: u = !1,
1201
+ maskFeather: v = 0,
1202
+ maskErode: S = 0,
1203
+ flipX: m = !1,
1204
+ flipY: C = !1,
1205
+ renderOrder: E = fn,
1206
+ transparent: I = !0,
1207
+ alphaTest: M = 0,
1208
+ overlay: b = !0,
1209
+ visible: y,
1210
+ layoutSize: F
1276
1211
  }) {
1277
- const { size: E } = he(), p = It(), w = hn(e, n), y = w.kind === "image" ? w.src : ln, L = Xt(y), T = yn(
1278
- w.kind === "gif" ? w.src : void 0
1279
- ), h = w.kind === "texture" ? w.texture : w.kind === "gif" ? (T == null ? void 0 : T.texture) ?? L : L, F = Ne(), z = cn(a, r), [H, V] = Ae(
1280
- () => ee(h)
1212
+ const { size: p } = me(), g = ct(), k = _t(e, n), J = k.kind === "image" ? k.src : Zt, P = yt(J), K = vn(
1213
+ k.kind === "gif" ? k.src : void 0
1214
+ ), W = k.kind === "texture" ? k.texture : k.kind === "gif" ? (K == null ? void 0 : K.texture) ?? P : P, z = Pe(), V = qt(a, i), [N, U] = ve(
1215
+ () => $(W)
1281
1216
  );
1282
1217
  te(() => {
1283
- V(ee(h));
1284
- }, [h]);
1285
- const K = h instanceof B.VideoTexture || typeof HTMLCanvasElement < "u" && h.image instanceof HTMLCanvasElement, D = K ? H : ee(h), j = be(
1286
- (G) => V(G),
1218
+ U($(W));
1219
+ }, [W]);
1220
+ const Z = $t(W), X = Z ? N : $(W), q = Be(
1221
+ (G) => U(G),
1287
1222
  []
1288
- ), U = D.width > 0 && D.height > 0 ? D.width / D.height : dn(h), Z = x(() => mn(), []), R = x(
1289
- () => An(
1223
+ ), Y = X.width > 0 && X.height > 0 ? X.width / X.height : en(W), T = x(() => ln(), []), Q = x(
1224
+ () => jt(
1225
+ V,
1290
1226
  z,
1227
+ Y,
1228
+ m,
1229
+ C,
1291
1230
  F,
1292
- U,
1293
- f,
1294
- g,
1295
- b,
1296
- D
1231
+ X
1297
1232
  ),
1298
- [z, F, U, f, g, b, D]
1299
- ), X = x(() => {
1300
- const G = h.clone();
1301
- return G.needsUpdate = !0, G.repeat.set(R.repeat[0], R.repeat[1]), G.offset.set(R.offset[0], R.offset[1]), G;
1302
- }, [h, R.repeat, R.offset]);
1303
- ue(X), ue(Z);
1304
- const N = x(() => un(o), [o]), M = gn.has(o) ? o : null, I = s ?? (p == null ? void 0 : p.finalColorTexture) ?? (p == null ? void 0 : p.sceneColorTexture) ?? null, Y = M !== null && I !== null, q = x(
1233
+ [V, z, Y, m, C, F, X]
1234
+ ), L = x(() => {
1235
+ const G = W.clone();
1236
+ return G.needsUpdate = !0, G.repeat.set(Q.repeat[0], Q.repeat[1]), G.offset.set(Q.offset[0], Q.offset[1]), G;
1237
+ }, [W, Q.repeat, Q.offset]);
1238
+ Ie(L), Ie(T);
1239
+ const H = x(() => rn(o), [o]), j = tn.has(o) ? o : null, _ = l ?? (g == null ? void 0 : g.finalColorTexture) ?? (g == null ? void 0 : g.sceneColorTexture) ?? null, Ae = j !== null && _ !== null, ce = x(
1305
1240
  () => ({
1306
- imageMap: { value: X },
1307
- backdropMap: { value: I },
1308
- resolution: { value: new B.Vector2(E.width, E.height) },
1309
- tint: { value: new B.Color(A) },
1310
- opacity: { value: c },
1311
- alphaTest: { value: m },
1312
- blendMode: {
1313
- value: M === null ? 0 : fn[M]
1314
- }
1241
+ imageMap: L,
1242
+ backdropMap: _,
1243
+ resolution: new B.Vector2(p.width, p.height),
1244
+ tint: new B.Color(c),
1245
+ opacity: A,
1246
+ alphaTest: M,
1247
+ blendMode: j === null ? 0 : nn[j]
1315
1248
  }),
1316
1249
  [
1250
+ j,
1317
1251
  M,
1318
- m,
1319
- I,
1320
- E.height,
1321
- E.width,
1322
- A,
1323
- X,
1324
- c
1252
+ _,
1253
+ p.height,
1254
+ p.width,
1255
+ c,
1256
+ L,
1257
+ A
1325
1258
  ]
1326
- );
1327
- return /* @__PURE__ */ W("group", { visible: C, children: [
1328
- K ? /* @__PURE__ */ d(
1329
- Cn,
1259
+ ), ge = we(ce), re = x(() => (L.updateMatrix(), L.matrix.clone()), [L]), de = x(
1260
+ () => ({
1261
+ imageMap: L,
1262
+ maskMap: h,
1263
+ mapTransform: re,
1264
+ tint: new B.Color(c),
1265
+ opacity: A,
1266
+ alphaTest: M,
1267
+ maskChannel: An(f),
1268
+ maskInvert: u ? 1 : 0,
1269
+ maskFeather: v,
1270
+ maskErode: S,
1271
+ // Feather radius is expressed in mask texels so it stays the same
1272
+ // on-screen width whatever resolution the mask arrives at.
1273
+ maskTexel: (() => {
1274
+ const { width: G, height: he } = $(h ?? L);
1275
+ return new B.Vector2(1 / Math.max(G, 1), 1 / Math.max(he, 1));
1276
+ })()
1277
+ }),
1278
+ [
1279
+ M,
1280
+ c,
1281
+ re,
1282
+ f,
1283
+ S,
1284
+ v,
1285
+ u,
1286
+ h,
1287
+ L,
1288
+ A
1289
+ ]
1290
+ ), fe = we(de);
1291
+ return /* @__PURE__ */ D("group", { visible: y, children: [
1292
+ Z ? /* @__PURE__ */ d(
1293
+ dn,
1330
1294
  {
1331
- materialTexture: X,
1332
- sourceTexture: h,
1333
- onSourceSizeChange: j
1295
+ materialTexture: L,
1296
+ sourceTexture: W,
1297
+ onSourceSizeChange: q
1334
1298
  }
1335
1299
  ) : null,
1336
- /* @__PURE__ */ W(
1300
+ /* @__PURE__ */ D(
1337
1301
  "mesh",
1338
1302
  {
1339
1303
  name: t,
1340
- scale: R.meshScale,
1341
- rotation: [0, 0, l * bn],
1342
- renderOrder: S,
1304
+ scale: Q.meshScale,
1305
+ rotation: [0, 0, s * hn],
1306
+ renderOrder: E,
1343
1307
  children: [
1344
1308
  /* @__PURE__ */ d("planeGeometry", { args: [1, 1] }),
1345
- Y ? /* @__PURE__ */ d(
1309
+ h ? /* @__PURE__ */ d(
1310
+ "shaderMaterial",
1311
+ {
1312
+ uniforms: fe,
1313
+ vertexShader: cn,
1314
+ fragmentShader: gn,
1315
+ transparent: !0,
1316
+ depthTest: !b,
1317
+ depthWrite: !b,
1318
+ toneMapped: !1,
1319
+ ...H
1320
+ }
1321
+ ) : Ae ? /* @__PURE__ */ d(
1346
1322
  "shaderMaterial",
1347
1323
  {
1348
- uniforms: q,
1349
- vertexShader: Sn,
1350
- fragmentShader: vn,
1324
+ uniforms: ge,
1325
+ vertexShader: an,
1326
+ fragmentShader: on,
1351
1327
  transparent: !1,
1352
- depthTest: !u,
1353
- depthWrite: !u,
1328
+ depthTest: !b,
1329
+ depthWrite: !b,
1354
1330
  toneMapped: !1
1355
1331
  }
1356
- ) : i === "standardPBR" ? /* @__PURE__ */ d(
1332
+ ) : r === "standardPBR" ? /* @__PURE__ */ d(
1357
1333
  "meshStandardMaterial",
1358
1334
  {
1359
- map: X,
1360
- transparent: v || c < 1,
1361
- opacity: c,
1362
- color: A,
1363
- alphaTest: m,
1364
- depthTest: !u,
1365
- depthWrite: !u,
1335
+ map: L,
1336
+ transparent: I || A < 1,
1337
+ opacity: A,
1338
+ color: c,
1339
+ alphaTest: M,
1340
+ depthTest: !b,
1341
+ depthWrite: !b,
1366
1342
  toneMapped: !1,
1367
1343
  roughness: 0.72,
1368
1344
  metalness: 0.08,
1369
- emissive: A,
1345
+ emissive: c,
1370
1346
  emissiveIntensity: 0.18,
1371
- ...N
1347
+ ...H
1372
1348
  }
1373
- ) : i === "matcap" ? /* @__PURE__ */ d(
1349
+ ) : r === "matcap" ? /* @__PURE__ */ d(
1374
1350
  "meshMatcapMaterial",
1375
1351
  {
1376
- map: X,
1377
- matcap: Z,
1378
- transparent: v || c < 1,
1379
- opacity: c,
1380
- color: A,
1381
- alphaTest: m,
1382
- depthTest: !u,
1383
- depthWrite: !u,
1352
+ map: L,
1353
+ matcap: T,
1354
+ transparent: I || A < 1,
1355
+ opacity: A,
1356
+ color: c,
1357
+ alphaTest: M,
1358
+ depthTest: !b,
1359
+ depthWrite: !b,
1384
1360
  toneMapped: !1,
1385
- ...N
1361
+ ...H
1386
1362
  }
1387
1363
  ) : /* @__PURE__ */ d(
1388
1364
  "meshBasicMaterial",
1389
1365
  {
1390
- map: X,
1391
- transparent: v || c < 1,
1392
- opacity: c,
1393
- color: A,
1394
- alphaTest: m,
1395
- depthTest: !u,
1396
- depthWrite: !u,
1366
+ map: L,
1367
+ transparent: I || A < 1,
1368
+ opacity: A,
1369
+ color: c,
1370
+ alphaTest: M,
1371
+ depthTest: !b,
1372
+ depthWrite: !b,
1397
1373
  toneMapped: !1,
1398
- ...N
1374
+ ...H
1399
1375
  }
1400
1376
  )
1401
1377
  ]
@@ -1403,54 +1379,54 @@ function ze({
1403
1379
  )
1404
1380
  ] });
1405
1381
  }
1406
- const Tn = { left: 0, right: 0, top: 0, bottom: 0 }, Bn = Math.PI / 180;
1407
- function wn({
1382
+ const mn = { left: 0, right: 0, top: 0, bottom: 0 }, Sn = Math.PI / 180;
1383
+ function Cn({
1408
1384
  anchors: t,
1409
1385
  offsets: e,
1410
1386
  pivot: n,
1411
- rotation: r,
1387
+ rotation: i,
1412
1388
  children: a
1413
1389
  }) {
1414
- const { width: i, height: o } = Ie(), s = x(
1390
+ const { width: r, height: o } = Me(), l = x(
1415
1391
  () => ({ left: -1, right: 1, top: 1, bottom: -1, ...t }),
1416
1392
  [t]
1417
- ), l = x(() => ({ ...Tn, ...e }), [e]), c = x(
1418
- () => wt(i, o, s, l, n),
1419
- [o, n, s, l, i]
1420
- ), A = c.width > 0 && c.height > 0 ? c.width / c.height : null;
1393
+ ), s = x(() => ({ ...mn, ...e }), [e]), A = x(
1394
+ () => ht(r, o, l, s, n),
1395
+ [o, n, l, s, r]
1396
+ ), c = A.width > 0 && A.height > 0 ? A.width / A.height : null;
1421
1397
  return /* @__PURE__ */ d(
1422
1398
  "group",
1423
1399
  {
1424
- position: [c.centerX - c.pivotX, c.centerY - c.pivotY, 0],
1425
- rotation: [0, 0, r * Bn],
1426
- scale: [c.width, c.height, 1],
1427
- children: /* @__PURE__ */ d(dt.Provider, { value: A, children: a })
1400
+ position: [A.centerX - A.pivotX, A.centerY - A.pivotY, 0],
1401
+ rotation: [0, 0, i * Sn],
1402
+ scale: [A.width, A.height, 1],
1403
+ children: /* @__PURE__ */ d(et.Provider, { value: c, children: a })
1428
1404
  }
1429
1405
  );
1430
1406
  }
1431
- function pn({
1407
+ function In({
1432
1408
  transform: t,
1433
1409
  guideLayer: e,
1434
1410
  onChange: n,
1435
- children: r
1411
+ children: i
1436
1412
  }) {
1437
1413
  return /* @__PURE__ */ d(
1438
- Ue,
1414
+ Ge,
1439
1415
  {
1440
1416
  guideColor: "#22d3ee",
1441
1417
  guideLayer: e,
1442
1418
  transform: t,
1443
1419
  onChange: n,
1444
- children: r
1420
+ children: i
1445
1421
  }
1446
1422
  );
1447
1423
  }
1448
- const Qn = {
1424
+ const En = {
1449
1425
  left: -1,
1450
1426
  right: 1,
1451
1427
  top: 1,
1452
1428
  bottom: -1
1453
- }, Mn = {}, xn = [0.5, 0.5];
1429
+ }, bn = {}, pn = [0.5, 0.5];
1454
1430
  [
1455
1431
  ["Normal", "normal"],
1456
1432
  ["Add", "add"],
@@ -1465,49 +1441,49 @@ const Qn = {
1465
1441
  ["Difference", "difference"],
1466
1442
  ["Exclusion", "exclusion"]
1467
1443
  ].map(([t, e]) => ({ label: t, value: e }));
1468
- const kn = (t) => [
1444
+ const Tn = (t) => [
1469
1445
  t[0] * 2 - 1,
1470
1446
  t[1] * 2 - 1
1471
- ], Ln = (t, e, n, r, a) => t || (!r && !a ? Qn : Ze({
1447
+ ], yn = (t, e, n, i, a) => t || (!i && !a ? En : He({
1472
1448
  coordinateSpace: e,
1473
- canvasSize: n ?? ie,
1474
- position: r,
1449
+ canvasSize: n ?? ae,
1450
+ position: i,
1475
1451
  size: a
1476
1452
  }));
1477
- function Fn({
1453
+ function Bn({
1478
1454
  anchors: t,
1479
1455
  coordinateSpace: e,
1480
1456
  canvasSize: n,
1481
- position: r,
1457
+ position: i,
1482
1458
  size: a,
1483
- offsets: i = Mn,
1484
- pivot: o = xn,
1485
- rotation: s = 0,
1486
- transform: l,
1487
- onScreenTransformChange: c,
1488
- transformGuideLayer: A = "scene",
1489
- ...f
1459
+ offsets: r = bn,
1460
+ pivot: o = pn,
1461
+ rotation: l = 0,
1462
+ transform: s,
1463
+ onScreenTransformChange: A,
1464
+ transformGuideLayer: c = "scene",
1465
+ ...h
1490
1466
  }) {
1491
- const g = x(
1492
- () => Ln(t, e, n, r, a),
1493
- [t, n, e, r, a]
1494
- ), S = x(() => kn(o), [o]);
1495
- if (l) {
1496
- const v = Ve(l);
1467
+ const f = x(
1468
+ () => yn(t, e, n, i, a),
1469
+ [t, n, e, i, a]
1470
+ ), u = x(() => Tn(o), [o]);
1471
+ if (s) {
1472
+ const v = Oe(s);
1497
1473
  return v.enabled ? /* @__PURE__ */ d(
1498
- pn,
1474
+ In,
1499
1475
  {
1500
- guideLayer: A,
1476
+ guideLayer: c,
1501
1477
  transform: v,
1502
- onChange: c,
1478
+ onChange: A,
1503
1479
  children: /* @__PURE__ */ d(
1504
- ze,
1480
+ Xe,
1505
1481
  {
1506
- ...f,
1482
+ ...h,
1507
1483
  layoutSize: v.size,
1508
- renderOrder: f.renderOrder ?? v.renderOrder,
1509
- overlay: f.overlay ?? v.overlay,
1510
- visible: f.visible ?? v.visible,
1484
+ renderOrder: h.renderOrder ?? v.renderOrder,
1485
+ overlay: h.overlay ?? v.overlay,
1486
+ visible: h.visible ?? v.visible,
1511
1487
  rotation: 0
1512
1488
  }
1513
1489
  )
@@ -1515,16 +1491,16 @@ function Fn({
1515
1491
  ) : null;
1516
1492
  }
1517
1493
  return /* @__PURE__ */ d(
1518
- wn,
1494
+ Cn,
1519
1495
  {
1520
- anchors: g,
1521
- offsets: i,
1522
- pivot: S,
1523
- rotation: s,
1496
+ anchors: f,
1497
+ offsets: r,
1498
+ pivot: u,
1499
+ rotation: l,
1524
1500
  children: /* @__PURE__ */ d(
1525
- ze,
1501
+ Xe,
1526
1502
  {
1527
- ...f,
1503
+ ...h,
1528
1504
  layoutSize: a ? { width: a[0], height: a[1] } : void 0,
1529
1505
  rotation: 0
1530
1506
  }
@@ -1532,12 +1508,12 @@ function Fn({
1532
1508
  }
1533
1509
  );
1534
1510
  }
1535
- const Yn = 2.5, Wn = "#38bdf8", Xn = {
1511
+ const Mn = 2.5, Qn = "#38bdf8", kn = {
1536
1512
  top: { left: -0.92, right: 0.92, top: 0.92, bottom: 0.56 },
1537
1513
  center: { left: -0.92, right: 0.92, top: 0.18, bottom: -0.18 },
1538
1514
  bottom: { left: -0.92, right: 0.92, top: -0.56, bottom: -0.92 }
1539
1515
  };
1540
- function Dn({
1516
+ function wn({
1541
1517
  bend: t,
1542
1518
  bendPreset: e,
1543
1519
  bendStrength: n
@@ -1547,146 +1523,146 @@ function Dn({
1547
1523
  bendStrength: (t == null ? void 0 : t.strength) ?? n
1548
1524
  };
1549
1525
  }
1550
- function Pn({
1526
+ function xn({
1551
1527
  width: t,
1552
1528
  height: e
1553
1529
  }) {
1554
- const n = Math.max(1, t), r = Math.max(1, e);
1530
+ const n = Math.max(1, t), i = Math.max(1, e);
1555
1531
  return {
1556
- aspect: n / r,
1557
- resolution: r
1532
+ aspect: n / i,
1533
+ resolution: i
1558
1534
  };
1559
1535
  }
1560
- function Ke(t) {
1561
- const e = Ne(), { bend: n, layoutSize: r, renderOrder: a, overlay: i = !0, ...o } = t, s = r ? Pn(r) : void 0, l = Math.max(
1562
- (s == null ? void 0 : s.aspect) ?? e ?? Yn,
1536
+ function Re(t) {
1537
+ const e = Pe(), { bend: n, layoutSize: i, renderOrder: a, overlay: r = !0, ...o } = t, l = i ? xn(i) : void 0, s = Math.max(
1538
+ (l == null ? void 0 : l.aspect) ?? e ?? Mn,
1563
1539
  0.1
1564
- ), c = Dn({
1540
+ ), A = wn({
1565
1541
  bend: n,
1566
1542
  bendPreset: o.bendPreset,
1567
1543
  bendStrength: o.bendStrength
1568
1544
  });
1569
1545
  return /* @__PURE__ */ d(
1570
- sn,
1546
+ Ut,
1571
1547
  {
1572
1548
  ...o,
1573
- aspect: l,
1574
- resolution: (s == null ? void 0 : s.resolution) ?? o.resolution,
1575
- ...c,
1576
- overlay: i,
1549
+ aspect: s,
1550
+ resolution: (l == null ? void 0 : l.resolution) ?? o.resolution,
1551
+ ...A,
1552
+ overlay: r,
1577
1553
  renderOrder: a
1578
1554
  }
1579
1555
  );
1580
1556
  }
1581
- function Rn({
1557
+ function Ln({
1582
1558
  transform: t,
1583
1559
  guideLayer: e,
1584
1560
  onChange: n,
1585
- children: r
1561
+ children: i
1586
1562
  }) {
1587
1563
  return /* @__PURE__ */ d(
1588
- Ue,
1564
+ Ge,
1589
1565
  {
1590
- guideColor: Wn,
1566
+ guideColor: Qn,
1591
1567
  guideLayer: e,
1592
1568
  transform: t,
1593
1569
  onChange: n,
1594
- children: r
1570
+ children: i
1595
1571
  }
1596
1572
  );
1597
1573
  }
1598
- function On(t = "center") {
1599
- return Xn[t];
1574
+ function Fn(t = "center") {
1575
+ return kn[t];
1600
1576
  }
1601
- function Gn({
1577
+ function Wn({
1602
1578
  anchors: t,
1603
1579
  coordinateSpace: e,
1604
1580
  canvasSize: n,
1605
- position: r,
1581
+ position: i,
1606
1582
  size: a,
1607
- transform: i,
1583
+ transform: r,
1608
1584
  pivot: o,
1609
- verticalAlign: s
1585
+ verticalAlign: l
1610
1586
  }) {
1611
1587
  return {
1612
- resolvedAnchors: i != null && i.anchors ? i.anchors : t || (i != null && i.position || i != null && i.size || r || a ? Ze({
1613
- coordinateSpace: (i == null ? void 0 : i.coordinateSpace) ?? e,
1614
- canvasSize: (i == null ? void 0 : i.canvasSize) ?? n,
1615
- position: (i == null ? void 0 : i.position) ?? r,
1616
- size: (i == null ? void 0 : i.size) ?? a
1617
- }) : On(s)),
1618
- resolvedOffsets: i == null ? void 0 : i.offsets,
1619
- resolvedPivot: Dt((i == null ? void 0 : i.pivot) ?? o ?? [0.5, 0.5])
1588
+ resolvedAnchors: r != null && r.anchors ? r.anchors : t || (r != null && r.position || r != null && r.size || i || a ? He({
1589
+ coordinateSpace: (r == null ? void 0 : r.coordinateSpace) ?? e,
1590
+ canvasSize: (r == null ? void 0 : r.canvasSize) ?? n,
1591
+ position: (r == null ? void 0 : r.position) ?? i,
1592
+ size: (r == null ? void 0 : r.size) ?? a
1593
+ }) : Fn(l)),
1594
+ resolvedOffsets: r == null ? void 0 : r.offsets,
1595
+ resolvedPivot: Bt((r == null ? void 0 : r.pivot) ?? o ?? [0.5, 0.5])
1620
1596
  };
1621
1597
  }
1622
- function Hn({
1598
+ function Yn({
1623
1599
  anchors: t,
1624
1600
  coordinateSpace: e,
1625
1601
  canvasSize: n,
1626
- offsets: r,
1602
+ offsets: i,
1627
1603
  pivot: a,
1628
- position: i,
1604
+ position: r,
1629
1605
  rotation: o = 0,
1630
- size: s,
1631
- transform: l,
1632
- screenTransform: c,
1633
- onScreenTransformChange: A,
1634
- transformGuideLayer: f = "scene",
1635
- verticalAlign: g = "center",
1636
- ...S
1606
+ size: l,
1607
+ transform: s,
1608
+ screenTransform: A,
1609
+ onScreenTransformChange: c,
1610
+ transformGuideLayer: h = "scene",
1611
+ verticalAlign: f = "center",
1612
+ ...u
1637
1613
  }) {
1638
- const { resolvedAnchors: v, resolvedOffsets: m, resolvedPivot: u } = x(
1639
- () => Gn({
1614
+ const { resolvedAnchors: v, resolvedOffsets: S, resolvedPivot: m } = x(
1615
+ () => Wn({
1640
1616
  anchors: t,
1641
1617
  coordinateSpace: e,
1642
1618
  canvasSize: n,
1643
- position: i,
1644
- size: s,
1645
- transform: l,
1619
+ position: r,
1620
+ size: l,
1621
+ transform: s,
1646
1622
  pivot: a,
1647
- verticalAlign: g
1623
+ verticalAlign: f
1648
1624
  }),
1649
- [t, n, e, a, i, s, l, g]
1650
- ), C = (l == null ? void 0 : l.offsets) ?? r ?? m, b = (l == null ? void 0 : l.rotation) ?? o;
1651
- if (c) {
1652
- const E = Ve(c);
1653
- return E.enabled ? /* @__PURE__ */ d(
1654
- Rn,
1625
+ [t, n, e, a, r, l, s, f]
1626
+ ), C = (s == null ? void 0 : s.offsets) ?? i ?? S, E = (s == null ? void 0 : s.rotation) ?? o;
1627
+ if (A) {
1628
+ const I = Oe(A);
1629
+ return I.enabled ? /* @__PURE__ */ d(
1630
+ Ln,
1655
1631
  {
1656
- guideLayer: f,
1657
- transform: E,
1658
- onChange: A,
1632
+ guideLayer: h,
1633
+ transform: I,
1634
+ onChange: c,
1659
1635
  children: /* @__PURE__ */ d(
1660
- Ke,
1636
+ Re,
1661
1637
  {
1662
- ...S,
1663
- layoutSize: E.size,
1664
- verticalAlign: g,
1665
- renderOrder: S.renderOrder ?? E.renderOrder,
1666
- overlay: S.overlay ?? E.overlay,
1667
- visible: S.visible ?? E.visible
1638
+ ...u,
1639
+ layoutSize: I.size,
1640
+ verticalAlign: f,
1641
+ renderOrder: u.renderOrder ?? I.renderOrder,
1642
+ overlay: u.overlay ?? I.overlay,
1643
+ visible: u.visible ?? I.visible
1668
1644
  }
1669
1645
  )
1670
1646
  }
1671
1647
  ) : null;
1672
1648
  }
1673
- return /* @__PURE__ */ d(pt, { anchors: v, offsets: C, pivot: u, children: /* @__PURE__ */ d("group", { rotation: [0, 0, b * Math.PI / 180], children: /* @__PURE__ */ d(Ke, { ...S, verticalAlign: g }) }) });
1649
+ return /* @__PURE__ */ d(ut, { anchors: v, offsets: C, pivot: m, children: /* @__PURE__ */ d("group", { rotation: [0, 0, E * Math.PI / 180], children: /* @__PURE__ */ d(Re, { ...u, verticalAlign: f }) }) });
1674
1650
  }
1675
- const Jn = ({ settings: t, transform: e }) => {
1651
+ const Dn = ({ settings: t, transform: e }) => {
1676
1652
  const n = x(
1677
- () => /* @__PURE__ */ W("group", { name: "LightEditorGizmo", visible: t.showHelper, children: [
1678
- /* @__PURE__ */ W("mesh", { renderOrder: 1e3, children: [
1653
+ () => /* @__PURE__ */ D("group", { name: "LightEditorGizmo", visible: t.showHelper, children: [
1654
+ /* @__PURE__ */ D("mesh", { renderOrder: 1e3, children: [
1679
1655
  /* @__PURE__ */ d("sphereGeometry", { args: [0.12, 12, 8] }),
1680
1656
  /* @__PURE__ */ d("meshBasicMaterial", { color: "#facc15", wireframe: !0, depthTest: !1, depthWrite: !1 })
1681
1657
  ] }),
1682
- /* @__PURE__ */ W("mesh", { position: [0, 0, -0.35], rotation: [Math.PI / 2, 0, 0], renderOrder: 1e3, children: [
1658
+ /* @__PURE__ */ D("mesh", { position: [0, 0, -0.35], rotation: [Math.PI / 2, 0, 0], renderOrder: 1e3, children: [
1683
1659
  /* @__PURE__ */ d("coneGeometry", { args: [0.08, 0.45, 12] }),
1684
1660
  /* @__PURE__ */ d("meshBasicMaterial", { color: "#fde047", wireframe: !0, depthTest: !1, depthWrite: !1 })
1685
1661
  ] })
1686
1662
  ] }),
1687
1663
  [t.showHelper]
1688
1664
  );
1689
- return t.enabled ? /* @__PURE__ */ W(ce, { value: e, children: [
1665
+ return t.enabled ? /* @__PURE__ */ D(ue, { value: e, children: [
1690
1666
  n,
1691
1667
  t.type === "ambient" ? /* @__PURE__ */ d("ambientLight", { color: t.color, intensity: t.intensity }) : null,
1692
1668
  t.type === "directional" ? /* @__PURE__ */ d(
@@ -1720,370 +1696,358 @@ const Jn = ({ settings: t, transform: e }) => {
1720
1696
  }
1721
1697
  ) : null
1722
1698
  ] }) : null;
1723
- }, zn = ({
1699
+ }, Xn = ({
1724
1700
  source: t,
1725
1701
  target: e,
1726
1702
  settings: n
1727
1703
  }) => {
1728
1704
  if (!n.enabled || !e) return !1;
1729
- const r = new We();
1705
+ const i = new ke();
1730
1706
  if (n.mode === "point") {
1731
- const i = new _();
1732
- e.getWorldPosition(i), t.lookAt(i), r.copy(t.quaternion);
1707
+ const r = new ie();
1708
+ e.getWorldPosition(r), t.lookAt(r), i.copy(t.quaternion);
1733
1709
  } else
1734
- e.getWorldQuaternion(r);
1735
- const a = new We().setFromEuler(
1736
- new At(
1710
+ e.getWorldQuaternion(i);
1711
+ const a = new ke().setFromEuler(
1712
+ new _e(
1737
1713
  n.offsetRotation.x * Math.PI / 180,
1738
1714
  n.offsetRotation.y * Math.PI / 180,
1739
1715
  n.offsetRotation.z * Math.PI / 180
1740
1716
  )
1741
1717
  );
1742
- return t.quaternion.copy(r).multiply(a), !0;
1743
- }, Kn = ({ target: t, settings: e, children: n }) => {
1744
- const r = P(null);
1718
+ return t.quaternion.copy(i).multiply(a), !0;
1719
+ }, Rn = ({ target: t, settings: e, children: n }) => {
1720
+ const i = R(null);
1745
1721
  return se(() => {
1746
- r.current && zn({ source: r.current, target: t, settings: e });
1747
- }), /* @__PURE__ */ d("group", { ref: r, children: n });
1748
- }, Nn = (t, e) => {
1722
+ i.current && Xn({ source: i.current, target: t, settings: e });
1723
+ }), /* @__PURE__ */ d("group", { ref: i, children: n });
1724
+ }, Pn = (t, e) => {
1749
1725
  let n = t;
1750
1726
  for (; n && n !== e; ) {
1751
1727
  if ("isTransformControls" in n && n.isTransformControls === !0) return !0;
1752
1728
  n = n.parent;
1753
1729
  }
1754
1730
  return !1;
1755
- }, J = ({ children: t, layer: e }) => {
1756
- const n = P(null), r = P(0), a = be(() => {
1757
- e === void 0 || !n.current || n.current.traverse((i) => {
1758
- Nn(i, n.current) || i.layers.set(e);
1731
+ }, O = ({ children: t, layer: e }) => {
1732
+ const n = R(null), i = R(0), a = Be(() => {
1733
+ e === void 0 || !n.current || n.current.traverse((r) => {
1734
+ Pn(r, n.current) || r.layers.set(e);
1759
1735
  });
1760
1736
  }, [e]);
1761
- return ot(() => {
1762
- a(), r.current = 2;
1737
+ return je(() => {
1738
+ a(), i.current = 2;
1763
1739
  }, [a, t]), se(() => {
1764
- r.current <= 0 || (a(), r.current -= 1);
1740
+ i.current <= 0 || (a(), i.current -= 1);
1765
1741
  }, -1e3), /* @__PURE__ */ d("group", { ref: n, children: t });
1766
- }, Q = (t, e) => (t == null ? void 0 : t.type) === e, Un = (t) => null, ae = ({ children: t, inside: e }) => e ? /* @__PURE__ */ d(ge, { children: t }) : /* @__PURE__ */ d(Ot, { children: t }), Vn = ({
1742
+ }, w = (t, e) => (t == null ? void 0 : t.type) === e, Gn = (t) => null, oe = ({ children: t, inside: e }) => e ? /* @__PURE__ */ d(Se, { children: t }) : /* @__PURE__ */ d(Qt, { children: t }), On = ({
1767
1743
  children: t,
1768
1744
  insideScreenSpaceUI: e,
1769
1745
  objectRef: n,
1770
- renderOrder: r,
1746
+ renderOrder: i,
1771
1747
  settings: a
1772
- }) => /* @__PURE__ */ d(ae, { inside: e, children: /* @__PURE__ */ d(jn, { settings: a, renderOrder: r, objectRef: n, children: t }) }), jn = ({
1748
+ }) => /* @__PURE__ */ d(oe, { inside: e, children: /* @__PURE__ */ d(zn, { settings: a, renderOrder: i, objectRef: n, children: t }) }), zn = ({
1773
1749
  children: t,
1774
1750
  objectRef: e,
1775
1751
  renderOrder: n,
1776
- settings: r
1752
+ settings: i
1777
1753
  }) => {
1778
- const a = Ie();
1779
- if (!r.enabled || !r.visible) return null;
1780
- const i = je({ transform: r, parentSize: a });
1754
+ const a = Me();
1755
+ if (!i.enabled || !i.visible) return null;
1756
+ const r = ze({ transform: i, parentSize: a });
1781
1757
  return /* @__PURE__ */ d(
1782
1758
  "group",
1783
1759
  {
1784
1760
  ref: e,
1785
- position: i.center,
1786
- rotation: i.rotation,
1787
- scale: i.size,
1788
- renderOrder: n ?? r.renderOrder,
1761
+ position: r.center,
1762
+ rotation: r.rotation,
1763
+ scale: r.size,
1764
+ renderOrder: n ?? i.renderOrder,
1789
1765
  children: t
1790
1766
  }
1791
1767
  );
1792
- }, Zn = ({
1768
+ }, Hn = ({
1793
1769
  anchor: t,
1794
1770
  children: e,
1795
1771
  insideScreenSpaceUI: n,
1796
- objectRef: r,
1772
+ objectRef: i,
1797
1773
  renderOrder: a,
1798
- settings: i
1799
- }) => /* @__PURE__ */ d(ae, { inside: n, children: /* @__PURE__ */ d(
1800
- qn,
1774
+ settings: r
1775
+ }) => /* @__PURE__ */ d(oe, { inside: n, children: /* @__PURE__ */ d(
1776
+ Jn,
1801
1777
  {
1802
1778
  anchor: t,
1803
- settings: i,
1779
+ settings: r,
1804
1780
  renderOrder: a,
1805
- objectRef: r,
1781
+ objectRef: i,
1806
1782
  children: e
1807
1783
  }
1808
- ) }), qn = ({
1784
+ ) }), Jn = ({
1809
1785
  anchor: t,
1810
1786
  children: e,
1811
1787
  objectRef: n,
1812
- renderOrder: r,
1788
+ renderOrder: i,
1813
1789
  settings: a
1814
1790
  }) => {
1815
- const i = Lt({ targetFps: 24 }), { size: o } = he(), s = Ie(), l = P(null), c = P(new _()), A = P({
1816
- pos: new _(),
1817
- prevRaw: new _(),
1818
- dxHat: new _(),
1791
+ const r = It({ targetFps: 24 }), { size: o } = me(), l = Me(), s = R(null), A = R(new ie()), c = R({
1792
+ pos: new ie(),
1793
+ prevRaw: new ie(),
1794
+ dxHat: new ie(),
1819
1795
  initialized: !1
1820
- }), f = P(!1), g = P({ x: 0, y: 0, z: 0, visibility: 0 }), S = P({ x: 0, y: 0 }), v = i ? Mt(
1796
+ }), h = R(!1), f = R({ x: 0, y: 0, z: 0, visibility: 0 }), u = R({ x: 0, y: 0 }), v = r ? mt(
1821
1797
  t.target,
1822
- i.landmarks,
1798
+ r.landmarks,
1823
1799
  t.customAnchorPoint,
1824
- g.current
1825
- ) : null, m = v ? _e({ point: v, viewportSize: o, target: S.current }) : null, u = m ? je({
1800
+ f.current
1801
+ ) : null, S = v ? Et({ point: v, viewportSize: o, target: u.current }) : null, m = S ? ze({
1826
1802
  transform: {
1827
1803
  ...a,
1828
1804
  position: {
1829
- x: m.x + a.position.x + t.offset.x,
1830
- y: m.y + a.position.y + t.offset.y
1805
+ x: S.x + a.position.x + t.offset.x,
1806
+ y: S.y + a.position.y + t.offset.y
1831
1807
  }
1832
1808
  },
1833
- parentSize: s
1809
+ parentSize: l
1834
1810
  }) : null;
1835
- return se((C, b) => {
1836
- const E = l.current;
1837
- if (E) {
1838
- if (E.visible = !!(u && a.enabled && a.visible), !u) {
1839
- f.current = !1, A.current.initialized = !1;
1811
+ return se((C, E) => {
1812
+ const I = s.current;
1813
+ if (I) {
1814
+ if (I.visible = !!(m && a.enabled && a.visible), !m) {
1815
+ h.current = !1, c.current.initialized = !1;
1840
1816
  return;
1841
1817
  }
1842
- c.current.set(u.center[0], u.center[1], t.offset.z), t.smoothing > 0 ? (kt(
1843
- A.current,
1818
+ A.current.set(m.center[0], m.center[1], t.offset.z), t.smoothing > 0 ? (Ct(
1844
1819
  c.current,
1845
- f.current ? b : 0,
1820
+ A.current,
1821
+ h.current ? E : 0,
1846
1822
  t.smoothing
1847
- ), E.position.copy(A.current.pos)) : E.position.copy(c.current), f.current = !0;
1823
+ ), I.position.copy(c.current.pos)) : I.position.copy(A.current), h.current = !0;
1848
1824
  }
1849
1825
  }), /* @__PURE__ */ d(
1850
1826
  "group",
1851
1827
  {
1852
1828
  ref: (C) => {
1853
- l.current = C, n == null || n(C);
1829
+ s.current = C, n == null || n(C);
1854
1830
  },
1855
1831
  rotation: [
1856
- (u == null ? void 0 : u.rotation[0]) ?? 0,
1857
- (u == null ? void 0 : u.rotation[1]) ?? 0,
1858
- ((u == null ? void 0 : u.rotation[2]) ?? 0) + (t.followFaceRoll ? (i == null ? void 0 : i.pose.rotation.z) ?? 0 : 0)
1832
+ (m == null ? void 0 : m.rotation[0]) ?? 0,
1833
+ (m == null ? void 0 : m.rotation[1]) ?? 0,
1834
+ ((m == null ? void 0 : m.rotation[2]) ?? 0) + (t.followFaceRoll ? (r == null ? void 0 : r.pose.rotation.z) ?? 0 : 0)
1859
1835
  ],
1860
1836
  scale: [
1861
1837
  a.size.width / 100 * a.scale2D.x,
1862
1838
  a.size.height / 100 * a.scale2D.y,
1863
1839
  1
1864
1840
  ],
1865
- renderOrder: r ?? a.renderOrder,
1841
+ renderOrder: i ?? a.renderOrder,
1866
1842
  children: e
1867
1843
  }
1868
1844
  );
1869
- }, _n = ({
1845
+ }, Kn = ({
1870
1846
  editorMode: t = !1,
1871
1847
  faceMeshMaterialOverrides: e,
1872
- fallback: n = Un,
1873
- insideScreenSpaceUI: r = !1,
1848
+ fallback: n = Gn,
1849
+ insideScreenSpaceUI: i = !1,
1874
1850
  objectId: a,
1875
- onComponentChange: i,
1851
+ onComponentChange: r,
1876
1852
  renderLayer: o,
1877
- renderOrder: s,
1878
- store: l
1853
+ renderOrder: l,
1854
+ store: s
1879
1855
  }) => {
1880
- const c = Ft(), A = Yt(), f = l.objects[a];
1881
- if (!f || !f.enabled) return null;
1882
- const g = ut(l, a).filter((h) => h.enabled), S = g.find((h) => h.type === "Transform"), v = g.find((h) => h.type === "ScreenTransform"), m = g.find((h) => h.type === "ScreenImage"), u = g.find((h) => h.type === "ScreenText"), C = g.find((h) => h.type === "ScreenShape"), b = g.find((h) => h.type === "MeshRenderer"), E = g.find((h) => h.type === "FaceMeshRenderer"), p = g.find((h) => h.type === "Light"), w = g.find((h) => h.type === "LookAt"), y = g.find((h) => h.type === "PinToMesh"), L = g.find((h) => h.type === "TrackingAnchor"), T = St(l, a).map((h) => /* @__PURE__ */ d(
1883
- _n,
1856
+ const A = bt(), c = pt(), h = s.objects[a];
1857
+ if (!h || !h.enabled) return null;
1858
+ const f = rt(s, a).filter((g) => g.enabled), u = f.find((g) => g.type === "Transform"), v = f.find((g) => g.type === "ScreenTransform"), S = f.find((g) => g.type === "ScreenImage"), m = f.find((g) => g.type === "ScreenText"), C = f.find((g) => g.type === "ScreenShape"), E = f.find((g) => g.type === "MeshRenderer"), I = f.find((g) => g.type === "FaceMeshRenderer"), M = f.find((g) => g.type === "Light"), b = f.find((g) => g.type === "LookAt"), y = f.find((g) => g.type === "PinToMesh"), F = f.find((g) => g.type === "TrackingAnchor"), p = it(s, a).map((g) => /* @__PURE__ */ d(
1859
+ Kn,
1884
1860
  {
1885
- objectId: h.id,
1886
- store: l,
1861
+ objectId: g.id,
1862
+ store: s,
1887
1863
  editorMode: t,
1888
- renderOrder: s,
1864
+ renderOrder: l,
1889
1865
  renderLayer: o,
1890
- onComponentChange: i,
1866
+ onComponentChange: r,
1891
1867
  fallback: n,
1892
1868
  faceMeshMaterialOverrides: e,
1893
- insideScreenSpaceUI: r || !!v
1869
+ insideScreenSpaceUI: i || !!v
1894
1870
  },
1895
- h.id
1871
+ g.id
1896
1872
  ));
1897
- if (Q(S, "Transform") && Q(p, "Light"))
1898
- return /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ W("group", { ref: (h) => c(a, h), children: [
1899
- /* @__PURE__ */ d(Jn, { settings: p.settings, transform: S.settings }),
1900
- T
1873
+ if (w(u, "Transform") && w(M, "Light"))
1874
+ return /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ D("group", { ref: (g) => A(a, g), children: [
1875
+ /* @__PURE__ */ d(Dn, { settings: M.settings, transform: u.settings }),
1876
+ p
1901
1877
  ] }) });
1902
- if (Q(S, "Transform") && Q(b, "MeshRenderer")) {
1903
- const h = Q(w, "LookAt") ? w.settings : Xe("LookAt", a).settings, F = h.inheritChildren ? T : null, z = h.inheritChildren ? null : T;
1904
- return /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ d("group", { ref: (H) => c(a, H), children: /* @__PURE__ */ d(
1905
- vt,
1878
+ if (w(u, "Transform") && w(E, "MeshRenderer")) {
1879
+ const g = w(b, "LookAt") ? b.settings : xe("LookAt", a).settings, k = g.inheritChildren ? p : null, J = g.inheritChildren ? null : p;
1880
+ return /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { ref: (P) => A(a, P), children: /* @__PURE__ */ d(
1881
+ at,
1906
1882
  {
1907
- target: Q(y, "PinToMesh") ? A(y.settings.targetObjectId) : null,
1908
- settings: Q(y, "PinToMesh") ? y.settings : Xe("PinToMesh", a).settings,
1909
- children: /* @__PURE__ */ W(
1910
- ce,
1883
+ target: w(y, "PinToMesh") ? c(y.settings.targetObjectId) : null,
1884
+ settings: w(y, "PinToMesh") ? y.settings : xe("PinToMesh", a).settings,
1885
+ children: /* @__PURE__ */ D(
1886
+ ue,
1911
1887
  {
1912
- value: S.settings,
1913
- onChange: i ? (H) => i({ ...S, settings: H }) : void 0,
1888
+ value: u.settings,
1889
+ onChange: r ? (P) => r({ ...u, settings: P }) : void 0,
1914
1890
  children: [
1915
- /* @__PURE__ */ W(
1916
- Kn,
1891
+ /* @__PURE__ */ D(
1892
+ Rn,
1917
1893
  {
1918
- target: Q(w, "LookAt") ? A(w.settings.targetObjectId) : null,
1919
- settings: h,
1894
+ target: w(b, "LookAt") ? c(b.settings.targetObjectId) : null,
1895
+ settings: g,
1920
1896
  children: [
1921
- /* @__PURE__ */ d(gt, { value: b.settings, renderOrder: s }),
1922
- F
1897
+ /* @__PURE__ */ d(tt, { value: E.settings, renderOrder: l }),
1898
+ k
1923
1899
  ]
1924
1900
  }
1925
1901
  ),
1926
- z
1902
+ J
1927
1903
  ]
1928
1904
  }
1929
1905
  )
1930
1906
  }
1931
1907
  ) }) });
1932
1908
  }
1933
- if (Q(E, "FaceMeshRenderer"))
1934
- return /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ W("group", { ref: (h) => c(a, h), children: [
1909
+ if (w(I, "FaceMeshRenderer"))
1910
+ return /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ D("group", { ref: (g) => A(a, g), children: [
1935
1911
  /* @__PURE__ */ d(
1936
- ft,
1912
+ nt,
1937
1913
  {
1938
- value: E.settings,
1939
- materialOverride: e == null ? void 0 : e[E.id],
1940
- transform: Q(S, "Transform") ? S.settings : void 0
1914
+ value: I.settings,
1915
+ materialOverride: e == null ? void 0 : e[I.id],
1916
+ transform: w(u, "Transform") ? u.settings : void 0
1941
1917
  }
1942
1918
  ),
1943
- T
1919
+ p
1944
1920
  ] }) });
1945
- if (Q(S, "Transform")) {
1946
- if (Q(L, "TrackingAnchor")) {
1947
- const h = L.settings;
1948
- return /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ d(Qt, { followFaceRoll: h.followFaceRoll, children: /* @__PURE__ */ d(
1949
- xt,
1921
+ if (w(u, "Transform")) {
1922
+ if (w(F, "TrackingAnchor")) {
1923
+ const g = F.settings;
1924
+ return /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d(vt, { followFaceRoll: g.followFaceRoll, children: /* @__PURE__ */ d(
1925
+ St,
1950
1926
  {
1951
- target: h.target,
1952
- customAnchorPoint: h.customAnchorPoint,
1953
- offset: [h.offset.x, h.offset.y, h.offset.z],
1954
- smoothing: h.smoothing,
1927
+ target: g.target,
1928
+ customAnchorPoint: g.customAnchorPoint,
1929
+ offset: [g.offset.x, g.offset.y, g.offset.z],
1930
+ smoothing: g.smoothing,
1955
1931
  children: /* @__PURE__ */ d(
1956
- ce,
1932
+ ue,
1957
1933
  {
1958
- objectRef: (F) => c(a, F),
1959
- value: S.settings,
1960
- children: T
1934
+ objectRef: (k) => A(a, k),
1935
+ value: u.settings,
1936
+ children: p
1961
1937
  }
1962
1938
  )
1963
1939
  }
1964
1940
  ) }) });
1965
1941
  }
1966
- return /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ d("group", { children: /* @__PURE__ */ d(
1967
- ce,
1942
+ return /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { children: /* @__PURE__ */ d(
1943
+ ue,
1968
1944
  {
1969
- objectRef: (h) => c(a, h),
1970
- value: S.settings,
1971
- onChange: i ? (h) => i({ ...S, settings: h }) : void 0,
1972
- children: T
1945
+ objectRef: (g) => A(a, g),
1946
+ value: u.settings,
1947
+ onChange: r ? (g) => r({ ...u, settings: g }) : void 0,
1948
+ children: p
1973
1949
  }
1974
1950
  ) }) });
1975
1951
  }
1976
- if (Q(v, "ScreenTransform") && Q(m, "ScreenImage")) {
1977
- const h = mt({
1952
+ if (w(v, "ScreenTransform") && w(S, "ScreenImage")) {
1953
+ const g = ot({
1978
1954
  screenSpaceUI: { enabled: !0 },
1979
1955
  screenImage: {
1980
- ...m.settings,
1956
+ ...S.settings,
1981
1957
  screenTransform: v.settings
1982
1958
  }
1983
1959
  });
1984
- return h.shouldRender ? /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ d("group", { renderOrder: s, children: /* @__PURE__ */ W(ae, { inside: r, children: [
1960
+ return g.shouldRender ? /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { renderOrder: l, children: /* @__PURE__ */ D(oe, { inside: i, children: [
1985
1961
  /* @__PURE__ */ d(
1986
- Fn,
1962
+ Bn,
1987
1963
  {
1988
- ...h.props,
1989
- renderOrder: s ?? h.props.renderOrder,
1990
- onScreenTransformChange: i ? (F) => i({ ...v, settings: F }) : void 0
1964
+ ...g.props,
1965
+ renderOrder: l ?? g.props.renderOrder,
1966
+ onScreenTransformChange: r ? (k) => r({ ...v, settings: k }) : void 0
1991
1967
  }
1992
1968
  ),
1993
- T
1969
+ p
1994
1970
  ] }) }) }) : null;
1995
1971
  }
1996
- if (Q(v, "ScreenTransform") && Q(u, "ScreenText")) {
1997
- const h = Ct({
1972
+ if (w(v, "ScreenTransform") && w(m, "ScreenText")) {
1973
+ const g = lt({
1998
1974
  screenSpaceUI: { enabled: !0 },
1999
1975
  screenText: {
2000
- ...u.settings,
1976
+ ...m.settings,
2001
1977
  screenTransform: v.settings
2002
1978
  }
2003
1979
  });
2004
- return h.shouldRender ? /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ d("group", { renderOrder: s, children: /* @__PURE__ */ W(ae, { inside: r, children: [
1980
+ return g.shouldRender ? /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { renderOrder: l, children: /* @__PURE__ */ D(oe, { inside: i, children: [
2005
1981
  /* @__PURE__ */ d(
2006
- Hn,
1982
+ Yn,
2007
1983
  {
2008
- ...h.props,
2009
- renderOrder: s ?? h.props.renderOrder,
2010
- onScreenTransformChange: i ? (F) => i({ ...v, settings: F }) : void 0
1984
+ ...g.props,
1985
+ renderOrder: l ?? g.props.renderOrder,
1986
+ onScreenTransformChange: r ? (k) => r({ ...v, settings: k }) : void 0
2011
1987
  }
2012
1988
  ),
2013
- T
1989
+ p
2014
1990
  ] }) }) }) : null;
2015
1991
  }
2016
- return Q(v, "ScreenTransform") && Q(C, "ScreenShape") ? /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ d("group", { ref: (h) => c(a, h), renderOrder: s, children: /* @__PURE__ */ W(ae, { inside: r, children: [
1992
+ return w(v, "ScreenTransform") && w(C, "ScreenShape") ? /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { ref: (g) => A(a, g), renderOrder: l, children: /* @__PURE__ */ D(oe, { inside: i, children: [
2017
1993
  /* @__PURE__ */ d(
2018
- Et,
1994
+ st,
2019
1995
  {
2020
- name: f.name,
1996
+ name: h.name,
2021
1997
  settings: C.settings,
2022
1998
  transform: v.settings,
2023
- renderOrder: s,
2024
- onScreenTransformChange: i ? (h) => i({ ...v, settings: h }) : void 0
1999
+ renderOrder: l,
2000
+ onScreenTransformChange: r ? (g) => r({ ...v, settings: g }) : void 0
2025
2001
  }
2026
2002
  ),
2027
- T
2028
- ] }) }) }) : Q(v, "ScreenTransform") ? Q(L, "TrackingAnchor") ? /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ d("group", { children: /* @__PURE__ */ d(
2029
- Zn,
2003
+ p
2004
+ ] }) }) }) : w(v, "ScreenTransform") ? w(F, "TrackingAnchor") ? /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { children: /* @__PURE__ */ d(
2005
+ Hn,
2030
2006
  {
2031
- anchor: L.settings,
2007
+ anchor: F.settings,
2032
2008
  settings: v.settings,
2033
- renderOrder: s,
2034
- insideScreenSpaceUI: r,
2035
- objectRef: (h) => c(a, h),
2036
- children: T
2009
+ renderOrder: l,
2010
+ insideScreenSpaceUI: i,
2011
+ objectRef: (g) => A(a, g),
2012
+ children: p
2037
2013
  }
2038
- ) }) }) : /* @__PURE__ */ d(J, { layer: o, children: /* @__PURE__ */ d("group", { children: /* @__PURE__ */ d(
2039
- Vn,
2014
+ ) }) }) : /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { children: /* @__PURE__ */ d(
2015
+ On,
2040
2016
  {
2041
2017
  settings: v.settings,
2042
- renderOrder: s,
2043
- insideScreenSpaceUI: r,
2044
- objectRef: (h) => c(a, h),
2045
- children: T
2018
+ renderOrder: l,
2019
+ insideScreenSpaceUI: i,
2020
+ objectRef: (g) => A(a, g),
2021
+ children: p
2046
2022
  }
2047
- ) }) }) : t ? /* @__PURE__ */ W(ge, { children: [
2048
- T,
2023
+ ) }) }) : t ? /* @__PURE__ */ D(Se, { children: [
2024
+ p,
2049
2025
  n(
2050
- `Object "${f.name}" has unsupported components: ${g.map((h) => h.type).join(", ")}`
2026
+ `Object "${h.name}" has unsupported components: ${f.map((g) => g.type).join(", ")}`
2051
2027
  )
2052
- ] }) : T.length ? /* @__PURE__ */ d(ge, { children: T }) : null;
2053
- }, Tr = ({ layers: t }) => {
2054
- const { camera: e, gl: n, raycaster: r, scene: a } = he(), { session: i } = Wt(), o = be(
2055
- () => bt({ renderer: n, scene: a, camera: e, layers: t }),
2028
+ ] }) : p.length ? /* @__PURE__ */ d(Se, { children: p }) : null;
2029
+ }, or = ({ layers: t }) => {
2030
+ const { camera: e, gl: n, raycaster: i, scene: a } = me(), { session: r } = Tt(), o = Be(
2031
+ () => At({ renderer: n, scene: a, camera: e, layers: t }),
2056
2032
  [e, n, t, a]
2057
2033
  );
2058
2034
  return se(o, 1), te(() => {
2059
- const s = r.layers.mask;
2060
- return t.forEach((l) => r.layers.enable(l)), () => {
2061
- r.layers.mask = s;
2035
+ const l = i.layers.mask;
2036
+ return t.forEach((s) => i.layers.enable(s)), () => {
2037
+ i.layers.mask = l;
2062
2038
  };
2063
- }, [t, r]), te(() => (i._setR3FState({ renderer: n, scene: a, camera: e, renderFrame: o }), () => i._setR3FState({ renderer: n, scene: a, camera: e })), [e, n, o, a, i]), null;
2039
+ }, [t, i]), te(() => (r._setR3FState({ renderer: n, scene: a, camera: e, renderFrame: o }), () => r._setR3FState({ renderer: n, scene: a, camera: e })), [e, n, o, a, r]), null;
2064
2040
  };
2065
2041
  export {
2066
- Jn as L,
2067
- J as R,
2068
- Ot as S,
2069
- sn as T,
2070
- Fn as a,
2071
- Hn as b,
2072
- Ee as c,
2073
- Kn as d,
2074
- _n as e,
2075
- Tr as f,
2076
- Sr as g,
2077
- vr as h,
2078
- br as i,
2079
- mr as j,
2080
- fr as k,
2081
- yr as l,
2082
- Er as m,
2083
- _e as n,
2084
- ur as o,
2085
- gr as p,
2086
- dr as s,
2087
- Cr as t,
2088
- Ir as w
2042
+ Dn as L,
2043
+ O as R,
2044
+ Bn as S,
2045
+ Ut as T,
2046
+ Qt as a,
2047
+ sn as b,
2048
+ ye as c,
2049
+ Yn as d,
2050
+ Rn as e,
2051
+ Kn as f,
2052
+ or as g
2089
2053
  };