@intlayer/design-system 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +30 -0
  3. package/dist/.vite/manifest.json +953 -0
  4. package/dist/MarkDownRender-BeQGOIow.cjs +14 -0
  5. package/dist/MarkDownRender-gURA8GAt.js +315 -0
  6. package/dist/StringWrapper-CW70GPXq.js +28 -0
  7. package/dist/StringWrapper-DUDqtkwz.cjs +1 -0
  8. package/dist/check-BLEiR8OY.js +12 -0
  9. package/dist/check-rhNgx2ZQ.cjs +6 -0
  10. package/dist/components/Accordion/Accordion.cjs.js +8 -0
  11. package/dist/components/Accordion/Accordion.d.ts +10 -0
  12. package/dist/components/Accordion/Accordion.es.js +48 -0
  13. package/dist/components/Accordion/index.cjs.js +1 -0
  14. package/dist/components/Accordion/index.d.ts +1 -0
  15. package/dist/components/Accordion/index.es.js +5 -0
  16. package/dist/components/Avatar/index.cjs.js +6 -0
  17. package/dist/components/Avatar/index.d.ts +9 -0
  18. package/dist/components/Avatar/index.es.js +71 -0
  19. package/dist/components/Button/index.cjs.js +6 -0
  20. package/dist/components/Button/index.d.ts +22 -0
  21. package/dist/components/Button/index.es.js +306 -0
  22. package/dist/components/Container/index.cjs.js +7 -0
  23. package/dist/components/Container/index.d.ts +23 -0
  24. package/dist/components/Container/index.es.js +152 -0
  25. package/dist/components/ContentEditor/ContentEditor.cjs.js +5 -0
  26. package/dist/components/ContentEditor/ContentEditor.d.ts +8 -0
  27. package/dist/components/ContentEditor/ContentEditor.es.js +75 -0
  28. package/dist/components/ContentEditor/index.cjs.js +1 -0
  29. package/dist/components/ContentEditor/index.d.ts +1 -0
  30. package/dist/components/ContentEditor/index.es.js +5 -0
  31. package/dist/components/ContentSelector/ContentSelector.cjs.js +1 -0
  32. package/dist/components/ContentSelector/ContentSelector.d.ts +11 -0
  33. package/dist/components/ContentSelector/ContentSelector.es.js +14 -0
  34. package/dist/components/ContentSelector/index.cjs.js +1 -0
  35. package/dist/components/ContentSelector/index.d.ts +1 -0
  36. package/dist/components/ContentSelector/index.es.js +5 -0
  37. package/dist/components/DictionaryEditor/DictionaryEditor.cjs.js +1 -0
  38. package/dist/components/DictionaryEditor/DictionaryEditor.d.ts +20 -0
  39. package/dist/components/DictionaryEditor/DictionaryEditor.es.js +25 -0
  40. package/dist/components/DictionaryEditor/ItemLayout.cjs.js +1 -0
  41. package/dist/components/DictionaryEditor/ItemLayout.d.ts +16 -0
  42. package/dist/components/DictionaryEditor/ItemLayout.es.js +81 -0
  43. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.cjs.js +1 -0
  44. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.d.ts +9 -0
  45. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.es.js +10 -0
  46. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.cjs.js +1 -0
  47. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.d.ts +9 -0
  48. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.es.js +9 -0
  49. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.cjs.js +1 -0
  50. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.d.ts +9 -0
  51. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.es.js +9 -0
  52. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs.js +1 -0
  53. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts +8 -0
  54. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.es.js +9 -0
  55. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.cjs.js +1 -0
  56. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.d.ts +9 -0
  57. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.es.js +7 -0
  58. package/dist/components/DictionaryEditor/NodeWrapper/index.cjs.js +1 -0
  59. package/dist/components/DictionaryEditor/NodeWrapper/index.d.ts +19 -0
  60. package/dist/components/DictionaryEditor/NodeWrapper/index.es.js +9 -0
  61. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs.js +1 -0
  62. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.d.ts +10 -0
  63. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.es.js +40 -0
  64. package/dist/components/DictionaryEditor/index.cjs.js +1 -0
  65. package/dist/components/DictionaryEditor/index.d.ts +1 -0
  66. package/dist/components/DictionaryEditor/index.es.js +5 -0
  67. package/dist/components/DropDown/index.cjs.js +5 -0
  68. package/dist/components/DropDown/index.d.ts +3 -0
  69. package/dist/components/DropDown/index.es.js +50 -0
  70. package/dist/components/DropDown/types.cjs.js +1 -0
  71. package/dist/components/DropDown/types.d.ts +15 -0
  72. package/dist/components/DropDown/types.es.js +1 -0
  73. package/dist/components/Footer/index.cjs.js +1 -0
  74. package/dist/components/Footer/index.d.ts +17 -0
  75. package/dist/components/Footer/index.es.js +64 -0
  76. package/dist/components/Headers/index.cjs.js +1 -0
  77. package/dist/components/Headers/index.d.ts +5 -0
  78. package/dist/components/Headers/index.es.js +35 -0
  79. package/dist/components/IDE/CodeRender.cjs.js +11 -0
  80. package/dist/components/IDE/CodeRender.d.ts +10 -0
  81. package/dist/components/IDE/CodeRender.es.js +833 -0
  82. package/dist/components/IDE/IDE.cjs.js +1 -0
  83. package/dist/components/IDE/IDE.d.ts +10 -0
  84. package/dist/components/IDE/IDE.es.js +124 -0
  85. package/dist/components/IDE/MarkDownRender.cjs.js +1 -0
  86. package/dist/components/IDE/MarkDownRender.d.ts +8 -0
  87. package/dist/components/IDE/MarkDownRender.es.js +7 -0
  88. package/dist/components/IDE/index.cjs.js +1 -0
  89. package/dist/components/IDE/index.d.ts +2 -0
  90. package/dist/components/IDE/index.es.js +7 -0
  91. package/dist/components/Loader/index.cjs.js +1 -0
  92. package/dist/components/Loader/index.d.ts +6 -0
  93. package/dist/components/Loader/index.es.js +21 -0
  94. package/dist/components/Loader/spinner.cjs.js +1 -0
  95. package/dist/components/Loader/spinner.d.ts +7 -0
  96. package/dist/components/Loader/spinner.es.js +22 -0
  97. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.js +6 -0
  98. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts +11 -0
  99. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.es.js +571 -0
  100. package/dist/components/LocaleSwitcherDropDown/index.cjs.js +1 -0
  101. package/dist/components/LocaleSwitcherDropDown/index.d.ts +1 -0
  102. package/dist/components/LocaleSwitcherDropDown/index.es.js +5 -0
  103. package/dist/components/Logo/LogoCircle.cjs.js +1 -0
  104. package/dist/components/Logo/LogoCircle.d.ts +4 -0
  105. package/dist/components/Logo/LogoCircle.es.js +12 -0
  106. package/dist/components/Logo/LogoNoFrame.cjs.js +1 -0
  107. package/dist/components/Logo/LogoNoFrame.d.ts +4 -0
  108. package/dist/components/Logo/LogoNoFrame.es.js +28 -0
  109. package/dist/components/Logo/LogoSquare.cjs.js +1 -0
  110. package/dist/components/Logo/LogoSquare.d.ts +4 -0
  111. package/dist/components/Logo/LogoSquare.es.js +12 -0
  112. package/dist/components/Logo/LogoSquircle.cjs.js +1 -0
  113. package/dist/components/Logo/LogoSquircle.d.ts +4 -0
  114. package/dist/components/Logo/LogoSquircle.es.js +17 -0
  115. package/dist/components/Logo/LogoTextOnly.cjs.js +1 -0
  116. package/dist/components/Logo/LogoTextOnly.d.ts +4 -0
  117. package/dist/components/Logo/LogoTextOnly.es.js +28 -0
  118. package/dist/components/Logo/LogoWithTextBelowCircle.cjs.js +1 -0
  119. package/dist/components/Logo/LogoWithTextBelowCircle.d.ts +4 -0
  120. package/dist/components/Logo/LogoWithTextBelowCircle.es.js +30 -0
  121. package/dist/components/Logo/LogoWithTextBelowNoFrame.cjs.js +1 -0
  122. package/dist/components/Logo/LogoWithTextBelowNoFrame.d.ts +4 -0
  123. package/dist/components/Logo/LogoWithTextBelowNoFrame.es.js +28 -0
  124. package/dist/components/Logo/LogoWithTextBelowSquircle.cjs.js +1 -0
  125. package/dist/components/Logo/LogoWithTextBelowSquircle.d.ts +4 -0
  126. package/dist/components/Logo/LogoWithTextBelowSquircle.es.js +17 -0
  127. package/dist/components/Logo/LogoWithTextCircle.cjs.js +1 -0
  128. package/dist/components/Logo/LogoWithTextCircle.d.ts +4 -0
  129. package/dist/components/Logo/LogoWithTextCircle.es.js +51 -0
  130. package/dist/components/Logo/LogoWithTextNoFrame.cjs.js +1 -0
  131. package/dist/components/Logo/LogoWithTextNoFrame.d.ts +4 -0
  132. package/dist/components/Logo/LogoWithTextNoFrame.es.js +28 -0
  133. package/dist/components/Logo/LogoWithTextSquircle.cjs.js +1 -0
  134. package/dist/components/Logo/LogoWithTextSquircle.d.ts +4 -0
  135. package/dist/components/Logo/LogoWithTextSquircle.es.js +17 -0
  136. package/dist/components/Logo/index.cjs.js +1 -0
  137. package/dist/components/Logo/index.d.ts +20 -0
  138. package/dist/components/Logo/index.es.js +65 -0
  139. package/dist/components/MarkDownRender/index.cjs.js +1 -0
  140. package/dist/components/MarkDownRender/index.d.ts +8 -0
  141. package/dist/components/MarkDownRender/index.es.js +84 -0
  142. package/dist/components/MaxHeightSmoother/index.cjs.js +6 -0
  143. package/dist/components/MaxHeightSmoother/index.d.ts +11 -0
  144. package/dist/components/MaxHeightSmoother/index.es.js +52 -0
  145. package/dist/components/MaxWidthSmoother/index.cjs.js +6 -0
  146. package/dist/components/MaxWidthSmoother/index.d.ts +11 -0
  147. package/dist/components/MaxWidthSmoother/index.es.js +39 -0
  148. package/dist/components/Modal/index.cjs.js +1 -0
  149. package/dist/components/Modal/index.d.ts +9 -0
  150. package/dist/components/Modal/index.es.js +64 -0
  151. package/dist/components/Navbar/Burger.cjs.js +1 -0
  152. package/dist/components/Navbar/Burger.d.ts +7 -0
  153. package/dist/components/Navbar/Burger.es.js +84 -0
  154. package/dist/components/Navbar/DesktopNavbar.cjs.js +7 -0
  155. package/dist/components/Navbar/DesktopNavbar.d.ts +10 -0
  156. package/dist/components/Navbar/DesktopNavbar.es.js +76 -0
  157. package/dist/components/Navbar/MobileNavbar.cjs.js +9 -0
  158. package/dist/components/Navbar/MobileNavbar.d.ts +12 -0
  159. package/dist/components/Navbar/MobileNavbar.es.js +199 -0
  160. package/dist/components/Navbar/index.cjs.js +1 -0
  161. package/dist/components/Navbar/index.d.ts +20 -0
  162. package/dist/components/Navbar/index.es.js +25 -0
  163. package/dist/components/Navbar/useNavigation.cjs.js +1 -0
  164. package/dist/components/Navbar/useNavigation.d.ts +5 -0
  165. package/dist/components/Navbar/useNavigation.es.js +39 -0
  166. package/dist/components/Popover/index.cjs.js +1 -0
  167. package/dist/components/Popover/index.d.ts +8 -0
  168. package/dist/components/Popover/index.es.js +48 -0
  169. package/dist/components/PressableDiv/PressableDiv.cjs.js +1 -0
  170. package/dist/components/PressableDiv/PressableDiv.d.ts +10 -0
  171. package/dist/components/PressableDiv/PressableDiv.es.js +62 -0
  172. package/dist/components/PressableDiv/index.cjs.js +1 -0
  173. package/dist/components/PressableDiv/index.d.ts +1 -0
  174. package/dist/components/PressableDiv/index.es.js +5 -0
  175. package/dist/components/ProfileDropDown/index.cjs.js +6 -0
  176. package/dist/components/ProfileDropDown/index.d.ts +6 -0
  177. package/dist/components/ProfileDropDown/index.es.js +37 -0
  178. package/dist/components/RedirectionButton/RedirectionButton.cjs.js +6 -0
  179. package/dist/components/RedirectionButton/RedirectionButton.d.ts +8 -0
  180. package/dist/components/RedirectionButton/RedirectionButton.es.js +42 -0
  181. package/dist/components/RedirectionButton/index.cjs.js +1 -0
  182. package/dist/components/RedirectionButton/index.d.ts +1 -0
  183. package/dist/components/RedirectionButton/index.es.js +5 -0
  184. package/dist/components/RightDrawer/RightDrawer.cjs.js +8 -0
  185. package/dist/components/RightDrawer/RightDrawer.d.ts +16 -0
  186. package/dist/components/RightDrawer/RightDrawer.es.js +118 -0
  187. package/dist/components/RightDrawer/index.cjs.js +1 -0
  188. package/dist/components/RightDrawer/index.d.ts +2 -0
  189. package/dist/components/RightDrawer/index.es.js +8 -0
  190. package/dist/components/RightDrawer/useRightDrawerStore.cjs.js +1 -0
  191. package/dist/components/RightDrawer/useRightDrawerStore.d.ts +8 -0
  192. package/dist/components/RightDrawer/useRightDrawerStore.es.js +15 -0
  193. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.cjs.js +1 -0
  194. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.d.ts +10 -0
  195. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.es.js +69 -0
  196. package/dist/components/ThemeSwitcherDropDown/MobileThemeSwitcher.cjs.js +1 -0
  197. package/dist/components/ThemeSwitcherDropDown/MobileThemeSwitcher.d.ts +10 -0
  198. package/dist/components/ThemeSwitcherDropDown/MobileThemeSwitcher.es.js +65 -0
  199. package/dist/components/ThemeSwitcherDropDown/index.cjs.js +1 -0
  200. package/dist/components/ThemeSwitcherDropDown/index.d.ts +3 -0
  201. package/dist/components/ThemeSwitcherDropDown/index.es.js +9 -0
  202. package/dist/components/ThemeSwitcherDropDown/types.cjs.js +1 -0
  203. package/dist/components/ThemeSwitcherDropDown/types.d.ts +5 -0
  204. package/dist/components/ThemeSwitcherDropDown/types.es.js +5 -0
  205. package/dist/components/index.cjs.js +1 -0
  206. package/dist/components/index.d.ts +22 -0
  207. package/dist/components/index.es.js +61 -0
  208. package/dist/createLucideIcon-DlZEiEGq.js +80 -0
  209. package/dist/createLucideIcon-ZOnO-fn6.cjs +21 -0
  210. package/dist/hooks/index.cjs.js +1 -0
  211. package/dist/hooks/index.d.ts +5 -0
  212. package/dist/hooks/index.es.js +13 -0
  213. package/dist/hooks/useDevice.cjs.js +1 -0
  214. package/dist/hooks/useDevice.d.ts +8 -0
  215. package/dist/hooks/useDevice.es.js +48 -0
  216. package/dist/hooks/useGetElementOrWindow.cjs.js +1 -0
  217. package/dist/hooks/useGetElementOrWindow.d.ts +1 -0
  218. package/dist/hooks/useGetElementOrWindow.es.js +11 -0
  219. package/dist/hooks/useIsMounted.cjs.js +1 -0
  220. package/dist/hooks/useIsMounted.d.ts +1 -0
  221. package/dist/hooks/useIsMounted.es.js +11 -0
  222. package/dist/hooks/useScrollBlockage/index.cjs.js +1 -0
  223. package/dist/hooks/useScrollBlockage/index.d.ts +14 -0
  224. package/dist/hooks/useScrollBlockage/index.es.js +24 -0
  225. package/dist/hooks/useScrollBlockage/useScrollBlockageStore.cjs.js +1 -0
  226. package/dist/hooks/useScrollBlockage/useScrollBlockageStore.d.ts +12 -0
  227. package/dist/hooks/useScrollBlockage/useScrollBlockageStore.es.js +40 -0
  228. package/dist/hooks/useScrollDetection.cjs.js +1 -0
  229. package/dist/hooks/useScrollDetection.d.ts +13 -0
  230. package/dist/hooks/useScrollDetection.es.js +41 -0
  231. package/dist/index-B2ncVbtX.cjs +1 -0
  232. package/dist/index-D-PWvdb-.js +91 -0
  233. package/dist/intlayer-editor/src/client/renderContentEditor.d.ts +14 -0
  234. package/dist/jsx-runtime-D6agescH.cjs +30 -0
  235. package/dist/jsx-runtime-Tw_Kw2GZ.js +638 -0
  236. package/dist/localeList-CaRF-907.js +300 -0
  237. package/dist/localeList-DlUgKn8J.cjs +1 -0
  238. package/dist/motion-BuKul-u9.cjs +1 -0
  239. package/dist/motion-CP5YERk7.js +4517 -0
  240. package/dist/styled-components.browser.esm-D6kkzXl4.js +1085 -0
  241. package/dist/styled-components.browser.esm-GqWwDlfY.cjs +58 -0
  242. package/dist/sun-BQYZHcpc.cjs +16 -0
  243. package/dist/sun-BrKC5Qwg.js +49 -0
  244. package/dist/utils/capitalize.cjs.js +1 -0
  245. package/dist/utils/capitalize.d.ts +1 -0
  246. package/dist/utils/capitalize.es.js +5 -0
  247. package/dist/utils/cn.cjs.js +1 -0
  248. package/dist/utils/cn.d.ts +3 -0
  249. package/dist/utils/cn.es.js +2338 -0
  250. package/dist/x-BKwnSvvj.js +15 -0
  251. package/dist/x-DIXoN4xe.cjs +6 -0
  252. package/package.json +84 -0
@@ -0,0 +1,4517 @@
1
+ "use client";
2
+ import { j as fe } from "./jsx-runtime-Tw_Kw2GZ.js";
3
+ import { createContext as pt, useLayoutEffect as $i, useEffect as De, useContext as F, useRef as de, useInsertionEffect as Wi, useCallback as Gi, useMemo as Wt, forwardRef as Hi, Fragment as xs, createElement as zi, useId as Yi, Component as Xi } from "react";
4
+ const Ts = pt({
5
+ transformPagePoint: (t) => t,
6
+ isStatic: !1,
7
+ reducedMotion: "never"
8
+ }), Gt = pt({}), Me = pt(null), Re = typeof document < "u", qi = Re ? $i : De, Ps = pt({ strict: !1 }), Ee = (t) => t.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase(), Zi = "framerAppearId", bs = "data-" + Ee(Zi), Qi = {
9
+ skipAnimations: !1,
10
+ useManualTiming: !1
11
+ };
12
+ class an {
13
+ constructor() {
14
+ this.order = [], this.scheduled = /* @__PURE__ */ new Set();
15
+ }
16
+ add(e) {
17
+ if (!this.scheduled.has(e))
18
+ return this.scheduled.add(e), this.order.push(e), !0;
19
+ }
20
+ remove(e) {
21
+ const n = this.order.indexOf(e);
22
+ n !== -1 && (this.order.splice(n, 1), this.scheduled.delete(e));
23
+ }
24
+ clear() {
25
+ this.order.length = 0, this.scheduled.clear();
26
+ }
27
+ }
28
+ function Ji(t) {
29
+ let e = new an(), n = new an(), s = 0, i = !1, o = !1;
30
+ const r = /* @__PURE__ */ new WeakSet(), a = {
31
+ /**
32
+ * Schedule a process to run on the next frame.
33
+ */
34
+ schedule: (l, u = !1, c = !1) => {
35
+ const h = c && i, f = h ? e : n;
36
+ return u && r.add(l), f.add(l) && h && i && (s = e.order.length), l;
37
+ },
38
+ /**
39
+ * Cancel the provided callback from running on the next frame.
40
+ */
41
+ cancel: (l) => {
42
+ n.remove(l), r.delete(l);
43
+ },
44
+ /**
45
+ * Execute all schedule callbacks.
46
+ */
47
+ process: (l) => {
48
+ if (i) {
49
+ o = !0;
50
+ return;
51
+ }
52
+ if (i = !0, [e, n] = [n, e], n.clear(), s = e.order.length, s)
53
+ for (let u = 0; u < s; u++) {
54
+ const c = e.order[u];
55
+ r.has(c) && (a.schedule(c), t()), c(l);
56
+ }
57
+ i = !1, o && (o = !1, a.process(l));
58
+ }
59
+ };
60
+ return a;
61
+ }
62
+ const Et = [
63
+ "read",
64
+ // Read
65
+ "resolveKeyframes",
66
+ // Write/Read/Write/Read
67
+ "update",
68
+ // Compute
69
+ "preRender",
70
+ // Compute
71
+ "render",
72
+ // Write
73
+ "postRender"
74
+ // Compute
75
+ ], tr = 40;
76
+ function Ss(t, e) {
77
+ let n = !1, s = !0;
78
+ const i = {
79
+ delta: 0,
80
+ timestamp: 0,
81
+ isProcessing: !1
82
+ }, o = Et.reduce((h, f) => (h[f] = Ji(() => n = !0), h), {}), r = (h) => {
83
+ o[h].process(i);
84
+ }, a = () => {
85
+ const h = performance.now();
86
+ n = !1, i.delta = s ? 1e3 / 60 : Math.max(Math.min(h - i.timestamp, tr), 1), i.timestamp = h, i.isProcessing = !0, Et.forEach(r), i.isProcessing = !1, n && e && (s = !1, t(a));
87
+ }, l = () => {
88
+ n = !0, s = !0, i.isProcessing || t(a);
89
+ };
90
+ return { schedule: Et.reduce((h, f) => {
91
+ const d = o[f];
92
+ return h[f] = (p, m = !1, y = !1) => (n || l(), d.schedule(p, m, y)), h;
93
+ }, {}), cancel: (h) => Et.forEach((f) => o[f].cancel(h)), state: i, steps: o };
94
+ }
95
+ const { schedule: Le, cancel: Pc } = Ss(queueMicrotask, !1);
96
+ function lt(t) {
97
+ return t && typeof t == "object" && Object.prototype.hasOwnProperty.call(t, "current");
98
+ }
99
+ const Vs = pt({});
100
+ let ln = !1;
101
+ function er(t, e, n, s, i) {
102
+ const { visualElement: o } = F(Gt), r = F(Ps), a = F(Me), l = F(Ts).reducedMotion, u = de();
103
+ s = s || r.renderer, !u.current && s && (u.current = s(t, {
104
+ visualState: e,
105
+ parent: o,
106
+ props: n,
107
+ presenceContext: a,
108
+ blockInitialAnimation: a ? a.initial === !1 : !1,
109
+ reducedMotionConfig: l
110
+ }));
111
+ const c = u.current, h = F(Vs);
112
+ c && !c.projection && i && (c.type === "html" || c.type === "svg") && sr(u.current, n, i, h), Wi(() => {
113
+ c && c.update(n, a);
114
+ });
115
+ const f = de(!!(n[bs] && !window.HandoffComplete));
116
+ return qi(() => {
117
+ c && (c.updateFeatures(), Le.render(c.render), f.current && c.animationState && c.animationState.animateChanges());
118
+ }), De(() => {
119
+ c && (!f.current && c.animationState && c.animationState.animateChanges(), f.current && (f.current = !1, ln || (ln = !0, queueMicrotask(nr))));
120
+ }), c;
121
+ }
122
+ function nr() {
123
+ window.HandoffComplete = !0;
124
+ }
125
+ function sr(t, e, n, s) {
126
+ const { layoutId: i, layout: o, drag: r, dragConstraints: a, layoutScroll: l, layoutRoot: u } = e;
127
+ t.projection = new n(t.latestValues, e["data-framer-portal-id"] ? void 0 : ws(t.parent)), t.projection.setOptions({
128
+ layoutId: i,
129
+ layout: o,
130
+ alwaysMeasureLayout: !!r || a && lt(a),
131
+ visualElement: t,
132
+ scheduleRender: () => t.scheduleRender(),
133
+ /**
134
+ * TODO: Update options in an effect. This could be tricky as it'll be too late
135
+ * to update by the time layout animations run.
136
+ * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,
137
+ * ensuring it gets called if there's no potential layout animations.
138
+ *
139
+ */
140
+ animationType: typeof o == "string" ? o : "both",
141
+ initialPromotionConfig: s,
142
+ layoutScroll: l,
143
+ layoutRoot: u
144
+ });
145
+ }
146
+ function ws(t) {
147
+ if (t)
148
+ return t.options.allowProjection !== !1 ? t.projection : ws(t.parent);
149
+ }
150
+ function ir(t, e, n) {
151
+ return Gi(
152
+ (s) => {
153
+ s && t.mount && t.mount(s), e && (s ? e.mount(s) : e.unmount()), n && (typeof n == "function" ? n(s) : lt(n) && (n.current = s));
154
+ },
155
+ /**
156
+ * Only pass a new ref callback to React if we've received a visual element
157
+ * factory. Otherwise we'll be mounting/remounting every time externalRef
158
+ * or other dependencies change.
159
+ */
160
+ [e]
161
+ );
162
+ }
163
+ function St(t) {
164
+ return typeof t == "string" || Array.isArray(t);
165
+ }
166
+ function Ht(t) {
167
+ return t !== null && typeof t == "object" && typeof t.start == "function";
168
+ }
169
+ const Fe = [
170
+ "animate",
171
+ "whileInView",
172
+ "whileFocus",
173
+ "whileHover",
174
+ "whileTap",
175
+ "whileDrag",
176
+ "exit"
177
+ ], Be = ["initial", ...Fe];
178
+ function zt(t) {
179
+ return Ht(t.animate) || Be.some((e) => St(t[e]));
180
+ }
181
+ function As(t) {
182
+ return !!(zt(t) || t.variants);
183
+ }
184
+ function rr(t, e) {
185
+ if (zt(t)) {
186
+ const { initial: n, animate: s } = t;
187
+ return {
188
+ initial: n === !1 || St(n) ? n : void 0,
189
+ animate: St(s) ? s : void 0
190
+ };
191
+ }
192
+ return t.inherit !== !1 ? e : {};
193
+ }
194
+ function or(t) {
195
+ const { initial: e, animate: n } = rr(t, F(Gt));
196
+ return Wt(() => ({ initial: e, animate: n }), [cn(e), cn(n)]);
197
+ }
198
+ function cn(t) {
199
+ return Array.isArray(t) ? t.join(" ") : t;
200
+ }
201
+ const un = {
202
+ animation: [
203
+ "animate",
204
+ "variants",
205
+ "whileHover",
206
+ "whileTap",
207
+ "exit",
208
+ "whileInView",
209
+ "whileFocus",
210
+ "whileDrag"
211
+ ],
212
+ exit: ["exit"],
213
+ drag: ["drag", "dragControls"],
214
+ focus: ["whileFocus"],
215
+ hover: ["whileHover", "onHoverStart", "onHoverEnd"],
216
+ tap: ["whileTap", "onTap", "onTapStart", "onTapCancel"],
217
+ pan: ["onPan", "onPanStart", "onPanSessionStart", "onPanEnd"],
218
+ inView: ["whileInView", "onViewportEnter", "onViewportLeave"],
219
+ layout: ["layout", "layoutId"]
220
+ }, ft = {};
221
+ for (const t in un)
222
+ ft[t] = {
223
+ isEnabled: (e) => un[t].some((n) => !!e[n])
224
+ };
225
+ function ar(t) {
226
+ for (const e in t)
227
+ ft[e] = {
228
+ ...ft[e],
229
+ ...t[e]
230
+ };
231
+ }
232
+ const Cs = pt({}), lr = Symbol.for("motionComponentSymbol"), D = (t) => t;
233
+ var cr = {};
234
+ let mt = D, Z = D;
235
+ cr.NODE_ENV !== "production" && (mt = (t, e) => {
236
+ !t && typeof console < "u" && console.warn(e);
237
+ }, Z = (t, e) => {
238
+ if (!t)
239
+ throw new Error(e);
240
+ });
241
+ var ur = {};
242
+ function hr({ preloadedFeatures: t, createVisualElement: e, useRender: n, useVisualState: s, Component: i }) {
243
+ t && ar(t);
244
+ function o(a, l) {
245
+ let u;
246
+ const c = {
247
+ ...F(Ts),
248
+ ...a,
249
+ layoutId: fr(a)
250
+ }, { isStatic: h } = c, f = or(a), d = s(a, h);
251
+ if (!h && Re) {
252
+ dr(c, t);
253
+ const p = pr(c);
254
+ u = p.MeasureLayout, f.visualElement = er(i, d, c, e, p.ProjectionNode);
255
+ }
256
+ return fe.jsxs(Gt.Provider, { value: f, children: [u && f.visualElement ? fe.jsx(u, { visualElement: f.visualElement, ...c }) : null, n(i, a, ir(d, f.visualElement, l), d, h, f.visualElement)] });
257
+ }
258
+ const r = Hi(o);
259
+ return r[lr] = i, r;
260
+ }
261
+ function fr({ layoutId: t }) {
262
+ const e = F(Cs).id;
263
+ return e && t !== void 0 ? e + "-" + t : t;
264
+ }
265
+ function dr(t, e) {
266
+ const n = F(Ps).strict;
267
+ if (ur.NODE_ENV !== "production" && e && n) {
268
+ const s = "You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.";
269
+ t.ignoreStrict ? mt(!1, s) : Z(!1, s);
270
+ }
271
+ }
272
+ function pr(t) {
273
+ const { drag: e, layout: n } = ft;
274
+ if (!e && !n)
275
+ return {};
276
+ const s = { ...e, ...n };
277
+ return {
278
+ MeasureLayout: e != null && e.isEnabled(t) || n != null && n.isEnabled(t) ? s.MeasureLayout : void 0,
279
+ ProjectionNode: s.ProjectionNode
280
+ };
281
+ }
282
+ function mr(t) {
283
+ function e(s, i = {}) {
284
+ return hr(t(s, i));
285
+ }
286
+ if (typeof Proxy > "u")
287
+ return e;
288
+ const n = /* @__PURE__ */ new Map();
289
+ return new Proxy(e, {
290
+ /**
291
+ * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.
292
+ * The prop name is passed through as `key` and we can use that to generate a `motion`
293
+ * DOM component with that name.
294
+ */
295
+ get: (s, i) => (n.has(i) || n.set(i, e(i)), n.get(i))
296
+ });
297
+ }
298
+ const gr = [
299
+ "animate",
300
+ "circle",
301
+ "defs",
302
+ "desc",
303
+ "ellipse",
304
+ "g",
305
+ "image",
306
+ "line",
307
+ "filter",
308
+ "marker",
309
+ "mask",
310
+ "metadata",
311
+ "path",
312
+ "pattern",
313
+ "polygon",
314
+ "polyline",
315
+ "rect",
316
+ "stop",
317
+ "switch",
318
+ "symbol",
319
+ "svg",
320
+ "text",
321
+ "tspan",
322
+ "use",
323
+ "view"
324
+ ];
325
+ function ke(t) {
326
+ return (
327
+ /**
328
+ * If it's not a string, it's a custom React component. Currently we only support
329
+ * HTML custom React components.
330
+ */
331
+ typeof t != "string" || /**
332
+ * If it contains a dash, the element is a custom HTML webcomponent.
333
+ */
334
+ t.includes("-") ? !1 : (
335
+ /**
336
+ * If it's in our list of lowercase SVG tags, it's an SVG component
337
+ */
338
+ !!(gr.indexOf(t) > -1 || /**
339
+ * If it contains a capital letter, it's an SVG component
340
+ */
341
+ /[A-Z]/u.test(t))
342
+ )
343
+ );
344
+ }
345
+ const jt = {};
346
+ function yr(t) {
347
+ Object.assign(jt, t);
348
+ }
349
+ const Ct = [
350
+ "transformPerspective",
351
+ "x",
352
+ "y",
353
+ "z",
354
+ "translateX",
355
+ "translateY",
356
+ "translateZ",
357
+ "scale",
358
+ "scaleX",
359
+ "scaleY",
360
+ "rotate",
361
+ "rotateX",
362
+ "rotateY",
363
+ "rotateZ",
364
+ "skew",
365
+ "skewX",
366
+ "skewY"
367
+ ], ot = new Set(Ct);
368
+ function Ds(t, { layout: e, layoutId: n }) {
369
+ return ot.has(t) || t.startsWith("origin") || (e || n !== void 0) && (!!jt[t] || t === "opacity");
370
+ }
371
+ const E = (t) => !!(t && t.getVelocity), vr = {
372
+ x: "translateX",
373
+ y: "translateY",
374
+ z: "translateZ",
375
+ transformPerspective: "perspective"
376
+ }, xr = Ct.length;
377
+ function Tr(t, { enableHardwareAcceleration: e = !0, allowTransformNone: n = !0 }, s, i) {
378
+ let o = "";
379
+ for (let r = 0; r < xr; r++) {
380
+ const a = Ct[r];
381
+ if (t[a] !== void 0) {
382
+ const l = vr[a] || a;
383
+ o += `${l}(${t[a]}) `;
384
+ }
385
+ }
386
+ return e && !t.z && (o += "translateZ(0)"), o = o.trim(), i ? o = i(t, s ? "" : o) : n && s && (o = "none"), o;
387
+ }
388
+ const Ms = (t) => (e) => typeof e == "string" && e.startsWith(t), Rs = Ms("--"), Pr = Ms("var(--"), Oe = (t) => Pr(t) ? br.test(t.split("/*")[0].trim()) : !1, br = /var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu, Sr = (t, e) => e && typeof t == "number" ? e.transform(t) : t, Q = (t, e, n) => n > e ? e : n < t ? t : n, gt = {
389
+ test: (t) => typeof t == "number",
390
+ parse: parseFloat,
391
+ transform: (t) => t
392
+ }, xt = {
393
+ ...gt,
394
+ transform: (t) => Q(0, 1, t)
395
+ }, Lt = {
396
+ ...gt,
397
+ default: 1
398
+ }, Tt = (t) => Math.round(t * 1e5) / 1e5, je = /-?(?:\d+(?:\.\d+)?|\.\d+)/gu, Vr = /(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu, wr = /^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu;
399
+ function Dt(t) {
400
+ return typeof t == "string";
401
+ }
402
+ const Mt = (t) => ({
403
+ test: (e) => Dt(e) && e.endsWith(t) && e.split(" ").length === 1,
404
+ parse: parseFloat,
405
+ transform: (e) => `${e}${t}`
406
+ }), Y = Mt("deg"), N = Mt("%"), x = Mt("px"), Ar = Mt("vh"), Cr = Mt("vw"), hn = {
407
+ ...N,
408
+ parse: (t) => N.parse(t) / 100,
409
+ transform: (t) => N.transform(t * 100)
410
+ }, fn = {
411
+ ...gt,
412
+ transform: Math.round
413
+ }, Es = {
414
+ // Border props
415
+ borderWidth: x,
416
+ borderTopWidth: x,
417
+ borderRightWidth: x,
418
+ borderBottomWidth: x,
419
+ borderLeftWidth: x,
420
+ borderRadius: x,
421
+ radius: x,
422
+ borderTopLeftRadius: x,
423
+ borderTopRightRadius: x,
424
+ borderBottomRightRadius: x,
425
+ borderBottomLeftRadius: x,
426
+ // Positioning props
427
+ width: x,
428
+ maxWidth: x,
429
+ height: x,
430
+ maxHeight: x,
431
+ size: x,
432
+ top: x,
433
+ right: x,
434
+ bottom: x,
435
+ left: x,
436
+ // Spacing props
437
+ padding: x,
438
+ paddingTop: x,
439
+ paddingRight: x,
440
+ paddingBottom: x,
441
+ paddingLeft: x,
442
+ margin: x,
443
+ marginTop: x,
444
+ marginRight: x,
445
+ marginBottom: x,
446
+ marginLeft: x,
447
+ // Transform props
448
+ rotate: Y,
449
+ rotateX: Y,
450
+ rotateY: Y,
451
+ rotateZ: Y,
452
+ scale: Lt,
453
+ scaleX: Lt,
454
+ scaleY: Lt,
455
+ scaleZ: Lt,
456
+ skew: Y,
457
+ skewX: Y,
458
+ skewY: Y,
459
+ distance: x,
460
+ translateX: x,
461
+ translateY: x,
462
+ translateZ: x,
463
+ x,
464
+ y: x,
465
+ z: x,
466
+ perspective: x,
467
+ transformPerspective: x,
468
+ opacity: xt,
469
+ originX: hn,
470
+ originY: hn,
471
+ originZ: x,
472
+ // Misc
473
+ zIndex: fn,
474
+ backgroundPositionX: x,
475
+ backgroundPositionY: x,
476
+ // SVG
477
+ fillOpacity: xt,
478
+ strokeOpacity: xt,
479
+ numOctaves: fn
480
+ };
481
+ function Ie(t, e, n, s) {
482
+ const { style: i, vars: o, transform: r, transformOrigin: a } = t;
483
+ let l = !1, u = !1, c = !0;
484
+ for (const h in e) {
485
+ const f = e[h];
486
+ if (Rs(h)) {
487
+ o[h] = f;
488
+ continue;
489
+ }
490
+ const d = Es[h], p = Sr(f, d);
491
+ if (ot.has(h)) {
492
+ if (l = !0, r[h] = p, !c)
493
+ continue;
494
+ f !== (d.default || 0) && (c = !1);
495
+ } else h.startsWith("origin") ? (u = !0, a[h] = p) : i[h] = p;
496
+ }
497
+ if (e.transform || (l || s ? i.transform = Tr(t.transform, n, c, s) : i.transform && (i.transform = "none")), u) {
498
+ const { originX: h = "50%", originY: f = "50%", originZ: d = 0 } = a;
499
+ i.transformOrigin = `${h} ${f} ${d}`;
500
+ }
501
+ }
502
+ const Ne = () => ({
503
+ style: {},
504
+ transform: {},
505
+ transformOrigin: {},
506
+ vars: {}
507
+ });
508
+ function Ls(t, e, n) {
509
+ for (const s in e)
510
+ !E(e[s]) && !Ds(s, n) && (t[s] = e[s]);
511
+ }
512
+ function Dr({ transformTemplate: t }, e, n) {
513
+ return Wt(() => {
514
+ const s = Ne();
515
+ return Ie(s, e, { enableHardwareAcceleration: !n }, t), Object.assign({}, s.vars, s.style);
516
+ }, [e]);
517
+ }
518
+ function Mr(t, e, n) {
519
+ const s = t.style || {}, i = {};
520
+ return Ls(i, s, t), Object.assign(i, Dr(t, e, n)), i;
521
+ }
522
+ function Rr(t, e, n) {
523
+ const s = {}, i = Mr(t, e, n);
524
+ return t.drag && t.dragListener !== !1 && (s.draggable = !1, i.userSelect = i.WebkitUserSelect = i.WebkitTouchCallout = "none", i.touchAction = t.drag === !0 ? "none" : `pan-${t.drag === "x" ? "y" : "x"}`), t.tabIndex === void 0 && (t.onTap || t.onTapStart || t.whileTap) && (s.tabIndex = 0), s.style = i, s;
525
+ }
526
+ const Er = /* @__PURE__ */ new Set([
527
+ "animate",
528
+ "exit",
529
+ "variants",
530
+ "initial",
531
+ "style",
532
+ "values",
533
+ "variants",
534
+ "transition",
535
+ "transformTemplate",
536
+ "custom",
537
+ "inherit",
538
+ "onBeforeLayoutMeasure",
539
+ "onAnimationStart",
540
+ "onAnimationComplete",
541
+ "onUpdate",
542
+ "onDragStart",
543
+ "onDrag",
544
+ "onDragEnd",
545
+ "onMeasureDragConstraints",
546
+ "onDirectionLock",
547
+ "onDragTransitionEnd",
548
+ "_dragX",
549
+ "_dragY",
550
+ "onHoverStart",
551
+ "onHoverEnd",
552
+ "onViewportEnter",
553
+ "onViewportLeave",
554
+ "globalTapTarget",
555
+ "ignoreStrict",
556
+ "viewport"
557
+ ]);
558
+ function It(t) {
559
+ return t.startsWith("while") || t.startsWith("drag") && t !== "draggable" || t.startsWith("layout") || t.startsWith("onTap") || t.startsWith("onPan") || t.startsWith("onLayout") || Er.has(t);
560
+ }
561
+ let Fs = (t) => !It(t);
562
+ function Lr(t) {
563
+ t && (Fs = (e) => e.startsWith("on") ? !It(e) : t(e));
564
+ }
565
+ try {
566
+ Lr(require("@emotion/is-prop-valid").default);
567
+ } catch {
568
+ }
569
+ function Fr(t, e, n) {
570
+ const s = {};
571
+ for (const i in t)
572
+ i === "values" && typeof t.values == "object" || (Fs(i) || n === !0 && It(i) || !e && !It(i) || // If trying to use native HTML drag events, forward drag listeners
573
+ t.draggable && i.startsWith("onDrag")) && (s[i] = t[i]);
574
+ return s;
575
+ }
576
+ function dn(t, e, n) {
577
+ return typeof t == "string" ? t : x.transform(e + n * t);
578
+ }
579
+ function Br(t, e, n) {
580
+ const s = dn(e, t.x, t.width), i = dn(n, t.y, t.height);
581
+ return `${s} ${i}`;
582
+ }
583
+ const kr = {
584
+ offset: "stroke-dashoffset",
585
+ array: "stroke-dasharray"
586
+ }, Or = {
587
+ offset: "strokeDashoffset",
588
+ array: "strokeDasharray"
589
+ };
590
+ function jr(t, e, n = 1, s = 0, i = !0) {
591
+ t.pathLength = 1;
592
+ const o = i ? kr : Or;
593
+ t[o.offset] = x.transform(-s);
594
+ const r = x.transform(e), a = x.transform(n);
595
+ t[o.array] = `${r} ${a}`;
596
+ }
597
+ function Ue(t, {
598
+ attrX: e,
599
+ attrY: n,
600
+ attrScale: s,
601
+ originX: i,
602
+ originY: o,
603
+ pathLength: r,
604
+ pathSpacing: a = 1,
605
+ pathOffset: l = 0,
606
+ // This is object creation, which we try to avoid per-frame.
607
+ ...u
608
+ }, c, h, f) {
609
+ if (Ie(t, u, c, f), h) {
610
+ t.style.viewBox && (t.attrs.viewBox = t.style.viewBox);
611
+ return;
612
+ }
613
+ t.attrs = t.style, t.style = {};
614
+ const { attrs: d, style: p, dimensions: m } = t;
615
+ d.transform && (m && (p.transform = d.transform), delete d.transform), m && (i !== void 0 || o !== void 0 || p.transform) && (p.transformOrigin = Br(m, i !== void 0 ? i : 0.5, o !== void 0 ? o : 0.5)), e !== void 0 && (d.x = e), n !== void 0 && (d.y = n), s !== void 0 && (d.scale = s), r !== void 0 && jr(d, r, a, l, !1);
616
+ }
617
+ const Bs = () => ({
618
+ ...Ne(),
619
+ attrs: {}
620
+ }), _e = (t) => typeof t == "string" && t.toLowerCase() === "svg";
621
+ function Ir(t, e, n, s) {
622
+ const i = Wt(() => {
623
+ const o = Bs();
624
+ return Ue(o, e, { enableHardwareAcceleration: !1 }, _e(s), t.transformTemplate), {
625
+ ...o.attrs,
626
+ style: { ...o.style }
627
+ };
628
+ }, [e]);
629
+ if (t.style) {
630
+ const o = {};
631
+ Ls(o, t.style, t), i.style = { ...o, ...i.style };
632
+ }
633
+ return i;
634
+ }
635
+ function Nr(t = !1) {
636
+ return (n, s, i, { latestValues: o }, r) => {
637
+ const l = (ke(n) ? Ir : Rr)(s, o, r, n), u = Fr(s, typeof n == "string", t), c = n !== xs ? { ...u, ...l, ref: i } : {}, { children: h } = s, f = Wt(() => E(h) ? h.get() : h, [h]);
638
+ return zi(n, {
639
+ ...c,
640
+ children: f
641
+ });
642
+ };
643
+ }
644
+ function ks(t, { style: e, vars: n }, s, i) {
645
+ Object.assign(t.style, e, i && i.getProjectionStyles(s));
646
+ for (const o in n)
647
+ t.style.setProperty(o, n[o]);
648
+ }
649
+ const Os = /* @__PURE__ */ new Set([
650
+ "baseFrequency",
651
+ "diffuseConstant",
652
+ "kernelMatrix",
653
+ "kernelUnitLength",
654
+ "keySplines",
655
+ "keyTimes",
656
+ "limitingConeAngle",
657
+ "markerHeight",
658
+ "markerWidth",
659
+ "numOctaves",
660
+ "targetX",
661
+ "targetY",
662
+ "surfaceScale",
663
+ "specularConstant",
664
+ "specularExponent",
665
+ "stdDeviation",
666
+ "tableValues",
667
+ "viewBox",
668
+ "gradientTransform",
669
+ "pathLength",
670
+ "startOffset",
671
+ "textLength",
672
+ "lengthAdjust"
673
+ ]);
674
+ function js(t, e, n, s) {
675
+ ks(t, e, void 0, s);
676
+ for (const i in e.attrs)
677
+ t.setAttribute(Os.has(i) ? i : Ee(i), e.attrs[i]);
678
+ }
679
+ function Ke(t, e, n) {
680
+ var s;
681
+ const { style: i } = t, o = {};
682
+ for (const r in i)
683
+ (E(i[r]) || e.style && E(e.style[r]) || Ds(r, t) || ((s = n == null ? void 0 : n.getValue(r)) === null || s === void 0 ? void 0 : s.liveStyle) !== void 0) && (o[r] = i[r]);
684
+ return o;
685
+ }
686
+ function Is(t, e, n) {
687
+ const s = Ke(t, e, n);
688
+ for (const i in t)
689
+ if (E(t[i]) || E(e[i])) {
690
+ const o = Ct.indexOf(i) !== -1 ? "attr" + i.charAt(0).toUpperCase() + i.substring(1) : i;
691
+ s[o] = t[i];
692
+ }
693
+ return s;
694
+ }
695
+ function pn(t) {
696
+ const e = [{}, {}];
697
+ return t == null || t.values.forEach((n, s) => {
698
+ e[0][s] = n.get(), e[1][s] = n.getVelocity();
699
+ }), e;
700
+ }
701
+ function $e(t, e, n, s) {
702
+ if (typeof e == "function") {
703
+ const [i, o] = pn(s);
704
+ e = e(n !== void 0 ? n : t.custom, i, o);
705
+ }
706
+ if (typeof e == "string" && (e = t.variants && t.variants[e]), typeof e == "function") {
707
+ const [i, o] = pn(s);
708
+ e = e(n !== void 0 ? n : t.custom, i, o);
709
+ }
710
+ return e;
711
+ }
712
+ function Ur(t) {
713
+ const e = de(null);
714
+ return e.current === null && (e.current = t()), e.current;
715
+ }
716
+ const pe = (t) => Array.isArray(t), _r = (t) => !!(t && typeof t == "object" && t.mix && t.toValue), Kr = (t) => pe(t) ? t[t.length - 1] || 0 : t;
717
+ function Bt(t) {
718
+ const e = E(t) ? t.get() : t;
719
+ return _r(e) ? e.toValue() : e;
720
+ }
721
+ function $r({ scrapeMotionValuesFromProps: t, createRenderState: e, onMount: n }, s, i, o) {
722
+ const r = {
723
+ latestValues: Wr(s, i, o, t),
724
+ renderState: e()
725
+ };
726
+ return n && (r.mount = (a) => n(s, a, r)), r;
727
+ }
728
+ const Ns = (t) => (e, n) => {
729
+ const s = F(Gt), i = F(Me), o = () => $r(t, e, s, i);
730
+ return n ? o() : Ur(o);
731
+ };
732
+ function Wr(t, e, n, s) {
733
+ const i = {}, o = s(t, {});
734
+ for (const f in o)
735
+ i[f] = Bt(o[f]);
736
+ let { initial: r, animate: a } = t;
737
+ const l = zt(t), u = As(t);
738
+ e && u && !l && t.inherit !== !1 && (r === void 0 && (r = e.initial), a === void 0 && (a = e.animate));
739
+ let c = n ? n.initial === !1 : !1;
740
+ c = c || r === !1;
741
+ const h = c ? a : r;
742
+ return h && typeof h != "boolean" && !Ht(h) && (Array.isArray(h) ? h : [h]).forEach((d) => {
743
+ const p = $e(t, d);
744
+ if (!p)
745
+ return;
746
+ const { transitionEnd: m, transition: y, ...v } = p;
747
+ for (const T in v) {
748
+ let g = v[T];
749
+ if (Array.isArray(g)) {
750
+ const P = c ? g.length - 1 : 0;
751
+ g = g[P];
752
+ }
753
+ g !== null && (i[T] = g);
754
+ }
755
+ for (const T in m)
756
+ i[T] = m[T];
757
+ }), i;
758
+ }
759
+ const { schedule: V, cancel: H, state: C, steps: Jt } = Ss(typeof requestAnimationFrame < "u" ? requestAnimationFrame : D, !0), Gr = {
760
+ useVisualState: Ns({
761
+ scrapeMotionValuesFromProps: Is,
762
+ createRenderState: Bs,
763
+ onMount: (t, e, { renderState: n, latestValues: s }) => {
764
+ V.read(() => {
765
+ try {
766
+ n.dimensions = typeof e.getBBox == "function" ? e.getBBox() : e.getBoundingClientRect();
767
+ } catch {
768
+ n.dimensions = {
769
+ x: 0,
770
+ y: 0,
771
+ width: 0,
772
+ height: 0
773
+ };
774
+ }
775
+ }), V.render(() => {
776
+ Ue(n, s, { enableHardwareAcceleration: !1 }, _e(e.tagName), t.transformTemplate), js(e, n);
777
+ });
778
+ }
779
+ })
780
+ }, Hr = {
781
+ useVisualState: Ns({
782
+ scrapeMotionValuesFromProps: Ke,
783
+ createRenderState: Ne
784
+ })
785
+ };
786
+ function zr(t, { forwardMotionProps: e = !1 }, n, s) {
787
+ return {
788
+ ...ke(t) ? Gr : Hr,
789
+ preloadedFeatures: n,
790
+ useRender: Nr(e),
791
+ createVisualElement: s,
792
+ Component: t
793
+ };
794
+ }
795
+ function _(t, e, n, s = { passive: !0 }) {
796
+ return t.addEventListener(e, n, s), () => t.removeEventListener(e, n);
797
+ }
798
+ const Us = (t) => t.pointerType === "mouse" ? typeof t.button != "number" || t.button <= 0 : t.isPrimary !== !1;
799
+ function Yt(t, e = "page") {
800
+ return {
801
+ point: {
802
+ x: t[`${e}X`],
803
+ y: t[`${e}Y`]
804
+ }
805
+ };
806
+ }
807
+ const Yr = (t) => (e) => Us(e) && t(e, Yt(e));
808
+ function K(t, e, n, s) {
809
+ return _(t, e, Yr(n), s);
810
+ }
811
+ const Xr = (t, e) => (n) => e(t(n)), $ = (...t) => t.reduce(Xr);
812
+ function _s(t) {
813
+ let e = null;
814
+ return () => {
815
+ const n = () => {
816
+ e = null;
817
+ };
818
+ return e === null ? (e = t, n) : !1;
819
+ };
820
+ }
821
+ const mn = _s("dragHorizontal"), gn = _s("dragVertical");
822
+ function Ks(t) {
823
+ let e = !1;
824
+ if (t === "y")
825
+ e = gn();
826
+ else if (t === "x")
827
+ e = mn();
828
+ else {
829
+ const n = mn(), s = gn();
830
+ n && s ? e = () => {
831
+ n(), s();
832
+ } : (n && n(), s && s());
833
+ }
834
+ return e;
835
+ }
836
+ function $s() {
837
+ const t = Ks(!0);
838
+ return t ? (t(), !1) : !0;
839
+ }
840
+ class tt {
841
+ constructor(e) {
842
+ this.isMounted = !1, this.node = e;
843
+ }
844
+ update() {
845
+ }
846
+ }
847
+ function yn(t, e) {
848
+ const n = e ? "pointerenter" : "pointerleave", s = e ? "onHoverStart" : "onHoverEnd", i = (o, r) => {
849
+ if (o.pointerType === "touch" || $s())
850
+ return;
851
+ const a = t.getProps();
852
+ t.animationState && a.whileHover && t.animationState.setActive("whileHover", e);
853
+ const l = a[s];
854
+ l && V.postRender(() => l(o, r));
855
+ };
856
+ return K(t.current, n, i, {
857
+ passive: !t.getProps()[s]
858
+ });
859
+ }
860
+ class qr extends tt {
861
+ mount() {
862
+ this.unmount = $(yn(this.node, !0), yn(this.node, !1));
863
+ }
864
+ unmount() {
865
+ }
866
+ }
867
+ class Zr extends tt {
868
+ constructor() {
869
+ super(...arguments), this.isActive = !1;
870
+ }
871
+ onFocus() {
872
+ let e = !1;
873
+ try {
874
+ e = this.node.current.matches(":focus-visible");
875
+ } catch {
876
+ e = !0;
877
+ }
878
+ !e || !this.node.animationState || (this.node.animationState.setActive("whileFocus", !0), this.isActive = !0);
879
+ }
880
+ onBlur() {
881
+ !this.isActive || !this.node.animationState || (this.node.animationState.setActive("whileFocus", !1), this.isActive = !1);
882
+ }
883
+ mount() {
884
+ this.unmount = $(_(this.node.current, "focus", () => this.onFocus()), _(this.node.current, "blur", () => this.onBlur()));
885
+ }
886
+ unmount() {
887
+ }
888
+ }
889
+ const Ws = (t, e) => e ? t === e ? !0 : Ws(t, e.parentElement) : !1;
890
+ function te(t, e) {
891
+ if (!e)
892
+ return;
893
+ const n = new PointerEvent("pointer" + t);
894
+ e(n, Yt(n));
895
+ }
896
+ class Qr extends tt {
897
+ constructor() {
898
+ super(...arguments), this.removeStartListeners = D, this.removeEndListeners = D, this.removeAccessibleListeners = D, this.startPointerPress = (e, n) => {
899
+ if (this.isPressing)
900
+ return;
901
+ this.removeEndListeners();
902
+ const s = this.node.getProps(), o = K(window, "pointerup", (a, l) => {
903
+ if (!this.checkPressEnd())
904
+ return;
905
+ const { onTap: u, onTapCancel: c, globalTapTarget: h } = this.node.getProps(), f = !h && !Ws(this.node.current, a.target) ? c : u;
906
+ f && V.update(() => f(a, l));
907
+ }, {
908
+ passive: !(s.onTap || s.onPointerUp)
909
+ }), r = K(window, "pointercancel", (a, l) => this.cancelPress(a, l), {
910
+ passive: !(s.onTapCancel || s.onPointerCancel)
911
+ });
912
+ this.removeEndListeners = $(o, r), this.startPress(e, n);
913
+ }, this.startAccessiblePress = () => {
914
+ const e = (o) => {
915
+ if (o.key !== "Enter" || this.isPressing)
916
+ return;
917
+ const r = (a) => {
918
+ a.key !== "Enter" || !this.checkPressEnd() || te("up", (l, u) => {
919
+ const { onTap: c } = this.node.getProps();
920
+ c && V.postRender(() => c(l, u));
921
+ });
922
+ };
923
+ this.removeEndListeners(), this.removeEndListeners = _(this.node.current, "keyup", r), te("down", (a, l) => {
924
+ this.startPress(a, l);
925
+ });
926
+ }, n = _(this.node.current, "keydown", e), s = () => {
927
+ this.isPressing && te("cancel", (o, r) => this.cancelPress(o, r));
928
+ }, i = _(this.node.current, "blur", s);
929
+ this.removeAccessibleListeners = $(n, i);
930
+ };
931
+ }
932
+ startPress(e, n) {
933
+ this.isPressing = !0;
934
+ const { onTapStart: s, whileTap: i } = this.node.getProps();
935
+ i && this.node.animationState && this.node.animationState.setActive("whileTap", !0), s && V.postRender(() => s(e, n));
936
+ }
937
+ checkPressEnd() {
938
+ return this.removeEndListeners(), this.isPressing = !1, this.node.getProps().whileTap && this.node.animationState && this.node.animationState.setActive("whileTap", !1), !$s();
939
+ }
940
+ cancelPress(e, n) {
941
+ if (!this.checkPressEnd())
942
+ return;
943
+ const { onTapCancel: s } = this.node.getProps();
944
+ s && V.postRender(() => s(e, n));
945
+ }
946
+ mount() {
947
+ const e = this.node.getProps(), n = K(e.globalTapTarget ? window : this.node.current, "pointerdown", this.startPointerPress, {
948
+ passive: !(e.onTapStart || e.onPointerStart)
949
+ }), s = _(this.node.current, "focus", this.startAccessiblePress);
950
+ this.removeStartListeners = $(n, s);
951
+ }
952
+ unmount() {
953
+ this.removeStartListeners(), this.removeEndListeners(), this.removeAccessibleListeners();
954
+ }
955
+ }
956
+ const me = /* @__PURE__ */ new WeakMap(), ee = /* @__PURE__ */ new WeakMap(), Jr = (t) => {
957
+ const e = me.get(t.target);
958
+ e && e(t);
959
+ }, to = (t) => {
960
+ t.forEach(Jr);
961
+ };
962
+ function eo({ root: t, ...e }) {
963
+ const n = t || document;
964
+ ee.has(n) || ee.set(n, {});
965
+ const s = ee.get(n), i = JSON.stringify(e);
966
+ return s[i] || (s[i] = new IntersectionObserver(to, { root: t, ...e })), s[i];
967
+ }
968
+ function no(t, e, n) {
969
+ const s = eo(e);
970
+ return me.set(t, n), s.observe(t), () => {
971
+ me.delete(t), s.unobserve(t);
972
+ };
973
+ }
974
+ const so = {
975
+ some: 0,
976
+ all: 1
977
+ };
978
+ class io extends tt {
979
+ constructor() {
980
+ super(...arguments), this.hasEnteredView = !1, this.isInView = !1;
981
+ }
982
+ startObserver() {
983
+ this.unmount();
984
+ const { viewport: e = {} } = this.node.getProps(), { root: n, margin: s, amount: i = "some", once: o } = e, r = {
985
+ root: n ? n.current : void 0,
986
+ rootMargin: s,
987
+ threshold: typeof i == "number" ? i : so[i]
988
+ }, a = (l) => {
989
+ const { isIntersecting: u } = l;
990
+ if (this.isInView === u || (this.isInView = u, o && !u && this.hasEnteredView))
991
+ return;
992
+ u && (this.hasEnteredView = !0), this.node.animationState && this.node.animationState.setActive("whileInView", u);
993
+ const { onViewportEnter: c, onViewportLeave: h } = this.node.getProps(), f = u ? c : h;
994
+ f && f(l);
995
+ };
996
+ return no(this.node.current, r, a);
997
+ }
998
+ mount() {
999
+ this.startObserver();
1000
+ }
1001
+ update() {
1002
+ if (typeof IntersectionObserver > "u")
1003
+ return;
1004
+ const { props: e, prevProps: n } = this.node;
1005
+ ["amount", "margin", "root"].some(ro(e, n)) && this.startObserver();
1006
+ }
1007
+ unmount() {
1008
+ }
1009
+ }
1010
+ function ro({ viewport: t = {} }, { viewport: e = {} } = {}) {
1011
+ return (n) => t[n] !== e[n];
1012
+ }
1013
+ const oo = {
1014
+ inView: {
1015
+ Feature: io
1016
+ },
1017
+ tap: {
1018
+ Feature: Qr
1019
+ },
1020
+ focus: {
1021
+ Feature: Zr
1022
+ },
1023
+ hover: {
1024
+ Feature: qr
1025
+ }
1026
+ };
1027
+ function Gs(t, e) {
1028
+ if (!Array.isArray(e))
1029
+ return !1;
1030
+ const n = e.length;
1031
+ if (n !== t.length)
1032
+ return !1;
1033
+ for (let s = 0; s < n; s++)
1034
+ if (e[s] !== t[s])
1035
+ return !1;
1036
+ return !0;
1037
+ }
1038
+ function Xt(t, e, n) {
1039
+ const s = t.getProps();
1040
+ return $e(s, e, n !== void 0 ? n : s.custom, t);
1041
+ }
1042
+ const W = (t) => t * 1e3, G = (t) => t / 1e3, ao = {
1043
+ type: "spring",
1044
+ stiffness: 500,
1045
+ damping: 25,
1046
+ restSpeed: 10
1047
+ }, lo = (t) => ({
1048
+ type: "spring",
1049
+ stiffness: 550,
1050
+ damping: t === 0 ? 2 * Math.sqrt(550) : 30,
1051
+ restSpeed: 10
1052
+ }), co = {
1053
+ type: "keyframes",
1054
+ duration: 0.8
1055
+ }, uo = {
1056
+ type: "keyframes",
1057
+ ease: [0.25, 0.1, 0.35, 1],
1058
+ duration: 0.3
1059
+ }, ho = (t, { keyframes: e }) => e.length > 2 ? co : ot.has(t) ? t.startsWith("scale") ? lo(e[1]) : ao : uo;
1060
+ function fo({ when: t, delay: e, delayChildren: n, staggerChildren: s, staggerDirection: i, repeat: o, repeatType: r, repeatDelay: a, from: l, elapsed: u, ...c }) {
1061
+ return !!Object.keys(c).length;
1062
+ }
1063
+ function We(t, e) {
1064
+ return t[e] || t.default || t;
1065
+ }
1066
+ const po = (t) => t !== null;
1067
+ function qt(t, { repeat: e, repeatType: n = "loop" }, s) {
1068
+ const i = t.filter(po), o = e && n !== "loop" && e % 2 === 1 ? 0 : i.length - 1;
1069
+ return !o || s === void 0 ? i[o] : s;
1070
+ }
1071
+ let kt;
1072
+ function mo() {
1073
+ kt = void 0;
1074
+ }
1075
+ const q = {
1076
+ now: () => (kt === void 0 && q.set(C.isProcessing || Qi.useManualTiming ? C.timestamp : performance.now()), kt),
1077
+ set: (t) => {
1078
+ kt = t, queueMicrotask(mo);
1079
+ }
1080
+ }, Hs = (t) => /^0[^.\s]+$/u.test(t);
1081
+ function go(t) {
1082
+ return typeof t == "number" ? t === 0 : t !== null ? t === "none" || t === "0" || Hs(t) : !0;
1083
+ }
1084
+ const zs = (t) => /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t), yo = (
1085
+ // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words
1086
+ /^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u
1087
+ );
1088
+ function vo(t) {
1089
+ const e = yo.exec(t);
1090
+ if (!e)
1091
+ return [,];
1092
+ const [, n, s, i] = e;
1093
+ return [`--${n ?? s}`, i];
1094
+ }
1095
+ const xo = 4;
1096
+ function Ys(t, e, n = 1) {
1097
+ Z(n <= xo, `Max CSS variable fallback depth detected in property "${t}". This may indicate a circular fallback dependency.`);
1098
+ const [s, i] = vo(t);
1099
+ if (!s)
1100
+ return;
1101
+ const o = window.getComputedStyle(e).getPropertyValue(s);
1102
+ if (o) {
1103
+ const r = o.trim();
1104
+ return zs(r) ? parseFloat(r) : r;
1105
+ }
1106
+ return Oe(i) ? Ys(i, e, n + 1) : i;
1107
+ }
1108
+ const To = /* @__PURE__ */ new Set([
1109
+ "width",
1110
+ "height",
1111
+ "top",
1112
+ "left",
1113
+ "right",
1114
+ "bottom",
1115
+ "x",
1116
+ "y",
1117
+ "translateX",
1118
+ "translateY"
1119
+ ]), vn = (t) => t === gt || t === x, xn = (t, e) => parseFloat(t.split(", ")[e]), Tn = (t, e) => (n, { transform: s }) => {
1120
+ if (s === "none" || !s)
1121
+ return 0;
1122
+ const i = s.match(/^matrix3d\((.+)\)$/u);
1123
+ if (i)
1124
+ return xn(i[1], e);
1125
+ {
1126
+ const o = s.match(/^matrix\((.+)\)$/u);
1127
+ return o ? xn(o[1], t) : 0;
1128
+ }
1129
+ }, Po = /* @__PURE__ */ new Set(["x", "y", "z"]), bo = Ct.filter((t) => !Po.has(t));
1130
+ function So(t) {
1131
+ const e = [];
1132
+ return bo.forEach((n) => {
1133
+ const s = t.getValue(n);
1134
+ s !== void 0 && (e.push([n, s.get()]), s.set(n.startsWith("scale") ? 1 : 0));
1135
+ }), e;
1136
+ }
1137
+ const dt = {
1138
+ // Dimensions
1139
+ width: ({ x: t }, { paddingLeft: e = "0", paddingRight: n = "0" }) => t.max - t.min - parseFloat(e) - parseFloat(n),
1140
+ height: ({ y: t }, { paddingTop: e = "0", paddingBottom: n = "0" }) => t.max - t.min - parseFloat(e) - parseFloat(n),
1141
+ top: (t, { top: e }) => parseFloat(e),
1142
+ left: (t, { left: e }) => parseFloat(e),
1143
+ bottom: ({ y: t }, { top: e }) => parseFloat(e) + (t.max - t.min),
1144
+ right: ({ x: t }, { left: e }) => parseFloat(e) + (t.max - t.min),
1145
+ // Transform
1146
+ x: Tn(4, 13),
1147
+ y: Tn(5, 14)
1148
+ };
1149
+ dt.translateX = dt.x;
1150
+ dt.translateY = dt.y;
1151
+ const Xs = (t) => (e) => e.test(t), Vo = {
1152
+ test: (t) => t === "auto",
1153
+ parse: (t) => t
1154
+ }, qs = [gt, x, N, Y, Cr, Ar, Vo], Pn = (t) => qs.find(Xs(t)), rt = /* @__PURE__ */ new Set();
1155
+ let ge = !1, ye = !1;
1156
+ function Zs() {
1157
+ if (ye) {
1158
+ const t = Array.from(rt).filter((s) => s.needsMeasurement), e = new Set(t.map((s) => s.element)), n = /* @__PURE__ */ new Map();
1159
+ e.forEach((s) => {
1160
+ const i = So(s);
1161
+ i.length && (n.set(s, i), s.render());
1162
+ }), t.forEach((s) => s.measureInitialState()), e.forEach((s) => {
1163
+ s.render();
1164
+ const i = n.get(s);
1165
+ i && i.forEach(([o, r]) => {
1166
+ var a;
1167
+ (a = s.getValue(o)) === null || a === void 0 || a.set(r);
1168
+ });
1169
+ }), t.forEach((s) => s.measureEndState()), t.forEach((s) => {
1170
+ s.suspendedScrollY !== void 0 && window.scrollTo(0, s.suspendedScrollY);
1171
+ });
1172
+ }
1173
+ ye = !1, ge = !1, rt.forEach((t) => t.complete()), rt.clear();
1174
+ }
1175
+ function Qs() {
1176
+ rt.forEach((t) => {
1177
+ t.readKeyframes(), t.needsMeasurement && (ye = !0);
1178
+ });
1179
+ }
1180
+ function wo() {
1181
+ Qs(), Zs();
1182
+ }
1183
+ class Ge {
1184
+ constructor(e, n, s, i, o, r = !1) {
1185
+ this.isComplete = !1, this.isAsync = !1, this.needsMeasurement = !1, this.isScheduled = !1, this.unresolvedKeyframes = [...e], this.onComplete = n, this.name = s, this.motionValue = i, this.element = o, this.isAsync = r;
1186
+ }
1187
+ scheduleResolve() {
1188
+ this.isScheduled = !0, this.isAsync ? (rt.add(this), ge || (ge = !0, V.read(Qs), V.resolveKeyframes(Zs))) : (this.readKeyframes(), this.complete());
1189
+ }
1190
+ readKeyframes() {
1191
+ const { unresolvedKeyframes: e, name: n, element: s, motionValue: i } = this;
1192
+ for (let o = 0; o < e.length; o++)
1193
+ if (e[o] === null)
1194
+ if (o === 0) {
1195
+ const r = i == null ? void 0 : i.get(), a = e[e.length - 1];
1196
+ if (r !== void 0)
1197
+ e[0] = r;
1198
+ else if (s && n) {
1199
+ const l = s.readValue(n, a);
1200
+ l != null && (e[0] = l);
1201
+ }
1202
+ e[0] === void 0 && (e[0] = a), i && r === void 0 && i.set(e[0]);
1203
+ } else
1204
+ e[o] = e[o - 1];
1205
+ }
1206
+ setFinalKeyframe() {
1207
+ }
1208
+ measureInitialState() {
1209
+ }
1210
+ renderEndStyles() {
1211
+ }
1212
+ measureEndState() {
1213
+ }
1214
+ complete() {
1215
+ this.isComplete = !0, this.onComplete(this.unresolvedKeyframes, this.finalKeyframe), rt.delete(this);
1216
+ }
1217
+ cancel() {
1218
+ this.isComplete || (this.isScheduled = !1, rt.delete(this));
1219
+ }
1220
+ resume() {
1221
+ this.isComplete || this.scheduleResolve();
1222
+ }
1223
+ }
1224
+ const He = (t, e) => (n) => !!(Dt(n) && wr.test(n) && n.startsWith(t) || e && Object.prototype.hasOwnProperty.call(n, e)), Js = (t, e, n) => (s) => {
1225
+ if (!Dt(s))
1226
+ return s;
1227
+ const [i, o, r, a] = s.match(je);
1228
+ return {
1229
+ [t]: parseFloat(i),
1230
+ [e]: parseFloat(o),
1231
+ [n]: parseFloat(r),
1232
+ alpha: a !== void 0 ? parseFloat(a) : 1
1233
+ };
1234
+ }, Ao = (t) => Q(0, 255, t), ne = {
1235
+ ...gt,
1236
+ transform: (t) => Math.round(Ao(t))
1237
+ }, it = {
1238
+ test: He("rgb", "red"),
1239
+ parse: Js("red", "green", "blue"),
1240
+ transform: ({ red: t, green: e, blue: n, alpha: s = 1 }) => "rgba(" + ne.transform(t) + ", " + ne.transform(e) + ", " + ne.transform(n) + ", " + Tt(xt.transform(s)) + ")"
1241
+ };
1242
+ function Co(t) {
1243
+ let e = "", n = "", s = "", i = "";
1244
+ return t.length > 5 ? (e = t.substring(1, 3), n = t.substring(3, 5), s = t.substring(5, 7), i = t.substring(7, 9)) : (e = t.substring(1, 2), n = t.substring(2, 3), s = t.substring(3, 4), i = t.substring(4, 5), e += e, n += n, s += s, i += i), {
1245
+ red: parseInt(e, 16),
1246
+ green: parseInt(n, 16),
1247
+ blue: parseInt(s, 16),
1248
+ alpha: i ? parseInt(i, 16) / 255 : 1
1249
+ };
1250
+ }
1251
+ const ve = {
1252
+ test: He("#"),
1253
+ parse: Co,
1254
+ transform: it.transform
1255
+ }, ct = {
1256
+ test: He("hsl", "hue"),
1257
+ parse: Js("hue", "saturation", "lightness"),
1258
+ transform: ({ hue: t, saturation: e, lightness: n, alpha: s = 1 }) => "hsla(" + Math.round(t) + ", " + N.transform(Tt(e)) + ", " + N.transform(Tt(n)) + ", " + Tt(xt.transform(s)) + ")"
1259
+ }, R = {
1260
+ test: (t) => it.test(t) || ve.test(t) || ct.test(t),
1261
+ parse: (t) => it.test(t) ? it.parse(t) : ct.test(t) ? ct.parse(t) : ve.parse(t),
1262
+ transform: (t) => Dt(t) ? t : t.hasOwnProperty("red") ? it.transform(t) : ct.transform(t)
1263
+ };
1264
+ function Do(t) {
1265
+ var e, n;
1266
+ return isNaN(t) && Dt(t) && (((e = t.match(je)) === null || e === void 0 ? void 0 : e.length) || 0) + (((n = t.match(Vr)) === null || n === void 0 ? void 0 : n.length) || 0) > 0;
1267
+ }
1268
+ const ti = "number", ei = "color", Mo = "var", Ro = "var(", bn = "${}", Eo = /var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;
1269
+ function Vt(t) {
1270
+ const e = t.toString(), n = [], s = {
1271
+ color: [],
1272
+ number: [],
1273
+ var: []
1274
+ }, i = [];
1275
+ let o = 0;
1276
+ const a = e.replace(Eo, (l) => (R.test(l) ? (s.color.push(o), i.push(ei), n.push(R.parse(l))) : l.startsWith(Ro) ? (s.var.push(o), i.push(Mo), n.push(l)) : (s.number.push(o), i.push(ti), n.push(parseFloat(l))), ++o, bn)).split(bn);
1277
+ return { values: n, split: a, indexes: s, types: i };
1278
+ }
1279
+ function ni(t) {
1280
+ return Vt(t).values;
1281
+ }
1282
+ function si(t) {
1283
+ const { split: e, types: n } = Vt(t), s = e.length;
1284
+ return (i) => {
1285
+ let o = "";
1286
+ for (let r = 0; r < s; r++)
1287
+ if (o += e[r], i[r] !== void 0) {
1288
+ const a = n[r];
1289
+ a === ti ? o += Tt(i[r]) : a === ei ? o += R.transform(i[r]) : o += i[r];
1290
+ }
1291
+ return o;
1292
+ };
1293
+ }
1294
+ const Lo = (t) => typeof t == "number" ? 0 : t;
1295
+ function Fo(t) {
1296
+ const e = ni(t);
1297
+ return si(t)(e.map(Lo));
1298
+ }
1299
+ const J = {
1300
+ test: Do,
1301
+ parse: ni,
1302
+ createTransformer: si,
1303
+ getAnimatableNone: Fo
1304
+ }, Bo = /* @__PURE__ */ new Set(["brightness", "contrast", "saturate", "opacity"]);
1305
+ function ko(t) {
1306
+ const [e, n] = t.slice(0, -1).split("(");
1307
+ if (e === "drop-shadow")
1308
+ return t;
1309
+ const [s] = n.match(je) || [];
1310
+ if (!s)
1311
+ return t;
1312
+ const i = n.replace(s, "");
1313
+ let o = Bo.has(e) ? 1 : 0;
1314
+ return s !== n && (o *= 100), e + "(" + o + i + ")";
1315
+ }
1316
+ const Oo = /\b([a-z-]*)\(.*?\)/gu, xe = {
1317
+ ...J,
1318
+ getAnimatableNone: (t) => {
1319
+ const e = t.match(Oo);
1320
+ return e ? e.map(ko).join(" ") : t;
1321
+ }
1322
+ }, jo = {
1323
+ ...Es,
1324
+ // Color props
1325
+ color: R,
1326
+ backgroundColor: R,
1327
+ outlineColor: R,
1328
+ fill: R,
1329
+ stroke: R,
1330
+ // Border props
1331
+ borderColor: R,
1332
+ borderTopColor: R,
1333
+ borderRightColor: R,
1334
+ borderBottomColor: R,
1335
+ borderLeftColor: R,
1336
+ filter: xe,
1337
+ WebkitFilter: xe
1338
+ }, ze = (t) => jo[t];
1339
+ function ii(t, e) {
1340
+ let n = ze(t);
1341
+ return n !== xe && (n = J), n.getAnimatableNone ? n.getAnimatableNone(e) : void 0;
1342
+ }
1343
+ const Io = /* @__PURE__ */ new Set(["auto", "none", "0"]);
1344
+ function No(t, e, n) {
1345
+ let s = 0, i;
1346
+ for (; s < t.length && !i; ) {
1347
+ const o = t[s];
1348
+ typeof o == "string" && !Io.has(o) && Vt(o).values.length && (i = t[s]), s++;
1349
+ }
1350
+ if (i && n)
1351
+ for (const o of e)
1352
+ t[o] = ii(n, i);
1353
+ }
1354
+ class ri extends Ge {
1355
+ constructor(e, n, s, i) {
1356
+ super(e, n, s, i, i == null ? void 0 : i.owner, !0);
1357
+ }
1358
+ readKeyframes() {
1359
+ const { unresolvedKeyframes: e, element: n, name: s } = this;
1360
+ if (!n.current)
1361
+ return;
1362
+ super.readKeyframes();
1363
+ for (let l = 0; l < e.length; l++) {
1364
+ let u = e[l];
1365
+ if (typeof u == "string" && (u = u.trim(), Oe(u))) {
1366
+ const c = Ys(u, n.current);
1367
+ c !== void 0 && (e[l] = c), l === e.length - 1 && (this.finalKeyframe = u);
1368
+ }
1369
+ }
1370
+ if (this.resolveNoneKeyframes(), !To.has(s) || e.length !== 2)
1371
+ return;
1372
+ const [i, o] = e, r = Pn(i), a = Pn(o);
1373
+ if (r !== a)
1374
+ if (vn(r) && vn(a))
1375
+ for (let l = 0; l < e.length; l++) {
1376
+ const u = e[l];
1377
+ typeof u == "string" && (e[l] = parseFloat(u));
1378
+ }
1379
+ else
1380
+ this.needsMeasurement = !0;
1381
+ }
1382
+ resolveNoneKeyframes() {
1383
+ const { unresolvedKeyframes: e, name: n } = this, s = [];
1384
+ for (let i = 0; i < e.length; i++)
1385
+ go(e[i]) && s.push(i);
1386
+ s.length && No(e, s, n);
1387
+ }
1388
+ measureInitialState() {
1389
+ const { element: e, unresolvedKeyframes: n, name: s } = this;
1390
+ if (!e.current)
1391
+ return;
1392
+ s === "height" && (this.suspendedScrollY = window.pageYOffset), this.measuredOrigin = dt[s](e.measureViewportBox(), window.getComputedStyle(e.current)), n[0] = this.measuredOrigin;
1393
+ const i = n[n.length - 1];
1394
+ i !== void 0 && e.getValue(s, i).jump(i, !1);
1395
+ }
1396
+ measureEndState() {
1397
+ var e;
1398
+ const { element: n, name: s, unresolvedKeyframes: i } = this;
1399
+ if (!n.current)
1400
+ return;
1401
+ const o = n.getValue(s);
1402
+ o && o.jump(this.measuredOrigin, !1);
1403
+ const r = i.length - 1, a = i[r];
1404
+ i[r] = dt[s](n.measureViewportBox(), window.getComputedStyle(n.current)), a !== null && this.finalKeyframe === void 0 && (this.finalKeyframe = a), !((e = this.removedTransforms) === null || e === void 0) && e.length && this.removedTransforms.forEach(([l, u]) => {
1405
+ n.getValue(l).set(u);
1406
+ }), this.resolveNoneKeyframes();
1407
+ }
1408
+ }
1409
+ function oi(t) {
1410
+ let e;
1411
+ return () => (e === void 0 && (e = t()), e);
1412
+ }
1413
+ const Sn = (t, e) => e === "zIndex" ? !1 : !!(typeof t == "number" || Array.isArray(t) || typeof t == "string" && // It's animatable if we have a string
1414
+ (J.test(t) || t === "0") && // And it contains numbers and/or colors
1415
+ !t.startsWith("url("));
1416
+ function Uo(t) {
1417
+ const e = t[0];
1418
+ if (t.length === 1)
1419
+ return !0;
1420
+ for (let n = 0; n < t.length; n++)
1421
+ if (t[n] !== e)
1422
+ return !0;
1423
+ }
1424
+ function _o(t, e, n, s) {
1425
+ const i = t[0];
1426
+ if (i === null)
1427
+ return !1;
1428
+ if (e === "display" || e === "visibility")
1429
+ return !0;
1430
+ const o = t[t.length - 1], r = Sn(i, e), a = Sn(o, e);
1431
+ return mt(r === a, `You are trying to animate ${e} from "${i}" to "${o}". ${i} is not an animatable value - to enable this animation set ${i} to a value animatable to ${o} via the \`style\` property.`), !r || !a ? !1 : Uo(t) || n === "spring" && s;
1432
+ }
1433
+ class ai {
1434
+ constructor({ autoplay: e = !0, delay: n = 0, type: s = "keyframes", repeat: i = 0, repeatDelay: o = 0, repeatType: r = "loop", ...a }) {
1435
+ this.isStopped = !1, this.hasAttemptedResolve = !1, this.options = {
1436
+ autoplay: e,
1437
+ delay: n,
1438
+ type: s,
1439
+ repeat: i,
1440
+ repeatDelay: o,
1441
+ repeatType: r,
1442
+ ...a
1443
+ }, this.updateFinishedPromise();
1444
+ }
1445
+ /**
1446
+ * A getter for resolved data. If keyframes are not yet resolved, accessing
1447
+ * this.resolved will synchronously flush all pending keyframe resolvers.
1448
+ * This is a deoptimisation, but at its worst still batches read/writes.
1449
+ */
1450
+ get resolved() {
1451
+ return !this._resolved && !this.hasAttemptedResolve && wo(), this._resolved;
1452
+ }
1453
+ /**
1454
+ * A method to be called when the keyframes resolver completes. This method
1455
+ * will check if its possible to run the animation and, if not, skip it.
1456
+ * Otherwise, it will call initPlayback on the implementing class.
1457
+ */
1458
+ onKeyframesResolved(e, n) {
1459
+ this.hasAttemptedResolve = !0;
1460
+ const { name: s, type: i, velocity: o, delay: r, onComplete: a, onUpdate: l, isGenerator: u } = this.options;
1461
+ if (!u && !_o(e, s, i, o))
1462
+ if (r)
1463
+ this.options.duration = 0;
1464
+ else {
1465
+ l == null || l(qt(e, this.options, n)), a == null || a(), this.resolveFinishedPromise();
1466
+ return;
1467
+ }
1468
+ const c = this.initPlayback(e, n);
1469
+ c !== !1 && (this._resolved = {
1470
+ keyframes: e,
1471
+ finalKeyframe: n,
1472
+ ...c
1473
+ }, this.onPostResolved());
1474
+ }
1475
+ onPostResolved() {
1476
+ }
1477
+ /**
1478
+ * Allows the returned animation to be awaited or promise-chained. Currently
1479
+ * resolves when the animation finishes at all but in a future update could/should
1480
+ * reject if its cancels.
1481
+ */
1482
+ then(e, n) {
1483
+ return this.currentFinishedPromise.then(e, n);
1484
+ }
1485
+ updateFinishedPromise() {
1486
+ this.currentFinishedPromise = new Promise((e) => {
1487
+ this.resolveFinishedPromise = e;
1488
+ });
1489
+ }
1490
+ }
1491
+ function li(t, e) {
1492
+ return e ? t * (1e3 / e) : 0;
1493
+ }
1494
+ const Ko = 5;
1495
+ function ci(t, e, n) {
1496
+ const s = Math.max(e - Ko, 0);
1497
+ return li(n - t(s), e - s);
1498
+ }
1499
+ const se = 1e-3, $o = 0.01, Vn = 10, Wo = 0.05, Go = 1;
1500
+ function Ho({ duration: t = 800, bounce: e = 0.25, velocity: n = 0, mass: s = 1 }) {
1501
+ let i, o;
1502
+ mt(t <= W(Vn), "Spring duration must be 10 seconds or less");
1503
+ let r = 1 - e;
1504
+ r = Q(Wo, Go, r), t = Q($o, Vn, G(t)), r < 1 ? (i = (u) => {
1505
+ const c = u * r, h = c * t, f = c - n, d = Te(u, r), p = Math.exp(-h);
1506
+ return se - f / d * p;
1507
+ }, o = (u) => {
1508
+ const h = u * r * t, f = h * n + n, d = Math.pow(r, 2) * Math.pow(u, 2) * t, p = Math.exp(-h), m = Te(Math.pow(u, 2), r);
1509
+ return (-i(u) + se > 0 ? -1 : 1) * ((f - d) * p) / m;
1510
+ }) : (i = (u) => {
1511
+ const c = Math.exp(-u * t), h = (u - n) * t + 1;
1512
+ return -se + c * h;
1513
+ }, o = (u) => {
1514
+ const c = Math.exp(-u * t), h = (n - u) * (t * t);
1515
+ return c * h;
1516
+ });
1517
+ const a = 5 / t, l = Yo(i, o, a);
1518
+ if (t = W(t), isNaN(l))
1519
+ return {
1520
+ stiffness: 100,
1521
+ damping: 10,
1522
+ duration: t
1523
+ };
1524
+ {
1525
+ const u = Math.pow(l, 2) * s;
1526
+ return {
1527
+ stiffness: u,
1528
+ damping: r * 2 * Math.sqrt(s * u),
1529
+ duration: t
1530
+ };
1531
+ }
1532
+ }
1533
+ const zo = 12;
1534
+ function Yo(t, e, n) {
1535
+ let s = n;
1536
+ for (let i = 1; i < zo; i++)
1537
+ s = s - t(s) / e(s);
1538
+ return s;
1539
+ }
1540
+ function Te(t, e) {
1541
+ return t * Math.sqrt(1 - e * e);
1542
+ }
1543
+ const Xo = ["duration", "bounce"], qo = ["stiffness", "damping", "mass"];
1544
+ function wn(t, e) {
1545
+ return e.some((n) => t[n] !== void 0);
1546
+ }
1547
+ function Zo(t) {
1548
+ let e = {
1549
+ velocity: 0,
1550
+ stiffness: 100,
1551
+ damping: 10,
1552
+ mass: 1,
1553
+ isResolvedFromDuration: !1,
1554
+ ...t
1555
+ };
1556
+ if (!wn(t, qo) && wn(t, Xo)) {
1557
+ const n = Ho(t);
1558
+ e = {
1559
+ ...e,
1560
+ ...n,
1561
+ mass: 1
1562
+ }, e.isResolvedFromDuration = !0;
1563
+ }
1564
+ return e;
1565
+ }
1566
+ function ui({ keyframes: t, restDelta: e, restSpeed: n, ...s }) {
1567
+ const i = t[0], o = t[t.length - 1], r = { done: !1, value: i }, { stiffness: a, damping: l, mass: u, duration: c, velocity: h, isResolvedFromDuration: f } = Zo({
1568
+ ...s,
1569
+ velocity: -G(s.velocity || 0)
1570
+ }), d = h || 0, p = l / (2 * Math.sqrt(a * u)), m = o - i, y = G(Math.sqrt(a / u)), v = Math.abs(m) < 5;
1571
+ n || (n = v ? 0.01 : 2), e || (e = v ? 5e-3 : 0.5);
1572
+ let T;
1573
+ if (p < 1) {
1574
+ const g = Te(y, p);
1575
+ T = (P) => {
1576
+ const S = Math.exp(-p * y * P);
1577
+ return o - S * ((d + p * y * m) / g * Math.sin(g * P) + m * Math.cos(g * P));
1578
+ };
1579
+ } else if (p === 1)
1580
+ T = (g) => o - Math.exp(-y * g) * (m + (d + y * m) * g);
1581
+ else {
1582
+ const g = y * Math.sqrt(p * p - 1);
1583
+ T = (P) => {
1584
+ const S = Math.exp(-p * y * P), M = Math.min(g * P, 300);
1585
+ return o - S * ((d + p * y * m) * Math.sinh(M) + g * m * Math.cosh(M)) / g;
1586
+ };
1587
+ }
1588
+ return {
1589
+ calculatedDuration: f && c || null,
1590
+ next: (g) => {
1591
+ const P = T(g);
1592
+ if (f)
1593
+ r.done = g >= c;
1594
+ else {
1595
+ let S = d;
1596
+ g !== 0 && (p < 1 ? S = ci(T, g, P) : S = 0);
1597
+ const M = Math.abs(S) <= n, z = Math.abs(o - P) <= e;
1598
+ r.done = M && z;
1599
+ }
1600
+ return r.value = r.done ? o : P, r;
1601
+ }
1602
+ };
1603
+ }
1604
+ function An({ keyframes: t, velocity: e = 0, power: n = 0.8, timeConstant: s = 325, bounceDamping: i = 10, bounceStiffness: o = 500, modifyTarget: r, min: a, max: l, restDelta: u = 0.5, restSpeed: c }) {
1605
+ const h = t[0], f = {
1606
+ done: !1,
1607
+ value: h
1608
+ }, d = (b) => a !== void 0 && b < a || l !== void 0 && b > l, p = (b) => a === void 0 ? l : l === void 0 || Math.abs(a - b) < Math.abs(l - b) ? a : l;
1609
+ let m = n * e;
1610
+ const y = h + m, v = r === void 0 ? y : r(y);
1611
+ v !== y && (m = v - h);
1612
+ const T = (b) => -m * Math.exp(-b / s), g = (b) => v + T(b), P = (b) => {
1613
+ const k = T(b), O = g(b);
1614
+ f.done = Math.abs(k) <= u, f.value = f.done ? v : O;
1615
+ };
1616
+ let S, M;
1617
+ const z = (b) => {
1618
+ d(f.value) && (S = b, M = ui({
1619
+ keyframes: [f.value, p(f.value)],
1620
+ velocity: ci(g, b, f.value),
1621
+ // TODO: This should be passing * 1000
1622
+ damping: i,
1623
+ stiffness: o,
1624
+ restDelta: u,
1625
+ restSpeed: c
1626
+ }));
1627
+ };
1628
+ return z(0), {
1629
+ calculatedDuration: null,
1630
+ next: (b) => {
1631
+ let k = !1;
1632
+ return !M && S === void 0 && (k = !0, P(b), z(b)), S !== void 0 && b >= S ? M.next(b - S) : (!k && P(b), f);
1633
+ }
1634
+ };
1635
+ }
1636
+ const hi = (t, e, n) => (((1 - 3 * n + 3 * e) * t + (3 * n - 6 * e)) * t + 3 * e) * t, Qo = 1e-7, Jo = 12;
1637
+ function ta(t, e, n, s, i) {
1638
+ let o, r, a = 0;
1639
+ do
1640
+ r = e + (n - e) / 2, o = hi(r, s, i) - t, o > 0 ? n = r : e = r;
1641
+ while (Math.abs(o) > Qo && ++a < Jo);
1642
+ return r;
1643
+ }
1644
+ function Rt(t, e, n, s) {
1645
+ if (t === e && n === s)
1646
+ return D;
1647
+ const i = (o) => ta(o, 0, 1, t, n);
1648
+ return (o) => o === 0 || o === 1 ? o : hi(i(o), e, s);
1649
+ }
1650
+ const ea = Rt(0.42, 0, 1, 1), na = Rt(0, 0, 0.58, 1), fi = Rt(0.42, 0, 0.58, 1), sa = (t) => Array.isArray(t) && typeof t[0] != "number", di = (t) => (e) => e <= 0.5 ? t(2 * e) / 2 : (2 - t(2 * (1 - e))) / 2, pi = (t) => (e) => 1 - t(1 - e), Ye = (t) => 1 - Math.sin(Math.acos(t)), mi = pi(Ye), ia = di(Ye), gi = Rt(0.33, 1.53, 0.69, 0.99), Xe = pi(gi), ra = di(Xe), oa = (t) => (t *= 2) < 1 ? 0.5 * Xe(t) : 0.5 * (2 - Math.pow(2, -10 * (t - 1))), Cn = {
1651
+ linear: D,
1652
+ easeIn: ea,
1653
+ easeInOut: fi,
1654
+ easeOut: na,
1655
+ circIn: Ye,
1656
+ circInOut: ia,
1657
+ circOut: mi,
1658
+ backIn: Xe,
1659
+ backInOut: ra,
1660
+ backOut: gi,
1661
+ anticipate: oa
1662
+ }, Dn = (t) => {
1663
+ if (Array.isArray(t)) {
1664
+ Z(t.length === 4, "Cubic bezier arrays must contain four numerical values.");
1665
+ const [e, n, s, i] = t;
1666
+ return Rt(e, n, s, i);
1667
+ } else if (typeof t == "string")
1668
+ return Z(Cn[t] !== void 0, `Invalid easing type '${t}'`), Cn[t];
1669
+ return t;
1670
+ }, wt = (t, e, n) => {
1671
+ const s = e - t;
1672
+ return s === 0 ? 1 : (n - t) / s;
1673
+ }, w = (t, e, n) => t + (e - t) * n;
1674
+ function ie(t, e, n) {
1675
+ return n < 0 && (n += 1), n > 1 && (n -= 1), n < 1 / 6 ? t + (e - t) * 6 * n : n < 1 / 2 ? e : n < 2 / 3 ? t + (e - t) * (2 / 3 - n) * 6 : t;
1676
+ }
1677
+ function aa({ hue: t, saturation: e, lightness: n, alpha: s }) {
1678
+ t /= 360, e /= 100, n /= 100;
1679
+ let i = 0, o = 0, r = 0;
1680
+ if (!e)
1681
+ i = o = r = n;
1682
+ else {
1683
+ const a = n < 0.5 ? n * (1 + e) : n + e - n * e, l = 2 * n - a;
1684
+ i = ie(l, a, t + 1 / 3), o = ie(l, a, t), r = ie(l, a, t - 1 / 3);
1685
+ }
1686
+ return {
1687
+ red: Math.round(i * 255),
1688
+ green: Math.round(o * 255),
1689
+ blue: Math.round(r * 255),
1690
+ alpha: s
1691
+ };
1692
+ }
1693
+ function Nt(t, e) {
1694
+ return (n) => n > 0 ? e : t;
1695
+ }
1696
+ const re = (t, e, n) => {
1697
+ const s = t * t, i = n * (e * e - s) + s;
1698
+ return i < 0 ? 0 : Math.sqrt(i);
1699
+ }, la = [ve, it, ct], ca = (t) => la.find((e) => e.test(t));
1700
+ function Mn(t) {
1701
+ const e = ca(t);
1702
+ if (mt(!!e, `'${t}' is not an animatable color. Use the equivalent color code instead.`), !e)
1703
+ return !1;
1704
+ let n = e.parse(t);
1705
+ return e === ct && (n = aa(n)), n;
1706
+ }
1707
+ const Rn = (t, e) => {
1708
+ const n = Mn(t), s = Mn(e);
1709
+ if (!n || !s)
1710
+ return Nt(t, e);
1711
+ const i = { ...n };
1712
+ return (o) => (i.red = re(n.red, s.red, o), i.green = re(n.green, s.green, o), i.blue = re(n.blue, s.blue, o), i.alpha = w(n.alpha, s.alpha, o), it.transform(i));
1713
+ }, Pe = /* @__PURE__ */ new Set(["none", "hidden"]);
1714
+ function ua(t, e) {
1715
+ return Pe.has(t) ? (n) => n <= 0 ? t : e : (n) => n >= 1 ? e : t;
1716
+ }
1717
+ function ha(t, e) {
1718
+ return (n) => w(t, e, n);
1719
+ }
1720
+ function qe(t) {
1721
+ return typeof t == "number" ? ha : typeof t == "string" ? Oe(t) ? Nt : R.test(t) ? Rn : pa : Array.isArray(t) ? yi : typeof t == "object" ? R.test(t) ? Rn : fa : Nt;
1722
+ }
1723
+ function yi(t, e) {
1724
+ const n = [...t], s = n.length, i = t.map((o, r) => qe(o)(o, e[r]));
1725
+ return (o) => {
1726
+ for (let r = 0; r < s; r++)
1727
+ n[r] = i[r](o);
1728
+ return n;
1729
+ };
1730
+ }
1731
+ function fa(t, e) {
1732
+ const n = { ...t, ...e }, s = {};
1733
+ for (const i in n)
1734
+ t[i] !== void 0 && e[i] !== void 0 && (s[i] = qe(t[i])(t[i], e[i]));
1735
+ return (i) => {
1736
+ for (const o in s)
1737
+ n[o] = s[o](i);
1738
+ return n;
1739
+ };
1740
+ }
1741
+ function da(t, e) {
1742
+ var n;
1743
+ const s = [], i = { color: 0, var: 0, number: 0 };
1744
+ for (let o = 0; o < e.values.length; o++) {
1745
+ const r = e.types[o], a = t.indexes[r][i[r]], l = (n = t.values[a]) !== null && n !== void 0 ? n : 0;
1746
+ s[o] = l, i[r]++;
1747
+ }
1748
+ return s;
1749
+ }
1750
+ const pa = (t, e) => {
1751
+ const n = J.createTransformer(e), s = Vt(t), i = Vt(e);
1752
+ return s.indexes.var.length === i.indexes.var.length && s.indexes.color.length === i.indexes.color.length && s.indexes.number.length >= i.indexes.number.length ? Pe.has(t) && !i.values.length || Pe.has(e) && !s.values.length ? ua(t, e) : $(yi(da(s, i), i.values), n) : (mt(!0, `Complex values '${t}' and '${e}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`), Nt(t, e));
1753
+ };
1754
+ function vi(t, e, n) {
1755
+ return typeof t == "number" && typeof e == "number" && typeof n == "number" ? w(t, e, n) : qe(t)(t, e);
1756
+ }
1757
+ function ma(t, e, n) {
1758
+ const s = [], i = n || vi, o = t.length - 1;
1759
+ for (let r = 0; r < o; r++) {
1760
+ let a = i(t[r], t[r + 1]);
1761
+ if (e) {
1762
+ const l = Array.isArray(e) ? e[r] || D : e;
1763
+ a = $(l, a);
1764
+ }
1765
+ s.push(a);
1766
+ }
1767
+ return s;
1768
+ }
1769
+ function ga(t, e, { clamp: n = !0, ease: s, mixer: i } = {}) {
1770
+ const o = t.length;
1771
+ if (Z(o === e.length, "Both input and output ranges must be the same length"), o === 1)
1772
+ return () => e[0];
1773
+ if (o === 2 && t[0] === t[1])
1774
+ return () => e[1];
1775
+ t[0] > t[o - 1] && (t = [...t].reverse(), e = [...e].reverse());
1776
+ const r = ma(e, s, i), a = r.length, l = (u) => {
1777
+ let c = 0;
1778
+ if (a > 1)
1779
+ for (; c < t.length - 2 && !(u < t[c + 1]); c++)
1780
+ ;
1781
+ const h = wt(t[c], t[c + 1], u);
1782
+ return r[c](h);
1783
+ };
1784
+ return n ? (u) => l(Q(t[0], t[o - 1], u)) : l;
1785
+ }
1786
+ function ya(t, e) {
1787
+ const n = t[t.length - 1];
1788
+ for (let s = 1; s <= e; s++) {
1789
+ const i = wt(0, e, s);
1790
+ t.push(w(n, 1, i));
1791
+ }
1792
+ }
1793
+ function va(t) {
1794
+ const e = [0];
1795
+ return ya(e, t.length - 1), e;
1796
+ }
1797
+ function xa(t, e) {
1798
+ return t.map((n) => n * e);
1799
+ }
1800
+ function Ta(t, e) {
1801
+ return t.map(() => e || fi).splice(0, t.length - 1);
1802
+ }
1803
+ function Ut({ duration: t = 300, keyframes: e, times: n, ease: s = "easeInOut" }) {
1804
+ const i = sa(s) ? s.map(Dn) : Dn(s), o = {
1805
+ done: !1,
1806
+ value: e[0]
1807
+ }, r = xa(
1808
+ // Only use the provided offsets if they're the correct length
1809
+ // TODO Maybe we should warn here if there's a length mismatch
1810
+ n && n.length === e.length ? n : va(e),
1811
+ t
1812
+ ), a = ga(r, e, {
1813
+ ease: Array.isArray(i) ? i : Ta(e, i)
1814
+ });
1815
+ return {
1816
+ calculatedDuration: t,
1817
+ next: (l) => (o.value = a(l), o.done = l >= t, o)
1818
+ };
1819
+ }
1820
+ const En = 2e4;
1821
+ function Pa(t) {
1822
+ let e = 0;
1823
+ const n = 50;
1824
+ let s = t.next(e);
1825
+ for (; !s.done && e < En; )
1826
+ e += n, s = t.next(e);
1827
+ return e >= En ? 1 / 0 : e;
1828
+ }
1829
+ const ba = (t) => {
1830
+ const e = ({ timestamp: n }) => t(n);
1831
+ return {
1832
+ start: () => V.update(e, !0),
1833
+ stop: () => H(e),
1834
+ /**
1835
+ * If we're processing this frame we can use the
1836
+ * framelocked timestamp to keep things in sync.
1837
+ */
1838
+ now: () => C.isProcessing ? C.timestamp : q.now()
1839
+ };
1840
+ };
1841
+ var Sa = {};
1842
+ const Va = {
1843
+ decay: An,
1844
+ inertia: An,
1845
+ tween: Ut,
1846
+ keyframes: Ut,
1847
+ spring: ui
1848
+ }, wa = (t) => t / 100;
1849
+ class Ze extends ai {
1850
+ constructor({ KeyframeResolver: e = Ge, ...n }) {
1851
+ super(n), this.holdTime = null, this.startTime = null, this.cancelTime = null, this.currentTime = 0, this.playbackSpeed = 1, this.pendingPlayState = "running", this.state = "idle", this.stop = () => {
1852
+ if (this.resolver.cancel(), this.isStopped = !0, this.state === "idle")
1853
+ return;
1854
+ this.teardown();
1855
+ const { onStop: a } = this.options;
1856
+ a && a();
1857
+ };
1858
+ const { name: s, motionValue: i, keyframes: o } = this.options, r = (a, l) => this.onKeyframesResolved(a, l);
1859
+ s && i && i.owner ? this.resolver = i.owner.resolveKeyframes(o, r, s, i) : this.resolver = new e(o, r, s, i), this.resolver.scheduleResolve();
1860
+ }
1861
+ initPlayback(e) {
1862
+ const { type: n = "keyframes", repeat: s = 0, repeatDelay: i = 0, repeatType: o, velocity: r = 0 } = this.options, a = Va[n] || Ut;
1863
+ let l, u;
1864
+ a !== Ut && typeof e[0] != "number" && (Sa.NODE_ENV !== "production" && Z(e.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${e}`), l = $(wa, vi(e[0], e[1])), e = [0, 100]);
1865
+ const c = a({ ...this.options, keyframes: e });
1866
+ o === "mirror" && (u = a({
1867
+ ...this.options,
1868
+ keyframes: [...e].reverse(),
1869
+ velocity: -r
1870
+ })), c.calculatedDuration === null && (c.calculatedDuration = Pa(c));
1871
+ const { calculatedDuration: h } = c, f = h + i, d = f * (s + 1) - i;
1872
+ return {
1873
+ generator: c,
1874
+ mirroredGenerator: u,
1875
+ mapPercentToKeyframes: l,
1876
+ calculatedDuration: h,
1877
+ resolvedDuration: f,
1878
+ totalDuration: d
1879
+ };
1880
+ }
1881
+ onPostResolved() {
1882
+ const { autoplay: e = !0 } = this.options;
1883
+ this.play(), this.pendingPlayState === "paused" || !e ? this.pause() : this.state = this.pendingPlayState;
1884
+ }
1885
+ tick(e, n = !1) {
1886
+ const { resolved: s } = this;
1887
+ if (!s) {
1888
+ const { keyframes: b } = this.options;
1889
+ return { done: !0, value: b[b.length - 1] };
1890
+ }
1891
+ const { finalKeyframe: i, generator: o, mirroredGenerator: r, mapPercentToKeyframes: a, keyframes: l, calculatedDuration: u, totalDuration: c, resolvedDuration: h } = s;
1892
+ if (this.startTime === null)
1893
+ return o.next(0);
1894
+ const { delay: f, repeat: d, repeatType: p, repeatDelay: m, onUpdate: y } = this.options;
1895
+ this.speed > 0 ? this.startTime = Math.min(this.startTime, e) : this.speed < 0 && (this.startTime = Math.min(e - c / this.speed, this.startTime)), n ? this.currentTime = e : this.holdTime !== null ? this.currentTime = this.holdTime : this.currentTime = Math.round(e - this.startTime) * this.speed;
1896
+ const v = this.currentTime - f * (this.speed >= 0 ? 1 : -1), T = this.speed >= 0 ? v < 0 : v > c;
1897
+ this.currentTime = Math.max(v, 0), this.state === "finished" && this.holdTime === null && (this.currentTime = c);
1898
+ let g = this.currentTime, P = o;
1899
+ if (d) {
1900
+ const b = Math.min(this.currentTime, c) / h;
1901
+ let k = Math.floor(b), O = b % 1;
1902
+ !O && b >= 1 && (O = 1), O === 1 && k--, k = Math.min(k, d + 1), !!(k % 2) && (p === "reverse" ? (O = 1 - O, m && (O -= m / h)) : p === "mirror" && (P = r)), g = Q(0, 1, O) * h;
1903
+ }
1904
+ const S = T ? { done: !1, value: l[0] } : P.next(g);
1905
+ a && (S.value = a(S.value));
1906
+ let { done: M } = S;
1907
+ !T && u !== null && (M = this.speed >= 0 ? this.currentTime >= c : this.currentTime <= 0);
1908
+ const z = this.holdTime === null && (this.state === "finished" || this.state === "running" && M);
1909
+ return z && i !== void 0 && (S.value = qt(l, this.options, i)), y && y(S.value), z && this.finish(), S;
1910
+ }
1911
+ get duration() {
1912
+ const { resolved: e } = this;
1913
+ return e ? G(e.calculatedDuration) : 0;
1914
+ }
1915
+ get time() {
1916
+ return G(this.currentTime);
1917
+ }
1918
+ set time(e) {
1919
+ e = W(e), this.currentTime = e, this.holdTime !== null || this.speed === 0 ? this.holdTime = e : this.driver && (this.startTime = this.driver.now() - e / this.speed);
1920
+ }
1921
+ get speed() {
1922
+ return this.playbackSpeed;
1923
+ }
1924
+ set speed(e) {
1925
+ const n = this.playbackSpeed !== e;
1926
+ this.playbackSpeed = e, n && (this.time = G(this.currentTime));
1927
+ }
1928
+ play() {
1929
+ if (this.resolver.isScheduled || this.resolver.resume(), !this._resolved) {
1930
+ this.pendingPlayState = "running";
1931
+ return;
1932
+ }
1933
+ if (this.isStopped)
1934
+ return;
1935
+ const { driver: e = ba, onPlay: n } = this.options;
1936
+ this.driver || (this.driver = e((i) => this.tick(i))), n && n();
1937
+ const s = this.driver.now();
1938
+ this.holdTime !== null ? this.startTime = s - this.holdTime : (!this.startTime || this.state === "finished") && (this.startTime = s), this.state === "finished" && this.updateFinishedPromise(), this.cancelTime = this.startTime, this.holdTime = null, this.state = "running", this.driver.start();
1939
+ }
1940
+ pause() {
1941
+ var e;
1942
+ if (!this._resolved) {
1943
+ this.pendingPlayState = "paused";
1944
+ return;
1945
+ }
1946
+ this.state = "paused", this.holdTime = (e = this.currentTime) !== null && e !== void 0 ? e : 0;
1947
+ }
1948
+ complete() {
1949
+ this.state !== "running" && this.play(), this.pendingPlayState = this.state = "finished", this.holdTime = null;
1950
+ }
1951
+ finish() {
1952
+ this.teardown(), this.state = "finished";
1953
+ const { onComplete: e } = this.options;
1954
+ e && e();
1955
+ }
1956
+ cancel() {
1957
+ this.cancelTime !== null && this.tick(this.cancelTime), this.teardown(), this.updateFinishedPromise();
1958
+ }
1959
+ teardown() {
1960
+ this.state = "idle", this.stopDriver(), this.resolveFinishedPromise(), this.updateFinishedPromise(), this.startTime = this.cancelTime = null, this.resolver.cancel();
1961
+ }
1962
+ stopDriver() {
1963
+ this.driver && (this.driver.stop(), this.driver = void 0);
1964
+ }
1965
+ sample(e) {
1966
+ return this.startTime = 0, this.tick(e, !0);
1967
+ }
1968
+ }
1969
+ const xi = (t) => Array.isArray(t) && typeof t[0] == "number";
1970
+ function Ti(t) {
1971
+ return !!(!t || typeof t == "string" && t in Qe || xi(t) || Array.isArray(t) && t.every(Ti));
1972
+ }
1973
+ const vt = ([t, e, n, s]) => `cubic-bezier(${t}, ${e}, ${n}, ${s})`, Qe = {
1974
+ linear: "linear",
1975
+ ease: "ease",
1976
+ easeIn: "ease-in",
1977
+ easeOut: "ease-out",
1978
+ easeInOut: "ease-in-out",
1979
+ circIn: vt([0, 0.65, 0.55, 1]),
1980
+ circOut: vt([0.55, 0, 1, 0.45]),
1981
+ backIn: vt([0.31, 0.01, 0.66, -0.59]),
1982
+ backOut: vt([0.33, 1.53, 0.69, 0.99])
1983
+ };
1984
+ function Aa(t) {
1985
+ return Pi(t) || Qe.easeOut;
1986
+ }
1987
+ function Pi(t) {
1988
+ if (t)
1989
+ return xi(t) ? vt(t) : Array.isArray(t) ? t.map(Aa) : Qe[t];
1990
+ }
1991
+ function Ca(t, e, n, { delay: s = 0, duration: i = 300, repeat: o = 0, repeatType: r = "loop", ease: a, times: l } = {}) {
1992
+ const u = { [e]: n };
1993
+ l && (u.offset = l);
1994
+ const c = Pi(a);
1995
+ return Array.isArray(c) && (u.easing = c), t.animate(u, {
1996
+ delay: s,
1997
+ duration: i,
1998
+ easing: Array.isArray(c) ? "linear" : c,
1999
+ fill: "both",
2000
+ iterations: o + 1,
2001
+ direction: r === "reverse" ? "alternate" : "normal"
2002
+ });
2003
+ }
2004
+ const Da = oi(() => Object.hasOwnProperty.call(Element.prototype, "animate")), Ma = /* @__PURE__ */ new Set([
2005
+ "opacity",
2006
+ "clipPath",
2007
+ "filter",
2008
+ "transform"
2009
+ // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved
2010
+ // or until we implement support for linear() easing.
2011
+ // "background-color"
2012
+ ]), _t = 10, Ra = 2e4;
2013
+ function Ea(t) {
2014
+ return t.type === "spring" || t.name === "backgroundColor" || !Ti(t.ease);
2015
+ }
2016
+ function La(t, e) {
2017
+ const n = new Ze({
2018
+ ...e,
2019
+ keyframes: t,
2020
+ repeat: 0,
2021
+ delay: 0,
2022
+ isGenerator: !0
2023
+ });
2024
+ let s = { done: !1, value: t[0] };
2025
+ const i = [];
2026
+ let o = 0;
2027
+ for (; !s.done && o < Ra; )
2028
+ s = n.sample(o), i.push(s.value), o += _t;
2029
+ return {
2030
+ times: void 0,
2031
+ keyframes: i,
2032
+ duration: o - _t,
2033
+ ease: "linear"
2034
+ };
2035
+ }
2036
+ class Ln extends ai {
2037
+ constructor(e) {
2038
+ super(e);
2039
+ const { name: n, motionValue: s, keyframes: i } = this.options;
2040
+ this.resolver = new ri(i, (o, r) => this.onKeyframesResolved(o, r), n, s), this.resolver.scheduleResolve();
2041
+ }
2042
+ initPlayback(e, n) {
2043
+ var s;
2044
+ let { duration: i = 300, times: o, ease: r, type: a, motionValue: l, name: u } = this.options;
2045
+ if (!(!((s = l.owner) === null || s === void 0) && s.current))
2046
+ return !1;
2047
+ if (Ea(this.options)) {
2048
+ const { onComplete: h, onUpdate: f, motionValue: d, ...p } = this.options, m = La(e, p);
2049
+ e = m.keyframes, e.length === 1 && (e[1] = e[0]), i = m.duration, o = m.times, r = m.ease, a = "keyframes";
2050
+ }
2051
+ const c = Ca(l.owner.current, u, e, { ...this.options, duration: i, times: o, ease: r });
2052
+ return c.startTime = q.now(), this.pendingTimeline ? (c.timeline = this.pendingTimeline, this.pendingTimeline = void 0) : c.onfinish = () => {
2053
+ const { onComplete: h } = this.options;
2054
+ l.set(qt(e, this.options, n)), h && h(), this.cancel(), this.resolveFinishedPromise();
2055
+ }, {
2056
+ animation: c,
2057
+ duration: i,
2058
+ times: o,
2059
+ type: a,
2060
+ ease: r,
2061
+ keyframes: e
2062
+ };
2063
+ }
2064
+ get duration() {
2065
+ const { resolved: e } = this;
2066
+ if (!e)
2067
+ return 0;
2068
+ const { duration: n } = e;
2069
+ return G(n);
2070
+ }
2071
+ get time() {
2072
+ const { resolved: e } = this;
2073
+ if (!e)
2074
+ return 0;
2075
+ const { animation: n } = e;
2076
+ return G(n.currentTime || 0);
2077
+ }
2078
+ set time(e) {
2079
+ const { resolved: n } = this;
2080
+ if (!n)
2081
+ return;
2082
+ const { animation: s } = n;
2083
+ s.currentTime = W(e);
2084
+ }
2085
+ get speed() {
2086
+ const { resolved: e } = this;
2087
+ if (!e)
2088
+ return 1;
2089
+ const { animation: n } = e;
2090
+ return n.playbackRate;
2091
+ }
2092
+ set speed(e) {
2093
+ const { resolved: n } = this;
2094
+ if (!n)
2095
+ return;
2096
+ const { animation: s } = n;
2097
+ s.playbackRate = e;
2098
+ }
2099
+ get state() {
2100
+ const { resolved: e } = this;
2101
+ if (!e)
2102
+ return "idle";
2103
+ const { animation: n } = e;
2104
+ return n.playState;
2105
+ }
2106
+ /**
2107
+ * Replace the default DocumentTimeline with another AnimationTimeline.
2108
+ * Currently used for scroll animations.
2109
+ */
2110
+ attachTimeline(e) {
2111
+ if (!this._resolved)
2112
+ this.pendingTimeline = e;
2113
+ else {
2114
+ const { resolved: n } = this;
2115
+ if (!n)
2116
+ return D;
2117
+ const { animation: s } = n;
2118
+ s.timeline = e, s.onfinish = null;
2119
+ }
2120
+ return D;
2121
+ }
2122
+ play() {
2123
+ if (this.isStopped)
2124
+ return;
2125
+ const { resolved: e } = this;
2126
+ if (!e)
2127
+ return;
2128
+ const { animation: n } = e;
2129
+ n.playState === "finished" && this.updateFinishedPromise(), n.play();
2130
+ }
2131
+ pause() {
2132
+ const { resolved: e } = this;
2133
+ if (!e)
2134
+ return;
2135
+ const { animation: n } = e;
2136
+ n.pause();
2137
+ }
2138
+ stop() {
2139
+ if (this.resolver.cancel(), this.isStopped = !0, this.state === "idle")
2140
+ return;
2141
+ const { resolved: e } = this;
2142
+ if (!e)
2143
+ return;
2144
+ const { animation: n, keyframes: s, duration: i, type: o, ease: r, times: a } = e;
2145
+ if (!(n.playState === "idle" || n.playState === "finished")) {
2146
+ if (this.time) {
2147
+ const { motionValue: l, onUpdate: u, onComplete: c, ...h } = this.options, f = new Ze({
2148
+ ...h,
2149
+ keyframes: s,
2150
+ duration: i,
2151
+ type: o,
2152
+ ease: r,
2153
+ times: a,
2154
+ isGenerator: !0
2155
+ }), d = W(this.time);
2156
+ l.setWithVelocity(f.sample(d - _t).value, f.sample(d).value, _t);
2157
+ }
2158
+ this.cancel();
2159
+ }
2160
+ }
2161
+ complete() {
2162
+ const { resolved: e } = this;
2163
+ e && e.animation.finish();
2164
+ }
2165
+ cancel() {
2166
+ const { resolved: e } = this;
2167
+ e && e.animation.cancel();
2168
+ }
2169
+ static supports(e) {
2170
+ const { motionValue: n, name: s, repeatDelay: i, repeatType: o, damping: r, type: a } = e;
2171
+ return Da() && s && Ma.has(s) && n && n.owner && n.owner.current instanceof HTMLElement && /**
2172
+ * If we're outputting values to onUpdate then we can't use WAAPI as there's
2173
+ * no way to read the value from WAAPI every frame.
2174
+ */
2175
+ !n.owner.getProps().onUpdate && !i && o !== "mirror" && r !== 0 && a !== "inertia";
2176
+ }
2177
+ }
2178
+ function Fa(t, e) {
2179
+ let n;
2180
+ const s = () => {
2181
+ const { currentTime: i } = e, r = (i === null ? 0 : i.value) / 100;
2182
+ n !== r && t(r), n = r;
2183
+ };
2184
+ return V.update(s, !0), () => H(s);
2185
+ }
2186
+ const Ba = oi(() => window.ScrollTimeline !== void 0);
2187
+ class ka {
2188
+ constructor(e) {
2189
+ this.stop = () => this.runAll("stop"), this.animations = e.filter(Boolean);
2190
+ }
2191
+ then(e, n) {
2192
+ return Promise.all(this.animations).then(e).catch(n);
2193
+ }
2194
+ /**
2195
+ * TODO: Filter out cancelled or stopped animations before returning
2196
+ */
2197
+ getAll(e) {
2198
+ return this.animations[0][e];
2199
+ }
2200
+ setAll(e, n) {
2201
+ for (let s = 0; s < this.animations.length; s++)
2202
+ this.animations[s][e] = n;
2203
+ }
2204
+ attachTimeline(e) {
2205
+ const n = this.animations.map((s) => {
2206
+ if (Ba() && s.attachTimeline)
2207
+ s.attachTimeline(e);
2208
+ else
2209
+ return s.pause(), Fa((i) => {
2210
+ s.time = s.duration * i;
2211
+ }, e);
2212
+ });
2213
+ return () => {
2214
+ n.forEach((s, i) => {
2215
+ s && s(), this.animations[i].stop();
2216
+ });
2217
+ };
2218
+ }
2219
+ get time() {
2220
+ return this.getAll("time");
2221
+ }
2222
+ set time(e) {
2223
+ this.setAll("time", e);
2224
+ }
2225
+ get speed() {
2226
+ return this.getAll("speed");
2227
+ }
2228
+ set speed(e) {
2229
+ this.setAll("speed", e);
2230
+ }
2231
+ get duration() {
2232
+ let e = 0;
2233
+ for (let n = 0; n < this.animations.length; n++)
2234
+ e = Math.max(e, this.animations[n].duration);
2235
+ return e;
2236
+ }
2237
+ runAll(e) {
2238
+ this.animations.forEach((n) => n[e]());
2239
+ }
2240
+ play() {
2241
+ this.runAll("play");
2242
+ }
2243
+ pause() {
2244
+ this.runAll("pause");
2245
+ }
2246
+ cancel() {
2247
+ this.runAll("cancel");
2248
+ }
2249
+ complete() {
2250
+ this.runAll("complete");
2251
+ }
2252
+ }
2253
+ const Je = (t, e, n, s = {}, i, o) => (r) => {
2254
+ const a = We(s, t) || {}, l = a.delay || s.delay || 0;
2255
+ let { elapsed: u = 0 } = s;
2256
+ u = u - W(l);
2257
+ let c = {
2258
+ keyframes: Array.isArray(n) ? n : [null, n],
2259
+ ease: "easeOut",
2260
+ velocity: e.getVelocity(),
2261
+ ...a,
2262
+ delay: -u,
2263
+ onUpdate: (f) => {
2264
+ e.set(f), a.onUpdate && a.onUpdate(f);
2265
+ },
2266
+ onComplete: () => {
2267
+ r(), a.onComplete && a.onComplete();
2268
+ },
2269
+ name: t,
2270
+ motionValue: e,
2271
+ element: o ? void 0 : i
2272
+ };
2273
+ fo(a) || (c = {
2274
+ ...c,
2275
+ ...ho(t, c)
2276
+ }), c.duration && (c.duration = W(c.duration)), c.repeatDelay && (c.repeatDelay = W(c.repeatDelay)), c.from !== void 0 && (c.keyframes[0] = c.from);
2277
+ let h = !1;
2278
+ if ((c.type === !1 || c.duration === 0 && !c.repeatDelay) && (c.duration = 0, c.delay === 0 && (h = !0)), h && !o && e.get() !== void 0) {
2279
+ const f = qt(c.keyframes, a);
2280
+ if (f !== void 0)
2281
+ return V.update(() => {
2282
+ c.onUpdate(f), c.onComplete();
2283
+ }), new ka([]);
2284
+ }
2285
+ return !o && Ln.supports(c) ? new Ln(c) : new Ze(c);
2286
+ };
2287
+ function Kt(t) {
2288
+ return !!(E(t) && t.add);
2289
+ }
2290
+ function tn(t, e) {
2291
+ t.indexOf(e) === -1 && t.push(e);
2292
+ }
2293
+ function en(t, e) {
2294
+ const n = t.indexOf(e);
2295
+ n > -1 && t.splice(n, 1);
2296
+ }
2297
+ class nn {
2298
+ constructor() {
2299
+ this.subscriptions = [];
2300
+ }
2301
+ add(e) {
2302
+ return tn(this.subscriptions, e), () => en(this.subscriptions, e);
2303
+ }
2304
+ notify(e, n, s) {
2305
+ const i = this.subscriptions.length;
2306
+ if (i)
2307
+ if (i === 1)
2308
+ this.subscriptions[0](e, n, s);
2309
+ else
2310
+ for (let o = 0; o < i; o++) {
2311
+ const r = this.subscriptions[o];
2312
+ r && r(e, n, s);
2313
+ }
2314
+ }
2315
+ getSize() {
2316
+ return this.subscriptions.length;
2317
+ }
2318
+ clear() {
2319
+ this.subscriptions.length = 0;
2320
+ }
2321
+ }
2322
+ const Fn = /* @__PURE__ */ new Set();
2323
+ function sn(t, e, n) {
2324
+ t || Fn.has(e) || (console.warn(e), Fn.add(e));
2325
+ }
2326
+ var Oa = {};
2327
+ const Bn = 30, ja = (t) => !isNaN(parseFloat(t));
2328
+ class Ia {
2329
+ /**
2330
+ * @param init - The initiating value
2331
+ * @param config - Optional configuration options
2332
+ *
2333
+ * - `transformer`: A function to transform incoming values with.
2334
+ *
2335
+ * @internal
2336
+ */
2337
+ constructor(e, n = {}) {
2338
+ this.version = "11.2.12", this.canTrackVelocity = null, this.events = {}, this.updateAndNotify = (s, i = !0) => {
2339
+ const o = q.now();
2340
+ this.updatedAt !== o && this.setPrevFrameValue(), this.prev = this.current, this.setCurrent(s), this.current !== this.prev && this.events.change && this.events.change.notify(this.current), i && this.events.renderRequest && this.events.renderRequest.notify(this.current);
2341
+ }, this.hasAnimated = !1, this.setCurrent(e), this.owner = n.owner;
2342
+ }
2343
+ setCurrent(e) {
2344
+ this.current = e, this.updatedAt = q.now(), this.canTrackVelocity === null && e !== void 0 && (this.canTrackVelocity = ja(this.current));
2345
+ }
2346
+ setPrevFrameValue(e = this.current) {
2347
+ this.prevFrameValue = e, this.prevUpdatedAt = this.updatedAt;
2348
+ }
2349
+ /**
2350
+ * Adds a function that will be notified when the `MotionValue` is updated.
2351
+ *
2352
+ * It returns a function that, when called, will cancel the subscription.
2353
+ *
2354
+ * When calling `onChange` inside a React component, it should be wrapped with the
2355
+ * `useEffect` hook. As it returns an unsubscribe function, this should be returned
2356
+ * from the `useEffect` function to ensure you don't add duplicate subscribers..
2357
+ *
2358
+ * ```jsx
2359
+ * export const MyComponent = () => {
2360
+ * const x = useMotionValue(0)
2361
+ * const y = useMotionValue(0)
2362
+ * const opacity = useMotionValue(1)
2363
+ *
2364
+ * useEffect(() => {
2365
+ * function updateOpacity() {
2366
+ * const maxXY = Math.max(x.get(), y.get())
2367
+ * const newOpacity = transform(maxXY, [0, 100], [1, 0])
2368
+ * opacity.set(newOpacity)
2369
+ * }
2370
+ *
2371
+ * const unsubscribeX = x.on("change", updateOpacity)
2372
+ * const unsubscribeY = y.on("change", updateOpacity)
2373
+ *
2374
+ * return () => {
2375
+ * unsubscribeX()
2376
+ * unsubscribeY()
2377
+ * }
2378
+ * }, [])
2379
+ *
2380
+ * return <motion.div style={{ x }} />
2381
+ * }
2382
+ * ```
2383
+ *
2384
+ * @param subscriber - A function that receives the latest value.
2385
+ * @returns A function that, when called, will cancel this subscription.
2386
+ *
2387
+ * @deprecated
2388
+ */
2389
+ onChange(e) {
2390
+ return Oa.NODE_ENV !== "production" && sn(!1, 'value.onChange(callback) is deprecated. Switch to value.on("change", callback).'), this.on("change", e);
2391
+ }
2392
+ on(e, n) {
2393
+ this.events[e] || (this.events[e] = new nn());
2394
+ const s = this.events[e].add(n);
2395
+ return e === "change" ? () => {
2396
+ s(), V.read(() => {
2397
+ this.events.change.getSize() || this.stop();
2398
+ });
2399
+ } : s;
2400
+ }
2401
+ clearListeners() {
2402
+ for (const e in this.events)
2403
+ this.events[e].clear();
2404
+ }
2405
+ /**
2406
+ * Attaches a passive effect to the `MotionValue`.
2407
+ *
2408
+ * @internal
2409
+ */
2410
+ attach(e, n) {
2411
+ this.passiveEffect = e, this.stopPassiveEffect = n;
2412
+ }
2413
+ /**
2414
+ * Sets the state of the `MotionValue`.
2415
+ *
2416
+ * @remarks
2417
+ *
2418
+ * ```jsx
2419
+ * const x = useMotionValue(0)
2420
+ * x.set(10)
2421
+ * ```
2422
+ *
2423
+ * @param latest - Latest value to set.
2424
+ * @param render - Whether to notify render subscribers. Defaults to `true`
2425
+ *
2426
+ * @public
2427
+ */
2428
+ set(e, n = !0) {
2429
+ !n || !this.passiveEffect ? this.updateAndNotify(e, n) : this.passiveEffect(e, this.updateAndNotify);
2430
+ }
2431
+ setWithVelocity(e, n, s) {
2432
+ this.set(n), this.prev = void 0, this.prevFrameValue = e, this.prevUpdatedAt = this.updatedAt - s;
2433
+ }
2434
+ /**
2435
+ * Set the state of the `MotionValue`, stopping any active animations,
2436
+ * effects, and resets velocity to `0`.
2437
+ */
2438
+ jump(e, n = !0) {
2439
+ this.updateAndNotify(e), this.prev = e, this.prevUpdatedAt = this.prevFrameValue = void 0, n && this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
2440
+ }
2441
+ /**
2442
+ * Returns the latest state of `MotionValue`
2443
+ *
2444
+ * @returns - The latest state of `MotionValue`
2445
+ *
2446
+ * @public
2447
+ */
2448
+ get() {
2449
+ return this.current;
2450
+ }
2451
+ /**
2452
+ * @public
2453
+ */
2454
+ getPrevious() {
2455
+ return this.prev;
2456
+ }
2457
+ /**
2458
+ * Returns the latest velocity of `MotionValue`
2459
+ *
2460
+ * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.
2461
+ *
2462
+ * @public
2463
+ */
2464
+ getVelocity() {
2465
+ const e = q.now();
2466
+ if (!this.canTrackVelocity || this.prevFrameValue === void 0 || e - this.updatedAt > Bn)
2467
+ return 0;
2468
+ const n = Math.min(this.updatedAt - this.prevUpdatedAt, Bn);
2469
+ return li(parseFloat(this.current) - parseFloat(this.prevFrameValue), n);
2470
+ }
2471
+ /**
2472
+ * Registers a new animation to control this `MotionValue`. Only one
2473
+ * animation can drive a `MotionValue` at one time.
2474
+ *
2475
+ * ```jsx
2476
+ * value.start()
2477
+ * ```
2478
+ *
2479
+ * @param animation - A function that starts the provided animation
2480
+ *
2481
+ * @internal
2482
+ */
2483
+ start(e) {
2484
+ return this.stop(), new Promise((n) => {
2485
+ this.hasAnimated = !0, this.animation = e(n), this.events.animationStart && this.events.animationStart.notify();
2486
+ }).then(() => {
2487
+ this.events.animationComplete && this.events.animationComplete.notify(), this.clearAnimation();
2488
+ });
2489
+ }
2490
+ /**
2491
+ * Stop the currently active animation.
2492
+ *
2493
+ * @public
2494
+ */
2495
+ stop() {
2496
+ this.animation && (this.animation.stop(), this.events.animationCancel && this.events.animationCancel.notify()), this.clearAnimation();
2497
+ }
2498
+ /**
2499
+ * Returns `true` if this value is currently animating.
2500
+ *
2501
+ * @public
2502
+ */
2503
+ isAnimating() {
2504
+ return !!this.animation;
2505
+ }
2506
+ clearAnimation() {
2507
+ delete this.animation;
2508
+ }
2509
+ /**
2510
+ * Destroy and clean up subscribers to this `MotionValue`.
2511
+ *
2512
+ * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically
2513
+ * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually
2514
+ * created a `MotionValue` via the `motionValue` function.
2515
+ *
2516
+ * @public
2517
+ */
2518
+ destroy() {
2519
+ this.clearListeners(), this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
2520
+ }
2521
+ }
2522
+ function At(t, e) {
2523
+ return new Ia(t, e);
2524
+ }
2525
+ function Na(t, e, n) {
2526
+ t.hasValue(e) ? t.getValue(e).set(n) : t.addValue(e, At(n));
2527
+ }
2528
+ function Ua(t, e) {
2529
+ const n = Xt(t, e);
2530
+ let { transitionEnd: s = {}, transition: i = {}, ...o } = n || {};
2531
+ o = { ...o, ...s };
2532
+ for (const r in o) {
2533
+ const a = Kr(o[r]);
2534
+ Na(t, r, a);
2535
+ }
2536
+ }
2537
+ function bi(t) {
2538
+ return t.getProps()[bs];
2539
+ }
2540
+ function _a({ protectedKeys: t, needsAnimating: e }, n) {
2541
+ const s = t.hasOwnProperty(n) && e[n] !== !0;
2542
+ return e[n] = !1, s;
2543
+ }
2544
+ function Si(t, e, { delay: n = 0, transitionOverride: s, type: i } = {}) {
2545
+ var o;
2546
+ let { transition: r = t.getDefaultTransition(), transitionEnd: a, ...l } = e;
2547
+ const u = t.getValue("willChange");
2548
+ s && (r = s);
2549
+ const c = [], h = i && t.animationState && t.animationState.getState()[i];
2550
+ for (const f in l) {
2551
+ const d = t.getValue(f, (o = t.latestValues[f]) !== null && o !== void 0 ? o : null), p = l[f];
2552
+ if (p === void 0 || h && _a(h, f))
2553
+ continue;
2554
+ const m = {
2555
+ delay: n,
2556
+ elapsed: 0,
2557
+ ...We(r || {}, f)
2558
+ };
2559
+ let y = !1;
2560
+ if (window.HandoffAppearAnimations) {
2561
+ const T = bi(t);
2562
+ if (T) {
2563
+ const g = window.HandoffAppearAnimations(T, f, d, V);
2564
+ g !== null && (m.elapsed = g, y = !0);
2565
+ }
2566
+ }
2567
+ d.start(Je(f, d, p, t.shouldReduceMotion && ot.has(f) ? { type: !1 } : m, t, y));
2568
+ const v = d.animation;
2569
+ v && (Kt(u) && (u.add(f), v.then(() => u.remove(f))), c.push(v));
2570
+ }
2571
+ return a && Promise.all(c).then(() => {
2572
+ V.update(() => {
2573
+ a && Ua(t, a);
2574
+ });
2575
+ }), c;
2576
+ }
2577
+ function be(t, e, n = {}) {
2578
+ var s;
2579
+ const i = Xt(t, e, n.type === "exit" ? (s = t.presenceContext) === null || s === void 0 ? void 0 : s.custom : void 0);
2580
+ let { transition: o = t.getDefaultTransition() || {} } = i || {};
2581
+ n.transitionOverride && (o = n.transitionOverride);
2582
+ const r = i ? () => Promise.all(Si(t, i, n)) : () => Promise.resolve(), a = t.variantChildren && t.variantChildren.size ? (u = 0) => {
2583
+ const { delayChildren: c = 0, staggerChildren: h, staggerDirection: f } = o;
2584
+ return Ka(t, e, c + u, h, f, n);
2585
+ } : () => Promise.resolve(), { when: l } = o;
2586
+ if (l) {
2587
+ const [u, c] = l === "beforeChildren" ? [r, a] : [a, r];
2588
+ return u().then(() => c());
2589
+ } else
2590
+ return Promise.all([r(), a(n.delay)]);
2591
+ }
2592
+ function Ka(t, e, n = 0, s = 0, i = 1, o) {
2593
+ const r = [], a = (t.variantChildren.size - 1) * s, l = i === 1 ? (u = 0) => u * s : (u = 0) => a - u * s;
2594
+ return Array.from(t.variantChildren).sort($a).forEach((u, c) => {
2595
+ u.notify("AnimationStart", e), r.push(be(u, e, {
2596
+ ...o,
2597
+ delay: n + l(c)
2598
+ }).then(() => u.notify("AnimationComplete", e)));
2599
+ }), Promise.all(r);
2600
+ }
2601
+ function $a(t, e) {
2602
+ return t.sortNodePosition(e);
2603
+ }
2604
+ function Wa(t, e, n = {}) {
2605
+ t.notify("AnimationStart", e);
2606
+ let s;
2607
+ if (Array.isArray(e)) {
2608
+ const i = e.map((o) => be(t, o, n));
2609
+ s = Promise.all(i);
2610
+ } else if (typeof e == "string")
2611
+ s = be(t, e, n);
2612
+ else {
2613
+ const i = typeof e == "function" ? Xt(t, e, n.custom) : e;
2614
+ s = Promise.all(Si(t, i, n));
2615
+ }
2616
+ return s.then(() => {
2617
+ V.postRender(() => {
2618
+ t.notify("AnimationComplete", e);
2619
+ });
2620
+ });
2621
+ }
2622
+ const Ga = [...Fe].reverse(), Ha = Fe.length;
2623
+ function za(t) {
2624
+ return (e) => Promise.all(e.map(({ animation: n, options: s }) => Wa(t, n, s)));
2625
+ }
2626
+ function Ya(t) {
2627
+ let e = za(t), n = kn(), s = !0;
2628
+ const i = (l) => (u, c) => {
2629
+ var h;
2630
+ const f = Xt(t, c, l === "exit" ? (h = t.presenceContext) === null || h === void 0 ? void 0 : h.custom : void 0);
2631
+ if (f) {
2632
+ const { transition: d, transitionEnd: p, ...m } = f;
2633
+ u = { ...u, ...m, ...p };
2634
+ }
2635
+ return u;
2636
+ };
2637
+ function o(l) {
2638
+ e = l(t);
2639
+ }
2640
+ function r(l) {
2641
+ const u = t.getProps(), c = t.getVariantContext(!0) || {}, h = [], f = /* @__PURE__ */ new Set();
2642
+ let d = {}, p = 1 / 0;
2643
+ for (let y = 0; y < Ha; y++) {
2644
+ const v = Ga[y], T = n[v], g = u[v] !== void 0 ? u[v] : c[v], P = St(g), S = v === l ? T.isActive : null;
2645
+ S === !1 && (p = y);
2646
+ let M = g === c[v] && g !== u[v] && P;
2647
+ if (M && s && t.manuallyAnimateOnMount && (M = !1), T.protectedKeys = { ...d }, // If it isn't active and hasn't *just* been set as inactive
2648
+ !T.isActive && S === null || // If we didn't and don't have any defined prop for this animation type
2649
+ !g && !T.prevProp || // Or if the prop doesn't define an animation
2650
+ Ht(g) || typeof g == "boolean")
2651
+ continue;
2652
+ let b = Xa(T.prevProp, g) || // If we're making this variant active, we want to always make it active
2653
+ v === l && T.isActive && !M && P || // If we removed a higher-priority variant (i is in reverse order)
2654
+ y > p && P, k = !1;
2655
+ const O = Array.isArray(g) ? g : [g];
2656
+ let at = O.reduce(i(v), {});
2657
+ S === !1 && (at = {});
2658
+ const { prevResolvedValues: rn = {} } = T, Ki = {
2659
+ ...rn,
2660
+ ...at
2661
+ }, on = (L) => {
2662
+ b = !0, f.has(L) && (k = !0, f.delete(L)), T.needsAnimating[L] = !0;
2663
+ const U = t.getValue(L);
2664
+ U && (U.liveStyle = !1);
2665
+ };
2666
+ for (const L in Ki) {
2667
+ const U = at[L], Zt = rn[L];
2668
+ if (d.hasOwnProperty(L))
2669
+ continue;
2670
+ let Qt = !1;
2671
+ pe(U) && pe(Zt) ? Qt = !Gs(U, Zt) : Qt = U !== Zt, Qt ? U != null ? on(L) : f.add(L) : U !== void 0 && f.has(L) ? on(L) : T.protectedKeys[L] = !0;
2672
+ }
2673
+ T.prevProp = g, T.prevResolvedValues = at, T.isActive && (d = { ...d, ...at }), s && t.blockInitialAnimation && (b = !1), b && (!M || k) && h.push(...O.map((L) => ({
2674
+ animation: L,
2675
+ options: { type: v }
2676
+ })));
2677
+ }
2678
+ if (f.size) {
2679
+ const y = {};
2680
+ f.forEach((v) => {
2681
+ const T = t.getBaseTarget(v), g = t.getValue(v);
2682
+ g && (g.liveStyle = !0), y[v] = T ?? null;
2683
+ }), h.push({ animation: y });
2684
+ }
2685
+ let m = !!h.length;
2686
+ return s && (u.initial === !1 || u.initial === u.animate) && !t.manuallyAnimateOnMount && (m = !1), s = !1, m ? e(h) : Promise.resolve();
2687
+ }
2688
+ function a(l, u) {
2689
+ var c;
2690
+ if (n[l].isActive === u)
2691
+ return Promise.resolve();
2692
+ (c = t.variantChildren) === null || c === void 0 || c.forEach((f) => {
2693
+ var d;
2694
+ return (d = f.animationState) === null || d === void 0 ? void 0 : d.setActive(l, u);
2695
+ }), n[l].isActive = u;
2696
+ const h = r(l);
2697
+ for (const f in n)
2698
+ n[f].protectedKeys = {};
2699
+ return h;
2700
+ }
2701
+ return {
2702
+ animateChanges: r,
2703
+ setActive: a,
2704
+ setAnimateFunction: o,
2705
+ getState: () => n,
2706
+ reset: () => {
2707
+ n = kn(), s = !0;
2708
+ }
2709
+ };
2710
+ }
2711
+ function Xa(t, e) {
2712
+ return typeof e == "string" ? e !== t : Array.isArray(e) ? !Gs(e, t) : !1;
2713
+ }
2714
+ function et(t = !1) {
2715
+ return {
2716
+ isActive: t,
2717
+ protectedKeys: {},
2718
+ needsAnimating: {},
2719
+ prevResolvedValues: {}
2720
+ };
2721
+ }
2722
+ function kn() {
2723
+ return {
2724
+ animate: et(!0),
2725
+ whileInView: et(),
2726
+ whileHover: et(),
2727
+ whileTap: et(),
2728
+ whileDrag: et(),
2729
+ whileFocus: et(),
2730
+ exit: et()
2731
+ };
2732
+ }
2733
+ class qa extends tt {
2734
+ /**
2735
+ * We dynamically generate the AnimationState manager as it contains a reference
2736
+ * to the underlying animation library. We only want to load that if we load this,
2737
+ * so people can optionally code split it out using the `m` component.
2738
+ */
2739
+ constructor(e) {
2740
+ super(e), e.animationState || (e.animationState = Ya(e));
2741
+ }
2742
+ updateAnimationControlsSubscription() {
2743
+ const { animate: e } = this.node.getProps();
2744
+ Ht(e) && (this.unmountControls = e.subscribe(this.node));
2745
+ }
2746
+ /**
2747
+ * Subscribe any provided AnimationControls to the component's VisualElement
2748
+ */
2749
+ mount() {
2750
+ this.updateAnimationControlsSubscription();
2751
+ }
2752
+ update() {
2753
+ const { animate: e } = this.node.getProps(), { animate: n } = this.node.prevProps || {};
2754
+ e !== n && this.updateAnimationControlsSubscription();
2755
+ }
2756
+ unmount() {
2757
+ var e;
2758
+ this.node.animationState.reset(), (e = this.unmountControls) === null || e === void 0 || e.call(this);
2759
+ }
2760
+ }
2761
+ let Za = 0;
2762
+ class Qa extends tt {
2763
+ constructor() {
2764
+ super(...arguments), this.id = Za++;
2765
+ }
2766
+ update() {
2767
+ if (!this.node.presenceContext)
2768
+ return;
2769
+ const { isPresent: e, onExitComplete: n } = this.node.presenceContext, { isPresent: s } = this.node.prevPresenceContext || {};
2770
+ if (!this.node.animationState || e === s)
2771
+ return;
2772
+ const i = this.node.animationState.setActive("exit", !e);
2773
+ n && !e && i.then(() => n(this.id));
2774
+ }
2775
+ mount() {
2776
+ const { register: e } = this.node.presenceContext || {};
2777
+ e && (this.unmount = e(this.id));
2778
+ }
2779
+ unmount() {
2780
+ }
2781
+ }
2782
+ const Ja = {
2783
+ animation: {
2784
+ Feature: qa
2785
+ },
2786
+ exit: {
2787
+ Feature: Qa
2788
+ }
2789
+ }, On = (t, e) => Math.abs(t - e);
2790
+ function tl(t, e) {
2791
+ const n = On(t.x, e.x), s = On(t.y, e.y);
2792
+ return Math.sqrt(n ** 2 + s ** 2);
2793
+ }
2794
+ class Vi {
2795
+ constructor(e, n, { transformPagePoint: s, contextWindow: i, dragSnapToOrigin: o = !1 } = {}) {
2796
+ if (this.startEvent = null, this.lastMoveEvent = null, this.lastMoveEventInfo = null, this.handlers = {}, this.contextWindow = window, this.updatePoint = () => {
2797
+ if (!(this.lastMoveEvent && this.lastMoveEventInfo))
2798
+ return;
2799
+ const h = ae(this.lastMoveEventInfo, this.history), f = this.startEvent !== null, d = tl(h.offset, { x: 0, y: 0 }) >= 3;
2800
+ if (!f && !d)
2801
+ return;
2802
+ const { point: p } = h, { timestamp: m } = C;
2803
+ this.history.push({ ...p, timestamp: m });
2804
+ const { onStart: y, onMove: v } = this.handlers;
2805
+ f || (y && y(this.lastMoveEvent, h), this.startEvent = this.lastMoveEvent), v && v(this.lastMoveEvent, h);
2806
+ }, this.handlePointerMove = (h, f) => {
2807
+ this.lastMoveEvent = h, this.lastMoveEventInfo = oe(f, this.transformPagePoint), V.update(this.updatePoint, !0);
2808
+ }, this.handlePointerUp = (h, f) => {
2809
+ this.end();
2810
+ const { onEnd: d, onSessionEnd: p, resumeAnimation: m } = this.handlers;
2811
+ if (this.dragSnapToOrigin && m && m(), !(this.lastMoveEvent && this.lastMoveEventInfo))
2812
+ return;
2813
+ const y = ae(h.type === "pointercancel" ? this.lastMoveEventInfo : oe(f, this.transformPagePoint), this.history);
2814
+ this.startEvent && d && d(h, y), p && p(h, y);
2815
+ }, !Us(e))
2816
+ return;
2817
+ this.dragSnapToOrigin = o, this.handlers = n, this.transformPagePoint = s, this.contextWindow = i || window;
2818
+ const r = Yt(e), a = oe(r, this.transformPagePoint), { point: l } = a, { timestamp: u } = C;
2819
+ this.history = [{ ...l, timestamp: u }];
2820
+ const { onSessionStart: c } = n;
2821
+ c && c(e, ae(a, this.history)), this.removeListeners = $(K(this.contextWindow, "pointermove", this.handlePointerMove), K(this.contextWindow, "pointerup", this.handlePointerUp), K(this.contextWindow, "pointercancel", this.handlePointerUp));
2822
+ }
2823
+ updateHandlers(e) {
2824
+ this.handlers = e;
2825
+ }
2826
+ end() {
2827
+ this.removeListeners && this.removeListeners(), H(this.updatePoint);
2828
+ }
2829
+ }
2830
+ function oe(t, e) {
2831
+ return e ? { point: e(t.point) } : t;
2832
+ }
2833
+ function jn(t, e) {
2834
+ return { x: t.x - e.x, y: t.y - e.y };
2835
+ }
2836
+ function ae({ point: t }, e) {
2837
+ return {
2838
+ point: t,
2839
+ delta: jn(t, wi(e)),
2840
+ offset: jn(t, el(e)),
2841
+ velocity: nl(e, 0.1)
2842
+ };
2843
+ }
2844
+ function el(t) {
2845
+ return t[0];
2846
+ }
2847
+ function wi(t) {
2848
+ return t[t.length - 1];
2849
+ }
2850
+ function nl(t, e) {
2851
+ if (t.length < 2)
2852
+ return { x: 0, y: 0 };
2853
+ let n = t.length - 1, s = null;
2854
+ const i = wi(t);
2855
+ for (; n >= 0 && (s = t[n], !(i.timestamp - s.timestamp > W(e))); )
2856
+ n--;
2857
+ if (!s)
2858
+ return { x: 0, y: 0 };
2859
+ const o = G(i.timestamp - s.timestamp);
2860
+ if (o === 0)
2861
+ return { x: 0, y: 0 };
2862
+ const r = {
2863
+ x: (i.x - s.x) / o,
2864
+ y: (i.y - s.y) / o
2865
+ };
2866
+ return r.x === 1 / 0 && (r.x = 0), r.y === 1 / 0 && (r.y = 0), r;
2867
+ }
2868
+ function B(t) {
2869
+ return t.max - t.min;
2870
+ }
2871
+ function Se(t, e = 0, n = 0.01) {
2872
+ return Math.abs(t - e) <= n;
2873
+ }
2874
+ function In(t, e, n, s = 0.5) {
2875
+ t.origin = s, t.originPoint = w(e.min, e.max, t.origin), t.scale = B(n) / B(e), (Se(t.scale, 1, 1e-4) || isNaN(t.scale)) && (t.scale = 1), t.translate = w(n.min, n.max, t.origin) - t.originPoint, (Se(t.translate) || isNaN(t.translate)) && (t.translate = 0);
2876
+ }
2877
+ function Pt(t, e, n, s) {
2878
+ In(t.x, e.x, n.x, s ? s.originX : void 0), In(t.y, e.y, n.y, s ? s.originY : void 0);
2879
+ }
2880
+ function Nn(t, e, n) {
2881
+ t.min = n.min + e.min, t.max = t.min + B(e);
2882
+ }
2883
+ function sl(t, e, n) {
2884
+ Nn(t.x, e.x, n.x), Nn(t.y, e.y, n.y);
2885
+ }
2886
+ function Un(t, e, n) {
2887
+ t.min = e.min - n.min, t.max = t.min + B(e);
2888
+ }
2889
+ function bt(t, e, n) {
2890
+ Un(t.x, e.x, n.x), Un(t.y, e.y, n.y);
2891
+ }
2892
+ function il(t, { min: e, max: n }, s) {
2893
+ return e !== void 0 && t < e ? t = s ? w(e, t, s.min) : Math.max(t, e) : n !== void 0 && t > n && (t = s ? w(n, t, s.max) : Math.min(t, n)), t;
2894
+ }
2895
+ function _n(t, e, n) {
2896
+ return {
2897
+ min: e !== void 0 ? t.min + e : void 0,
2898
+ max: n !== void 0 ? t.max + n - (t.max - t.min) : void 0
2899
+ };
2900
+ }
2901
+ function rl(t, { top: e, left: n, bottom: s, right: i }) {
2902
+ return {
2903
+ x: _n(t.x, n, i),
2904
+ y: _n(t.y, e, s)
2905
+ };
2906
+ }
2907
+ function Kn(t, e) {
2908
+ let n = e.min - t.min, s = e.max - t.max;
2909
+ return e.max - e.min < t.max - t.min && ([n, s] = [s, n]), { min: n, max: s };
2910
+ }
2911
+ function ol(t, e) {
2912
+ return {
2913
+ x: Kn(t.x, e.x),
2914
+ y: Kn(t.y, e.y)
2915
+ };
2916
+ }
2917
+ function al(t, e) {
2918
+ let n = 0.5;
2919
+ const s = B(t), i = B(e);
2920
+ return i > s ? n = wt(e.min, e.max - s, t.min) : s > i && (n = wt(t.min, t.max - i, e.min)), Q(0, 1, n);
2921
+ }
2922
+ function ll(t, e) {
2923
+ const n = {};
2924
+ return e.min !== void 0 && (n.min = e.min - t.min), e.max !== void 0 && (n.max = e.max - t.min), n;
2925
+ }
2926
+ const Ve = 0.35;
2927
+ function cl(t = Ve) {
2928
+ return t === !1 ? t = 0 : t === !0 && (t = Ve), {
2929
+ x: $n(t, "left", "right"),
2930
+ y: $n(t, "top", "bottom")
2931
+ };
2932
+ }
2933
+ function $n(t, e, n) {
2934
+ return {
2935
+ min: Wn(t, e),
2936
+ max: Wn(t, n)
2937
+ };
2938
+ }
2939
+ function Wn(t, e) {
2940
+ return typeof t == "number" ? t : t[e] || 0;
2941
+ }
2942
+ const Gn = () => ({
2943
+ translate: 0,
2944
+ scale: 1,
2945
+ origin: 0,
2946
+ originPoint: 0
2947
+ }), ut = () => ({
2948
+ x: Gn(),
2949
+ y: Gn()
2950
+ }), Hn = () => ({ min: 0, max: 0 }), A = () => ({
2951
+ x: Hn(),
2952
+ y: Hn()
2953
+ });
2954
+ function I(t) {
2955
+ return [t("x"), t("y")];
2956
+ }
2957
+ function Ai({ top: t, left: e, right: n, bottom: s }) {
2958
+ return {
2959
+ x: { min: e, max: n },
2960
+ y: { min: t, max: s }
2961
+ };
2962
+ }
2963
+ function ul({ x: t, y: e }) {
2964
+ return { top: e.min, right: t.max, bottom: e.max, left: t.min };
2965
+ }
2966
+ function hl(t, e) {
2967
+ if (!e)
2968
+ return t;
2969
+ const n = e({ x: t.left, y: t.top }), s = e({ x: t.right, y: t.bottom });
2970
+ return {
2971
+ top: n.y,
2972
+ left: n.x,
2973
+ bottom: s.y,
2974
+ right: s.x
2975
+ };
2976
+ }
2977
+ function le(t) {
2978
+ return t === void 0 || t === 1;
2979
+ }
2980
+ function we({ scale: t, scaleX: e, scaleY: n }) {
2981
+ return !le(t) || !le(e) || !le(n);
2982
+ }
2983
+ function nt(t) {
2984
+ return we(t) || Ci(t) || t.z || t.rotate || t.rotateX || t.rotateY || t.skewX || t.skewY;
2985
+ }
2986
+ function Ci(t) {
2987
+ return zn(t.x) || zn(t.y);
2988
+ }
2989
+ function zn(t) {
2990
+ return t && t !== "0%";
2991
+ }
2992
+ function $t(t, e, n) {
2993
+ const s = t - n, i = e * s;
2994
+ return n + i;
2995
+ }
2996
+ function Yn(t, e, n, s, i) {
2997
+ return i !== void 0 && (t = $t(t, i, s)), $t(t, n, s) + e;
2998
+ }
2999
+ function Ae(t, e = 0, n = 1, s, i) {
3000
+ t.min = Yn(t.min, e, n, s, i), t.max = Yn(t.max, e, n, s, i);
3001
+ }
3002
+ function Di(t, { x: e, y: n }) {
3003
+ Ae(t.x, e.translate, e.scale, e.originPoint), Ae(t.y, n.translate, n.scale, n.originPoint);
3004
+ }
3005
+ function fl(t, e, n, s = !1) {
3006
+ const i = n.length;
3007
+ if (!i)
3008
+ return;
3009
+ e.x = e.y = 1;
3010
+ let o, r;
3011
+ for (let a = 0; a < i; a++) {
3012
+ o = n[a], r = o.projectionDelta;
3013
+ const l = o.instance;
3014
+ l && l.style && l.style.display === "contents" || (s && o.options.layoutScroll && o.scroll && o !== o.root && ht(t, {
3015
+ x: -o.scroll.offset.x,
3016
+ y: -o.scroll.offset.y
3017
+ }), r && (e.x *= r.x.scale, e.y *= r.y.scale, Di(t, r)), s && nt(o.latestValues) && ht(t, o.latestValues));
3018
+ }
3019
+ e.x = Xn(e.x), e.y = Xn(e.y);
3020
+ }
3021
+ function Xn(t) {
3022
+ return Number.isInteger(t) || t > 1.0000000000001 || t < 0.999999999999 ? t : 1;
3023
+ }
3024
+ function X(t, e) {
3025
+ t.min = t.min + e, t.max = t.max + e;
3026
+ }
3027
+ function qn(t, e, [n, s, i]) {
3028
+ const o = e[i] !== void 0 ? e[i] : 0.5, r = w(t.min, t.max, o);
3029
+ Ae(t, e[n], e[s], r, e.scale);
3030
+ }
3031
+ const dl = ["x", "scaleX", "originX"], pl = ["y", "scaleY", "originY"];
3032
+ function ht(t, e) {
3033
+ qn(t.x, e, dl), qn(t.y, e, pl);
3034
+ }
3035
+ function Mi(t, e) {
3036
+ return Ai(hl(t.getBoundingClientRect(), e));
3037
+ }
3038
+ function ml(t, e, n) {
3039
+ const s = Mi(t, n), { scroll: i } = e;
3040
+ return i && (X(s.x, i.offset.x), X(s.y, i.offset.y)), s;
3041
+ }
3042
+ const Ri = ({ current: t }) => t ? t.ownerDocument.defaultView : null, gl = /* @__PURE__ */ new WeakMap();
3043
+ class yl {
3044
+ constructor(e) {
3045
+ this.openGlobalLock = null, this.isDragging = !1, this.currentDirection = null, this.originPoint = { x: 0, y: 0 }, this.constraints = !1, this.hasMutatedConstraints = !1, this.elastic = A(), this.visualElement = e;
3046
+ }
3047
+ start(e, { snapToCursor: n = !1 } = {}) {
3048
+ const { presenceContext: s } = this.visualElement;
3049
+ if (s && s.isPresent === !1)
3050
+ return;
3051
+ const i = (c) => {
3052
+ const { dragSnapToOrigin: h } = this.getProps();
3053
+ h ? this.pauseAnimation() : this.stopAnimation(), n && this.snapToCursor(Yt(c, "page").point);
3054
+ }, o = (c, h) => {
3055
+ const { drag: f, dragPropagation: d, onDragStart: p } = this.getProps();
3056
+ if (f && !d && (this.openGlobalLock && this.openGlobalLock(), this.openGlobalLock = Ks(f), !this.openGlobalLock))
3057
+ return;
3058
+ this.isDragging = !0, this.currentDirection = null, this.resolveConstraints(), this.visualElement.projection && (this.visualElement.projection.isAnimationBlocked = !0, this.visualElement.projection.target = void 0), I((y) => {
3059
+ let v = this.getAxisMotionValue(y).get() || 0;
3060
+ if (N.test(v)) {
3061
+ const { projection: T } = this.visualElement;
3062
+ if (T && T.layout) {
3063
+ const g = T.layout.layoutBox[y];
3064
+ g && (v = B(g) * (parseFloat(v) / 100));
3065
+ }
3066
+ }
3067
+ this.originPoint[y] = v;
3068
+ }), p && V.postRender(() => p(c, h));
3069
+ const { animationState: m } = this.visualElement;
3070
+ m && m.setActive("whileDrag", !0);
3071
+ }, r = (c, h) => {
3072
+ const { dragPropagation: f, dragDirectionLock: d, onDirectionLock: p, onDrag: m } = this.getProps();
3073
+ if (!f && !this.openGlobalLock)
3074
+ return;
3075
+ const { offset: y } = h;
3076
+ if (d && this.currentDirection === null) {
3077
+ this.currentDirection = vl(y), this.currentDirection !== null && p && p(this.currentDirection);
3078
+ return;
3079
+ }
3080
+ this.updateAxis("x", h.point, y), this.updateAxis("y", h.point, y), this.visualElement.render(), m && m(c, h);
3081
+ }, a = (c, h) => this.stop(c, h), l = () => I((c) => {
3082
+ var h;
3083
+ return this.getAnimationState(c) === "paused" && ((h = this.getAxisMotionValue(c).animation) === null || h === void 0 ? void 0 : h.play());
3084
+ }), { dragSnapToOrigin: u } = this.getProps();
3085
+ this.panSession = new Vi(e, {
3086
+ onSessionStart: i,
3087
+ onStart: o,
3088
+ onMove: r,
3089
+ onSessionEnd: a,
3090
+ resumeAnimation: l
3091
+ }, {
3092
+ transformPagePoint: this.visualElement.getTransformPagePoint(),
3093
+ dragSnapToOrigin: u,
3094
+ contextWindow: Ri(this.visualElement)
3095
+ });
3096
+ }
3097
+ stop(e, n) {
3098
+ const s = this.isDragging;
3099
+ if (this.cancel(), !s)
3100
+ return;
3101
+ const { velocity: i } = n;
3102
+ this.startAnimation(i);
3103
+ const { onDragEnd: o } = this.getProps();
3104
+ o && V.postRender(() => o(e, n));
3105
+ }
3106
+ cancel() {
3107
+ this.isDragging = !1;
3108
+ const { projection: e, animationState: n } = this.visualElement;
3109
+ e && (e.isAnimationBlocked = !1), this.panSession && this.panSession.end(), this.panSession = void 0;
3110
+ const { dragPropagation: s } = this.getProps();
3111
+ !s && this.openGlobalLock && (this.openGlobalLock(), this.openGlobalLock = null), n && n.setActive("whileDrag", !1);
3112
+ }
3113
+ updateAxis(e, n, s) {
3114
+ const { drag: i } = this.getProps();
3115
+ if (!s || !Ft(e, i, this.currentDirection))
3116
+ return;
3117
+ const o = this.getAxisMotionValue(e);
3118
+ let r = this.originPoint[e] + s[e];
3119
+ this.constraints && this.constraints[e] && (r = il(r, this.constraints[e], this.elastic[e])), o.set(r);
3120
+ }
3121
+ resolveConstraints() {
3122
+ var e;
3123
+ const { dragConstraints: n, dragElastic: s } = this.getProps(), i = this.visualElement.projection && !this.visualElement.projection.layout ? this.visualElement.projection.measure(!1) : (e = this.visualElement.projection) === null || e === void 0 ? void 0 : e.layout, o = this.constraints;
3124
+ n && lt(n) ? this.constraints || (this.constraints = this.resolveRefConstraints()) : n && i ? this.constraints = rl(i.layoutBox, n) : this.constraints = !1, this.elastic = cl(s), o !== this.constraints && i && this.constraints && !this.hasMutatedConstraints && I((r) => {
3125
+ this.constraints !== !1 && this.getAxisMotionValue(r) && (this.constraints[r] = ll(i.layoutBox[r], this.constraints[r]));
3126
+ });
3127
+ }
3128
+ resolveRefConstraints() {
3129
+ const { dragConstraints: e, onMeasureDragConstraints: n } = this.getProps();
3130
+ if (!e || !lt(e))
3131
+ return !1;
3132
+ const s = e.current;
3133
+ Z(s !== null, "If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.");
3134
+ const { projection: i } = this.visualElement;
3135
+ if (!i || !i.layout)
3136
+ return !1;
3137
+ const o = ml(s, i.root, this.visualElement.getTransformPagePoint());
3138
+ let r = ol(i.layout.layoutBox, o);
3139
+ if (n) {
3140
+ const a = n(ul(r));
3141
+ this.hasMutatedConstraints = !!a, a && (r = Ai(a));
3142
+ }
3143
+ return r;
3144
+ }
3145
+ startAnimation(e) {
3146
+ const { drag: n, dragMomentum: s, dragElastic: i, dragTransition: o, dragSnapToOrigin: r, onDragTransitionEnd: a } = this.getProps(), l = this.constraints || {}, u = I((c) => {
3147
+ if (!Ft(c, n, this.currentDirection))
3148
+ return;
3149
+ let h = l && l[c] || {};
3150
+ r && (h = { min: 0, max: 0 });
3151
+ const f = i ? 200 : 1e6, d = i ? 40 : 1e7, p = {
3152
+ type: "inertia",
3153
+ velocity: s ? e[c] : 0,
3154
+ bounceStiffness: f,
3155
+ bounceDamping: d,
3156
+ timeConstant: 750,
3157
+ restDelta: 1,
3158
+ restSpeed: 10,
3159
+ ...o,
3160
+ ...h
3161
+ };
3162
+ return this.startAxisValueAnimation(c, p);
3163
+ });
3164
+ return Promise.all(u).then(a);
3165
+ }
3166
+ startAxisValueAnimation(e, n) {
3167
+ const s = this.getAxisMotionValue(e);
3168
+ return s.start(Je(e, s, 0, n, this.visualElement));
3169
+ }
3170
+ stopAnimation() {
3171
+ I((e) => this.getAxisMotionValue(e).stop());
3172
+ }
3173
+ pauseAnimation() {
3174
+ I((e) => {
3175
+ var n;
3176
+ return (n = this.getAxisMotionValue(e).animation) === null || n === void 0 ? void 0 : n.pause();
3177
+ });
3178
+ }
3179
+ getAnimationState(e) {
3180
+ var n;
3181
+ return (n = this.getAxisMotionValue(e).animation) === null || n === void 0 ? void 0 : n.state;
3182
+ }
3183
+ /**
3184
+ * Drag works differently depending on which props are provided.
3185
+ *
3186
+ * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.
3187
+ * - Otherwise, we apply the delta to the x/y motion values.
3188
+ */
3189
+ getAxisMotionValue(e) {
3190
+ const n = `_drag${e.toUpperCase()}`, s = this.visualElement.getProps(), i = s[n];
3191
+ return i || this.visualElement.getValue(e, (s.initial ? s.initial[e] : void 0) || 0);
3192
+ }
3193
+ snapToCursor(e) {
3194
+ I((n) => {
3195
+ const { drag: s } = this.getProps();
3196
+ if (!Ft(n, s, this.currentDirection))
3197
+ return;
3198
+ const { projection: i } = this.visualElement, o = this.getAxisMotionValue(n);
3199
+ if (i && i.layout) {
3200
+ const { min: r, max: a } = i.layout.layoutBox[n];
3201
+ o.set(e[n] - w(r, a, 0.5));
3202
+ }
3203
+ });
3204
+ }
3205
+ /**
3206
+ * When the viewport resizes we want to check if the measured constraints
3207
+ * have changed and, if so, reposition the element within those new constraints
3208
+ * relative to where it was before the resize.
3209
+ */
3210
+ scalePositionWithinConstraints() {
3211
+ if (!this.visualElement.current)
3212
+ return;
3213
+ const { drag: e, dragConstraints: n } = this.getProps(), { projection: s } = this.visualElement;
3214
+ if (!lt(n) || !s || !this.constraints)
3215
+ return;
3216
+ this.stopAnimation();
3217
+ const i = { x: 0, y: 0 };
3218
+ I((r) => {
3219
+ const a = this.getAxisMotionValue(r);
3220
+ if (a && this.constraints !== !1) {
3221
+ const l = a.get();
3222
+ i[r] = al({ min: l, max: l }, this.constraints[r]);
3223
+ }
3224
+ });
3225
+ const { transformTemplate: o } = this.visualElement.getProps();
3226
+ this.visualElement.current.style.transform = o ? o({}, "") : "none", s.root && s.root.updateScroll(), s.updateLayout(), this.resolveConstraints(), I((r) => {
3227
+ if (!Ft(r, e, null))
3228
+ return;
3229
+ const a = this.getAxisMotionValue(r), { min: l, max: u } = this.constraints[r];
3230
+ a.set(w(l, u, i[r]));
3231
+ });
3232
+ }
3233
+ addListeners() {
3234
+ if (!this.visualElement.current)
3235
+ return;
3236
+ gl.set(this.visualElement, this);
3237
+ const e = this.visualElement.current, n = K(e, "pointerdown", (l) => {
3238
+ const { drag: u, dragListener: c = !0 } = this.getProps();
3239
+ u && c && this.start(l);
3240
+ }), s = () => {
3241
+ const { dragConstraints: l } = this.getProps();
3242
+ lt(l) && l.current && (this.constraints = this.resolveRefConstraints());
3243
+ }, { projection: i } = this.visualElement, o = i.addEventListener("measure", s);
3244
+ i && !i.layout && (i.root && i.root.updateScroll(), i.updateLayout()), V.read(s);
3245
+ const r = _(window, "resize", () => this.scalePositionWithinConstraints()), a = i.addEventListener("didUpdate", ({ delta: l, hasLayoutChanged: u }) => {
3246
+ this.isDragging && u && (I((c) => {
3247
+ const h = this.getAxisMotionValue(c);
3248
+ h && (this.originPoint[c] += l[c].translate, h.set(h.get() + l[c].translate));
3249
+ }), this.visualElement.render());
3250
+ });
3251
+ return () => {
3252
+ r(), n(), o(), a && a();
3253
+ };
3254
+ }
3255
+ getProps() {
3256
+ const e = this.visualElement.getProps(), { drag: n = !1, dragDirectionLock: s = !1, dragPropagation: i = !1, dragConstraints: o = !1, dragElastic: r = Ve, dragMomentum: a = !0 } = e;
3257
+ return {
3258
+ ...e,
3259
+ drag: n,
3260
+ dragDirectionLock: s,
3261
+ dragPropagation: i,
3262
+ dragConstraints: o,
3263
+ dragElastic: r,
3264
+ dragMomentum: a
3265
+ };
3266
+ }
3267
+ }
3268
+ function Ft(t, e, n) {
3269
+ return (e === !0 || e === t) && (n === null || n === t);
3270
+ }
3271
+ function vl(t, e = 10) {
3272
+ let n = null;
3273
+ return Math.abs(t.y) > e ? n = "y" : Math.abs(t.x) > e && (n = "x"), n;
3274
+ }
3275
+ class xl extends tt {
3276
+ constructor(e) {
3277
+ super(e), this.removeGroupControls = D, this.removeListeners = D, this.controls = new yl(e);
3278
+ }
3279
+ mount() {
3280
+ const { dragControls: e } = this.node.getProps();
3281
+ e && (this.removeGroupControls = e.subscribe(this.controls)), this.removeListeners = this.controls.addListeners() || D;
3282
+ }
3283
+ unmount() {
3284
+ this.removeGroupControls(), this.removeListeners();
3285
+ }
3286
+ }
3287
+ const Zn = (t) => (e, n) => {
3288
+ t && V.postRender(() => t(e, n));
3289
+ };
3290
+ class Tl extends tt {
3291
+ constructor() {
3292
+ super(...arguments), this.removePointerDownListener = D;
3293
+ }
3294
+ onPointerDown(e) {
3295
+ this.session = new Vi(e, this.createPanHandlers(), {
3296
+ transformPagePoint: this.node.getTransformPagePoint(),
3297
+ contextWindow: Ri(this.node)
3298
+ });
3299
+ }
3300
+ createPanHandlers() {
3301
+ const { onPanSessionStart: e, onPanStart: n, onPan: s, onPanEnd: i } = this.node.getProps();
3302
+ return {
3303
+ onSessionStart: Zn(e),
3304
+ onStart: Zn(n),
3305
+ onMove: s,
3306
+ onEnd: (o, r) => {
3307
+ delete this.session, i && V.postRender(() => i(o, r));
3308
+ }
3309
+ };
3310
+ }
3311
+ mount() {
3312
+ this.removePointerDownListener = K(this.node.current, "pointerdown", (e) => this.onPointerDown(e));
3313
+ }
3314
+ update() {
3315
+ this.session && this.session.updateHandlers(this.createPanHandlers());
3316
+ }
3317
+ unmount() {
3318
+ this.removePointerDownListener(), this.session && this.session.end();
3319
+ }
3320
+ }
3321
+ function Pl() {
3322
+ const t = F(Me);
3323
+ if (t === null)
3324
+ return [!0, null];
3325
+ const { isPresent: e, onExitComplete: n, register: s } = t, i = Yi();
3326
+ return De(() => s(i), []), !e && n ? [!1, () => n && n(i)] : [!0];
3327
+ }
3328
+ const Ot = {
3329
+ /**
3330
+ * Global flag as to whether the tree has animated since the last time
3331
+ * we resized the window
3332
+ */
3333
+ hasAnimatedSinceResize: !0,
3334
+ /**
3335
+ * We set this to true once, on the first update. Any nodes added to the tree beyond that
3336
+ * update will be given a `data-projection-id` attribute.
3337
+ */
3338
+ hasEverUpdated: !1
3339
+ };
3340
+ function Qn(t, e) {
3341
+ return e.max === e.min ? 0 : t / (e.max - e.min) * 100;
3342
+ }
3343
+ const yt = {
3344
+ correct: (t, e) => {
3345
+ if (!e.target)
3346
+ return t;
3347
+ if (typeof t == "string")
3348
+ if (x.test(t))
3349
+ t = parseFloat(t);
3350
+ else
3351
+ return t;
3352
+ const n = Qn(t, e.target.x), s = Qn(t, e.target.y);
3353
+ return `${n}% ${s}%`;
3354
+ }
3355
+ }, bl = {
3356
+ correct: (t, { treeScale: e, projectionDelta: n }) => {
3357
+ const s = t, i = J.parse(t);
3358
+ if (i.length > 5)
3359
+ return s;
3360
+ const o = J.createTransformer(t), r = typeof i[0] != "number" ? 1 : 0, a = n.x.scale * e.x, l = n.y.scale * e.y;
3361
+ i[0 + r] /= a, i[1 + r] /= l;
3362
+ const u = w(a, l, 0.5);
3363
+ return typeof i[2 + r] == "number" && (i[2 + r] /= u), typeof i[3 + r] == "number" && (i[3 + r] /= u), o(i);
3364
+ }
3365
+ };
3366
+ class Sl extends Xi {
3367
+ /**
3368
+ * This only mounts projection nodes for components that
3369
+ * need measuring, we might want to do it for all components
3370
+ * in order to incorporate transforms
3371
+ */
3372
+ componentDidMount() {
3373
+ const { visualElement: e, layoutGroup: n, switchLayoutGroup: s, layoutId: i } = this.props, { projection: o } = e;
3374
+ yr(Vl), o && (n.group && n.group.add(o), s && s.register && i && s.register(o), o.root.didUpdate(), o.addEventListener("animationComplete", () => {
3375
+ this.safeToRemove();
3376
+ }), o.setOptions({
3377
+ ...o.options,
3378
+ onExitComplete: () => this.safeToRemove()
3379
+ })), Ot.hasEverUpdated = !0;
3380
+ }
3381
+ getSnapshotBeforeUpdate(e) {
3382
+ const { layoutDependency: n, visualElement: s, drag: i, isPresent: o } = this.props, r = s.projection;
3383
+ return r && (r.isPresent = o, i || e.layoutDependency !== n || n === void 0 ? r.willUpdate() : this.safeToRemove(), e.isPresent !== o && (o ? r.promote() : r.relegate() || V.postRender(() => {
3384
+ const a = r.getStack();
3385
+ (!a || !a.members.length) && this.safeToRemove();
3386
+ }))), null;
3387
+ }
3388
+ componentDidUpdate() {
3389
+ const { projection: e } = this.props.visualElement;
3390
+ e && (e.root.didUpdate(), Le.postRender(() => {
3391
+ !e.currentAnimation && e.isLead() && this.safeToRemove();
3392
+ }));
3393
+ }
3394
+ componentWillUnmount() {
3395
+ const { visualElement: e, layoutGroup: n, switchLayoutGroup: s } = this.props, { projection: i } = e;
3396
+ i && (i.scheduleCheckAfterUnmount(), n && n.group && n.group.remove(i), s && s.deregister && s.deregister(i));
3397
+ }
3398
+ safeToRemove() {
3399
+ const { safeToRemove: e } = this.props;
3400
+ e && e();
3401
+ }
3402
+ render() {
3403
+ return null;
3404
+ }
3405
+ }
3406
+ function Ei(t) {
3407
+ const [e, n] = Pl(), s = F(Cs);
3408
+ return fe.jsx(Sl, { ...t, layoutGroup: s, switchLayoutGroup: F(Vs), isPresent: e, safeToRemove: n });
3409
+ }
3410
+ const Vl = {
3411
+ borderRadius: {
3412
+ ...yt,
3413
+ applyTo: [
3414
+ "borderTopLeftRadius",
3415
+ "borderTopRightRadius",
3416
+ "borderBottomLeftRadius",
3417
+ "borderBottomRightRadius"
3418
+ ]
3419
+ },
3420
+ borderTopLeftRadius: yt,
3421
+ borderTopRightRadius: yt,
3422
+ borderBottomLeftRadius: yt,
3423
+ borderBottomRightRadius: yt,
3424
+ boxShadow: bl
3425
+ }, Li = ["TopLeft", "TopRight", "BottomLeft", "BottomRight"], wl = Li.length, Jn = (t) => typeof t == "string" ? parseFloat(t) : t, ts = (t) => typeof t == "number" || x.test(t);
3426
+ function Al(t, e, n, s, i, o) {
3427
+ i ? (t.opacity = w(
3428
+ 0,
3429
+ // TODO Reinstate this if only child
3430
+ n.opacity !== void 0 ? n.opacity : 1,
3431
+ Cl(s)
3432
+ ), t.opacityExit = w(e.opacity !== void 0 ? e.opacity : 1, 0, Dl(s))) : o && (t.opacity = w(e.opacity !== void 0 ? e.opacity : 1, n.opacity !== void 0 ? n.opacity : 1, s));
3433
+ for (let r = 0; r < wl; r++) {
3434
+ const a = `border${Li[r]}Radius`;
3435
+ let l = es(e, a), u = es(n, a);
3436
+ if (l === void 0 && u === void 0)
3437
+ continue;
3438
+ l || (l = 0), u || (u = 0), l === 0 || u === 0 || ts(l) === ts(u) ? (t[a] = Math.max(w(Jn(l), Jn(u), s), 0), (N.test(u) || N.test(l)) && (t[a] += "%")) : t[a] = u;
3439
+ }
3440
+ (e.rotate || n.rotate) && (t.rotate = w(e.rotate || 0, n.rotate || 0, s));
3441
+ }
3442
+ function es(t, e) {
3443
+ return t[e] !== void 0 ? t[e] : t.borderRadius;
3444
+ }
3445
+ const Cl = Fi(0, 0.5, mi), Dl = Fi(0.5, 0.95, D);
3446
+ function Fi(t, e, n) {
3447
+ return (s) => s < t ? 0 : s > e ? 1 : n(wt(t, e, s));
3448
+ }
3449
+ function ns(t, e) {
3450
+ t.min = e.min, t.max = e.max;
3451
+ }
3452
+ function j(t, e) {
3453
+ ns(t.x, e.x), ns(t.y, e.y);
3454
+ }
3455
+ function ss(t, e, n, s, i) {
3456
+ return t -= e, t = $t(t, 1 / n, s), i !== void 0 && (t = $t(t, 1 / i, s)), t;
3457
+ }
3458
+ function Ml(t, e = 0, n = 1, s = 0.5, i, o = t, r = t) {
3459
+ if (N.test(e) && (e = parseFloat(e), e = w(r.min, r.max, e / 100) - r.min), typeof e != "number")
3460
+ return;
3461
+ let a = w(o.min, o.max, s);
3462
+ t === o && (a -= e), t.min = ss(t.min, e, n, a, i), t.max = ss(t.max, e, n, a, i);
3463
+ }
3464
+ function is(t, e, [n, s, i], o, r) {
3465
+ Ml(t, e[n], e[s], e[i], e.scale, o, r);
3466
+ }
3467
+ const Rl = ["x", "scaleX", "originX"], El = ["y", "scaleY", "originY"];
3468
+ function rs(t, e, n, s) {
3469
+ is(t.x, e, Rl, n ? n.x : void 0, s ? s.x : void 0), is(t.y, e, El, n ? n.y : void 0, s ? s.y : void 0);
3470
+ }
3471
+ function os(t) {
3472
+ return t.translate === 0 && t.scale === 1;
3473
+ }
3474
+ function Bi(t) {
3475
+ return os(t.x) && os(t.y);
3476
+ }
3477
+ function Ll(t, e) {
3478
+ return t.x.min === e.x.min && t.x.max === e.x.max && t.y.min === e.y.min && t.y.max === e.y.max;
3479
+ }
3480
+ function ki(t, e) {
3481
+ return Math.round(t.x.min) === Math.round(e.x.min) && Math.round(t.x.max) === Math.round(e.x.max) && Math.round(t.y.min) === Math.round(e.y.min) && Math.round(t.y.max) === Math.round(e.y.max);
3482
+ }
3483
+ function as(t) {
3484
+ return B(t.x) / B(t.y);
3485
+ }
3486
+ class Fl {
3487
+ constructor() {
3488
+ this.members = [];
3489
+ }
3490
+ add(e) {
3491
+ tn(this.members, e), e.scheduleRender();
3492
+ }
3493
+ remove(e) {
3494
+ if (en(this.members, e), e === this.prevLead && (this.prevLead = void 0), e === this.lead) {
3495
+ const n = this.members[this.members.length - 1];
3496
+ n && this.promote(n);
3497
+ }
3498
+ }
3499
+ relegate(e) {
3500
+ const n = this.members.findIndex((i) => e === i);
3501
+ if (n === 0)
3502
+ return !1;
3503
+ let s;
3504
+ for (let i = n; i >= 0; i--) {
3505
+ const o = this.members[i];
3506
+ if (o.isPresent !== !1) {
3507
+ s = o;
3508
+ break;
3509
+ }
3510
+ }
3511
+ return s ? (this.promote(s), !0) : !1;
3512
+ }
3513
+ promote(e, n) {
3514
+ const s = this.lead;
3515
+ if (e !== s && (this.prevLead = s, this.lead = e, e.show(), s)) {
3516
+ s.instance && s.scheduleRender(), e.scheduleRender(), e.resumeFrom = s, n && (e.resumeFrom.preserveOpacity = !0), s.snapshot && (e.snapshot = s.snapshot, e.snapshot.latestValues = s.animationValues || s.latestValues), e.root && e.root.isUpdating && (e.isLayoutDirty = !0);
3517
+ const { crossfade: i } = e.options;
3518
+ i === !1 && s.hide();
3519
+ }
3520
+ }
3521
+ exitAnimationComplete() {
3522
+ this.members.forEach((e) => {
3523
+ const { options: n, resumingFrom: s } = e;
3524
+ n.onExitComplete && n.onExitComplete(), s && s.options.onExitComplete && s.options.onExitComplete();
3525
+ });
3526
+ }
3527
+ scheduleRender() {
3528
+ this.members.forEach((e) => {
3529
+ e.instance && e.scheduleRender(!1);
3530
+ });
3531
+ }
3532
+ /**
3533
+ * Clear any leads that have been removed this render to prevent them from being
3534
+ * used in future animations and to prevent memory leaks
3535
+ */
3536
+ removeLeadSnapshot() {
3537
+ this.lead && this.lead.snapshot && (this.lead.snapshot = void 0);
3538
+ }
3539
+ }
3540
+ function ls(t, e, n) {
3541
+ let s = "";
3542
+ const i = t.x.translate / e.x, o = t.y.translate / e.y, r = (n == null ? void 0 : n.z) || 0;
3543
+ if ((i || o || r) && (s = `translate3d(${i}px, ${o}px, ${r}px) `), (e.x !== 1 || e.y !== 1) && (s += `scale(${1 / e.x}, ${1 / e.y}) `), n) {
3544
+ const { transformPerspective: u, rotate: c, rotateX: h, rotateY: f, skewX: d, skewY: p } = n;
3545
+ u && (s = `perspective(${u}px) ${s}`), c && (s += `rotate(${c}deg) `), h && (s += `rotateX(${h}deg) `), f && (s += `rotateY(${f}deg) `), d && (s += `skewX(${d}deg) `), p && (s += `skewY(${p}deg) `);
3546
+ }
3547
+ const a = t.x.scale * e.x, l = t.y.scale * e.y;
3548
+ return (a !== 1 || l !== 1) && (s += `scale(${a}, ${l})`), s || "none";
3549
+ }
3550
+ const Bl = (t, e) => t.depth - e.depth;
3551
+ class kl {
3552
+ constructor() {
3553
+ this.children = [], this.isDirty = !1;
3554
+ }
3555
+ add(e) {
3556
+ tn(this.children, e), this.isDirty = !0;
3557
+ }
3558
+ remove(e) {
3559
+ en(this.children, e), this.isDirty = !0;
3560
+ }
3561
+ forEach(e) {
3562
+ this.isDirty && this.children.sort(Bl), this.isDirty = !1, this.children.forEach(e);
3563
+ }
3564
+ }
3565
+ function Ol(t, e) {
3566
+ const n = q.now(), s = ({ timestamp: i }) => {
3567
+ const o = i - n;
3568
+ o >= e && (H(s), t(o - e));
3569
+ };
3570
+ return V.read(s, !0), () => H(s);
3571
+ }
3572
+ function jl(t) {
3573
+ window.MotionDebug && window.MotionDebug.record(t);
3574
+ }
3575
+ function Il(t) {
3576
+ return t instanceof SVGElement && t.tagName !== "svg";
3577
+ }
3578
+ function Nl(t, e, n) {
3579
+ const s = E(t) ? t : At(t);
3580
+ return s.start(Je("", s, e, n)), s.animation;
3581
+ }
3582
+ const ce = ["", "X", "Y", "Z"], Ul = { visibility: "hidden" }, cs = 1e3;
3583
+ let _l = 0;
3584
+ const st = {
3585
+ type: "projectionFrame",
3586
+ totalNodes: 0,
3587
+ resolvedTargetDeltas: 0,
3588
+ recalculatedProjection: 0
3589
+ };
3590
+ function ue(t, e, n, s) {
3591
+ const { latestValues: i } = e;
3592
+ i[t] && (n[t] = i[t], e.setStaticValue(t, 0), s && (s[t] = 0));
3593
+ }
3594
+ function Oi(t) {
3595
+ if (t.hasCheckedOptimisedAppear = !0, t.root === t)
3596
+ return !1;
3597
+ const { visualElement: e } = t.options;
3598
+ return e ? bi(e) ? !0 : t.parent && !t.parent.hasCheckedOptimisedAppear ? Oi(t.parent) : !1 : !1;
3599
+ }
3600
+ function ji({ attachResizeListener: t, defaultParent: e, measureScroll: n, checkIsScrollRoot: s, resetTransform: i }) {
3601
+ return class {
3602
+ constructor(r = {}, a = e == null ? void 0 : e()) {
3603
+ this.id = _l++, this.animationId = 0, this.children = /* @__PURE__ */ new Set(), this.options = {}, this.isTreeAnimating = !1, this.isAnimationBlocked = !1, this.isLayoutDirty = !1, this.isProjectionDirty = !1, this.isSharedProjectionDirty = !1, this.isTransformDirty = !1, this.updateManuallyBlocked = !1, this.updateBlockedByResize = !1, this.isUpdating = !1, this.isSVG = !1, this.needsReset = !1, this.shouldResetTransform = !1, this.hasCheckedOptimisedAppear = !1, this.treeScale = { x: 1, y: 1 }, this.eventHandlers = /* @__PURE__ */ new Map(), this.hasTreeAnimated = !1, this.updateScheduled = !1, this.scheduleUpdate = () => this.update(), this.projectionUpdateScheduled = !1, this.checkUpdateFailed = () => {
3604
+ this.isUpdating && (this.isUpdating = !1, this.clearAllSnapshots());
3605
+ }, this.updateProjection = () => {
3606
+ this.projectionUpdateScheduled = !1, st.totalNodes = st.resolvedTargetDeltas = st.recalculatedProjection = 0, this.nodes.forEach(Wl), this.nodes.forEach(Xl), this.nodes.forEach(ql), this.nodes.forEach(Gl), jl(st);
3607
+ }, this.hasProjected = !1, this.isVisible = !0, this.animationProgress = 0, this.sharedNodes = /* @__PURE__ */ new Map(), this.latestValues = r, this.root = a ? a.root || a : this, this.path = a ? [...a.path, a] : [], this.parent = a, this.depth = a ? a.depth + 1 : 0;
3608
+ for (let l = 0; l < this.path.length; l++)
3609
+ this.path[l].shouldResetTransform = !0;
3610
+ this.root === this && (this.nodes = new kl());
3611
+ }
3612
+ addEventListener(r, a) {
3613
+ return this.eventHandlers.has(r) || this.eventHandlers.set(r, new nn()), this.eventHandlers.get(r).add(a);
3614
+ }
3615
+ notifyListeners(r, ...a) {
3616
+ const l = this.eventHandlers.get(r);
3617
+ l && l.notify(...a);
3618
+ }
3619
+ hasListeners(r) {
3620
+ return this.eventHandlers.has(r);
3621
+ }
3622
+ /**
3623
+ * Lifecycles
3624
+ */
3625
+ mount(r, a = this.root.hasTreeAnimated) {
3626
+ if (this.instance)
3627
+ return;
3628
+ this.isSVG = Il(r), this.instance = r;
3629
+ const { layoutId: l, layout: u, visualElement: c } = this.options;
3630
+ if (c && !c.current && c.mount(r), this.root.nodes.add(this), this.parent && this.parent.children.add(this), a && (u || l) && (this.isLayoutDirty = !0), t) {
3631
+ let h;
3632
+ const f = () => this.root.updateBlockedByResize = !1;
3633
+ t(r, () => {
3634
+ this.root.updateBlockedByResize = !0, h && h(), h = Ol(f, 250), Ot.hasAnimatedSinceResize && (Ot.hasAnimatedSinceResize = !1, this.nodes.forEach(hs));
3635
+ });
3636
+ }
3637
+ l && this.root.registerSharedNode(l, this), this.options.animate !== !1 && c && (l || u) && this.addEventListener("didUpdate", ({ delta: h, hasLayoutChanged: f, hasRelativeTargetChanged: d, layout: p }) => {
3638
+ if (this.isTreeAnimationBlocked()) {
3639
+ this.target = void 0, this.relativeTarget = void 0;
3640
+ return;
3641
+ }
3642
+ const m = this.options.transition || c.getDefaultTransition() || ec, { onLayoutAnimationStart: y, onLayoutAnimationComplete: v } = c.getProps(), T = !this.targetLayout || !ki(this.targetLayout, p) || d, g = !f && d;
3643
+ if (this.options.layoutRoot || this.resumeFrom && this.resumeFrom.instance || g || f && (T || !this.currentAnimation)) {
3644
+ this.resumeFrom && (this.resumingFrom = this.resumeFrom, this.resumingFrom.resumingFrom = void 0), this.setAnimationOrigin(h, g);
3645
+ const P = {
3646
+ ...We(m, "layout"),
3647
+ onPlay: y,
3648
+ onComplete: v
3649
+ };
3650
+ (c.shouldReduceMotion || this.options.layoutRoot) && (P.delay = 0, P.type = !1), this.startAnimation(P);
3651
+ } else
3652
+ f || hs(this), this.isLead() && this.options.onExitComplete && this.options.onExitComplete();
3653
+ this.targetLayout = p;
3654
+ });
3655
+ }
3656
+ unmount() {
3657
+ this.options.layoutId && this.willUpdate(), this.root.nodes.remove(this);
3658
+ const r = this.getStack();
3659
+ r && r.remove(this), this.parent && this.parent.children.delete(this), this.instance = void 0, H(this.updateProjection);
3660
+ }
3661
+ // only on the root
3662
+ blockUpdate() {
3663
+ this.updateManuallyBlocked = !0;
3664
+ }
3665
+ unblockUpdate() {
3666
+ this.updateManuallyBlocked = !1;
3667
+ }
3668
+ isUpdateBlocked() {
3669
+ return this.updateManuallyBlocked || this.updateBlockedByResize;
3670
+ }
3671
+ isTreeAnimationBlocked() {
3672
+ return this.isAnimationBlocked || this.parent && this.parent.isTreeAnimationBlocked() || !1;
3673
+ }
3674
+ // Note: currently only running on root node
3675
+ startUpdate() {
3676
+ this.isUpdateBlocked() || (this.isUpdating = !0, this.nodes && this.nodes.forEach(Zl), this.animationId++);
3677
+ }
3678
+ getTransformTemplate() {
3679
+ const { visualElement: r } = this.options;
3680
+ return r && r.getProps().transformTemplate;
3681
+ }
3682
+ willUpdate(r = !0) {
3683
+ if (this.root.hasTreeAnimated = !0, this.root.isUpdateBlocked()) {
3684
+ this.options.onExitComplete && this.options.onExitComplete();
3685
+ return;
3686
+ }
3687
+ if (window.HandoffCancelAllAnimations && Oi(this) && window.HandoffCancelAllAnimations(), !this.root.isUpdating && this.root.startUpdate(), this.isLayoutDirty)
3688
+ return;
3689
+ this.isLayoutDirty = !0;
3690
+ for (let c = 0; c < this.path.length; c++) {
3691
+ const h = this.path[c];
3692
+ h.shouldResetTransform = !0, h.updateScroll("snapshot"), h.options.layoutRoot && h.willUpdate(!1);
3693
+ }
3694
+ const { layoutId: a, layout: l } = this.options;
3695
+ if (a === void 0 && !l)
3696
+ return;
3697
+ const u = this.getTransformTemplate();
3698
+ this.prevTransformTemplateValue = u ? u(this.latestValues, "") : void 0, this.updateSnapshot(), r && this.notifyListeners("willUpdate");
3699
+ }
3700
+ update() {
3701
+ if (this.updateScheduled = !1, this.isUpdateBlocked()) {
3702
+ this.unblockUpdate(), this.clearAllSnapshots(), this.nodes.forEach(us);
3703
+ return;
3704
+ }
3705
+ this.isUpdating || this.nodes.forEach(zl), this.isUpdating = !1, this.nodes.forEach(Yl), this.nodes.forEach(Kl), this.nodes.forEach($l), this.clearAllSnapshots();
3706
+ const a = q.now();
3707
+ C.delta = Q(0, 1e3 / 60, a - C.timestamp), C.timestamp = a, C.isProcessing = !0, Jt.update.process(C), Jt.preRender.process(C), Jt.render.process(C), C.isProcessing = !1;
3708
+ }
3709
+ didUpdate() {
3710
+ this.updateScheduled || (this.updateScheduled = !0, Le.read(this.scheduleUpdate));
3711
+ }
3712
+ clearAllSnapshots() {
3713
+ this.nodes.forEach(Hl), this.sharedNodes.forEach(Ql);
3714
+ }
3715
+ scheduleUpdateProjection() {
3716
+ this.projectionUpdateScheduled || (this.projectionUpdateScheduled = !0, V.preRender(this.updateProjection, !1, !0));
3717
+ }
3718
+ scheduleCheckAfterUnmount() {
3719
+ V.postRender(() => {
3720
+ this.isLayoutDirty ? this.root.didUpdate() : this.root.checkUpdateFailed();
3721
+ });
3722
+ }
3723
+ /**
3724
+ * Update measurements
3725
+ */
3726
+ updateSnapshot() {
3727
+ this.snapshot || !this.instance || (this.snapshot = this.measure());
3728
+ }
3729
+ updateLayout() {
3730
+ if (!this.instance || (this.updateScroll(), !(this.options.alwaysMeasureLayout && this.isLead()) && !this.isLayoutDirty))
3731
+ return;
3732
+ if (this.resumeFrom && !this.resumeFrom.instance)
3733
+ for (let l = 0; l < this.path.length; l++)
3734
+ this.path[l].updateScroll();
3735
+ const r = this.layout;
3736
+ this.layout = this.measure(!1), this.layoutCorrected = A(), this.isLayoutDirty = !1, this.projectionDelta = void 0, this.notifyListeners("measure", this.layout.layoutBox);
3737
+ const { visualElement: a } = this.options;
3738
+ a && a.notify("LayoutMeasure", this.layout.layoutBox, r ? r.layoutBox : void 0);
3739
+ }
3740
+ updateScroll(r = "measure") {
3741
+ let a = !!(this.options.layoutScroll && this.instance);
3742
+ this.scroll && this.scroll.animationId === this.root.animationId && this.scroll.phase === r && (a = !1), a && (this.scroll = {
3743
+ animationId: this.root.animationId,
3744
+ phase: r,
3745
+ isRoot: s(this.instance),
3746
+ offset: n(this.instance)
3747
+ });
3748
+ }
3749
+ resetTransform() {
3750
+ if (!i)
3751
+ return;
3752
+ const r = this.isLayoutDirty || this.shouldResetTransform || this.options.alwaysMeasureLayout, a = this.projectionDelta && !Bi(this.projectionDelta), l = this.getTransformTemplate(), u = l ? l(this.latestValues, "") : void 0, c = u !== this.prevTransformTemplateValue;
3753
+ r && (a || nt(this.latestValues) || c) && (i(this.instance, u), this.shouldResetTransform = !1, this.scheduleRender());
3754
+ }
3755
+ measure(r = !0) {
3756
+ const a = this.measurePageBox();
3757
+ let l = this.removeElementScroll(a);
3758
+ return r && (l = this.removeTransform(l)), nc(l), {
3759
+ animationId: this.root.animationId,
3760
+ measuredBox: a,
3761
+ layoutBox: l,
3762
+ latestValues: {},
3763
+ source: this.id
3764
+ };
3765
+ }
3766
+ measurePageBox() {
3767
+ const { visualElement: r } = this.options;
3768
+ if (!r)
3769
+ return A();
3770
+ const a = r.measureViewportBox(), { scroll: l } = this.root;
3771
+ return l && (X(a.x, l.offset.x), X(a.y, l.offset.y)), a;
3772
+ }
3773
+ removeElementScroll(r) {
3774
+ const a = A();
3775
+ j(a, r);
3776
+ for (let l = 0; l < this.path.length; l++) {
3777
+ const u = this.path[l], { scroll: c, options: h } = u;
3778
+ if (u !== this.root && c && h.layoutScroll) {
3779
+ if (c.isRoot) {
3780
+ j(a, r);
3781
+ const { scroll: f } = this.root;
3782
+ f && (X(a.x, -f.offset.x), X(a.y, -f.offset.y));
3783
+ }
3784
+ X(a.x, c.offset.x), X(a.y, c.offset.y);
3785
+ }
3786
+ }
3787
+ return a;
3788
+ }
3789
+ applyTransform(r, a = !1) {
3790
+ const l = A();
3791
+ j(l, r);
3792
+ for (let u = 0; u < this.path.length; u++) {
3793
+ const c = this.path[u];
3794
+ !a && c.options.layoutScroll && c.scroll && c !== c.root && ht(l, {
3795
+ x: -c.scroll.offset.x,
3796
+ y: -c.scroll.offset.y
3797
+ }), nt(c.latestValues) && ht(l, c.latestValues);
3798
+ }
3799
+ return nt(this.latestValues) && ht(l, this.latestValues), l;
3800
+ }
3801
+ removeTransform(r) {
3802
+ const a = A();
3803
+ j(a, r);
3804
+ for (let l = 0; l < this.path.length; l++) {
3805
+ const u = this.path[l];
3806
+ if (!u.instance || !nt(u.latestValues))
3807
+ continue;
3808
+ we(u.latestValues) && u.updateSnapshot();
3809
+ const c = A(), h = u.measurePageBox();
3810
+ j(c, h), rs(a, u.latestValues, u.snapshot ? u.snapshot.layoutBox : void 0, c);
3811
+ }
3812
+ return nt(this.latestValues) && rs(a, this.latestValues), a;
3813
+ }
3814
+ setTargetDelta(r) {
3815
+ this.targetDelta = r, this.root.scheduleUpdateProjection(), this.isProjectionDirty = !0;
3816
+ }
3817
+ setOptions(r) {
3818
+ this.options = {
3819
+ ...this.options,
3820
+ ...r,
3821
+ crossfade: r.crossfade !== void 0 ? r.crossfade : !0
3822
+ };
3823
+ }
3824
+ clearMeasurements() {
3825
+ this.scroll = void 0, this.layout = void 0, this.snapshot = void 0, this.prevTransformTemplateValue = void 0, this.targetDelta = void 0, this.target = void 0, this.isLayoutDirty = !1;
3826
+ }
3827
+ forceRelativeParentToResolveTarget() {
3828
+ this.relativeParent && this.relativeParent.resolvedRelativeTargetAt !== C.timestamp && this.relativeParent.resolveTargetDelta(!0);
3829
+ }
3830
+ resolveTargetDelta(r = !1) {
3831
+ var a;
3832
+ const l = this.getLead();
3833
+ this.isProjectionDirty || (this.isProjectionDirty = l.isProjectionDirty), this.isTransformDirty || (this.isTransformDirty = l.isTransformDirty), this.isSharedProjectionDirty || (this.isSharedProjectionDirty = l.isSharedProjectionDirty);
3834
+ const u = !!this.resumingFrom || this !== l;
3835
+ if (!(r || u && this.isSharedProjectionDirty || this.isProjectionDirty || !((a = this.parent) === null || a === void 0) && a.isProjectionDirty || this.attemptToResolveRelativeTarget))
3836
+ return;
3837
+ const { layout: h, layoutId: f } = this.options;
3838
+ if (!(!this.layout || !(h || f))) {
3839
+ if (this.resolvedRelativeTargetAt = C.timestamp, !this.targetDelta && !this.relativeTarget) {
3840
+ const d = this.getClosestProjectingParent();
3841
+ d && d.layout && this.animationProgress !== 1 ? (this.relativeParent = d, this.forceRelativeParentToResolveTarget(), this.relativeTarget = A(), this.relativeTargetOrigin = A(), bt(this.relativeTargetOrigin, this.layout.layoutBox, d.layout.layoutBox), j(this.relativeTarget, this.relativeTargetOrigin)) : this.relativeParent = this.relativeTarget = void 0;
3842
+ }
3843
+ if (!(!this.relativeTarget && !this.targetDelta)) {
3844
+ if (this.target || (this.target = A(), this.targetWithTransforms = A()), this.relativeTarget && this.relativeTargetOrigin && this.relativeParent && this.relativeParent.target ? (this.forceRelativeParentToResolveTarget(), sl(this.target, this.relativeTarget, this.relativeParent.target)) : this.targetDelta ? (this.resumingFrom ? this.target = this.applyTransform(this.layout.layoutBox) : j(this.target, this.layout.layoutBox), Di(this.target, this.targetDelta)) : j(this.target, this.layout.layoutBox), this.attemptToResolveRelativeTarget) {
3845
+ this.attemptToResolveRelativeTarget = !1;
3846
+ const d = this.getClosestProjectingParent();
3847
+ d && !!d.resumingFrom == !!this.resumingFrom && !d.options.layoutScroll && d.target && this.animationProgress !== 1 ? (this.relativeParent = d, this.forceRelativeParentToResolveTarget(), this.relativeTarget = A(), this.relativeTargetOrigin = A(), bt(this.relativeTargetOrigin, this.target, d.target), j(this.relativeTarget, this.relativeTargetOrigin)) : this.relativeParent = this.relativeTarget = void 0;
3848
+ }
3849
+ st.resolvedTargetDeltas++;
3850
+ }
3851
+ }
3852
+ }
3853
+ getClosestProjectingParent() {
3854
+ if (!(!this.parent || we(this.parent.latestValues) || Ci(this.parent.latestValues)))
3855
+ return this.parent.isProjecting() ? this.parent : this.parent.getClosestProjectingParent();
3856
+ }
3857
+ isProjecting() {
3858
+ return !!((this.relativeTarget || this.targetDelta || this.options.layoutRoot) && this.layout);
3859
+ }
3860
+ calcProjection() {
3861
+ var r;
3862
+ const a = this.getLead(), l = !!this.resumingFrom || this !== a;
3863
+ let u = !0;
3864
+ if ((this.isProjectionDirty || !((r = this.parent) === null || r === void 0) && r.isProjectionDirty) && (u = !1), l && (this.isSharedProjectionDirty || this.isTransformDirty) && (u = !1), this.resolvedRelativeTargetAt === C.timestamp && (u = !1), u)
3865
+ return;
3866
+ const { layout: c, layoutId: h } = this.options;
3867
+ if (this.isTreeAnimating = !!(this.parent && this.parent.isTreeAnimating || this.currentAnimation || this.pendingAnimation), this.isTreeAnimating || (this.targetDelta = this.relativeTarget = void 0), !this.layout || !(c || h))
3868
+ return;
3869
+ j(this.layoutCorrected, this.layout.layoutBox);
3870
+ const f = this.treeScale.x, d = this.treeScale.y;
3871
+ fl(this.layoutCorrected, this.treeScale, this.path, l), a.layout && !a.target && (this.treeScale.x !== 1 || this.treeScale.y !== 1) && (a.target = a.layout.layoutBox, a.targetWithTransforms = A());
3872
+ const { target: p } = a;
3873
+ if (!p) {
3874
+ this.projectionTransform && (this.projectionDelta = ut(), this.projectionTransform = "none", this.scheduleRender());
3875
+ return;
3876
+ }
3877
+ this.projectionDelta || (this.projectionDelta = ut(), this.projectionDeltaWithTransform = ut());
3878
+ const m = this.projectionTransform;
3879
+ Pt(this.projectionDelta, this.layoutCorrected, p, this.latestValues), this.projectionTransform = ls(this.projectionDelta, this.treeScale), (this.projectionTransform !== m || this.treeScale.x !== f || this.treeScale.y !== d) && (this.hasProjected = !0, this.scheduleRender(), this.notifyListeners("projectionUpdate", p)), st.recalculatedProjection++;
3880
+ }
3881
+ hide() {
3882
+ this.isVisible = !1;
3883
+ }
3884
+ show() {
3885
+ this.isVisible = !0;
3886
+ }
3887
+ scheduleRender(r = !0) {
3888
+ if (this.options.scheduleRender && this.options.scheduleRender(), r) {
3889
+ const a = this.getStack();
3890
+ a && a.scheduleRender();
3891
+ }
3892
+ this.resumingFrom && !this.resumingFrom.instance && (this.resumingFrom = void 0);
3893
+ }
3894
+ setAnimationOrigin(r, a = !1) {
3895
+ const l = this.snapshot, u = l ? l.latestValues : {}, c = { ...this.latestValues }, h = ut();
3896
+ (!this.relativeParent || !this.relativeParent.options.layoutRoot) && (this.relativeTarget = this.relativeTargetOrigin = void 0), this.attemptToResolveRelativeTarget = !a;
3897
+ const f = A(), d = l ? l.source : void 0, p = this.layout ? this.layout.source : void 0, m = d !== p, y = this.getStack(), v = !y || y.members.length <= 1, T = !!(m && !v && this.options.crossfade === !0 && !this.path.some(tc));
3898
+ this.animationProgress = 0;
3899
+ let g;
3900
+ this.mixTargetDelta = (P) => {
3901
+ const S = P / 1e3;
3902
+ fs(h.x, r.x, S), fs(h.y, r.y, S), this.setTargetDelta(h), this.relativeTarget && this.relativeTargetOrigin && this.layout && this.relativeParent && this.relativeParent.layout && (bt(f, this.layout.layoutBox, this.relativeParent.layout.layoutBox), Jl(this.relativeTarget, this.relativeTargetOrigin, f, S), g && Ll(this.relativeTarget, g) && (this.isProjectionDirty = !1), g || (g = A()), j(g, this.relativeTarget)), m && (this.animationValues = c, Al(c, u, this.latestValues, S, T, v)), this.root.scheduleUpdateProjection(), this.scheduleRender(), this.animationProgress = S;
3903
+ }, this.mixTargetDelta(this.options.layoutRoot ? 1e3 : 0);
3904
+ }
3905
+ startAnimation(r) {
3906
+ this.notifyListeners("animationStart"), this.currentAnimation && this.currentAnimation.stop(), this.resumingFrom && this.resumingFrom.currentAnimation && this.resumingFrom.currentAnimation.stop(), this.pendingAnimation && (H(this.pendingAnimation), this.pendingAnimation = void 0), this.pendingAnimation = V.update(() => {
3907
+ Ot.hasAnimatedSinceResize = !0, this.currentAnimation = Nl(0, cs, {
3908
+ ...r,
3909
+ onUpdate: (a) => {
3910
+ this.mixTargetDelta(a), r.onUpdate && r.onUpdate(a);
3911
+ },
3912
+ onComplete: () => {
3913
+ r.onComplete && r.onComplete(), this.completeAnimation();
3914
+ }
3915
+ }), this.resumingFrom && (this.resumingFrom.currentAnimation = this.currentAnimation), this.pendingAnimation = void 0;
3916
+ });
3917
+ }
3918
+ completeAnimation() {
3919
+ this.resumingFrom && (this.resumingFrom.currentAnimation = void 0, this.resumingFrom.preserveOpacity = void 0);
3920
+ const r = this.getStack();
3921
+ r && r.exitAnimationComplete(), this.resumingFrom = this.currentAnimation = this.animationValues = void 0, this.notifyListeners("animationComplete");
3922
+ }
3923
+ finishAnimation() {
3924
+ this.currentAnimation && (this.mixTargetDelta && this.mixTargetDelta(cs), this.currentAnimation.stop()), this.completeAnimation();
3925
+ }
3926
+ applyTransformsToTarget() {
3927
+ const r = this.getLead();
3928
+ let { targetWithTransforms: a, target: l, layout: u, latestValues: c } = r;
3929
+ if (!(!a || !l || !u)) {
3930
+ if (this !== r && this.layout && u && Ii(this.options.animationType, this.layout.layoutBox, u.layoutBox)) {
3931
+ l = this.target || A();
3932
+ const h = B(this.layout.layoutBox.x);
3933
+ l.x.min = r.target.x.min, l.x.max = l.x.min + h;
3934
+ const f = B(this.layout.layoutBox.y);
3935
+ l.y.min = r.target.y.min, l.y.max = l.y.min + f;
3936
+ }
3937
+ j(a, l), ht(a, c), Pt(this.projectionDeltaWithTransform, this.layoutCorrected, a, c);
3938
+ }
3939
+ }
3940
+ registerSharedNode(r, a) {
3941
+ this.sharedNodes.has(r) || this.sharedNodes.set(r, new Fl()), this.sharedNodes.get(r).add(a);
3942
+ const u = a.options.initialPromotionConfig;
3943
+ a.promote({
3944
+ transition: u ? u.transition : void 0,
3945
+ preserveFollowOpacity: u && u.shouldPreserveFollowOpacity ? u.shouldPreserveFollowOpacity(a) : void 0
3946
+ });
3947
+ }
3948
+ isLead() {
3949
+ const r = this.getStack();
3950
+ return r ? r.lead === this : !0;
3951
+ }
3952
+ getLead() {
3953
+ var r;
3954
+ const { layoutId: a } = this.options;
3955
+ return a ? ((r = this.getStack()) === null || r === void 0 ? void 0 : r.lead) || this : this;
3956
+ }
3957
+ getPrevLead() {
3958
+ var r;
3959
+ const { layoutId: a } = this.options;
3960
+ return a ? (r = this.getStack()) === null || r === void 0 ? void 0 : r.prevLead : void 0;
3961
+ }
3962
+ getStack() {
3963
+ const { layoutId: r } = this.options;
3964
+ if (r)
3965
+ return this.root.sharedNodes.get(r);
3966
+ }
3967
+ promote({ needsReset: r, transition: a, preserveFollowOpacity: l } = {}) {
3968
+ const u = this.getStack();
3969
+ u && u.promote(this, l), r && (this.projectionDelta = void 0, this.needsReset = !0), a && this.setOptions({ transition: a });
3970
+ }
3971
+ relegate() {
3972
+ const r = this.getStack();
3973
+ return r ? r.relegate(this) : !1;
3974
+ }
3975
+ resetSkewAndRotation() {
3976
+ const { visualElement: r } = this.options;
3977
+ if (!r)
3978
+ return;
3979
+ let a = !1;
3980
+ const { latestValues: l } = r;
3981
+ if ((l.z || l.rotate || l.rotateX || l.rotateY || l.rotateZ || l.skewX || l.skewY) && (a = !0), !a)
3982
+ return;
3983
+ const u = {};
3984
+ l.z && ue("z", r, u, this.animationValues);
3985
+ for (let c = 0; c < ce.length; c++)
3986
+ ue(`rotate${ce[c]}`, r, u, this.animationValues), ue(`skew${ce[c]}`, r, u, this.animationValues);
3987
+ r.render();
3988
+ for (const c in u)
3989
+ r.setStaticValue(c, u[c]), this.animationValues && (this.animationValues[c] = u[c]);
3990
+ r.scheduleRender();
3991
+ }
3992
+ getProjectionStyles(r) {
3993
+ var a, l;
3994
+ if (!this.instance || this.isSVG)
3995
+ return;
3996
+ if (!this.isVisible)
3997
+ return Ul;
3998
+ const u = {
3999
+ visibility: ""
4000
+ }, c = this.getTransformTemplate();
4001
+ if (this.needsReset)
4002
+ return this.needsReset = !1, u.opacity = "", u.pointerEvents = Bt(r == null ? void 0 : r.pointerEvents) || "", u.transform = c ? c(this.latestValues, "") : "none", u;
4003
+ const h = this.getLead();
4004
+ if (!this.projectionDelta || !this.layout || !h.target) {
4005
+ const m = {};
4006
+ return this.options.layoutId && (m.opacity = this.latestValues.opacity !== void 0 ? this.latestValues.opacity : 1, m.pointerEvents = Bt(r == null ? void 0 : r.pointerEvents) || ""), this.hasProjected && !nt(this.latestValues) && (m.transform = c ? c({}, "") : "none", this.hasProjected = !1), m;
4007
+ }
4008
+ const f = h.animationValues || h.latestValues;
4009
+ this.applyTransformsToTarget(), u.transform = ls(this.projectionDeltaWithTransform, this.treeScale, f), c && (u.transform = c(f, u.transform));
4010
+ const { x: d, y: p } = this.projectionDelta;
4011
+ u.transformOrigin = `${d.origin * 100}% ${p.origin * 100}% 0`, h.animationValues ? u.opacity = h === this ? (l = (a = f.opacity) !== null && a !== void 0 ? a : this.latestValues.opacity) !== null && l !== void 0 ? l : 1 : this.preserveOpacity ? this.latestValues.opacity : f.opacityExit : u.opacity = h === this ? f.opacity !== void 0 ? f.opacity : "" : f.opacityExit !== void 0 ? f.opacityExit : 0;
4012
+ for (const m in jt) {
4013
+ if (f[m] === void 0)
4014
+ continue;
4015
+ const { correct: y, applyTo: v } = jt[m], T = u.transform === "none" ? f[m] : y(f[m], h);
4016
+ if (v) {
4017
+ const g = v.length;
4018
+ for (let P = 0; P < g; P++)
4019
+ u[v[P]] = T;
4020
+ } else
4021
+ u[m] = T;
4022
+ }
4023
+ return this.options.layoutId && (u.pointerEvents = h === this ? Bt(r == null ? void 0 : r.pointerEvents) || "" : "none"), u;
4024
+ }
4025
+ clearSnapshot() {
4026
+ this.resumeFrom = this.snapshot = void 0;
4027
+ }
4028
+ // Only run on root
4029
+ resetTree() {
4030
+ this.root.nodes.forEach((r) => {
4031
+ var a;
4032
+ return (a = r.currentAnimation) === null || a === void 0 ? void 0 : a.stop();
4033
+ }), this.root.nodes.forEach(us), this.root.sharedNodes.clear();
4034
+ }
4035
+ };
4036
+ }
4037
+ function Kl(t) {
4038
+ t.updateLayout();
4039
+ }
4040
+ function $l(t) {
4041
+ var e;
4042
+ const n = ((e = t.resumeFrom) === null || e === void 0 ? void 0 : e.snapshot) || t.snapshot;
4043
+ if (t.isLead() && t.layout && n && t.hasListeners("didUpdate")) {
4044
+ const { layoutBox: s, measuredBox: i } = t.layout, { animationType: o } = t.options, r = n.source !== t.layout.source;
4045
+ o === "size" ? I((h) => {
4046
+ const f = r ? n.measuredBox[h] : n.layoutBox[h], d = B(f);
4047
+ f.min = s[h].min, f.max = f.min + d;
4048
+ }) : Ii(o, n.layoutBox, s) && I((h) => {
4049
+ const f = r ? n.measuredBox[h] : n.layoutBox[h], d = B(s[h]);
4050
+ f.max = f.min + d, t.relativeTarget && !t.currentAnimation && (t.isProjectionDirty = !0, t.relativeTarget[h].max = t.relativeTarget[h].min + d);
4051
+ });
4052
+ const a = ut();
4053
+ Pt(a, s, n.layoutBox);
4054
+ const l = ut();
4055
+ r ? Pt(l, t.applyTransform(i, !0), n.measuredBox) : Pt(l, s, n.layoutBox);
4056
+ const u = !Bi(a);
4057
+ let c = !1;
4058
+ if (!t.resumeFrom) {
4059
+ const h = t.getClosestProjectingParent();
4060
+ if (h && !h.resumeFrom) {
4061
+ const { snapshot: f, layout: d } = h;
4062
+ if (f && d) {
4063
+ const p = A();
4064
+ bt(p, n.layoutBox, f.layoutBox);
4065
+ const m = A();
4066
+ bt(m, s, d.layoutBox), ki(p, m) || (c = !0), h.options.layoutRoot && (t.relativeTarget = m, t.relativeTargetOrigin = p, t.relativeParent = h);
4067
+ }
4068
+ }
4069
+ }
4070
+ t.notifyListeners("didUpdate", {
4071
+ layout: s,
4072
+ snapshot: n,
4073
+ delta: l,
4074
+ layoutDelta: a,
4075
+ hasLayoutChanged: u,
4076
+ hasRelativeTargetChanged: c
4077
+ });
4078
+ } else if (t.isLead()) {
4079
+ const { onExitComplete: s } = t.options;
4080
+ s && s();
4081
+ }
4082
+ t.options.transition = void 0;
4083
+ }
4084
+ function Wl(t) {
4085
+ st.totalNodes++, t.parent && (t.isProjecting() || (t.isProjectionDirty = t.parent.isProjectionDirty), t.isSharedProjectionDirty || (t.isSharedProjectionDirty = !!(t.isProjectionDirty || t.parent.isProjectionDirty || t.parent.isSharedProjectionDirty)), t.isTransformDirty || (t.isTransformDirty = t.parent.isTransformDirty));
4086
+ }
4087
+ function Gl(t) {
4088
+ t.isProjectionDirty = t.isSharedProjectionDirty = t.isTransformDirty = !1;
4089
+ }
4090
+ function Hl(t) {
4091
+ t.clearSnapshot();
4092
+ }
4093
+ function us(t) {
4094
+ t.clearMeasurements();
4095
+ }
4096
+ function zl(t) {
4097
+ t.isLayoutDirty = !1;
4098
+ }
4099
+ function Yl(t) {
4100
+ const { visualElement: e } = t.options;
4101
+ e && e.getProps().onBeforeLayoutMeasure && e.notify("BeforeLayoutMeasure"), t.resetTransform();
4102
+ }
4103
+ function hs(t) {
4104
+ t.finishAnimation(), t.targetDelta = t.relativeTarget = t.target = void 0, t.isProjectionDirty = !0;
4105
+ }
4106
+ function Xl(t) {
4107
+ t.resolveTargetDelta();
4108
+ }
4109
+ function ql(t) {
4110
+ t.calcProjection();
4111
+ }
4112
+ function Zl(t) {
4113
+ t.resetSkewAndRotation();
4114
+ }
4115
+ function Ql(t) {
4116
+ t.removeLeadSnapshot();
4117
+ }
4118
+ function fs(t, e, n) {
4119
+ t.translate = w(e.translate, 0, n), t.scale = w(e.scale, 1, n), t.origin = e.origin, t.originPoint = e.originPoint;
4120
+ }
4121
+ function ds(t, e, n, s) {
4122
+ t.min = w(e.min, n.min, s), t.max = w(e.max, n.max, s);
4123
+ }
4124
+ function Jl(t, e, n, s) {
4125
+ ds(t.x, e.x, n.x, s), ds(t.y, e.y, n.y, s);
4126
+ }
4127
+ function tc(t) {
4128
+ return t.animationValues && t.animationValues.opacityExit !== void 0;
4129
+ }
4130
+ const ec = {
4131
+ duration: 0.45,
4132
+ ease: [0.4, 0, 0.1, 1]
4133
+ }, ps = (t) => typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().includes(t), ms = ps("applewebkit/") && !ps("chrome/") ? Math.round : D;
4134
+ function gs(t) {
4135
+ t.min = ms(t.min), t.max = ms(t.max);
4136
+ }
4137
+ function nc(t) {
4138
+ gs(t.x), gs(t.y);
4139
+ }
4140
+ function Ii(t, e, n) {
4141
+ return t === "position" || t === "preserve-aspect" && !Se(as(e), as(n), 0.2);
4142
+ }
4143
+ const sc = ji({
4144
+ attachResizeListener: (t, e) => _(t, "resize", e),
4145
+ measureScroll: () => ({
4146
+ x: document.documentElement.scrollLeft || document.body.scrollLeft,
4147
+ y: document.documentElement.scrollTop || document.body.scrollTop
4148
+ }),
4149
+ checkIsScrollRoot: () => !0
4150
+ }), he = {
4151
+ current: void 0
4152
+ }, Ni = ji({
4153
+ measureScroll: (t) => ({
4154
+ x: t.scrollLeft,
4155
+ y: t.scrollTop
4156
+ }),
4157
+ defaultParent: () => {
4158
+ if (!he.current) {
4159
+ const t = new sc({});
4160
+ t.mount(window), t.setOptions({ layoutScroll: !0 }), he.current = t;
4161
+ }
4162
+ return he.current;
4163
+ },
4164
+ resetTransform: (t, e) => {
4165
+ t.style.transform = e !== void 0 ? e : "none";
4166
+ },
4167
+ checkIsScrollRoot: (t) => window.getComputedStyle(t).position === "fixed"
4168
+ }), ic = {
4169
+ pan: {
4170
+ Feature: Tl
4171
+ },
4172
+ drag: {
4173
+ Feature: xl,
4174
+ ProjectionNode: Ni,
4175
+ MeasureLayout: Ei
4176
+ }
4177
+ }, Ce = { current: null }, Ui = { current: !1 };
4178
+ function rc() {
4179
+ if (Ui.current = !0, !!Re)
4180
+ if (window.matchMedia) {
4181
+ const t = window.matchMedia("(prefers-reduced-motion)"), e = () => Ce.current = t.matches;
4182
+ t.addListener(e), e();
4183
+ } else
4184
+ Ce.current = !1;
4185
+ }
4186
+ var oc = {};
4187
+ function ac(t, e, n) {
4188
+ const { willChange: s } = e;
4189
+ for (const i in e) {
4190
+ const o = e[i], r = n[i];
4191
+ if (E(o))
4192
+ t.addValue(i, o), Kt(s) && s.add(i), oc.NODE_ENV === "development" && sn(o.version === "11.2.12", `Attempting to mix Framer Motion versions ${o.version} with 11.2.12 may not work as expected.`);
4193
+ else if (E(r))
4194
+ t.addValue(i, At(o, { owner: t })), Kt(s) && s.remove(i);
4195
+ else if (r !== o)
4196
+ if (t.hasValue(i)) {
4197
+ const a = t.getValue(i);
4198
+ a.liveStyle === !0 ? a.jump(o) : a.hasAnimated || a.set(o);
4199
+ } else {
4200
+ const a = t.getStaticValue(i);
4201
+ t.addValue(i, At(a !== void 0 ? a : o, { owner: t }));
4202
+ }
4203
+ }
4204
+ for (const i in n)
4205
+ e[i] === void 0 && t.removeValue(i);
4206
+ return e;
4207
+ }
4208
+ const ys = /* @__PURE__ */ new WeakMap(), lc = [...qs, R, J], cc = (t) => lc.find(Xs(t));
4209
+ var uc = {};
4210
+ const vs = [
4211
+ "AnimationStart",
4212
+ "AnimationComplete",
4213
+ "Update",
4214
+ "BeforeLayoutMeasure",
4215
+ "LayoutMeasure",
4216
+ "LayoutAnimationStart",
4217
+ "LayoutAnimationComplete"
4218
+ ], hc = Be.length;
4219
+ class fc {
4220
+ /**
4221
+ * This method takes React props and returns found MotionValues. For example, HTML
4222
+ * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.
4223
+ *
4224
+ * This isn't an abstract method as it needs calling in the constructor, but it is
4225
+ * intended to be one.
4226
+ */
4227
+ scrapeMotionValuesFromProps(e, n, s) {
4228
+ return {};
4229
+ }
4230
+ constructor({ parent: e, props: n, presenceContext: s, reducedMotionConfig: i, blockInitialAnimation: o, visualState: r }, a = {}) {
4231
+ this.resolveKeyframes = (f, d, p, m) => new this.KeyframeResolver(f, d, p, m, this), this.current = null, this.children = /* @__PURE__ */ new Set(), this.isVariantNode = !1, this.isControllingVariants = !1, this.shouldReduceMotion = null, this.values = /* @__PURE__ */ new Map(), this.KeyframeResolver = Ge, this.features = {}, this.valueSubscriptions = /* @__PURE__ */ new Map(), this.prevMotionValues = {}, this.events = {}, this.propEventSubscriptions = {}, this.notifyUpdate = () => this.notify("Update", this.latestValues), this.render = () => {
4232
+ this.current && (this.triggerBuild(), this.renderInstance(this.current, this.renderState, this.props.style, this.projection));
4233
+ }, this.scheduleRender = () => V.render(this.render, !1, !0);
4234
+ const { latestValues: l, renderState: u } = r;
4235
+ this.latestValues = l, this.baseTarget = { ...l }, this.initialValues = n.initial ? { ...l } : {}, this.renderState = u, this.parent = e, this.props = n, this.presenceContext = s, this.depth = e ? e.depth + 1 : 0, this.reducedMotionConfig = i, this.options = a, this.blockInitialAnimation = !!o, this.isControllingVariants = zt(n), this.isVariantNode = As(n), this.isVariantNode && (this.variantChildren = /* @__PURE__ */ new Set()), this.manuallyAnimateOnMount = !!(e && e.current);
4236
+ const { willChange: c, ...h } = this.scrapeMotionValuesFromProps(n, {}, this);
4237
+ for (const f in h) {
4238
+ const d = h[f];
4239
+ l[f] !== void 0 && E(d) && (d.set(l[f], !1), Kt(c) && c.add(f));
4240
+ }
4241
+ }
4242
+ mount(e) {
4243
+ this.current = e, ys.set(e, this), this.projection && !this.projection.instance && this.projection.mount(e), this.parent && this.isVariantNode && !this.isControllingVariants && (this.removeFromVariantTree = this.parent.addVariantChild(this)), this.values.forEach((n, s) => this.bindToMotionValue(s, n)), Ui.current || rc(), this.shouldReduceMotion = this.reducedMotionConfig === "never" ? !1 : this.reducedMotionConfig === "always" ? !0 : Ce.current, uc.NODE_ENV !== "production" && sn(this.shouldReduceMotion !== !0, "You have Reduced Motion enabled on your device. Animations may not appear as expected."), this.parent && this.parent.children.add(this), this.update(this.props, this.presenceContext);
4244
+ }
4245
+ unmount() {
4246
+ ys.delete(this.current), this.projection && this.projection.unmount(), H(this.notifyUpdate), H(this.render), this.valueSubscriptions.forEach((e) => e()), this.removeFromVariantTree && this.removeFromVariantTree(), this.parent && this.parent.children.delete(this);
4247
+ for (const e in this.events)
4248
+ this.events[e].clear();
4249
+ for (const e in this.features) {
4250
+ const n = this.features[e];
4251
+ n && (n.unmount(), n.isMounted = !1);
4252
+ }
4253
+ this.current = null;
4254
+ }
4255
+ bindToMotionValue(e, n) {
4256
+ const s = ot.has(e), i = n.on("change", (r) => {
4257
+ this.latestValues[e] = r, this.props.onUpdate && V.preRender(this.notifyUpdate), s && this.projection && (this.projection.isTransformDirty = !0);
4258
+ }), o = n.on("renderRequest", this.scheduleRender);
4259
+ this.valueSubscriptions.set(e, () => {
4260
+ i(), o(), n.owner && n.stop();
4261
+ });
4262
+ }
4263
+ sortNodePosition(e) {
4264
+ return !this.current || !this.sortInstanceNodePosition || this.type !== e.type ? 0 : this.sortInstanceNodePosition(this.current, e.current);
4265
+ }
4266
+ updateFeatures() {
4267
+ let e = "animation";
4268
+ for (e in ft) {
4269
+ const n = ft[e];
4270
+ if (!n)
4271
+ continue;
4272
+ const { isEnabled: s, Feature: i } = n;
4273
+ if (!this.features[e] && i && s(this.props) && (this.features[e] = new i(this)), this.features[e]) {
4274
+ const o = this.features[e];
4275
+ o.isMounted ? o.update() : (o.mount(), o.isMounted = !0);
4276
+ }
4277
+ }
4278
+ }
4279
+ triggerBuild() {
4280
+ this.build(this.renderState, this.latestValues, this.options, this.props);
4281
+ }
4282
+ /**
4283
+ * Measure the current viewport box with or without transforms.
4284
+ * Only measures axis-aligned boxes, rotate and skew must be manually
4285
+ * removed with a re-render to work.
4286
+ */
4287
+ measureViewportBox() {
4288
+ return this.current ? this.measureInstanceViewportBox(this.current, this.props) : A();
4289
+ }
4290
+ getStaticValue(e) {
4291
+ return this.latestValues[e];
4292
+ }
4293
+ setStaticValue(e, n) {
4294
+ this.latestValues[e] = n;
4295
+ }
4296
+ /**
4297
+ * Update the provided props. Ensure any newly-added motion values are
4298
+ * added to our map, old ones removed, and listeners updated.
4299
+ */
4300
+ update(e, n) {
4301
+ (e.transformTemplate || this.props.transformTemplate) && this.scheduleRender(), this.prevProps = this.props, this.props = e, this.prevPresenceContext = this.presenceContext, this.presenceContext = n;
4302
+ for (let s = 0; s < vs.length; s++) {
4303
+ const i = vs[s];
4304
+ this.propEventSubscriptions[i] && (this.propEventSubscriptions[i](), delete this.propEventSubscriptions[i]);
4305
+ const o = "on" + i, r = e[o];
4306
+ r && (this.propEventSubscriptions[i] = this.on(i, r));
4307
+ }
4308
+ this.prevMotionValues = ac(this, this.scrapeMotionValuesFromProps(e, this.prevProps, this), this.prevMotionValues), this.handleChildMotionValue && this.handleChildMotionValue();
4309
+ }
4310
+ getProps() {
4311
+ return this.props;
4312
+ }
4313
+ /**
4314
+ * Returns the variant definition with a given name.
4315
+ */
4316
+ getVariant(e) {
4317
+ return this.props.variants ? this.props.variants[e] : void 0;
4318
+ }
4319
+ /**
4320
+ * Returns the defined default transition on this component.
4321
+ */
4322
+ getDefaultTransition() {
4323
+ return this.props.transition;
4324
+ }
4325
+ getTransformPagePoint() {
4326
+ return this.props.transformPagePoint;
4327
+ }
4328
+ getClosestVariantNode() {
4329
+ return this.isVariantNode ? this : this.parent ? this.parent.getClosestVariantNode() : void 0;
4330
+ }
4331
+ getVariantContext(e = !1) {
4332
+ if (e)
4333
+ return this.parent ? this.parent.getVariantContext() : void 0;
4334
+ if (!this.isControllingVariants) {
4335
+ const s = this.parent ? this.parent.getVariantContext() || {} : {};
4336
+ return this.props.initial !== void 0 && (s.initial = this.props.initial), s;
4337
+ }
4338
+ const n = {};
4339
+ for (let s = 0; s < hc; s++) {
4340
+ const i = Be[s], o = this.props[i];
4341
+ (St(o) || o === !1) && (n[i] = o);
4342
+ }
4343
+ return n;
4344
+ }
4345
+ /**
4346
+ * Add a child visual element to our set of children.
4347
+ */
4348
+ addVariantChild(e) {
4349
+ const n = this.getClosestVariantNode();
4350
+ if (n)
4351
+ return n.variantChildren && n.variantChildren.add(e), () => n.variantChildren.delete(e);
4352
+ }
4353
+ /**
4354
+ * Add a motion value and bind it to this visual element.
4355
+ */
4356
+ addValue(e, n) {
4357
+ const s = this.values.get(e);
4358
+ n !== s && (s && this.removeValue(e), this.bindToMotionValue(e, n), this.values.set(e, n), this.latestValues[e] = n.get());
4359
+ }
4360
+ /**
4361
+ * Remove a motion value and unbind any active subscriptions.
4362
+ */
4363
+ removeValue(e) {
4364
+ this.values.delete(e);
4365
+ const n = this.valueSubscriptions.get(e);
4366
+ n && (n(), this.valueSubscriptions.delete(e)), delete this.latestValues[e], this.removeValueFromRenderState(e, this.renderState);
4367
+ }
4368
+ /**
4369
+ * Check whether we have a motion value for this key
4370
+ */
4371
+ hasValue(e) {
4372
+ return this.values.has(e);
4373
+ }
4374
+ getValue(e, n) {
4375
+ if (this.props.values && this.props.values[e])
4376
+ return this.props.values[e];
4377
+ let s = this.values.get(e);
4378
+ return s === void 0 && n !== void 0 && (s = At(n === null ? void 0 : n, { owner: this }), this.addValue(e, s)), s;
4379
+ }
4380
+ /**
4381
+ * If we're trying to animate to a previously unencountered value,
4382
+ * we need to check for it in our state and as a last resort read it
4383
+ * directly from the instance (which might have performance implications).
4384
+ */
4385
+ readValue(e, n) {
4386
+ var s;
4387
+ let i = this.latestValues[e] !== void 0 || !this.current ? this.latestValues[e] : (s = this.getBaseTargetFromProps(this.props, e)) !== null && s !== void 0 ? s : this.readValueFromInstance(this.current, e, this.options);
4388
+ return i != null && (typeof i == "string" && (zs(i) || Hs(i)) ? i = parseFloat(i) : !cc(i) && J.test(n) && (i = ii(e, n)), this.setBaseTarget(e, E(i) ? i.get() : i)), E(i) ? i.get() : i;
4389
+ }
4390
+ /**
4391
+ * Set the base target to later animate back to. This is currently
4392
+ * only hydrated on creation and when we first read a value.
4393
+ */
4394
+ setBaseTarget(e, n) {
4395
+ this.baseTarget[e] = n;
4396
+ }
4397
+ /**
4398
+ * Find the base target for a value thats been removed from all animation
4399
+ * props.
4400
+ */
4401
+ getBaseTarget(e) {
4402
+ var n;
4403
+ const { initial: s } = this.props;
4404
+ let i;
4405
+ if (typeof s == "string" || typeof s == "object") {
4406
+ const r = $e(this.props, s, (n = this.presenceContext) === null || n === void 0 ? void 0 : n.custom);
4407
+ r && (i = r[e]);
4408
+ }
4409
+ if (s && i !== void 0)
4410
+ return i;
4411
+ const o = this.getBaseTargetFromProps(this.props, e);
4412
+ return o !== void 0 && !E(o) ? o : this.initialValues[e] !== void 0 && i === void 0 ? void 0 : this.baseTarget[e];
4413
+ }
4414
+ on(e, n) {
4415
+ return this.events[e] || (this.events[e] = new nn()), this.events[e].add(n);
4416
+ }
4417
+ notify(e, ...n) {
4418
+ this.events[e] && this.events[e].notify(...n);
4419
+ }
4420
+ }
4421
+ class _i extends fc {
4422
+ constructor() {
4423
+ super(...arguments), this.KeyframeResolver = ri;
4424
+ }
4425
+ sortInstanceNodePosition(e, n) {
4426
+ return e.compareDocumentPosition(n) & 2 ? 1 : -1;
4427
+ }
4428
+ getBaseTargetFromProps(e, n) {
4429
+ return e.style ? e.style[n] : void 0;
4430
+ }
4431
+ removeValueFromRenderState(e, { vars: n, style: s }) {
4432
+ delete n[e], delete s[e];
4433
+ }
4434
+ }
4435
+ function dc(t) {
4436
+ return window.getComputedStyle(t);
4437
+ }
4438
+ class pc extends _i {
4439
+ constructor() {
4440
+ super(...arguments), this.type = "html";
4441
+ }
4442
+ readValueFromInstance(e, n) {
4443
+ if (ot.has(n)) {
4444
+ const s = ze(n);
4445
+ return s && s.default || 0;
4446
+ } else {
4447
+ const s = dc(e), i = (Rs(n) ? s.getPropertyValue(n) : s[n]) || 0;
4448
+ return typeof i == "string" ? i.trim() : i;
4449
+ }
4450
+ }
4451
+ measureInstanceViewportBox(e, { transformPagePoint: n }) {
4452
+ return Mi(e, n);
4453
+ }
4454
+ build(e, n, s, i) {
4455
+ Ie(e, n, s, i.transformTemplate);
4456
+ }
4457
+ scrapeMotionValuesFromProps(e, n, s) {
4458
+ return Ke(e, n, s);
4459
+ }
4460
+ handleChildMotionValue() {
4461
+ this.childSubscription && (this.childSubscription(), delete this.childSubscription);
4462
+ const { children: e } = this.props;
4463
+ E(e) && (this.childSubscription = e.on("change", (n) => {
4464
+ this.current && (this.current.textContent = `${n}`);
4465
+ }));
4466
+ }
4467
+ renderInstance(e, n, s, i) {
4468
+ ks(e, n, s, i);
4469
+ }
4470
+ }
4471
+ class mc extends _i {
4472
+ constructor() {
4473
+ super(...arguments), this.type = "svg", this.isSVGTag = !1;
4474
+ }
4475
+ getBaseTargetFromProps(e, n) {
4476
+ return e[n];
4477
+ }
4478
+ readValueFromInstance(e, n) {
4479
+ if (ot.has(n)) {
4480
+ const s = ze(n);
4481
+ return s && s.default || 0;
4482
+ }
4483
+ return n = Os.has(n) ? n : Ee(n), e.getAttribute(n);
4484
+ }
4485
+ measureInstanceViewportBox() {
4486
+ return A();
4487
+ }
4488
+ scrapeMotionValuesFromProps(e, n, s) {
4489
+ return Is(e, n, s);
4490
+ }
4491
+ build(e, n, s, i) {
4492
+ Ue(e, n, s, this.isSVGTag, i.transformTemplate);
4493
+ }
4494
+ renderInstance(e, n, s, i) {
4495
+ js(e, n, s, i);
4496
+ }
4497
+ mount(e) {
4498
+ this.isSVGTag = _e(e.tagName), super.mount(e);
4499
+ }
4500
+ }
4501
+ const gc = (t, e) => ke(t) ? new mc(e, { enableHardwareAcceleration: !1 }) : new pc(e, {
4502
+ allowProjection: t !== xs,
4503
+ enableHardwareAcceleration: !0
4504
+ }), yc = {
4505
+ layout: {
4506
+ ProjectionNode: Ni,
4507
+ MeasureLayout: Ei
4508
+ }
4509
+ }, vc = {
4510
+ ...Ja,
4511
+ ...oo,
4512
+ ...ic,
4513
+ ...yc
4514
+ }, Sc = /* @__PURE__ */ mr((t, e) => zr(t, e, vc, gc));
4515
+ export {
4516
+ Sc as m
4517
+ };