@oj-module/cli 0.2.64 → 0.2.67

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 (369) hide show
  1. package/bin/.oj-version +1 -0
  2. package/bin/oj +4 -0
  3. package/devkit/README.md +18 -4
  4. package/devkit/SKILL.md +35 -3
  5. package/devkit/framework-dev.md +22 -11
  6. package/devkit/manual.md +161 -68
  7. package/devkit/menu-rules.md +4 -1
  8. package/devkit/publish-walkthrough.md +110 -37
  9. package/devkit/wecom-internal-app.md +7 -2
  10. package/devkit/wecom-multi-corp-links.md +163 -0
  11. package/package.json +3 -2
  12. package/shell-dist/assets/ahooks.2l850ymmh0.js +18 -0
  13. package/shell-dist/assets/antd-es-locale-zh_CN.1gjjsvxbf0.js +1 -0
  14. package/shell-dist/assets/antd-img-crop.196rkty480.js +99 -0
  15. package/shell-dist/assets/antd-locale-en_US.561tozx860.js +1 -0
  16. package/shell-dist/assets/antd-locale-zh_CN.1cmpmgzh70.js +1 -0
  17. package/shell-dist/assets/antd.uw1coq15l0.js +348 -0
  18. package/shell-dist/assets/clsx.jotilrt2e0.js +1 -0
  19. package/shell-dist/assets/contract-errors.2o17vz9u50.js +1 -0
  20. package/shell-dist/assets/contract.3h327o3mj0.js +57 -0
  21. package/shell-dist/assets/cssinjs.atgmhan7m0.js +3 -0
  22. package/shell-dist/assets/dayjs-plugin-advancedFormat.3vsyd2eis0.js +1 -0
  23. package/shell-dist/assets/dayjs-plugin-customParseFormat.13xhghv1d0.js +1 -0
  24. package/shell-dist/assets/dayjs-plugin-isoWeek.1fn1tw82p0.js +1 -0
  25. package/shell-dist/assets/dayjs-plugin-localeData.2rwbjp9nk0.js +1 -0
  26. package/shell-dist/assets/dayjs-plugin-quarterOfYear.2oqo1lcx80.js +1 -0
  27. package/shell-dist/assets/dayjs-plugin-relativeTime.2pqs3et4y0.js +1 -0
  28. package/shell-dist/assets/dayjs-plugin-weekOfYear.gvn9iph080.js +1 -0
  29. package/shell-dist/assets/dayjs-plugin-weekYear.2u78l3ex10.js +1 -0
  30. package/shell-dist/assets/dayjs-plugin-weekday.2d56a4tml0.js +1 -0
  31. package/shell-dist/assets/dayjs.pa60l6wjo0.js +1 -0
  32. package/shell-dist/assets/dnd-kit-core.1xyreig6r0.js +5 -0
  33. package/shell-dist/assets/dnd-kit-sortable.s94qciuft0.js +1 -0
  34. package/shell-dist/assets/dnd-kit-utilities.1umw4xphb0.js +1 -0
  35. package/shell-dist/assets/i18next.33zqofapj0.js +1 -0
  36. package/shell-dist/assets/icons-es-components-Context.365qmflwg0.js +1 -0
  37. package/shell-dist/assets/icons.159wjwals0.js +57 -0
  38. package/shell-dist/assets/{index-xZhmujjM.js → index.6alqyx6ae0.js} +21 -1
  39. package/shell-dist/assets/jsx-dev-runtime.3uibuc82f0.js +14 -0
  40. package/shell-dist/assets/jsx-runtime.h40xu4o5b0.js +14 -0
  41. package/shell-dist/assets/keepalive-for-react.xenu5vam70.js +1 -0
  42. package/shell-dist/assets/kit.37kr8ui390.js +1 -0
  43. package/shell-dist/assets/ky.1cgch7gu60.js +6 -0
  44. package/shell-dist/assets/motion-react.pjsxytvjs0.js +12 -0
  45. package/shell-dist/assets/motion.21tciqutg0.js +4 -0
  46. package/shell-dist/assets/nprogress.2nz76n9ny0.js +7 -0
  47. package/shell-dist/assets/ojm-dayjs-locale-zh-cn.3vr3beiyp0.js +9 -0
  48. package/shell-dist/assets/pinyin-pro.3v0mnxczn0.js +1 -0
  49. package/shell-dist/assets/pro-components.2kyot1vcl0.js +83 -0
  50. package/shell-dist/assets/react-countup.2x8idnr8y0.js +10 -0
  51. package/shell-dist/assets/react-dom-client.ick0v05ob0.js +43 -0
  52. package/shell-dist/assets/react-dom.2so9uxg3f0.js +22 -0
  53. package/shell-dist/assets/react-error-boundary.2dncdfj3b0.js +1 -0
  54. package/shell-dist/assets/react-i18next.auhvjhqv00.js +1 -0
  55. package/shell-dist/assets/react-jss.1ei6dr9e00.js +29 -0
  56. package/shell-dist/assets/react-query.3rln45ow00.js +1 -0
  57. package/shell-dist/assets/react-router-dom.3c6zld8h40.js +44 -0
  58. package/shell-dist/assets/react-router.2h9rebcv50.js +56 -0
  59. package/shell-dist/assets/react.1ew63mwts0.js +14 -0
  60. package/shell-dist/assets/runtime.2dgstpjsu0.js +21702 -0
  61. package/shell-dist/assets/simplebar-react.2g739uvai0.js +1 -0
  62. package/shell-dist/assets/spin-delay.yjeyj6iwp0.js +9 -0
  63. package/shell-dist/assets/tailwind-merge.125ehiqjw0.js +1 -0
  64. package/shell-dist/assets/use-sync-external-store-shim.1nz1pi9bb0.js +22 -0
  65. package/shell-dist/assets/zustand-middleware.1xaxjueme0.js +6 -0
  66. package/shell-dist/assets/zustand-react-shallow.pybayv1hx0.js +1 -0
  67. package/shell-dist/assets/zustand-react.9fsl9brxy0.js +1 -0
  68. package/shell-dist/assets/zustand-shallow.6cz0yyv9x0.js +1 -0
  69. package/shell-dist/assets/zustand-vanilla-shallow.3424monv50.js +1 -0
  70. package/shell-dist/assets/zustand-vanilla.1mo3ka3g30.js +1 -0
  71. package/shell-dist/assets/zustand.3gjgzlnqo0.js +1 -0
  72. package/shell-dist/index.html +67 -118
  73. package/shell-dist/versions.json +3 -3
  74. package/src/__tests__/publish-keygen.test.ts +157 -0
  75. package/src/__tests__/templates-migration-schema-parity.test.ts +540 -0
  76. package/src/__tests__/templates-schema-columns.test.ts +15 -2
  77. package/src/__tests__/templates-tenant-scope.test.ts +6 -2
  78. package/src/bundle.ts +8 -3
  79. package/src/cli.ts +17 -5
  80. package/src/dev.ts +15 -10
  81. package/src/esm-exports.ts +152 -70
  82. package/src/install.ts +11 -4
  83. package/src/keygen.ts +54 -0
  84. package/src/lifecycle/__tests__/bundle.test.ts +21 -3
  85. package/src/lifecycle/__tests__/fixtures/fixture-valid/api/src/demo-solution/manifest.yaml +1 -1
  86. package/src/lifecycle/__tests__/fixtures/fixture-valid/api/src/demo-solution/migrations/0001__init.sql +2 -2
  87. package/src/lifecycle/__tests__/fixtures/fixture-valid/api/src/demo-solution/schema.yaml +5 -2
  88. package/src/lifecycle/__tests__/fixtures/fixture-valid/manifest.yaml +1 -1
  89. package/src/lifecycle/__tests__/manifest-contract.test.ts +75 -3
  90. package/src/lifecycle/__tests__/smoke.test.ts +2 -2
  91. package/src/manifest-contract.ts +91 -8
  92. package/src/market/bootstrap.ts +26 -2
  93. package/src/market/command.ts +1 -0
  94. package/src/market/publish.ts +5 -1
  95. package/src/market/walkthrough.ts +24 -8
  96. package/src/shared-deps.ts +69 -19
  97. package/src/site-base.ts +4 -0
  98. package/src/site.ts +2 -0
  99. package/src/usage.ts +8 -4
  100. package/src/vendor.ts +5 -1
  101. package/templates/config.yaml +4 -2
  102. package/templates/init.include.yaml +8 -3
  103. package/templates/openapi.json +460 -1
  104. package/templates/src/app/api/_platform/_lifecycle/compensate.ts +136 -0
  105. package/templates/src/app/api/_platform/_lifecycle/installer.ts +71 -22
  106. package/templates/src/app/api/_platform/_lifecycle/lock.ts +23 -0
  107. package/templates/src/app/api/_platform/_lifecycle/steps/deploy-web.ts +28 -0
  108. package/templates/src/app/api/_platform/_lifecycle/steps/preflight.ts +46 -0
  109. package/templates/src/app/api/_platform/_lifecycle/steps/reload.ts +100 -36
  110. package/templates/src/app/api/_platform/_lifecycle/steps/smoke.ts +7 -15
  111. package/templates/src/app/api/_platform/_lifecycle/text-edit.ts +71 -19
  112. package/templates/src/app/api/_platform/_lifecycle/types.ts +26 -2
  113. package/templates/src/app/api/_platform/_lifecycle/uninstall.ts +93 -14
  114. package/templates/src/app/api/_platform/_shared/service/domain/settings.ts +8 -4
  115. package/templates/src/app/api/_platform/manifest.yaml +1 -0
  116. package/templates/src/app/api/_platform/market/api.ts +235 -10
  117. package/templates/src/app/api/_platform/migrations/0001__baseline.mysql.sql +178 -0
  118. package/templates/src/app/api/_platform/migrations/0001__baseline.pg.sql +173 -0
  119. package/templates/src/app/api/_platform/migrations/0001__baseline.sql +188 -0
  120. package/templates/src/app/api/_platform/migrations/0002__market_release.mysql.sql +17 -0
  121. package/templates/src/app/api/_platform/migrations/0002__market_release.pg.sql +16 -0
  122. package/templates/src/app/api/_platform/migrations/0002__market_release.sql +33 -0
  123. package/templates/src/app/api/_platform/schema.yaml +18 -0
  124. package/templates/src/app/api/_platform/seed.mysql.sql +10 -0
  125. package/templates/src/app/api/_platform/seed.pg.sql +10 -0
  126. package/templates/src/app/api/auth/_shared/wecom/client.ts +24 -4
  127. package/templates/src/app/api/home/migrations/0001__create_home_tables.mysql.sql +14 -0
  128. package/templates/src/app/api/home/migrations/0001__create_home_tables.pg.sql +14 -0
  129. package/templates/src/app/api/home/migrations/0002__tenant.pg.sql +4 -0
  130. package/templates/src/app/api/home/seed.mysql.sql +71 -0
  131. package/templates/src/app/api/home/seed.pg.sql +71 -0
  132. package/templates/src/app/api/notification/_shared/notify.ts +6 -6
  133. package/templates/src/app/api/notification/migrations/0001__create_notifications.mysql.sql +11 -0
  134. package/templates/src/app/api/notification/migrations/0001__create_notifications.pg.sql +11 -0
  135. package/templates/src/app/api/notification/migrations/0002__notifications_user.mysql.sql +8 -0
  136. package/templates/src/app/api/notification/migrations/0003__notifications_broadcast.mysql.sql +21 -0
  137. package/templates/src/app/api/notification/migrations/0003__notifications_broadcast.pg.sql +22 -0
  138. package/templates/src/app/api/notification/migrations/0004__notifications_broadcast_hidden.mysql.sql +10 -0
  139. package/templates/src/app/api/notification/migrations/0004__notifications_broadcast_hidden.pg.sql +11 -0
  140. package/templates/src/app/api/notification/migrations/0005__tenant.pg.sql +6 -0
  141. package/templates/src/app/api/notification/seed.mysql.sql +8 -0
  142. package/templates/src/app/api/notification/seed.pg.sql +11 -0
  143. package/templates/src/app/api/publish/_shared/identity.ts +69 -0
  144. package/templates/src/app/api/publish/api.ts +349 -0
  145. package/templates/src/app/api/publish/manifest.yaml +8 -0
  146. package/templates/src/app/api/publish/migrations/0001__publish_credential.mysql.sql +23 -0
  147. package/templates/src/app/api/publish/migrations/0001__publish_credential.pg.sql +23 -0
  148. package/templates/src/app/api/publish/migrations/0001__publish_credential.sql +39 -0
  149. package/templates/src/app/api/publish/schema.yaml +33 -0
  150. package/templates/src/app/api/system/login-methods/api.ts +2 -1
  151. package/templates/src/app/web/_platform/__client/api.schemas.ts +15 -0
  152. package/templates/src/app/web/_platform/__client/index.ts +25 -1
  153. package/templates/src/app/web/entry.ts +9 -5
  154. package/templates/src/app/web/home/pages/components/bar-chart.tsx +5 -3
  155. package/templates/src/app/web/home/pages/components/echarts-setup.ts +30 -0
  156. package/templates/src/app/web/home/pages/components/line-chart.tsx +5 -3
  157. package/templates/src/app/web/home/pages/components/pie-chart.tsx +6 -3
  158. package/templates/src/app/web/home/pages/index.tsx +3 -2
  159. package/templates/src/app/web/home/routes.ts +8 -2
  160. package/templates/src/app/web/login/locales/en-US.json +7 -1
  161. package/templates/src/app/web/login/locales/zh-CN.json +7 -1
  162. package/templates/src/app/web/login/pages/login.tsx +79 -86
  163. package/templates/src/app/web/login/routes.ts +54 -1
  164. package/templates/src/app/web/personal-center/locales/en-US.json +1 -0
  165. package/templates/src/app/web/personal-center/locales/zh-CN.json +1 -0
  166. package/templates/src/app/web/personal-center/pages/my-profile/index.tsx +5 -0
  167. package/templates/src/app/web/system/__client/api.schemas.ts +2 -1
  168. package/templates/src/app/web/system/locales/en-US.json +1 -8
  169. package/templates/src/app/web/system/locales/zh-CN.json +1 -8
  170. package/templates/src/app/web/system/pages/settings/index.tsx +17 -4
  171. package/templates/src/app/web/system/routes.ts +0 -6
  172. package/templates/src/oj-market/web/__tests__/CardGrid.test.tsx +33 -0
  173. package/templates/src/oj-market/web/__tests__/DetailDrawer.test.tsx +69 -0
  174. package/templates/src/oj-market/web/__tests__/marketClient.fake.ts +7 -1
  175. package/templates/src/oj-market/web/api/client.ts +3 -0
  176. package/templates/src/oj-market/web/api/defaultClient.ts +5 -0
  177. package/templates/src/oj-market/web/components/CardItem.tsx +44 -1
  178. package/templates/src/oj-market/web/components/DetailDrawer.tsx +17 -1
  179. package/templates/src/oj-market/web/entry.ts +31 -2
  180. package/templates/src/oj-market/web/locales/en-US.json +5 -1
  181. package/templates/src/oj-market/web/locales/zh-CN.json +5 -1
  182. package/templates/src/oj-market/web/publish/__client/api.schemas.ts +61 -0
  183. package/templates/src/oj-market/web/publish/__client/index.ts +164 -0
  184. package/templates/src/oj-market/web/publish/locales/en-US.json +80 -0
  185. package/templates/src/oj-market/web/publish/locales/zh-CN.json +80 -0
  186. package/templates/src/oj-market/web/publish/pages/history.tsx +112 -0
  187. package/templates/src/oj-market/web/publish/pages/index.tsx +196 -0
  188. package/templates/src/oj-market/web/publish/pages/model.ts +52 -0
  189. package/templates/src/oj-market/web/publish/pages/token-modal.tsx +82 -0
  190. package/templates/src/oj-market/web/publish/routes.ts +41 -0
  191. package/templates/src/oj-market/web/types.ts +30 -0
  192. package/templates/tests/lifecycle/compensate.spec.ts +207 -0
  193. package/templates/tests/lifecycle/deploy-smoke.spec.ts +38 -14
  194. package/templates/tests/lifecycle/installer.spec.ts +28 -9
  195. package/templates/tests/lifecycle/market-api.spec.ts +164 -12
  196. package/templates/tests/lifecycle/preflight.spec.ts +68 -0
  197. package/templates/tests/lifecycle/role-title-translate.spec.ts +2 -32
  198. package/templates/tests/lifecycle/text-edit.spec.ts +45 -27
  199. package/templates/tests/lifecycle/uninstall.spec.ts +36 -0
  200. package/templates/tests/publish-credential.spec.ts +354 -0
  201. package/templates/tests/publish-identity.spec.ts +44 -0
  202. package/templates/tests/wecom-client-timeout.spec.ts +33 -3
  203. package/templates/tests/wecom-landing.spec.ts +63 -1
  204. package/templates/tsconfig.paths.json +1 -0
  205. package/templates/web.config.ts +6 -4
  206. package/vendor/host-versions.json +3 -3
  207. package/shell-dist/assets/ahooks.js +0 -6909
  208. package/shell-dist/assets/antd-es-locale-zh_CN.js +0 -257
  209. package/shell-dist/assets/antd-img-crop.js +0 -1495
  210. package/shell-dist/assets/antd-locale-en_US.js +0 -374
  211. package/shell-dist/assets/antd-locale-zh_CN.js +0 -379
  212. package/shell-dist/assets/antd.js +0 -106874
  213. package/shell-dist/assets/clsx.js +0 -33
  214. package/shell-dist/assets/contract-errors.js +0 -30
  215. package/shell-dist/assets/contract.js +0 -18900
  216. package/shell-dist/assets/cssinjs.js +0 -2595
  217. package/shell-dist/assets/dayjs-plugin-advancedFormat.js +0 -98
  218. package/shell-dist/assets/dayjs-plugin-customParseFormat.js +0 -173
  219. package/shell-dist/assets/dayjs-plugin-isoWeek.js +0 -77
  220. package/shell-dist/assets/dayjs-plugin-localeData.js +0 -126
  221. package/shell-dist/assets/dayjs-plugin-quarterOfYear.js +0 -77
  222. package/shell-dist/assets/dayjs-plugin-relativeTime.js +0 -92
  223. package/shell-dist/assets/dayjs-plugin-weekOfYear.js +0 -73
  224. package/shell-dist/assets/dayjs-plugin-weekYear.js +0 -63
  225. package/shell-dist/assets/dayjs-plugin-weekday.js +0 -63
  226. package/shell-dist/assets/dayjs.js +0 -326
  227. package/shell-dist/assets/dnd-kit-core.js +0 -3601
  228. package/shell-dist/assets/dnd-kit-sortable.js +0 -717
  229. package/shell-dist/assets/dnd-kit-utilities.js +0 -340
  230. package/shell-dist/assets/i18next.js +0 -2321
  231. package/shell-dist/assets/icons-es-components-Context.js +0 -20
  232. package/shell-dist/assets/icons.js +0 -34961
  233. package/shell-dist/assets/jsx-dev-runtime.js +0 -75
  234. package/shell-dist/assets/jsx-runtime.js +0 -97
  235. package/shell-dist/assets/keepalive-for-react.js +0 -283
  236. package/shell-dist/assets/kit.js +0 -151
  237. package/shell-dist/assets/ky.js +0 -1427
  238. package/shell-dist/assets/motion-react.js +0 -13589
  239. package/shell-dist/assets/motion.js +0 -9959
  240. package/shell-dist/assets/nprogress.js +0 -314
  241. package/shell-dist/assets/ojm--ant-design-icons-es-icons-BarsOutlined.js +0 -7
  242. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CalendarOutlined.js +0 -7
  243. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretDownFilled.js +0 -7
  244. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretDownOutlined.js +0 -7
  245. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretUpOutlined.js +0 -7
  246. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CheckCircleFilled.js +0 -7
  247. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CheckOutlined.js +0 -7
  248. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ClockCircleOutlined.js +0 -7
  249. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CloseCircleFilled.js +0 -7
  250. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CloseOutlined.js +0 -7
  251. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CopyOutlined.js +0 -7
  252. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DeleteOutlined.js +0 -7
  253. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DoubleLeftOutlined.js +0 -7
  254. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DoubleRightOutlined.js +0 -7
  255. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DownOutlined.js +0 -7
  256. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DownloadOutlined.js +0 -7
  257. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EditOutlined.js +0 -7
  258. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EllipsisOutlined.js +0 -7
  259. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EnterOutlined.js +0 -7
  260. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ExclamationCircleFilled.js +0 -7
  261. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EyeInvisibleOutlined.js +0 -7
  262. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EyeOutlined.js +0 -7
  263. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FileOutlined.js +0 -7
  264. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FileTextOutlined.js +0 -7
  265. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FilterFilled.js +0 -7
  266. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FolderOpenOutlined.js +0 -7
  267. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FolderOutlined.js +0 -7
  268. package/shell-dist/assets/ojm--ant-design-icons-es-icons-HolderOutlined.js +0 -7
  269. package/shell-dist/assets/ojm--ant-design-icons-es-icons-InfoCircleFilled.js +0 -7
  270. package/shell-dist/assets/ojm--ant-design-icons-es-icons-LeftOutlined.js +0 -7
  271. package/shell-dist/assets/ojm--ant-design-icons-es-icons-LoadingOutlined.js +0 -7
  272. package/shell-dist/assets/ojm--ant-design-icons-es-icons-MinusOutlined.js +0 -7
  273. package/shell-dist/assets/ojm--ant-design-icons-es-icons-MinusSquareOutlined.js +0 -7
  274. package/shell-dist/assets/ojm--ant-design-icons-es-icons-PaperClipOutlined.js +0 -7
  275. package/shell-dist/assets/ojm--ant-design-icons-es-icons-PictureOutlined.js +0 -7
  276. package/shell-dist/assets/ojm--ant-design-icons-es-icons-PlusOutlined.js +0 -7
  277. package/shell-dist/assets/ojm--ant-design-icons-es-icons-PlusSquareOutlined.js +0 -7
  278. package/shell-dist/assets/ojm--ant-design-icons-es-icons-QuestionCircleOutlined.js +0 -7
  279. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ReloadOutlined.js +0 -7
  280. package/shell-dist/assets/ojm--ant-design-icons-es-icons-RightOutlined.js +0 -7
  281. package/shell-dist/assets/ojm--ant-design-icons-es-icons-RotateLeftOutlined.js +0 -7
  282. package/shell-dist/assets/ojm--ant-design-icons-es-icons-RotateRightOutlined.js +0 -7
  283. package/shell-dist/assets/ojm--ant-design-icons-es-icons-SearchOutlined.js +0 -7
  284. package/shell-dist/assets/ojm--ant-design-icons-es-icons-StarFilled.js +0 -7
  285. package/shell-dist/assets/ojm--ant-design-icons-es-icons-SwapOutlined.js +0 -7
  286. package/shell-dist/assets/ojm--ant-design-icons-es-icons-SwapRightOutlined.js +0 -7
  287. package/shell-dist/assets/ojm--ant-design-icons-es-icons-UpOutlined.js +0 -7
  288. package/shell-dist/assets/ojm--ant-design-icons-es-icons-VerticalAlignTopOutlined.js +0 -7
  289. package/shell-dist/assets/ojm--ant-design-icons-es-icons-WarningFilled.js +0 -7
  290. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ZoomInOutlined.js +0 -7
  291. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ZoomOutOutlined.js +0 -7
  292. package/shell-dist/assets/ojm-dayjs-locale-zh-cn.js +0 -81
  293. package/shell-dist/assets/pinyin-pro.js +0 -25175
  294. package/shell-dist/assets/pro-components.js +0 -44627
  295. package/shell-dist/assets/react-countup.js +0 -525
  296. package/shell-dist/assets/react-dom-client.js +0 -12134
  297. package/shell-dist/assets/react-dom.js +0 -266
  298. package/shell-dist/assets/react-error-boundary.js +0 -141
  299. package/shell-dist/assets/react-i18next.js +0 -1773
  300. package/shell-dist/assets/react-jss.js +0 -4089
  301. package/shell-dist/assets/react-query.js +0 -3072
  302. package/shell-dist/assets/react-router-dom.js +0 -9927
  303. package/shell-dist/assets/react-router.js +0 -14584
  304. package/shell-dist/assets/react.js +0 -590
  305. package/shell-dist/assets/runtime.js +0 -28311
  306. package/shell-dist/assets/simplebar-react.js +0 -1119
  307. package/shell-dist/assets/spin-delay.js +0 -111
  308. package/shell-dist/assets/tailwind-merge.js +0 -3364
  309. package/shell-dist/assets/use-sync-external-store-shim.js +0 -130
  310. package/shell-dist/assets/zustand-middleware.js +0 -513
  311. package/shell-dist/assets/zustand-react-shallow.js +0 -27
  312. package/shell-dist/assets/zustand-react.js +0 -39
  313. package/shell-dist/assets/zustand-shallow.js +0 -22
  314. package/shell-dist/assets/zustand-vanilla-shallow.js +0 -71
  315. package/shell-dist/assets/zustand-vanilla.js +0 -40
  316. package/shell-dist/assets/zustand.js +0 -32
  317. package/templates/seed.mysql.sql +0 -6
  318. package/templates/seed.pg.sql +0 -6
  319. package/templates/src/app/api/_platform/migrations/0001__create_users.mysql.sql +0 -9
  320. package/templates/src/app/api/_platform/migrations/0001__create_users.pg.sql +0 -9
  321. package/templates/src/app/api/_platform/migrations/0001__create_users.sql +0 -7
  322. package/templates/src/app/api/_platform/migrations/0002__add_users_avatar_base64.mysql.sql +0 -3
  323. package/templates/src/app/api/_platform/migrations/0002__add_users_avatar_base64.sql +0 -2
  324. package/templates/src/app/api/_platform/migrations/0003__users_source_display_name.mysql.sql +0 -5
  325. package/templates/src/app/api/_platform/migrations/0003__users_source_display_name.sql +0 -5
  326. package/templates/src/app/api/_platform/migrations/0004__sys_rbac.mysql.sql +0 -70
  327. package/templates/src/app/api/_platform/migrations/0004__sys_rbac.pg.sql +0 -67
  328. package/templates/src/app/api/_platform/migrations/0004__sys_rbac.sql +0 -67
  329. package/templates/src/app/api/_platform/migrations/0005__users_must_change.mysql.sql +0 -3
  330. package/templates/src/app/api/_platform/migrations/0005__users_must_change.sql +0 -2
  331. package/templates/src/app/api/_platform/migrations/0006__users_is_forbidden.mysql.sql +0 -3
  332. package/templates/src/app/api/_platform/migrations/0006__users_is_forbidden.sql +0 -3
  333. package/templates/src/app/api/_platform/migrations/0007__users_email.sql +0 -3
  334. package/templates/src/app/api/_platform/migrations/0008__sys_refresh_token.mysql.sql +0 -10
  335. package/templates/src/app/api/_platform/migrations/0008__sys_refresh_token.pg.sql +0 -10
  336. package/templates/src/app/api/_platform/migrations/0008__sys_refresh_token.sql +0 -11
  337. package/templates/src/app/api/_platform/migrations/0009__sys_throttle.mysql.sql +0 -12
  338. package/templates/src/app/api/_platform/migrations/0009__sys_throttle.pg.sql +0 -12
  339. package/templates/src/app/api/_platform/migrations/0009__sys_throttle.sql +0 -13
  340. package/templates/src/app/api/_platform/migrations/0010__sys_solution_route.mysql.sql +0 -17
  341. package/templates/src/app/api/_platform/migrations/0010__sys_solution_route.pg.sql +0 -16
  342. package/templates/src/app/api/_platform/migrations/0010__sys_solution_route.sql +0 -18
  343. package/templates/src/app/api/_platform/migrations/0011__sys_setting_group_label.mysql.sql +0 -2
  344. package/templates/src/app/api/_platform/migrations/0011__sys_setting_group_label.sql +0 -4
  345. package/templates/src/app/api/_platform/migrations/0012__market_history.mysql.sql +0 -13
  346. package/templates/src/app/api/_platform/migrations/0012__market_history.pg.sql +0 -12
  347. package/templates/src/app/api/_platform/migrations/0012__market_history.sql +0 -14
  348. package/templates/src/app/api/_platform/migrations/0013__users_profile.sql +0 -4
  349. package/templates/src/app/api/_platform/migrations/0014__reg_source_seq.mysql.sql +0 -9
  350. package/templates/src/app/api/_platform/migrations/0014__reg_source_seq.pg.sql +0 -7
  351. package/templates/src/app/api/_platform/migrations/0014__reg_source_seq.sql +0 -8
  352. package/templates/src/app/api/_platform/migrations/0015__tenant.mysql.sql +0 -12
  353. package/templates/src/app/api/_platform/migrations/0015__tenant.pg.sql +0 -11
  354. package/templates/src/app/api/_platform/migrations/0015__tenant.sql +0 -44
  355. package/templates/src/app/api/_platform/migrations/0016__org.mysql.sql +0 -41
  356. package/templates/src/app/api/_platform/migrations/0016__org.pg.sql +0 -40
  357. package/templates/src/app/api/_platform/migrations/0016__org.sql +0 -62
  358. package/templates/src/app/api/_platform/migrations/0017__users_employee_no.mysql.sql +0 -7
  359. package/templates/src/app/api/_platform/migrations/0017__users_employee_no.pg.sql +0 -4
  360. package/templates/src/app/api/_platform/migrations/0017__users_employee_no.sql +0 -8
  361. package/templates/src/app/api/_platform/migrations/0018__sys_role_title_key.mysql.sql +0 -3
  362. package/templates/src/app/api/_platform/migrations/0018__sys_role_title_key.pg.sql +0 -3
  363. package/templates/src/app/api/_platform/migrations/0018__sys_role_title_key.sql +0 -8
  364. package/templates/src/app/web/system/pages/login-methods/index.tsx +0 -30
  365. /package/shell-dist/assets/{nprogress-css.js → nprogress-css.1cq2pzkre0.js} +0 -0
  366. /package/shell-dist/assets/{ojm-antd-es-button.js → ojm-antd-es-button.2uriphio50.js} +0 -0
  367. /package/shell-dist/assets/{ojm-antd-es-modal.js → ojm-antd-es-modal.bf3tgdh8v0.js} +0 -0
  368. /package/shell-dist/assets/{ojm-antd-es-slider.js → ojm-antd-es-slider.xyvptuhid0.js} +0 -0
  369. /package/shell-dist/assets/{ojm-antd-es-upload.js → ojm-antd-es-upload.13gx45e0g0.js} +0 -0
@@ -0,0 +1,4 @@
1
+ var __defProp=Object.defineProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})};var es_exports={};__export(es_exports,{AsyncMotionValueAnimation:()=>AsyncMotionValueAnimation,DOMKeyframesResolver:()=>DOMKeyframesResolver,DOMVisualElement:()=>DOMVisualElement,DocumentProjectionNode:()=>DocumentProjectionNode,Feature:()=>Feature,FlatTree:()=>FlatTree,GroupAnimation:()=>GroupAnimation,GroupAnimationWithThen:()=>GroupAnimationWithThen,HTMLProjectionNode:()=>HTMLProjectionNode,HTMLVisualElement:()=>HTMLVisualElement,JSAnimation:()=>JSAnimation,KeyframeResolver:()=>KeyframeResolver,LayoutAnimationBuilder:()=>LayoutAnimationBuilder,MotionGlobalConfig:()=>MotionGlobalConfig,MotionValue:()=>MotionValue,NativeAnimation:()=>NativeAnimation,NativeAnimationExtended:()=>NativeAnimationExtended,NativeAnimationWrapper:()=>NativeAnimationWrapper,NodeStack:()=>NodeStack,ObjectVisualElement:()=>ObjectVisualElement,SVGVisualElement:()=>SVGVisualElement,SubscriptionManager:()=>SubscriptionManager,ViewTransitionBuilder:()=>ViewTransitionBuilder,VisualElement:()=>VisualElement,acceleratedValues:()=>acceleratedValues,addAttrValue:()=>addAttrValue,addDomEvent:()=>addDomEvent,addScaleCorrector:()=>addScaleCorrector,addStyleValue:()=>addStyleValue,addUniqueItem:()=>addUniqueItem,addValueToWillChange:()=>addValueToWillChange,alpha:()=>alpha,analyseComplexValue:()=>analyseComplexValue,animate:()=>animate,animateMini:()=>animateMini,animateMotionValue:()=>animateMotionValue,animateSingleValue:()=>animateSingleValue,animateTarget:()=>animateTarget,animateValue:()=>animateValue,animateVariant:()=>animateVariant,animateView:()=>animateView,animateVisualElement:()=>animateVisualElement,animationMapKey:()=>animationMapKey,anticipate:()=>anticipate,applyAxisDelta:()=>applyAxisDelta,applyBoxDelta:()=>applyBoxDelta,applyGeneratorOptions:()=>applyGeneratorOptions,applyPointDelta:()=>applyPointDelta,applyPxDefaults:()=>applyPxDefaults,applyTreeDeltas:()=>applyTreeDeltas,arc:()=>arc,aspectRatio:()=>aspectRatio,attachFollow:()=>attachFollow,attachSpring:()=>attachSpring,attrEffect:()=>attrEffect,axisDeltaEquals:()=>axisDeltaEquals,axisEquals:()=>axisEquals,axisEqualsRounded:()=>axisEqualsRounded,backIn:()=>backIn,backInOut:()=>backInOut,backOut:()=>backOut,boxEquals:()=>boxEquals,boxEqualsRounded:()=>boxEqualsRounded,buildHTMLStyles:()=>buildHTMLStyles,buildProjectionTransform:()=>buildProjectionTransform,buildSVGAttrs:()=>buildSVGAttrs,buildSVGPath:()=>buildSVGPath,buildTransform:()=>buildTransform2,calcAxisDelta:()=>calcAxisDelta,calcBoxDelta:()=>calcBoxDelta,calcChildStagger:()=>calcChildStagger,calcGeneratorDuration:()=>calcGeneratorDuration,calcLength:()=>calcLength,calcRelativeAxis:()=>calcRelativeAxis,calcRelativeAxisPosition:()=>calcRelativeAxisPosition,calcRelativeBox:()=>calcRelativeBox,calcRelativePosition:()=>calcRelativePosition,camelCaseAttributes:()=>camelCaseAttributes,camelToDash:()=>camelToDash,cancelFrame:()=>cancelFrame,cancelMicrotask:()=>cancelMicrotask,cancelSync:()=>cancelSync,checkVariantsDidChange:()=>checkVariantsDidChange,circIn:()=>circIn,circInOut:()=>circInOut,circOut:()=>circOut,clamp:()=>clamp,cleanDirtyNodes:()=>cleanDirtyNodes,collectMotionValues:()=>collectMotionValues,color:()=>color,compareByDepth:()=>compareByDepth,complex:()=>complex,containsCSSVariable:()=>containsCSSVariable,convertBoundingBoxToBox:()=>convertBoundingBoxToBox,convertBoxToBoundingBox:()=>convertBoxToBoundingBox,convertOffsetToTimes:()=>convertOffsetToTimes,copyAxisDeltaInto:()=>copyAxisDeltaInto,copyAxisInto:()=>copyAxisInto,copyBoxInto:()=>copyBoxInto,correctBorderRadius:()=>correctBorderRadius,correctBoxShadow:()=>correctBoxShadow,createAnimationState:()=>createAnimationState,createAxis:()=>createAxis,createAxisDelta:()=>createAxisDelta,createBox:()=>createBox,createDelta:()=>createDelta,createGeneratorEasing:()=>createGeneratorEasing,createProjectionNode:()=>createProjectionNode,createRenderBatcher:()=>createRenderBatcher,createScopedAnimate:()=>createScopedAnimate,cubicBezier:()=>cubicBezier,cubicBezierAsString:()=>cubicBezierAsString,defaultEasing:()=>defaultEasing,defaultOffset:()=>defaultOffset,defaultTransformValue:()=>defaultTransformValue,defaultValueTypes:()=>defaultValueTypes,degrees:()=>degrees,delay:()=>delayInSeconds,delayInSeconds:()=>delayInSeconds,dimensionValueTypes:()=>dimensionValueTypes,distance:()=>distance,distance2D:()=>distance2D,eachAxis:()=>eachAxis,easeIn:()=>easeIn,easeInOut:()=>easeInOut,easeOut:()=>easeOut,easingDefinitionToFunction:()=>easingDefinitionToFunction,fillOffset:()=>fillOffset,fillWildcards:()=>fillWildcards,findDimensionValueType:()=>findDimensionValueType,findValueType:()=>findValueType,flushKeyframeResolvers:()=>flushKeyframeResolvers,followValue:()=>followValue,frame:()=>frame,frameData:()=>frameData,frameSteps:()=>frameSteps,generateLinearEasing:()=>generateLinearEasing,getAnimatableNone:()=>getAnimatableNone2,getAnimationMap:()=>getAnimationMap,getComputedStyle:()=>getComputedStyle2,getDefaultTransition:()=>getDefaultTransition,getDefaultValueType:()=>getDefaultValueType,getEasingForSegment:()=>getEasingForSegment,getFeatureDefinitions:()=>getFeatureDefinitions,getFinalKeyframe:()=>getFinalKeyframe,getMixer:()=>getMixer,getOptimisedAppearId:()=>getOptimisedAppearId,getOriginIndex:()=>getOriginIndex,getValueAsType:()=>getValueAsType,getValueTransition:()=>getValueTransition,getVariableValue:()=>getVariableValue,getVariantContext:()=>getVariantContext,getViewAnimationLayerInfo:()=>getViewAnimationLayerInfo,getViewAnimations:()=>getViewAnimations,globalProjectionState:()=>globalProjectionState,has2DTranslate:()=>has2DTranslate,hasReducedMotionListener:()=>hasReducedMotionListener,hasScale:()=>hasScale,hasTransform:()=>hasTransform,hasWarned:()=>hasWarned,hex:()=>hex,hover:()=>hover,hsla:()=>hsla,hslaToRgba:()=>hslaToRgba,inView:()=>inView,inertia:()=>inertia,initPrefersReducedMotion:()=>initPrefersReducedMotion,interpolate:()=>interpolate,invariant:()=>invariant,invisibleValues:()=>invisibleValues,isAnimationControls:()=>isAnimationControls,isBezierDefinition:()=>isBezierDefinition,isCSSVariableName:()=>isCSSVariableName,isCSSVariableToken:()=>isCSSVariableToken,isControllingVariants:()=>isControllingVariants,isDeltaZero:()=>isDeltaZero,isDragActive:()=>isDragActive,isDragging:()=>isDragging,isEasingArray:()=>isEasingArray,isElementKeyboardAccessible:()=>isElementKeyboardAccessible,isElementTextInput:()=>isElementTextInput,isForcedMotionValue:()=>isForcedMotionValue,isGenerator:()=>isGenerator,isHTMLElement:()=>isHTMLElement,isKeyframesTarget:()=>isKeyframesTarget,isMotionValue:()=>isMotionValue,isNear:()=>isNear,isNodeOrChild:()=>isNodeOrChild,isNumericalString:()=>isNumericalString,isObject:()=>isObject,isPrimaryPointer:()=>isPrimaryPointer,isSVGElement:()=>isSVGElement,isSVGSVGElement:()=>isSVGSVGElement,isSVGTag:()=>isSVGTag,isTransitionDefined:()=>isTransitionDefined,isVariantLabel:()=>isVariantLabel,isVariantNode:()=>isVariantNode,isWaapiSupportedEasing:()=>isWaapiSupportedEasing,isWillChangeMotionValue:()=>isWillChangeMotionValue,isZeroValueString:()=>isZeroValueString,keyframes:()=>keyframes,makeAnimationInstant:()=>makeAnimationInstant,mapEasingToNativeEasing:()=>mapEasingToNativeEasing,mapValue:()=>mapValue,maxGeneratorDuration:()=>maxGeneratorDuration,measurePageBox:()=>measurePageBox,measureViewportBox:()=>measureViewportBox,memo:()=>memo,microtask:()=>microtask,millisecondsToSeconds:()=>millisecondsToSeconds,mirrorEasing:()=>mirrorEasing,mix:()=>mix,mixArray:()=>mixArray,mixColor:()=>mixColor,mixComplex:()=>mixComplex,mixImmediate:()=>mixImmediate,mixLinearColor:()=>mixLinearColor,mixNumber:()=>mixNumber,mixObject:()=>mixObject,mixValues:()=>mixValues,mixVisibility:()=>mixVisibility,motionValue:()=>motionValue,moveItem:()=>moveItem,nodeGroup:()=>nodeGroup,noop:()=>noop,number:()=>number,numberValueTypes:()=>numberValueTypes,observeTimeline:()=>observeTimeline,optimizedAppearDataAttribute:()=>optimizedAppearDataAttribute,optimizedAppearDataId:()=>optimizedAppearDataId,parseAnimateLayoutArgs:()=>parseAnimateLayoutArgs,parseCSSVariable:()=>parseCSSVariable,parseValueFromTransform:()=>parseValueFromTransform,percent:()=>percent,pipe:()=>pipe,pixelsToPercent:()=>pixelsToPercent,positionalKeys:()=>positionalKeys,prefersReducedMotion:()=>prefersReducedMotion,press:()=>press,progress:()=>progress,progressPercentage:()=>progressPercentage,propEffect:()=>propEffect,propagateDirtyNodes:()=>propagateDirtyNodes,px:()=>px,readTransformValue:()=>readTransformValue,recordStats:()=>recordStats,removeAxisDelta:()=>removeAxisDelta,removeAxisTransforms:()=>removeAxisTransforms,removeBoxTransforms:()=>removeBoxTransforms,removeItem:()=>removeItem,removePointDelta:()=>removePointDelta,renderHTML:()=>renderHTML,renderSVG:()=>renderSVG,resize:()=>resize,resolveElements:()=>resolveElements,resolveMotionValue:()=>resolveMotionValue,resolveTransition:()=>resolveTransition,resolveVariant:()=>resolveVariant,resolveVariantFromProps:()=>resolveVariantFromProps,reverseEasing:()=>reverseEasing,rgbUnit:()=>rgbUnit,rgba:()=>rgba,rootProjectionNode:()=>rootProjectionNode,scale:()=>scale,scaleCorrectors:()=>scaleCorrectors,scalePoint:()=>scalePoint,scrapeHTMLMotionValuesFromProps:()=>scrapeMotionValuesFromProps,scrapeSVGMotionValuesFromProps:()=>scrapeMotionValuesFromProps2,scroll:()=>scroll,scrollInfo:()=>scrollInfo,secondsToMilliseconds:()=>secondsToMilliseconds,setDragLock:()=>setDragLock,setFeatureDefinitions:()=>setFeatureDefinitions,setStyle:()=>setStyle,setTarget:()=>setTarget,spring:()=>spring,springValue:()=>springValue,stagger:()=>stagger,startWaapiAnimation:()=>startWaapiAnimation,statsBuffer:()=>statsBuffer,steps:()=>steps,styleEffect:()=>styleEffect,supportedWaapiEasing:()=>supportedWaapiEasing,supportsBrowserAnimation:()=>supportsBrowserAnimation,supportsFlags:()=>supportsFlags,supportsLinearEasing:()=>supportsLinearEasing,supportsPartialKeyframes:()=>supportsPartialKeyframes,supportsScrollTimeline:()=>supportsScrollTimeline,supportsViewTimeline:()=>supportsViewTimeline,svgEffect:()=>svgEffect,sync:()=>sync,testValueType:()=>testValueType,time:()=>time,transform:()=>transform,transformAxis:()=>transformAxis,transformBox:()=>transformBox,transformBoxPoints:()=>transformBoxPoints,transformPropOrder:()=>transformPropOrder,transformProps:()=>transformProps,transformValue:()=>transformValue,transformValueTypes:()=>transformValueTypes,translateAxis:()=>translateAxis,updateMotionValuesFromProps:()=>updateMotionValuesFromProps,variantPriorityOrder:()=>variantPriorityOrder,variantProps:()=>variantProps,velocityPerSecond:()=>velocityPerSecond,vh:()=>vh,visualElementStore:()=>visualElementStore,vw:()=>vw,warnOnce:()=>warnOnce,warning:()=>warning,wrap:()=>wrap});function addUniqueItem(arr,item){arr.indexOf(item)===-1&&arr.push(item)}function removeItem(arr,item){let index=arr.indexOf(item);index>-1&&arr.splice(index,1)}function moveItem([...arr],fromIndex,toIndex){let startIndex=fromIndex<0?arr.length+fromIndex:fromIndex;if(startIndex>=0&&startIndex<arr.length){let endIndex=toIndex<0?arr.length+toIndex:toIndex,[item]=arr.splice(fromIndex,1);arr.splice(endIndex,0,item)}return arr}var clamp=(min,max,v)=>v>max?max:v<min?min:v;function formatErrorMessage(message,errorCode){return errorCode?`${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}`:message}var warning=()=>{},invariant=()=>{};var MotionGlobalConfig={};var isNumericalString=v=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(v);var isObject=value=>typeof value=="object"&&value!==null;var isZeroValueString=v=>/^0[^.\s]+$/u.test(v);function memo(callback){let result;return()=>(result===void 0&&(result=callback()),result)}var noop=any=>any;var pipe=(...transformers)=>transformers.reduce((a,b)=>v=>b(a(v)));var progress=(from,to,value)=>{let range=to-from;return range?(value-from)/range:1};var SubscriptionManager=class{constructor(){this.subscriptions=[]}add(handler){return addUniqueItem(this.subscriptions,handler),()=>removeItem(this.subscriptions,handler)}notify(a,b,c){let numSubscriptions=this.subscriptions.length;if(numSubscriptions)if(numSubscriptions===1)this.subscriptions[0](a,b,c);else for(let i=0;i<numSubscriptions;i++){let handler=this.subscriptions[i];handler&&handler(a,b,c)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}};var secondsToMilliseconds=seconds=>seconds*1e3,millisecondsToSeconds=milliseconds=>milliseconds/1e3;var velocityPerSecond=(velocity,frameDuration)=>frameDuration?velocity*(1e3/frameDuration):0;var warned=new Set;function hasWarned(message){return warned.has(message)}function warnOnce(condition,message,errorCode){condition||warned.has(message)||(console.warn(formatErrorMessage(message,errorCode)),warned.add(message))}var wrap=(min,max,v)=>{let rangeSize=max-min;return((v-min)%rangeSize+rangeSize)%rangeSize+min};var calcBezier=(t,a1,a2)=>(((1-3*a2+3*a1)*t+(3*a2-6*a1))*t+3*a1)*t,subdivisionPrecision=1e-7,subdivisionMaxIterations=12;function binarySubdivide(x,lowerBound,upperBound,mX1,mX2){let currentX,currentT,i=0;do currentT=lowerBound+(upperBound-lowerBound)/2,currentX=calcBezier(currentT,mX1,mX2)-x,currentX>0?upperBound=currentT:lowerBound=currentT;while(Math.abs(currentX)>subdivisionPrecision&&++i<subdivisionMaxIterations);return currentT}function cubicBezier(mX1,mY1,mX2,mY2){if(mX1===mY1&&mX2===mY2)return noop;let getTForX=aX=>binarySubdivide(aX,0,1,mX1,mX2);return t=>t===0||t===1?t:calcBezier(getTForX(t),mY1,mY2)}var mirrorEasing=easing=>p=>p<=.5?easing(2*p)/2:(2-easing(2*(1-p)))/2;var reverseEasing=easing=>p=>1-easing(1-p);var backOut=cubicBezier(.33,1.53,.69,.99),backIn=reverseEasing(backOut),backInOut=mirrorEasing(backIn);var anticipate=p=>p>=1?1:(p*=2)<1?.5*backIn(p):.5*(2-Math.pow(2,-10*(p-1)));var circIn=p=>1-Math.sin(Math.acos(p)),circOut=reverseEasing(circIn),circInOut=mirrorEasing(circIn);var easeIn=cubicBezier(.42,0,1,1),easeOut=cubicBezier(0,0,.58,1),easeInOut=cubicBezier(.42,0,.58,1);function steps(numSteps,direction="end"){return progress2=>{progress2=direction==="end"?Math.min(progress2,.999):Math.max(progress2,.001);let expanded=progress2*numSteps,rounded=direction==="end"?Math.floor(expanded):Math.ceil(expanded);return clamp(0,1,rounded/numSteps)}}var isEasingArray=ease2=>Array.isArray(ease2)&&typeof ease2[0]!="number";function getEasingForSegment(easing,i){return isEasingArray(easing)?easing[wrap(0,easing.length,i)]:easing}var isBezierDefinition=easing=>Array.isArray(easing)&&typeof easing[0]=="number";var easingLookup={linear:noop,easeIn,easeInOut,easeOut,circIn,circInOut,circOut,backIn,backInOut,backOut,anticipate},isValidEasing=easing=>typeof easing=="string",easingDefinitionToFunction=definition=>{if(isBezierDefinition(definition)){invariant(definition.length===4,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[x1,y1,x2,y2]=definition;return cubicBezier(x1,y1,x2,y2)}else if(isValidEasing(definition))return invariant(easingLookup[definition]!==void 0,`Invalid easing type '${definition}'`,"invalid-easing-type"),easingLookup[definition];return definition};var stepsOrder=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function createRenderStep(runNextFrame){let thisFrame=new Set,nextFrame=new Set,isProcessing=!1,flushNextFrame=!1,toKeepAlive=new WeakSet,latestFrameData={delta:0,timestamp:0,isProcessing:!1};function triggerCallback(callback){toKeepAlive.has(callback)&&(step.schedule(callback),runNextFrame()),callback(latestFrameData)}let step={schedule:(callback,keepAlive=!1,immediate=!1)=>{let queue=immediate&&isProcessing?thisFrame:nextFrame;return keepAlive&&toKeepAlive.add(callback),queue.add(callback),callback},cancel:callback=>{nextFrame.delete(callback),toKeepAlive.delete(callback)},process:frameData2=>{if(latestFrameData=frameData2,isProcessing){flushNextFrame=!0;return}isProcessing=!0;let prevFrame=thisFrame;thisFrame=nextFrame,nextFrame=prevFrame,thisFrame.forEach(triggerCallback),thisFrame.clear(),isProcessing=!1,flushNextFrame&&(flushNextFrame=!1,step.process(frameData2))}};return step}var maxElapsed=40;function createRenderBatcher(scheduleNextBatch,allowKeepAlive){let runNextFrame=!1,useDefaultElapsed=!0,state={delta:0,timestamp:0,isProcessing:!1},flagRunNextFrame=()=>runNextFrame=!0,steps2=stepsOrder.reduce((acc,key)=>(acc[key]=createRenderStep(flagRunNextFrame),acc),{}),{setup,read,resolveKeyframes,preUpdate,update,preRender,render,postRender}=steps2,processBatch=()=>{let useManualTiming=MotionGlobalConfig.useManualTiming,timestamp=useManualTiming?state.timestamp:performance.now();runNextFrame=!1,useManualTiming||(state.delta=useDefaultElapsed?1e3/60:Math.max(Math.min(timestamp-state.timestamp,maxElapsed),1)),state.timestamp=timestamp,state.isProcessing=!0,setup.process(state),read.process(state),resolveKeyframes.process(state),preUpdate.process(state),update.process(state),preRender.process(state),render.process(state),postRender.process(state),state.isProcessing=!1,runNextFrame&&allowKeepAlive&&(useDefaultElapsed=!1,scheduleNextBatch(processBatch))},wake=()=>{runNextFrame=!0,useDefaultElapsed=!0,state.isProcessing||scheduleNextBatch(processBatch)};return{schedule:stepsOrder.reduce((acc,key)=>{let step=steps2[key];return acc[key]=(process2,keepAlive=!1,immediate=!1)=>(runNextFrame||wake(),step.schedule(process2,keepAlive,immediate)),acc},{}),cancel:process2=>{for(let i=0;i<stepsOrder.length;i++)steps2[stepsOrder[i]].cancel(process2)},state,steps:steps2}}var{schedule:frame,cancel:cancelFrame,state:frameData,steps:frameSteps}=createRenderBatcher(typeof requestAnimationFrame<"u"?requestAnimationFrame:noop,!0);var now;function clearTime(){now=void 0}var time={now:()=>(now===void 0&&time.set(frameData.isProcessing||MotionGlobalConfig.useManualTiming?frameData.timestamp:performance.now()),now),set:newTime=>{now=newTime,queueMicrotask(clearTime)}};var checkStringStartsWith=token=>key=>typeof key=="string"&&key.startsWith(token),isCSSVariableName=checkStringStartsWith("--"),startsAsVariableToken=checkStringStartsWith("var(--"),isCSSVariableToken=value=>startsAsVariableToken(value)?singleCssVariableRegex.test(value.split("/*")[0].trim()):!1,singleCssVariableRegex=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function containsCSSVariable(value){return typeof value!="string"?!1:value.split("/*")[0].includes("var(--")}var number={test:v=>typeof v=="number",parse:parseFloat,transform:v=>v},alpha={...number,transform:v=>clamp(0,1,v)},scale={...number,default:1};var sanitize=v=>Math.round(v*1e5)/1e5;var floatRegex=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function isNullish(v){return v==null}var singleColorRegex=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu;var isColorString=(type,testProp)=>v=>!!(typeof v=="string"&&singleColorRegex.test(v)&&v.startsWith(type)||testProp&&!isNullish(v)&&Object.prototype.hasOwnProperty.call(v,testProp)),splitColor=(aName,bName,cName)=>v=>{if(typeof v!="string")return v;let[a,b,c,alpha2]=v.match(floatRegex);return{[aName]:parseFloat(a),[bName]:parseFloat(b),[cName]:parseFloat(c),alpha:alpha2!==void 0?parseFloat(alpha2):1}};var clampRgbUnit=v=>clamp(0,255,v),rgbUnit={...number,transform:v=>Math.round(clampRgbUnit(v))},rgba={test:isColorString("rgb","red"),parse:splitColor("red","green","blue"),transform:({red,green,blue,alpha:alpha$1=1})=>"rgba("+rgbUnit.transform(red)+", "+rgbUnit.transform(green)+", "+rgbUnit.transform(blue)+", "+sanitize(alpha.transform(alpha$1))+")"};function parseHex(v){let r="",g="",b="",a="";return v.length>5?(r=v.substring(1,3),g=v.substring(3,5),b=v.substring(5,7),a=v.substring(7,9)):(r=v.substring(1,2),g=v.substring(2,3),b=v.substring(3,4),a=v.substring(4,5),r+=r,g+=g,b+=b,a+=a),{red:parseInt(r,16),green:parseInt(g,16),blue:parseInt(b,16),alpha:a?parseInt(a,16)/255:1}}var hex={test:isColorString("#"),parse:parseHex,transform:rgba.transform};var createUnitType=unit=>({test:v=>typeof v=="string"&&v.endsWith(unit)&&v.split(" ").length===1,parse:parseFloat,transform:v=>`${v}${unit}`}),degrees=createUnitType("deg"),percent=createUnitType("%"),px=createUnitType("px"),vh=createUnitType("vh"),vw=createUnitType("vw"),progressPercentage={...percent,parse:v=>percent.parse(v)/100,transform:v=>percent.transform(v*100)};var hsla={test:isColorString("hsl","hue"),parse:splitColor("hue","saturation","lightness"),transform:({hue,saturation,lightness,alpha:alpha$1=1})=>"hsla("+Math.round(hue)+", "+percent.transform(sanitize(saturation))+", "+percent.transform(sanitize(lightness))+", "+sanitize(alpha.transform(alpha$1))+")"};var color={test:v=>rgba.test(v)||hex.test(v)||hsla.test(v),parse:v=>rgba.test(v)?rgba.parse(v):hsla.test(v)?hsla.parse(v):hex.parse(v),transform:v=>typeof v=="string"?v:v.hasOwnProperty("red")?rgba.transform(v):hsla.transform(v),getAnimatableNone:v=>{let parsed=color.parse(v);return parsed.alpha=0,color.transform(parsed)}};var colorRegex=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function test(v){return isNaN(v)&&typeof v=="string"&&(v.match(floatRegex)?.length||0)+(v.match(colorRegex)?.length||0)>0}var NUMBER_TOKEN="number",COLOR_TOKEN="color",VAR_TOKEN="var",VAR_FUNCTION_TOKEN="var(",SPLIT_TOKEN="${}",complexRegex=/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;function analyseComplexValue(value){let originalValue=value.toString(),values=[],indexes={color:[],number:[],var:[]},types=[],i=0,split=originalValue.replace(complexRegex,parsedValue=>(color.test(parsedValue)?(indexes.color.push(i),types.push(COLOR_TOKEN),values.push(color.parse(parsedValue))):parsedValue.startsWith(VAR_FUNCTION_TOKEN)?(indexes.var.push(i),types.push(VAR_TOKEN),values.push(parsedValue)):(indexes.number.push(i),types.push(NUMBER_TOKEN),values.push(parseFloat(parsedValue))),++i,SPLIT_TOKEN)).split(SPLIT_TOKEN);return{values,split,indexes,types}}function parseComplexValue(v){return analyseComplexValue(v).values}function buildTransformer({split,types}){let numSections=split.length;return v=>{let output="";for(let i=0;i<numSections;i++)if(output+=split[i],v[i]!==void 0){let type=types[i];type===NUMBER_TOKEN?output+=sanitize(v[i]):type===COLOR_TOKEN?output+=color.transform(v[i]):output+=v[i]}return output}}function createTransformer(source){return buildTransformer(analyseComplexValue(source))}var convertNumbersToZero=v=>typeof v=="number"?0:color.test(v)?color.getAnimatableNone(v):v,convertToZero=(value,splitBefore)=>typeof value=="number"?splitBefore?.trim().endsWith("/")?value:0:convertNumbersToZero(value);function getAnimatableNone(v){let info=analyseComplexValue(v);return buildTransformer(info)(info.values.map((value,i)=>convertToZero(value,info.split[i])))}var complex={test,parse:parseComplexValue,createTransformer,getAnimatableNone};function hueToRgb(p,q,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?p+(q-p)*6*t:t<1/2?q:t<2/3?p+(q-p)*(2/3-t)*6:p}function hslaToRgba({hue,saturation,lightness,alpha:alpha2}){hue/=360,saturation/=100,lightness/=100;let red=0,green=0,blue=0;if(!saturation)red=green=blue=lightness;else{let q=lightness<.5?lightness*(1+saturation):lightness+saturation-lightness*saturation,p=2*lightness-q;red=hueToRgb(p,q,hue+1/3),green=hueToRgb(p,q,hue),blue=hueToRgb(p,q,hue-1/3)}return{red:Math.round(red*255),green:Math.round(green*255),blue:Math.round(blue*255),alpha:alpha2}}function mixImmediate(a,b){return p=>p>0?b:a}var mixNumber=(from,to,progress2)=>from+(to-from)*progress2;var mixLinearColor=(from,to,v)=>{let fromExpo=from*from,expo=v*(to*to-fromExpo)+fromExpo;return expo<0?0:Math.sqrt(expo)},colorTypes=[hex,rgba,hsla],getColorType=v=>colorTypes.find(type=>type.test(v));function asRGBA(color2){let type=getColorType(color2);if(warning(!!type,`'${color2}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!type)return!1;let model=type.parse(color2);return type===hsla&&(model=hslaToRgba(model)),model}var mixColor=(from,to)=>{let fromRGBA=asRGBA(from),toRGBA=asRGBA(to);if(!fromRGBA||!toRGBA)return mixImmediate(from,to);let blended={...fromRGBA};return v=>(blended.red=mixLinearColor(fromRGBA.red,toRGBA.red,v),blended.green=mixLinearColor(fromRGBA.green,toRGBA.green,v),blended.blue=mixLinearColor(fromRGBA.blue,toRGBA.blue,v),blended.alpha=mixNumber(fromRGBA.alpha,toRGBA.alpha,v),rgba.transform(blended))};var invisibleValues=new Set(["none","hidden"]);function mixVisibility(origin,target){return invisibleValues.has(origin)?p=>p<=0?origin:target:p=>p>=1?target:origin}function mixNumber2(a,b){return p=>mixNumber(a,b,p)}function getMixer(a){return typeof a=="number"?mixNumber2:typeof a=="string"?isCSSVariableToken(a)?mixImmediate:color.test(a)?mixColor:mixComplex:Array.isArray(a)?mixArray:typeof a=="object"?color.test(a)?mixColor:mixObject:mixImmediate}function mixArray(a,b){let output=[...a],numValues=output.length,blendValue=a.map((v,i)=>getMixer(v)(v,b[i]));return p=>{for(let i=0;i<numValues;i++)output[i]=blendValue[i](p);return output}}function mixObject(a,b){let output={...a,...b},blendValue={};for(let key in output)a[key]!==void 0&&b[key]!==void 0&&(blendValue[key]=getMixer(a[key])(a[key],b[key]));return v=>{for(let key in blendValue)output[key]=blendValue[key](v);return output}}function matchOrder(origin,target){let orderedOrigin=[],pointers={color:0,var:0,number:0};for(let i=0;i<target.values.length;i++){let type=target.types[i],originIndex=origin.indexes[type][pointers[type]],originValue=origin.values[originIndex]??0;orderedOrigin[i]=originValue,pointers[type]++}return orderedOrigin}var mixComplex=(origin,target)=>{let template=complex.createTransformer(target),originStats=analyseComplexValue(origin),targetStats=analyseComplexValue(target);return originStats.indexes.var.length===targetStats.indexes.var.length&&originStats.indexes.color.length===targetStats.indexes.color.length&&originStats.indexes.number.length>=targetStats.indexes.number.length?invisibleValues.has(origin)&&!targetStats.values.length||invisibleValues.has(target)&&!originStats.values.length?mixVisibility(origin,target):pipe(mixArray(matchOrder(originStats,targetStats),targetStats.values),template):(warning(!0,`Complex values '${origin}' and '${target}' 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.`,"complex-values-different"),mixImmediate(origin,target))};function mix(from,to,p){return typeof from=="number"&&typeof to=="number"&&typeof p=="number"?mixNumber(from,to,p):getMixer(from)(from,to)}var frameloopDriver=update=>{let passTimestamp=({timestamp})=>update(timestamp);return{start:(keepAlive=!0)=>frame.update(passTimestamp,keepAlive),stop:()=>cancelFrame(passTimestamp),now:()=>frameData.isProcessing?frameData.timestamp:time.now()}};var generateLinearEasing=(easing,duration,resolution=10)=>{let points="",numPoints=Math.max(Math.round(duration/resolution),2);for(let i=0;i<numPoints;i++)points+=Math.round(easing(i/(numPoints-1))*1e4)/1e4+", ";return`linear(${points.substring(0,points.length-2)})`};var maxGeneratorDuration=2e4;function calcGeneratorDuration(generator){let duration=0,timeStep=50,state=generator.next(duration);for(;!state.done&&duration<2e4;)duration+=timeStep,state=generator.next(duration);return duration>=2e4?1/0:duration}function createGeneratorEasing(options,scale2=100,createGenerator){let generator=createGenerator({...options,keyframes:[0,scale2]}),duration=Math.min(calcGeneratorDuration(generator),2e4);return{type:"keyframes",ease:progress2=>generator.next(duration*progress2).value/scale2,duration:millisecondsToSeconds(duration)}}var springDefaults={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function calcAngularFreq(undampedFreq,dampingRatio){return undampedFreq*Math.sqrt(1-dampingRatio*dampingRatio)}var rootIterations=12;function approximateRoot(envelope,derivative,initialGuess){let result=initialGuess;for(let i=1;i<rootIterations;i++)result=result-envelope(result)/derivative(result);return result}var safeMin=.001;function findSpring({duration=springDefaults.duration,bounce=springDefaults.bounce,velocity=springDefaults.velocity,mass=springDefaults.mass}){let envelope,derivative;warning(duration<=secondsToMilliseconds(springDefaults.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let dampingRatio=1-bounce;dampingRatio=clamp(springDefaults.minDamping,springDefaults.maxDamping,dampingRatio),duration=clamp(springDefaults.minDuration,springDefaults.maxDuration,millisecondsToSeconds(duration)),dampingRatio<1?(envelope=undampedFreq2=>{let exponentialDecay=undampedFreq2*dampingRatio,delta=exponentialDecay*duration,a=exponentialDecay-velocity,b=calcAngularFreq(undampedFreq2,dampingRatio),c=Math.exp(-delta);return safeMin-a/b*c},derivative=undampedFreq2=>{let delta=undampedFreq2*dampingRatio*duration,d=delta*velocity+velocity,e=Math.pow(dampingRatio,2)*Math.pow(undampedFreq2,2)*duration,f=Math.exp(-delta),g=calcAngularFreq(Math.pow(undampedFreq2,2),dampingRatio);return(-envelope(undampedFreq2)+safeMin>0?-1:1)*((d-e)*f)/g}):(envelope=undampedFreq2=>{let a=Math.exp(-undampedFreq2*duration),b=(undampedFreq2-velocity)*duration+1;return-safeMin+a*b},derivative=undampedFreq2=>{let a=Math.exp(-undampedFreq2*duration),b=(velocity-undampedFreq2)*(duration*duration);return a*b});let initialGuess=5/duration,undampedFreq=approximateRoot(envelope,derivative,initialGuess);if(duration=secondsToMilliseconds(duration),isNaN(undampedFreq))return{stiffness:springDefaults.stiffness,damping:springDefaults.damping,duration};{let stiffness=Math.pow(undampedFreq,2)*mass;return{stiffness,damping:dampingRatio*2*Math.sqrt(mass*stiffness),duration}}}var durationKeys=["duration","bounce"],physicsKeys=["stiffness","damping","mass"];function isSpringType(options,keys2){return keys2.some(key=>options[key]!==void 0)}function getSpringOptions(options){let springOptions={velocity:springDefaults.velocity,stiffness:springDefaults.stiffness,damping:springDefaults.damping,mass:springDefaults.mass,isResolvedFromDuration:!1,...options};if(!isSpringType(options,physicsKeys)&&isSpringType(options,durationKeys))if(springOptions.velocity=0,options.visualDuration){let visualDuration=options.visualDuration,root=2*Math.PI/(visualDuration*1.2),stiffness=root*root,damping=2*clamp(.05,1,1-(options.bounce||0))*Math.sqrt(stiffness);springOptions={...springOptions,mass:springDefaults.mass,stiffness,damping}}else{let derived=findSpring({...options,velocity:0});springOptions={...springOptions,...derived,mass:springDefaults.mass},springOptions.isResolvedFromDuration=!0}return springOptions}function spring(optionsOrVisualDuration=springDefaults.visualDuration,bounce=springDefaults.bounce){let options=typeof optionsOrVisualDuration!="object"?{visualDuration:optionsOrVisualDuration,keyframes:[0,1],bounce}:optionsOrVisualDuration,{restSpeed,restDelta}=options,origin=options.keyframes[0],target=options.keyframes[options.keyframes.length-1],state={done:!1,value:origin},{stiffness,damping,mass,duration,velocity,isResolvedFromDuration}=getSpringOptions({...options,velocity:-millisecondsToSeconds(options.velocity||0)}),initialVelocity=velocity||0,dampingRatio=damping/(2*Math.sqrt(stiffness*mass)),initialDelta=target-origin,undampedAngularFreq=millisecondsToSeconds(Math.sqrt(stiffness/mass)),isGranularScale=Math.abs(initialDelta)<5;restSpeed||(restSpeed=isGranularScale?springDefaults.restSpeed.granular:springDefaults.restSpeed.default),restDelta||(restDelta=isGranularScale?springDefaults.restDelta.granular:springDefaults.restDelta.default);let resolveSpring,resolveVelocity,angularFreq,A,sinCoeff,cosCoeff;if(dampingRatio<1)angularFreq=calcAngularFreq(undampedAngularFreq,dampingRatio),A=(initialVelocity+dampingRatio*undampedAngularFreq*initialDelta)/angularFreq,resolveSpring=t=>{let envelope=Math.exp(-dampingRatio*undampedAngularFreq*t);return target-envelope*(A*Math.sin(angularFreq*t)+initialDelta*Math.cos(angularFreq*t))},sinCoeff=dampingRatio*undampedAngularFreq*A+initialDelta*angularFreq,cosCoeff=dampingRatio*undampedAngularFreq*initialDelta-A*angularFreq,resolveVelocity=t=>Math.exp(-dampingRatio*undampedAngularFreq*t)*(sinCoeff*Math.sin(angularFreq*t)+cosCoeff*Math.cos(angularFreq*t));else if(dampingRatio===1){resolveSpring=t=>target-Math.exp(-undampedAngularFreq*t)*(initialDelta+(initialVelocity+undampedAngularFreq*initialDelta)*t);let C=initialVelocity+undampedAngularFreq*initialDelta;resolveVelocity=t=>Math.exp(-undampedAngularFreq*t)*(undampedAngularFreq*C*t-initialVelocity)}else{let dampedAngularFreq=undampedAngularFreq*Math.sqrt(dampingRatio*dampingRatio-1);resolveSpring=t=>{let envelope=Math.exp(-dampingRatio*undampedAngularFreq*t),freqForT=Math.min(dampedAngularFreq*t,300);return target-envelope*((initialVelocity+dampingRatio*undampedAngularFreq*initialDelta)*Math.sinh(freqForT)+dampedAngularFreq*initialDelta*Math.cosh(freqForT))/dampedAngularFreq};let P=(initialVelocity+dampingRatio*undampedAngularFreq*initialDelta)/dampedAngularFreq,sinhCoeff=dampingRatio*undampedAngularFreq*P-initialDelta*dampedAngularFreq,coshCoeff=dampingRatio*undampedAngularFreq*initialDelta-P*dampedAngularFreq;resolveVelocity=t=>{let envelope=Math.exp(-dampingRatio*undampedAngularFreq*t),freqForT=Math.min(dampedAngularFreq*t,300);return envelope*(sinhCoeff*Math.sinh(freqForT)+coshCoeff*Math.cosh(freqForT))}}let generator={calculatedDuration:isResolvedFromDuration&&duration||null,velocity:t=>secondsToMilliseconds(resolveVelocity(t)),next:t=>{if(!isResolvedFromDuration&&dampingRatio<1){let envelope=Math.exp(-dampingRatio*undampedAngularFreq*t),sin=Math.sin(angularFreq*t),cos=Math.cos(angularFreq*t),current3=target-envelope*(A*sin+initialDelta*cos),currentVelocity=secondsToMilliseconds(envelope*(sinCoeff*sin+cosCoeff*cos));return state.done=Math.abs(currentVelocity)<=restSpeed&&Math.abs(target-current3)<=restDelta,state.value=state.done?target:current3,state}let current2=resolveSpring(t);if(isResolvedFromDuration)state.done=t>=duration;else{let currentVelocity=secondsToMilliseconds(resolveVelocity(t));state.done=Math.abs(currentVelocity)<=restSpeed&&Math.abs(target-current2)<=restDelta}return state.value=state.done?target:current2,state},toString:()=>{let calculatedDuration=Math.min(calcGeneratorDuration(generator),2e4),easing=generateLinearEasing(progress2=>generator.next(calculatedDuration*progress2).value,calculatedDuration,30);return calculatedDuration+"ms "+easing},toTransition:()=>{}};return generator}spring.applyToOptions=options=>{let generatorOptions=createGeneratorEasing(options,100,spring);return options.ease=generatorOptions.ease,options.duration=secondsToMilliseconds(generatorOptions.duration),options.type="keyframes",options};var velocitySampleDuration=5;function getGeneratorVelocity(resolveValue,t,current2){let prevT=Math.max(t-velocitySampleDuration,0);return velocityPerSecond(current2-resolveValue(prevT),t-prevT)}function inertia({keyframes:keyframes2,velocity=0,power=.8,timeConstant=325,bounceDamping=10,bounceStiffness=500,modifyTarget,min,max,restDelta=.5,restSpeed}){let origin=keyframes2[0],state={done:!1,value:origin},isOutOfBounds=v=>min!==void 0&&v<min||max!==void 0&&v>max,nearestBoundary=v=>min===void 0?max:max===void 0||Math.abs(min-v)<Math.abs(max-v)?min:max,amplitude=power*velocity,ideal=origin+amplitude,target=modifyTarget===void 0?ideal:modifyTarget(ideal);target!==ideal&&(amplitude=target-origin);let calcDelta=t=>-amplitude*Math.exp(-t/timeConstant),calcLatest=t=>target+calcDelta(t),applyFriction=t=>{let delta=calcDelta(t),latest=calcLatest(t);state.done=Math.abs(delta)<=restDelta,state.value=state.done?target:latest},timeReachedBoundary,spring$1,checkCatchBoundary=t=>{isOutOfBounds(state.value)&&(timeReachedBoundary=t,spring$1=spring({keyframes:[state.value,nearestBoundary(state.value)],velocity:getGeneratorVelocity(calcLatest,t,state.value),damping:bounceDamping,stiffness:bounceStiffness,restDelta,restSpeed}))};return checkCatchBoundary(0),{calculatedDuration:null,next:t=>{let hasUpdatedFrame=!1;return!spring$1&&timeReachedBoundary===void 0&&(hasUpdatedFrame=!0,applyFriction(t),checkCatchBoundary(t)),timeReachedBoundary!==void 0&&t>=timeReachedBoundary?spring$1.next(t-timeReachedBoundary):(!hasUpdatedFrame&&applyFriction(t),state)}}}function createMixers(output,ease2,customMixer){let mixers=[],mixerFactory=customMixer||MotionGlobalConfig.mix||mix,numMixers=output.length-1;for(let i=0;i<numMixers;i++){let mixer=mixerFactory(output[i],output[i+1]);if(ease2){let easingFunction=Array.isArray(ease2)?ease2[i]||noop:ease2;mixer=pipe(easingFunction,mixer)}mixers.push(mixer)}return mixers}function interpolate(input,output,{clamp:isClamp=!0,ease:ease2,mixer}={}){let inputLength=input.length;if(invariant(inputLength===output.length,"Both input and output ranges must be the same length","range-length"),inputLength===1)return()=>output[0];if(inputLength===2&&output[0]===output[1])return()=>output[1];let isZeroDeltaRange=input[0]===input[1];input[0]>input[inputLength-1]&&(input=[...input].reverse(),output=[...output].reverse());let mixers=createMixers(output,ease2,mixer),numMixers=mixers.length,interpolator=v=>{if(isZeroDeltaRange&&v<input[0])return output[0];let i=0;if(numMixers>1)for(;i<input.length-2&&!(v<input[i+1]);i++);let progressInRange=progress(input[i],input[i+1],v);return mixers[i](progressInRange)};return isClamp?v=>interpolator(clamp(input[0],input[inputLength-1],v)):interpolator}function fillOffset(offset,remaining){let min=offset[offset.length-1];for(let i=1;i<=remaining;i++){let offsetProgress=progress(0,remaining,i);offset.push(mixNumber(min,1,offsetProgress))}}function defaultOffset(arr){let offset=[0];return fillOffset(offset,arr.length-1),offset}function convertOffsetToTimes(offset,duration){return offset.map(o=>o*duration)}function defaultEasing(values,easing){return values.map(()=>easing||easeInOut).splice(0,values.length-1)}function keyframes({duration=300,keyframes:keyframeValues,times,ease:ease2="easeInOut"}){let easingFunctions=isEasingArray(ease2)?ease2.map(easingDefinitionToFunction):easingDefinitionToFunction(ease2),state={done:!1,value:keyframeValues[0]},absoluteTimes=convertOffsetToTimes(times&&times.length===keyframeValues.length?times:defaultOffset(keyframeValues),duration),mapTimeToKeyframe=interpolate(absoluteTimes,keyframeValues,{ease:Array.isArray(easingFunctions)?easingFunctions:defaultEasing(keyframeValues,easingFunctions)});return{calculatedDuration:duration,next:t=>(state.value=mapTimeToKeyframe(t),state.done=t>=duration,state)}}var isNotNull=value=>value!==null;function getFinalKeyframe(keyframes2,{repeat,repeatType="loop"},finalKeyframe,speed=1){let resolvedKeyframes=keyframes2.filter(isNotNull),index=speed<0||repeat&&repeatType!=="loop"&&repeat%2===1?0:resolvedKeyframes.length-1;return!index||finalKeyframe===void 0?resolvedKeyframes[index]:finalKeyframe}var transitionTypeMap={decay:inertia,inertia,tween:keyframes,keyframes,spring};function replaceTransitionType(transition){typeof transition.type=="string"&&(transition.type=transitionTypeMap[transition.type])}var WithPromise=class{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(resolve=>{this.resolve=resolve})}notifyFinished(){this.resolve()}then(onResolve,onReject){return this.finished.then(onResolve,onReject)}};var percentToProgress=percent2=>percent2/100,JSAnimation=class extends WithPromise{constructor(options){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:motionValue2}=this.options;motionValue2&&motionValue2.updatedAt!==time.now()&&this.tick(time.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=options,this.initAnimation(),this.play(),options.autoplay===!1&&this.pause()}initAnimation(){let{options}=this;replaceTransitionType(options);let{type=keyframes,repeat=0,repeatDelay=0,repeatType,velocity=0}=options,{keyframes:keyframes$1}=options,generatorFactory=type||keyframes;generatorFactory!==keyframes&&typeof keyframes$1[0]!="number"&&(this.mixKeyframes=pipe(percentToProgress,mix(keyframes$1[0],keyframes$1[1])),keyframes$1=[0,100]);let generator=generatorFactory({...options,keyframes:keyframes$1});repeatType==="mirror"&&(this.mirroredGenerator=generatorFactory({...options,keyframes:[...keyframes$1].reverse(),velocity:-velocity})),generator.calculatedDuration===null&&(generator.calculatedDuration=calcGeneratorDuration(generator));let{calculatedDuration}=generator;this.calculatedDuration=calculatedDuration,this.resolvedDuration=calculatedDuration+repeatDelay,this.totalDuration=this.resolvedDuration*(repeat+1)-repeatDelay,this.generator=generator}updateTime(timestamp){let animationTime=Math.round(timestamp-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=animationTime}tick(timestamp,sample=!1){let{generator,totalDuration,mixKeyframes,mirroredGenerator,resolvedDuration,calculatedDuration}=this;if(this.startTime===null)return generator.next(0);let{delay:delay2=0,keyframes:keyframes2,repeat,repeatType,repeatDelay,type,onUpdate,finalKeyframe}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,timestamp):this.speed<0&&(this.startTime=Math.min(timestamp-totalDuration/this.speed,this.startTime)),sample?this.currentTime=timestamp:this.updateTime(timestamp);let timeWithoutDelay=this.currentTime-delay2*(this.playbackSpeed>=0?1:-1),isInDelayPhase=this.playbackSpeed>=0?timeWithoutDelay<0:timeWithoutDelay>totalDuration;this.currentTime=Math.max(timeWithoutDelay,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=totalDuration);let elapsed=this.currentTime,frameGenerator=generator;if(repeat){let progress2=Math.min(this.currentTime,totalDuration)/resolvedDuration,currentIteration=Math.floor(progress2),iterationProgress=progress2%1;!iterationProgress&&progress2>=1&&(iterationProgress=1),iterationProgress===1&&currentIteration--,currentIteration=Math.min(currentIteration,repeat+1),currentIteration%2&&(repeatType==="reverse"?(iterationProgress=1-iterationProgress,repeatDelay&&(iterationProgress-=repeatDelay/resolvedDuration)):repeatType==="mirror"&&(frameGenerator=mirroredGenerator)),elapsed=clamp(0,1,iterationProgress)*resolvedDuration}let state;isInDelayPhase?(this.delayState.value=keyframes2[0],state=this.delayState):state=frameGenerator.next(elapsed),mixKeyframes&&!isInDelayPhase&&(state.value=mixKeyframes(state.value));let{done}=state;!isInDelayPhase&&calculatedDuration!==null&&(done=this.playbackSpeed>=0?this.currentTime>=totalDuration:this.currentTime<=0);let isAnimationFinished=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&done);return isAnimationFinished&&type!==inertia&&(state.value=getFinalKeyframe(keyframes2,this.options,finalKeyframe,this.speed)),onUpdate&&onUpdate(state.value),isAnimationFinished&&this.finish(),state}then(resolve,reject){return this.finished.then(resolve,reject)}get duration(){return millisecondsToSeconds(this.calculatedDuration)}get iterationDuration(){let{delay:delay2=0}=this.options||{};return this.duration+millisecondsToSeconds(delay2)}get time(){return millisecondsToSeconds(this.currentTime)}set time(newTime){newTime=secondsToMilliseconds(newTime),this.currentTime=newTime,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=newTime:this.driver&&(this.startTime=this.driver.now()-newTime/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=newTime,this.tick(newTime))}getGeneratorVelocity(){let t=this.currentTime;if(t<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(t);let current2=this.generator.next(t).value;return getGeneratorVelocity(s=>this.generator.next(s).value,t,current2)}get speed(){return this.playbackSpeed}set speed(newSpeed){let hasChanged=this.playbackSpeed!==newSpeed;hasChanged&&this.driver&&this.updateTime(time.now()),this.playbackSpeed=newSpeed,hasChanged&&this.driver&&(this.time=millisecondsToSeconds(this.currentTime))}play(){if(this.isStopped)return;let{driver=frameloopDriver,startTime}=this.options;this.driver||(this.driver=driver(timestamp=>this.tick(timestamp))),this.options.onPlay?.();let now2=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=now2):this.holdTime!==null?this.startTime=now2-this.holdTime:this.startTime||(this.startTime=startTime??now2),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(time.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(sampleTime){return this.startTime=0,this.tick(sampleTime,!0)}attachTimeline(timeline){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),timeline.observe(this)}};function animateValue(options){return new JSAnimation(options)}function fillWildcards(keyframes2){for(let i=1;i<keyframes2.length;i++)keyframes2[i]??(keyframes2[i]=keyframes2[i-1])}var radToDeg=rad=>rad*180/Math.PI,rotate=v=>{let angle=radToDeg(Math.atan2(v[1],v[0]));return rebaseAngle(angle)},matrix2dParsers={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:v=>(Math.abs(v[0])+Math.abs(v[3]))/2,rotate,rotateZ:rotate,skewX:v=>radToDeg(Math.atan(v[1])),skewY:v=>radToDeg(Math.atan(v[2])),skew:v=>(Math.abs(v[1])+Math.abs(v[2]))/2},rebaseAngle=angle=>(angle=angle%360,angle<0&&(angle+=360),angle),rotateZ=rotate,scaleX=v=>Math.sqrt(v[0]*v[0]+v[1]*v[1]),scaleY=v=>Math.sqrt(v[4]*v[4]+v[5]*v[5]),matrix3dParsers={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX,scaleY,scale:v=>(scaleX(v)+scaleY(v))/2,rotateX:v=>rebaseAngle(radToDeg(Math.atan2(v[6],v[5]))),rotateY:v=>rebaseAngle(radToDeg(Math.atan2(-v[2],v[0]))),rotateZ,rotate:rotateZ,skewX:v=>radToDeg(Math.atan(v[4])),skewY:v=>radToDeg(Math.atan(v[1])),skew:v=>(Math.abs(v[1])+Math.abs(v[4]))/2};function defaultTransformValue(name){return name.includes("scale")?1:0}function parseValueFromTransform(transform2,name){if(!transform2||transform2==="none")return defaultTransformValue(name);let matrix3dMatch=transform2.match(/^matrix3d\(([-\d.e\s,]+)\)$/u),parsers,match;if(matrix3dMatch)parsers=matrix3dParsers,match=matrix3dMatch;else{let matrix2dMatch=transform2.match(/^matrix\(([-\d.e\s,]+)\)$/u);parsers=matrix2dParsers,match=matrix2dMatch}if(!match)return defaultTransformValue(name);let valueParser=parsers[name],values=match[1].split(",").map(convertTransformToNumber);return typeof valueParser=="function"?valueParser(values):values[valueParser]}var readTransformValue=(instance,name)=>{let{transform:transform2="none"}=getComputedStyle(instance);return parseValueFromTransform(transform2,name)};function convertTransformToNumber(value){return parseFloat(value.trim())}var transformPropOrder=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],transformProps=new Set([...transformPropOrder,"pathRotation"]);var isNumOrPxType=v=>v===number||v===px,transformKeys=new Set(["x","y","z"]),nonTranslationalTransformKeys=transformPropOrder.filter(key=>!transformKeys.has(key));function removeNonTranslationalTransform(visualElement){let removedTransforms=[];return nonTranslationalTransformKeys.forEach(key=>{let value=visualElement.getValue(key);value!==void 0&&(removedTransforms.push([key,value.get()]),value.set(key.startsWith("scale")?1:0))}),removedTransforms}var positionalValues={width:({x},{paddingLeft="0",paddingRight="0",boxSizing})=>{let width=x.max-x.min;return boxSizing==="border-box"?width:width-parseFloat(paddingLeft)-parseFloat(paddingRight)},height:({y},{paddingTop="0",paddingBottom="0",boxSizing})=>{let height=y.max-y.min;return boxSizing==="border-box"?height:height-parseFloat(paddingTop)-parseFloat(paddingBottom)},top:(_bbox,{top})=>parseFloat(top),left:(_bbox,{left})=>parseFloat(left),bottom:({y},{top})=>parseFloat(top)+(y.max-y.min),right:({x},{left})=>parseFloat(left)+(x.max-x.min),x:(_bbox,{transform:transform2})=>parseValueFromTransform(transform2,"x"),y:(_bbox,{transform:transform2})=>parseValueFromTransform(transform2,"y")};positionalValues.translateX=positionalValues.x;positionalValues.translateY=positionalValues.y;var toResolve=new Set,isScheduled=!1,anyNeedsMeasurement=!1,isForced=!1;function measureAllKeyframes(){if(anyNeedsMeasurement){let resolversToMeasure=Array.from(toResolve).filter(resolver=>resolver.needsMeasurement),elementsToMeasure=new Set(resolversToMeasure.map(resolver=>resolver.element)),transformsToRestore=new Map;elementsToMeasure.forEach(element=>{let removedTransforms=removeNonTranslationalTransform(element);removedTransforms.length&&(transformsToRestore.set(element,removedTransforms),element.render())}),resolversToMeasure.forEach(resolver=>resolver.measureInitialState()),elementsToMeasure.forEach(element=>{element.render();let restore=transformsToRestore.get(element);restore&&restore.forEach(([key,value])=>{element.getValue(key)?.set(value)})}),resolversToMeasure.forEach(resolver=>resolver.measureEndState()),resolversToMeasure.forEach(resolver=>{resolver.suspendedScrollY!==void 0&&window.scrollTo(0,resolver.suspendedScrollY)})}anyNeedsMeasurement=!1,isScheduled=!1,toResolve.forEach(resolver=>resolver.complete(isForced)),toResolve.clear()}function readAllKeyframes(){toResolve.forEach(resolver=>{resolver.readKeyframes(),resolver.needsMeasurement&&(anyNeedsMeasurement=!0)})}function flushKeyframeResolvers(){isForced=!0,readAllKeyframes(),measureAllKeyframes(),isForced=!1}var KeyframeResolver=class{constructor(unresolvedKeyframes,onComplete,name,motionValue2,element,isAsync=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...unresolvedKeyframes],this.onComplete=onComplete,this.name=name,this.motionValue=motionValue2,this.element=element,this.isAsync=isAsync}scheduleResolve(){this.state="scheduled",this.isAsync?(toResolve.add(this),isScheduled||(isScheduled=!0,frame.read(readAllKeyframes),frame.resolveKeyframes(measureAllKeyframes))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes,name,element,motionValue:motionValue2}=this;if(unresolvedKeyframes[0]===null){let currentValue=motionValue2?.get(),finalKeyframe=unresolvedKeyframes[unresolvedKeyframes.length-1];if(currentValue!==void 0)unresolvedKeyframes[0]=currentValue;else if(element&&name){let valueAsRead=element.readValue(name,finalKeyframe);valueAsRead!=null&&(unresolvedKeyframes[0]=valueAsRead)}unresolvedKeyframes[0]===void 0&&(unresolvedKeyframes[0]=finalKeyframe),motionValue2&&currentValue===void 0&&motionValue2.set(unresolvedKeyframes[0])}fillWildcards(unresolvedKeyframes)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(isForcedComplete=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,isForcedComplete),toResolve.delete(this)}cancel(){this.state==="scheduled"&&(toResolve.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}};var isCSSVar=name=>name.startsWith("--");function setStyle(element,name,value){isCSSVar(name)?element.style.setProperty(name,value):element.style[name]=value}var supportsFlags={};function memoSupports(callback,supportsFlag){let memoized=memo(callback);return()=>supportsFlags[supportsFlag]??memoized()}var supportsScrollTimeline=memoSupports(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),supportsViewTimeline=memoSupports(()=>window.ViewTimeline!==void 0,"viewTimeline");var supportsLinearEasing=memoSupports(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing");var cubicBezierAsString=([a,b,c,d])=>`cubic-bezier(${a}, ${b}, ${c}, ${d})`;var supportedWaapiEasing={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:cubicBezierAsString([0,.65,.55,1]),circOut:cubicBezierAsString([.55,0,1,.45]),backIn:cubicBezierAsString([.31,.01,.66,-.59]),backOut:cubicBezierAsString([.33,1.53,.69,.99])};function mapEasingToNativeEasing(easing,duration){if(easing)return typeof easing=="function"?supportsLinearEasing()?generateLinearEasing(easing,duration):"ease-out":isBezierDefinition(easing)?cubicBezierAsString(easing):Array.isArray(easing)?easing.map(segmentEasing=>mapEasingToNativeEasing(segmentEasing,duration)||supportedWaapiEasing.easeOut):supportedWaapiEasing[easing]}function startWaapiAnimation(element,valueName,keyframes2,{delay:delay2=0,duration=300,repeat=0,repeatType="loop",ease:ease2="easeOut",times}={},pseudoElement=void 0){let keyframeOptions={[valueName]:keyframes2};times&&(keyframeOptions.offset=times);let easing=mapEasingToNativeEasing(ease2,duration);Array.isArray(easing)&&(keyframeOptions.easing=easing);let options={delay:delay2,duration,easing:Array.isArray(easing)?"linear":easing,fill:"both",iterations:repeat+1,direction:repeatType==="reverse"?"alternate":"normal"};return pseudoElement&&(options.pseudoElement=pseudoElement),element.animate(keyframeOptions,options)}function isGenerator(type){return typeof type=="function"&&"applyToOptions"in type}function applyGeneratorOptions({type,...options}){return isGenerator(type)&&supportsLinearEasing()?type.applyToOptions(options):(options.duration??(options.duration=300),options.ease??(options.ease="easeOut"),options)}var NativeAnimation=class extends WithPromise{constructor(options){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!options)return;let{element,name,keyframes:keyframes2,pseudoElement,allowFlatten=!1,finalKeyframe,onComplete}=options;this.isPseudoElement=!!pseudoElement,this.allowFlatten=allowFlatten,this.options=options,invariant(typeof options.type!="string",`Mini animate() doesn't support "type" as a string.`,"mini-spring");let transition=applyGeneratorOptions(options);this.animation=startWaapiAnimation(element,name,keyframes2,transition,pseudoElement),transition.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!pseudoElement){let keyframe=getFinalKeyframe(keyframes2,this.options,finalKeyframe,this.speed);this.updateMotionValue&&this.updateMotionValue(keyframe),setStyle(element,name,keyframe),this.animation.cancel()}onComplete?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state}=this;state==="idle"||state==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let element=this.options?.element;!this.isPseudoElement&&element?.isConnected&&this.animation.commitStyles?.()}get duration(){let duration=this.animation.effect?.getComputedTiming?.().duration||0;return millisecondsToSeconds(Number(duration))}get iterationDuration(){let{delay:delay2=0}=this.options||{};return this.duration+millisecondsToSeconds(delay2)}get time(){return millisecondsToSeconds(Number(this.animation.currentTime)||0)}set time(newTime){let wasFinished=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=secondsToMilliseconds(newTime),wasFinished&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(newSpeed){newSpeed<0&&(this.finishedTime=null),this.animation.playbackRate=newSpeed}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(newStartTime){this.manualStartTime=this.animation.startTime=newStartTime}attachTimeline({timeline,rangeStart,rangeEnd,observe}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,timeline&&supportsScrollTimeline()?(this.animation.timeline=timeline,rangeStart&&(this.animation.rangeStart=rangeStart),rangeEnd&&(this.animation.rangeEnd=rangeEnd),noop):observe(this)}};var unsupportedEasingFunctions={anticipate,backInOut,circInOut};function isUnsupportedEase(key){return key in unsupportedEasingFunctions}function replaceStringEasing(transition){typeof transition.ease=="string"&&isUnsupportedEase(transition.ease)&&(transition.ease=unsupportedEasingFunctions[transition.ease])}var sampleDelta=10,NativeAnimationExtended=class extends NativeAnimation{constructor(options){replaceStringEasing(options),replaceTransitionType(options),super(options),options.startTime!==void 0&&options.autoplay!==!1&&(this.startTime=options.startTime),this.options=options}updateMotionValue(value){let{motionValue:motionValue2,onUpdate,onComplete,element,...options}=this.options;if(!motionValue2)return;if(value!==void 0){motionValue2.set(value);return}let sampleAnimation=new JSAnimation({...options,autoplay:!1}),sampleTime=Math.max(sampleDelta,time.now()-this.startTime),delta=clamp(0,sampleDelta,sampleTime-sampleDelta),current2=sampleAnimation.sample(sampleTime).value,{name}=this.options;element&&name&&setStyle(element,name,current2),motionValue2.setWithVelocity(sampleAnimation.sample(Math.max(0,sampleTime-delta)).value,current2,delta),sampleAnimation.stop()}};var isAnimatable=(value,name)=>name==="zIndex"?!1:!!(typeof value=="number"||Array.isArray(value)||typeof value=="string"&&(complex.test(value)||value==="0")&&!value.startsWith("url("));function hasKeyframesChanged(keyframes2){let current2=keyframes2[0];if(keyframes2.length===1)return!0;for(let i=0;i<keyframes2.length;i++)if(keyframes2[i]!==current2)return!0}function canAnimate(keyframes2,name,type,velocity){let originKeyframe=keyframes2[0];if(originKeyframe===null)return!1;if(name==="display"||name==="visibility")return!0;let targetKeyframe=keyframes2[keyframes2.length-1],isOriginAnimatable=isAnimatable(originKeyframe,name),isTargetAnimatable=isAnimatable(targetKeyframe,name);return warning(isOriginAnimatable===isTargetAnimatable,`You are trying to animate ${name} from "${originKeyframe}" to "${targetKeyframe}". "${isOriginAnimatable?targetKeyframe:originKeyframe}" is not an animatable value.`,"value-not-animatable"),!isOriginAnimatable||!isTargetAnimatable?!1:hasKeyframesChanged(keyframes2)||(type==="spring"||isGenerator(type))&&velocity}function makeAnimationInstant(options){options.duration=0,options.type="keyframes"}var acceleratedValues=new Set(["opacity","clipPath","filter","transform","backgroundColor"]);var browserColorFunctions=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function hasBrowserOnlyColors(keyframes2){for(let i=0;i<keyframes2.length;i++)if(typeof keyframes2[i]=="string"&&browserColorFunctions.test(keyframes2[i]))return!0;return!1}var colorProperties=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),supportsWaapi=memo(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function supportsBrowserAnimation(options){let{motionValue:motionValue2,name,repeatDelay,repeatType,damping,type,keyframes:keyframes2}=options,subject=motionValue2?.owner?.current;if(!(subject instanceof HTMLElement)&&!(subject instanceof SVGElement))return!1;let{onUpdate,transformTemplate}=motionValue2.owner.getProps();return supportsWaapi()&&name&&(acceleratedValues.has(name)||colorProperties.has(name)&&hasBrowserOnlyColors(keyframes2))&&(name!=="transform"||!transformTemplate)&&!onUpdate&&!repeatDelay&&repeatType!=="mirror"&&damping!==0&&type!=="inertia"}var MAX_RESOLVE_DELAY=40,AsyncMotionValueAnimation=class extends WithPromise{constructor({autoplay=!0,delay:delay2=0,type="keyframes",repeat=0,repeatDelay=0,repeatType="loop",keyframes:keyframes2,name,motionValue:motionValue2,element,...options}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=time.now();let optionsWithDefaults={autoplay,delay:delay2,type,repeat,repeatDelay,repeatType,name,motionValue:motionValue2,element,...options},KeyframeResolver$1=element?.KeyframeResolver||KeyframeResolver;this.keyframeResolver=new KeyframeResolver$1(keyframes2,(resolvedKeyframes,finalKeyframe,forced)=>this.onKeyframesResolved(resolvedKeyframes,finalKeyframe,optionsWithDefaults,!forced),name,motionValue2,element),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(keyframes2,finalKeyframe,options,sync2){this.keyframeResolver=void 0;let{name,type,velocity,delay:delay2,isHandoff,onUpdate}=options;this.resolvedAt=time.now();let canAnimateValue=!0;canAnimate(keyframes2,name,type,velocity)||(canAnimateValue=!1,(MotionGlobalConfig.instantAnimations||!delay2)&&onUpdate?.(getFinalKeyframe(keyframes2,options,finalKeyframe)),keyframes2[0]=keyframes2[keyframes2.length-1],makeAnimationInstant(options),options.repeat=0);let resolvedOptions={startTime:sync2?this.resolvedAt?this.resolvedAt-this.createdAt>MAX_RESOLVE_DELAY?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe,...options,keyframes:keyframes2},useWaapi=canAnimateValue&&!isHandoff&&supportsBrowserAnimation(resolvedOptions),element=resolvedOptions.motionValue?.owner?.current,animation;if(useWaapi)try{animation=new NativeAnimationExtended({...resolvedOptions,element})}catch{animation=new JSAnimation(resolvedOptions)}else animation=new JSAnimation(resolvedOptions);animation.finished.then(()=>{this.notifyFinished()}).catch(noop),this.pendingTimeline&&(this.stopTimeline=animation.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=animation}get finished(){return this._animation?this.animation.finished:this._finished}then(onResolve,_onReject){return this.finished.finally(onResolve).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),flushKeyframeResolvers()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(newTime){this.animation.time=newTime}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(newSpeed){this.animation.speed=newSpeed}get startTime(){return this.animation.startTime}attachTimeline(timeline){return this._animation?this.stopTimeline=this.animation.attachTimeline(timeline):this.pendingTimeline=timeline,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}};var GroupAnimation=class{constructor(animations){this.stop=()=>this.runAll("stop"),this.animations=animations.filter(Boolean)}get finished(){return Promise.all(this.animations.map(animation=>animation.finished))}getAll(propName){return this.animations[0][propName]}setAll(propName,newValue){for(let i=0;i<this.animations.length;i++)this.animations[i][propName]=newValue}attachTimeline(timeline){let subscriptions=this.animations.map(animation=>animation.attachTimeline(timeline));return()=>{subscriptions.forEach((cancel,i)=>{cancel&&cancel(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(time2){this.setAll("time",time2)}get speed(){return this.getAll("speed")}set speed(speed){this.setAll("speed",speed)}get state(){return this.getAll("state")}get startTime(){return this.getAll("startTime")}get duration(){return getMax(this.animations,"duration")}get iterationDuration(){return getMax(this.animations,"iterationDuration")}runAll(methodName){this.animations.forEach(controls=>controls[methodName]())}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}};function getMax(animations,propName){let max=0;for(let i=0;i<animations.length;i++){let value=animations[i][propName];value!==null&&value>max&&(max=value)}return max}var GroupAnimationWithThen=class extends GroupAnimation{then(onResolve,_onReject){return this.finished.finally(onResolve).then(()=>{})}};var NativeAnimationWrapper=class extends NativeAnimation{constructor(animation){super(),this.animation=animation,animation.onfinish=()=>{this.finishedTime=this.time,this.notifyFinished()}}};var animationMaps=new WeakMap,animationMapKey=(name,pseudoElement="")=>`${name}:${pseudoElement}`;function getAnimationMap(element){let map=animationMaps.get(element);return map||(map=new Map,animationMaps.set(element,map)),map}function calcChildStagger(children,child,delayChildren,staggerChildren=0,staggerDirection=1){let index=Array.from(children).sort((a,b)=>a.sortNodePosition(b)).indexOf(child),numChildren=children.size,maxStaggerDuration=(numChildren-1)*staggerChildren;return typeof delayChildren=="function"?delayChildren(index,numChildren):staggerDirection===1?index*staggerChildren:maxStaggerDuration-index*staggerChildren}var MAX_VELOCITY_DELTA=30,isFloat=value=>!isNaN(parseFloat(value)),collectMotionValues={current:void 0},MotionValue=class{constructor(init,options={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=v=>{let currentTime=time.now();if(this.updatedAt!==currentTime&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(v),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let dependent of this.dependents)dependent.dirty()},this.hasAnimated=!1,this.setCurrent(init),this.owner=options.owner}setCurrent(current2){this.current=current2,this.updatedAt=time.now(),this.canTrackVelocity===null&&current2!==void 0&&(this.canTrackVelocity=isFloat(this.current))}setPrevFrameValue(prevFrameValue=this.current){this.prevFrameValue=prevFrameValue,this.prevUpdatedAt=this.updatedAt}onChange(subscription){return this.on("change",subscription)}on(eventName,callback){this.events[eventName]||(this.events[eventName]=new SubscriptionManager);let unsubscribe=this.events[eventName].add(callback);return eventName==="change"?()=>{unsubscribe(),frame.read(()=>{this.events.change.getSize()||this.stop()})}:unsubscribe}clearListeners(){for(let eventManagers in this.events)this.events[eventManagers].clear()}attach(passiveEffect,stopPassiveEffect){this.passiveEffect=passiveEffect,this.stopPassiveEffect=stopPassiveEffect}set(v){this.passiveEffect?this.passiveEffect(v,this.updateAndNotify):this.updateAndNotify(v)}setWithVelocity(prev,current2,delta){this.set(current2),this.prev=void 0,this.prevFrameValue=prev,this.prevUpdatedAt=this.updatedAt-delta}jump(v,endAnimation=!0){this.updateAndNotify(v),this.prev=v,this.prevUpdatedAt=this.prevFrameValue=void 0,endAnimation&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(dependent){this.dependents||(this.dependents=new Set),this.dependents.add(dependent)}removeDependent(dependent){this.dependents&&this.dependents.delete(dependent)}get(){return collectMotionValues.current&&collectMotionValues.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let currentTime=time.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||currentTime-this.updatedAt>MAX_VELOCITY_DELTA)return 0;let delta=Math.min(this.updatedAt-this.prevUpdatedAt,MAX_VELOCITY_DELTA);return velocityPerSecond(parseFloat(this.current)-parseFloat(this.prevFrameValue),delta)}start(startAnimation){return this.stop(),new Promise(resolve=>{this.hasAnimated=!0,this.animation=startAnimation(resolve),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}};function motionValue(init,options){return new MotionValue(init,options)}function resolveTransition(transition,parentTransition){if(transition?.inherit&&parentTransition){let{inherit:_,...rest}=transition;return{...parentTransition,...rest}}return transition}function getValueTransition(transition,key){let valueTransition=transition?.[key]??transition?.default??transition;return valueTransition!==transition?resolveTransition(valueTransition,transition):valueTransition}var underDampedSpring={type:"spring",stiffness:500,damping:25,restSpeed:10},criticallyDampedSpring=target=>({type:"spring",stiffness:550,damping:target===0?2*Math.sqrt(550):30,restSpeed:10}),keyframesTransition={type:"keyframes",duration:.8},ease={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},getDefaultTransition=(valueKey,{keyframes:keyframes2})=>keyframes2.length>2?keyframesTransition:transformProps.has(valueKey)?valueKey.startsWith("scale")?criticallyDampedSpring(keyframes2[1]):underDampedSpring:ease;var orchestrationKeys=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function isTransitionDefined(transition){for(let key in transition)if(!orchestrationKeys.has(key))return!0;return!1}var animateMotionValue=(name,value,target,transition={},element,isHandoff)=>onComplete=>{let valueTransition=getValueTransition(transition,name)||{},delay2=valueTransition.delay||transition.delay||0,{elapsed=0}=transition;elapsed=elapsed-secondsToMilliseconds(delay2);let options={keyframes:Array.isArray(target)?target:[null,target],ease:"easeOut",velocity:value.getVelocity(),...valueTransition,delay:-elapsed,onUpdate:v=>{value.set(v),valueTransition.onUpdate&&valueTransition.onUpdate(v)},onComplete:()=>{onComplete(),valueTransition.onComplete&&valueTransition.onComplete()},name,motionValue:value,element:isHandoff?void 0:element};isTransitionDefined(valueTransition)||Object.assign(options,getDefaultTransition(name,options)),options.duration&&(options.duration=secondsToMilliseconds(options.duration)),options.repeatDelay&&(options.repeatDelay=secondsToMilliseconds(options.repeatDelay)),options.from!==void 0&&(options.keyframes[0]=options.from);let shouldSkip=!1;if((options.type===!1||options.duration===0&&!options.repeatDelay)&&(makeAnimationInstant(options),options.delay===0&&(shouldSkip=!0)),(MotionGlobalConfig.instantAnimations||MotionGlobalConfig.skipAnimations||element?.shouldSkipAnimations||valueTransition.skipAnimations)&&(shouldSkip=!0,makeAnimationInstant(options),options.delay=0),options.allowFlatten=!valueTransition.type&&!valueTransition.ease,shouldSkip&&!isHandoff&&value.get()!==void 0){let finalKeyframe=getFinalKeyframe(options.keyframes,valueTransition);if(finalKeyframe!==void 0){frame.update(()=>{options.onUpdate(finalKeyframe),options.onComplete()});return}}return valueTransition.isSync?new JSAnimation(options):new AsyncMotionValueAnimation(options)};var MIN_LAYOUT_DISTANCE=20;function bezierPoint(t,origin,control,target){let inv=1-t;return inv*inv*origin+2*inv*t*control+t*t*target}function bezierTangentAngle(t,originX,controlX,targetX,originY,controlY,targetY){let dx=2*(1-t)*(controlX-originX)+2*t*(targetX-controlX),dy=2*(1-t)*(controlY-originY)+2*t*(targetY-controlY);return Math.atan2(dy,dx)*(180/Math.PI)}function computeArcControlPoint(fromX,fromY,toX,toY,strength,peak){let deltaX=toX-fromX,deltaY=toY-fromY,distance2=Math.sqrt(deltaX*deltaX+deltaY*deltaY);if(distance2>0){let normalPerpX=-deltaY/distance2,normalPerpY=deltaX/distance2,desiredHeight=strength*distance2;return{x:fromX+deltaX*peak+normalPerpX*desiredHeight,y:fromY+deltaY*peak+normalPerpY*desiredHeight}}return{x:fromX,y:fromY}}function createArcPath({strength=.5,peak=.5,direction,rotate:rotate2=!1}={}){let rotationScale=rotate2===!0?1:typeof rotate2=="number"?rotate2:0,prevBulgeSign;return(from,to)=>{let dx=to.x-from.x,dy=to.y-from.y,signed;direction==="cw"?signed=-strength:direction==="ccw"?signed=strength:signed=(Math.abs(dx)>=Math.abs(dy)?dx:dy)<0?-strength:strength;let control=computeArcControlPoint(from.x,from.y,to.x,to.y,signed,peak);if(direction===void 0){let isVertical=Math.abs(dx)<Math.abs(dy),midX=from.x+dx*peak,midY=from.y+dy*peak,bulgeSign=Math.sign(isVertical?control.x-midX:control.y-midY);prevBulgeSign!==void 0&&bulgeSign!==0&&bulgeSign!==prevBulgeSign?(signed=-signed,control=computeArcControlPoint(from.x,from.y,to.x,to.y,signed,peak)):bulgeSign!==0&&(prevBulgeSign=bulgeSign)}let tangent0=rotationScale?bezierTangentAngle(0,from.x,control.x,to.x,from.y,control.y,to.y):0,tangent1=rotationScale?bezierTangentAngle(1,from.x,control.x,to.x,from.y,control.y,to.y):0,tangentDelta=rotationScale?wrap(-180,180,tangent1-tangent0):0;return t=>{let out={x:bezierPoint(t,from.x,control.x,to.x),y:bezierPoint(t,from.y,control.y,to.y)};if(rotationScale){let raw=bezierTangentAngle(t,from.x,control.x,to.x,from.y,control.y,to.y),baseline=tangent0+tangentDelta*t;out.rotate=wrap(-180,180,raw-baseline)*rotationScale}return out}}}function arc(options={}){let sample=createArcPath(options);return{interpolateProjection(delta){let tx=delta.x.translate,ty=delta.y.translate;if(!(Math.sqrt(tx*tx+ty*ty)<MIN_LAYOUT_DISTANCE))return sample({x:tx,y:ty},{x:0,y:0})},animateVisualElement(visualElement,target,transition,delay2,animations){if(!("x"in target||"y"in target))return;let xValue=visualElement.getValue("x",visualElement.latestValues.x??0),yValue=visualElement.getValue("y",visualElement.latestValues.y??0),xRaw=target.x,yRaw=target.y,xFrom=(Array.isArray(xRaw)&&xRaw[0]!=null?xRaw[0]:xValue?.get())??0,yFrom=(Array.isArray(yRaw)&&yRaw[0]!=null?yRaw[0]:yValue?.get())??0,xTo=Array.isArray(xRaw)?xRaw[xRaw.length-1]:xRaw??xFrom,yTo=Array.isArray(yRaw)?yRaw[yRaw.length-1]:yRaw??yFrom,interpolate2=sample({x:xFrom,y:yFrom},{x:xTo,y:yTo}),pathRotationValue=interpolate2(0).rotate!==void 0?visualElement.getValue("pathRotation",0):void 0,pathTransition={delay:delay2,...getValueTransition(transition||{},"x")};delete pathTransition.path;let progress2=motionValue(0);progress2.start(animateMotionValue("",progress2,[0,1e3],{...pathTransition,isSync:!0,velocity:0,onUpdate:latest=>{let point2=interpolate2(latest/1e3);xValue?.set(point2.x),yValue?.set(point2.y),pathRotationValue&&point2.rotate!==void 0&&pathRotationValue.set(point2.rotate)},onComplete:()=>{xValue?.set(xTo),yValue?.set(yTo),pathRotationValue?.set(0)},onStop:()=>pathRotationValue?.set(0),onCancel:()=>pathRotationValue?.set(0)})),progress2.animation&&animations.push(progress2.animation),delete target.x,delete target.y}}}var splitCSSVariableRegex=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function parseCSSVariable(current2){let match=splitCSSVariableRegex.exec(current2);if(!match)return[,];let[,token1,token2,fallback]=match;return[`--${token1??token2}`,fallback]}var maxDepth=4;function getVariableValue(current2,element,depth=1){invariant(depth<=maxDepth,`Max CSS variable fallback depth detected in property "${current2}". This may indicate a circular fallback dependency.`,"max-css-var-depth");let[token,fallback]=parseCSSVariable(current2);if(!token)return;let resolved=window.getComputedStyle(element).getPropertyValue(token);if(resolved){let trimmed=resolved.trim();return isNumericalString(trimmed)?parseFloat(trimmed):trimmed}return isCSSVariableToken(fallback)?getVariableValue(fallback,element,depth+1):fallback}function getValueState(visualElement){let state=[{},{}];return visualElement?.values.forEach((value,key)=>{state[0][key]=value.get(),state[1][key]=value.getVelocity()}),state}function resolveVariantFromProps(props,definition,custom,visualElement){if(typeof definition=="function"){let[current2,velocity]=getValueState(visualElement);definition=definition(custom!==void 0?custom:props.custom,current2,velocity)}if(typeof definition=="string"&&(definition=props.variants&&props.variants[definition]),typeof definition=="function"){let[current2,velocity]=getValueState(visualElement);definition=definition(custom!==void 0?custom:props.custom,current2,velocity)}return definition}function resolveVariant(visualElement,definition,custom){let props=visualElement.getProps();return resolveVariantFromProps(props,definition,custom!==void 0?custom:props.custom,visualElement)}var positionalKeys=new Set(["width","height","top","left","right","bottom",...transformPropOrder]);var isKeyframesTarget=v=>Array.isArray(v);function setMotionValue(visualElement,key,value){visualElement.hasValue(key)?visualElement.getValue(key).set(value):visualElement.addValue(key,motionValue(value))}function resolveFinalValueInKeyframes(v){return isKeyframesTarget(v)?v[v.length-1]||0:v}function setTarget(visualElement,definition){let resolved=resolveVariant(visualElement,definition),{transitionEnd={},transition={},...target}=resolved||{};target={...target,...transitionEnd};for(let key in target){let value=resolveFinalValueInKeyframes(target[key]);setMotionValue(visualElement,key,value)}}var isMotionValue=value=>!!(value&&value.getVelocity);function isWillChangeMotionValue(value){return!!(isMotionValue(value)&&value.add)}function addValueToWillChange(visualElement,key){let willChange=visualElement.getValue("willChange");if(isWillChangeMotionValue(willChange))return willChange.add(key);if(!willChange&&MotionGlobalConfig.WillChange){let newWillChange=new MotionGlobalConfig.WillChange("auto");visualElement.addValue("willChange",newWillChange),newWillChange.add(key)}}function camelToDash(str){return str.replace(/([A-Z])/g,match=>`-${match.toLowerCase()}`)}var optimizedAppearDataId="framerAppearId",optimizedAppearDataAttribute="data-"+camelToDash(optimizedAppearDataId);function getOptimisedAppearId(visualElement){return visualElement.props[optimizedAppearDataAttribute]}function shouldBlockAnimation({protectedKeys,needsAnimating},key){let shouldBlock=protectedKeys.hasOwnProperty(key)&&needsAnimating[key]!==!0;return needsAnimating[key]=!1,shouldBlock}function animateTarget(visualElement,targetAndTransition,{delay:delay2=0,transitionOverride,type}={}){let{transition,transitionEnd,...target}=targetAndTransition,defaultTransition=visualElement.getDefaultTransition();transition=transition?resolveTransition(transition,defaultTransition):defaultTransition;let reduceMotion=transition?.reduceMotion,skipAnimations=transition?.skipAnimations;transitionOverride&&(transition=transitionOverride);let animations=[],animationTypeState=type&&visualElement.animationState&&visualElement.animationState.getState()[type],path=transition?.path;path&&path.animateVisualElement(visualElement,target,transition,delay2,animations);for(let key in target){let value=visualElement.getValue(key,visualElement.latestValues[key]??null),valueTarget=target[key];if(valueTarget===void 0||animationTypeState&&shouldBlockAnimation(animationTypeState,key))continue;let valueTransition={delay:delay2,...getValueTransition(transition||{},key)};skipAnimations&&(valueTransition.skipAnimations=!0);let currentValue=value.get();if(currentValue!==void 0&&!value.isAnimating()&&!Array.isArray(valueTarget)&&valueTarget===currentValue&&!valueTransition.velocity){frame.update(()=>value.set(valueTarget));continue}let isHandoff=!1;if(window.MotionHandoffAnimation){let appearId=getOptimisedAppearId(visualElement);if(appearId){let startTime=window.MotionHandoffAnimation(appearId,key,frame);startTime!==null&&(valueTransition.startTime=startTime,isHandoff=!0)}}addValueToWillChange(visualElement,key);let shouldReduceMotion=reduceMotion??visualElement.shouldReduceMotion;value.start(animateMotionValue(key,value,valueTarget,shouldReduceMotion&&positionalKeys.has(key)?{type:!1}:valueTransition,visualElement,isHandoff));let animation=value.animation;animation&&animations.push(animation)}if(transitionEnd){let applyTransitionEnd=()=>frame.update(()=>{transitionEnd&&setTarget(visualElement,transitionEnd)});animations.length?Promise.all(animations).then(applyTransitionEnd):applyTransitionEnd()}return animations}function animateVariant(visualElement,variant,options={}){let resolved=resolveVariant(visualElement,variant,options.type==="exit"?visualElement.presenceContext?.custom:void 0),{transition=visualElement.getDefaultTransition()||{}}=resolved||{};options.transitionOverride&&(transition=options.transitionOverride);let getAnimation=resolved?()=>Promise.all(animateTarget(visualElement,resolved,options)):()=>Promise.resolve(),getChildAnimations=visualElement.variantChildren&&visualElement.variantChildren.size?(forwardDelay=0)=>{let{delayChildren=0,staggerChildren,staggerDirection}=transition;return animateChildren(visualElement,variant,forwardDelay,delayChildren,staggerChildren,staggerDirection,options)}:()=>Promise.resolve(),{when}=transition;if(when){let[first,last]=when==="beforeChildren"?[getAnimation,getChildAnimations]:[getChildAnimations,getAnimation];return first().then(()=>last())}else return Promise.all([getAnimation(),getChildAnimations(options.delay)])}function animateChildren(visualElement,variant,delay2=0,delayChildren=0,staggerChildren=0,staggerDirection=1,options){let animations=[];for(let child of visualElement.variantChildren)child.notify("AnimationStart",variant),animations.push(animateVariant(child,variant,{...options,delay:delay2+(typeof delayChildren=="function"?0:delayChildren)+calcChildStagger(visualElement.variantChildren,child,delayChildren,staggerChildren,staggerDirection)}).then(()=>child.notify("AnimationComplete",variant)));return Promise.all(animations)}function animateVisualElement(visualElement,definition,options={}){visualElement.notify("AnimationStart",definition);let animation;if(Array.isArray(definition)){let animations=definition.map(variant=>animateVariant(visualElement,variant,options));animation=Promise.all(animations)}else if(typeof definition=="string")animation=animateVariant(visualElement,definition,options);else{let resolvedDefinition=typeof definition=="function"?resolveVariant(visualElement,definition,options.custom):definition;animation=Promise.all(animateTarget(visualElement,resolvedDefinition,options))}return animation.then(()=>{visualElement.notify("AnimationComplete",definition)})}var auto={test:v=>v==="auto",parse:v=>v};var testValueType=v=>type=>type.test(v);var dimensionValueTypes=[number,px,percent,degrees,vw,vh,auto],findDimensionValueType=v=>dimensionValueTypes.find(testValueType(v));function isNone(value){return typeof value=="number"?value===0:value!==null?value==="none"||value==="0"||isZeroValueString(value):!0}var maxDefaults=new Set(["brightness","contrast","saturate","opacity"]);function applyDefaultFilter(v){let[name,value]=v.slice(0,-1).split("(");if(name==="drop-shadow")return v;let[number2]=value.match(floatRegex)||[];if(!number2)return v;let unit=value.replace(number2,""),defaultValue=maxDefaults.has(name)?1:0;return number2!==value&&(defaultValue*=100),name+"("+defaultValue+unit+")"}var functionRegex=/\b([a-z-]*)\(.*?\)/gu,filter={...complex,getAnimatableNone:v=>{let functions=v.match(functionRegex);return functions?functions.map(applyDefaultFilter).join(" "):v}};var mask={...complex,getAnimatableNone:v=>{let parsed=complex.parse(v);return complex.createTransformer(v)(parsed.map(v2=>typeof v2=="number"?0:typeof v2=="object"?{...v2,alpha:1}:v2))}};var int={...number,transform:Math.round};var transformValueTypes={rotate:degrees,pathRotation:degrees,rotateX:degrees,rotateY:degrees,rotateZ:degrees,scale,scaleX:scale,scaleY:scale,scaleZ:scale,skew:degrees,skewX:degrees,skewY:degrees,distance:px,translateX:px,translateY:px,translateZ:px,x:px,y:px,z:px,perspective:px,transformPerspective:px,opacity:alpha,originX:progressPercentage,originY:progressPercentage,originZ:px};var numberValueTypes={borderWidth:px,borderTopWidth:px,borderRightWidth:px,borderBottomWidth:px,borderLeftWidth:px,borderRadius:px,borderTopLeftRadius:px,borderTopRightRadius:px,borderBottomRightRadius:px,borderBottomLeftRadius:px,width:px,maxWidth:px,height:px,maxHeight:px,top:px,right:px,bottom:px,left:px,inset:px,insetBlock:px,insetBlockStart:px,insetBlockEnd:px,insetInline:px,insetInlineStart:px,insetInlineEnd:px,padding:px,paddingTop:px,paddingRight:px,paddingBottom:px,paddingLeft:px,paddingBlock:px,paddingBlockStart:px,paddingBlockEnd:px,paddingInline:px,paddingInlineStart:px,paddingInlineEnd:px,margin:px,marginTop:px,marginRight:px,marginBottom:px,marginLeft:px,marginBlock:px,marginBlockStart:px,marginBlockEnd:px,marginInline:px,marginInlineStart:px,marginInlineEnd:px,fontSize:px,backgroundPositionX:px,backgroundPositionY:px,...transformValueTypes,zIndex:int,fillOpacity:alpha,strokeOpacity:alpha,numOctaves:int};var defaultValueTypes={...numberValueTypes,color,backgroundColor:color,outlineColor:color,fill:color,stroke:color,borderColor:color,borderTopColor:color,borderRightColor:color,borderBottomColor:color,borderLeftColor:color,filter,WebkitFilter:filter,mask,WebkitMask:mask},getDefaultValueType=key=>defaultValueTypes[key];var customTypes=new Set([filter,mask]);function getAnimatableNone2(key,value){let defaultValueType=getDefaultValueType(key);return customTypes.has(defaultValueType)||(defaultValueType=complex),defaultValueType.getAnimatableNone?defaultValueType.getAnimatableNone(value):void 0}var invalidTemplates=new Set(["auto","none","0"]);function makeNoneKeyframesAnimatable(unresolvedKeyframes,noneKeyframeIndexes,name){let i=0,animatableTemplate;for(;i<unresolvedKeyframes.length&&!animatableTemplate;){let keyframe=unresolvedKeyframes[i];typeof keyframe=="string"&&!invalidTemplates.has(keyframe)&&analyseComplexValue(keyframe).values.length&&(animatableTemplate=unresolvedKeyframes[i]),i++}if(animatableTemplate&&name)for(let noneIndex of noneKeyframeIndexes)unresolvedKeyframes[noneIndex]=getAnimatableNone2(name,animatableTemplate)}var DOMKeyframesResolver=class extends KeyframeResolver{constructor(unresolvedKeyframes,onComplete,name,motionValue2,element){super(unresolvedKeyframes,onComplete,name,motionValue2,element,!0)}readKeyframes(){let{unresolvedKeyframes,element,name}=this;if(!element||!element.current)return;super.readKeyframes();for(let i=0;i<unresolvedKeyframes.length;i++){let keyframe=unresolvedKeyframes[i];if(typeof keyframe=="string"&&(keyframe=keyframe.trim(),isCSSVariableToken(keyframe))){let resolved=getVariableValue(keyframe,element.current);resolved!==void 0&&(unresolvedKeyframes[i]=resolved),i===unresolvedKeyframes.length-1&&(this.finalKeyframe=keyframe)}}if(this.resolveNoneKeyframes(),!positionalKeys.has(name)||unresolvedKeyframes.length!==2)return;let[origin,target]=unresolvedKeyframes,originType=findDimensionValueType(origin),targetType=findDimensionValueType(target),originHasVar=containsCSSVariable(origin),targetHasVar=containsCSSVariable(target);if(originHasVar!==targetHasVar&&positionalValues[name]){this.needsMeasurement=!0;return}if(originType!==targetType)if(isNumOrPxType(originType)&&isNumOrPxType(targetType))for(let i=0;i<unresolvedKeyframes.length;i++){let value=unresolvedKeyframes[i];typeof value=="string"&&(unresolvedKeyframes[i]=parseFloat(value))}else positionalValues[name]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes,name}=this,noneKeyframeIndexes=[];for(let i=0;i<unresolvedKeyframes.length;i++)(unresolvedKeyframes[i]===null||isNone(unresolvedKeyframes[i]))&&noneKeyframeIndexes.push(i);noneKeyframeIndexes.length&&makeNoneKeyframesAnimatable(unresolvedKeyframes,noneKeyframeIndexes,name)}measureInitialState(){let{element,unresolvedKeyframes,name}=this;if(!element||!element.current)return;name==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=positionalValues[name](element.measureViewportBox(),window.getComputedStyle(element.current)),unresolvedKeyframes[0]=this.measuredOrigin;let measureKeyframe=unresolvedKeyframes[unresolvedKeyframes.length-1];measureKeyframe!==void 0&&element.getValue(name,measureKeyframe).jump(measureKeyframe,!1)}measureEndState(){let{element,name,unresolvedKeyframes}=this;if(!element||!element.current)return;let value=element.getValue(name);value&&value.jump(this.measuredOrigin,!1);let finalKeyframeIndex=unresolvedKeyframes.length-1,finalKeyframe=unresolvedKeyframes[finalKeyframeIndex];unresolvedKeyframes[finalKeyframeIndex]=positionalValues[name](element.measureViewportBox(),window.getComputedStyle(element.current)),finalKeyframe!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=finalKeyframe),this.removedTransforms?.length&&this.removedTransforms.forEach(([unsetTransformName,unsetTransformValue])=>{element.getValue(unsetTransformName).set(unsetTransformValue)}),this.resolveNoneKeyframes()}};var cornerRadiusProps=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"];var pxValues=new Set(["borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius",...cornerRadiusProps,"width","maxWidth","height","maxHeight","top","right","bottom","left","inset","insetBlock","insetBlockStart","insetBlockEnd","insetInline","insetInlineStart","insetInlineEnd","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockStart","paddingBlockEnd","paddingInline","paddingInlineStart","paddingInlineEnd","margin","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockStart","marginBlockEnd","marginInline","marginInlineStart","marginInlineEnd","fontSize","backgroundPositionX","backgroundPositionY"]);function applyPxDefaults(keyframes2,name){for(let i=0;i<keyframes2.length;i++)typeof keyframes2[i]=="number"&&pxValues.has(name)&&(keyframes2[i]=keyframes2[i]+"px")}function isWaapiSupportedEasing(easing){return!!(typeof easing=="function"&&supportsLinearEasing()||!easing||typeof easing=="string"&&(easing in supportedWaapiEasing||supportsLinearEasing())||isBezierDefinition(easing)||Array.isArray(easing)&&easing.every(isWaapiSupportedEasing))}var supportsPartialKeyframes=memo(()=>{try{document.createElement("div").animate({opacity:[1]})}catch{return!1}return!0});function resolveElements(elementOrSelector,scope,selectorCache){if(elementOrSelector==null)return[];if(elementOrSelector instanceof EventTarget)return[elementOrSelector];if(typeof elementOrSelector=="string"){let root=document;scope&&(root=scope.current);let elements=selectorCache?.[elementOrSelector]??root.querySelectorAll(elementOrSelector);return elements?Array.from(elements):[]}return Array.from(elementOrSelector).filter(element=>element!=null)}function createSelectorEffect(subjectEffect){return(subject,values)=>{let elements=resolveElements(subject),subscriptions=[];for(let element of elements){let remove=subjectEffect(element,values);subscriptions.push(remove)}return()=>{for(let remove of subscriptions)remove()}}}var getValueAsType=(value,type)=>type&&typeof value=="number"?type.transform(value):value;var MotionValueState=class{constructor(){this.latest={},this.values=new Map}set(name,value,render,computed,useDefaultValueType=!0){let existingValue=this.values.get(name);existingValue&&existingValue.onRemove();let onChange=()=>{let v=value.get();useDefaultValueType?this.latest[name]=getValueAsType(v,numberValueTypes[name]):this.latest[name]=v,render&&frame.render(render)};onChange();let cancelOnChange=value.on("change",onChange);computed&&value.addDependent(computed);let remove=()=>{cancelOnChange(),render&&cancelFrame(render),this.values.delete(name),computed&&value.removeDependent(computed)};return this.values.set(name,{value,onRemove:remove}),remove}get(name){return this.values.get(name)?.value}};function createEffect(addValue){let stateCache=new WeakMap;return(subject,values)=>{let state=stateCache.get(subject)??new MotionValueState;stateCache.set(subject,state);let subscriptions=[];for(let key in values){let value=values[key],remove=addValue(subject,state,key,value);subscriptions.push(remove)}return()=>{for(let cancel of subscriptions)cancel()}}}function canSetAsProperty(element,name){if(!(name in element))return!1;let descriptor=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(element),name)||Object.getOwnPropertyDescriptor(element,name);return descriptor&&typeof descriptor.set=="function"}var addAttrValue=(element,state,key,value)=>{let isProp=canSetAsProperty(element,key),name=isProp?key:key.startsWith("data")||key.startsWith("aria")?camelToDash(key):key,render=isProp?()=>{element[name]=state.latest[key]}:()=>{let v=state.latest[key];v==null?element.removeAttribute(name):element.setAttribute(name,String(v))};return state.set(key,value,render)},attrEffect=createSelectorEffect(createEffect(addAttrValue));var propEffect=createEffect((subject,state,key,value)=>state.set(key,value,()=>{subject[key]=state.latest[key]},void 0,!1));function isHTMLElement(element){return isObject(element)&&"offsetHeight"in element&&!("ownerSVGElement"in element)}var translateAlias={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"};function buildTransform(state){let transform2="",transformIsDefault=!0;for(let i=0;i<transformPropOrder.length;i++){let key=transformPropOrder[i],value=state.latest[key];if(value===void 0)continue;let valueIsDefault=!0;if(typeof value=="number")valueIsDefault=value===(key.startsWith("scale")?1:0);else{let parsed=parseFloat(value);valueIsDefault=key.startsWith("scale")?parsed===1:parsed===0}if(!valueIsDefault){transformIsDefault=!1;let transformName=translateAlias[key]||key;transform2+=`${transformName}(${value}) `}}let pathRotation=state.latest.pathRotation;return pathRotation&&(transformIsDefault=!1,transform2+=`rotate(${typeof pathRotation=="number"?`${pathRotation}deg`:pathRotation}) `),transformIsDefault?"none":transform2.trim()}var originProps=new Set(["originX","originY","originZ"]),addStyleValue=(element,state,key,value)=>{let render,computed;return transformProps.has(key)?(state.get("transform")||(!isHTMLElement(element)&&!state.get("transformBox")&&addStyleValue(element,state,"transformBox",new MotionValue("fill-box")),state.set("transform",new MotionValue("none"),()=>{element.style.transform=buildTransform(state)})),computed=state.get("transform")):originProps.has(key)?(state.get("transformOrigin")||state.set("transformOrigin",new MotionValue(""),()=>{let originX=state.latest.originX??"50%",originY=state.latest.originY??"50%",originZ=state.latest.originZ??0;element.style.transformOrigin=`${originX} ${originY} ${originZ}`}),computed=state.get("transformOrigin")):isCSSVar(key)?render=()=>{element.style.setProperty(key,state.latest[key])}:render=()=>{element.style[key]=state.latest[key]},state.set(key,value,render,computed)},styleEffect=createSelectorEffect(createEffect(addStyleValue));function addSVGPathValue(element,state,key,value){return frame.render(()=>element.setAttribute("pathLength","1")),key==="pathOffset"?state.set(key,value,()=>{let offset=state.latest[key];element.setAttribute("stroke-dashoffset",`${-offset}`)}):(state.get("stroke-dasharray")||state.set("stroke-dasharray",new MotionValue("1 1"),()=>{let{pathLength=1,pathSpacing}=state.latest;element.setAttribute("stroke-dasharray",`${pathLength} ${pathSpacing??1-Number(pathLength)}`)}),state.set(key,value,void 0,state.get("stroke-dasharray")))}var addSVGValue=(element,state,key,value)=>key.startsWith("path")?addSVGPathValue(element,state,key,value):key.startsWith("attr")?addAttrValue(element,state,convertAttrKey(key),value):(key in element.style?addStyleValue:addAttrValue)(element,state,key,value),svgEffect=createSelectorEffect(createEffect(addSVGValue));function convertAttrKey(key){return key.replace(/^attr([A-Z])/,(_,firstChar)=>firstChar.toLowerCase())}var{schedule:microtask,cancel:cancelMicrotask}=createRenderBatcher(queueMicrotask,!1);var isDragging={x:!1,y:!1};function isDragActive(){return isDragging.x||isDragging.y}function setDragLock(axis){return axis==="x"||axis==="y"?isDragging[axis]?null:(isDragging[axis]=!0,()=>{isDragging[axis]=!1}):isDragging.x||isDragging.y?null:(isDragging.x=isDragging.y=!0,()=>{isDragging.x=isDragging.y=!1})}function setupGesture(elementOrSelector,options){let elements=resolveElements(elementOrSelector),gestureAbortController=new AbortController,eventOptions={passive:!0,...options,signal:gestureAbortController.signal};return[elements,eventOptions,()=>gestureAbortController.abort()]}function isValidHover(event){return!(event.pointerType==="touch"||isDragActive())}function hover(elementOrSelector,onHoverStart,options={}){let[elements,eventOptions,cancel]=setupGesture(elementOrSelector,options);return elements.forEach(element=>{let isPressed=!1,deferredHoverEnd=!1,hoverEndCallback,removePointerLeave=()=>{element.removeEventListener("pointerleave",onPointerLeave)},endHover=event=>{hoverEndCallback&&(hoverEndCallback(event),hoverEndCallback=void 0),removePointerLeave()},onPointerUp=event=>{isPressed=!1,window.removeEventListener("pointerup",onPointerUp),window.removeEventListener("pointercancel",onPointerUp),deferredHoverEnd&&(deferredHoverEnd=!1,endHover(event))},onPointerDown=()=>{isPressed=!0,window.addEventListener("pointerup",onPointerUp,eventOptions),window.addEventListener("pointercancel",onPointerUp,eventOptions)},onPointerLeave=leaveEvent=>{if(leaveEvent.pointerType!=="touch"){if(isPressed){deferredHoverEnd=!0;return}endHover(leaveEvent)}},onPointerEnter=enterEvent=>{if(!isValidHover(enterEvent))return;deferredHoverEnd=!1;let onHoverEnd=onHoverStart(element,enterEvent);typeof onHoverEnd=="function"&&(hoverEndCallback=onHoverEnd,element.addEventListener("pointerleave",onPointerLeave,eventOptions))};element.addEventListener("pointerenter",onPointerEnter,eventOptions),element.addEventListener("pointerdown",onPointerDown,eventOptions)}),cancel}var isNodeOrChild=(parent,child)=>child?parent===child?!0:isNodeOrChild(parent,child.parentElement):!1;var isPrimaryPointer=event=>event.pointerType==="mouse"?typeof event.button!="number"||event.button<=0:event.isPrimary!==!1;var keyboardAccessibleElements=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function isElementKeyboardAccessible(element){return keyboardAccessibleElements.has(element.tagName)||element.isContentEditable===!0}var textInputElements=new Set(["INPUT","SELECT","TEXTAREA"]);function isElementTextInput(element){return textInputElements.has(element.tagName)||element.isContentEditable===!0}var isPressing=new WeakSet;function filterEvents(callback){return event=>{event.key==="Enter"&&callback(event)}}function firePointerEvent(target,type){target.dispatchEvent(new PointerEvent("pointer"+type,{isPrimary:!0,bubbles:!0}))}var enableKeyboardPress=(focusEvent,eventOptions)=>{let element=focusEvent.currentTarget;if(!element)return;let handleKeydown=filterEvents(()=>{if(isPressing.has(element))return;firePointerEvent(element,"down");let handleKeyup=filterEvents(()=>{firePointerEvent(element,"up")}),handleBlur=()=>firePointerEvent(element,"cancel");element.addEventListener("keyup",handleKeyup,eventOptions),element.addEventListener("blur",handleBlur,eventOptions)});element.addEventListener("keydown",handleKeydown,eventOptions),element.addEventListener("blur",()=>element.removeEventListener("keydown",handleKeydown),eventOptions)};function isValidPressEvent(event){return isPrimaryPointer(event)&&!isDragActive()}var claimedPointerDownEvents=new WeakSet;function press(targetOrSelector,onPressStart,options={}){let[targets,eventOptions,cancelEvents]=setupGesture(targetOrSelector,options),startPress=startEvent=>{let target=startEvent.currentTarget;if(!isValidPressEvent(startEvent)||claimedPointerDownEvents.has(startEvent))return;isPressing.add(target),options.stopPropagation&&claimedPointerDownEvents.add(startEvent);let onPressEnd=onPressStart(target,startEvent),endEventOptions={...eventOptions,capture:!0},onPointerEnd=(endEvent,success)=>{window.removeEventListener("pointerup",onPointerUp,endEventOptions),window.removeEventListener("pointercancel",onPointerCancel,endEventOptions),isPressing.has(target)&&isPressing.delete(target),isValidPressEvent(endEvent)&&typeof onPressEnd=="function"&&onPressEnd(endEvent,{success})},onPointerUp=upEvent=>{onPointerEnd(upEvent,target===window||target===document||options.useGlobalTarget||isNodeOrChild(target,upEvent.target))},onPointerCancel=cancelEvent=>{onPointerEnd(cancelEvent,!1)};window.addEventListener("pointerup",onPointerUp,endEventOptions),window.addEventListener("pointercancel",onPointerCancel,endEventOptions)};return targets.forEach(target=>{(options.useGlobalTarget?window:target).addEventListener("pointerdown",startPress,eventOptions),isHTMLElement(target)&&(target.addEventListener("focus",event=>enableKeyboardPress(event,eventOptions)),!isElementKeyboardAccessible(target)&&!target.hasAttribute("tabindex")&&(target.tabIndex=0))}),cancelEvents}function getComputedStyle2(element,name){let computedStyle=window.getComputedStyle(element);return isCSSVar(name)?computedStyle.getPropertyValue(name):computedStyle[name]}function isSVGElement(element){return isObject(element)&&"ownerSVGElement"in element}var resizeHandlers=new WeakMap,observer,getSize=(borderBoxAxis,svgAxis,htmlAxis)=>(target,borderBoxSize)=>borderBoxSize&&borderBoxSize[0]?borderBoxSize[0][borderBoxAxis+"Size"]:isSVGElement(target)&&"getBBox"in target?target.getBBox()[svgAxis]:target[htmlAxis],getWidth=getSize("inline","width","offsetWidth"),getHeight=getSize("block","height","offsetHeight");function notifyTarget({target,borderBoxSize}){resizeHandlers.get(target)?.forEach(handler=>{handler(target,{get width(){return getWidth(target,borderBoxSize)},get height(){return getHeight(target,borderBoxSize)}})})}function notifyAll(entries){entries.forEach(notifyTarget)}function createResizeObserver(){typeof ResizeObserver>"u"||(observer=new ResizeObserver(notifyAll))}function resizeElement(target,handler){observer||createResizeObserver();let elements=resolveElements(target);return elements.forEach(element=>{let elementHandlers=resizeHandlers.get(element);elementHandlers||(elementHandlers=new Set,resizeHandlers.set(element,elementHandlers)),elementHandlers.add(handler),observer?.observe(element)}),()=>{elements.forEach(element=>{let elementHandlers=resizeHandlers.get(element);elementHandlers?.delete(handler),elementHandlers?.size||observer?.unobserve(element)})}}var windowCallbacks=new Set,windowResizeHandler;function createWindowResizeHandler(){windowResizeHandler=()=>{let info={get width(){return window.innerWidth},get height(){return window.innerHeight}};windowCallbacks.forEach(callback=>callback(info))},window.addEventListener("resize",windowResizeHandler)}function resizeWindow(callback){return windowCallbacks.add(callback),windowResizeHandler||createWindowResizeHandler(),()=>{windowCallbacks.delete(callback),!windowCallbacks.size&&typeof windowResizeHandler=="function"&&(window.removeEventListener("resize",windowResizeHandler),windowResizeHandler=void 0)}}function resize(a,b){return typeof a=="function"?resizeWindow(a):resizeElement(a,b)}function observeTimeline(update,timeline){let prevProgress,onFrame=()=>{let{currentTime}=timeline,progress2=(currentTime===null?0:currentTime.value)/100;prevProgress!==progress2&&update(progress2),prevProgress=progress2};return frame.preUpdate(onFrame,!0),()=>cancelFrame(onFrame)}var statsBuffer={value:null,addProjectionMetrics:null};function clearStatsBuffer(){statsBuffer.value=null,statsBuffer.addProjectionMetrics=null}function recordStats(){if(statsBuffer.value)throw clearStatsBuffer(),new Error("Stats are already being measured");let buffer=statsBuffer;buffer.value={layoutProjection:{nodes:[],calculatedTargetDeltas:[],calculatedProjections:[]}},buffer.addProjectionMetrics=metrics2=>{let{layoutProjection}=buffer.value;layoutProjection.nodes.push(metrics2.nodes),layoutProjection.calculatedTargetDeltas.push(metrics2.calculatedTargetDeltas),layoutProjection.calculatedProjections.push(metrics2.calculatedProjections)}}function isSVGSVGElement(element){return isSVGElement(element)&&element.tagName==="svg"}function getOriginIndex(from,total){if(from==="first")return 0;{let lastIndex=total-1;return from==="last"?lastIndex:lastIndex/2}}function stagger(duration=.1,{startDelay=0,from=0,ease:ease2}={}){return(i,total)=>{let fromIndex=typeof from=="number"?from:getOriginIndex(from,total),distance2=Math.abs(fromIndex-i),delay2=duration*distance2;if(ease2){let maxDelay=total*duration;delay2=easingDefinitionToFunction(ease2)(delay2/maxDelay)*maxDelay}return startDelay+delay2}}function transform(...args){let useImmediate=!Array.isArray(args[0]),argOffset=useImmediate?0:-1,inputValue=args[0+argOffset],inputRange=args[1+argOffset],outputRange=args[2+argOffset],options=args[3+argOffset],interpolator=interpolate(inputRange,outputRange,options);return useImmediate?interpolator(inputValue):interpolator}function followValue(source,options){let initialValue=isMotionValue(source)?source.get():source,value=motionValue(initialValue);return attachFollow(value,source,options),value}function attachFollow(value,source,options={}){let initialValue=value.get(),activeAnimation=null,latestValue=initialValue,latestSetter,unit=typeof initialValue=="string"?initialValue.replace(/[\d.-]/g,""):void 0,stopAnimation=()=>{activeAnimation&&(activeAnimation.stop(),activeAnimation=null),value.animation=void 0},startAnimation=()=>{let currentValue=asNumber(value.get()),targetValue=asNumber(latestValue);if(currentValue===targetValue){stopAnimation();return}let velocity=activeAnimation?activeAnimation.getGeneratorVelocity():value.getVelocity();stopAnimation(),activeAnimation=new JSAnimation({keyframes:[currentValue,targetValue],velocity,type:"spring",restDelta:.001,restSpeed:.01,...options,onUpdate:latestSetter})},scheduleAnimation=()=>{startAnimation(),value.animation=activeAnimation??void 0,value.events.animationStart?.notify(),activeAnimation?.then(()=>{value.animation=void 0,value.events.animationComplete?.notify()})};if(value.attach((v,set)=>{latestValue=v,latestSetter=latest=>set(parseValue(latest,unit)),frame.postRender(scheduleAnimation)},stopAnimation),isMotionValue(source)){let skipNextAnimation=options.skipInitialAnimation===!0,removeSourceOnChange=source.on("change",v=>{skipNextAnimation?(skipNextAnimation=!1,value.jump(parseValue(v,unit),!1)):value.set(parseValue(v,unit))}),removeValueOnDestroy=value.on("destroy",removeSourceOnChange);return()=>{removeSourceOnChange(),removeValueOnDestroy()}}return stopAnimation}function parseValue(v,unit){return unit?v+unit:v}function asNumber(v){return typeof v=="number"?v:parseFloat(v)}function subscribeValue(inputValues,outputValue,getLatest){let update=()=>outputValue.set(getLatest()),scheduleUpdate=()=>frame.preRender(update,!1,!0),subscriptions=inputValues.map(v=>v.on("change",scheduleUpdate));outputValue.on("destroy",()=>{subscriptions.forEach(unsubscribe=>unsubscribe()),cancelFrame(update)})}function transformValue(transform2){let collectedValues=[];collectMotionValues.current=collectedValues;let initialValue=transform2();collectMotionValues.current=void 0;let value=motionValue(initialValue);return subscribeValue(collectedValues,value,transform2),value}function mapValue(inputValue,inputRange,outputRange,options){let map=transform(inputRange,outputRange,options);return transformValue(()=>map(inputValue.get()))}function springValue(source,options){return followValue(source,{type:"spring",...options})}function attachSpring(value,source,options){return attachFollow(value,source,{type:"spring",...options})}var valueTypes=[...dimensionValueTypes,color,complex],findValueType=v=>valueTypes.find(testValueType(v));var nameCount=0,generatedName=()=>`motion-view-${nameCount++}`,isGeneratedName=name=>name.startsWith("motion-view-");function tagClass(element,className,classed){className&&(element.style?.setProperty("view-transition-class",className),classed.push(element))}function applyGroup(element,name,group,grouped,clipChildren){if(group&&(element.style?.setProperty("view-transition-group",group),grouped.push(element),group!=="none"&&clipChildren)){let style2=getComputedStyle(element);(style2.overflowX!=="visible"||style2.overflowY!=="visible")&&clipChildren.add(name)}}function assignViewTransitionNames(definition,registry,assigned,forcedNames,className,classed=[],group,grouped=[],clipChildren){let elements=resolveElements(definition);if(forcedNames)return elements.map((element,i)=>{let existing=registry.get(element);if(existing)return existing;let name=forcedNames[i]??generatedName();return element.style?.setProperty("view-transition-name",name),assigned.push(element),registry.set(element,name),tagClass(element,className,classed),applyGroup(element,name,group,grouped,clipChildren),name});let currentNames=elements.map(element=>registry.has(element)?void 0:getComputedStyle(element).getPropertyValue("view-transition-name"));return elements.map((element,i)=>{let existing=registry.get(element);if(existing)return existing;let current2=currentNames[i],name;return current2&&current2!=="none"&&current2!=="auto"&&current2!=="match-element"&&!isGeneratedName(current2)?name=current2:(name=generatedName(),element.style?.setProperty("view-transition-name",name),assigned.push(element)),registry.set(element,name),tagClass(element,className,classed),applyGroup(element,name,group,grouped,clipChildren),name})}function releaseViewTransitionNames(assigned,classed=[],grouped=[]){for(let element of assigned)element.style?.removeProperty("view-transition-name");for(let element of classed)element.style?.removeProperty("view-transition-class");for(let element of grouped)element.style?.removeProperty("view-transition-group")}function chooseLayerType(valueName){return valueName==="layout"?"group":valueName==="enter"||valueName==="new"?"new":"old"}var pendingRules={},style=null,css={set:(selector,values)=>{pendingRules[selector]=values},commit:()=>{style||(style=document.createElement("style"),style.id="motion-view");let cssText="";for(let selector in pendingRules){let rule=pendingRules[selector];cssText+=`${selector} {
2
+ `;for(let[property,value]of Object.entries(rule))cssText+=` ${property}: ${value};
3
+ `;cssText+=`}
4
+ `}style.textContent=cssText,document.head.appendChild(style),pendingRules={}},remove:()=>{style&&style.parentElement&&style.parentElement.removeChild(style)}};function getViewAnimationLayerInfo(pseudoElement){let match=pseudoElement.match(/::view-transition-(old|new|group-children|group|image-pair)\((.*?)\)/);return match?{layer:match[2],type:match[1]}:null}function getViewAnimations(){return document.getAnimations().filter(animation=>{let{effect}=animation;return!!effect&&effect.target===document.documentElement&&effect.pseudoElement?.startsWith("::view-transition")})}function hasTarget(target,targets){return targets.has(target)&&Object.keys(targets.get(target)).length>0}var definitionNames=["layout","enter","exit","new","old"],isSquareRadius=radius=>radius.split(" ").every(value=>parseFloat(value)===0),typeBuckets={group:["layout"],new:["new","enter"],old:["old","exit"]},ORIGIN_DEFAULTS={new:{opacity:0,scale:.85},old:{opacity:1,scale:1}},ASPECT_TOLERANCE=.2;function startViewAnimation(builder){let{update,targets,resolveDefs,cropOverride,pairs,classNames,flatGroups,options:defaultOptions}=builder;if(!document.startViewTransition)return(async()=>(await update(),new GroupAnimation([])))();let nameRegistry=new Map,assigned=[],classed=[],grouped=[],clipChildren=new Set,layerTargets=new Map,croppedNames=new Set,cropForName=new Map,layerStagger=new Map,pairNames=new Map,pairFrom=new Map,resolveLayers=phase=>{targets.forEach((target,definition)=>{let className=classNames.get(definition),group=definition==="root"||!resolveDefs.has(definition)?void 0:flatGroups.has(definition)?"none":"contain",names;if(definition==="root"||!resolveDefs.has(definition))names=[definition];else if(pairs.has(definition))if(phase==="old")pairFrom.set(definition,resolveElements(definition)),names=assignViewTransitionNames(definition,nameRegistry,assigned,void 0,className,classed,group,grouped,clipChildren),pairNames.set(definition,names);else{for(let el of pairFrom.get(definition)??[])el.style?.removeProperty("view-transition-name"),nameRegistry.delete(el);names=assignViewTransitionNames(pairs.get(definition),nameRegistry,assigned,pairNames.get(definition),className,classed,group,grouped,clipChildren)}else names=assignViewTransitionNames(definition,nameRegistry,assigned,void 0,className,classed,group,grouped,clipChildren);let override=cropOverride.get(definition);names.forEach((name,index)=>{let existing=layerTargets.get(name);layerTargets.set(name,existing&&existing!==target?{...existing,...target}:target),override!==void 0&&cropForName.set(name,override);let stagger2=layerStagger.get(name)??{};stagger2[phase]=[index,names.length],layerStagger.set(name,stagger2)})})},staggerPosition=(name,type)=>{let stagger2=layerStagger.get(name);return(type==="old"?stagger2?.old:type==="new"?stagger2?.new:stagger2?.new??stagger2?.old)??[-1,1]},resolveLayerTransition=(target,type,transitionName,index,total)=>{let transition2=mergeTransition(getValueTransition(defaultOptions,transitionName),getValueTransition(layerOptions(target,type)??{},transitionName));return typeof transition2.delay=="function"&&(transition2.delay=transition2.delay(index,total)),transition2},resolveGroupTiming=name=>{let[index,total]=staggerPosition(name,"group"),transition2=resolveLayerTransition(layerTargets.get(name),"group","layout",index===-1?0:index,total);transition2.duration&&(transition2.duration=secondsToMilliseconds(transition2.duration));let{delay:delay2=0,duration,ease:ease2}=applyGeneratorOptions(transition2);return{delay:secondsToMilliseconds(delay2),duration,ease:ease2}},cropMeasurements=new Map,measureLayers=phase=>nameRegistry.forEach((name,element)=>{let el=element,rect=el.getBoundingClientRect?.();if(rect&&rect.height){let style2=getComputedStyle(el),radii={};for(let corner of cornerRadiusProps)radii[corner]=style2[corner];let entry=cropMeasurements.get(name)??{};entry[phase]={width:rect.width,height:rect.height,radii},cropMeasurements.set(name,entry)}}),finalizeCrop=()=>{croppedNames.clear();for(let name of layerStagger.keys())name!=="root"&&(cropForName.get(name)??aspectChanged(name))&&croppedNames.add(name)},aspectChanged=name=>{let box=cropMeasurements.get(name);return!box?.old||!box?.new||!box.old.height||!box.new.height?!1:Math.abs(box.old.width/box.old.height-box.new.width/box.new.height)>ASPECT_TOLERANCE},commitViewCSS=()=>{hasTarget("root",targets)||css.set(":root",{"view-transition-name":"none"}),css.set("::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*)",{"animation-timing-function":"linear !important"}),croppedNames.forEach(name=>{css.set(`::view-transition-group(${name})`,{overflow:"clip"}),css.set(`::view-transition-old(${name}), ::view-transition-new(${name})`,{width:"100%",height:"100%","object-fit":"cover"})}),clipChildren.forEach(name=>{css.set(`::view-transition-group-children(${name})`,{overflow:"clip"})}),css.commit()},cleanup=()=>{releaseViewTransitionNames(assigned,classed,grouped),css.remove()},callback=async()=>{await update(),resolveLayers("new"),measureLayers("new"),finalizeCrop(),commitViewCSS()},transition;try{resolveLayers("old"),measureLayers("old"),commitViewCSS(),transition=document.startViewTransition(callback)}catch(error){return cleanup(),Promise.reject(error)}return transition.finished.finally(cleanup),new Promise((resolve,reject)=>{transition.ready.then(()=>{let generatedViewAnimations=getViewAnimations(),animations=[],explicitlyAnimated=new Set,opacityAnimated=new Set;layerTargets.forEach((target,name)=>{let stagger2=layerStagger.get(name),enterApplies=!!stagger2?.new&&!stagger2?.old,exitApplies=!!stagger2?.old&&!stagger2?.new;for(let key of definitionNames){if(!target[key]||key==="enter"&&!enterApplies||key==="exit"&&!exitApplies)continue;let type=chooseLayerType(key),[index,total]=staggerPosition(name,type);if(index===-1)continue;let{keyframes:keyframes2,options}=target[key];for(let[valueName,valueKeyframes]of Object.entries(keyframes2)){if(valueKeyframes==null)continue;if(valueName==="x"||valueName==="y"){warnOnce(!1,`animateView() animates view-transition layers with CSS properties; the "${valueName}" shorthand has no effect - use transform, e.g. { transform: "translateX(40px)" }.`);continue}if(key==="new"&&enterApplies&&target.enter?.keyframes[valueName]!=null||key==="old"&&exitApplies&&target.exit?.keyframes[valueName]!=null)continue;let valueOptions=mergeTransition(getValueTransition(defaultOptions,valueName),getValueTransition(options,valueName));if(!Array.isArray(valueKeyframes)){let exitValue=key==="enter"?target.exit?.keyframes[valueName]:void 0,allowDefault=valueName==="opacity"||(type==="new"?enterApplies:exitApplies),from=exitValue!=null?Array.isArray(exitValue)?exitValue[exitValue.length-1]:exitValue:allowDefault?ORIGIN_DEFAULTS[type]?.[valueName]:void 0;from!==void 0&&(valueKeyframes=[from,valueKeyframes])}typeof valueOptions.delay=="function"&&(valueOptions.delay=valueOptions.delay(index,total)),valueOptions.duration&&(valueOptions.duration=secondsToMilliseconds(valueOptions.duration)),valueOptions.delay&&(valueOptions.delay=secondsToMilliseconds(valueOptions.delay)),animations.push(new NativeAnimation({...valueOptions,element:document.documentElement,name:valueName,pseudoElement:`::view-transition-${type}(${name})`,keyframes:valueKeyframes})),explicitlyAnimated.add(`${name}:${type}`),valueName==="opacity"&&opacityAnimated.add(`${name}:${type}`)}}});for(let animation of generatedViewAnimations){if(animation.playState==="finished")continue;let{effect}=animation;if(!effect||!(effect instanceof KeyframeEffect))continue;let{pseudoElement}=effect;if(!pseudoElement)continue;let name=getViewAnimationLayerInfo(pseudoElement);if(!name)continue;let targetDefinition=layerTargets.get(name.layer);if(explicitlyAnimated.has(`${name.layer}:${name.type}`)){opacityAnimated.has(`${name.layer}:new`)&&opacityAnimated.has(`${name.layer}:old`)&&effect.getKeyframes().some(keyframe=>keyframe.mixBlendMode)?animations.push(new NativeAnimationWrapper(animation)):animation.cancel();continue}let opposite=name.type==="old"?"new":name.type==="new"?"old":void 0;if(opposite&&explicitlyAnimated.has(`${name.layer}:${opposite}`)&&!opacityAnimated.has(`${name.layer}:${opposite}`)){animation.cancel();continue}let stagger2=layerStagger.get(name.layer),isMorphCrossfade=(name.type==="old"||name.type==="new")&&!!stagger2?.old&&!!stagger2?.new,timing;if(name.type.startsWith("group")){let{delay:delay2,duration,ease:ease2}=resolveGroupTiming(name.layer);timing={delay:delay2,duration,easing:mapEasingToNativeEasing(ease2,duration)}}else{let timingType=isMorphCrossfade?"group":name.type,[index,total]=staggerPosition(name.layer,timingType),animationTransition=resolveLayerTransition(targetDefinition,timingType,timingType==="group"?"layout":"",index===-1?0:index,total),visualDuration=animationTransition.visualDuration;animationTransition.duration&&(animationTransition.duration=secondsToMilliseconds(animationTransition.duration)),animationTransition=applyGeneratorOptions(animationTransition),timing={delay:secondsToMilliseconds(animationTransition.delay??0),duration:isMorphCrossfade&&visualDuration!==void 0?secondsToMilliseconds(visualDuration):animationTransition.duration,easing:isMorphCrossfade?"linear":mapEasingToNativeEasing(animationTransition.ease,animationTransition.duration)}}effect.updateTiming(timing),animations.push(new NativeAnimationWrapper(animation))}cropMeasurements.forEach((entry,name)=>{if(!croppedNames.has(name))return;let{delay:delay2,duration,ease:ease2}=resolveGroupTiming(name);for(let corner of cornerRadiusProps){let from=entry.old?.radii[corner]||entry.new?.radii[corner]||"0px",to=entry.new?.radii[corner]||entry.old?.radii[corner]||"0px";isSquareRadius(from)&&isSquareRadius(to)||animations.push(new NativeAnimation({element:document.documentElement,name:corner,pseudoElement:`::view-transition-group(${name})`,keyframes:[from,to],delay:delay2,duration,ease:ease2}))}}),resolve(new GroupAnimation(animations))}).catch(()=>transition.updateCallbackDone.then(()=>resolve(new GroupAnimation([])),reject))})}function layerOptions(target,type){for(let bucket of typeBuckets[type]??[]){let options=target?.[bucket]?.options;if(options)return options}}function mergeTransition(base,override){let merged={...base,...override};return override.duration!==void 0&&(override.visualDuration===void 0&&delete merged.visualDuration,override.type===void 0&&delete merged.type),merged}var builders=[],current=null;function next(){current=null;let[nextBuilder]=builders;nextBuilder&&start(nextBuilder)}function start(builder){removeItem(builders,builder),current=builder,startViewAnimation(builder).then(animation=>(builder.notifyReady(animation),animation.finished)).catch(error=>builder.notifyReject(error)).finally(next)}function processQueue(){for(let i=builders.length-1;i>=0;i--){let builder=builders[i],{interrupt}=builder.options;if(interrupt==="immediate"){let batchedUpdates=builders.slice(0,i+1).map(b=>b.update),remaining=builders.slice(i+1);builder.update=()=>{batchedUpdates.forEach(update=>update())},builders=[builder,...remaining];break}}(!current||builders[0]?.options.interrupt==="immediate")&&next()}function addToQueue(builder){builders.push(builder),microtask.render(processQueue)}var ViewTransitionBuilder=class{constructor(update,options={}){this.currentSubject="root",this.targets=new Map,this.resolveDefs=new Set,this.cropOverride=new Map,this.pairs=new Map,this.classNames=new Map,this.flatGroups=new Set,this.notifyReady=noop,this.notifyReject=noop,this.readyPromise=new Promise((resolve,reject)=>{this.notifyReady=resolve,this.notifyReject=reject}),this.update=update,this.options={interrupt:"wait",...options},this.readyPromise.catch(noop),addToQueue(this)}add(subject,newSubject){return this.currentSubject=subject,this.resolveDefs.add(subject),newSubject!==void 0&&this.pairs.set(subject,newSubject),this.targets.has(subject)||this.targets.set(subject,{}),this}crop(enabled=!0){return this.cropOverride.set(this.currentSubject,enabled),this}group(enabled=!0){return enabled?this.flatGroups.delete(this.currentSubject):this.flatGroups.add(this.currentSubject),this}class(name){return this.classNames.set(this.currentSubject,name),this}layout(options={}){return this.updateTarget("layout",{},options),this}enter(keyframes2,options){return this.updateTarget("enter",keyframes2,options),this}exit(keyframes2,options){return this.updateTarget("exit",keyframes2,options),this}new(keyframes2,options){return this.updateTarget("new",keyframes2,options),this}old(keyframes2,options){return this.updateTarget("old",keyframes2,options),this}updateTarget(target,keyframes2,options={}){let{currentSubject,targets}=this;targets.has(currentSubject)||targets.set(currentSubject,{});let targetData=targets.get(currentSubject);targetData[target]={keyframes:keyframes2,options}}then(resolve,reject){return this.readyPromise.then(resolve,reject)}};function animateView(update,options={}){return new ViewTransitionBuilder(update,options)}var createAxisDelta=()=>({translate:0,scale:1,origin:0,originPoint:0}),createDelta=()=>({x:createAxisDelta(),y:createAxisDelta()}),createAxis=()=>({min:0,max:0}),createBox=()=>({x:createAxis(),y:createAxis()});var visualElementStore=new WeakMap;function isAnimationControls(v){return v!==null&&typeof v=="object"&&typeof v.start=="function"}function isVariantLabel(v){return typeof v=="string"||Array.isArray(v)}var variantPriorityOrder=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],variantProps=["initial",...variantPriorityOrder];function isControllingVariants(props){return isAnimationControls(props.animate)||variantProps.some(name=>isVariantLabel(props[name]))}function isVariantNode(props){return!!(isControllingVariants(props)||props.variants)}function updateMotionValuesFromProps(element,next2,prev){for(let key in next2){let nextValue=next2[key],prevValue=prev[key];if(isMotionValue(nextValue))element.addValue(key,nextValue);else if(isMotionValue(prevValue))element.addValue(key,motionValue(nextValue,{owner:element}));else if(prevValue!==nextValue)if(element.hasValue(key)){let existingValue=element.getValue(key);existingValue.liveStyle===!0?existingValue.jump(nextValue):existingValue.hasAnimated||existingValue.set(nextValue)}else{let latestValue=element.getStaticValue(key);element.addValue(key,motionValue(latestValue!==void 0?latestValue:nextValue,{owner:element}))}}for(let key in prev)next2[key]===void 0&&element.removeValue(key);return next2}var prefersReducedMotion={current:null},hasReducedMotionListener={current:!1};var isBrowser=typeof window<"u";function initPrefersReducedMotion(){if(hasReducedMotionListener.current=!0,!!isBrowser)if(window.matchMedia){let motionMediaQuery=window.matchMedia("(prefers-reduced-motion)"),setReducedMotionPreferences=()=>prefersReducedMotion.current=motionMediaQuery.matches;motionMediaQuery.addEventListener("change",setReducedMotionPreferences),setReducedMotionPreferences()}else prefersReducedMotion.current=!1}var propEventHandlers=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],featureDefinitions={};function setFeatureDefinitions(definitions){featureDefinitions=definitions}function getFeatureDefinitions(){return featureDefinitions}var VisualElement=class{scrapeMotionValuesFromProps(_props,_prevProps,_visualElement){return{}}constructor({parent,props,presenceContext,reducedMotionConfig,skipAnimations,blockInitialAnimation,visualState},options={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=KeyframeResolver,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let now2=time.now();this.renderScheduledAt<now2&&(this.renderScheduledAt=now2,frame.render(this.render,!1,!0))};let{latestValues,renderState}=visualState;this.latestValues=latestValues,this.baseTarget={...latestValues},this.initialValues=props.initial?{...latestValues}:{},this.renderState=renderState,this.parent=parent,this.props=props,this.presenceContext=presenceContext,this.depth=parent?parent.depth+1:0,this.reducedMotionConfig=reducedMotionConfig,this.skipAnimationsConfig=skipAnimations,this.options=options,this.blockInitialAnimation=!!blockInitialAnimation,this.isControllingVariants=isControllingVariants(props),this.isVariantNode=isVariantNode(props),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(parent&&parent.current);let{willChange,...initialMotionValues}=this.scrapeMotionValuesFromProps(props,{},this);for(let key in initialMotionValues){let value=initialMotionValues[key];latestValues[key]!==void 0&&isMotionValue(value)&&value.set(latestValues[key])}}mount(instance){if(this.hasBeenMounted)for(let key in this.initialValues)this.values.get(key)?.jump(this.initialValues[key]),this.latestValues[key]=this.initialValues[key];this.current=instance,visualElementStore.set(instance,this),this.projection&&!this.projection.instance&&this.projection.mount(instance),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((value,key)=>this.bindToMotionValue(key,value)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(hasReducedMotionListener.current||initPrefersReducedMotion(),this.shouldReduceMotion=prefersReducedMotion.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),cancelFrame(this.notifyUpdate),cancelFrame(this.render),this.valueSubscriptions.forEach(remove=>remove()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(let key in this.events)this.events[key].clear();for(let key in this.features){let feature=this.features[key];feature&&(feature.unmount(),feature.isMounted=!1)}this.current=null}addChild(child){this.children.add(child),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(child)}removeChild(child){this.children.delete(child),this.enteringChildren&&this.enteringChildren.delete(child)}bindToMotionValue(key,value){if(this.valueSubscriptions.has(key)&&this.valueSubscriptions.get(key)(),value.accelerate&&acceleratedValues.has(key)&&this.current instanceof HTMLElement){let{factory,keyframes:keyframes2,times,ease:ease2,duration}=value.accelerate,animation=new NativeAnimation({element:this.current,name:key,keyframes:keyframes2,times,ease:ease2,duration:secondsToMilliseconds(duration)}),cleanup=factory(animation);this.valueSubscriptions.set(key,()=>{cleanup(),animation.cancel()});return}let valueIsTransform=transformProps.has(key);valueIsTransform&&this.onBindTransform&&this.onBindTransform();let removeOnChange=value.on("change",latestValue=>{this.latestValues[key]=latestValue,this.props.onUpdate&&frame.preRender(this.notifyUpdate),valueIsTransform&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()}),removeSyncCheck;typeof window<"u"&&window.MotionCheckAppearSync&&(removeSyncCheck=window.MotionCheckAppearSync(this,key,value)),this.valueSubscriptions.set(key,()=>{removeOnChange(),removeSyncCheck&&removeSyncCheck()})}sortNodePosition(other){return!this.current||!this.sortInstanceNodePosition||this.type!==other.type?0:this.sortInstanceNodePosition(this.current,other.current)}updateFeatures(){let key="animation";for(key in featureDefinitions){let featureDefinition=featureDefinitions[key];if(!featureDefinition)continue;let{isEnabled,Feature:FeatureConstructor}=featureDefinition;if(!this.features[key]&&FeatureConstructor&&isEnabled(this.props)&&(this.features[key]=new FeatureConstructor(this)),this.features[key]){let feature=this.features[key];feature.isMounted?feature.update():(feature.mount(),feature.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):createBox()}getStaticValue(key){return this.latestValues[key]}setStaticValue(key,value){this.latestValues[key]=value}update(props,presenceContext){(props.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=props,this.prevPresenceContext=this.presenceContext,this.presenceContext=presenceContext;for(let i=0;i<propEventHandlers.length;i++){let key=propEventHandlers[i];this.propEventSubscriptions[key]&&(this.propEventSubscriptions[key](),delete this.propEventSubscriptions[key]);let listenerName="on"+key,listener=props[listenerName];listener&&(this.propEventSubscriptions[key]=this.on(key,listener))}this.prevMotionValues=updateMotionValuesFromProps(this,this.scrapeMotionValuesFromProps(props,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(name){return this.props.variants?this.props.variants[name]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(child){let closestVariantNode=this.getClosestVariantNode();if(closestVariantNode)return closestVariantNode.variantChildren&&closestVariantNode.variantChildren.add(child),()=>closestVariantNode.variantChildren.delete(child)}addValue(key,value){let existingValue=this.values.get(key);value!==existingValue&&(existingValue&&this.removeValue(key),this.bindToMotionValue(key,value),this.values.set(key,value),this.latestValues[key]=value.get())}removeValue(key){this.values.delete(key);let unsubscribe=this.valueSubscriptions.get(key);unsubscribe&&(unsubscribe(),this.valueSubscriptions.delete(key)),delete this.latestValues[key],this.removeValueFromRenderState(key,this.renderState)}hasValue(key){return this.values.has(key)}getValue(key,defaultValue){if(this.props.values&&this.props.values[key])return this.props.values[key];let value=this.values.get(key);return value===void 0&&defaultValue!==void 0&&(value=motionValue(defaultValue===null?void 0:defaultValue,{owner:this}),this.addValue(key,value)),value}readValue(key,target){let value=this.latestValues[key]!==void 0||!this.current?this.latestValues[key]:this.getBaseTargetFromProps(this.props,key)??this.readValueFromInstance(this.current,key,this.options);return value!=null&&(typeof value=="string"&&(isNumericalString(value)||isZeroValueString(value))?value=parseFloat(value):!findValueType(value)&&complex.test(target)&&(value=getAnimatableNone2(key,target)),this.setBaseTarget(key,isMotionValue(value)?value.get():value)),isMotionValue(value)?value.get():value}setBaseTarget(key,value){this.baseTarget[key]=value}getBaseTarget(key){let{initial}=this.props,valueFromInitial;if(typeof initial=="string"||typeof initial=="object"){let variant=resolveVariantFromProps(this.props,initial,this.presenceContext?.custom);variant&&(valueFromInitial=variant[key])}if(initial&&valueFromInitial!==void 0)return valueFromInitial;let target=this.getBaseTargetFromProps(this.props,key);return target!==void 0&&!isMotionValue(target)?target:this.initialValues[key]!==void 0&&valueFromInitial===void 0?void 0:this.baseTarget[key]}on(eventName,callback){return this.events[eventName]||(this.events[eventName]=new SubscriptionManager),this.events[eventName].add(callback)}notify(eventName,...args){this.events[eventName]&&this.events[eventName].notify(...args)}scheduleRenderMicrotask(){microtask.render(this.render)}};var DOMVisualElement=class extends VisualElement{constructor(){super(...arguments),this.KeyframeResolver=DOMKeyframesResolver}sortInstanceNodePosition(a,b){return a.compareDocumentPosition(b)&2?1:-1}getBaseTargetFromProps(props,key){let style2=props.style;return style2?style2[key]:void 0}removeValueFromRenderState(key,{vars,style:style2}){delete vars[key],delete style2[key]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children}=this.props;isMotionValue(children)&&(this.childSubscription=children.on("change",latest=>{this.current&&(this.current.textContent=`${latest}`)}))}};var Feature=class{constructor(node){this.isMounted=!1,this.node=node}update(){}};function convertBoundingBoxToBox({top,left,right,bottom}){return{x:{min:left,max:right},y:{min:top,max:bottom}}}function convertBoxToBoundingBox({x,y}){return{top:y.min,right:x.max,bottom:y.max,left:x.min}}function transformBoxPoints(point2,transformPoint){if(!transformPoint)return point2;let topLeft=transformPoint({x:point2.left,y:point2.top}),bottomRight=transformPoint({x:point2.right,y:point2.bottom});return{top:topLeft.y,left:topLeft.x,bottom:bottomRight.y,right:bottomRight.x}}function isIdentityScale(scale2){return scale2===void 0||scale2===1}function hasScale({scale:scale2,scaleX:scaleX2,scaleY:scaleY2}){return!isIdentityScale(scale2)||!isIdentityScale(scaleX2)||!isIdentityScale(scaleY2)}function hasTransform(values){return hasScale(values)||has2DTranslate(values)||values.z||values.rotate||values.rotateX||values.rotateY||values.skewX||values.skewY}function has2DTranslate(values){return is2DTranslate(values.x)||is2DTranslate(values.y)}function is2DTranslate(value){return value&&value!=="0%"}function scalePoint(point2,scale2,originPoint){let distanceFromOrigin=point2-originPoint,scaled=scale2*distanceFromOrigin;return originPoint+scaled}function applyPointDelta(point2,translate,scale2,originPoint,boxScale){return boxScale!==void 0&&(point2=scalePoint(point2,boxScale,originPoint)),scalePoint(point2,scale2,originPoint)+translate}function applyAxisDelta(axis,translate=0,scale2=1,originPoint,boxScale){axis.min=applyPointDelta(axis.min,translate,scale2,originPoint,boxScale),axis.max=applyPointDelta(axis.max,translate,scale2,originPoint,boxScale)}function applyBoxDelta(box,{x,y}){applyAxisDelta(box.x,x.translate,x.scale,x.originPoint),applyAxisDelta(box.y,y.translate,y.scale,y.originPoint)}var TREE_SCALE_SNAP_MIN=.999999999999,TREE_SCALE_SNAP_MAX=1.0000000000001;function applyTreeDeltas(box,treeScale,treePath,isSharedTransition=!1){let treeLength=treePath.length;if(!treeLength)return;treeScale.x=treeScale.y=1;let node,delta;for(let i=0;i<treeLength;i++){node=treePath[i],delta=node.projectionDelta;let{visualElement}=node.options;visualElement&&visualElement.props.style&&visualElement.props.style.display==="contents"||(isSharedTransition&&node.options.layoutScroll&&node.scroll&&node!==node.root&&(translateAxis(box.x,-node.scroll.offset.x),translateAxis(box.y,-node.scroll.offset.y)),delta&&(treeScale.x*=delta.x.scale,treeScale.y*=delta.y.scale,applyBoxDelta(box,delta)),isSharedTransition&&hasTransform(node.latestValues)&&transformBox(box,node.latestValues,node.layout?.layoutBox))}treeScale.x<TREE_SCALE_SNAP_MAX&&treeScale.x>TREE_SCALE_SNAP_MIN&&(treeScale.x=1),treeScale.y<TREE_SCALE_SNAP_MAX&&treeScale.y>TREE_SCALE_SNAP_MIN&&(treeScale.y=1)}function translateAxis(axis,distance2){axis.min+=distance2,axis.max+=distance2}function transformAxis(axis,axisTranslate,axisScale,boxScale,axisOrigin=.5){let originPoint=mixNumber(axis.min,axis.max,axisOrigin);applyAxisDelta(axis,axisTranslate,axisScale,originPoint,boxScale)}function resolveAxisTranslate(value,axis){return typeof value=="string"?parseFloat(value)/100*(axis.max-axis.min):value}function transformBox(box,transform2,sourceBox){let resolveBox=sourceBox??box;transformAxis(box.x,resolveAxisTranslate(transform2.x,resolveBox.x),transform2.scaleX,transform2.scale,transform2.originX),transformAxis(box.y,resolveAxisTranslate(transform2.y,resolveBox.y),transform2.scaleY,transform2.scale,transform2.originY)}function measureViewportBox(instance,transformPoint){return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(),transformPoint))}function measurePageBox(element,rootProjectionNode2,transformPagePoint){let viewportBox=measureViewportBox(element,transformPagePoint),{scroll:scroll2}=rootProjectionNode2;return scroll2&&(translateAxis(viewportBox.x,scroll2.offset.x),translateAxis(viewportBox.y,scroll2.offset.y)),viewportBox}var translateAlias2={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},numTransforms=transformPropOrder.length;function buildTransform2(latestValues,transform2,transformTemplate){let transformString="",transformIsDefault=!0;for(let i=0;i<numTransforms;i++){let key=transformPropOrder[i],value=latestValues[key];if(value===void 0)continue;let valueIsDefault=!0;if(typeof value=="number")valueIsDefault=value===(key.startsWith("scale")?1:0);else{let parsed=parseFloat(value);valueIsDefault=key.startsWith("scale")?parsed===1:parsed===0}if(!valueIsDefault||transformTemplate){let valueAsType=getValueAsType(value,numberValueTypes[key]);if(!valueIsDefault){transformIsDefault=!1;let transformName=translateAlias2[key]||key;transformString+=`${transformName}(${valueAsType}) `}transformTemplate&&(transform2[key]=valueAsType)}}let pathRotation=latestValues.pathRotation;return pathRotation&&(transformIsDefault=!1,transformString+=`rotate(${getValueAsType(pathRotation,numberValueTypes.pathRotation)}) `),transformString=transformString.trim(),transformTemplate?transformString=transformTemplate(transform2,transformIsDefault?"":transformString):transformIsDefault&&(transformString="none"),transformString}function buildHTMLStyles(state,latestValues,transformTemplate){let{style:style2,vars,transformOrigin}=state,hasTransform2=!1,hasTransformOrigin=!1;for(let key in latestValues){let value=latestValues[key];if(transformProps.has(key)){hasTransform2=!0;continue}else if(isCSSVariableName(key)){vars[key]=value;continue}else{let valueAsType=getValueAsType(value,numberValueTypes[key]);key.startsWith("origin")?(hasTransformOrigin=!0,transformOrigin[key]=valueAsType):style2[key]=valueAsType}}if(latestValues.transform||(hasTransform2||transformTemplate?style2.transform=buildTransform2(latestValues,state.transform,transformTemplate):style2.transform&&(style2.transform="none")),hasTransformOrigin){let{originX="50%",originY="50%",originZ=0}=transformOrigin;style2.transformOrigin=`${originX} ${originY} ${originZ}`}}function renderHTML(element,{style:style2,vars},styleProp,projection){let elementStyle=element.style,key;for(key in style2)elementStyle[key]=style2[key];projection?.applyProjectionStyles(elementStyle,styleProp);for(key in vars)elementStyle.setProperty(key,vars[key])}function pixelsToPercent(pixels,axis){return axis.max===axis.min?0:pixels/(axis.max-axis.min)*100}var correctBorderRadius={correct:(latest,node)=>{if(!node.target)return latest;if(typeof latest=="string")if(px.test(latest))latest=parseFloat(latest);else return latest;let x=pixelsToPercent(latest,node.target.x),y=pixelsToPercent(latest,node.target.y);return`${x}% ${y}%`}};var correctBoxShadow={correct:(latest,{treeScale,projectionDelta})=>{let original=latest,shadow=complex.parse(latest);if(shadow.length>5)return original;let template=complex.createTransformer(latest),offset=typeof shadow[0]!="number"?1:0,xScale=projectionDelta.x.scale*treeScale.x,yScale=projectionDelta.y.scale*treeScale.y;shadow[0+offset]/=xScale,shadow[1+offset]/=yScale;let averageScale=mixNumber(xScale,yScale,.5);return typeof shadow[2+offset]=="number"&&(shadow[2+offset]/=averageScale),typeof shadow[3+offset]=="number"&&(shadow[3+offset]/=averageScale),template(shadow)}};var scaleCorrectors={borderRadius:{...correctBorderRadius,applyTo:[...cornerRadiusProps]},borderTopLeftRadius:correctBorderRadius,borderTopRightRadius:correctBorderRadius,borderBottomLeftRadius:correctBorderRadius,borderBottomRightRadius:correctBorderRadius,boxShadow:correctBoxShadow};function addScaleCorrector(correctors){for(let key in correctors)scaleCorrectors[key]=correctors[key],isCSSVariableName(key)&&(scaleCorrectors[key].isCSSVariable=!0)}function isForcedMotionValue(key,{layout,layoutId}){return transformProps.has(key)||key.startsWith("origin")||(layout||layoutId!==void 0)&&(!!scaleCorrectors[key]||key==="opacity")}function scrapeMotionValuesFromProps(props,prevProps,visualElement){let style2=props.style,prevStyle=prevProps?.style,newValues={};if(!style2)return newValues;for(let key in style2)(isMotionValue(style2[key])||prevStyle&&isMotionValue(prevStyle[key])||isForcedMotionValue(key,props)||visualElement?.getValue(key)?.liveStyle!==void 0)&&(newValues[key]=style2[key]);return newValues}function getComputedStyle3(element){return window.getComputedStyle(element)}var HTMLVisualElement=class extends DOMVisualElement{constructor(){super(...arguments),this.type="html",this.renderInstance=renderHTML}mount(instance){invariant(!!instance.style,"motion.create() components must forward their ref to a HTML or SVG element","custom-component-ref"),super.mount(instance)}readValueFromInstance(instance,key){if(transformProps.has(key))return this.projection?.isProjecting?defaultTransformValue(key):readTransformValue(instance,key);{let computedStyle=getComputedStyle3(instance),value=(isCSSVariableName(key)?computedStyle.getPropertyValue(key):computedStyle[key])||0;return typeof value=="string"?value.trim():value}}measureInstanceViewportBox(instance,{transformPagePoint}){return measureViewportBox(instance,transformPagePoint)}build(renderState,latestValues,props){buildHTMLStyles(renderState,latestValues,props.transformTemplate)}scrapeMotionValuesFromProps(props,prevProps,visualElement){return scrapeMotionValuesFromProps(props,prevProps,visualElement)}};function isObjectKey(key,object){return key in object}var ObjectVisualElement=class extends VisualElement{constructor(){super(...arguments),this.type="object"}readValueFromInstance(instance,key){if(isObjectKey(key,instance)){let value=instance[key];if(typeof value=="string"||typeof value=="number")return value}}getBaseTargetFromProps(){}removeValueFromRenderState(key,renderState){delete renderState.output[key]}measureInstanceViewportBox(){return createBox()}build(renderState,latestValues){Object.assign(renderState.output,latestValues)}renderInstance(instance,{output}){Object.assign(instance,output)}sortInstanceNodePosition(){return 0}};var dashKeys={offset:"stroke-dashoffset",array:"stroke-dasharray"},camelKeys={offset:"strokeDashoffset",array:"strokeDasharray"};function buildSVGPath(attrs,length,spacing=1,offset=0,useDashCase=!0){attrs.pathLength=1;let keys2=useDashCase?dashKeys:camelKeys;attrs[keys2.offset]=`${-offset}`,attrs[keys2.array]=`${length} ${spacing}`}var cssMotionPathProperties=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function buildSVGAttrs(state,{attrX,attrY,attrScale,pathLength,pathSpacing=1,pathOffset=0,...latest},isSVGTag2,transformTemplate,styleProp){if(buildHTMLStyles(state,latest,transformTemplate),isSVGTag2){state.style.viewBox&&(state.attrs.viewBox=state.style.viewBox);return}state.attrs=state.style,state.style={};let{attrs,style:style2}=state;attrs.transform&&(style2.transform=attrs.transform,delete attrs.transform),(style2.transform||attrs.transformOrigin)&&(style2.transformOrigin=attrs.transformOrigin??"50% 50%",delete attrs.transformOrigin),style2.transform&&(style2.transformBox=styleProp?.transformBox??"fill-box",delete attrs.transformBox);for(let key of cssMotionPathProperties)attrs[key]!==void 0&&(style2[key]=attrs[key],delete attrs[key]);attrX!==void 0&&(attrs.x=attrX),attrY!==void 0&&(attrs.y=attrY),attrScale!==void 0&&(attrs.scale=attrScale),pathLength!==void 0&&buildSVGPath(attrs,pathLength,pathSpacing,pathOffset,!1)}var camelCaseAttributes=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);var isSVGTag=tag=>typeof tag=="string"&&tag.toLowerCase()==="svg";function renderSVG(element,renderState,_styleProp,projection){renderHTML(element,renderState,void 0,projection);for(let key in renderState.attrs)element.setAttribute(camelCaseAttributes.has(key)?key:camelToDash(key),renderState.attrs[key])}function scrapeMotionValuesFromProps2(props,prevProps,visualElement){let newValues=scrapeMotionValuesFromProps(props,prevProps,visualElement);for(let key in props)if(isMotionValue(props[key])||isMotionValue(prevProps[key])){let targetKey=transformPropOrder.indexOf(key)!==-1?"attr"+key.charAt(0).toUpperCase()+key.substring(1):key;newValues[targetKey]=props[key]}return newValues}var SVGVisualElement=class extends DOMVisualElement{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=createBox}getBaseTargetFromProps(props,key){return props[key]}readValueFromInstance(instance,key){if(transformProps.has(key)){let defaultType=getDefaultValueType(key);return defaultType&&defaultType.default||0}return key=camelCaseAttributes.has(key)?key:camelToDash(key),instance.getAttribute(key)}scrapeMotionValuesFromProps(props,prevProps,visualElement){return scrapeMotionValuesFromProps2(props,prevProps,visualElement)}build(renderState,latestValues,props){buildSVGAttrs(renderState,latestValues,this.isSVGTag,props.transformTemplate,props.style)}renderInstance(instance,renderState,styleProp,projection){renderSVG(instance,renderState,styleProp,projection)}mount(instance){this.isSVGTag=isSVGTag(instance.tagName),super.mount(instance)}};var numVariantProps=variantProps.length;function getVariantContext(visualElement){if(!visualElement)return;if(!visualElement.isControllingVariants){let context2=visualElement.parent?getVariantContext(visualElement.parent)||{}:{};return visualElement.props.initial!==void 0&&(context2.initial=visualElement.props.initial),context2}let context={};for(let i=0;i<numVariantProps;i++){let name=variantProps[i],prop=visualElement.props[name];(isVariantLabel(prop)||prop===!1)&&(context[name]=prop)}return context}function shallowCompare(next2,prev){if(!Array.isArray(prev))return!1;let prevLength=prev.length;if(prevLength!==next2.length)return!1;for(let i=0;i<prevLength;i++)if(prev[i]!==next2[i])return!1;return!0}var reversePriorityOrder=[...variantPriorityOrder].reverse(),numAnimationTypes=variantPriorityOrder.length;function createAnimateFunction(visualElement){return animations=>Promise.all(animations.map(({animation,options})=>animateVisualElement(visualElement,animation,options)))}function createAnimationState(visualElement){let animate2=createAnimateFunction(visualElement),state=createState(),isInitialRender=!0,wasReset=!1,buildResolvedTypeValues=type=>(acc,definition)=>{let resolved=resolveVariant(visualElement,definition,type==="exit"?visualElement.presenceContext?.custom:void 0);if(resolved){let{transition,transitionEnd,...target}=resolved;acc={...acc,...target,...transitionEnd}}return acc};function setAnimateFunction(makeAnimator){animate2=makeAnimator(visualElement)}function animateChanges(changedActiveType){let{props}=visualElement,context=getVariantContext(visualElement.parent)||{},animations=[],removedKeys=new Set,encounteredKeys={},removedVariantIndex=1/0;for(let i=0;i<numAnimationTypes;i++){let type=reversePriorityOrder[i],typeState=state[type],prop=props[type]!==void 0?props[type]:context[type],propIsVariant=isVariantLabel(prop),activeDelta=type===changedActiveType?typeState.isActive:null;activeDelta===!1&&(removedVariantIndex=i);let isInherited=prop===context[type]&&prop!==props[type]&&propIsVariant;if(isInherited&&(isInitialRender||wasReset)&&visualElement.manuallyAnimateOnMount&&(isInherited=!1),typeState.protectedKeys={...encounteredKeys},!typeState.isActive&&activeDelta===null||!prop&&!typeState.prevProp||isAnimationControls(prop)||typeof prop=="boolean")continue;if(type==="exit"&&typeState.isActive&&activeDelta!==!0){typeState.prevResolvedValues&&(encounteredKeys={...encounteredKeys,...typeState.prevResolvedValues});continue}let variantDidChange=checkVariantsDidChange(typeState.prevProp,prop),shouldAnimateType=variantDidChange||type===changedActiveType&&typeState.isActive&&!isInherited&&propIsVariant||i>removedVariantIndex&&propIsVariant,handledRemovedValues=!1,definitionList=Array.isArray(prop)?prop:[prop],resolvedValues=definitionList.reduce(buildResolvedTypeValues(type),{});activeDelta===!1&&(resolvedValues={});let{prevResolvedValues={}}=typeState,allKeys={...prevResolvedValues,...resolvedValues},markToAnimate=key=>{shouldAnimateType=!0,removedKeys.has(key)&&(handledRemovedValues=!0,removedKeys.delete(key)),typeState.needsAnimating[key]=!0;let motionValue2=visualElement.getValue(key);motionValue2&&(motionValue2.liveStyle=!1)};for(let key in allKeys){let next2=resolvedValues[key],prev=prevResolvedValues[key];if(encounteredKeys.hasOwnProperty(key))continue;let valueHasChanged=!1;isKeyframesTarget(next2)&&isKeyframesTarget(prev)?valueHasChanged=!shallowCompare(next2,prev)||variantDidChange:valueHasChanged=next2!==prev,valueHasChanged?next2!=null?markToAnimate(key):removedKeys.add(key):next2!==void 0&&removedKeys.has(key)?markToAnimate(key):typeState.protectedKeys[key]=!0}typeState.prevProp=prop,typeState.prevResolvedValues=resolvedValues,typeState.isActive&&(encounteredKeys={...encounteredKeys,...resolvedValues}),(isInitialRender||wasReset)&&visualElement.blockInitialAnimation&&(shouldAnimateType=!1);let willAnimateViaParent=isInherited&&variantDidChange;shouldAnimateType&&(!willAnimateViaParent||handledRemovedValues)&&animations.push(...definitionList.map(animation=>{let options={type};if(typeof animation=="string"&&(isInitialRender||wasReset)&&!willAnimateViaParent&&visualElement.manuallyAnimateOnMount&&visualElement.parent){let{parent}=visualElement,parentVariant=resolveVariant(parent,animation);if(parent.enteringChildren&&parentVariant){let{delayChildren}=parentVariant.transition||{};options.delay=calcChildStagger(parent.enteringChildren,visualElement,delayChildren)}}return{animation,options}}))}if(removedKeys.size){let fallbackAnimation={};if(typeof props.initial!="boolean"){let initialTransition=resolveVariant(visualElement,Array.isArray(props.initial)?props.initial[0]:props.initial);initialTransition&&initialTransition.transition&&(fallbackAnimation.transition=initialTransition.transition)}removedKeys.forEach(key=>{let fallbackTarget=visualElement.getBaseTarget(key),motionValue2=visualElement.getValue(key);motionValue2&&(motionValue2.liveStyle=!0),fallbackAnimation[key]=fallbackTarget??null}),animations.push({animation:fallbackAnimation})}let shouldAnimate=!!animations.length;return isInitialRender&&(props.initial===!1||props.initial===props.animate)&&!visualElement.manuallyAnimateOnMount&&(shouldAnimate=!1),isInitialRender=!1,wasReset=!1,shouldAnimate?animate2(animations):Promise.resolve()}function setActive(type,isActive){if(state[type].isActive===isActive)return Promise.resolve();visualElement.variantChildren?.forEach(child=>child.animationState?.setActive(type,isActive)),state[type].isActive=isActive;let animations=animateChanges(type);for(let key in state)state[key].protectedKeys={};return animations}return{animateChanges,setActive,setAnimateFunction,getState:()=>state,reset:()=>{state=createState(),wasReset=!0}}}function checkVariantsDidChange(prev,next2){return typeof next2=="string"?next2!==prev:Array.isArray(next2)?!shallowCompare(next2,prev):!1}function createTypeState(isActive=!1){return{isActive,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function createState(){return{animate:createTypeState(!0),whileInView:createTypeState(),whileHover:createTypeState(),whileTap:createTypeState(),whileDrag:createTypeState(),whileFocus:createTypeState(),exit:createTypeState()}}function copyAxisInto(axis,originAxis){axis.min=originAxis.min,axis.max=originAxis.max}function copyBoxInto(box,originBox){copyAxisInto(box.x,originBox.x),copyAxisInto(box.y,originBox.y)}function copyAxisDeltaInto(delta,originDelta){delta.translate=originDelta.translate,delta.scale=originDelta.scale,delta.originPoint=originDelta.originPoint,delta.origin=originDelta.origin}var SCALE_PRECISION=1e-4,SCALE_MIN=1-SCALE_PRECISION,SCALE_MAX=1+SCALE_PRECISION,TRANSLATE_PRECISION=.01,TRANSLATE_MIN=0-TRANSLATE_PRECISION,TRANSLATE_MAX=0+TRANSLATE_PRECISION;function calcLength(axis){return axis.max-axis.min}function isNear(value,target,maxDistance){return Math.abs(value-target)<=maxDistance}function calcAxisDelta(delta,source,target,origin=.5){delta.origin=origin,delta.originPoint=mixNumber(source.min,source.max,delta.origin),delta.scale=calcLength(target)/calcLength(source),delta.translate=mixNumber(target.min,target.max,delta.origin)-delta.originPoint,(delta.scale>=SCALE_MIN&&delta.scale<=SCALE_MAX||isNaN(delta.scale))&&(delta.scale=1),(delta.translate>=TRANSLATE_MIN&&delta.translate<=TRANSLATE_MAX||isNaN(delta.translate))&&(delta.translate=0)}function calcBoxDelta(delta,source,target,origin){calcAxisDelta(delta.x,source.x,target.x,origin?origin.originX:void 0),calcAxisDelta(delta.y,source.y,target.y,origin?origin.originY:void 0)}function calcRelativeAxis(target,relative,parent,anchor=0){let anchorPoint=anchor?mixNumber(parent.min,parent.max,anchor):parent.min;target.min=anchorPoint+relative.min,target.max=target.min+calcLength(relative)}function calcRelativeBox(target,relative,parent,anchor){calcRelativeAxis(target.x,relative.x,parent.x,anchor?.x),calcRelativeAxis(target.y,relative.y,parent.y,anchor?.y)}function calcRelativeAxisPosition(target,layout,parent,anchor=0){let anchorPoint=anchor?mixNumber(parent.min,parent.max,anchor):parent.min;target.min=layout.min-anchorPoint,target.max=target.min+calcLength(layout)}function calcRelativePosition(target,layout,parent,anchor){calcRelativeAxisPosition(target.x,layout.x,parent.x,anchor?.x),calcRelativeAxisPosition(target.y,layout.y,parent.y,anchor?.y)}function removePointDelta(point2,translate,scale2,originPoint,boxScale){return point2-=translate,point2=scalePoint(point2,1/scale2,originPoint),boxScale!==void 0&&(point2=scalePoint(point2,1/boxScale,originPoint)),point2}function removeAxisDelta(axis,translate=0,scale2=1,origin=.5,boxScale,originAxis=axis,sourceAxis=axis){if(percent.test(translate)&&(translate=parseFloat(translate),translate=mixNumber(sourceAxis.min,sourceAxis.max,translate/100)-sourceAxis.min),typeof translate!="number")return;let originPoint=mixNumber(originAxis.min,originAxis.max,origin);axis===originAxis&&(originPoint-=translate),axis.min=removePointDelta(axis.min,translate,scale2,originPoint,boxScale),axis.max=removePointDelta(axis.max,translate,scale2,originPoint,boxScale)}function removeAxisTransforms(axis,transforms,[key,scaleKey,originKey],origin,sourceAxis){removeAxisDelta(axis,transforms[key],transforms[scaleKey],transforms[originKey],transforms.scale,origin,sourceAxis)}var xKeys=["x","scaleX","originX"],yKeys=["y","scaleY","originY"];function removeBoxTransforms(box,transforms,originBox,sourceBox){removeAxisTransforms(box.x,transforms,xKeys,originBox?originBox.x:void 0,sourceBox?sourceBox.x:void 0),removeAxisTransforms(box.y,transforms,yKeys,originBox?originBox.y:void 0,sourceBox?sourceBox.y:void 0)}function isAxisDeltaZero(delta){return delta.translate===0&&delta.scale===1}function isDeltaZero(delta){return isAxisDeltaZero(delta.x)&&isAxisDeltaZero(delta.y)}function axisEquals(a,b){return a.min===b.min&&a.max===b.max}function boxEquals(a,b){return axisEquals(a.x,b.x)&&axisEquals(a.y,b.y)}function axisEqualsRounded(a,b){return Math.round(a.min)===Math.round(b.min)&&Math.round(a.max)===Math.round(b.max)}function boxEqualsRounded(a,b){return axisEqualsRounded(a.x,b.x)&&axisEqualsRounded(a.y,b.y)}function aspectRatio(box){return calcLength(box.x)/calcLength(box.y)}function axisDeltaEquals(a,b){return a.translate===b.translate&&a.scale===b.scale&&a.originPoint===b.originPoint}function eachAxis(callback){return[callback("x"),callback("y")]}function buildProjectionTransform(delta,treeScale,latestTransform){let transform2="",xTranslate=delta.x.translate/treeScale.x,yTranslate=delta.y.translate/treeScale.y,zTranslate=latestTransform?.z||0;if((xTranslate||yTranslate||zTranslate)&&(transform2=`translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `),(treeScale.x!==1||treeScale.y!==1)&&(transform2+=`scale(${1/treeScale.x}, ${1/treeScale.y}) `),latestTransform){let{transformPerspective,rotate:rotate2,pathRotation,rotateX,rotateY,skewX,skewY}=latestTransform;transformPerspective&&(transform2=`perspective(${transformPerspective}px) ${transform2}`),rotate2&&(transform2+=`rotate(${rotate2}deg) `),pathRotation&&(transform2+=`rotate(${pathRotation}deg) `),rotateX&&(transform2+=`rotateX(${rotateX}deg) `),rotateY&&(transform2+=`rotateY(${rotateY}deg) `),skewX&&(transform2+=`skewX(${skewX}deg) `),skewY&&(transform2+=`skewY(${skewY}deg) `)}let elementScaleX=delta.x.scale*treeScale.x,elementScaleY=delta.y.scale*treeScale.y;return(elementScaleX!==1||elementScaleY!==1)&&(transform2+=`scale(${elementScaleX}, ${elementScaleY})`),transform2||"none"}var numBorders=cornerRadiusProps.length,asNumber2=value=>typeof value=="string"?parseFloat(value):value,isPx=value=>typeof value=="number"||px.test(value);function mixValues(target,follow,lead,progress2,shouldCrossfadeOpacity,isOnlyMember){shouldCrossfadeOpacity?(target.opacity=mixNumber(0,lead.opacity??1,easeCrossfadeIn(progress2)),target.opacityExit=mixNumber(follow.opacity??1,0,easeCrossfadeOut(progress2))):isOnlyMember&&(target.opacity=mixNumber(follow.opacity??1,lead.opacity??1,progress2));for(let i=0;i<numBorders;i++){let borderLabel=cornerRadiusProps[i],followRadius=getRadius(follow,borderLabel),leadRadius=getRadius(lead,borderLabel);if(followRadius===void 0&&leadRadius===void 0)continue;followRadius||(followRadius=0),leadRadius||(leadRadius=0),followRadius===0||leadRadius===0||isPx(followRadius)===isPx(leadRadius)?(target[borderLabel]=Math.max(mixNumber(asNumber2(followRadius),asNumber2(leadRadius),progress2),0),(percent.test(leadRadius)||percent.test(followRadius))&&(target[borderLabel]+="%")):target[borderLabel]=leadRadius}(follow.rotate||lead.rotate)&&(target.rotate=mixNumber(follow.rotate||0,lead.rotate||0,progress2))}function getRadius(values,radiusName){return values[radiusName]!==void 0?values[radiusName]:values.borderRadius}var easeCrossfadeIn=compress(0,.5,circOut),easeCrossfadeOut=compress(.5,.95,noop);function compress(min,max,easing){return p=>p<min?0:p>max?1:easing(progress(min,max,p))}function animateSingleValue(value,keyframes2,options){let motionValue$1=isMotionValue(value)?value:motionValue(value);return motionValue$1.start(animateMotionValue("",motionValue$1,keyframes2,options)),motionValue$1.animation}function addDomEvent(target,eventName,handler,options={passive:!0}){return target.addEventListener(eventName,handler,options),()=>target.removeEventListener(eventName,handler,options)}var compareByDepth=(a,b)=>a.depth-b.depth;var FlatTree=class{constructor(){this.children=[],this.isDirty=!1}add(child){addUniqueItem(this.children,child),this.isDirty=!0}remove(child){removeItem(this.children,child),this.isDirty=!0}forEach(callback){this.isDirty&&this.children.sort(compareByDepth),this.isDirty=!1,this.children.forEach(callback)}};function delay(callback,timeout){let start2=time.now(),checkElapsed=({timestamp})=>{let elapsed=timestamp-start2;elapsed>=timeout&&(cancelFrame(checkElapsed),callback(elapsed-timeout))};return frame.setup(checkElapsed,!0),()=>cancelFrame(checkElapsed)}function delayInSeconds(callback,timeout){return delay(callback,secondsToMilliseconds(timeout))}function resolveMotionValue(value){return isMotionValue(value)?value.get():value}var NodeStack=class{constructor(){this.members=[]}add(node){addUniqueItem(this.members,node);for(let i=this.members.length-1;i>=0;i--){let member=this.members[i];if(member===node||member===this.lead||member===this.prevLead)continue;let inst=member.instance;(!inst||inst.isConnected===!1)&&!member.snapshot&&(removeItem(this.members,member),member.unmount())}node.scheduleRender()}remove(node){if(removeItem(this.members,node),node===this.prevLead&&(this.prevLead=void 0),node===this.lead){let prevLead=this.members[this.members.length-1];prevLead&&this.promote(prevLead)}}relegate(node){for(let i=this.members.indexOf(node)-1;i>=0;i--){let member=this.members[i];if(member.isPresent!==!1&&member.instance?.isConnected!==!1)return this.promote(member),!0}return!1}promote(node,preserveFollowOpacity){let prevLead=this.lead;if(node!==prevLead&&(this.prevLead=prevLead,this.lead=node,node.show(),prevLead)){prevLead.updateSnapshot(),node.scheduleRender();let{layoutDependency:prevDep}=prevLead.options,{layoutDependency:nextDep}=node.options;(prevDep===void 0||prevDep!==nextDep)&&(node.resumeFrom=prevLead,preserveFollowOpacity&&(prevLead.preserveOpacity=!0),prevLead.snapshot&&(node.snapshot=prevLead.snapshot,node.snapshot.latestValues=prevLead.animationValues||prevLead.latestValues),node.root?.isUpdating&&(node.isLayoutDirty=!0)),node.options.crossfade===!1&&prevLead.hide()}}exitAnimationComplete(){this.members.forEach(member=>{member.options.onExitComplete?.(),member.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(member=>member.instance&&member.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}};var globalProjectionState={hasAnimatedSinceResize:!0,hasEverUpdated:!1};var metrics={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},transformAxes=["","X","Y","Z"],animationTarget=1e3,id=0;function resetDistortingTransform(key,visualElement,values,sharedAnimationValues){let{latestValues}=visualElement;latestValues[key]&&(values[key]=latestValues[key],visualElement.setStaticValue(key,0),sharedAnimationValues&&(sharedAnimationValues[key]=0))}function cancelTreeOptimisedTransformAnimations(projectionNode){if(projectionNode.hasCheckedOptimisedAppear=!0,projectionNode.root===projectionNode)return;let{visualElement}=projectionNode.options;if(!visualElement)return;let appearId=getOptimisedAppearId(visualElement);if(window.MotionHasOptimisedAnimation(appearId,"transform")){let{layout,layoutId}=projectionNode.options;window.MotionCancelOptimisedAnimation(appearId,"transform",frame,!(layout||layoutId))}let{parent}=projectionNode;parent&&!parent.hasCheckedOptimisedAppear&&cancelTreeOptimisedTransformAnimations(parent)}function createProjectionNode({attachResizeListener,defaultParent,measureScroll,checkIsScrollRoot,resetTransform}){return class{constructor(latestValues={},parent=defaultParent?.()){this.id=id++,this.animationId=0,this.animationCommitId=0,this.children=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=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,statsBuffer.value&&(metrics.nodes=metrics.calculatedTargetDeltas=metrics.calculatedProjections=0),this.nodes.forEach(propagateDirtyNodes),this.nodes.forEach(resolveTargetDelta),this.nodes.forEach(calcProjection),this.nodes.forEach(cleanDirtyNodes),statsBuffer.addProjectionMetrics&&statsBuffer.addProjectionMetrics(metrics)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=latestValues,this.root=parent?parent.root||parent:this,this.path=parent?[...parent.path,parent]:[],this.parent=parent,this.depth=parent?parent.depth+1:0;for(let i=0;i<this.path.length;i++)this.path[i].shouldResetTransform=!0;this.root===this&&(this.nodes=new FlatTree)}addEventListener(name,handler){return this.eventHandlers.has(name)||this.eventHandlers.set(name,new SubscriptionManager),this.eventHandlers.get(name).add(handler)}notifyListeners(name,...args){let subscriptionManager=this.eventHandlers.get(name);subscriptionManager&&subscriptionManager.notify(...args)}hasListeners(name){return this.eventHandlers.has(name)}mount(instance){if(this.instance)return;this.isSVG=isSVGElement(instance)&&!isSVGSVGElement(instance),this.instance=instance;let{layoutId,layout,visualElement}=this.options;if(visualElement&&!visualElement.current&&visualElement.mount(instance),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(layout||layoutId)&&(this.isLayoutDirty=!0),attachResizeListener){let cancelDelay,innerWidth=0,resizeUnblockUpdate=()=>this.root.updateBlockedByResize=!1;frame.read(()=>{innerWidth=window.innerWidth}),attachResizeListener(instance,()=>{let newInnerWidth=window.innerWidth;newInnerWidth!==innerWidth&&(innerWidth=newInnerWidth,this.root.updateBlockedByResize=!0,cancelDelay&&cancelDelay(),cancelDelay=delay(resizeUnblockUpdate,250),globalProjectionState.hasAnimatedSinceResize&&(globalProjectionState.hasAnimatedSinceResize=!1,this.nodes.forEach(finishAnimation)))})}layoutId&&this.root.registerSharedNode(layoutId,this),this.options.animate!==!1&&visualElement&&(layoutId||layout)&&this.addEventListener("didUpdate",({delta,hasLayoutChanged,hasRelativeLayoutChanged,layout:newLayout})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let layoutTransition=this.options.transition||visualElement.getDefaultTransition()||defaultLayoutTransition,{onLayoutAnimationStart,onLayoutAnimationComplete}=visualElement.getProps(),hasTargetChanged=!this.targetLayout||!boxEqualsRounded(this.targetLayout,newLayout),hasOnlyRelativeTargetChanged=!hasLayoutChanged&&hasRelativeLayoutChanged;if(this.options.layoutRoot||this.resumeFrom||hasOnlyRelativeTargetChanged||hasLayoutChanged&&(hasTargetChanged||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let animationOptions={...getValueTransition(layoutTransition,"layout"),onPlay:onLayoutAnimationStart,onComplete:onLayoutAnimationComplete};(visualElement.shouldReduceMotion||this.options.layoutRoot)&&(animationOptions.delay=0,animationOptions.type=!1),this.startAnimation(animationOptions),this.setAnimationOrigin(delta,hasOnlyRelativeTargetChanged,animationOptions.path)}else hasLayoutChanged||finishAnimation(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=newLayout})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let stack=this.getStack();stack&&stack.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),cancelFrame(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(resetSkewAndRotation),this.animationId++)}getTransformTemplate(){let{visualElement}=this.options;return visualElement&&visualElement.getProps().transformTemplate}willUpdate(shouldNotifyListeners=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&cancelTreeOptimisedTransformAnimations(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let i=0;i<this.path.length;i++){let node=this.path[i];node.shouldResetTransform=!0,(typeof node.latestValues.x=="string"||typeof node.latestValues.y=="string")&&(node.isLayoutDirty=!0),node.updateScroll("snapshot"),node.options.layoutRoot&&node.willUpdate(!1)}let{layoutId,layout}=this.options;if(layoutId===void 0&&!layout)return;let transformTemplate=this.getTransformTemplate();this.prevTransformTemplateValue=transformTemplate?transformTemplate(this.latestValues,""):void 0,this.updateSnapshot(),shouldNotifyListeners&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){let wasBlockedByResize=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),wasBlockedByResize&&this.nodes.forEach(forceLayoutMeasure),this.nodes.forEach(clearMeasurements);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(clearIsLayoutDirty);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(ensureDraggedNodesSnapshotted),this.nodes.forEach(resetTransformStyle),this.nodes.forEach(updateLayout),this.nodes.forEach(notifyLayoutUpdate)):this.nodes.forEach(clearIsLayoutDirty),this.clearAllSnapshots();let now2=time.now();frameData.delta=clamp(0,1e3/60,now2-frameData.timestamp),frameData.timestamp=now2,frameData.isProcessing=!0,frameSteps.update.process(frameData),frameSteps.preRender.process(frameData),frameSteps.render.process(frameData),frameData.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,microtask.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(clearSnapshot),this.sharedNodes.forEach(removeLeadSnapshots)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,frame.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){frame.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!calcLength(this.snapshot.measuredBox.x)&&!calcLength(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let i=0;i<this.path.length;i++)this.path[i].updateScroll();let prevLayout=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=createBox()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);let{visualElement}=this.options;visualElement&&visualElement.notify("LayoutMeasure",this.layout.layoutBox,prevLayout?prevLayout.layoutBox:void 0)}updateScroll(phase="measure"){let needsMeasurement=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===phase&&(needsMeasurement=!1),needsMeasurement&&this.instance){let isRoot=checkIsScrollRoot(this.instance);this.scroll={animationId:this.root.animationId,phase,isRoot,offset:measureScroll(this.instance),wasRoot:this.scroll?this.scroll.isRoot:isRoot}}}resetTransform(){if(!resetTransform)return;let isResetRequested=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,hasProjection=this.projectionDelta&&!isDeltaZero(this.projectionDelta),transformTemplate=this.getTransformTemplate(),transformTemplateValue=transformTemplate?transformTemplate(this.latestValues,""):void 0,transformTemplateHasChanged=transformTemplateValue!==this.prevTransformTemplateValue;isResetRequested&&this.instance&&(hasProjection||hasTransform(this.latestValues)||transformTemplateHasChanged)&&(resetTransform(this.instance,transformTemplateValue),this.shouldResetTransform=!1,this.scheduleRender())}measure(removeTransform=!0){let pageBox=this.measurePageBox(),layoutBox=this.removeElementScroll(pageBox);return removeTransform&&(layoutBox=this.removeTransform(layoutBox)),roundBox(layoutBox),{animationId:this.root.animationId,measuredBox:pageBox,layoutBox,latestValues:{},source:this.id}}measurePageBox(){let{visualElement}=this.options;if(!visualElement)return createBox();let box=visualElement.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(checkNodeWasScrollRoot))){let{scroll:scroll2}=this.root;scroll2&&(translateAxis(box.x,scroll2.offset.x),translateAxis(box.y,scroll2.offset.y))}return box}removeElementScroll(box){let boxWithoutScroll=createBox();if(copyBoxInto(boxWithoutScroll,box),this.scroll?.wasRoot)return boxWithoutScroll;for(let i=0;i<this.path.length;i++){let node=this.path[i],{scroll:scroll2,options}=node;node!==this.root&&scroll2&&options.layoutScroll&&(scroll2.wasRoot&&copyBoxInto(boxWithoutScroll,box),translateAxis(boxWithoutScroll.x,scroll2.offset.x),translateAxis(boxWithoutScroll.y,scroll2.offset.y))}return boxWithoutScroll}applyTransform(box,transformOnly=!1,output){let withTransforms=output||createBox();copyBoxInto(withTransforms,box);for(let i=0;i<this.path.length;i++){let node=this.path[i];!transformOnly&&node.options.layoutScroll&&node.scroll&&node!==node.root&&(translateAxis(withTransforms.x,-node.scroll.offset.x),translateAxis(withTransforms.y,-node.scroll.offset.y)),hasTransform(node.latestValues)&&transformBox(withTransforms,node.latestValues,node.layout?.layoutBox)}return hasTransform(this.latestValues)&&transformBox(withTransforms,this.latestValues,this.layout?.layoutBox),withTransforms}removeTransform(box){let boxWithoutTransform=createBox();copyBoxInto(boxWithoutTransform,box);for(let i=0;i<this.path.length;i++){let node=this.path[i];if(!hasTransform(node.latestValues))continue;let sourceBox;node.instance&&(hasScale(node.latestValues)&&node.updateSnapshot(),sourceBox=createBox(),copyBoxInto(sourceBox,node.measurePageBox())),removeBoxTransforms(boxWithoutTransform,node.latestValues,node.snapshot?.layoutBox,sourceBox)}return hasTransform(this.latestValues)&&removeBoxTransforms(boxWithoutTransform,this.latestValues),boxWithoutTransform}setTargetDelta(delta){this.targetDelta=delta,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(options){this.options={...this.options,...options,crossfade:options.crossfade!==void 0?options.crossfade:!0}}clearMeasurements(){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}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==frameData.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(forceRecalculation=!1){let lead=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=lead.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=lead.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=lead.isSharedProjectionDirty);let isShared=!!this.resumingFrom||this!==lead;if(!(forceRecalculation||isShared&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout,layoutId}=this.options;if(!this.layout||!(layout||layoutId))return;this.resolvedRelativeTargetAt=frameData.timestamp;let relativeParent=this.getClosestProjectingParent();relativeParent&&this.linkedParentVersion!==relativeParent.layoutVersion&&!relativeParent.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&relativeParent&&relativeParent.layout?this.createRelativeTarget(relativeParent,this.layout.layoutBox,relativeParent.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=createBox(),this.targetWithTransforms=createBox()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),calcRelativeBox(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):copyBoxInto(this.target,this.layout.layoutBox),applyBoxDelta(this.target,this.targetDelta)):copyBoxInto(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&relativeParent&&!!relativeParent.resumingFrom==!!this.resumingFrom&&!relativeParent.options.layoutScroll&&relativeParent.target&&this.animationProgress!==1?this.createRelativeTarget(relativeParent,this.target,relativeParent.target):this.relativeParent=this.relativeTarget=void 0),statsBuffer.value&&metrics.calculatedTargetDeltas++)}getClosestProjectingParent(){if(!(!this.parent||hasScale(this.parent.latestValues)||has2DTranslate(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(relativeParent,layout,parentLayout){this.relativeParent=relativeParent,this.linkedParentVersion=relativeParent.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=createBox(),this.relativeTargetOrigin=createBox(),calcRelativePosition(this.relativeTargetOrigin,layout,parentLayout,this.options.layoutAnchor||void 0),copyBoxInto(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let lead=this.getLead(),isShared=!!this.resumingFrom||this!==lead,canSkip=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(canSkip=!1),isShared&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(canSkip=!1),this.resolvedRelativeTargetAt===frameData.timestamp&&(canSkip=!1),canSkip)return;let{layout,layoutId}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(layout||layoutId))return;copyBoxInto(this.layoutCorrected,this.layout.layoutBox);let prevTreeScaleX=this.treeScale.x,prevTreeScaleY=this.treeScale.y;applyTreeDeltas(this.layoutCorrected,this.treeScale,this.path,isShared),lead.layout&&!lead.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(lead.target=lead.layout.layoutBox,lead.targetWithTransforms=createBox());let{target}=lead;if(!target){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(copyAxisDeltaInto(this.prevProjectionDelta.x,this.projectionDelta.x),copyAxisDeltaInto(this.prevProjectionDelta.y,this.projectionDelta.y)),calcBoxDelta(this.projectionDelta,this.layoutCorrected,target,this.latestValues),(this.treeScale.x!==prevTreeScaleX||this.treeScale.y!==prevTreeScaleY||!axisDeltaEquals(this.projectionDelta.x,this.prevProjectionDelta.x)||!axisDeltaEquals(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",target)),statsBuffer.value&&metrics.calculatedProjections++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(notifyAll2=!0){if(this.options.visualElement?.scheduleRender(),notifyAll2){let stack=this.getStack();stack&&stack.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=createDelta(),this.projectionDelta=createDelta(),this.projectionDeltaWithTransform=createDelta()}setAnimationOrigin(delta,hasOnlyRelativeTargetChanged=!1,pathFn){let snapshot=this.snapshot,snapshotLatestValues=snapshot?snapshot.latestValues:{},mixedValues={...this.latestValues},targetDelta=createDelta();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!hasOnlyRelativeTargetChanged;let relativeLayout=createBox(),snapshotSource=snapshot?snapshot.source:void 0,layoutSource=this.layout?this.layout.source:void 0,isSharedLayoutAnimation=snapshotSource!==layoutSource,stack=this.getStack(),isOnlyMember=!stack||stack.members.length<=1,shouldCrossfadeOpacity=!!(isSharedLayoutAnimation&&!isOnlyMember&&this.options.crossfade===!0&&!this.path.some(hasOpacityCrossfade));this.animationProgress=0;let prevRelativeTarget,interpolate2=pathFn?.interpolateProjection(delta);this.mixTargetDelta=latest=>{let progress2=latest/1e3,point2=interpolate2?.(progress2);point2?(targetDelta.x.translate=point2.x,targetDelta.x.scale=mixNumber(delta.x.scale,1,progress2),targetDelta.x.origin=delta.x.origin,targetDelta.x.originPoint=delta.x.originPoint,targetDelta.y.translate=point2.y,targetDelta.y.scale=mixNumber(delta.y.scale,1,progress2),targetDelta.y.origin=delta.y.origin,targetDelta.y.originPoint=delta.y.originPoint):(mixAxisDeltaLinear(targetDelta.x,delta.x,progress2),mixAxisDeltaLinear(targetDelta.y,delta.y,progress2)),this.setTargetDelta(targetDelta),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(calcRelativePosition(relativeLayout,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),mixBox(this.relativeTarget,this.relativeTargetOrigin,relativeLayout,progress2),prevRelativeTarget&&boxEquals(this.relativeTarget,prevRelativeTarget)&&(this.isProjectionDirty=!1),prevRelativeTarget||(prevRelativeTarget=createBox()),copyBoxInto(prevRelativeTarget,this.relativeTarget)),isSharedLayoutAnimation&&(this.animationValues=mixedValues,mixValues(mixedValues,snapshotLatestValues,this.latestValues,progress2,shouldCrossfadeOpacity,isOnlyMember)),point2&&point2.rotate!==void 0&&(this.animationValues||(this.animationValues=mixedValues),this.animationValues.pathRotation=point2.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=progress2},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(options){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(cancelFrame(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=frame.update(()=>{globalProjectionState.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=motionValue(0)),this.motionValue.jump(0,!1),this.currentAnimation=animateSingleValue(this.motionValue,[0,1e3],{...options,velocity:0,isSync:!0,onUpdate:latest=>{this.mixTargetDelta(latest),options.onUpdate&&options.onUpdate(latest)},onComplete:()=>{options.onComplete&&options.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let stack=this.getStack();stack&&stack.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(animationTarget),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let lead=this.getLead(),{targetWithTransforms,target,layout,latestValues}=lead;if(!(!targetWithTransforms||!target||!layout)){if(this!==lead&&this.layout&&layout&&shouldAnimatePositionOnly(this.options.animationType,this.layout.layoutBox,layout.layoutBox)){target=this.target||createBox();let xLength=calcLength(this.layout.layoutBox.x);target.x.min=lead.target.x.min,target.x.max=target.x.min+xLength;let yLength=calcLength(this.layout.layoutBox.y);target.y.min=lead.target.y.min,target.y.max=target.y.min+yLength}copyBoxInto(targetWithTransforms,target),transformBox(targetWithTransforms,latestValues),calcBoxDelta(this.projectionDeltaWithTransform,this.layoutCorrected,targetWithTransforms,latestValues)}}registerSharedNode(layoutId,node){this.sharedNodes.has(layoutId)||this.sharedNodes.set(layoutId,new NodeStack),this.sharedNodes.get(layoutId).add(node);let config=node.options.initialPromotionConfig;node.promote({transition:config?config.transition:void 0,preserveFollowOpacity:config&&config.shouldPreserveFollowOpacity?config.shouldPreserveFollowOpacity(node):void 0})}isLead(){let stack=this.getStack();return stack?stack.lead===this:!0}getLead(){let{layoutId}=this.options;return layoutId?this.getStack()?.lead||this:this}getPrevLead(){let{layoutId}=this.options;return layoutId?this.getStack()?.prevLead:void 0}getStack(){let{layoutId}=this.options;if(layoutId)return this.root.sharedNodes.get(layoutId)}promote({needsReset,transition,preserveFollowOpacity}={}){let stack=this.getStack();stack&&stack.promote(this,preserveFollowOpacity),needsReset&&(this.projectionDelta=void 0,this.needsReset=!0),transition&&this.setOptions({transition})}relegate(){let stack=this.getStack();return stack?stack.relegate(this):!1}resetSkewAndRotation(){let{visualElement}=this.options;if(!visualElement)return;let hasDistortingTransform=!1,{latestValues}=visualElement;if((latestValues.z||latestValues.rotate||latestValues.rotateX||latestValues.rotateY||latestValues.rotateZ||latestValues.skewX||latestValues.skewY)&&(hasDistortingTransform=!0),!hasDistortingTransform)return;let resetValues={};latestValues.z&&resetDistortingTransform("z",visualElement,resetValues,this.animationValues);for(let i=0;i<transformAxes.length;i++)resetDistortingTransform(`rotate${transformAxes[i]}`,visualElement,resetValues,this.animationValues),resetDistortingTransform(`skew${transformAxes[i]}`,visualElement,resetValues,this.animationValues);visualElement.render();for(let key in resetValues)visualElement.setStaticValue(key,resetValues[key]),this.animationValues&&(this.animationValues[key]=resetValues[key]);visualElement.scheduleRender()}applyProjectionStyles(targetStyle,styleProp){if(!this.instance||this.isSVG)return;if(!this.isVisible){targetStyle.visibility="hidden";return}let transformTemplate=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,targetStyle.visibility="",targetStyle.opacity="",targetStyle.pointerEvents=resolveMotionValue(styleProp?.pointerEvents)||"",targetStyle.transform=transformTemplate?transformTemplate(this.latestValues,""):"none";return}let lead=this.getLead();if(!this.projectionDelta||!this.layout||!lead.target){this.options.layoutId&&(targetStyle.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,targetStyle.pointerEvents=resolveMotionValue(styleProp?.pointerEvents)||""),this.hasProjected&&!hasTransform(this.latestValues)&&(targetStyle.transform=transformTemplate?transformTemplate({},""):"none",this.hasProjected=!1);return}targetStyle.visibility="";let valuesToRender=lead.animationValues||lead.latestValues;this.applyTransformsToTarget();let transform2=buildProjectionTransform(this.projectionDeltaWithTransform,this.treeScale,valuesToRender);transformTemplate&&(transform2=transformTemplate(valuesToRender,transform2)),targetStyle.transform=transform2;let{x,y}=this.projectionDelta;targetStyle.transformOrigin=`${x.origin*100}% ${y.origin*100}% 0`,lead.animationValues?targetStyle.opacity=lead===this?valuesToRender.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:valuesToRender.opacityExit:targetStyle.opacity=lead===this?valuesToRender.opacity!==void 0?valuesToRender.opacity:"":valuesToRender.opacityExit!==void 0?valuesToRender.opacityExit:0;for(let key in scaleCorrectors){if(valuesToRender[key]===void 0)continue;let{correct,applyTo,isCSSVariable}=scaleCorrectors[key],corrected=transform2==="none"?valuesToRender[key]:correct(valuesToRender[key],lead);if(applyTo){let num=applyTo.length;for(let i=0;i<num;i++)targetStyle[applyTo[i]]=corrected}else isCSSVariable?this.options.visualElement.renderState.vars[key]=corrected:targetStyle[key]=corrected}this.options.layoutId&&(targetStyle.pointerEvents=lead===this?resolveMotionValue(styleProp?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(node=>node.currentAnimation?.stop()),this.root.nodes.forEach(clearMeasurements),this.root.sharedNodes.clear()}}}function updateLayout(node){node.updateLayout()}function notifyLayoutUpdate(node){let snapshot=node.resumeFrom?.snapshot||node.snapshot;if(node.isLead()&&node.layout&&snapshot&&node.hasListeners("didUpdate")){let{layoutBox:layout,measuredBox:measuredLayout}=node.layout,{animationType}=node.options,isShared=snapshot.source!==node.layout.source;if(animationType==="size")eachAxis(axis=>{let axisSnapshot=isShared?snapshot.measuredBox[axis]:snapshot.layoutBox[axis],length=calcLength(axisSnapshot);axisSnapshot.min=layout[axis].min,axisSnapshot.max=axisSnapshot.min+length});else if(animationType==="x"||animationType==="y"){let snapAxis=animationType==="x"?"y":"x";copyAxisInto(isShared?snapshot.measuredBox[snapAxis]:snapshot.layoutBox[snapAxis],layout[snapAxis])}else shouldAnimatePositionOnly(animationType,snapshot.layoutBox,layout)&&eachAxis(axis=>{let axisSnapshot=isShared?snapshot.measuredBox[axis]:snapshot.layoutBox[axis],length=calcLength(layout[axis]);axisSnapshot.max=axisSnapshot.min+length,node.relativeTarget&&!node.currentAnimation&&(node.isProjectionDirty=!0,node.relativeTarget[axis].max=node.relativeTarget[axis].min+length)});let layoutDelta=createDelta();calcBoxDelta(layoutDelta,layout,snapshot.layoutBox);let visualDelta=createDelta();isShared?calcBoxDelta(visualDelta,node.applyTransform(measuredLayout,!0),snapshot.measuredBox):calcBoxDelta(visualDelta,layout,snapshot.layoutBox);let hasLayoutChanged=!isDeltaZero(layoutDelta),hasRelativeLayoutChanged=!1;if(!node.resumeFrom){let relativeParent=node.getClosestProjectingParent();if(relativeParent&&!relativeParent.resumeFrom){let{snapshot:parentSnapshot,layout:parentLayout}=relativeParent;if(parentSnapshot&&parentLayout){let anchor=node.options.layoutAnchor||void 0,relativeSnapshot=createBox();calcRelativePosition(relativeSnapshot,snapshot.layoutBox,parentSnapshot.layoutBox,anchor);let relativeLayout=createBox();calcRelativePosition(relativeLayout,layout,parentLayout.layoutBox,anchor),boxEqualsRounded(relativeSnapshot,relativeLayout)||(hasRelativeLayoutChanged=!0),relativeParent.options.layoutRoot&&(node.relativeTarget=relativeLayout,node.relativeTargetOrigin=relativeSnapshot,node.relativeParent=relativeParent)}}}node.notifyListeners("didUpdate",{layout,snapshot,delta:visualDelta,layoutDelta,hasLayoutChanged,hasRelativeLayoutChanged})}else if(node.isLead()){let{onExitComplete}=node.options;onExitComplete&&onExitComplete()}node.options.transition=void 0}function propagateDirtyNodes(node){statsBuffer.value&&metrics.nodes++,node.parent&&(node.isProjecting()||(node.isProjectionDirty=node.parent.isProjectionDirty),node.isSharedProjectionDirty||(node.isSharedProjectionDirty=!!(node.isProjectionDirty||node.parent.isProjectionDirty||node.parent.isSharedProjectionDirty)),node.isTransformDirty||(node.isTransformDirty=node.parent.isTransformDirty))}function cleanDirtyNodes(node){node.isProjectionDirty=node.isSharedProjectionDirty=node.isTransformDirty=!1}function clearSnapshot(node){node.clearSnapshot()}function clearMeasurements(node){node.clearMeasurements()}function forceLayoutMeasure(node){node.isLayoutDirty=!0,node.updateLayout()}function clearIsLayoutDirty(node){node.isLayoutDirty=!1}function ensureDraggedNodesSnapshotted(node){node.isAnimationBlocked&&node.layout&&!node.isLayoutDirty&&(node.snapshot=node.layout,node.isLayoutDirty=!0)}function resetTransformStyle(node){let{visualElement}=node.options;visualElement&&visualElement.getProps().onBeforeLayoutMeasure&&visualElement.notify("BeforeLayoutMeasure"),node.resetTransform()}function finishAnimation(node){node.finishAnimation(),node.targetDelta=node.relativeTarget=node.target=void 0,node.isProjectionDirty=!0}function resolveTargetDelta(node){node.resolveTargetDelta()}function calcProjection(node){node.calcProjection()}function resetSkewAndRotation(node){node.resetSkewAndRotation()}function removeLeadSnapshots(stack){stack.removeLeadSnapshot()}function mixAxisDeltaLinear(output,delta,p){output.translate=mixNumber(delta.translate,0,p),output.scale=mixNumber(delta.scale,1,p),output.origin=delta.origin,output.originPoint=delta.originPoint}function mixAxis(output,from,to,p){output.min=mixNumber(from.min,to.min,p),output.max=mixNumber(from.max,to.max,p)}function mixBox(output,from,to,p){mixAxis(output.x,from.x,to.x,p),mixAxis(output.y,from.y,to.y,p)}function hasOpacityCrossfade(node){return node.animationValues&&node.animationValues.opacityExit!==void 0}var defaultLayoutTransition={duration:.45,ease:[.4,0,.1,1]},userAgentContains=string=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(string),roundPoint=userAgentContains("applewebkit/")&&!userAgentContains("chrome/")?Math.round:noop;function roundAxis(axis){axis.min=roundPoint(axis.min),axis.max=roundPoint(axis.max)}function roundBox(box){roundAxis(box.x),roundAxis(box.y)}function shouldAnimatePositionOnly(animationType,snapshot,layout){return animationType==="position"||animationType==="preserve-aspect"&&!isNear(aspectRatio(snapshot),aspectRatio(layout),.2)}function checkNodeWasScrollRoot(node){return node!==node.root&&node.scroll?.wasRoot}var DocumentProjectionNode=createProjectionNode({attachResizeListener:(ref,notify2)=>addDomEvent(ref,"resize",notify2),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0});var notify=node=>!node.isLayoutDirty&&node.willUpdate(!1);function nodeGroup(){let nodes=new Set,subscriptions=new WeakMap,dirtyAll=()=>nodes.forEach(notify);return{add:node=>{nodes.add(node),subscriptions.set(node,node.addEventListener("willUpdate",dirtyAll))},remove:node=>{nodes.delete(node);let unsubscribe=subscriptions.get(node);unsubscribe&&(unsubscribe(),subscriptions.delete(node)),dirtyAll()},dirty:dirtyAll}}var rootProjectionNode={current:void 0},HTMLProjectionNode=createProjectionNode({measureScroll:instance=>({x:instance.scrollLeft,y:instance.scrollTop}),defaultParent:()=>{if(!rootProjectionNode.current){let documentNode=new DocumentProjectionNode({});documentNode.mount(window),documentNode.setOptions({layoutScroll:!0}),rootProjectionNode.current=documentNode}return rootProjectionNode.current},resetTransform:(instance,value)=>{instance.style.transform=value!==void 0?value:"none"},checkIsScrollRoot:instance=>window.getComputedStyle(instance).position==="fixed"});var layoutSelector="[data-layout],[data-layout-id]",layoutNodes=new WeakMap,pendingBuilders;function collectLayoutElements(scope){let elements=[];return scope instanceof HTMLElement&&scope.matches(layoutSelector)&&elements.push(scope),scope.querySelectorAll(layoutSelector).forEach(element=>{element instanceof HTMLElement&&elements.push(element)}),elements}function flushPendingFrame(){if(frameData.isProcessing)return;let now2=time.now();frameData.delta=clamp(0,1e3/60,now2-frameData.timestamp),frameData.timestamp=now2,frameData.isProcessing=!0,frameSteps.update.process(frameData),frameSteps.preRender.process(frameData),frameSteps.render.process(frameData),frameData.isProcessing=!1}function getProjectionParent(element){let ancestor=element.parentElement;for(;ancestor;){let node=layoutNodes.get(ancestor);if(node&&node.instance)return node;ancestor=ancestor.parentElement}}function createVisualElement(){return new HTMLVisualElement({props:{},presenceContext:null,visualState:{latestValues:{},renderState:{transform:{},transformOrigin:{},style:{},vars:{}}}},{allowProjection:!0})}function readNodeOptions(element,transition){let layoutAttr=element.getAttribute("data-layout");return{layoutId:element.getAttribute("data-layout-id")??void 0,layout:layoutAttr!==null?!0:void 0,animationType:!layoutAttr||layoutAttr==="true"?"both":layoutAttr,transition}}function prepareNode(element,transition){let node=layoutNodes.get(element);if(node)node.setOptions(readNodeOptions(element,transition));else{let visualElement=visualElementStore.get(element);visualElement||(visualElement=createVisualElement()),element.style.transform&&!hasTransform(visualElement.latestValues)&&(element.style.transform=""),node=new HTMLProjectionNode(visualElement.latestValues,getProjectionParent(element)),visualElement.projection=node,node.setOptions({...readNodeOptions(element,transition),visualElement}),node.mount(element),layoutNodes.set(element,node)}return node.isPresent=!0,node.options.onExitComplete&&node.setOptions({onExitComplete:void 0}),node}function sortDocumentOrder(elements){return[...elements].sort((a,b)=>a.compareDocumentPosition(b)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1)}function dropNode(element,node){node.setOptions({onExitComplete:void 0}),(!node.getStack()||node.isLead())&&node.currentAnimation?.stop(),node.unmount(),layoutNodes.delete(element)}function flushPendingBuilders(){let builders2=pendingBuilders;pendingBuilders=void 0,flushPendingFrame();let targets=new Map;for(let builder of builders2)for(let element of builder.collectTargets()){let owners=targets.get(element);owners?owners.push(builder):targets.set(element,[builder])}let union=new Map;for(let element of sortDocumentOrder(targets.keys())){let owners=targets.get(element),node=prepareNode(element,owners[owners.length-1].transitionFor(element));for(let owner of owners)owner.adopt(element,node);union.set(element,node)}union.forEach(node=>{node.isLayoutDirty=!1,node.willUpdate()});let updatePromises=[];for(let builder of builders2){let result=builder.runUpdate();result&&updatePromises.push(result)}let commit=()=>{let newMemberIds=new Set;for(let builder of builders2)builder.reconcileAdditions(newMemberIds);for(let builder of builders2)builder.reconcileRemovals(newMemberIds);let root;union.forEach(node=>root||(root=node.root));for(let builder of builders2)root||(root=builder.getRoot());root?.didUpdate(),microtask.render(()=>{for(let builder of builders2)builder.finalize()})};updatePromises.length?Promise.all(updatePromises).then(commit):commit()}var LayoutAnimationBuilder=class{constructor(scope,updateDom,defaultOptions){this.scope=scope,this.updateDom=updateDom,this.defaultOptions=defaultOptions,this.sharedTransitions=new Map,this.notifyReady=()=>{},this.rejectReady=()=>{},this.tracked=new Map,this.restorePoints=new Map,this.readyPromise=new Promise((resolve,reject)=>{this.notifyReady=resolve,this.rejectReady=reject}),pendingBuilders||(pendingBuilders=[],queueMicrotask(flushPendingBuilders)),pendingBuilders.push(this)}shared(id2,transition){return this.sharedTransitions.set(id2,transition),this}then(resolve,reject){return this.readyPromise.then(resolve,reject)}transitionFor(element){let layoutId=element.getAttribute("data-layout-id");return layoutId&&this.sharedTransitions.get(layoutId)||this.defaultOptions}adopt(element,node){this.tracked.set(element,node),this.restorePoints.set(element,{parent:element.parentElement,next:element.nextSibling})}collectTargets(){return collectLayoutElements(this.scope)}runUpdate(){try{let result=this.updateDom();if(result&&typeof result.then=="function")return result.then(void 0,error=>{this.updateError=error})}catch(error){this.updateError=error}}reconcileAdditions(newMemberIds){for(let element of collectLayoutElements(this.scope)){if(this.tracked.has(element))continue;let node=prepareNode(element,this.transitionFor(element));this.adopt(element,node),node.options.layoutId&&newMemberIds.add(node.options.layoutId)}}reconcileRemovals(newMemberIds){this.tracked.forEach((node,element)=>{if(element.isConnected)return;let restore=this.restorePoints.get(element);this.restorePoints.delete(element);let{layoutId}=node.options,stack=node.getStack(),hasSurvivor=stack&&stack.members.some(member=>member!==node&&member.instance?.isConnected);if(layoutId&&node.isLead()&&hasSurvivor&&!newMemberIds.has(layoutId)&&restore&&restore.parent.isConnected){if(restore.parent.insertBefore(element,restore.next&&restore.next.parentNode===restore.parent?restore.next:null),node.isPresent=!1,node.setOptions({onExitComplete:()=>{element.remove(),dropNode(element,node)}}),node.relegate())return;element.remove()}dropNode(element,node),this.tracked.delete(element)})}getRoot(){let root;return this.tracked.forEach(node=>root||(root=node.root)),root}finalize(){if(this.updateError){this.rejectReady(this.updateError);return}let animations=new Set;this.tracked.forEach(node=>{node.instance&&node.currentAnimation&&animations.add(node.currentAnimation)}),this.notifyReady(new GroupAnimation([...animations]))}};function parseAnimateLayoutArgs(scopeOrUpdateDom,updateDomOrOptions,options){return typeof scopeOrUpdateDom=="function"?{scope:document,updateDom:scopeOrUpdateDom,defaultOptions:updateDomOrOptions}:{scope:scopeOrUpdateDom instanceof Document?scopeOrUpdateDom:resolveElements(scopeOrUpdateDom)[0]??document,updateDom:updateDomOrOptions,defaultOptions:options}}var sync=frame,cancelSync=stepsOrder.reduce((acc,key)=>(acc[key]=process2=>cancelFrame(process2),acc),{});function isDOMKeyframes(keyframes2){return typeof keyframes2=="object"&&!Array.isArray(keyframes2)}function resolveSubjects(subject,keyframes2,scope,selectorCache){return subject==null?[]:typeof subject=="string"&&isDOMKeyframes(keyframes2)?resolveElements(subject,scope,selectorCache):subject instanceof NodeList?Array.from(subject):Array.isArray(subject)?subject.filter(s=>s!=null):[subject]}function calculateRepeatDuration(duration,repeat,repeatDelay){return duration*(repeat+1)+repeatDelay*repeat}function calcNextTime(current2,next2,prev,labels){return typeof next2=="number"?next2:next2.startsWith("-")||next2.startsWith("+")?Math.max(0,current2+parseFloat(next2)):next2==="<"?prev:next2.startsWith("<")?Math.max(0,prev+parseFloat(next2.slice(1))):labels.get(next2)??current2}function eraseKeyframes(sequence,startTime,endTime){for(let i=0;i<sequence.length;i++){let keyframe=sequence[i];keyframe.at>startTime&&keyframe.at<endTime&&(removeItem(sequence,keyframe),i--)}}function addKeyframes(sequence,keyframes2,easing,offset,startTime,endTime){eraseKeyframes(sequence,startTime,endTime);for(let i=0;i<keyframes2.length;i++)sequence.push({value:keyframes2[i],at:mixNumber(startTime,endTime,offset[i]),easing:getEasingForSegment(easing,i)})}function normalizeTimes(times,repeat,repeatDelayUnits=0){let totalUnits=repeat+1+repeat*repeatDelayUnits;for(let i=0;i<times.length;i++)times[i]=times[i]/totalUnits}function compareByTime(a,b){return a.at===b.at?a.value===null?1:b.value===null?-1:0:a.at-b.at}var defaultSegmentEasing="easeInOut",MAX_REPEAT=20;function createAnimationsFromSequence(sequence,{defaultTransition={},...sequenceTransition}={},scope,generators){let defaultDuration=defaultTransition.duration||.3,animationDefinitions=new Map,sequences=new Map,elementCache={},timeLabels=new Map,prevTime=0,currentTime=0,totalDuration=0;for(let i=0;i<sequence.length;i++){let segment=sequence[i];if(typeof segment=="string"){timeLabels.set(segment,currentTime);continue}else if(!Array.isArray(segment)){timeLabels.set(segment.name,calcNextTime(currentTime,segment.at,prevTime,timeLabels));continue}let[subject,keyframes2,transition={}]=segment;transition.at!==void 0&&(currentTime=calcNextTime(currentTime,transition.at,prevTime,timeLabels));let maxDuration=0,resolveValueSequence=(valueKeyframes,valueTransition,valueSequence,elementIndex=0,numSubjects=0)=>{let valueKeyframesAsList=keyframesAsList(valueKeyframes),{delay:delay2=0,times=defaultOffset(valueKeyframesAsList),type=defaultTransition.type||"keyframes",repeat,repeatType,repeatDelay=0,...remainingTransition}=valueTransition,{ease:ease2=defaultTransition.ease||"easeOut",duration}=valueTransition,calculatedDelay=typeof delay2=="function"?delay2(elementIndex,numSubjects):delay2,numKeyframes=valueKeyframesAsList.length,createGenerator=isGenerator(type)?type:generators?.[type||"keyframes"];if(numKeyframes<=2&&createGenerator){let absoluteDelta=100;if(numKeyframes===2&&isNumberKeyframesArray(valueKeyframesAsList)){let delta=valueKeyframesAsList[1]-valueKeyframesAsList[0];absoluteDelta=Math.abs(delta)}let springTransition={...defaultTransition,...remainingTransition};duration!==void 0&&(springTransition.duration=secondsToMilliseconds(duration));let springEasing=createGeneratorEasing(springTransition,absoluteDelta,createGenerator);ease2=springEasing.ease,duration=springEasing.duration}duration??(duration=defaultDuration);let startTime=currentTime+calculatedDelay;times.length===1&&times[0]===0&&(times[1]=1);let remainder=times.length-valueKeyframesAsList.length;if(remainder>0&&fillOffset(times,remainder),valueKeyframesAsList.length===1&&valueKeyframesAsList.unshift(null),repeat&&warning(repeat<MAX_REPEAT,`Sequence segments can't repeat ${repeat} times \u2014 ignoring repeat option. Use a value below ${MAX_REPEAT} or apply repeat at the sequence level instead.`),repeat&&repeat<MAX_REPEAT){let repeatDelayUnits=duration>0?repeatDelay/duration:0;duration=calculateRepeatDuration(duration,repeat,repeatDelay);let originalKeyframes=[...valueKeyframesAsList],originalTimes=[...times];ease2=Array.isArray(ease2)?[...ease2]:[ease2];let originalEase=[...ease2],isFlipping=repeatType==="reverse"||repeatType==="mirror",flippedKeyframes=originalKeyframes,flippedEases=originalEase;isFlipping&&(flippedKeyframes=[...originalKeyframes].reverse(),repeatType==="reverse"&&(flippedEases=[...originalEase].reverse().map(e=>typeof e=="function"?reverseEasing(e):e)));for(let repeatIndex=0;repeatIndex<repeat;repeatIndex++){let isFlipped=isFlipping&&repeatIndex%2===0,iterKeyframes=isFlipped?flippedKeyframes:originalKeyframes,iterEase=isFlipped?flippedEases:originalEase,iterStartOffset=(repeatIndex+1)*(1+repeatDelayUnits);repeatDelayUnits>0&&(valueKeyframesAsList.push(valueKeyframesAsList[valueKeyframesAsList.length-1]),times.push(iterStartOffset),ease2.push("linear")),valueKeyframesAsList.push(...iterKeyframes);for(let keyframeIndex=0;keyframeIndex<iterKeyframes.length;keyframeIndex++)times.push(originalTimes[keyframeIndex]+iterStartOffset),ease2.push(keyframeIndex===0?"linear":getEasingForSegment(iterEase,keyframeIndex-1))}normalizeTimes(times,repeat,repeatDelayUnits)}let targetTime=startTime+duration;addKeyframes(valueSequence,valueKeyframesAsList,ease2,times,startTime,targetTime),maxDuration=Math.max(calculatedDelay+duration,maxDuration),totalDuration=Math.max(targetTime,totalDuration)};if(isMotionValue(subject)){let subjectSequence=getSubjectSequence(subject,sequences);resolveValueSequence(keyframes2,transition,getValueSequence("default",subjectSequence))}else{let subjects=resolveSubjects(subject,keyframes2,scope,elementCache),numSubjects=subjects.length;for(let subjectIndex=0;subjectIndex<numSubjects;subjectIndex++){keyframes2=keyframes2,transition=transition;let thisSubject=subjects[subjectIndex],subjectSequence=getSubjectSequence(thisSubject,sequences);for(let key in keyframes2)resolveValueSequence(keyframes2[key],getValueTransition2(transition,key),getValueSequence(key,subjectSequence),subjectIndex,numSubjects)}}prevTime=currentTime,currentTime+=maxDuration}return sequences.forEach((valueSequences,element)=>{for(let key in valueSequences){let valueSequence=valueSequences[key];valueSequence.sort(compareByTime);let keyframes2=[],valueOffset=[],valueEasing=[];for(let i=0;i<valueSequence.length;i++){let{at,value,easing}=valueSequence[i];keyframes2.push(value),valueOffset.push(progress(0,totalDuration,at)),valueEasing.push(easing||"easeOut")}valueOffset[0]!==0&&(valueOffset.unshift(0),keyframes2.unshift(keyframes2[0]),valueEasing.unshift(defaultSegmentEasing)),valueOffset[valueOffset.length-1]!==1&&(valueOffset.push(1),keyframes2.push(null)),animationDefinitions.has(element)||animationDefinitions.set(element,{keyframes:{},transition:{}});let definition=animationDefinitions.get(element);definition.keyframes[key]=keyframes2;let{type:_type,...remainingDefaultTransition}=defaultTransition;definition.transition[key]={...remainingDefaultTransition,duration:totalDuration,ease:valueEasing,times:valueOffset,...sequenceTransition}}}),animationDefinitions}function getSubjectSequence(subject,sequences){return!sequences.has(subject)&&sequences.set(subject,{}),sequences.get(subject)}function getValueSequence(name,sequences){return sequences[name]||(sequences[name]=[]),sequences[name]}function keyframesAsList(keyframes2){return Array.isArray(keyframes2)?keyframes2:[keyframes2]}function getValueTransition2(transition,key){return transition&&transition[key]?{...transition,...transition[key]}:{...transition}}var isNumber=keyframe=>typeof keyframe=="number",isNumberKeyframesArray=keyframes2=>keyframes2.every(isNumber);function createDOMVisualElement(element){let options={presenceContext:null,props:{},visualState:{renderState:{transform:{},transformOrigin:{},style:{},vars:{},attrs:{}},latestValues:{}}},node=isSVGElement(element)&&!isSVGSVGElement(element)?new SVGVisualElement(options):new HTMLVisualElement(options);node.mount(element),visualElementStore.set(element,node)}function createObjectVisualElement(subject){let options={presenceContext:null,props:{},visualState:{renderState:{output:{}},latestValues:{}}},node=new ObjectVisualElement(options);node.mount(subject),visualElementStore.set(subject,node)}function isSingleValue(subject,keyframes2){return isMotionValue(subject)||typeof subject=="number"||typeof subject=="string"&&!isDOMKeyframes(keyframes2)}function animateSubject(subject,keyframes2,options,scope){let animations=[];if(isSingleValue(subject,keyframes2))animations.push(animateSingleValue(subject,isDOMKeyframes(keyframes2)&&keyframes2.default||keyframes2,options&&(options.default||options)));else{if(subject==null)return animations;let subjects=resolveSubjects(subject,keyframes2,scope),numSubjects=subjects.length;invariant(!!numSubjects,"No valid elements provided.","no-valid-elements");for(let i=0;i<numSubjects;i++){let thisSubject=subjects[i],createVisualElement2=thisSubject instanceof Element?createDOMVisualElement:createObjectVisualElement;visualElementStore.has(thisSubject)||createVisualElement2(thisSubject);let visualElement=visualElementStore.get(thisSubject),transition={...options};"delay"in transition&&typeof transition.delay=="function"&&(transition.delay=transition.delay(i,numSubjects)),animations.push(...animateTarget(visualElement,{...keyframes2,transition},{}))}}return animations}function animateSequence(sequence,options,scope){let animations=[],processedSequence=sequence.map(segment=>{if(Array.isArray(segment)&&typeof segment[0]=="function"){let callback=segment[0],mv=motionValue(0);return mv.on("change",callback),segment.length===1?[mv,[0,1]]:segment.length===2?[mv,[0,1],segment[1]]:[mv,segment[1],segment[2]]}return segment});return createAnimationsFromSequence(processedSequence,options,scope,{spring}).forEach(({keyframes:keyframes2,transition},subject)=>{animations.push(...animateSubject(subject,keyframes2,transition))}),animations}function isSequence(value){return Array.isArray(value)&&value.some(Array.isArray)}function createScopedAnimate(options={}){let{scope,reduceMotion,skipAnimations}=options;function scopedAnimate(subjectOrSequence,optionsOrKeyframes,options2){let animations=[],animationOnComplete,inherited={};if(reduceMotion!==void 0&&(inherited.reduceMotion=reduceMotion),skipAnimations!==void 0&&(inherited.skipAnimations=skipAnimations),isSequence(subjectOrSequence)){let{onComplete,...sequenceOptions}=optionsOrKeyframes||{};typeof onComplete=="function"&&(animationOnComplete=onComplete),animations=animateSequence(subjectOrSequence,{...inherited,...sequenceOptions},scope)}else{let{onComplete,...rest}=options2||{};typeof onComplete=="function"&&(animationOnComplete=onComplete),animations=animateSubject(subjectOrSequence,optionsOrKeyframes,{...inherited,...rest},scope)}let animation=new GroupAnimationWithThen(animations);return animationOnComplete&&animation.finished.then(animationOnComplete),scope&&(scope.animations.push(animation),animation.finished.then(()=>{removeItem(scope.animations,animation)})),animation}return scopedAnimate}var animate=createScopedAnimate();function animateElements(elementOrSelector,keyframes2,options,scope){if(elementOrSelector==null)return[];let elements=resolveElements(elementOrSelector,scope),numElements=elements.length;invariant(!!numElements,"No valid elements provided.","no-valid-elements");let animationDefinitions=[];for(let i=0;i<numElements;i++){let element=elements[i],elementTransition={...options};typeof elementTransition.delay=="function"&&(elementTransition.delay=elementTransition.delay(i,numElements));for(let valueName in keyframes2){let valueKeyframes=keyframes2[valueName];Array.isArray(valueKeyframes)||(valueKeyframes=[valueKeyframes]);let valueOptions={...getValueTransition(elementTransition,valueName)};valueOptions.duration&&(valueOptions.duration=secondsToMilliseconds(valueOptions.duration)),valueOptions.delay&&(valueOptions.delay=secondsToMilliseconds(valueOptions.delay));let map=getAnimationMap(element),key=animationMapKey(valueName,valueOptions.pseudoElement||""),currentAnimation=map.get(key);currentAnimation&&currentAnimation.stop(),animationDefinitions.push({map,key,unresolvedKeyframes:valueKeyframes,options:{...valueOptions,element,name:valueName,allowFlatten:!elementTransition.type&&!elementTransition.ease}})}}for(let i=0;i<animationDefinitions.length;i++){let{unresolvedKeyframes,options:animationOptions}=animationDefinitions[i],{element,name,pseudoElement}=animationOptions;!pseudoElement&&unresolvedKeyframes[0]===null&&(unresolvedKeyframes[0]=getComputedStyle2(element,name)),fillWildcards(unresolvedKeyframes),applyPxDefaults(unresolvedKeyframes,name),!pseudoElement&&unresolvedKeyframes.length<2&&unresolvedKeyframes.unshift(getComputedStyle2(element,name)),animationOptions.keyframes=unresolvedKeyframes}let animations=[];for(let i=0;i<animationDefinitions.length;i++){let{map,key,options:animationOptions}=animationDefinitions[i],animation=new NativeAnimation(animationOptions);map.set(key,animation),animation.finished.finally(()=>map.delete(key)),animations.push(animation)}return animations}var createScopedWaapiAnimate=scope=>{function scopedAnimate(elementOrSelector,keyframes2,options){return new GroupAnimationWithThen(animateElements(elementOrSelector,keyframes2,options,scope))}return scopedAnimate},animateMini=createScopedWaapiAnimate();function canUseNativeTimeline(target){return typeof window>"u"?!1:target?supportsViewTimeline():supportsScrollTimeline()}var maxElapsed2=50,createAxisInfo=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}),createScrollInfo=()=>({time:0,x:createAxisInfo(),y:createAxisInfo()}),keys={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function updateAxisInfo(element,axisName,info,time2){let axis=info[axisName],{length,position}=keys[axisName],prev=axis.current,prevTime=info.time;axis.current=Math.abs(element[`scroll${position}`]),axis.scrollLength=element[`scroll${length}`]-element[`client${length}`],axis.offset.length=0,axis.offset[0]=0,axis.offset[1]=axis.scrollLength,axis.progress=progress(0,axis.scrollLength,axis.current);let elapsed=time2-prevTime;axis.velocity=elapsed>maxElapsed2?0:velocityPerSecond(axis.current-prev,elapsed)}function updateScrollInfo(element,info,time2){updateAxisInfo(element,"x",info,time2),updateAxisInfo(element,"y",info,time2),info.time=time2}function calcInset(element,container){let inset={x:0,y:0},current2=element;for(;current2&&current2!==container;)if(isHTMLElement(current2))inset.x+=current2.offsetLeft,inset.y+=current2.offsetTop,current2=current2.offsetParent;else if(current2.tagName==="svg"){let svgBoundingBox=current2.getBoundingClientRect();current2=current2.parentElement;let parentBoundingBox=current2.getBoundingClientRect();inset.x+=svgBoundingBox.left-parentBoundingBox.left,inset.y+=svgBoundingBox.top-parentBoundingBox.top}else if(current2 instanceof SVGGraphicsElement){let{x,y}=current2.getBBox();inset.x+=x,inset.y+=y;let svg=null,parent=current2.parentNode;for(;!svg;)parent.tagName==="svg"&&(svg=parent),parent=current2.parentNode;current2=svg}else break;return inset}var namedEdges={start:0,center:.5,end:1};function resolveEdge(edge,length,inset=0){let delta=0;if(edge in namedEdges&&(edge=namedEdges[edge]),typeof edge=="string"){let asNumber3=parseFloat(edge);edge.endsWith("px")?delta=asNumber3:edge.endsWith("%")?edge=asNumber3/100:edge.endsWith("vw")?delta=asNumber3/100*document.documentElement.clientWidth:edge.endsWith("vh")?delta=asNumber3/100*document.documentElement.clientHeight:edge=asNumber3}return typeof edge=="number"&&(delta=length*edge),inset+delta}var defaultOffset2=[0,0];function resolveOffset(offset,containerLength,targetLength,targetInset){let offsetDefinition=Array.isArray(offset)?offset:defaultOffset2,targetPoint=0,containerPoint=0;return typeof offset=="number"?offsetDefinition=[offset,offset]:typeof offset=="string"&&(offset=offset.trim(),offset.includes(" ")?offsetDefinition=offset.split(" "):offsetDefinition=[offset,namedEdges[offset]?offset:"0"]),targetPoint=resolveEdge(offsetDefinition[0],targetLength,targetInset),containerPoint=resolveEdge(offsetDefinition[1],containerLength),targetPoint-containerPoint}var ScrollOffset={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]};var point={x:0,y:0};function getTargetSize(target){return"getBBox"in target&&target.tagName!=="svg"?target.getBBox():{width:target.clientWidth,height:target.clientHeight}}function resolveOffsets(container,info,options){let{offset:offsetDefinition=ScrollOffset.All}=options,{target=container,axis="y"}=options,lengthLabel=axis==="y"?"height":"width",inset=target!==container?calcInset(target,container):point,targetSize=target===container?{width:container.scrollWidth,height:container.scrollHeight}:getTargetSize(target),containerSize={width:container.clientWidth,height:container.clientHeight};info[axis].offset.length=0;let hasChanged=!info[axis].interpolate,numOffsets=offsetDefinition.length;for(let i=0;i<numOffsets;i++){let offset=resolveOffset(offsetDefinition[i],containerSize[lengthLabel],targetSize[lengthLabel],inset[axis]);!hasChanged&&offset!==info[axis].interpolatorOffsets[i]&&(hasChanged=!0),info[axis].offset[i]=offset}hasChanged&&(info[axis].interpolate=interpolate(info[axis].offset,defaultOffset(offsetDefinition),{clamp:!1}),info[axis].interpolatorOffsets=[...info[axis].offset]),info[axis].progress=clamp(0,1,info[axis].interpolate(info[axis].current))}function measure(container,target=container,info){if(info.x.targetOffset=0,info.y.targetOffset=0,target!==container){let node=target;for(;node&&node!==container;)info.x.targetOffset+=node.offsetLeft,info.y.targetOffset+=node.offsetTop,node=node.offsetParent}info.x.targetLength=target===container?target.scrollWidth:target.clientWidth,info.y.targetLength=target===container?target.scrollHeight:target.clientHeight,info.x.containerLength=container.clientWidth,info.y.containerLength=container.clientHeight}function createOnScrollHandler(element,onScroll,info,options={}){return{measure:time2=>{measure(element,options.target,info),updateScrollInfo(element,info,time2),(options.offset||options.target)&&resolveOffsets(element,info,options)},notify:()=>onScroll(info)}}var scrollListeners=new WeakMap,resizeListeners=new WeakMap,onScrollHandlers=new WeakMap,scrollSize=new WeakMap,dimensionCheckProcesses=new WeakMap,getEventTarget=element=>element===document.scrollingElement?window:element;function scrollInfo(onScroll,{container=document.scrollingElement,trackContentSize=!1,...options}={}){if(!container)return noop;let containerHandlers=onScrollHandlers.get(container);containerHandlers||(containerHandlers=new Set,onScrollHandlers.set(container,containerHandlers));let info=createScrollInfo(),containerHandler=createOnScrollHandler(container,onScroll,info,options);if(containerHandlers.add(containerHandler),!scrollListeners.has(container)){let measureAll=()=>{for(let handler of containerHandlers)handler.measure(frameData.timestamp);frame.preUpdate(notifyAll2)},notifyAll2=()=>{for(let handler of containerHandlers)handler.notify()},listener2=()=>frame.read(measureAll);scrollListeners.set(container,listener2);let target=getEventTarget(container);window.addEventListener("resize",listener2),container!==document.documentElement&&resizeListeners.set(container,resize(container,listener2)),target.addEventListener("scroll",listener2),listener2()}if(trackContentSize&&!dimensionCheckProcesses.has(container)){let listener2=scrollListeners.get(container),size={width:container.scrollWidth,height:container.scrollHeight};scrollSize.set(container,size);let checkScrollDimensions=()=>{let newWidth=container.scrollWidth,newHeight=container.scrollHeight;(size.width!==newWidth||size.height!==newHeight)&&(listener2(),size.width=newWidth,size.height=newHeight)},dimensionCheckProcess=frame.read(checkScrollDimensions,!0);dimensionCheckProcesses.set(container,dimensionCheckProcess)}let listener=scrollListeners.get(container);return frame.read(listener,!1,!0),()=>{cancelFrame(listener);let currentHandlers=onScrollHandlers.get(container);if(!currentHandlers||(currentHandlers.delete(containerHandler),currentHandlers.size))return;let scrollListener=scrollListeners.get(container);scrollListeners.delete(container),scrollListener&&(getEventTarget(container).removeEventListener("scroll",scrollListener),resizeListeners.get(container)?.(),window.removeEventListener("resize",scrollListener));let dimensionCheckProcess=dimensionCheckProcesses.get(container);dimensionCheckProcess&&(cancelFrame(dimensionCheckProcess),dimensionCheckProcesses.delete(container)),scrollSize.delete(container)}}var presets=[[ScrollOffset.Enter,"entry"],[ScrollOffset.Exit,"exit"],[ScrollOffset.Any,"cover"],[ScrollOffset.All,"contain"]],stringToProgress={start:0,end:1};function parseStringOffset(s){let parts=s.trim().split(/\s+/);if(parts.length!==2)return;let a=stringToProgress[parts[0]],b=stringToProgress[parts[1]];if(!(a===void 0||b===void 0))return[a,b]}function normaliseOffset(offset){if(offset.length!==2)return;let result=[];for(let item of offset)if(Array.isArray(item))result.push(item);else if(typeof item=="string"){let parsed=parseStringOffset(item);if(!parsed)return;result.push(parsed)}else return;return result}function matchesPreset(offset,preset){let normalised=normaliseOffset(offset);if(!normalised)return!1;for(let i=0;i<2;i++){let o=normalised[i],p=preset[i];if(o[0]!==p[0]||o[1]!==p[1])return!1}return!0}function offsetToViewTimelineRange(offset){if(!offset)return{rangeStart:"contain 0%",rangeEnd:"contain 100%"};for(let[preset,name]of presets)if(matchesPreset(offset,preset))return{rangeStart:`${name} 0%`,rangeEnd:`${name} 100%`}}var timelineCache=new Map;function scrollTimelineFallback(options){let currentTime={value:0},cancel=scrollInfo(info=>{currentTime.value=info[options.axis].progress*100},options);return{currentTime,cancel}}function getTimeline({source,container,...options}){let{axis}=options;source&&(container=source);let containerCache=timelineCache.get(container);containerCache||(containerCache=new Map,timelineCache.set(container,containerCache));let targetKey=options.target??"self",targetCache=containerCache.get(targetKey);targetCache||(targetCache={},containerCache.set(targetKey,targetCache));let axisKey=axis+(options.offset??[]).join(",");return targetCache[axisKey]||(options.target&&canUseNativeTimeline(options.target)?offsetToViewTimelineRange(options.offset)?targetCache[axisKey]=new ViewTimeline({subject:options.target,axis}):targetCache[axisKey]=scrollTimelineFallback({container,...options}):canUseNativeTimeline()?targetCache[axisKey]=new ScrollTimeline({source:container,axis}):targetCache[axisKey]=scrollTimelineFallback({container,...options})),targetCache[axisKey]}function attachToAnimation(animation,options){let timeline=getTimeline(options),range=options.target?offsetToViewTimelineRange(options.offset):void 0,useNative=options.target?canUseNativeTimeline(options.target)&&!!range:canUseNativeTimeline();return animation.attachTimeline({timeline:useNative?timeline:void 0,...range&&useNative&&{rangeStart:range.rangeStart,rangeEnd:range.rangeEnd},observe:valueAnimation=>(valueAnimation.pause(),observeTimeline(progress2=>{valueAnimation.time=valueAnimation.iterationDuration*progress2},timeline))})}function isElementTracking(options){return options&&(options.target||options.offset)}function isOnScrollWithInfo(onScroll){return onScroll.length===2}function attachToFunction(onScroll,options){return isOnScrollWithInfo(onScroll)||isElementTracking(options)?scrollInfo(info=>{onScroll(info[options.axis].progress,info)},options):observeTimeline(onScroll,getTimeline(options))}function scroll(onScroll,{axis="y",container=document.scrollingElement,...options}={}){if(!container)return noop;let optionsWithDefaults={axis,container,...options};return typeof onScroll=="function"?attachToFunction(onScroll,optionsWithDefaults):attachToAnimation(onScroll,optionsWithDefaults)}var thresholds={some:0,all:1};function inView(elementOrSelector,onStart,{root,margin:rootMargin,amount="some"}={}){let elements=resolveElements(elementOrSelector),activeIntersections=new WeakMap,onIntersectionChange=entries=>{entries.forEach(entry=>{let onEnd=activeIntersections.get(entry.target);if(entry.isIntersecting!==!!onEnd)if(entry.isIntersecting){let newOnEnd=onStart(entry.target,entry);typeof newOnEnd=="function"?activeIntersections.set(entry.target,newOnEnd):observer2.unobserve(entry.target)}else typeof onEnd=="function"&&(onEnd(entry),activeIntersections.delete(entry.target))})},observer2=new IntersectionObserver(onIntersectionChange,{root,rootMargin,threshold:typeof amount=="number"?amount:thresholds[amount]});return elements.forEach(element=>observer2.observe(element)),()=>observer2.disconnect()}var distance=(a,b)=>Math.abs(a-b);function distance2D(a,b){let xDelta=distance(a.x,b.x),yDelta=distance(a.y,b.y);return Math.sqrt(xDelta**2+yDelta**2)}var ojm_shim_motion_default=void 0??es_exports;export{AsyncMotionValueAnimation,DOMKeyframesResolver,DOMVisualElement,DocumentProjectionNode,Feature,FlatTree,GroupAnimation,GroupAnimationWithThen,HTMLProjectionNode,HTMLVisualElement,JSAnimation,KeyframeResolver,LayoutAnimationBuilder,MotionGlobalConfig,MotionValue,NativeAnimation,NativeAnimationExtended,NativeAnimationWrapper,NodeStack,ObjectVisualElement,SVGVisualElement,SubscriptionManager,ViewTransitionBuilder,VisualElement,acceleratedValues,addAttrValue,addDomEvent,addScaleCorrector,addStyleValue,addUniqueItem,addValueToWillChange,alpha,analyseComplexValue,animate,animateMini,animateMotionValue,animateSingleValue,animateTarget,animateValue,animateVariant,animateView,animateVisualElement,animationMapKey,anticipate,applyAxisDelta,applyBoxDelta,applyGeneratorOptions,applyPointDelta,applyPxDefaults,applyTreeDeltas,arc,aspectRatio,attachFollow,attachSpring,attrEffect,axisDeltaEquals,axisEquals,axisEqualsRounded,backIn,backInOut,backOut,boxEquals,boxEqualsRounded,buildHTMLStyles,buildProjectionTransform,buildSVGAttrs,buildSVGPath,buildTransform2 as buildTransform,calcAxisDelta,calcBoxDelta,calcChildStagger,calcGeneratorDuration,calcLength,calcRelativeAxis,calcRelativeAxisPosition,calcRelativeBox,calcRelativePosition,camelCaseAttributes,camelToDash,cancelFrame,cancelMicrotask,cancelSync,checkVariantsDidChange,circIn,circInOut,circOut,clamp,cleanDirtyNodes,collectMotionValues,color,compareByDepth,complex,containsCSSVariable,convertBoundingBoxToBox,convertBoxToBoundingBox,convertOffsetToTimes,copyAxisDeltaInto,copyAxisInto,copyBoxInto,correctBorderRadius,correctBoxShadow,createAnimationState,createAxis,createAxisDelta,createBox,createDelta,createGeneratorEasing,createProjectionNode,createRenderBatcher,createScopedAnimate,cubicBezier,cubicBezierAsString,ojm_shim_motion_default as default,defaultEasing,defaultOffset,defaultTransformValue,defaultValueTypes,degrees,delayInSeconds as delay,delayInSeconds,dimensionValueTypes,distance,distance2D,eachAxis,easeIn,easeInOut,easeOut,easingDefinitionToFunction,fillOffset,fillWildcards,findDimensionValueType,findValueType,flushKeyframeResolvers,followValue,frame,frameData,frameSteps,generateLinearEasing,getAnimatableNone2 as getAnimatableNone,getAnimationMap,getComputedStyle2 as getComputedStyle,getDefaultTransition,getDefaultValueType,getEasingForSegment,getFeatureDefinitions,getFinalKeyframe,getMixer,getOptimisedAppearId,getOriginIndex,getValueAsType,getValueTransition,getVariableValue,getVariantContext,getViewAnimationLayerInfo,getViewAnimations,globalProjectionState,has2DTranslate,hasReducedMotionListener,hasScale,hasTransform,hasWarned,hex,hover,hsla,hslaToRgba,inView,inertia,initPrefersReducedMotion,interpolate,invariant,invisibleValues,isAnimationControls,isBezierDefinition,isCSSVariableName,isCSSVariableToken,isControllingVariants,isDeltaZero,isDragActive,isDragging,isEasingArray,isElementKeyboardAccessible,isElementTextInput,isForcedMotionValue,isGenerator,isHTMLElement,isKeyframesTarget,isMotionValue,isNear,isNodeOrChild,isNumericalString,isObject,isPrimaryPointer,isSVGElement,isSVGSVGElement,isSVGTag,isTransitionDefined,isVariantLabel,isVariantNode,isWaapiSupportedEasing,isWillChangeMotionValue,isZeroValueString,keyframes,makeAnimationInstant,mapEasingToNativeEasing,mapValue,maxGeneratorDuration,measurePageBox,measureViewportBox,memo,microtask,millisecondsToSeconds,mirrorEasing,mix,mixArray,mixColor,mixComplex,mixImmediate,mixLinearColor,mixNumber,mixObject,mixValues,mixVisibility,motionValue,moveItem,nodeGroup,noop,number,numberValueTypes,observeTimeline,optimizedAppearDataAttribute,optimizedAppearDataId,parseAnimateLayoutArgs,parseCSSVariable,parseValueFromTransform,percent,pipe,pixelsToPercent,positionalKeys,prefersReducedMotion,press,progress,progressPercentage,propEffect,propagateDirtyNodes,px,readTransformValue,recordStats,removeAxisDelta,removeAxisTransforms,removeBoxTransforms,removeItem,removePointDelta,renderHTML,renderSVG,resize,resolveElements,resolveMotionValue,resolveTransition,resolveVariant,resolveVariantFromProps,reverseEasing,rgbUnit,rgba,rootProjectionNode,scale,scaleCorrectors,scalePoint,scrapeMotionValuesFromProps as scrapeHTMLMotionValuesFromProps,scrapeMotionValuesFromProps2 as scrapeSVGMotionValuesFromProps,scroll,scrollInfo,secondsToMilliseconds,setDragLock,setFeatureDefinitions,setStyle,setTarget,spring,springValue,stagger,startWaapiAnimation,statsBuffer,steps,styleEffect,supportedWaapiEasing,supportsBrowserAnimation,supportsFlags,supportsLinearEasing,supportsPartialKeyframes,supportsScrollTimeline,supportsViewTimeline,svgEffect,sync,testValueType,time,transform,transformAxis,transformBox,transformBoxPoints,transformPropOrder,transformProps,transformValue,transformValueTypes,translateAxis,updateMotionValuesFromProps,variantPriorityOrder,variantProps,velocityPerSecond,vh,visualElementStore,vw,warnOnce,warning,wrap};