@vincentt-xr/sdk 2.0.0-alpha.6 → 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 (287) hide show
  1. package/GROUNDING.md +1188 -14
  2. package/dist/{DebuggerUI-C_rbLdkh.js → DebuggerUI-C-ldiozL.js} +1 -1
  3. package/dist/{DebuggerUI-DYT_dk1E.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/FaceMeshRenderer.d.ts +11 -3
  38. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +41 -5
  39. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +12 -0
  40. package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
  41. package/dist/components/FaceMesh/index.d.ts +2 -2
  42. package/dist/components/GestureListener/index.d.ts +11 -0
  43. package/dist/components/HandTracker/index.d.ts +10 -0
  44. package/dist/components/HolisticTracker/index.d.ts +69 -0
  45. package/dist/components/HolisticTracker/settings.d.ts +58 -0
  46. package/dist/components/HolisticTracker/signals.d.ts +49 -0
  47. package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
  48. package/dist/components/IrisEffect/index.d.ts +51 -0
  49. package/dist/components/IrisEffect/settings.d.ts +117 -0
  50. package/dist/components/LipEffect/LipEffect.d.ts +7 -1
  51. package/dist/components/LipEffect/LipEffectMaterial.d.ts +43 -7
  52. package/dist/components/LipEffect/LipEffects.d.ts +9 -0
  53. package/dist/components/LipEffect/defaults.d.ts +27 -4
  54. package/dist/components/LipEffect/index.d.ts +11 -3
  55. package/dist/components/LipEffect/settings.d.ts +271 -0
  56. package/dist/components/LipEffect/types.d.ts +56 -9
  57. package/dist/components/LipEffect/useLipDesignTextures.d.ts +11 -0
  58. package/dist/components/LipEffect/uvGuide.d.ts +59 -0
  59. package/dist/components/PersonCutout/index.d.ts +50 -0
  60. package/dist/components/PersonCutout/personCutout.d.ts +16 -0
  61. package/dist/components/SceneObjectRenderer/index.d.ts +9 -2
  62. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +1 -1
  63. package/dist/components/ScreenImage/index.d.ts +3 -1
  64. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +1 -1
  65. package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
  66. package/dist/components/ScreenImage/source.d.ts +6 -0
  67. package/dist/components/ScreenImage/types.d.ts +18 -0
  68. package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
  69. package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
  70. package/dist/components/SegmentationOverlay/index.d.ts +9 -0
  71. package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
  72. package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
  73. package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
  74. package/dist/components/XRMediaSurface/index.d.ts +2 -1
  75. package/dist/components/XRProvider/index.d.ts +16 -2
  76. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +1 -1
  77. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +1 -1
  78. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +1 -1
  79. package/dist/components/index.d.ts +3 -0
  80. package/dist/constants/index.d.ts +4 -1
  81. package/dist/contexts-CO0sd4JQ.cjs +1 -0
  82. package/dist/{contexts-DvQI4PqI.js → contexts-FzlnnMYD.js} +252 -246
  83. package/dist/coordinates/feed.d.ts +52 -0
  84. package/dist/coordinates/index.d.ts +5 -0
  85. package/dist/coordinates/spaces.d.ts +49 -0
  86. package/dist/coordinates/viewport.d.ts +22 -0
  87. package/dist/coordinates/world.d.ts +15 -0
  88. package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
  89. package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
  90. package/dist/debug-ui/index.d.ts +14 -0
  91. package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
  92. package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
  93. package/dist/debug-ui/media-source.cjs +1 -1
  94. package/dist/debug-ui/media-source.js +1 -1
  95. package/dist/debug-ui/product-hotspots/index.d.ts +24 -0
  96. package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
  97. package/dist/debug-ui/xr-diagnostics/index.d.ts +25 -0
  98. package/dist/debug-ui.cjs +3 -3
  99. package/dist/debug-ui.js +2057 -1687
  100. package/dist/detector-K8aej4MB.js +59 -0
  101. package/dist/detector-ijypGtse.cjs +1 -0
  102. package/dist/entries/core.d.ts +21 -3
  103. package/dist/entries/face-effects.d.ts +12 -4
  104. package/dist/entries/low-level.d.ts +22 -3
  105. package/dist/entries/product.d.ts +11 -0
  106. package/dist/entries/tracking.d.ts +26 -1
  107. package/dist/face-effects.cjs +155 -1
  108. package/dist/face-effects.js +1134 -2196
  109. package/dist/gestures/definitions.d.ts +85 -0
  110. package/dist/gestures/detector.d.ts +87 -0
  111. package/dist/gestures/index.d.ts +8 -0
  112. package/dist/gestures/measures.d.ts +101 -0
  113. package/dist/gestures/settings.d.ts +49 -0
  114. package/dist/{getFaceInfo-B43Cwq4n.js → getFaceInfo-BkZfaQs-.js} +5 -5
  115. package/dist/{getFaceInfo-DEzcL_Ub.cjs → getFaceInfo-ahPxQFGu.cjs} +1 -1
  116. package/dist/hooks/selectors.d.ts +68 -1
  117. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  118. package/dist/hooks/useFaceInfo.d.ts +13 -1
  119. package/dist/hooks/useFaceInfos.d.ts +1 -1
  120. package/dist/hooks/useGesture.d.ts +32 -0
  121. package/dist/hooks/useIrisTracking.d.ts +45 -0
  122. package/dist/hooks/useXRDiagnostics.d.ts +81 -0
  123. package/dist/hooks/useXRModel.d.ts +7 -0
  124. package/dist/hooks/useXRSession/facade.d.ts +44 -2
  125. package/dist/hooks/useXRSession/index.d.ts +2 -2
  126. package/dist/hooks/useXRSession/reason.d.ts +3 -1
  127. package/dist/hooks/useXRSession/registry.d.ts +14 -0
  128. package/dist/hooks/useXRSession/store.d.ts +52 -3
  129. package/dist/index--RgGzZ6X.cjs +47 -0
  130. package/dist/{index-uE3sKczj.js → index-CHVbH0hz.js} +4 -4
  131. package/dist/index-CeVkgsag.cjs +1 -0
  132. package/dist/index-CnGox6Xr.js +3054 -0
  133. package/dist/{index-B-s4YbWu.js → index-CsUdQ-pn.js} +113 -111
  134. package/dist/{index-CY7Z8cHV.cjs → index-DKBAh6hV.cjs} +1 -1
  135. package/dist/index-DsZwTfG0.cjs +1 -0
  136. package/dist/index-Dw6tj2Mi.js +144 -0
  137. package/dist/index-OCPjOaeP.cjs +1 -0
  138. package/dist/{index-G_5h_FJQ.js → index-s9pF4zkG.js} +999 -1014
  139. package/dist/internal-BYza1h8_.cjs +1 -0
  140. package/dist/{internal-ldPYiUF0.js → internal-vsfNQycj.js} +15 -16
  141. package/dist/internal.cjs +1 -1
  142. package/dist/internal.js +2 -2
  143. package/dist/iris/compute.d.ts +25 -0
  144. package/dist/iris/index.d.ts +4 -0
  145. package/dist/iris/lead.d.ts +19 -0
  146. package/dist/iris/types.d.ts +87 -0
  147. package/dist/landmarkMask-CbTFzBYG.js +224 -0
  148. package/dist/landmarkMask-u7es2k4X.cjs +1 -0
  149. package/dist/low-level.cjs +1 -1
  150. package/dist/low-level.js +1104 -639
  151. package/dist/main.cjs +1 -1
  152. package/dist/main.js +1519 -462
  153. package/dist/measures-9dQPdw96.js +154 -0
  154. package/dist/measures-KfJzpvod.cjs +1 -0
  155. package/dist/models/Base/index.d.ts +49 -0
  156. package/dist/models/Body/index.d.ts +1 -1
  157. package/dist/models/Face/index.d.ts +1 -1
  158. package/dist/models/Hand/GestureTracking.d.ts +1 -1
  159. package/dist/models/Hand/HandTracking.d.ts +1 -1
  160. package/dist/models/Holistic/index.d.ts +49 -0
  161. package/dist/models/Holistic/result.d.ts +68 -0
  162. package/dist/models/SemanticSegmentation/index.d.ts +31 -0
  163. package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
  164. package/dist/models/index.d.ts +2 -0
  165. package/dist/product/ProductDimensions.d.ts +16 -0
  166. package/dist/product/ProductHotspot.d.ts +16 -0
  167. package/dist/product/ProductViewer.d.ts +9 -0
  168. package/dist/product/details.d.ts +53 -0
  169. package/dist/product/index.d.ts +14 -0
  170. package/dist/product/loadModelViewer.d.ts +4 -0
  171. package/dist/product/types.d.ts +71 -0
  172. package/dist/product/useProductAr.d.ts +37 -0
  173. package/dist/product/useProductDetails.d.ts +60 -0
  174. package/dist/product.cjs +1 -0
  175. package/dist/product.js +414 -0
  176. package/dist/providers-C0Dlhh9Z.js +365 -0
  177. package/dist/providers-YNwkmNeK.cjs +62 -0
  178. package/dist/quality/XRQualityController.d.ts +25 -0
  179. package/dist/quality/controller.d.ts +33 -0
  180. package/dist/quality/index.d.ts +6 -0
  181. package/dist/quality/types.d.ts +100 -0
  182. package/dist/quality/useXRQuality.d.ts +28 -0
  183. package/dist/{renderGroups-CFt1yYLB.js → renderGroups-CN1cGFUo.js} +1 -1
  184. package/dist/{renderGroups-BJsx32q5.cjs → renderGroups-O4KmaMl9.cjs} +1 -1
  185. package/dist/renderPasses-Cg-zqmEz.cjs +21 -0
  186. package/dist/renderPasses-NnKZVfBy.js +1460 -0
  187. package/dist/scene-object.cjs +1 -1
  188. package/dist/scene-object.js +2 -2
  189. package/dist/screen2d/coordinates.d.ts +20 -0
  190. package/dist/screenTransform-BenfCtZt.js +44 -0
  191. package/dist/screenTransform-BiXdpVf0.cjs +1 -0
  192. package/dist/segmentation-9PhSvc-R.cjs +1 -0
  193. package/dist/segmentation-CeOTKemr.js +5 -0
  194. package/dist/segmentation2d/faceMemory.d.ts +28 -0
  195. package/dist/segmentation2d/faceRegions.d.ts +24 -0
  196. package/dist/segmentation2d/index.d.ts +9 -0
  197. package/dist/segmentation2d/maskUv.d.ts +23 -0
  198. package/dist/segmentation2d/rasterize.d.ts +14 -0
  199. package/dist/segmentation2d/types.d.ts +46 -0
  200. package/dist/selectors-C5G1PMYL.js +195 -0
  201. package/dist/selectors-Du_PsVnW.cjs +1 -0
  202. package/dist/{session-CANvoLD6.cjs → session-BBr0yN8h.cjs} +7 -7
  203. package/dist/{session-Dhi0OqZo.js → session-Cy0m7l7-.js} +76 -76
  204. package/dist/settings-DRR7-snV.cjs +1 -0
  205. package/dist/settings-aQk845NJ.js +73 -0
  206. package/dist/subjects/index.d.ts +2 -0
  207. package/dist/subjects/select.d.ts +62 -0
  208. package/dist/subjects/types.d.ts +55 -0
  209. package/dist/tracking/coordinates.d.ts +5 -0
  210. package/dist/tracking-config/apply.d.ts +57 -0
  211. package/dist/tracking-config/index.d.ts +7 -0
  212. package/dist/tracking-config/resolve.d.ts +25 -0
  213. package/dist/tracking-config/storage.d.ts +8 -0
  214. package/dist/tracking-config/types.d.ts +106 -0
  215. package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
  216. package/dist/tracking.cjs +1 -1
  217. package/dist/tracking.js +1056 -380
  218. package/dist/types/common.d.ts +11 -1
  219. package/dist/types/compositor.d.ts +21 -0
  220. package/dist/types/gesture-tracking.d.ts +2 -2
  221. package/dist/types/hand-tracking.d.ts +3 -3
  222. package/dist/types/holistic.d.ts +121 -0
  223. package/dist/types/index.d.ts +1 -0
  224. package/dist/types/model.d.ts +22 -2
  225. package/dist/types/nodes.d.ts +29 -4
  226. package/dist/types/segmentation.d.ts +19 -0
  227. package/dist/types/session.d.ts +48 -4
  228. package/dist/useFaceInfo-Blf7FCu3.js +303 -0
  229. package/dist/useFaceInfo-C5mO8NQY.cjs +1 -0
  230. package/dist/useXRCapabilities-B1R2ghy-.cjs +1 -0
  231. package/dist/useXRCapabilities-C68v__wB.js +30 -0
  232. package/dist/utils/fns.d.ts +6 -3
  233. package/dist/utils/integrity.d.ts +4 -1
  234. package/dist/utils/updateThrottle.d.ts +2 -0
  235. package/dist/utils/useStableUniforms.d.ts +18 -0
  236. package/docs/SDK_DOCUMENTATION.md +3 -0
  237. package/docs/api/adaptive-quality.mdx +104 -0
  238. package/docs/api/asset-lifecycle.mdx +78 -0
  239. package/docs/api/camera-permission.mdx +142 -0
  240. package/docs/api/capture-recording.mdx +9 -1
  241. package/docs/api/coordinate-spaces.mdx +165 -0
  242. package/docs/api/cross-camera.mdx +88 -0
  243. package/docs/api/diagnostics-calibration.mdx +97 -0
  244. package/docs/api/face-effects.mdx +6 -0
  245. package/docs/api/face-mesh.mdx +35 -0
  246. package/docs/api/gestures.mdx +173 -0
  247. package/docs/api/holistic-tracker.mdx +159 -0
  248. package/docs/api/iris-tracking.mdx +242 -0
  249. package/docs/api/multi-subject.mdx +95 -0
  250. package/docs/api/person-cutout.mdx +136 -0
  251. package/docs/api/product-ar.mdx +111 -0
  252. package/docs/api/product-details.mdx +78 -0
  253. package/docs/api/runtime-3d.mdx +5 -0
  254. package/docs/api/screen-image.mdx +3 -1
  255. package/docs/api/screen-space-coordinates.mdx +35 -1
  256. package/docs/api/segmentation-overlay.mdx +301 -0
  257. package/docs/api/session-lifecycle.mdx +136 -0
  258. package/docs/api/trackers.mdx +18 -0
  259. package/docs/api/tracking-config.mdx +108 -0
  260. package/docs/docs.json +23 -1
  261. package/docs/examples/lip-shaders.mdx +224 -0
  262. package/docs/guides/lip-effect-textures.mdx +292 -0
  263. package/docs/guides/lip-uv-template.png +0 -0
  264. package/docs/guides/lip-uv-template.svg +1 -0
  265. package/package.json +16 -1
  266. package/dist/FaceMeshRenderer-D1WsrTLA.cjs +0 -155
  267. package/dist/FaceMeshRenderer-DSCd1H55.js +0 -1264
  268. package/dist/FaceRetouch-CMJbGThL.js +0 -551
  269. package/dist/FaceRetouch-DsE0Dbw-.cjs +0 -134
  270. package/dist/contexts-h-9TRH0r.cjs +0 -1
  271. package/dist/index-C0-fg1Hk.cjs +0 -1
  272. package/dist/index-CxMEeCRP.cjs +0 -1
  273. package/dist/index-D67hHm44.cjs +0 -1
  274. package/dist/index-DPPpU5By.cjs +0 -17
  275. package/dist/index-DYfY9ljy.js +0 -111
  276. package/dist/index-I4eF5TKT.js +0 -1457
  277. package/dist/internal-MvKrz0Nt.cjs +0 -1
  278. package/dist/renderLayers-lDtL0_43.cjs +0 -1
  279. package/dist/renderLayers-zrK2pv5O.js +0 -13
  280. package/dist/renderPasses-C72MbZ-a.js +0 -1500
  281. package/dist/renderPasses-D-Krl6D0.cjs +0 -21
  282. package/dist/selectors-ByKNTXeA.js +0 -59
  283. package/dist/selectors-CAwmL9VW.cjs +0 -1
  284. package/dist/useFaceInfo-BSZq7AO1.cjs +0 -1
  285. package/dist/useFaceInfo-FVQBBNdY.js +0 -62
  286. package/dist/useFaceResults-C3oZkn2Z.cjs +0 -1
  287. package/dist/useFaceResults-D62STzT1.js +0 -19
@@ -1,171 +1,78 @@
1
- import { jsx as h, jsxs as F, Fragment as de } from "react/jsx-runtime";
2
- import { useThree as Ae, useFrame as ae } from "@react-three/fiber";
3
- import { useMemo as x, forwardRef as at, useEffect as te, useState as ce, useRef as X, useCallback as Ie, useLayoutEffect as ot } from "react";
4
- import * as M 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 Ue, u as be, S as dt, M as gt } from "./index-uE3sKczj.js";
7
- import { y as le, m as ft } from "./FaceMeshRenderer-DSCd1H55.js";
8
- import { W as z, U as Xe, Z as Ve, X as Ze, s as ut, t as St, b as De, P as vt, L as mt, R as Ct, E as Et, Y as je, I as It } from "./renderPasses-C72MbZ-a.js";
9
- import { d as bt, j as yt, k as Tt, f as Bt, c as pt, S as Mt } from "./contexts-DvQI4PqI.js";
10
- import { b as wt, r as Qt } from "./index-B-s4YbWu.js";
11
- import { T as kt, s as xt } from "./index-DYfY9ljy.js";
12
- import { a as Lt } from "./useFaceInfo-FVQBBNdY.js";
13
- import { g as Ft, e as Yt, u as Wt } from "./index-I4eF5TKT.js";
14
- import { useTexture as Xt } from "@react-three/drei";
15
- const Z = {
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
+ import * as B from "three";
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
- ], ge = ({
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
- size: e = [Z.width, Z.width],
35
- canvasSize: n = Z
35
+ size: e,
36
+ canvasSize: n = ae
36
37
  }) => {
37
- const r = n.width / 2 || Z.width / 2, a = n.height / 2 || Z.height / 2;
38
- return ge({
39
- position: [t[0] / r, t[1] / a],
40
- size: [e[0] / r, e[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
- }, qe = ({
43
+ }, He = ({
43
44
  coordinateSpace: t = "normalized",
44
- canvasSize: e = Z,
45
+ canvasSize: e = ae,
45
46
  position: n,
46
- size: r,
47
+ size: i,
47
48
  fallbackAnchors: a
48
- }) => a || (!n && !r ? ge({}) : t === "canvas" ? Pt({ position: n, size: r, canvasSize: e }) : ge({ position: n, size: r })), fe = (t, e) => {
49
- if (!Number.isFinite(t) || t <= 0) throw new RangeError(`${e} must be positive`);
50
- return t;
51
- }, oe = (t, e) => {
52
- const n = fe(e.width, "root.width"), r = fe(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) => {
55
- const a = oe(e, n);
56
- return a === 0 ? Object.assign(r, { x: 0, y: 0 }) : (r.x = (t.x - e.width * 0.5) / a, r.y = (e.height * 0.5 - t.y) / a, r);
57
- }, Te = (t, e, n, r) => {
58
- const a = oe(e, n);
59
- return r.x = t.x * a + e.width * 0.5, r.y = e.height * 0.5 - t.y * a, r;
60
- }, _e = ({
61
- parentSize: t,
62
- referencePixelsPerUnit: e = Xe,
63
- root: n = z
64
- }) => oe(t, n) * (Xe / fe(e, "referencePixelsPerUnit")), dr = (t, e) => t * _e(e), gr = (t, e) => {
65
- const n = _e(e);
66
- return n === 0 ? 0 : t / n;
67
- }, fr = ({
68
- point: t,
69
- rect: e,
70
- root: n = z,
71
- target: r = { x: 0, y: 0 }
72
- }) => ye({ x: t.x - e.left, y: t.y - e.top }, e, n, r), ur = ({
73
- point: t,
74
- rect: e,
75
- root: n = z,
76
- target: r = { x: 0, y: 0 }
77
- }) => (Te(t, e, n, r), r.x += e.left, r.y += e.top, r), Rt = ({
78
- point: t,
79
- root: e = z,
80
- target: n = { x: 0, y: 0 },
81
- viewportSize: r
82
- }) => ye(
83
- { x: t.x * r.width, y: t.y * r.height },
84
- r,
85
- e,
86
- n
87
- ), Sr = ({
88
- point: t,
89
- root: e = z,
90
- target: n = { x: 0, y: 0 },
91
- viewportSize: r
92
- }) => 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), vr = ({
93
- layout: t,
94
- mirrored: e = !1,
95
- point: n,
96
- root: r = z,
97
- target: a = { x: 0, y: 0 }
98
- }) => {
99
- if (t.scale <= 0) return Object.assign(a, { x: 0, y: 0 });
100
- const i = t.offsetX + n.x * t.scale;
101
- return ye(
102
- {
103
- x: e ? t.destination.width - i : i,
104
- y: t.offsetY + n.y * t.scale
105
- },
106
- t.destination,
107
- r,
108
- a
109
- );
110
- }, mr = ({
111
- layout: t,
112
- mirrored: e = !1,
113
- point: n,
114
- root: r = z,
115
- target: a = { x: 0, y: 0 }
116
- }) => {
117
- if (t.scale <= 0) return Object.assign(a, { x: 0, y: 0 });
118
- Te(n, t.destination, r, a);
119
- const i = e ? t.destination.width - a.x : a.x;
120
- return a.x = (i - t.offsetX) / t.scale, a.y = (a.y - t.offsetY) / t.scale, a;
121
- }, se = new _(), Pe = new st(), Re = new lt(), Cr = ({
122
- camera: t,
123
- point: e,
124
- root: n = z,
125
- target: r = { x: 0, y: 0, depth: 0 },
126
- viewportSize: a
127
- }) => {
128
- const i = oe(a, n);
129
- return se.set(e.x, e.y, e.z).project(t), r.x = i === 0 ? 0 : se.x * a.width / (2 * i), r.y = i === 0 ? 0 : se.y * a.height / (2 * i), r.depth = se.z, r;
130
- }, Er = ({
131
- camera: t,
132
- point: e,
133
- root: n = z,
134
- target: r = new ct(),
135
- viewportSize: a
136
- }) => {
137
- const i = oe(a, n);
138
- return Pe.set(
139
- a.width <= 0 ? 0 : e.x * i * 2 / a.width,
140
- a.height <= 0 ? 0 : e.y * i * 2 / a.height
141
- ), Re.setFromCamera(Pe, t), r.copy(Re.ray);
142
- }, Ot = ({ children: t, depth: e = 0 }) => {
143
- const { camera: n, size: r } = Ae(), 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(() => {
144
51
  if (!n.isPerspectiveCamera)
145
52
  return { width: 10, height: 10 };
146
- const i = n, o = Math.abs(i.position.z - e), l = i.fov * Math.PI / 180, s = 2 * Math.tan(l / 2) * o;
147
- return { width: s * (r.width / r.height), height: s };
148
- }, [n, r, e]);
149
- return /* @__PURE__ */ h(ht.Provider, { value: a, children: /* @__PURE__ */ h("group", { position: [0, 0, e], children: t }) });
150
- }, $e = at(
151
- ({ texture: t, name: e, overlay: n, opacity: r, position: a, rotation: i, scale: o, visible: l, renderOrder: s }, A) => /* @__PURE__ */ F(
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(
152
59
  "mesh",
153
60
  {
154
61
  ref: A,
155
62
  name: e,
156
63
  position: a,
157
- rotation: i,
64
+ rotation: r,
158
65
  scale: o,
159
66
  visible: l,
160
67
  renderOrder: s,
161
68
  children: [
162
- /* @__PURE__ */ h("planeGeometry", { args: [1, 1] }),
163
- /* @__PURE__ */ h(
69
+ /* @__PURE__ */ d("planeGeometry", { args: [1, 1] }),
70
+ /* @__PURE__ */ d(
164
71
  "meshBasicMaterial",
165
72
  {
166
73
  map: t,
167
74
  transparent: !0,
168
- opacity: r,
75
+ opacity: i,
169
76
  depthTest: !n,
170
77
  depthWrite: !n
171
78
  }
@@ -174,8 +81,8 @@ const Z = {
174
81
  }
175
82
  )
176
83
  );
177
- $e.displayName = "TextLabelMesh";
178
- const Gt = {
84
+ Je.displayName = "TextLabelMesh";
85
+ const kt = {
179
86
  color: "#ffffff",
180
87
  strokeWidth: 0,
181
88
  strokeOpacity: 1,
@@ -209,7 +116,7 @@ const Gt = {
209
116
  strikethrough: !1,
210
117
  bendPreset: "arc",
211
118
  bendStrength: 0
212
- }, ue = (t) => {
119
+ }, Ie = (t) => {
213
120
  te(
214
121
  () => () => {
215
122
  t == null || t.dispose();
@@ -217,211 +124,211 @@ const Gt = {
217
124
  [t]
218
125
  );
219
126
  };
220
- function Ht(t, e, n) {
127
+ function wt(t, e, n) {
221
128
  return n === "left" ? e : n === "right" ? t - e : t / 2;
222
129
  }
223
- function Jt(t, e, n, r, a) {
224
- 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;
225
132
  }
226
- function zt(t, e, n, r) {
227
- 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;
228
135
  }
229
- function et(t, e, n, r) {
230
- return `${t} ${e} ${n}px ${r}`;
136
+ function Ke(t, e, n, i) {
137
+ return `${t} ${e} ${n}px ${i}`;
231
138
  }
232
- function ie(t, e) {
139
+ function le(t, e) {
233
140
  const n = Math.max(0, Math.min(e, 1));
234
141
  return t * n * 0.08;
235
142
  }
236
- function tt(t, e) {
143
+ function Ve(t, e) {
237
144
  const n = Math.max(0, Math.min(e, 1));
238
145
  return t * (1.2 + n * 0.6);
239
146
  }
240
- function nt(t, e) {
147
+ function Ne(t, e) {
241
148
  "letterSpacing" in t && (t.letterSpacing = `${e}px`);
242
149
  }
243
- function rt(t) {
150
+ function Ue(t) {
244
151
  "letterSpacing" in t && (t.letterSpacing = "0px");
245
152
  }
246
153
  function ne(t, e, n) {
247
- nt(t, n);
248
- const r = t.measureText(e).width;
249
- return rt(t), r;
154
+ Ne(t, n);
155
+ const i = t.measureText(e).width;
156
+ return Ue(t), i;
250
157
  }
251
- function Se(t, e, n, r) {
252
- 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)));
253
160
  }
254
- function Kt(t, e, n, r, a) {
255
- return e.length <= r && e.every((i) => ne(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);
256
163
  }
257
- function ve(t, e, n, r, a, i, o, l) {
258
- t.font = et(r, a, i, o);
164
+ function be(t, e, n, i, a, r, o, l) {
165
+ t.font = Ke(i, a, r, o);
259
166
  const s = e.split(" "), A = [];
260
167
  let c = "";
261
- for (const g of s) {
262
- const f = c ? `${c} ${g}` : g;
263
- ne(t, f, l) > n && c ? (A.push(c), c = g) : c = f;
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;
264
171
  }
265
172
  return c && A.push(c), A;
266
173
  }
267
- function Oe(t, e, n, r, a, i, o, l) {
268
- const A = e.split(/\r?\n/).flatMap((c) => c.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(
269
176
  t,
270
177
  c,
271
178
  n,
272
- r,
273
- a,
274
179
  i,
180
+ a,
181
+ r,
275
182
  o,
276
183
  l
277
184
  ));
278
185
  return A.length > 0 ? A : [e];
279
186
  }
280
- function it(t, e, n, r, a) {
281
- const i = r ? "..." : "";
187
+ function Ze(t, e, n, i, a) {
188
+ const r = i ? "..." : "";
282
189
  let o = e.trimEnd();
283
- for (; o.length > 0 && ne(t, `${o}${i}`, a) > n; )
190
+ for (; o.length > 0 && ne(t, `${o}${r}`, a) > n; )
284
191
  o = o.slice(0, -1).trimEnd();
285
- return `${o}${i}`;
192
+ return `${o}${r}`;
286
193
  }
287
- function me(t, e, n, r, a) {
288
- return e.map((i, o) => {
289
- if (ne(t, i, a) <= n) return i;
194
+ function pe(t, e, n, i, a) {
195
+ return e.map((r, o) => {
196
+ if (ne(t, r, a) <= n) return r;
290
197
  const l = o === e.length - 1;
291
- return it(
198
+ return Ze(
292
199
  t,
293
- i,
200
+ r,
294
201
  n,
295
- r === "ellipsis" && l,
202
+ i === "ellipsis" && l,
296
203
  a
297
204
  );
298
205
  });
299
206
  }
300
- function Ge(t, e, n, r, a, i) {
207
+ function Fe(t, e, n, i, a, r) {
301
208
  if (e.length <= n)
302
- return me(
209
+ return pe(
303
210
  t,
304
211
  e,
305
- r,
212
+ i,
306
213
  a ? "ellipsis" : "clip",
307
- i
214
+ r
308
215
  );
309
216
  const o = e.slice(0, n), l = o[n - 1];
310
- return o[n - 1] = it(
217
+ return o[n - 1] = Ze(
311
218
  t,
312
219
  l,
313
- r,
220
+ i,
314
221
  a,
315
- i
316
- ), me(
222
+ r
223
+ ), pe(
317
224
  t,
318
225
  o,
319
- r,
226
+ i,
320
227
  a ? "ellipsis" : "clip",
321
- i
228
+ r
322
229
  );
323
230
  }
324
- function Nt(t) {
231
+ function Wt(t) {
325
232
  const {
326
233
  ctx: e,
327
234
  text: n,
328
- explicitLines: r,
235
+ explicitLines: i,
329
236
  maxWidth: a,
330
- maxHeight: i,
237
+ maxHeight: r,
331
238
  padding: o,
332
239
  fontStyle: l,
333
240
  fontWeight: s,
334
241
  fontSize: A,
335
242
  fontFamily: c,
336
- letterSpacing: g,
243
+ letterSpacing: h,
337
244
  lineSpacing: f,
338
- overflow: S,
339
- resizeToFit: m,
340
- minFontSize: v
245
+ overflow: u,
246
+ resizeToFit: v,
247
+ minFontSize: S
341
248
  } = t;
342
- let u = A, C = ie(u, g), I = r ?? Oe(
249
+ let m = A, C = le(m, h), E = i ?? Le(
343
250
  e,
344
251
  n,
345
252
  a,
346
253
  l,
347
254
  s,
348
- u,
255
+ m,
349
256
  c,
350
257
  C
351
- ), E = Se(i, o, u, f);
352
- const p = m === !0 || S === "shrink";
353
- for (; p && !Kt(e, I, a, E, C) && u > v && (u = Math.max(v, u - 4), C = ie(u, g), I = r ?? Oe(
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(
354
261
  e,
355
262
  n,
356
263
  a,
357
264
  l,
358
265
  s,
359
- u,
266
+ m,
360
267
  c,
361
268
  C
362
- ), E = Se(i, o, u, f), u !== v); )
269
+ ), I = Ee(r, o, m, f), m !== S); )
363
270
  ;
364
- return S === "ellipsis" ? I = Ge(
271
+ return u === "ellipsis" ? E = Fe(
365
272
  e,
366
- I,
367
273
  E,
274
+ I,
368
275
  a,
369
276
  !0,
370
277
  C
371
- ) : S === "clamp" || S === "shrink" ? I = Ge(
278
+ ) : u === "clamp" || u === "shrink" ? E = Fe(
372
279
  e,
373
- I,
374
280
  E,
281
+ I,
375
282
  a,
376
283
  !1,
377
284
  C
378
- ) : S !== "clip" && (I = me(e, I, a, void 0, C)), { fontSize: u, lines: I };
285
+ ) : u !== "clip" && (E = pe(e, E, a, void 0, C)), { fontSize: m, lines: E };
379
286
  }
380
- function Ut(t) {
287
+ function Yt(t) {
381
288
  const {
382
289
  ctx: e,
383
290
  text: n,
384
- maxWidth: r,
291
+ maxWidth: i,
385
292
  maxHeight: a,
386
- padding: i,
293
+ padding: r,
387
294
  fontStyle: o,
388
295
  fontWeight: l,
389
296
  fontSize: s,
390
297
  fontFamily: A,
391
298
  letterSpacing: c,
392
- lineSpacing: g
299
+ lineSpacing: h
393
300
  } = t;
394
- let f = s, S = ve(
301
+ let f = s, u = be(
395
302
  e,
396
303
  n,
397
- r,
304
+ i,
398
305
  o,
399
306
  l,
400
307
  f,
401
308
  A,
402
- ie(f, c)
309
+ le(f, c)
403
310
  );
404
- const m = Se(a, i, f, g);
405
- return S.length > m && (f = Math.max(12, Math.round(f * 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(
406
313
  e,
407
314
  n,
408
- r,
315
+ i,
409
316
  o,
410
317
  l,
411
318
  f,
412
319
  A,
413
- ie(f, c)
414
- )), { fontSize: f, lines: S };
320
+ le(f, c)
321
+ )), { fontSize: f, lines: u };
415
322
  }
416
- function Ce(t, e) {
323
+ function Te(t, e) {
417
324
  return typeof OffscreenCanvas < "u" ? new OffscreenCanvas(t, e) : (() => {
418
325
  const n = document.createElement("canvas");
419
326
  return n.width = t, n.height = e, n;
420
327
  })();
421
328
  }
422
- function Vt(t, e) {
329
+ function Dt(t, e) {
423
330
  const n = e.width - e.padding * 2, a = Array.isArray(e.lines) || e.text.includes(`
424
- `) || e.overflow !== void 0 || e.resizeToFit !== void 0 ? Nt({
331
+ `) || e.overflow !== void 0 || e.resizeToFit !== void 0 ? Wt({
425
332
  ctx: t,
426
333
  text: e.text,
427
334
  explicitLines: e.lines,
@@ -437,7 +344,7 @@ function Vt(t, e) {
437
344
  minFontSize: e.minFontSize,
438
345
  letterSpacing: e.letterSpacing,
439
346
  lineSpacing: e.lineSpacing
440
- }) : Ut({
347
+ }) : Yt({
441
348
  ctx: t,
442
349
  text: e.text,
443
350
  maxWidth: n,
@@ -449,50 +356,50 @@ function Vt(t, e) {
449
356
  fontFamily: e.fontFamily,
450
357
  letterSpacing: e.letterSpacing,
451
358
  lineSpacing: e.lineSpacing
452
- }), i = a.fontSize, o = a.lines;
453
- t.font = et(e.fontStyle, e.fontWeight, i, e.fontFamily);
454
- const l = ie(i, e.letterSpacing), s = tt(i, e.lineSpacing), A = Math.max(
455
- i,
456
- i + (o.length - 1) * s
457
- ), c = 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(
458
365
  e.height,
459
366
  e.padding,
460
- i,
367
+ r,
461
368
  A,
462
369
  e.verticalAlign
463
- ), g = o.map(
370
+ ), h = o.map(
464
371
  (f) => ne(t, f, l)
465
372
  );
466
373
  return {
467
- fontSize: i,
374
+ fontSize: r,
468
375
  resolvedLines: o,
469
376
  letterSpacingPx: l,
470
377
  lineHeight: s,
471
378
  startY: c,
472
379
  textBlockWidth: Math.min(
473
380
  e.width,
474
- Math.max(0, Math.max(...g, 0)) + e.padding * 2
381
+ Math.max(0, Math.max(...h, 0)) + e.padding * 2
475
382
  ),
476
383
  textBlockHeight: Math.min(e.height, A + e.padding * 2),
477
- textX: Ht(e.width, e.padding, e.textAlign)
384
+ textX: wt(e.width, e.padding, e.textAlign)
478
385
  };
479
386
  }
480
- function Zt(t, e, n, r, a, i) {
481
- 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();
482
389
  }
483
- function He(t, e, n) {
390
+ function We(t, e, n) {
484
391
  return typeof t != "number" || Number.isNaN(t) || t <= 0 ? e : Math.min(t, n);
485
392
  }
486
- function jt(t, e) {
487
- const n = zt(
393
+ function Rt(t, e) {
394
+ const n = Lt(
488
395
  e.canvasWidth,
489
396
  e.panelWidth,
490
397
  e.textAlign,
491
398
  e.bgFit
492
- ), r = (e.canvasHeight - e.panelHeight) / 2, a = Math.min(e.borderRadius, Math.min(e.panelWidth, e.panelHeight) / 2);
493
- Zt(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, {
494
401
  panelX: n,
495
- panelY: r,
402
+ panelY: i,
496
403
  panelWidth: e.panelWidth,
497
404
  panelHeight: e.panelHeight,
498
405
  bgColor: e.bgColor,
@@ -505,7 +412,7 @@ function jt(t, e) {
505
412
  bgTextureFlipY: e.bgTextureFlipY
506
413
  }), e.borderColor && e.borderWidth > 0 && (t.lineWidth = e.borderWidth, t.strokeStyle = e.borderColor, t.stroke());
507
414
  }
508
- function qt(t, e) {
415
+ function Pt(t, e) {
509
416
  if (t.save(), t.globalAlpha = Math.max(0, Math.min(e.bgOpacity, 1)), e.bgFillMode === "gradient" && e.bgGradientStops && e.bgGradientStops.length > 1) {
510
417
  const n = t.createLinearGradient(
511
418
  e.panelX,
@@ -513,13 +420,13 @@ function qt(t, e) {
513
420
  e.panelX + e.panelWidth,
514
421
  e.panelY + e.panelHeight
515
422
  );
516
- [...e.bgGradientStops].sort((r, a) => r.position - a.position).forEach(
517
- (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)
518
425
  ), t.fillStyle = n, t.fill(), t.restore();
519
426
  return;
520
427
  }
521
428
  if (e.bgTextureImage) {
522
- t.clip(), _t(t, {
429
+ t.clip(), Gt(t, {
523
430
  image: e.bgTextureImage,
524
431
  x: e.panelX,
525
432
  y: e.panelY,
@@ -533,17 +440,17 @@ function qt(t, e) {
533
440
  }
534
441
  t.fillStyle = e.bgColor, t.fill(), t.restore();
535
442
  }
536
- function _t(t, e) {
537
- const { image: n, x: r, y: a, width: i, height: o, fit: l, flipX: s, flipY: A } = e, c = "naturalWidth" in n ? n.naturalWidth : "videoWidth" in n ? n.videoWidth : n.width, g = "naturalHeight" in n ? n.naturalHeight : "videoHeight" in n ? n.videoHeight : n.height;
538
- let f = i, S = o, m = r, v = a;
539
- if (l !== "stretch" && c > 0 && g > 0) {
540
- const u = l === "cover" ? Math.max(i / c, o / g) : Math.min(i / c, o / g);
541
- f = c * u, S = g * u, m = r + (i - f) / 2, v = 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;
542
449
  }
543
- t.save(), (s || A) && (t.translate(s ? r + i : 0, A ? a + o : 0), t.scale(s ? -1 : 1, A ? -1 : 1), m = s ? -(m - r) - f + r : m, v = A ? -(v - a) - S + a : v), t.drawImage(n, m, v, f, 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();
544
451
  }
545
- function $t(t, e, n, r, a, i) {
546
- const o = a / 72, l = Math.abs(o), s = 1 - Math.min(1, Math.abs(e)), A = Math.min(1, Math.abs(e)), c = r <= 1 ? 0.5 : n / (r - 1), g = 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), S = a * e * e, m = 2 * a * e / i, v = {
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 = {
547
454
  xOffset: 0,
548
455
  yOffset: 0,
549
456
  rotation: 0,
@@ -552,118 +459,118 @@ function $t(t, e, n, r, a, i) {
552
459
  };
553
460
  switch (t) {
554
461
  case "arc":
555
- return { ...v, yOffset: S, rotation: Math.atan(m) };
462
+ return { ...S, yOffset: u, rotation: Math.atan(v) };
556
463
  case "arc-lower":
557
464
  return {
558
- ...v,
559
- yOffset: S * 0.55,
465
+ ...S,
466
+ yOffset: u * 0.55,
560
467
  scaleY: Math.max(0.2, 1 + o * e * e * 0.45)
561
468
  };
562
469
  case "arc-upper":
563
470
  return {
564
- ...v,
565
- yOffset: -S * 0.55,
471
+ ...S,
472
+ yOffset: -u * 0.55,
566
473
  scaleY: Math.max(0.2, 1 - o * e * e * 0.45)
567
474
  };
568
475
  case "arch":
569
- return { ...v, yOffset: S };
476
+ return { ...S, yOffset: u };
570
477
  case "bulge":
571
- return { ...v, scaleY: Math.max(0.2, 1 + o * s * 0.75) };
478
+ return { ...S, scaleY: Math.max(0.2, 1 + o * s * 0.75) };
572
479
  case "shell-lower":
573
480
  return {
574
- ...v,
481
+ ...S,
575
482
  yOffset: a * 0.45 * c * s,
576
483
  scaleY: Math.max(0.2, 1 + o * c * s)
577
484
  };
578
485
  case "shell-upper":
579
486
  return {
580
- ...v,
487
+ ...S,
581
488
  yOffset: -a * 0.45 * (1 - c) * s,
582
489
  scaleY: Math.max(0.2, 1 + o * (1 - c) * s)
583
490
  };
584
491
  case "flag":
585
492
  return {
586
- ...v,
493
+ ...S,
587
494
  yOffset: a * 0.65 * f,
588
495
  rotation: Math.atan(
589
- a / Math.max(i, 1) * Math.cos(c * Math.PI * 2.7) * 1.6
496
+ a / Math.max(r, 1) * Math.cos(c * Math.PI * 2.7) * 1.6
590
497
  )
591
498
  };
592
499
  case "wave":
593
500
  return {
594
- ...v,
595
- yOffset: a * 0.6 * g,
596
- rotation: Math.atan(a / Math.max(i, 1) * Math.cos(c * 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)
597
504
  };
598
505
  case "fish":
599
506
  return {
600
- ...v,
507
+ ...S,
601
508
  scaleX: Math.max(0.25, 1 - l * A * 0.55),
602
509
  scaleY: Math.max(0.2, 1 + o * s)
603
510
  };
604
511
  case "rise":
605
- return { ...v, yOffset: a * e };
512
+ return { ...S, yOffset: a * e };
606
513
  case "fisheye":
607
514
  return {
608
- ...v,
515
+ ...S,
609
516
  yOffset: a * 0.18 * e * s,
610
517
  scaleX: Math.max(0.25, 1 + o * s * 0.7),
611
518
  scaleY: Math.max(0.2, 1 + o * s * 0.7)
612
519
  };
613
520
  case "inflate":
614
521
  return {
615
- ...v,
522
+ ...S,
616
523
  scaleX: Math.max(0.25, 1 + o * s * 0.6),
617
524
  scaleY: Math.max(0.2, 1 + o * s * 0.6)
618
525
  };
619
526
  case "squeeze":
620
- return { ...v, scaleY: Math.max(0.2, 1 - o * s * 0.8) };
527
+ return { ...S, scaleY: Math.max(0.2, 1 - o * s * 0.8) };
621
528
  case "twist":
622
529
  return {
623
- ...v,
530
+ ...S,
624
531
  yOffset: a * e,
625
532
  rotation: o * e * 0.45,
626
533
  scaleY: Math.max(0.2, 1 + o * e * 0.25)
627
534
  };
628
535
  default:
629
- return v;
536
+ return S;
630
537
  }
631
538
  }
632
- function $(t, e, n, r, a, i, o = "arc", l = 0) {
539
+ function ee(t, e, n, i, a, r, o = "arc", l = 0) {
633
540
  if (l !== 0) {
634
- en(t, e, n, r, a, i, o, l);
541
+ zt(t, e, n, i, a, r, o, l);
635
542
  return;
636
543
  }
637
- 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);
638
545
  }
639
- function en(t, e, n, r, a, i, o, l) {
546
+ function zt(t, e, n, i, a, r, o, l) {
640
547
  const s = Array.from(e);
641
548
  if (s.length === 0) return;
642
- const A = s.map((C) => t.measureText(C).width), c = A.reduce((C, I) => C + I, 0) + a * Math.max(0, s.length - 1), g = t.textAlign, f = g === "right" ? n - c : g === "center" ? n - c / 2 : n, m = Math.max(-100, Math.min(l, 100)) / 100 * 72, v = Math.max(c / 2, 1);
643
- let u = f;
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;
644
551
  for (let C = 0; C < s.length; C++) {
645
- const I = s[C], E = A[C], p = u + E / 2, w = (p - f - c / 2) / v, T = $t(
552
+ const E = s[C], I = A[C], M = m + I / 2, b = (M - f - c / 2) / S, y = Ot(
646
553
  o,
647
- w,
554
+ b,
648
555
  C,
649
556
  s.length,
650
- m,
651
- v
557
+ v,
558
+ S
652
559
  );
653
- t.save(), t.translate(p + T.xOffset, r + T.yOffset), t.rotate(T.rotation), t.scale(T.scaleX, T.scaleY), t.textAlign = "center", i === "fill" ? t.fillText(I, 0, 0) : t.strokeText(I, 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;
654
561
  }
655
562
  }
656
- function Je(t, e, n, r, a, i, o, l, s) {
657
- const A = ne(t, e, l), c = a === "center" ? n - A / 2 : a === "right" ? n - A : n, g = s === "underline" ? o * 0.42 : -o * 0.08, f = r + g;
658
- t.save(), t.strokeStyle = i, 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();
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();
659
566
  }
660
- function tn(t, e) {
567
+ function Ht(t, e) {
661
568
  for (let n = 0; n < e.lines.length; n++) {
662
- const r = e.lines[n], a = e.startY + n * e.lineHeight;
663
- for (const i of e.shadowLayers)
664
- 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(
665
572
  t,
666
- r,
573
+ i,
667
574
  e.textX,
668
575
  a,
669
576
  e.letterSpacingPx,
@@ -671,10 +578,10 @@ function tn(t, e) {
671
578
  e.bendPreset,
672
579
  e.bendStrength
673
580
  ), t.restore();
674
- for (const i of e.strokeLayers)
675
- 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(
676
583
  t,
677
- r,
584
+ i,
678
585
  e.textX,
679
586
  a,
680
587
  e.letterSpacingPx,
@@ -682,18 +589,18 @@ function tn(t, e) {
682
589
  e.bendPreset,
683
590
  e.bendStrength
684
591
  ), t.restore();
685
- t.save(), t.fillStyle = e.color, t.globalAlpha = 1, $(
592
+ t.save(), t.fillStyle = e.color, t.globalAlpha = 1, ee(
686
593
  t,
687
- r,
594
+ i,
688
595
  e.textX,
689
596
  a,
690
597
  e.letterSpacingPx,
691
598
  "fill",
692
599
  e.bendPreset,
693
600
  e.bendStrength
694
- ), t.restore(), e.underline && Je(
601
+ ), t.restore(), e.underline && Ye(
695
602
  t,
696
- r,
603
+ i,
697
604
  e.textX,
698
605
  a,
699
606
  e.textAlign,
@@ -701,9 +608,9 @@ function tn(t, e) {
701
608
  e.fontSize,
702
609
  e.letterSpacingPx,
703
610
  "underline"
704
- ), e.strikethrough && Je(
611
+ ), e.strikethrough && Ye(
705
612
  t,
706
- r,
613
+ i,
707
614
  e.textX,
708
615
  a,
709
616
  e.textAlign,
@@ -714,13 +621,13 @@ function tn(t, e) {
714
621
  );
715
622
  }
716
623
  }
717
- function nn(t, e) {
624
+ function Jt(t, e) {
718
625
  const n = Math.max(0, Math.min(e.intensity, 1));
719
626
  if (n <= 0) return;
720
- 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;
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;
721
628
  for (let l = 0; l < e.lines.length; l++) {
722
629
  const s = e.startY + l * e.lineHeight;
723
- 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, $(
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(
724
631
  t,
725
632
  e.lines[l],
726
633
  e.textX,
@@ -729,7 +636,7 @@ function nn(t, e) {
729
636
  "stroke",
730
637
  e.bendPreset,
731
638
  e.bendStrength
732
- )) : (t.fillStyle = e.color, $(
639
+ )) : (t.fillStyle = e.color, ee(
733
640
  t,
734
641
  e.lines[l],
735
642
  e.textX,
@@ -741,12 +648,12 @@ function nn(t, e) {
741
648
  )), t.restore();
742
649
  }
743
650
  }
744
- function rn(t, e) {
745
- const n = Ce(e.width, e.height), r = n.getContext("2d");
746
- 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";
747
654
  for (let o = 0; o < e.lines.length; o++)
748
- $(
749
- r,
655
+ ee(
656
+ i,
750
657
  e.lines[o],
751
658
  e.textX,
752
659
  e.startY + o * e.lineHeight,
@@ -755,352 +662,353 @@ function rn(t, e) {
755
662
  e.bendPreset,
756
663
  e.bendStrength
757
664
  );
758
- const a = Ce(e.width, e.height), i = a.getContext("2d");
759
- 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);
760
667
  }
761
- function an(t) {
668
+ function Vt(t) {
762
669
  const {
763
670
  width: e,
764
671
  height: n,
765
- color: r,
672
+ color: i,
766
673
  strokeLayers: a,
767
- strokeColor: i,
674
+ strokeColor: r,
768
675
  strokeWidth: o,
769
676
  strokeOpacity: l,
770
677
  shadowLayers: s,
771
678
  innerShadow: A,
772
679
  glow: c,
773
- shadowColor: g,
680
+ shadowColor: h,
774
681
  shadowBlur: f,
775
- shadowOffsetX: S,
776
- shadowOffsetY: m,
777
- shadowOpacity: v,
778
- textAlign: u,
682
+ shadowOffsetX: u,
683
+ shadowOffsetY: v,
684
+ shadowOpacity: S,
685
+ textAlign: m,
779
686
  bgFillMode: C,
780
- bgOpacity: I,
781
- bgFit: E,
782
- bgAutoSize: p,
783
- bgWidth: w,
784
- bgHeight: T,
785
- bgGradientStops: b,
786
- bgTextureImage: d,
787
- bgTextureFit: B,
788
- bgTextureFlipX: G,
789
- bgTextureFlipY: P,
790
- underline: j,
791
- strikethrough: N,
792
- bendPreset: H,
793
- bendStrength: W
687
+ bgOpacity: E,
688
+ bgFit: I,
689
+ bgAutoSize: M,
690
+ bgWidth: b,
691
+ bgHeight: y,
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
794
701
  } = t;
795
- let { fontSize: U, bgColor: K } = t;
796
- const V = [
702
+ let { fontSize: V, bgColor: N } = t;
703
+ const U = [
797
704
  ...a ?? [],
798
- ...i && o > 0 ? [{ color: i, width: o, opacity: l }] : []
799
- ].filter((L) => L.width > 0), D = [
705
+ ...r && o > 0 ? [{ color: r, width: o, opacity: l }] : []
706
+ ].filter((Q) => Q.width > 0), Z = [
800
707
  ...s ?? [],
801
- ...g && (f > 0 || S !== 0 || m !== 0) ? [
708
+ ...h && (f > 0 || u !== 0 || v !== 0) ? [
802
709
  {
803
- color: g,
710
+ color: h,
804
711
  blur: f,
805
- offsetX: S,
806
- offsetY: m,
807
- opacity: v
712
+ offsetX: u,
713
+ offsetY: v,
714
+ opacity: S
808
715
  }
809
716
  ] : []
810
- ].filter((L) => L.blur > 0 || (L.offsetX ?? 0) !== 0 || (L.offsetY ?? 0) !== 0);
811
- let Y;
812
- const J = Ce(e, n), k = J.getContext("2d");
813
- k.clearRect(0, 0, e, n), k.fillStyle = r, k.textAlign = u, k.textBaseline = "middle";
814
- const y = Vt(k, t);
815
- if (U = y.fontSize, K !== "transparent") {
816
- const L = p === !0, q = He(
817
- L ? void 0 : w,
818
- E === "text" || L ? y.textBlockWidth : e,
717
+ ].filter((Q) => Q.blur > 0 || (Q.offsetX ?? 0) !== 0 || (Q.offsetY ?? 0) !== 0);
718
+ let X;
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,
819
726
  e
820
- ), R = He(
821
- L ? void 0 : T,
822
- E === "text" || L ? y.textBlockHeight : n,
727
+ ), H = We(
728
+ Q ? void 0 : y,
729
+ I === "text" || Q ? T.textBlockHeight : n,
823
730
  n
824
731
  );
825
- jt(k, {
732
+ Rt(Y, {
826
733
  canvasWidth: e,
827
734
  canvasHeight: n,
828
- textAlign: u,
829
- bgFit: E,
830
- panelWidth: q,
831
- panelHeight: R,
832
- bgColor: K,
735
+ textAlign: m,
736
+ bgFit: I,
737
+ panelWidth: L,
738
+ panelHeight: H,
739
+ bgColor: N,
833
740
  bgFillMode: C,
834
- bgOpacity: I,
835
- bgGradientStops: b,
836
- bgTextureImage: d,
837
- bgTextureFit: B,
838
- bgTextureFlipX: G,
839
- bgTextureFlipY: P,
741
+ bgOpacity: E,
742
+ bgGradientStops: F,
743
+ bgTextureImage: p,
744
+ bgTextureFit: g,
745
+ bgTextureFlipX: k,
746
+ bgTextureFlipY: J,
840
747
  borderColor: t.borderColor,
841
748
  borderWidth: t.borderWidth,
842
749
  borderRadius: t.borderRadius
843
750
  });
844
751
  }
845
- return c && nn(k, {
846
- lines: y.resolvedLines,
847
- textX: y.textX,
848
- startY: y.startY,
849
- lineHeight: y.lineHeight,
850
- letterSpacingPx: y.letterSpacingPx,
851
- bendPreset: H,
852
- bendStrength: W,
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,
853
760
  color: c.color,
854
761
  style: c.style,
855
762
  intensity: c.intensity ?? 0.5,
856
763
  range: c.range ?? 0.5,
857
764
  horizontalAngle: c.horizontalAngle ?? 0,
858
765
  verticalAngle: c.verticalAngle ?? 0
859
- }), tn(k, {
860
- lines: y.resolvedLines,
861
- textX: y.textX,
862
- startY: y.startY,
863
- lineHeight: y.lineHeight,
864
- textAlign: u,
865
- color: r,
866
- fontSize: U,
867
- letterSpacingPx: y.letterSpacingPx,
868
- bendPreset: H,
869
- bendStrength: W,
870
- shadowLayers: D,
871
- strokeLayers: V,
872
- underline: j,
873
- strikethrough: N
874
- }), A && rn(k, {
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, {
875
782
  width: e,
876
783
  height: n,
877
- font: k.font,
878
- lines: y.resolvedLines,
879
- textX: y.textX,
880
- startY: y.startY,
881
- lineHeight: y.lineHeight,
882
- letterSpacingPx: y.letterSpacingPx,
883
- bendPreset: H,
884
- bendStrength: W,
885
- textAlign: u,
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,
886
793
  color: A.color,
887
794
  opacity: A.opacity ?? 1,
888
795
  blur: A.blur,
889
796
  offsetX: A.offsetX ?? 0,
890
797
  offsetY: A.offsetY ?? 0
891
- }), Y = new M.CanvasTexture(J), Y.needsUpdate = !0, Y;
798
+ }), X = new B.CanvasTexture(q), X.needsUpdate = !0, X;
892
799
  }
893
- function on(t, e) {
800
+ function Nt(t, e) {
894
801
  const {
895
802
  lines: n,
896
- color: r,
803
+ color: i,
897
804
  strokeLayers: a,
898
- outlineEnabled: i,
805
+ outlineEnabled: r,
899
806
  strokeColor: o,
900
807
  strokeWidth: l,
901
808
  strokeOpacity: s,
902
809
  shadowLayers: A,
903
810
  shadowEnabled: c,
904
- innerShadow: g,
811
+ innerShadow: h,
905
812
  glow: f,
906
- shadowColor: S,
907
- shadowBlur: m,
908
- shadowOffsetX: v,
909
- shadowOffsetY: u,
813
+ shadowColor: u,
814
+ shadowBlur: v,
815
+ shadowOffsetX: S,
816
+ shadowOffsetY: m,
910
817
  shadowOpacity: C,
911
- fontWeight: I,
912
- fontStyle: E,
913
- fontFamily: p,
914
- fontSize: w,
915
- textAlign: T,
916
- verticalAlign: b,
917
- overflow: d,
918
- resizeToFit: B,
919
- minFontSize: G,
920
- letterSpacing: P,
921
- lineSpacing: j,
922
- bgFillMode: N,
923
- bgOpacity: H,
924
- bgFit: W,
925
- bgAutoSize: U,
926
- bgWidth: K,
927
- bgHeight: V,
928
- bgGradientStops: D,
929
- bgTextureFit: Y,
930
- bgTextureFlipX: J,
931
- bgTextureFlipY: k,
932
- borderColor: y,
933
- borderWidth: L,
934
- borderRadius: q,
935
- padding: R,
936
- aspect: Be,
937
- resolution: he,
938
- underline: pe,
939
- strikethrough: Me,
940
- bendPreset: we,
941
- bendStrength: Qe
942
- } = t, ke = x(
943
- () => i === !1 ? [] : a,
944
- [i, a]
945
- ), xe = x(
818
+ fontWeight: E,
819
+ fontStyle: I,
820
+ fontFamily: M,
821
+ fontSize: b,
822
+ textAlign: y,
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,
836
+ bgTextureFit: 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(
946
853
  () => c === !1 ? [] : A,
947
854
  [c, A]
948
- ), Le = void 0, Fe = x(
855
+ ), G = void 0, he = x(
949
856
  () => ({
950
857
  text: e.text,
951
858
  lines: n,
952
- color: r,
953
- strokeLayers: ke,
954
- strokeColor: i === !1 ? void 0 : o,
955
- strokeWidth: i === !1 ? 0 : l,
859
+ color: i,
860
+ strokeLayers: de,
861
+ strokeColor: r === !1 ? void 0 : o,
862
+ strokeWidth: r === !1 ? 0 : l,
956
863
  strokeOpacity: s,
957
- shadowLayers: xe,
958
- innerShadow: g,
864
+ shadowLayers: fe,
865
+ innerShadow: h,
959
866
  glow: f,
960
- shadowColor: c === !1 ? void 0 : S,
961
- shadowBlur: c === !1 ? 0 : m,
962
- shadowOffsetX: c === !1 ? 0 : v,
963
- shadowOffsetY: c === !1 ? 0 : u,
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,
964
871
  shadowOpacity: C,
965
- fontWeight: I,
966
- fontStyle: E,
967
- fontFamily: p,
968
- fontSize: w,
969
- textAlign: T,
970
- verticalAlign: b,
971
- overflow: d,
972
- resizeToFit: B,
973
- minFontSize: G,
974
- letterSpacing: P,
975
- lineSpacing: j,
872
+ fontWeight: E,
873
+ fontStyle: I,
874
+ fontFamily: M,
875
+ fontSize: b,
876
+ textAlign: y,
877
+ verticalAlign: F,
878
+ overflow: p,
879
+ resizeToFit: g,
880
+ minFontSize: k,
881
+ letterSpacing: J,
882
+ lineSpacing: P,
976
883
  bgColor: e.bgColor,
977
- bgFillMode: N,
978
- bgOpacity: H,
979
- bgFit: W,
980
- bgAutoSize: U,
981
- bgWidth: K,
982
- bgHeight: V,
983
- bgGradientStops: D,
984
- bgTextureImage: Le,
985
- bgTextureFit: Y,
986
- bgTextureFlipX: J,
987
- bgTextureFlipY: k,
988
- borderColor: y,
989
- borderWidth: L,
990
- borderRadius: q,
991
- padding: R,
992
- height: he,
993
- width: Math.round(he * Math.max(Be, 0.1)),
994
- underline: pe,
995
- strikethrough: Me,
996
- bendPreset: we,
997
- bendStrength: Qe
884
+ bgFillMode: K,
885
+ bgOpacity: W,
886
+ bgFit: z,
887
+ bgAutoSize: V,
888
+ bgWidth: N,
889
+ bgHeight: U,
890
+ bgGradientStops: Z,
891
+ bgTextureImage: G,
892
+ bgTextureFit: X,
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
998
905
  }),
999
906
  [
1000
907
  e.text,
1001
908
  e.bgColor,
1002
909
  n,
1003
- r,
1004
- ke,
1005
910
  i,
911
+ de,
912
+ r,
1006
913
  o,
1007
914
  l,
1008
915
  s,
1009
- xe,
1010
- g,
916
+ fe,
917
+ h,
1011
918
  f,
1012
919
  c,
920
+ u,
921
+ v,
1013
922
  S,
1014
923
  m,
1015
- v,
1016
- u,
1017
924
  C,
1018
- I,
1019
925
  E,
1020
- p,
1021
- w,
1022
- T,
926
+ I,
927
+ M,
1023
928
  b,
1024
- d,
1025
- B,
1026
- G,
929
+ y,
930
+ F,
931
+ p,
932
+ g,
933
+ k,
934
+ J,
1027
935
  P,
1028
- j,
1029
- N,
1030
- H,
1031
- W,
1032
- U,
1033
936
  K,
937
+ W,
938
+ z,
1034
939
  V,
1035
- D,
1036
- Le,
940
+ N,
941
+ U,
942
+ Z,
943
+ G,
944
+ X,
945
+ q,
1037
946
  Y,
1038
- J,
1039
- k,
1040
- y,
947
+ T,
948
+ Q,
1041
949
  L,
1042
- q,
1043
- R,
1044
- Be,
1045
- he,
1046
- pe,
1047
- Me,
1048
- we,
1049
- Qe
950
+ H,
951
+ j,
952
+ _,
953
+ Ae,
954
+ ce,
955
+ ge,
956
+ re
1050
957
  ]
1051
- ), Ye = x(() => an(Fe), [Fe]);
1052
- return ue(Ye), Ye;
958
+ ), Qe = x(() => Vt(he), [he]);
959
+ return Ie(Qe), Qe;
1053
960
  }
1054
- function sn(t) {
1055
- const e = { ...Gt, ...t }, {
961
+ function Ut(t) {
962
+ const e = { ...kt, ...t }, {
1056
963
  text: n,
1057
- bgColor: r,
964
+ bgColor: i,
1058
965
  opacity: a,
1059
- name: i,
966
+ name: r,
1060
967
  overlay: o = !0,
1061
968
  position: l,
1062
969
  rotation: s,
1063
970
  scale: A,
1064
971
  visible: c,
1065
- renderOrder: g
1066
- } = e, [f, S] = ce(null), [m, v] = ce(null), u = X(n);
1067
- u.current !== n && (u.current = n, f !== null && S(null));
1068
- const C = X(r);
1069
- C.current !== r && (C.current = r, m !== null && v(null));
1070
- const I = X(null), w = on(e, { text: f ?? n, bgColor: m ?? r });
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 });
1071
978
  return te(() => {
1072
- const T = I.current;
1073
- if (T)
1074
- return T.userData.setText = (b) => S(b), T.userData.setBgColor = (b) => v(b), () => {
1075
- delete T.userData.setText, delete T.userData.setBgColor;
979
+ const y = E.current;
980
+ if (y)
981
+ return y.userData.setText = (F) => u(F), y.userData.setBgColor = (F) => S(F), () => {
982
+ delete y.userData.setText, delete y.userData.setBgColor;
1076
983
  };
1077
- }, []), /* @__PURE__ */ h(
1078
- $e,
984
+ }, []), /* @__PURE__ */ d(
985
+ Je,
1079
986
  {
1080
- ref: I,
1081
- name: i,
1082
- texture: w,
987
+ ref: E,
988
+ name: r,
989
+ texture: b,
1083
990
  overlay: o,
1084
991
  opacity: a,
1085
992
  position: l,
1086
993
  rotation: s,
1087
994
  scale: A,
1088
995
  visible: c,
1089
- renderOrder: g
996
+ renderOrder: h
1090
997
  }
1091
998
  );
1092
999
  }
1093
- function Ee(t, e) {
1000
+ const Zt = "data:image/png;base64,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";
1001
+ function ye(t, e) {
1094
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];
1095
1003
  }
1096
- const ln = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAMAAADsrvZaAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAUpQTFRFqampbGxsb29vcHBwSUlJcXFxkJCQenp6dHR0cnJyo6Ojg4ODfHx8nZ2dn5+fqqqqtLS0q6urc3NzrKysra2trq6udXV1r6+veHh4eXl5d3d3i4uLqKioe3t7fX19p6enpaWldnZ2sLCwpqamfn5+hISEpKSkkZGRgYGBnp6ef39/hoaGoKCgjo6OsbGxoaGhl5eXgICAgoKCnJycjIyMoqKilZWVmpqaiIiImZmZh4eHlJSUlpaWm5ubioqKiYmJhYWFj4+PkpKSs7OzmJiYsrKyk5OTjY2NTk5OtbW1UVFRZGRkZmZmS0tLYWFhXFxcW1tbVFRUTExMVlZWbm5uWVlZU1NTY2NjV1dXaWlpUFBQa2trX19fZ2dnWFhYYmJiVVVVt7e3Xl5eampqWlpaurq6ZWVltra2UlJSYGBgXV1dTU1NaGhoubm5Zbx22AAAQndJREFUeJztnfd74kqatlnUZSQbW1YgmmiCbYJtnHN2+/SZM/FM2p3Z2Yk7G779/3/9UAJJlMpgC0rAc18z3adNcCHqVqW33orFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAjX8BYHmBIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMPiIIO+/BoC5BIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAAIIAwACCAMAAggDAYJkFKdRqutL52ijlJUGIg9DoX0yBSOn6w8p6TSvXCry/6M+wtIIUyuWDm7uL9m4pm1YJ/AgRwbjdCJKaziZ3G+2Lnb1Krcz76/4wSyqIonQOzx7X+k2H8XUSAS1IiFiCEGJc2Lig1reezm5rCu+v/IMspyDNvcurYlqUjC/RgXe1WhQGF9P6u2+JpFZ7O+fHzbnsai2jIJXTw0bS6FcJjh9x+BEaw7uNo0n//2q23n7pVOZQkeUTRCm8laoqsW9vjh+upgR8ioEldl/LvLjxOFHzxe7p/BmyZIIUtNXHRp74vsg4WpCwcV9QRx2S273fm7dWZLkEKVTWV5ISv2qztNhtiZTdOludr+H6Ugli6CFiSpcDtiCEiLmTvdV5akSWSZDy7VZOJRCEA4OerECyVzenBZl3XRibJRJEviyKxqQjxhscGAz6CJGqD81t3pVhbJZGkPLBSUkSzOkqznVlORm0IaTfiOyeNcsxZS6akWURpNx5zPV7VwSL5pwQnDnfviIqaZ0dQJAIUaidb6WHy+a8K8tS4sz1CsZdipS2biu8a8VYLIUgcmX9PicMBMEwnQuDpUTDETF7cTkXQ/VlEETWLh/U/tciSfb6Oe+qsnS4r7hghy2Iyc6+HP1u1jIIUjs+SjudK1//yvEltEALMLjC1n+b//PdkqzhunS0rkd/0XAJBCl37qvuL25EEBAuw0gsQWBMiwjp+70YWhD+bLylze+J+iUJcdeXCkLA1x4HCmLuObys8K4d77H4gtSeSv3vSFIDBHG+1lnXo4XFntHtm/HOZpu+POn2ZY13/XiHhRdEO89JZnA7tQkhiDwJHWOxnLw/F2KsGKrp1jnvCvIOCy/I9a4kSCToNmb+nGAzSOiYk1VEiI+O0F2Xvm+S+HAc7f3qCy5I4aAhDvcNQpAZ4dR/Z6hOFcSa8M2uRDu4d8EFqdzlrc5wQF/KsoOo1WIChEWxfzFzeZUMXQnqZBlr6q2dcpSnshZaELm8VzQSMxDGLBZR88nWw90KCInHx5WdnZXuXWO3VDQsCfJDMCOr40TsdaI82bvQgmjra8Sanwociwvp3ZfUt0z0V3TnCU2XY3Jmc7/ZTZDAtps4XTDxalXnXeJgFlmQwulWljh7z/23L/MOlm48rcb293kXdEFJvabKBytHeYkMxnnur8D+UgSSOznlXdRgFlmQ2HFLZQ3N1dzJXjkV/WiHOUbbbq6/JVVCrI4uvZurJs+j24AvsiAHj2kS1P0VBCl7dbip8S7j4qNv7p0kTEWC19TvDyI7k7XAgijXvYDtg6YguauOnOFdxmUgoxW69aoqGMuHAV9H4muFdymDWFxB5P0rEqevn5s94msdesyKb+UjwdhtQF9d749GortcuLiClM8SgWtUgpQ838bYfHZk5KekROiTicbgJH8Vi+hYcGEF0WJrojFXRRekuKKh/Zgl24WbnESf8TVnTJKdiI5CFlaQ2Gk2MMpBKr6keBdv2VD0w54oBXWxSPruNJprUQsryMFOWggyJNFNof2YNbJ+mKQKYk65S611DYLMEOUyKTlb20boNnkXbyn59pKmG2KM3rNv0VwtXFRBak+5ETcEK12A2IvNT2K/hSJzWJesRVrPncv8kZo95F08KgsqSOHgrupvPazlc0JylxiA8EGOPeXtyLjR4xHINe/iUVlMQWT5uCQNUpYMvwdjC2H27ltEZxQXH025zwsjZ0Lam0juInm8zoIKop1XBf9eHfNfhKxtoAHhhZzaaEgjcye2IKWXKI7SF1OQWPmrFPcP0a1bl/gSxfvU0vB8nLCDeEcMIV+3I9i0L6Yg5ZcH40YVH7lRkfSVHuHNB4uPknpU7dj34RdjfzknUcxwspiCVLpJYiWg8c9i5b6+IoKXJ9udpD+u19nD3jiPYEDWYgoiX6ijGTXMdry9EcFmfKn451PWGArG/YLEhcR9BNenFlOQ1AURBP86oSnIGUYgnMms7kreqEWrKywQ8agWvWH6YgrSfCD2YpR/PaqJGBPeZHay/q1T9uphaz963d/FFOS85cTxelsQtYcGhDtKpeSP6rU7WcUD3mUbZTEF2UnGR+kLkn7DFBZ/Kg2RHiOXe4neKH0xBbnPUQWJZzvPvIsGYrGzJF2QfLfCu2gjLKYgvSrl8vcpprCKzh/t4IguSLodvYjexRQkp1L9EOp/4V0y0B+EaHf0rZ5SqcO7bCMspiDUdD+CIB0hzj0KbK9I1BsYyW/wLtoIiylIwM41sR29acRl5PVaDEght8e7aCMspiAB+RTzW9FbiFpGnl+yAbn2IchsCBAk0YUgUeD5NhGQbB+CzIYAQYorvAsGDJ7XkxCEK0EZLiFIJNjcSAYcGgJBZgP14kOQqNAXJOCIz3XeRRsBgoCZA0F4A0EiDQThDQSJNBCENxAk0kAQ3kCQSANBeANBIg0E4Q0EiTQQhDcQJNJAEN5AkPeRUyld1zVN0/VUarYxahCENxDkPeRM5nlfl2OFQiymZF4zmVkqAkF4A0FYfNMq65eX14/37cZRn7X2fffp5fC4qX2bUQEgCG8gSBDKdqpQvt1p13P5qiiqBmI6na5mS43uZa2sPc8i7QsE4Q0ECWIz1q2Lkh1sbuVrI8Z/WJkoc1cHszAEgvAGglBQtMLqzloyrfZlMBQRfBg/FhO9t46iTXlnMgThDQQZRcsUzi6KKjHyg1l5Wa1TCOz/ilv/JFL2Yac55UOAIQhvIMgIevNrQ3Q1G3a3yqdJ/2dxkm69nWrTVASC8AaC+NCUg5NE2j4Swt+zck54Io4rarq9Lk8xkTQE4Q0E8aLrJzmjX+W+GE4L4j0y0D41Il5tTDEPPgThDQRxo+zfrKW9p57ZilhHO3mvkvknkcR6V5vW4iEE4Q0EcaEpN720r6F4j35vSyw+FqY05QtBeANBhijNblYaPW+LiTEekQTx4jgzlYEIBOENBBkg106KzmFbYzcgxnRv/0XVtdX9aZQJgvAGgjjotQaxTzOdQBDjaqmSQMTe7T+mUCgIwhsIYiOfttJO92oSQayXEKIWj7fDPxYYgvAGgljotQtVGi4HTuCHvWJCpKPT/dANgSC8gSAmSuVEHCyUTzRIt1bVzdiTRvgny0MQ3kAQAy3VHY7PrYXBMQWJDwURqleFsA2BILyBIAa1Q+MYDkEi8UEvi6GE/2JZvSzj2KHHsBcMIQhvIEif7fUWccbm9pK5a6w+nNhyDeL9gSfGCwWpuLMZbskgCG8gSH8AknqojlR3jyDC4A9/DKPnBUQtNcNdL4QgvIEg/RHImURGBh6OEWZcr7ULxB7BE1rooh3TSO7KoRYNgvAGgsT2m2vSyNDc6UxZNkiSNRIfbpeidLHMB4q3oSYGgiC8gSCZVFdK2zuivIIQidj1Pm4M4M3mY9jh8gsS7z+j/4qrSirEwkEQ3iy9IIp+XRLMtoH4GgRLA7Pa53OJYrJUKubyKvFsDnG/wNxlSPL3SohzvRCEN0sviJ5qiJTmwI7HMtoPKd86ub7d6xx01s/ednNi4BjEWi6sF0Icp0MQ3iy9IPJ6zq7ZfkPMfbVEbO10Ypnn/VQmlUrtp5Tm2VGWUFsQwXpFeiXEQQgE4c3SC6J1RStindIgEEEsndymDKxuk66n9Oe9lcGuqhFBjKneRi28LbgQhDfLLsj2aX0wfys4C4VxJ1Nc+mpvtDmQM5WtKs0owZrjyp39JbTiQRDeLLsg306ylhzDaj4YoEvFm+1t2ou2t49baWtpxHvdzJeqpfBG6RCEN8suiN4S/QvoZtRIv9elJp9iVD+Ml52vqSPjehtSXQ1thzoE4c2SC7J/oPoHElZLQCS1tK4ED7dTzZ4YsHNEIF9DWwqBILxZckEyZ/6BhN2MCFLyMcboKinaYUsKaEKEi1pY5YMgvFlyQVYbhPgroDX6Tnd19mTU/kuWevH6FI/DKh8E4c2SC3KeVSXq/g7SLgSNP2z0TFcN2DYiXoaV4gSC8Ga5BdEPpZEWxBqm52/eHWhvd0oqtfL2ByFh5W+AILxZakGU/bOR/eeWH+rFGBNR31bSdEHi94WQhukQhDdLLUhKfxT8KXfNVRGSv3kd4+V7JUK9fvFGJ6SJXgjCm6UWRG9ejExEmSN0tVcZ5/WpR5EuSP0wpIBFCMKbpRZEO+/5E5hYa+j5s7HCqTKrOXrtzXZDCliEILxZbkFuSpQRSP//2c5YYwg9lgyYxroPqYQQhDdLLYj8mPNVP2sLulBcHasFkMtrKvUCkrVCOCWEILxZbkG20nFvniv7zM766XhvULtIUy+fsBtS7gYIwpulFiTWlnyTWFbMunTUHO/1hUfaanr/HVshnQ8NQXiz3II0Rs86MNqQ9EVlzDc4K9KvX2s7nE1TEIQ3yy3I2sgyiPnv6t240YY3Sfr16+1DEAgy/zSI/4Ob0bzp+3EFobcgcaGXCWcpHYLwZrkFMcYgo4YI4sO4Y5CdHPXyCT0FYxAIMvfI9+roOoiRhLq1Ot4blLfyVD/imMWCIAuA/Jb3BSva6X+KzfGicZu0dRDjPbAOAkEWAOWpOJowzhAkV35nM4j9+lqduqNQUK9CKiEE4c1SC6Kd7xJPRt64fbxB9WYsQVKrtCFIHLFYEGQx0A/axLcn3fxDUC/GquCpsyq9BUleY8MUBJl/MsrJyBDEzJEl5MbaVV45om0p7L/H0TrC3SHI/KO8nvmSvzkZRdWLMdYx/rmTp1deATsKIchCsP9CqIIQUtx7d0+gXFij70mPk5UUBIEgi8BtzncqiJVjt6/Nfeqdcbqi74j0vFhx8fwZg3QIsggc7PoH6c75OMnbbfY4InPQC/BDyN2GlXsUgvBmyQWRu3H/wWvOQWutdeZMlF5r+0/9HGS93j0Iq3wQhDdLLsj+nhSQPlRQSwdasCKpypromSK2By/mGSFPyM0LQRYDpZCgp0fsV3WxsZEJ6CrJeu0uKwm+Yz+JdRSupK6Ptcw4DhCEN0suSGxzK0sfRwj9il46pJ8PEsus9+yDcb0n6JiCiHWcDwJBFoV/ngckJjGnsnqXldRIbVcyhb01yepMeZWyGpHs27fQigdBeLPsgsS0NjU7op3COn+0kfo/z2yW/I/91buEeRihRG1ASGs1tB4WBOHO0gtSPqeeYmDHvQtSevd6tVmLaXofJVZuls/X8ubBIFYb4n6J8U9CxMcxN5OMAwThzdILosVatCbEVMAchovFtbuzvbKma0p576XbLlVVZzjunQAzu1yEFDshlg6C8GbpBZG1nQT1EhBiHnsuGS1FNVHv9XZ79WJWtY9UtyetXF0se9Cev5NxTjoEWSBStXvqNbBbCecMddL/D7vRsP4g3i6W88DRcUiBvCYQhDcQJLZ/nLcX0H2B78RqK+xMDoL9lxMUbww47NOpBtoIgngW1tk5JhCENxAkFlNWjG6U0aei18V3GcQAE9JuhtjBgiD8gSCx2HalJBrTth8TxGlXjEG6lA8tTNECgvAGgvTJHJfsscZH/LBeZfbQsjvhrRGaQBDeQJA+cuwxPTJrO4kh9iBEvSqHk3F0AAThDQQx0PV2+mNjEGGgSFwQW+MdKzIBEIQ3EMREW70TjTH25III1hJI/z+ltdswJ7BMIAhvIIiJkukcGQvnk/shOJYIiRczOh6zWBBkEZEPSumPdLHslwhq9iVlLhFCEAiykHw77EkfG4MYf0nFbibMJXQbCMIbCDKgcNwSByvi3vofZIe1+t7/n1g/C22brRsIwhsIMkQ7uKs6gVfO7NTIAVQDcVzTu4L4cDu6sSoMIAhvIMgQPbN6VzX3ehCJuAwIaDqI8wQp3Q7cvf5JIAhvIIgbJXVWMjcL2pXf3DVIvUSD1Q9JEqp3ijKV9gOC8AeCeEhlztfy/TbBCT+U6BNbg9De/lOqpafxThP5CBCENxDEh174WlcHI5GgHtZgA7paPOnsT2H6ygaC8AaCjJCp3NdFiQy2DVIvkPGQKqaLD+vTGXzYQBDeQJAR5NfCXruYHozBKddHMvfiisXGYSUTcniiFwjCGwhCQVaaq09Jqe9APKCPZQiSezstx6bXuzKBILyBIHQyqb2nB2MfFX0WS00cPd4q+1OauxoCQXgDQQJJaRs7F2tJI5FJfLBq3u9e5Yu7V4+3hc2pDj5sIAhvIAiTZ61z83ax1mvVS8lkslTvHTXuzvaU17D3fQQBQXgDQZgo+/sZLVYoVw721o/XN1bL5ZiS2n+eReNhAkF4A0HGQEmldE1RFE2fTsRVMBCENxAk0kAQ3kCQSANBeANBIg0E4Q0EiTQQhDcQJNJAEN5AkEgDQXgDQSINBOENBIk0EIQ3ECTSQBDeQJBIA0F4A0EiDQThDQSJNBCENxAk0kAQ3kCQSANBeANBIg0E4Q0EiTQQhDcQJNJAEN5AkEgDQXizEILIqSmnp+IGBOHNQgjyrO/PLI3CbIEgvFkAQfTM+sphjXcppgME4c38C/KsnxXV/N1idrIgCG/mXRAttX6XFgQhfafNOCPPTIAgvJlvQRS9fL6bNQ4pILlDeVbpDmcIBOHNXAuiZLSdXZGYxxGQo3N98doQCMKbeRZEV9bbaSOztHnoplo/nspJzFyBILyZY0Fe5cMH0T4r0DgPSmzvPfMuU9hAEN7MryB/6dyLgqvI/f/VD155lypkIAhv5lQQRSk8JUXX+YHmqeXqbvl1scYhEIQ38ymIsl15Kqru05/Ms81J9aS2WOMQCMKbuRQkVXvp5X0n0JozWaR6tViGQBDezKMg+6c7LVMHjyDmseVS/qmwSJ0sCMKb+RNEfz0uGb0rc+ZqWGRijEL6/6uePC9Q1AkE4c28CaLrzbesJAmCpBLPGMS0w2hV8luzPgZqikAQ3syZIKnU3lXO6FtZDYini2W2Kn1xcjeLE5YFQXgzX4KkalslyXZD8J5hLjiKEJJ7yizK9hAIwpt5EkTXT7eyKrHGGoJzcPlI2Yla39jmXdaQgCC8mSNBUq9f62YLQaiFHhS+P1yvv/yFd2nDAYLwZm4E0VLH7aqoxgVVoteYYeH745DSobYQvSwIwps5EUTW9cvdar/5iAvvNCBGE0IEdbeyvwjbQyAIb+ZDEH1/482evPIOzQP8EAS1cQxBZgsE4ca20nnIEjIYnr8jiLUcclGZ9Uhd2w7dSQjCm3kQ5FW7M7bVStZMLtOOgSACUe8rMy7nN2Uz7IEPBOFN5AVRdP22pZqRV9Lo6ge19JLVGRMbFW123SxFS3WTVwexcBWBILyJvCDbykpPNFcAJcryILXwxDYkf6LPLLRX3laeilJ+rfMaqiEQhDdRFyRzeSU6kYn24uB7nSxnHVEQqish39CDkQ+2zAD80qESZqwkBOFNtAXJxG5bVVMLY4LXaTxsRRxdBHtfuvWX/bj5Tyl5NqOgk+2D+4SRXUWQds/CTD8EQXgTZUGU7cqJSi2eGWVibAcxtkkNGgxLItfzJJK/nEkeh3/c9iQzu4oQl7JbsfB2xkMQ3kRRECtcXdZWb5IidVVQGELEXJYIgwbGEMb1NCLldgrT3h4iK6mdrGT8YqtE1fqGHFa7BUF4E0VBTLRU7KTlTsvgLp9kT+USIia7b3kr/H1kCG8KUzrfnrIhmnyWlNzOqmudsJbxIQhvoiqIrpzvimqAH6YbZmUUTzZi2kteGg5CXJEo1haq5PF0hyF6sz/8GAx7jF5WXKqvyOFsSYEgvImoIJnC9ZFqLHywBOl3oLbKr4r2ep8zt9+ahrgFMVHbe9PM2rvf6WZVMpwksGakE2e1zTDeHYLwJpKCyH/Za6vWuiC9fJIRtChVd8+sqHalW1WHnRzPBzFGKfUpBp1826sP12cEexLNmGFux8IwBILwJoKCyLHaY1VkBSaaKX7U0knZ7jxp2knOXB/0xaLYCyhqY12ZUhsiX5p+SJKVg2gwD90vTOu8/PlfCkF4Ez1BFH3jLWElvQoQxOjoE7H3UnaqvaytvomESMSX6cQZuVcvClNJ5KDHrnfTZrYhYi9iWr/eLIXYePn8miEE4U3kBNmsXJfSZNijp5dPyN2XFdfgW67dpQfDEE8DYv5fvCpkwi/qt9WTrKt/JQwLbRZESjwpn12FgSC8iZogWvmtJNlDbrcg1n85vXyxtFPRPR2YzOpaerjW7rxmsNKe/RoLfbI3E7vLkkGfarhF3rGESMkn+ZNeQhDeREuQzPNeT4iT0XbDGQOb92uSbR+PxuluNCTB18dyvTz7+BpyG/Jaa1B/l+fX3svfPvVLIAhvoiRIRm62c8SXc9flhxWTJaV3zzOUaSm52R8PSMYEF+0DkepjLExDlMJNSwqaZRv8WqIe3RhF+/BoHYLwJkKCaJuXF3kztMqz7XzQtSeqIYiUf9jQ9ykv17cPjwbJ5PxVt/+WxafN8KayMspLK03eFaTvZeu88ImYewjCm+gIkimf5FQnrt0viFXJjfYjeSMHjCbk2HHSDsUamSDuiyXlnrbDakO0wn1SJfTunFdLoibvtI8vw0AQ3kRFEE3f6Gbt0Fx/YVyrC/mHQyWwlsv6dcKKTqGsGBKJJDfCmeyVt2PdvLMyyRTE8F2q9ofqH227IAhvIiLIduYmSyTqnsHh7Kmk5k4U5qD3/3aSg6ja0cS9QvI4DEH0zcpWWqCUlK5Iv2t4t/pRQyAIb6IgiKylNo7yVoSumfhqNPWVWdGqjdv3+kipw4QzdPYIYsat9Ls76583JFXYq5v5Tz2h9cGC9J8qlY5rH+vdQRDeREAQJSWf76Yle/tT3FfxBmsLUuKio793I1ZiJ0UyWI9wC2KEoRBxbf2zob368+GROmb7Ya6pGy6pR18/lvAEgvAmAoKkTq+M7apEsHO++Y5Ws0tEenvjdFPkwleJjDQhgy3tUmv9c4GL28pKzgpu7xfSmFdjMpidlvInMm3q7T0gCG+4C5LRLi+qVqBf3IkUcXeSrCVqkm0c7491D1YqbVWw94K4BHEW1cV2+TOZTpTydZIIA0EkZ3gUd6+oe+22D3LP7tT2J1/MhyC84S3Ipr4jDuZmXRXaUobYi+di6WnswYOiH6WtAQK1ZqkXnzAkE7vK++Ihh6cxCE7CIeoVFdJHq5mJDYEgvOEriB57WVPtGif4xgyGIeZcKpGydwcTDK6V2kk6OEMpybbLH1wO0QvnPVWVvApYa5NmMe2JX7ohhEi9m4mzEEEQ3vAURNGVs3p62K3ytCDWfJY591RcKaQmufemVo/SQUNoQ7eVjwWd6K/HdSuo3jM/Zv4iYp57RZiC9NvBR23CNgSC8IanINq6Obnr/M7RdQuz0ontvfJkN15lu3MVvJckTvJ3H4ns1ZSzonEEonejo2BPLRCiDlQJ8EMwNqacTvZRIAhvuAkip2rnZveKWoK4PfjoNx93qxOPGZTtvWTAEMTULnGtTzyXJcvXdWIlQPVtyrL3dkkkd2QeYUINJ7ZGKn03NyY6YRSC8IabIP+sXeSEgCGtXe2MfYOtF/0jt/v946IYsJ/duOfnXvQJVwy/ld+qxNqO4mkjhCG561ilmyPULpZgbzs0zk98neADQRDe8BFEllP9+zExd3PH46NVoH87Nrd6l7ZqH1y2eL48ovd1rFnjxGQbqHT5oCVaOlu7UjzvZ1oiFm/12Pb+ZTJgbcSa4jLmex8z4zciEIQ3PASRNb3WTaaHpzmPFsCsSmL9sPLhPavyWUKiC2IGf9T3xg+PkrX903baGmlYy42eMYg5hSU2zs1GSXvp0Zsu8/wfY6JLSjwqY5+0A0F4w0MQTb8+Ep0JH2E4SPf2XOL57upnzveQn5LUj2ZlWCDJw+dx7+N65roleRY7RgTJXzmrK3KnnQ4QxD6VQUhfbECQj79mtnAQ5Hn1rKQK/mVn5x9Ol6V/o43tfya0UC4/Va08cv7Ad2vZYvd0zN7bt8J5XbVmb519KfFBZgaruPmT1YxTVs04CGGwh955nh22aJFvjxsSBkF4M3NBUq8dc5WC/nvjdh4SKf9w+bnd3AYnaXP1LmAioFcYKwv7pryVoCTcIs4qvxFo1S24XqBrKwmnwSFOXhXPpxTU+tl4fUcIwpsZCyLLq18TQcvc9v3YSPXWWgnhHBp5/86cKKOHpQvSbifzbhMlK50rK6GQa/pWcDIMmRnj1NZX38Lj9uGuKMSJkyzLt8ne8F9NnyjKGO0jBOHNbAXJKKcXxjRPQMCSvddJSh8dj1N73mXz4E4klBwQ9m/LX8Xe62XJ+t59flDRPSrbXSaSbp37NwHrWsdey5ec8GRP+JYRd5J4LGy//xkhCG9mKsi21jXO44zTU4/E7W4LSbzFlHAyssu1hhqnd+eMXyQ2Vt95A+WmJFqjes9ktF3pzXnqi9XUyJBb0U+30gOPvGMt64WEVI867wfAQxDezFIQrfaYU+3qEXBT7z8qfiCmLwg5tdegTyRba3fVrQrr5Sn5rGVMPRHiexNneEFIur1Kmw2TXwt3VafLaKe7c15qx/8S8Wrv3ZgwCMKb2QmS2rx9IPY0aVAcSL/rkb/rhJlGd7NizNDSc2UZbcj9fvBIfTOzkjZzEFnZ5P0b5Y2V/sRdYFps/a04CO/1vHRwnLWUfHl+Z54AgvBmVoLosdOTPHEiLoK6WGK1fpYJ9+jm7XI9KOjEKEr6pBbwQjnVvB/urfVtczQ7V0QtHTIWNFLHR+nBZJdPTHvCN9+tsFfVIQhvZiOIrO931nKq+6Ay2q8Vs1e3kwaEv8t+QNCJFc8iJZ8K1CqqaM121uoL2Qe++cbohKi9a1Zpte3jdpr4P615dINjiFTcYqcEgiC8mYkgSqaykyDCMGc7feBMkmeVKZxSoHWSjIhIKfGV+jv37dwMxBVi4jOksVFgrogrSvmkGvd/WGE4/dtHXLtl9bIgCG9mIoh+sOXs5LYFcVc0J29ievc2lMldP4r+VLcWs0enBsxFu8PRTp1cvrUnau0+0nDd3xxxG0cqHG28uxSvFawE8M5dwQ7cGn72uJBe22BM2UEQ3sxAkG/bX3vS6IFqzgKB3QkhpcDRwGfRMuc5szLS96kLyctXX0uQypwlJH/krtP8Cea2qOrWWAe76WdJZyAzSB3hekNjUqv0kgmczYIgvJm2ILKmHLTTxFk2cP8Oe7bT3Kwq5XePwx2ce9Bv8lbEB30+K3nsXcpQVh+yUtwfLea0d1as42NqvLlo+dYIzHTOy/LnjDSvQ+4+cMs9BOHNtAXJ6IcPVWe3EGWjkRUrJeVOOpOn/Bif/dRWYmQxY1gWsbHnCjpRlNW7vOQME7xFto95k4pn44bC6KlOwx6qj8xu2/t1pexWMyBuGYLwZsqCbO7dZ1Xqxo9BXKLxR/KyMsWTmmPGAVQr1eDZM0HtNYer2vpxKS0Mbvqe51mLH5Ja79CnvmgoinIhmacCWfkdfYKY/a506ZzefkIQ3kxVkH194yFL7E3c/nmggSAkf3X52bP83kUrNIL2ixuFEe9W7eBhXVlvOAmw41RDiNg+nyjSONV8y1HbkOHghBztabQuGwThzRQFUfYLX3OS03rYcz++umEcoNFbSU1x+OGQqmypQsCCiDlna7UJqe2nukSGJyT6O1n9AmcvChP2BjXtuqcO5sNGBDF/f/06QzEEgvBmeoKkascl4oSzSmTkbmxVF5K/OJ3i4MONkZOUvv5itmRXRkyucnyXdqZ0RztkRpOnJp4+sJapH6yJTmIg12WOW6kpzN9fvVsd7WZCEN5MSxBdy+zsqoIrLad/DGIMd0Wx+Bab5ujcTarSSwecYGi0DHkjPV35KjHcCOUXxPiBmrsOPsEnGD2zsVaVvBN5g9UVazVSyl01R0b+EIQ3UxJETm300mTYh4gLvjkka4W62l4N9WhNNvppm55yxDo9pHoV29tNu8pJmceSjm7Zq+eBKIWVPGU93s6TYv6nWj/2x51AEN5MRxBFPmw7GdvtmmYdjebUC7NlkXJvB+EcijZusY6Tkr1X3Pt5rXt5dauh0gLbhwP29O7Hz6jaVrpF+3CfYbIKYbjRxGie1vxZwDY7pYDtLBBkNkxFkH+sdrPBGeFsPfq17WV/6rNXHpTUy5FkzZ+9fziUyx6no5jfmiSJth9NP2/YyVykoLiX/LW86X7NMwThzDQEUV6Mc9CC9mBIVhVRi93m59MyTEpqo2T1+aWAekcTxFrkJFL+UfvIIThDtmsXaWkYXUO5OoL6UHNv4H3eSwbknIAgsyF0QRRt9SmpEsr3b70zMSsnEXvX8mybDxNZuzEWyUnQ6SFUP8xzDYiY6H5keO4hFbvPDWctaIKQ6sWqa696fwwScCUhyGwIXRDtslVldGHsVfX8XU2e7tp5ALp2lnSF5o5niNF8SMnjj54r4iLVPMtL0iC013XFB4qovbPhYQ+bG0UIwpWQBclUvu5KVic/0I/+H8m3wmeSJn4GpfyYFoIaOCpWi7d7E4rReuprT3IG6q4L7lpBFVuXstOGPO+VAm41EGQ2hCqIljm9EIkzsU+LLDfvxtnG+uf68p9C1+8SkwhiNofiQzOsIu8fHKlWFLNHEGHw2wQhe6LZofTPe3UIwpUwBdEKj0lrCB6UuMRcii6dTZRZPXR0eSc9QRfLWMNLXIT5+2PtxOiKiPO3FXNw1bT2jpljEAjCkfAE0eXVk5zopFMLSuwjpXsv2uzWBqlsly/ECWaxBJLbaW6+/7Zj8231LSuNbJ2y/7ao3ltnwm/uYQzCl9AE2U/tlOxZfjsCi+pHYqXGafDhQlEa1fEXQkj9JhZymQtnPeIVxOOHkR2sdGg0Id86aEH4EpIg+n7zujiYwIwPw8WHYe7GX9Luk/bBE3FCJbW+ppoBxt4t8t5r4NTY+mVg7quPIivnPVdIveuXDjYGSL2ngtwXpIRQE66EJEhmfa3qm7y0t9S6Yrql3P3k5w1OB/m0N2juggSxii7u7o2VBH5C9jtr+cFGMurvl6pdffMbVtI5E4Ygekq5sLII+jrWVlZbwU7TKfauec3tjqIdP6h21Ae9AlrL3SR/15zOeuZ25TGnOgmF6IaI7YPXW3rKIggyKz4viKJnmldZaXSPqtOhtuoAyT10Jj05c4rI2nHLnnELqJ5G7VUTd5VpzUinyt2SlewlINd9386j85UEBOHK5wXJyMYXLQx3WLsEsS0xsvHmXsoTHYA8dTLHOZWxom7uPi+9THG9X9Zu6852qYDfr+aSaXSxuPJpQV73uglpGLxNSVxiLIukdyc+eHnaaK87xZGk1J4aKhXPPnQG9dglyFzWRUkKON/Hmi1XJUzzcuWTgmxuv9RF6xzAkbvxYAxK1ORO5Z/T/RwfQb7JSfHADo4gNibLzfAB/rFxlw+MLHbGbmhBePIpQTR540QdZGL2KzI4YyZ9dRv6RGkY6PuPxaBOlnH+1JRTERloyluR0Bsxa/QWcH4cBJkVnxBE1pX1tZzqSh/qrW1290rKXjVpCTsigKY8VYMG6fmt01nMuWnaWSIo6EAaPbkHgsyaTwiSiV0kJGFoh/VK97uY3aujw2Yk2w8DTVtx9W9cZSf5HX02pdZjxyXaASb2QVzoYnHmw4LIsU6//ywMdm17vRCcSazsw0ZU7TDQYg+DswSHWbMEUhw39W4IbB42xEHuBs9FFKg7cyHILPmoIK/a027Q6HaI2grvvMHpoNW2ROdmbSaMM3dk7J7PcrdjqnKRG56e4lxFuhcQZMZ8TBCtdtwImp4cZuKVchen0dYjZpwE0s4Ta8nfXukk+fsZt3pK4WvRSXc6bpQxBJkNHxFEVvTDVj5octK+FwuSWFypcNh2PiGytnGlWlmIbEvEi4o+427hduo6oU6UawWCzIgPCKI/d7byJOjbtMM3JDV9tR7SaefTRVEOGq6JapLtzjRXl4UeO++J42eSgCAz4wOCaHuNbPD0it1TkRJble2IrZ0HkTk2T4Eysz2S7LXMJeJYXjeyOg6uIgSJCBML8iw/Ju3ToeivNbedi42b7SjPXnn5y+WuFTRo5GbgFTGmrZ4Msu2NMRSBILNhMkGUlLJXV4dHC1IF6VM6qUxjE8XU0PeS5klX6gPHWQUl9pRwIq8gSFSYTJCM/mQedGHN+lBP2+j/OF08K8x6mPs59MxK0gyp3OC5oWs7tVNSibOVEYJEgkkEUZ7Xr9KDY8NHO8rWvU/KXtT4pi35AHL5Oqtm32p8R00Z+bQlkpGQBAjCkQkE2daP16q+dfPBnW6w6KuWdprzpodBoVt/lHnvl1f0vStxGIbAWhaBILNhbEGU7eZK1nfYuRMO4cyQ9gfo4t3xZkT2nU/I/sEr53REBt+Uk6w0OE5lJEIagsyacQVJ1W5bqn0SwOB59pkflh1mYHv9UZuj2SsvESm3vtNzn8wVFI0FQWbDeIJomtatq8SJxxg+b5D9w3hITe9eRyKrz1yTil320oM2ObCTBUFmw1iCKJlT82wy//LgsBNgDt2Tb7FobTufT2Tt9C7tWtunfkUQZEaMI4im3LTVwb5Bb1oGxw8iSMnDGocgjQVE2a9diFZkcfB8LwSZDWMIYhyoJlnZqH0r6PZhBkaoNklcdPYj0ouffzTlxFwzHDlHBILMmncFkbWXkuq0976TmcykUmbvKt06LPP8GAuH8tJKk+FhnxCEF+8Iomi1w5xkb5Swkw36Ml8Zobv59m1Et53PK3rm5ijtXXOCIDx4R5DMwYN1qN4gT6IVXzLIRm7mxyl1YzJGH+Eiy522yIg4gSCzIeDyW4Io2o11TsAgI4N9eK3d9ls9L+noJjOPa+cRR9ZO22mspPMmUJDtWGw/9pilfEN2P8vucpHkW3n2xzkvBfvydc4XuwBBZg1VD4EUV/5PkS8b1OOcncl504/02m2B92dYWOTYWUvCSjpX6IJIycd/lC9LaeqmD1eQkJRvnM4uP87yoaee8pjm5QpdECFx12ln1aEf1KTUQrp+WIYe0+R5vYhZLK5QLz4hYnEt74oqEbyrH+YZz/2/2reYvJour+s4o5AvdEEk4xxOryDu9XOJxCUiFVfkudpXO49AEN7Q229BkiT36WCCv4sVFxMXtwjcnTqbexCEL3Q/BDLMSm3/xPWoEZdV3KpN62wyMOR5A4d48iVAECdrydCQ+GAPupEUrr6uRO3EqIXk2TjlFtO8HAkQZDQ1k+CcHN5vQbLtzjbWzmfBZgddLL5QL35gq2KuG4qtl8ge+LFobG4kA7IsQpDZMLYgcXu7Lcl1N7AvalZAEN5M4Ic5KpGK3VgK7cesgCC8GV8QI9BdSj+cFzD6mB0QhDeTCCLFc/dNtB6zBILwZnxBBCF9dJyKQG61ZQKC8GaCFqS4tTqfORPnGAjCm7EFEZNPBUTuzhoIwhtWm2H+Yf1J0lsdDe3HzIEgvGH4Ya6nWwlNSO6tEsPix+yBILyhXnxChhnbjaxXYvv8GbNXPIAgvAkQZJCWwfiv1mMFow8+QBDe0HtXw0S8hKjFQxl+cAKC8CawBRGsXbVS4qIsY+2cFxCEN/QWRBAk1UwYpyaeEFrCEQjCm8AulpmnWr1b/4a1c45AEN4ECCIZWdvF0lMMow+uQBDeBAoiEPHoOoW8DHyBILyhC2KMzotbBR2LH5yBILwJakFI+qaMtAzcgSC8oV78uJBuHWNwHgEgCG8CuljZk03eJQMxCMIf6sUnQq6L4UcUgCC8CWhBEo/oYUUBCMIb6sWPxxM7WACJAhCEN0EtyAq6WFEAgvAmUBDeBQMGEIQ3ECTSQBDeUC9+HF2siABBeIMWJNJAEN5AkEgDQXgDQSINBOENBIk0EIQ3ECTSQBDeQJBIA0F4A0EiDQThDQSJNBCENxAk0kAQ3gQIknvkXTBgsLlXxDHQXKFefCJk33gXDBhsHifofkCQGUG9PwlC9Z53wYDB822AIMIe76KNsJiCSIR6+dUjZMSKAs+3OaogAoEgsyEvUS+/VP8L75KBPs/nWXoDIkGQ2VASqddfKOr7vIsG+oLcpKmCkPQG76KNsJiCrOXpgmTXX3kXDcRir19V6iiRZCHIbDgp0ptwcQ07piLA9iOhCqLWD3gXbYTFFOSyRW/CJbGDvCbckbUtgSqI2DjlXbYRFlOQyhq1hyUQ4brAu2xAUy7o64Tp+1XeZRthMQVR2oJ13rP7izAPYGtdauhlcUavrI0IYhyNF8+vVHiXbYTFFKTcloh9oK3gFoQI6XucTcgb5bZFBK8dFrmXMu+yjbCYglRWSsQ8rtPfhBCS34EgnCmf5D0tiGAfrioUozdGX1BBChsnUtwSxDVEJ+Y50Im3TQzUeSLXesTT+R38d0mL3tktiylIrHytmj0s943KOMKz/2+SuN2HIRzRagkjrEHw+WEMEFPRa90XVJDCS06yW27vGMQ4Czp3qWCkzg9lp+q7dZnfDhHEtQrvso2yqIKsr4mCNQrxdHWNkTshpW4sem350rC6K/kFEUxBcndN3mUbZUEFicXOcsTfhDizJUSqtg830YbwYX8rLcT9gpg/OTqs8S7cKIsqiLLeUH3fg31OumCM1NXc/YaO425nj75/kye+pt3+moST6E3yLq4gsYOdtH8MIvWVkYhgtyy7182KjNH6bJEzB7txSt/X6GWRnSjesRZWkNhqSRKI9T0MpkkEZ869/7ckli4uy4XUKySZFd9Sha8tyZDBP3ti/L/6FMUwoMUVpHJfFYyFj7i9HOK6Y9l/EDFxdH/YTGHWdzZs64f3CcpWNsH6knqXEGSWFA56xO5NEf9ofQBJ19srN4cv5+ud09PT1T72XyBETjudzvr5zc1bPU1PFmB8ReQkepGKsUUWRN5fKRLLjrh/zdDz3fQHJ+lccvdoDUyL3d1eMqsS+pdg/JRIRDqL5NT74goSi228iU4bMjKx6BJEGHTABs8E4WJHjtJuUc7XIJYuedcXKossSOWlJRLnCxJIcOs+HKEEf4fgEwxVoT/c/wryJ9HbLGWwyILElMukdfMiAa173Pu1sW5y4BM4V5l6l7IeTN5GcI43ttiCyHplZdjJYgniYdq1ZQkxL2vg1TV+LF50IAgHKldVYjciAa07BJkB73WxBCl5G8EwE4MFF6TQucqaUe4BgjjfGMSYKvblDW5BclvlaDYgiy5IrHzTb0NYcyhW31ig56EB4UD3Q3AeE0jjPIpxWAaLLkiscvuQJ8JwOE6/i0GP6SK4/hz8zPw2jLadJL5WeNeTIBZekELl5koaTshjlBEZXMskJxHcCGKz8ILEYrW9+zyx3SAwJCoMvw2xd5rhXUkCWQJB+gORt5JK1GFgFu+6ASw/JLNpVxu3UYxStFkKQWKrZ/WqtR8dLUhUcPpXavIsklGKNsshSKx8eZGVrExyJGBFBMwWc4wuEenouhnhBmRZBJErt48JiQRNYoHZY/V3Sev6IMp+LIsgMWNF5K4oxQPjesGMMRvz6tFhxfmClEguFS6PILFU4etVQg2OOgGzpT/8SJzsDZsPBftB+CLHyqvdVl6yt6mbf/KuJEsCLZd734+6Z/0jkg3IMgnS/wrk5urLkbW1bbCTChukZoYth4WavzhfjagVLpZKkD5K5fbmPqcS95eGqa0p477Wdk4TQXy47kQ0gNfDsgkSi2n66tfuVd3ITGqPRgRrTyiYJoLZrbIvuNi66O5pc5FMZvkEMVAqL/dXa8n8QBBMbE0Zqwkxk1omWldb52U5+r0rk+UUJFaonNYOVh5yiUS2KqqqJKEFmSpGWImkitV8InnUPa/VjM6VPBeGLKkgMWPSpHK6V2ken201eolsWgRTpZotHW19vawUKs3yfKhhsbyCmOhaYXXv8vDr0wqYLjtPZy97pzU9E70zcpgsuSCAN1FvTSAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIAgADCAIAAwgCAAMIMhkPOSGnAc85+Dy60mjlGxsXR83Z1o4BvNabu4sryD/+mUsvC9Kuh/aorzr6cMPv3I/55f/0tjjX+wIlHteWV5BfvaBmkY8D41UtObuf9De4sdShW+xo1DueWV5BfnNxDWt+RPvQ/6K1v6voDf5frfMr9jRKPe8sryCfD9hTbvJ/dL3kLeinf83621+fsqp2FEp97yyvIKMV9GsmraT/8m/jT7kqWhff8p+nx9D6tJPUuwolXteWVpBDiapaT9QH3JXtKdfUZ/i4vvDmRc7QuWeW5ZWkOtJapr4XkW7freeffnym8Ksix2hcs8tSyvI1SQ17eidinb43ThvtTvrYkeo3HPL0gpSnKSmrbxT0X431lv9YtbFjlC555alFeTXk9S0PXZFO/Q9EG+fNU8vu//pf0EI69MTFXum5T7v7pbuLj//CSPG0griWRrr7XhY2bpotIp56dd/++F31rPZFe0Pnh//+avz867vBY+eEtx45o9OnB//0f3Tn32u2FMpdyz288Ejv7R+UL77wf4wP5U6n/l40WNpBfnR/UUdvPdsu6/+nUD70r336e9dKwcNb0Ured901/3Yj/ZQ+N79w9+OrEJMVuzplNtdyTeMf195hjLiJz5e9FhaQTxfVOz2ivz3L378/ldfvv/77/6g7o6E8/3ZeuJD1v0y50689oX2UwPfpGzD966euKqE+aOmeyHwpzefLPaUyu0Kd7nq/zPrffaXn5Q//PGix7IK8uL+8r4bWZ7+5a8vau6n/8L8Qq9i1IqW87zS/bKm911XfIWo/MldXcz+u+R+fv2zxZ5SuV2hKyRWG11s+Y/aBz9eBFlWQdoj3+pIZWu45v+Nrv/Pr2P0iuYZOP/g/i1171se+0tx+7+uR43Johv30//fp4s9pXK7lPh7LE0pRPyDHy+CLKsg1Xdr2pcvvxmMLPu9hZ9dGH97KprzsGeyNO36JUnv+1GmSy/cjyfsO77Nj5TJowmLPaVy/z/Xg8fUpcazj328CLKsgtCDMPwQ5+krdkQS9U58fdXLCX/73S9+aYxVxcGvOPQF0X7pUsrhGT1f5l3/+BVtynTCYk+p3H9zPfjzLzR+/rGPF0GWVZA/j1XTXNXGglrRXHQunYHy4Uhdpl8ldwX7vfvpVyEWO+Ry/8v7JXj70MeLIEsqyOp4FW1kAue9iuYwWs2+/KZGfeZGQLRHPMxih1xu/2rld7//qz8m+Ncf+XhRZEkFeRy3pv2Xd8fQeBXtzN9J6fPzoEUL/6qcxd+pOn202CGX27tB8U/mgOPG+9p/+8jHiyJLKohvGPrlN9WV89V+R+M6598/0fO8bpyKdk2LcPr34K15ecrTv6PvwvhosUMut2ey9r+dn3rDxAar7xN8vCiypIL8u+f7+r17or/k/S7/6nnd+xWtS9s0/tMkqzCUV9DG858odsjl9ggyXJ10z1F9Gb5y/I8XRZZUEM8u1H/3PuaNs/hfz2PvVbTbv1Kq2ZffjSyAeDgdWfBLBzzzo8UOudzubSau9ZMz+kcY/+NFkeUUpOP+uv7kn5D3ZtbxVJJ3KlqLVs3+dP9eca59Q9y/Bjzvw8UOudxuQVTXz90m/Hr443E/XiRZTkHYPHi+zjv3Q8yK1qElz/k5Y85ogG/e9GObXBnFDrnc7sVz924qdySlu30L5eNxYukFuS22/D/yzhW13Q+xKtrF6Izmd4I/jInKme8W+8ewix1yud3r+W5B3G/0h099vOiw3ILsVI00U/6gUu9Obs9mCEZFS/hr2S+yY0arrv7W/9JcyMUOudzuiSlXF2vD/S7DccbEHy9SLK0glZ3kD/Yd73tvheh6p0w9IRHBFc23F/Y/G+9v1nCgrD58DXrux4odcrndgnw/XNHwhC0OQ3Un+XjRYzkFWRE9U5JfHoYP3fiXiT2begIrmmeF4n/qvlpWu1xpl6p/GOkVmdBGyN9TtxJ9uNghl9sTJz8YjXsmsb4MRvjjf7xIspyCjGT7+O5fk42t7lUv/yf/Iz8az38q7ba3VnZ2djzDzcTJfXutldzyvWHcXgU7uD3rXuwWhR9+7tzb27SyHFIzt1E3o05a7GmV2yOIMxl85W3BnKXACT5eJFlOQQo/0r41Knnj+cxcIv1Pf+uqBT8R/vaTP/7ml7QYJFrvpelPDGqTCKHY0yq3f9jyk92T7B+9P3Kmcif5eJFkOQXxblRgYvbl36to9JhvP7+nlSQwgJ3WT5+w2NMq9xi5h5whyEQfL4osqSC+oI1g/tN89jsVbWu89/oDpRyezAY5d0D4b1c/XexplXtk4muUvQ99vAiyrILUfvFlHL6zehfvVLQxqy1lD7YnM9XfY0/uf/7k08WeVrndgoyMfkyqH/t4EWRZBYmdjtW9eLCe/E5FGyPBrcHo4lvFfU/91bEvkNyfbWfiYk+r3O5B+gntFf9V+eDHix5LK0isRpmf9/GrNfu57Io2bkLp0dA/T+a2h/4Pmp5FtetPFnta5XZPGh/StslfffjjRY7lFSQWawfMsDj8YhDJza5oD6xHXYxkSfckprK6HF/dP6L308cv9rTK7V4ovK6MHumT/8zHixjLLEgs1hqJghjijtZjVzT/NqYA/s3/2y/dXRxn2OBJc/CD/yWTFXtK5fYI8hQ7/73vBWuf/HiRYrkF6Q8jc9RO/Xe/9nS82RWNfgrHCH/2/WpPD32wwciTezAwt9p4xZ5Oub3Bio/9Xp9naPFj9/MfL0IsuyB9Orvebv13f5T8od7siqaOV9F+43tTz/6N3w62tno6Pj8NDg0fo9jTKbc3LNJMX3K6+z9OKUrOB/nkx4sKEMTk4Pz65KGeqDfuV9i7/6IFp2K7BXGkbB5utUpvo9mB5x0IAibG3fRc8C7MlIEgYGLcY44H3oWZMhAETEzcJciiH2AIQcDEuPeezMFE1KeAIGBi3CvkRd6FmTIQBEyMewZ3nvaXfwQIAibGvcmjyrswUwaCgIlxr1COnLSwYEAQMDHubLvk/afPNRAETIx7/7nAuzBTBoKAifkflyBzcxLOB4EgYGLiPxsyH/sCPw4EAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYABBAGAAQQBgAEEAYBBOIIAsDRAEAAYQBAAGEAQABhAEAAYQBAAGEAQABhAEAAYQBAAGEAQABhAEAAYQBAAGEAQABhAEAAYQBAAGEAQABhAEAAYQBAAGLwvCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApsT/B5IXXl4PVzuXAAAAAElFTkSuQmCC", cn = (t, e) => t || (e === "cover" ? "fill" : e === "stretch" ? "stretch" : "fit"), ze = (t, e) => {
1097
- const [n, r] = Ee(t, e);
1098
- return n === 1 && r === 1 ? [1, 1, 1] : n < 1 ? [1, 1 / n, 1] : [1 / r, 1, 1];
1099
- }, An = (t, e, n, r, a, i, o) => {
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) => {
1100
1008
  let l = [1, 1, 1], s = [1, 1, 1], A = [1, 1], c = [0, 0];
1101
1009
  switch (t) {
1102
1010
  case "fit":
1103
- l = Ee(e, n), s = l;
1011
+ l = ye(e, n), s = l;
1104
1012
  break;
1105
1013
  case "fitWidth":
1106
1014
  l = [1, e > 0 && n > 0 ? e / n : 1, 1], s = l;
@@ -1109,83 +1017,87 @@ const ln = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAMAAADsrvZaAA
1109
1017
  l = [e > 0 && n > 0 ? n / e : 1, 1, 1], s = l;
1110
1018
  break;
1111
1019
  case "center":
1112
- l = 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), s = l;
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;
1113
1021
  break;
1114
1022
  case "fill":
1115
- l = ze(e, n), s = l;
1023
+ l = De(e, n), s = l;
1116
1024
  break;
1117
1025
  case "fillAndCut":
1118
- if (s = ze(e, n), n > e) {
1119
- const g = e / n;
1120
- A = [g, 1], c = [(1 - g) / 2, 0];
1026
+ if (s = De(e, n), n > e) {
1027
+ const h = e / n;
1028
+ A = [h, 1], c = [(1 - h) / 2, 0];
1121
1029
  } else if (n < e) {
1122
- const g = n / e;
1123
- A = [1, g], c = [0, (1 - g) / 2];
1030
+ const h = n / e;
1031
+ A = [1, h], c = [0, (1 - h) / 2];
1124
1032
  }
1125
1033
  break;
1126
1034
  }
1127
1035
  return {
1128
- meshScale: [l[0] * (r ? -1 : 1), l[1] * (a ? -1 : 1), 1],
1036
+ meshScale: [l[0] * (i ? -1 : 1), l[1] * (a ? -1 : 1), 1],
1129
1037
  guideScale: s,
1130
1038
  repeat: A,
1131
1039
  offset: c
1132
1040
  };
1133
- }, 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) => {
1134
1042
  const e = t.image;
1135
1043
  return {
1136
1044
  width: (e == null ? void 0 : e.videoWidth) ?? (e == null ? void 0 : e.width) ?? 1,
1137
1045
  height: (e == null ? void 0 : e.videoHeight) ?? (e == null ? void 0 : e.height) ?? 1
1138
1046
  };
1139
- }, dn = (t) => {
1140
- 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);
1141
1053
  return e > 0 && n > 0 ? e / n : 1;
1142
- }, gn = /* @__PURE__ */ new Set([
1054
+ }, tn = /* @__PURE__ */ new Set([
1143
1055
  "overlay",
1144
1056
  "softLight",
1145
1057
  "hardLight",
1146
1058
  "difference",
1147
1059
  "exclusion"
1148
- ]), fn = {
1060
+ ]), nn = {
1149
1061
  overlay: 0,
1150
1062
  softLight: 1,
1151
1063
  hardLight: 2,
1152
1064
  difference: 3,
1153
1065
  exclusion: 4
1154
- }, un = (t) => {
1066
+ }, rn = (t) => {
1155
1067
  switch (t) {
1156
1068
  case "add":
1157
- return { blending: M.AdditiveBlending };
1069
+ return { blending: B.AdditiveBlending };
1158
1070
  case "subtract":
1159
- return { blending: M.SubtractiveBlending };
1071
+ return { blending: B.SubtractiveBlending };
1160
1072
  case "multiply":
1161
- return { blending: M.MultiplyBlending };
1073
+ return { blending: B.MultiplyBlending };
1162
1074
  case "screen":
1163
1075
  return {
1164
- blending: M.CustomBlending,
1165
- blendSrc: M.OneFactor,
1166
- blendDst: M.OneMinusSrcColorFactor,
1167
- blendEquation: M.AddEquation
1076
+ blending: B.CustomBlending,
1077
+ blendSrc: B.OneFactor,
1078
+ blendDst: B.OneMinusSrcColorFactor,
1079
+ blendEquation: B.AddEquation
1168
1080
  };
1169
1081
  case "lighten":
1170
1082
  return {
1171
- blending: M.CustomBlending,
1172
- blendSrc: M.OneFactor,
1173
- blendDst: M.OneFactor,
1174
- blendEquation: M.MaxEquation
1083
+ blending: B.CustomBlending,
1084
+ blendSrc: B.OneFactor,
1085
+ blendDst: B.OneFactor,
1086
+ blendEquation: B.MaxEquation
1175
1087
  };
1176
1088
  case "darken":
1177
1089
  return {
1178
- blending: M.CustomBlending,
1179
- blendSrc: M.OneFactor,
1180
- blendDst: M.OneFactor,
1181
- blendEquation: M.MinEquation
1090
+ blending: B.CustomBlending,
1091
+ blendSrc: B.OneFactor,
1092
+ blendDst: B.OneFactor,
1093
+ blendEquation: B.MinEquation
1182
1094
  };
1183
1095
  default:
1184
- return { blending: M.NormalBlending };
1096
+ return { blending: B.NormalBlending };
1185
1097
  }
1186
- }, Sn = `
1098
+ }, an = `
1187
1099
  varying vec2 vUv;
1188
- 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 = `
1189
1101
  uniform sampler2D imageMap;uniform sampler2D backdropMap;uniform vec2 resolution;
1190
1102
  uniform vec3 tint;uniform float opacity;uniform float alphaTest;uniform int blendMode;varying vec2 vUv;
1191
1103
  float overlayChannel(float b,float s){return b<.5?2.*b*s:1.-2.*(1.-b)*(1.-s);}
@@ -1198,189 +1110,268 @@ if(blendMode==2)return vec3(hardLightChannel(b.r,s.r),hardLightChannel(b.g,s.g),
1198
1110
  if(blendMode==3)return abs(b-s);return b+s-2.*b*s;}
1199
1111
  void main(){vec4 image=texture2D(imageMap,vUv)*vec4(tint,opacity);if(image.a<=alphaTest)discard;
1200
1112
  vec2 uv=gl_FragCoord.xy/max(resolution,vec2(1.));vec3 base=texture2D(backdropMap,uv).rgb;
1201
- 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 = () => {
1202
1116
  const t = document.createElement("canvas");
1203
1117
  t.width = 256, t.height = 256;
1204
1118
  const e = t.getContext("2d");
1205
- if (!e) return new M.CanvasTexture(t);
1119
+ if (!e) return new B.CanvasTexture(t);
1206
1120
  const n = e.createRadialGradient(96, 80, 10, 128, 128, 128);
1207
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);
1208
- const r = new M.CanvasTexture(t);
1209
- return r.needsUpdate = !0, r;
1210
- };
1211
- 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({
1212
1157
  materialTexture: t,
1213
1158
  sourceTexture: e,
1214
1159
  onSourceSizeChange: n
1215
1160
  }) {
1216
- const r = X(ee(e));
1217
- return ae(() => {
1161
+ const i = R($(e));
1162
+ return se(() => {
1218
1163
  t.needsUpdate = !0;
1219
- const a = ee(e);
1220
- (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));
1221
1166
  }), null;
1222
1167
  }
1223
- const En = 999, In = Math.PI / 180, bn = yt([
1224
- Bt
1168
+ const fn = 999, hn = Math.PI / 180, un = gt([
1169
+ ft
1225
1170
  ]);
1226
- function yn(t) {
1227
- const [e, n] = ce(null);
1171
+ function vn(t) {
1172
+ const [e, n] = ve(null);
1228
1173
  return te(() => {
1229
1174
  if (n(null), !t || typeof document > "u") return;
1230
- const r = new AbortController();
1175
+ const i = new AbortController();
1231
1176
  let a;
1232
- return bn({ kind: "gif", src: t }, r.signal).then((i) => {
1233
- a = i, n(i);
1234
- }).catch((i) => {
1235
- 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);
1236
1181
  }), () => {
1237
- r.abort(), Tt(a);
1182
+ i.abort(), dt(a);
1238
1183
  };
1239
1184
  }, [t]), e;
1240
1185
  }
1241
- function Ke({
1186
+ function Xe({
1242
1187
  name: t,
1243
1188
  source: e,
1244
1189
  src: n,
1245
- fit: r,
1190
+ fit: i,
1246
1191
  stretchMode: a,
1247
- materialType: i = "unlit",
1192
+ materialType: r = "unlit",
1248
1193
  blendMode: o = "normal",
1249
1194
  backdropTexture: l = null,
1250
1195
  rotation: s = 0,
1251
1196
  opacity: A = 1,
1252
1197
  color: c = "#ffffff",
1253
- flipX: g = !1,
1254
- flipY: f = !1,
1255
- renderOrder: S = En,
1256
- transparent: m = !0,
1257
- alphaTest: v = 0,
1258
- overlay: u = !0,
1259
- visible: C,
1260
- layoutSize: I
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
1261
1211
  }) {
1262
- const { size: E } = Ae(), p = bt(), w = hn(e, n), T = w.kind === "image" ? w.src : ln, b = Xt(T), d = yn(
1263
- w.kind === "gif" ? w.src : void 0
1264
- ), B = w.kind === "texture" ? w.texture : w.kind === "gif" ? (d == null ? void 0 : d.texture) ?? b : b, G = Ue(), P = cn(a, r), [j, N] = ce(
1265
- () => ee(B)
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)
1266
1216
  );
1267
1217
  te(() => {
1268
- N(ee(B));
1269
- }, [B]);
1270
- const H = B instanceof M.VideoTexture || typeof HTMLCanvasElement < "u" && B.image instanceof HTMLCanvasElement, W = H ? j : ee(B), U = Ie(
1271
- (R) => N(R),
1218
+ U($(W));
1219
+ }, [W]);
1220
+ const Z = $t(W), X = Z ? N : $(W), q = Be(
1221
+ (G) => U(G),
1272
1222
  []
1273
- ), K = W.width > 0 && W.height > 0 ? W.width / W.height : dn(B), V = x(() => mn(), []), D = x(
1274
- () => An(
1275
- P,
1276
- G,
1277
- K,
1278
- g,
1279
- f,
1280
- I,
1281
- W
1223
+ ), Y = X.width > 0 && X.height > 0 ? X.width / X.height : en(W), T = x(() => ln(), []), Q = x(
1224
+ () => jt(
1225
+ V,
1226
+ z,
1227
+ Y,
1228
+ m,
1229
+ C,
1230
+ F,
1231
+ X
1282
1232
  ),
1283
- [P, G, K, g, f, I, W]
1284
- ), Y = x(() => {
1285
- const R = B.clone();
1286
- return R.needsUpdate = !0, R.repeat.set(D.repeat[0], D.repeat[1]), R.offset.set(D.offset[0], D.offset[1]), R;
1287
- }, [B, D.repeat, D.offset]);
1288
- ue(Y), ue(V);
1289
- const J = x(() => un(o), [o]), k = gn.has(o) ? o : null, y = l ?? (p == null ? void 0 : p.finalColorTexture) ?? (p == null ? void 0 : p.sceneColorTexture) ?? null, L = k !== null && y !== 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(
1290
1240
  () => ({
1291
- imageMap: { value: Y },
1292
- backdropMap: { value: y },
1293
- resolution: { value: new M.Vector2(E.width, E.height) },
1294
- tint: { value: new M.Color(c) },
1295
- opacity: { value: A },
1296
- alphaTest: { value: v },
1297
- blendMode: {
1298
- value: k === null ? 0 : fn[k]
1299
- }
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]
1300
1248
  }),
1301
1249
  [
1302
- k,
1303
- v,
1304
- y,
1305
- E.height,
1306
- E.width,
1250
+ j,
1251
+ M,
1252
+ _,
1253
+ p.height,
1254
+ p.width,
1307
1255
  c,
1308
- Y,
1256
+ L,
1309
1257
  A
1310
1258
  ]
1311
- );
1312
- return /* @__PURE__ */ F("group", { visible: C, children: [
1313
- H ? /* @__PURE__ */ h(
1314
- 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,
1315
1294
  {
1316
- materialTexture: Y,
1317
- sourceTexture: B,
1318
- onSourceSizeChange: U
1295
+ materialTexture: L,
1296
+ sourceTexture: W,
1297
+ onSourceSizeChange: q
1319
1298
  }
1320
1299
  ) : null,
1321
- /* @__PURE__ */ F(
1300
+ /* @__PURE__ */ D(
1322
1301
  "mesh",
1323
1302
  {
1324
1303
  name: t,
1325
- scale: D.meshScale,
1326
- rotation: [0, 0, s * In],
1327
- renderOrder: S,
1304
+ scale: Q.meshScale,
1305
+ rotation: [0, 0, s * hn],
1306
+ renderOrder: E,
1328
1307
  children: [
1329
- /* @__PURE__ */ h("planeGeometry", { args: [1, 1] }),
1330
- L ? /* @__PURE__ */ h(
1308
+ /* @__PURE__ */ d("planeGeometry", { args: [1, 1] }),
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(
1331
1322
  "shaderMaterial",
1332
1323
  {
1333
- uniforms: q,
1334
- vertexShader: Sn,
1335
- fragmentShader: vn,
1324
+ uniforms: ge,
1325
+ vertexShader: an,
1326
+ fragmentShader: on,
1336
1327
  transparent: !1,
1337
- depthTest: !u,
1338
- depthWrite: !u,
1328
+ depthTest: !b,
1329
+ depthWrite: !b,
1339
1330
  toneMapped: !1
1340
1331
  }
1341
- ) : i === "standardPBR" ? /* @__PURE__ */ h(
1332
+ ) : r === "standardPBR" ? /* @__PURE__ */ d(
1342
1333
  "meshStandardMaterial",
1343
1334
  {
1344
- map: Y,
1345
- transparent: m || A < 1,
1335
+ map: L,
1336
+ transparent: I || A < 1,
1346
1337
  opacity: A,
1347
1338
  color: c,
1348
- alphaTest: v,
1349
- depthTest: !u,
1350
- depthWrite: !u,
1339
+ alphaTest: M,
1340
+ depthTest: !b,
1341
+ depthWrite: !b,
1351
1342
  toneMapped: !1,
1352
1343
  roughness: 0.72,
1353
1344
  metalness: 0.08,
1354
1345
  emissive: c,
1355
1346
  emissiveIntensity: 0.18,
1356
- ...J
1347
+ ...H
1357
1348
  }
1358
- ) : i === "matcap" ? /* @__PURE__ */ h(
1349
+ ) : r === "matcap" ? /* @__PURE__ */ d(
1359
1350
  "meshMatcapMaterial",
1360
1351
  {
1361
- map: Y,
1362
- matcap: V,
1363
- transparent: m || A < 1,
1352
+ map: L,
1353
+ matcap: T,
1354
+ transparent: I || A < 1,
1364
1355
  opacity: A,
1365
1356
  color: c,
1366
- alphaTest: v,
1367
- depthTest: !u,
1368
- depthWrite: !u,
1357
+ alphaTest: M,
1358
+ depthTest: !b,
1359
+ depthWrite: !b,
1369
1360
  toneMapped: !1,
1370
- ...J
1361
+ ...H
1371
1362
  }
1372
- ) : /* @__PURE__ */ h(
1363
+ ) : /* @__PURE__ */ d(
1373
1364
  "meshBasicMaterial",
1374
1365
  {
1375
- map: Y,
1376
- transparent: m || A < 1,
1366
+ map: L,
1367
+ transparent: I || A < 1,
1377
1368
  opacity: A,
1378
1369
  color: c,
1379
- alphaTest: v,
1380
- depthTest: !u,
1381
- depthWrite: !u,
1370
+ alphaTest: M,
1371
+ depthTest: !b,
1372
+ depthWrite: !b,
1382
1373
  toneMapped: !1,
1383
- ...J
1374
+ ...H
1384
1375
  }
1385
1376
  )
1386
1377
  ]
@@ -1388,54 +1379,54 @@ function Ke({
1388
1379
  )
1389
1380
  ] });
1390
1381
  }
1391
- const Tn = { left: 0, right: 0, top: 0, bottom: 0 }, Bn = Math.PI / 180;
1392
- function pn({
1382
+ const mn = { left: 0, right: 0, top: 0, bottom: 0 }, Sn = Math.PI / 180;
1383
+ function Cn({
1393
1384
  anchors: t,
1394
1385
  offsets: e,
1395
1386
  pivot: n,
1396
- rotation: r,
1387
+ rotation: i,
1397
1388
  children: a
1398
1389
  }) {
1399
- const { width: i, height: o } = be(), l = x(
1390
+ const { width: r, height: o } = Me(), l = x(
1400
1391
  () => ({ left: -1, right: 1, top: 1, bottom: -1, ...t }),
1401
1392
  [t]
1402
- ), s = x(() => ({ ...Tn, ...e }), [e]), A = x(
1403
- () => pt(i, o, l, s, n),
1404
- [o, n, l, s, i]
1393
+ ), s = x(() => ({ ...mn, ...e }), [e]), A = x(
1394
+ () => ht(r, o, l, s, n),
1395
+ [o, n, l, s, r]
1405
1396
  ), c = A.width > 0 && A.height > 0 ? A.width / A.height : null;
1406
- return /* @__PURE__ */ h(
1397
+ return /* @__PURE__ */ d(
1407
1398
  "group",
1408
1399
  {
1409
1400
  position: [A.centerX - A.pivotX, A.centerY - A.pivotY, 0],
1410
- rotation: [0, 0, r * Bn],
1401
+ rotation: [0, 0, i * Sn],
1411
1402
  scale: [A.width, A.height, 1],
1412
- children: /* @__PURE__ */ h(dt.Provider, { value: c, children: a })
1403
+ children: /* @__PURE__ */ d(et.Provider, { value: c, children: a })
1413
1404
  }
1414
1405
  );
1415
1406
  }
1416
- function Mn({
1407
+ function In({
1417
1408
  transform: t,
1418
1409
  guideLayer: e,
1419
1410
  onChange: n,
1420
- children: r
1411
+ children: i
1421
1412
  }) {
1422
- return /* @__PURE__ */ h(
1423
- Ve,
1413
+ return /* @__PURE__ */ d(
1414
+ Ge,
1424
1415
  {
1425
1416
  guideColor: "#22d3ee",
1426
1417
  guideLayer: e,
1427
1418
  transform: t,
1428
1419
  onChange: n,
1429
- children: r
1420
+ children: i
1430
1421
  }
1431
1422
  );
1432
1423
  }
1433
- const wn = {
1424
+ const En = {
1434
1425
  left: -1,
1435
1426
  right: 1,
1436
1427
  top: 1,
1437
1428
  bottom: -1
1438
- }, Qn = {}, kn = [0.5, 0.5];
1429
+ }, bn = {}, pn = [0.5, 0.5];
1439
1430
  [
1440
1431
  ["Normal", "normal"],
1441
1432
  ["Add", "add"],
@@ -1450,66 +1441,66 @@ const wn = {
1450
1441
  ["Difference", "difference"],
1451
1442
  ["Exclusion", "exclusion"]
1452
1443
  ].map(([t, e]) => ({ label: t, value: e }));
1453
- const xn = (t) => [
1444
+ const Tn = (t) => [
1454
1445
  t[0] * 2 - 1,
1455
1446
  t[1] * 2 - 1
1456
- ], Ln = (t, e, n, r, a) => t || (!r && !a ? wn : qe({
1447
+ ], yn = (t, e, n, i, a) => t || (!i && !a ? En : He({
1457
1448
  coordinateSpace: e,
1458
- canvasSize: n ?? Z,
1459
- position: r,
1449
+ canvasSize: n ?? ae,
1450
+ position: i,
1460
1451
  size: a
1461
1452
  }));
1462
- function Fn({
1453
+ function Bn({
1463
1454
  anchors: t,
1464
1455
  coordinateSpace: e,
1465
1456
  canvasSize: n,
1466
- position: r,
1457
+ position: i,
1467
1458
  size: a,
1468
- offsets: i = Qn,
1469
- pivot: o = kn,
1459
+ offsets: r = bn,
1460
+ pivot: o = pn,
1470
1461
  rotation: l = 0,
1471
1462
  transform: s,
1472
1463
  onScreenTransformChange: A,
1473
1464
  transformGuideLayer: c = "scene",
1474
- ...g
1465
+ ...h
1475
1466
  }) {
1476
1467
  const f = x(
1477
- () => Ln(t, e, n, r, a),
1478
- [t, n, e, r, a]
1479
- ), S = x(() => xn(o), [o]);
1468
+ () => yn(t, e, n, i, a),
1469
+ [t, n, e, i, a]
1470
+ ), u = x(() => Tn(o), [o]);
1480
1471
  if (s) {
1481
- const m = Ze(s);
1482
- return m.enabled ? /* @__PURE__ */ h(
1483
- Mn,
1472
+ const v = Oe(s);
1473
+ return v.enabled ? /* @__PURE__ */ d(
1474
+ In,
1484
1475
  {
1485
1476
  guideLayer: c,
1486
- transform: m,
1477
+ transform: v,
1487
1478
  onChange: A,
1488
- children: /* @__PURE__ */ h(
1489
- Ke,
1479
+ children: /* @__PURE__ */ d(
1480
+ Xe,
1490
1481
  {
1491
- ...g,
1492
- layoutSize: m.size,
1493
- renderOrder: g.renderOrder ?? m.renderOrder,
1494
- overlay: g.overlay ?? m.overlay,
1495
- visible: g.visible ?? m.visible,
1482
+ ...h,
1483
+ layoutSize: v.size,
1484
+ renderOrder: h.renderOrder ?? v.renderOrder,
1485
+ overlay: h.overlay ?? v.overlay,
1486
+ visible: h.visible ?? v.visible,
1496
1487
  rotation: 0
1497
1488
  }
1498
1489
  )
1499
1490
  }
1500
1491
  ) : null;
1501
1492
  }
1502
- return /* @__PURE__ */ h(
1503
- pn,
1493
+ return /* @__PURE__ */ d(
1494
+ Cn,
1504
1495
  {
1505
1496
  anchors: f,
1506
- offsets: i,
1507
- pivot: S,
1497
+ offsets: r,
1498
+ pivot: u,
1508
1499
  rotation: l,
1509
- children: /* @__PURE__ */ h(
1510
- Ke,
1500
+ children: /* @__PURE__ */ d(
1501
+ Xe,
1511
1502
  {
1512
- ...g,
1503
+ ...h,
1513
1504
  layoutSize: a ? { width: a[0], height: a[1] } : void 0,
1514
1505
  rotation: 0
1515
1506
  }
@@ -1517,12 +1508,12 @@ function Fn({
1517
1508
  }
1518
1509
  );
1519
1510
  }
1520
- const Yn = 2.5, Wn = "#38bdf8", Xn = {
1511
+ const Mn = 2.5, Qn = "#38bdf8", kn = {
1521
1512
  top: { left: -0.92, right: 0.92, top: 0.92, bottom: 0.56 },
1522
1513
  center: { left: -0.92, right: 0.92, top: 0.18, bottom: -0.18 },
1523
1514
  bottom: { left: -0.92, right: 0.92, top: -0.56, bottom: -0.92 }
1524
1515
  };
1525
- function Dn({
1516
+ function wn({
1526
1517
  bend: t,
1527
1518
  bendPreset: e,
1528
1519
  bendStrength: n
@@ -1532,149 +1523,149 @@ function Dn({
1532
1523
  bendStrength: (t == null ? void 0 : t.strength) ?? n
1533
1524
  };
1534
1525
  }
1535
- function Pn({
1526
+ function xn({
1536
1527
  width: t,
1537
1528
  height: e
1538
1529
  }) {
1539
- const n = Math.max(1, t), r = Math.max(1, e);
1530
+ const n = Math.max(1, t), i = Math.max(1, e);
1540
1531
  return {
1541
- aspect: n / r,
1542
- resolution: r
1532
+ aspect: n / i,
1533
+ resolution: i
1543
1534
  };
1544
1535
  }
1545
- function Ne(t) {
1546
- const e = Ue(), { bend: n, layoutSize: r, renderOrder: a, overlay: i = !0, ...o } = t, l = r ? Pn(r) : void 0, s = Math.max(
1547
- (l == null ? void 0 : l.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,
1548
1539
  0.1
1549
- ), A = Dn({
1540
+ ), A = wn({
1550
1541
  bend: n,
1551
1542
  bendPreset: o.bendPreset,
1552
1543
  bendStrength: o.bendStrength
1553
1544
  });
1554
- return /* @__PURE__ */ h(
1555
- sn,
1545
+ return /* @__PURE__ */ d(
1546
+ Ut,
1556
1547
  {
1557
1548
  ...o,
1558
1549
  aspect: s,
1559
1550
  resolution: (l == null ? void 0 : l.resolution) ?? o.resolution,
1560
1551
  ...A,
1561
- overlay: i,
1552
+ overlay: r,
1562
1553
  renderOrder: a
1563
1554
  }
1564
1555
  );
1565
1556
  }
1566
- function Rn({
1557
+ function Ln({
1567
1558
  transform: t,
1568
1559
  guideLayer: e,
1569
1560
  onChange: n,
1570
- children: r
1561
+ children: i
1571
1562
  }) {
1572
- return /* @__PURE__ */ h(
1573
- Ve,
1563
+ return /* @__PURE__ */ d(
1564
+ Ge,
1574
1565
  {
1575
- guideColor: Wn,
1566
+ guideColor: Qn,
1576
1567
  guideLayer: e,
1577
1568
  transform: t,
1578
1569
  onChange: n,
1579
- children: r
1570
+ children: i
1580
1571
  }
1581
1572
  );
1582
1573
  }
1583
- function On(t = "center") {
1584
- return Xn[t];
1574
+ function Fn(t = "center") {
1575
+ return kn[t];
1585
1576
  }
1586
- function Gn({
1577
+ function Wn({
1587
1578
  anchors: t,
1588
1579
  coordinateSpace: e,
1589
1580
  canvasSize: n,
1590
- position: r,
1581
+ position: i,
1591
1582
  size: a,
1592
- transform: i,
1583
+ transform: r,
1593
1584
  pivot: o,
1594
1585
  verticalAlign: l
1595
1586
  }) {
1596
1587
  return {
1597
- resolvedAnchors: i != null && i.anchors ? i.anchors : t || (i != null && i.position || i != null && i.size || r || a ? qe({
1598
- coordinateSpace: (i == null ? void 0 : i.coordinateSpace) ?? e,
1599
- canvasSize: (i == null ? void 0 : i.canvasSize) ?? n,
1600
- position: (i == null ? void 0 : i.position) ?? r,
1601
- size: (i == null ? void 0 : i.size) ?? a
1602
- }) : On(l)),
1603
- resolvedOffsets: i == null ? void 0 : i.offsets,
1604
- 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])
1605
1596
  };
1606
1597
  }
1607
- function Hn({
1598
+ function Yn({
1608
1599
  anchors: t,
1609
1600
  coordinateSpace: e,
1610
1601
  canvasSize: n,
1611
- offsets: r,
1602
+ offsets: i,
1612
1603
  pivot: a,
1613
- position: i,
1604
+ position: r,
1614
1605
  rotation: o = 0,
1615
1606
  size: l,
1616
1607
  transform: s,
1617
1608
  screenTransform: A,
1618
1609
  onScreenTransformChange: c,
1619
- transformGuideLayer: g = "scene",
1610
+ transformGuideLayer: h = "scene",
1620
1611
  verticalAlign: f = "center",
1621
- ...S
1612
+ ...u
1622
1613
  }) {
1623
- const { resolvedAnchors: m, resolvedOffsets: v, resolvedPivot: u } = x(
1624
- () => Gn({
1614
+ const { resolvedAnchors: v, resolvedOffsets: S, resolvedPivot: m } = x(
1615
+ () => Wn({
1625
1616
  anchors: t,
1626
1617
  coordinateSpace: e,
1627
1618
  canvasSize: n,
1628
- position: i,
1619
+ position: r,
1629
1620
  size: l,
1630
1621
  transform: s,
1631
1622
  pivot: a,
1632
1623
  verticalAlign: f
1633
1624
  }),
1634
- [t, n, e, a, i, l, s, f]
1635
- ), C = (s == null ? void 0 : s.offsets) ?? r ?? v, I = (s == null ? void 0 : s.rotation) ?? o;
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;
1636
1627
  if (A) {
1637
- const E = Ze(A);
1638
- return E.enabled ? /* @__PURE__ */ h(
1639
- Rn,
1628
+ const I = Oe(A);
1629
+ return I.enabled ? /* @__PURE__ */ d(
1630
+ Ln,
1640
1631
  {
1641
- guideLayer: g,
1642
- transform: E,
1632
+ guideLayer: h,
1633
+ transform: I,
1643
1634
  onChange: c,
1644
- children: /* @__PURE__ */ h(
1645
- Ne,
1635
+ children: /* @__PURE__ */ d(
1636
+ Re,
1646
1637
  {
1647
- ...S,
1648
- layoutSize: E.size,
1638
+ ...u,
1639
+ layoutSize: I.size,
1649
1640
  verticalAlign: f,
1650
- renderOrder: S.renderOrder ?? E.renderOrder,
1651
- overlay: S.overlay ?? E.overlay,
1652
- visible: S.visible ?? E.visible
1641
+ renderOrder: u.renderOrder ?? I.renderOrder,
1642
+ overlay: u.overlay ?? I.overlay,
1643
+ visible: u.visible ?? I.visible
1653
1644
  }
1654
1645
  )
1655
1646
  }
1656
1647
  ) : null;
1657
1648
  }
1658
- return /* @__PURE__ */ h(Mt, { anchors: m, offsets: C, pivot: u, children: /* @__PURE__ */ h("group", { rotation: [0, 0, I * Math.PI / 180], children: /* @__PURE__ */ h(Ne, { ...S, verticalAlign: f }) }) });
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 }) }) });
1659
1650
  }
1660
- const Jn = ({ settings: t, transform: e }) => {
1651
+ const Dn = ({ settings: t, transform: e }) => {
1661
1652
  const n = x(
1662
- () => /* @__PURE__ */ F("group", { name: "LightEditorGizmo", visible: t.showHelper, children: [
1663
- /* @__PURE__ */ F("mesh", { renderOrder: 1e3, children: [
1664
- /* @__PURE__ */ h("sphereGeometry", { args: [0.12, 12, 8] }),
1665
- /* @__PURE__ */ h("meshBasicMaterial", { color: "#facc15", wireframe: !0, depthTest: !1, depthWrite: !1 })
1653
+ () => /* @__PURE__ */ D("group", { name: "LightEditorGizmo", visible: t.showHelper, children: [
1654
+ /* @__PURE__ */ D("mesh", { renderOrder: 1e3, children: [
1655
+ /* @__PURE__ */ d("sphereGeometry", { args: [0.12, 12, 8] }),
1656
+ /* @__PURE__ */ d("meshBasicMaterial", { color: "#facc15", wireframe: !0, depthTest: !1, depthWrite: !1 })
1666
1657
  ] }),
1667
- /* @__PURE__ */ F("mesh", { position: [0, 0, -0.35], rotation: [Math.PI / 2, 0, 0], renderOrder: 1e3, children: [
1668
- /* @__PURE__ */ h("coneGeometry", { args: [0.08, 0.45, 12] }),
1669
- /* @__PURE__ */ h("meshBasicMaterial", { color: "#fde047", wireframe: !0, depthTest: !1, depthWrite: !1 })
1658
+ /* @__PURE__ */ D("mesh", { position: [0, 0, -0.35], rotation: [Math.PI / 2, 0, 0], renderOrder: 1e3, children: [
1659
+ /* @__PURE__ */ d("coneGeometry", { args: [0.08, 0.45, 12] }),
1660
+ /* @__PURE__ */ d("meshBasicMaterial", { color: "#fde047", wireframe: !0, depthTest: !1, depthWrite: !1 })
1670
1661
  ] })
1671
1662
  ] }),
1672
1663
  [t.showHelper]
1673
1664
  );
1674
- return t.enabled ? /* @__PURE__ */ F(le, { value: e, children: [
1665
+ return t.enabled ? /* @__PURE__ */ D(ue, { value: e, children: [
1675
1666
  n,
1676
- t.type === "ambient" ? /* @__PURE__ */ h("ambientLight", { color: t.color, intensity: t.intensity }) : null,
1677
- t.type === "directional" ? /* @__PURE__ */ h(
1667
+ t.type === "ambient" ? /* @__PURE__ */ d("ambientLight", { color: t.color, intensity: t.intensity }) : null,
1668
+ t.type === "directional" ? /* @__PURE__ */ d(
1678
1669
  "directionalLight",
1679
1670
  {
1680
1671
  color: t.color,
@@ -1682,7 +1673,7 @@ const Jn = ({ settings: t, transform: e }) => {
1682
1673
  castShadow: t.castShadow
1683
1674
  }
1684
1675
  ) : null,
1685
- t.type === "point" ? /* @__PURE__ */ h(
1676
+ t.type === "point" ? /* @__PURE__ */ d(
1686
1677
  "pointLight",
1687
1678
  {
1688
1679
  color: t.color,
@@ -1692,7 +1683,7 @@ const Jn = ({ settings: t, transform: e }) => {
1692
1683
  castShadow: t.castShadow
1693
1684
  }
1694
1685
  ) : null,
1695
- t.type === "spot" ? /* @__PURE__ */ h(
1686
+ t.type === "spot" ? /* @__PURE__ */ d(
1696
1687
  "spotLight",
1697
1688
  {
1698
1689
  color: t.color,
@@ -1705,32 +1696,32 @@ const Jn = ({ settings: t, transform: e }) => {
1705
1696
  }
1706
1697
  ) : null
1707
1698
  ] }) : null;
1708
- }, zn = ({
1699
+ }, Xn = ({
1709
1700
  source: t,
1710
1701
  target: e,
1711
1702
  settings: n
1712
1703
  }) => {
1713
1704
  if (!n.enabled || !e) return !1;
1714
- const r = new We();
1705
+ const i = new ke();
1715
1706
  if (n.mode === "point") {
1716
- const i = new _();
1717
- 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);
1718
1709
  } else
1719
- e.getWorldQuaternion(r);
1720
- const a = new We().setFromEuler(
1721
- new At(
1710
+ e.getWorldQuaternion(i);
1711
+ const a = new ke().setFromEuler(
1712
+ new _e(
1722
1713
  n.offsetRotation.x * Math.PI / 180,
1723
1714
  n.offsetRotation.y * Math.PI / 180,
1724
1715
  n.offsetRotation.z * Math.PI / 180
1725
1716
  )
1726
1717
  );
1727
- return t.quaternion.copy(r).multiply(a), !0;
1728
- }, Kn = ({ target: t, settings: e, children: n }) => {
1729
- const r = X(null);
1730
- return ae(() => {
1731
- r.current && zn({ source: r.current, target: t, settings: e });
1732
- }), /* @__PURE__ */ h("group", { ref: r, children: n });
1733
- }, Nn = (t, e) => {
1718
+ return t.quaternion.copy(i).multiply(a), !0;
1719
+ }, Rn = ({ target: t, settings: e, children: n }) => {
1720
+ const i = R(null);
1721
+ return se(() => {
1722
+ i.current && Xn({ source: i.current, target: t, settings: e });
1723
+ }), /* @__PURE__ */ d("group", { ref: i, children: n });
1724
+ }, Pn = (t, e) => {
1734
1725
  let n = t;
1735
1726
  for (; n && n !== e; ) {
1736
1727
  if ("isTransformControls" in n && n.isTransformControls === !0) return !0;
@@ -1738,331 +1729,325 @@ const Jn = ({ settings: t, transform: e }) => {
1738
1729
  }
1739
1730
  return !1;
1740
1731
  }, O = ({ children: t, layer: e }) => {
1741
- const n = X(null), r = X(0), a = Ie(() => {
1742
- e === void 0 || !n.current || n.current.traverse((i) => {
1743
- Nn(i, n.current) || i.layers.set(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);
1744
1735
  });
1745
1736
  }, [e]);
1746
- return ot(() => {
1747
- a(), r.current = 2;
1748
- }, [a, t]), ae(() => {
1749
- r.current <= 0 || (a(), r.current -= 1);
1750
- }, -1e3), /* @__PURE__ */ h("group", { ref: n, children: t });
1751
- }, Q = (t, e) => (t == null ? void 0 : t.type) === e, Un = (t) => null, re = ({ children: t, inside: e }) => e ? /* @__PURE__ */ h(de, { children: t }) : /* @__PURE__ */ h(Ot, { children: t }), Vn = ({
1737
+ return je(() => {
1738
+ a(), i.current = 2;
1739
+ }, [a, t]), se(() => {
1740
+ i.current <= 0 || (a(), i.current -= 1);
1741
+ }, -1e3), /* @__PURE__ */ d("group", { ref: n, children: t });
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 = ({
1752
1743
  children: t,
1753
1744
  insideScreenSpaceUI: e,
1754
1745
  objectRef: n,
1755
- renderOrder: r,
1746
+ renderOrder: i,
1756
1747
  settings: a
1757
- }) => /* @__PURE__ */ h(re, { inside: e, children: /* @__PURE__ */ h(Zn, { settings: a, renderOrder: r, objectRef: n, children: t }) }), Zn = ({
1748
+ }) => /* @__PURE__ */ d(oe, { inside: e, children: /* @__PURE__ */ d(zn, { settings: a, renderOrder: i, objectRef: n, children: t }) }), zn = ({
1758
1749
  children: t,
1759
1750
  objectRef: e,
1760
1751
  renderOrder: n,
1761
- settings: r
1752
+ settings: i
1762
1753
  }) => {
1763
- const a = be();
1764
- if (!r.enabled || !r.visible) return null;
1765
- const i = je({ transform: r, parentSize: a });
1766
- return /* @__PURE__ */ h(
1754
+ const a = Me();
1755
+ if (!i.enabled || !i.visible) return null;
1756
+ const r = ze({ transform: i, parentSize: a });
1757
+ return /* @__PURE__ */ d(
1767
1758
  "group",
1768
1759
  {
1769
1760
  ref: e,
1770
- position: i.center,
1771
- rotation: i.rotation,
1772
- scale: i.size,
1773
- renderOrder: n ?? r.renderOrder,
1761
+ position: r.center,
1762
+ rotation: r.rotation,
1763
+ scale: r.size,
1764
+ renderOrder: n ?? i.renderOrder,
1774
1765
  children: t
1775
1766
  }
1776
1767
  );
1777
- }, jn = ({
1768
+ }, Hn = ({
1778
1769
  anchor: t,
1779
1770
  children: e,
1780
1771
  insideScreenSpaceUI: n,
1781
- objectRef: r,
1772
+ objectRef: i,
1782
1773
  renderOrder: a,
1783
- settings: i
1784
- }) => /* @__PURE__ */ h(re, { inside: n, children: /* @__PURE__ */ h(
1785
- qn,
1774
+ settings: r
1775
+ }) => /* @__PURE__ */ d(oe, { inside: n, children: /* @__PURE__ */ d(
1776
+ Jn,
1786
1777
  {
1787
1778
  anchor: t,
1788
- settings: i,
1779
+ settings: r,
1789
1780
  renderOrder: a,
1790
- objectRef: r,
1781
+ objectRef: i,
1791
1782
  children: e
1792
1783
  }
1793
- ) }), qn = ({
1784
+ ) }), Jn = ({
1794
1785
  anchor: t,
1795
1786
  children: e,
1796
1787
  objectRef: n,
1797
- renderOrder: r,
1788
+ renderOrder: i,
1798
1789
  settings: a
1799
1790
  }) => {
1800
- const i = Lt({ targetFps: 24 }), { size: o } = Ae(), l = be(), s = X(null), A = X(new _()), c = X({
1801
- pos: new _(),
1802
- prevRaw: new _(),
1803
- 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(),
1804
1795
  initialized: !1
1805
- }), g = X(!1), f = X({ x: 0, y: 0, z: 0, visibility: 0 }), S = X({ x: 0, y: 0 }), m = i ? Qt(
1796
+ }), h = R(!1), f = R({ x: 0, y: 0, z: 0, visibility: 0 }), u = R({ x: 0, y: 0 }), v = r ? mt(
1806
1797
  t.target,
1807
- i.landmarks,
1798
+ r.landmarks,
1808
1799
  t.customAnchorPoint,
1809
1800
  f.current
1810
- ) : null, v = m ? Rt({ point: m, viewportSize: o, target: S.current }) : null, u = v ? je({
1801
+ ) : null, S = v ? Et({ point: v, viewportSize: o, target: u.current }) : null, m = S ? ze({
1811
1802
  transform: {
1812
1803
  ...a,
1813
1804
  position: {
1814
- x: v.x + a.position.x + t.offset.x,
1815
- y: v.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
1816
1807
  }
1817
1808
  },
1818
1809
  parentSize: l
1819
1810
  }) : null;
1820
- return ae((C, I) => {
1821
- const E = s.current;
1822
- if (E) {
1823
- if (E.visible = !!(u && a.enabled && a.visible), !u) {
1824
- g.current = !1, c.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;
1825
1816
  return;
1826
1817
  }
1827
- A.current.set(u.center[0], u.center[1], t.offset.z), t.smoothing > 0 ? (xt(
1818
+ A.current.set(m.center[0], m.center[1], t.offset.z), t.smoothing > 0 ? (Ct(
1828
1819
  c.current,
1829
1820
  A.current,
1830
- g.current ? I : 0,
1821
+ h.current ? E : 0,
1831
1822
  t.smoothing
1832
- ), E.position.copy(c.current.pos)) : E.position.copy(A.current), g.current = !0;
1823
+ ), I.position.copy(c.current.pos)) : I.position.copy(A.current), h.current = !0;
1833
1824
  }
1834
- }), /* @__PURE__ */ h(
1825
+ }), /* @__PURE__ */ d(
1835
1826
  "group",
1836
1827
  {
1837
1828
  ref: (C) => {
1838
1829
  s.current = C, n == null || n(C);
1839
1830
  },
1840
1831
  rotation: [
1841
- (u == null ? void 0 : u.rotation[0]) ?? 0,
1842
- (u == null ? void 0 : u.rotation[1]) ?? 0,
1843
- ((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)
1844
1835
  ],
1845
1836
  scale: [
1846
1837
  a.size.width / 100 * a.scale2D.x,
1847
1838
  a.size.height / 100 * a.scale2D.y,
1848
1839
  1
1849
1840
  ],
1850
- renderOrder: r ?? a.renderOrder,
1841
+ renderOrder: i ?? a.renderOrder,
1851
1842
  children: e
1852
1843
  }
1853
1844
  );
1854
- }, _n = ({
1845
+ }, Kn = ({
1855
1846
  editorMode: t = !1,
1856
- fallback: e = Un,
1857
- insideScreenSpaceUI: n = !1,
1858
- objectId: r,
1859
- onComponentChange: a,
1860
- renderLayer: i,
1861
- renderOrder: o,
1862
- store: l
1847
+ faceMeshMaterialOverrides: e,
1848
+ fallback: n = Gn,
1849
+ insideScreenSpaceUI: i = !1,
1850
+ objectId: a,
1851
+ onComponentChange: r,
1852
+ renderLayer: o,
1853
+ renderOrder: l,
1854
+ store: s
1863
1855
  }) => {
1864
- const s = Ft(), A = Yt(), c = l.objects[r];
1865
- if (!c || !c.enabled) return null;
1866
- const g = ut(l, r).filter((d) => d.enabled), f = g.find((d) => d.type === "Transform"), S = g.find((d) => d.type === "ScreenTransform"), m = g.find((d) => d.type === "ScreenImage"), v = g.find((d) => d.type === "ScreenText"), u = g.find((d) => d.type === "ScreenShape"), C = g.find((d) => d.type === "MeshRenderer"), I = g.find((d) => d.type === "FaceMeshRenderer"), E = g.find((d) => d.type === "Light"), p = g.find((d) => d.type === "LookAt"), w = g.find((d) => d.type === "PinToMesh"), T = g.find((d) => d.type === "TrackingAnchor"), b = St(l, r).map((d) => /* @__PURE__ */ h(
1867
- _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,
1868
1860
  {
1869
- objectId: d.id,
1870
- store: l,
1861
+ objectId: g.id,
1862
+ store: s,
1871
1863
  editorMode: t,
1872
- renderOrder: o,
1873
- renderLayer: i,
1874
- onComponentChange: a,
1875
- fallback: e,
1876
- insideScreenSpaceUI: n || !!S
1864
+ renderOrder: l,
1865
+ renderLayer: o,
1866
+ onComponentChange: r,
1867
+ fallback: n,
1868
+ faceMeshMaterialOverrides: e,
1869
+ insideScreenSpaceUI: i || !!v
1877
1870
  },
1878
- d.id
1871
+ g.id
1879
1872
  ));
1880
- if (Q(f, "Transform") && Q(E, "Light"))
1881
- return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ F("group", { ref: (d) => s(r, d), children: [
1882
- /* @__PURE__ */ h(Jn, { settings: E.settings, transform: f.settings }),
1883
- b
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
1884
1877
  ] }) });
1885
- if (Q(f, "Transform") && Q(C, "MeshRenderer")) {
1886
- const d = Q(p, "LookAt") ? p.settings : De("LookAt", r).settings, B = d.inheritChildren ? b : null, G = d.inheritChildren ? null : b;
1887
- return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { ref: (P) => s(r, P), children: /* @__PURE__ */ h(
1888
- 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,
1889
1882
  {
1890
- target: Q(w, "PinToMesh") ? A(w.settings.targetObjectId) : null,
1891
- settings: Q(w, "PinToMesh") ? w.settings : De("PinToMesh", r).settings,
1892
- children: /* @__PURE__ */ F(
1893
- le,
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,
1894
1887
  {
1895
- value: f.settings,
1896
- onChange: a ? (P) => a({ ...f, settings: P }) : void 0,
1888
+ value: u.settings,
1889
+ onChange: r ? (P) => r({ ...u, settings: P }) : void 0,
1897
1890
  children: [
1898
- /* @__PURE__ */ F(
1899
- Kn,
1891
+ /* @__PURE__ */ D(
1892
+ Rn,
1900
1893
  {
1901
- target: Q(p, "LookAt") ? A(p.settings.targetObjectId) : null,
1902
- settings: d,
1894
+ target: w(b, "LookAt") ? c(b.settings.targetObjectId) : null,
1895
+ settings: g,
1903
1896
  children: [
1904
- /* @__PURE__ */ h(gt, { value: C.settings, renderOrder: o }),
1905
- B
1897
+ /* @__PURE__ */ d(tt, { value: E.settings, renderOrder: l }),
1898
+ k
1906
1899
  ]
1907
1900
  }
1908
1901
  ),
1909
- G
1902
+ J
1910
1903
  ]
1911
1904
  }
1912
1905
  )
1913
1906
  }
1914
1907
  ) }) });
1915
1908
  }
1916
- if (Q(I, "FaceMeshRenderer"))
1917
- return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ F("group", { ref: (d) => s(r, d), children: [
1918
- /* @__PURE__ */ h(
1919
- ft,
1909
+ if (w(I, "FaceMeshRenderer"))
1910
+ return /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ D("group", { ref: (g) => A(a, g), children: [
1911
+ /* @__PURE__ */ d(
1912
+ nt,
1920
1913
  {
1921
1914
  value: I.settings,
1922
- transform: Q(f, "Transform") ? f.settings : void 0
1915
+ materialOverride: e == null ? void 0 : e[I.id],
1916
+ transform: w(u, "Transform") ? u.settings : void 0
1923
1917
  }
1924
1918
  ),
1925
- b
1919
+ p
1926
1920
  ] }) });
1927
- if (Q(f, "Transform")) {
1928
- if (Q(T, "TrackingAnchor")) {
1929
- const d = T.settings;
1930
- return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h(wt, { followFaceRoll: d.followFaceRoll, children: /* @__PURE__ */ h(
1931
- kt,
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,
1932
1926
  {
1933
- target: d.target,
1934
- customAnchorPoint: d.customAnchorPoint,
1935
- offset: [d.offset.x, d.offset.y, d.offset.z],
1936
- smoothing: d.smoothing,
1937
- children: /* @__PURE__ */ h(
1938
- le,
1927
+ target: g.target,
1928
+ customAnchorPoint: g.customAnchorPoint,
1929
+ offset: [g.offset.x, g.offset.y, g.offset.z],
1930
+ smoothing: g.smoothing,
1931
+ children: /* @__PURE__ */ d(
1932
+ ue,
1939
1933
  {
1940
- objectRef: (B) => s(r, B),
1941
- value: f.settings,
1942
- children: b
1934
+ objectRef: (k) => A(a, k),
1935
+ value: u.settings,
1936
+ children: p
1943
1937
  }
1944
1938
  )
1945
1939
  }
1946
1940
  ) }) });
1947
1941
  }
1948
- return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { children: /* @__PURE__ */ h(
1949
- le,
1942
+ return /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { children: /* @__PURE__ */ d(
1943
+ ue,
1950
1944
  {
1951
- objectRef: (d) => s(r, d),
1952
- value: f.settings,
1953
- onChange: a ? (d) => a({ ...f, settings: d }) : void 0,
1954
- children: b
1945
+ objectRef: (g) => A(a, g),
1946
+ value: u.settings,
1947
+ onChange: r ? (g) => r({ ...u, settings: g }) : void 0,
1948
+ children: p
1955
1949
  }
1956
1950
  ) }) });
1957
1951
  }
1958
- if (Q(S, "ScreenTransform") && Q(m, "ScreenImage")) {
1959
- const d = mt({
1952
+ if (w(v, "ScreenTransform") && w(S, "ScreenImage")) {
1953
+ const g = ot({
1960
1954
  screenSpaceUI: { enabled: !0 },
1961
1955
  screenImage: {
1962
- ...m.settings,
1963
- screenTransform: S.settings
1956
+ ...S.settings,
1957
+ screenTransform: v.settings
1964
1958
  }
1965
1959
  });
1966
- return d.shouldRender ? /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { renderOrder: o, children: /* @__PURE__ */ F(re, { inside: n, children: [
1967
- /* @__PURE__ */ h(
1968
- Fn,
1960
+ return g.shouldRender ? /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { renderOrder: l, children: /* @__PURE__ */ D(oe, { inside: i, children: [
1961
+ /* @__PURE__ */ d(
1962
+ Bn,
1969
1963
  {
1970
- ...d.props,
1971
- renderOrder: o ?? d.props.renderOrder,
1972
- onScreenTransformChange: a ? (B) => a({ ...S, settings: B }) : void 0
1964
+ ...g.props,
1965
+ renderOrder: l ?? g.props.renderOrder,
1966
+ onScreenTransformChange: r ? (k) => r({ ...v, settings: k }) : void 0
1973
1967
  }
1974
1968
  ),
1975
- b
1969
+ p
1976
1970
  ] }) }) }) : null;
1977
1971
  }
1978
- if (Q(S, "ScreenTransform") && Q(v, "ScreenText")) {
1979
- const d = Ct({
1972
+ if (w(v, "ScreenTransform") && w(m, "ScreenText")) {
1973
+ const g = lt({
1980
1974
  screenSpaceUI: { enabled: !0 },
1981
1975
  screenText: {
1982
- ...v.settings,
1983
- screenTransform: S.settings
1976
+ ...m.settings,
1977
+ screenTransform: v.settings
1984
1978
  }
1985
1979
  });
1986
- return d.shouldRender ? /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { renderOrder: o, children: /* @__PURE__ */ F(re, { inside: n, children: [
1987
- /* @__PURE__ */ h(
1988
- Hn,
1980
+ return g.shouldRender ? /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { renderOrder: l, children: /* @__PURE__ */ D(oe, { inside: i, children: [
1981
+ /* @__PURE__ */ d(
1982
+ Yn,
1989
1983
  {
1990
- ...d.props,
1991
- renderOrder: o ?? d.props.renderOrder,
1992
- onScreenTransformChange: a ? (B) => a({ ...S, settings: B }) : void 0
1984
+ ...g.props,
1985
+ renderOrder: l ?? g.props.renderOrder,
1986
+ onScreenTransformChange: r ? (k) => r({ ...v, settings: k }) : void 0
1993
1987
  }
1994
1988
  ),
1995
- b
1989
+ p
1996
1990
  ] }) }) }) : null;
1997
1991
  }
1998
- return Q(S, "ScreenTransform") && Q(u, "ScreenShape") ? /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { ref: (d) => s(r, d), renderOrder: o, children: /* @__PURE__ */ F(re, { inside: n, children: [
1999
- /* @__PURE__ */ h(
2000
- Et,
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: [
1993
+ /* @__PURE__ */ d(
1994
+ st,
2001
1995
  {
2002
- name: c.name,
2003
- settings: u.settings,
2004
- transform: S.settings,
2005
- renderOrder: o,
2006
- onScreenTransformChange: a ? (d) => a({ ...S, settings: d }) : void 0
1996
+ name: h.name,
1997
+ settings: C.settings,
1998
+ transform: v.settings,
1999
+ renderOrder: l,
2000
+ onScreenTransformChange: r ? (g) => r({ ...v, settings: g }) : void 0
2007
2001
  }
2008
2002
  ),
2009
- b
2010
- ] }) }) }) : Q(S, "ScreenTransform") ? Q(T, "TrackingAnchor") ? /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { children: /* @__PURE__ */ h(
2011
- jn,
2003
+ p
2004
+ ] }) }) }) : w(v, "ScreenTransform") ? w(F, "TrackingAnchor") ? /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { children: /* @__PURE__ */ d(
2005
+ Hn,
2012
2006
  {
2013
- anchor: T.settings,
2014
- settings: S.settings,
2015
- renderOrder: o,
2016
- insideScreenSpaceUI: n,
2017
- objectRef: (d) => s(r, d),
2018
- children: b
2007
+ anchor: F.settings,
2008
+ settings: v.settings,
2009
+ renderOrder: l,
2010
+ insideScreenSpaceUI: i,
2011
+ objectRef: (g) => A(a, g),
2012
+ children: p
2019
2013
  }
2020
- ) }) }) : /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { children: /* @__PURE__ */ h(
2021
- Vn,
2014
+ ) }) }) : /* @__PURE__ */ d(O, { layer: o, children: /* @__PURE__ */ d("group", { children: /* @__PURE__ */ d(
2015
+ On,
2022
2016
  {
2023
- settings: S.settings,
2024
- renderOrder: o,
2025
- insideScreenSpaceUI: n,
2026
- objectRef: (d) => s(r, d),
2027
- children: b
2017
+ settings: v.settings,
2018
+ renderOrder: l,
2019
+ insideScreenSpaceUI: i,
2020
+ objectRef: (g) => A(a, g),
2021
+ children: p
2028
2022
  }
2029
- ) }) }) : t ? /* @__PURE__ */ F(de, { children: [
2030
- b,
2031
- e(
2032
- `Object "${c.name}" has unsupported components: ${g.map((d) => d.type).join(", ")}`
2023
+ ) }) }) : t ? /* @__PURE__ */ D(Se, { children: [
2024
+ p,
2025
+ n(
2026
+ `Object "${h.name}" has unsupported components: ${f.map((g) => g.type).join(", ")}`
2033
2027
  )
2034
- ] }) : b.length ? /* @__PURE__ */ h(de, { children: b }) : null;
2035
- }, Ir = ({ layers: t }) => {
2036
- const { camera: e, gl: n, raycaster: r, scene: a } = Ae(), { session: i } = Wt(), o = Ie(
2037
- () => It({ 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 }),
2038
2032
  [e, n, t, a]
2039
2033
  );
2040
- return ae(o, 1), te(() => {
2041
- const l = r.layers.mask;
2042
- return t.forEach((s) => r.layers.enable(s)), () => {
2043
- r.layers.mask = l;
2034
+ return se(o, 1), te(() => {
2035
+ const l = i.layers.mask;
2036
+ return t.forEach((s) => i.layers.enable(s)), () => {
2037
+ i.layers.mask = l;
2044
2038
  };
2045
- }, [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;
2046
2040
  };
2047
2041
  export {
2048
- Jn as L,
2042
+ Dn as L,
2049
2043
  O as R,
2050
- Ot as S,
2051
- sn as T,
2052
- Fn as a,
2053
- Hn as b,
2054
- Ee as c,
2055
- Kn as d,
2056
- _n as e,
2057
- Ir as f,
2058
- fr as g,
2059
- ur as h,
2060
- mr as i,
2061
- Sr as j,
2062
- Er as k,
2063
- gr as l,
2064
- vr as m,
2065
- Rt as n,
2066
- dr as s,
2067
- Cr as w
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
2068
2053
  };