@oj-module/cli 0.2.64 → 0.2.66

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 (193) hide show
  1. package/devkit/README.md +9 -3
  2. package/devkit/SKILL.md +5 -2
  3. package/devkit/framework-dev.md +12 -7
  4. package/devkit/manual.md +123 -56
  5. package/devkit/menu-rules.md +4 -1
  6. package/package.json +3 -2
  7. package/shell-dist/assets/ahooks.2l850ymmh0.js +18 -0
  8. package/shell-dist/assets/antd-es-locale-zh_CN.1gjjsvxbf0.js +1 -0
  9. package/shell-dist/assets/antd-img-crop.196rkty480.js +99 -0
  10. package/shell-dist/assets/antd-locale-en_US.561tozx860.js +1 -0
  11. package/shell-dist/assets/antd-locale-zh_CN.1cmpmgzh70.js +1 -0
  12. package/shell-dist/assets/antd.uw1coq15l0.js +348 -0
  13. package/shell-dist/assets/clsx.jotilrt2e0.js +1 -0
  14. package/shell-dist/assets/contract-errors.2o17vz9u50.js +1 -0
  15. package/shell-dist/assets/contract.3h327o3mj0.js +57 -0
  16. package/shell-dist/assets/cssinjs.atgmhan7m0.js +3 -0
  17. package/shell-dist/assets/dayjs-plugin-advancedFormat.3vsyd2eis0.js +1 -0
  18. package/shell-dist/assets/dayjs-plugin-customParseFormat.13xhghv1d0.js +1 -0
  19. package/shell-dist/assets/dayjs-plugin-isoWeek.1fn1tw82p0.js +1 -0
  20. package/shell-dist/assets/dayjs-plugin-localeData.2rwbjp9nk0.js +1 -0
  21. package/shell-dist/assets/dayjs-plugin-quarterOfYear.2oqo1lcx80.js +1 -0
  22. package/shell-dist/assets/dayjs-plugin-relativeTime.2pqs3et4y0.js +1 -0
  23. package/shell-dist/assets/dayjs-plugin-weekOfYear.gvn9iph080.js +1 -0
  24. package/shell-dist/assets/dayjs-plugin-weekYear.2u78l3ex10.js +1 -0
  25. package/shell-dist/assets/dayjs-plugin-weekday.2d56a4tml0.js +1 -0
  26. package/shell-dist/assets/dayjs.pa60l6wjo0.js +1 -0
  27. package/shell-dist/assets/dnd-kit-core.1xyreig6r0.js +5 -0
  28. package/shell-dist/assets/dnd-kit-sortable.s94qciuft0.js +1 -0
  29. package/shell-dist/assets/dnd-kit-utilities.1umw4xphb0.js +1 -0
  30. package/shell-dist/assets/i18next.33zqofapj0.js +1 -0
  31. package/shell-dist/assets/icons-es-components-Context.365qmflwg0.js +1 -0
  32. package/shell-dist/assets/icons.159wjwals0.js +57 -0
  33. package/shell-dist/assets/jsx-dev-runtime.3uibuc82f0.js +14 -0
  34. package/shell-dist/assets/jsx-runtime.h40xu4o5b0.js +14 -0
  35. package/shell-dist/assets/keepalive-for-react.xenu5vam70.js +1 -0
  36. package/shell-dist/assets/kit.37kr8ui390.js +1 -0
  37. package/shell-dist/assets/ky.1cgch7gu60.js +6 -0
  38. package/shell-dist/assets/motion-react.pjsxytvjs0.js +12 -0
  39. package/shell-dist/assets/motion.21tciqutg0.js +4 -0
  40. package/shell-dist/assets/nprogress.2nz76n9ny0.js +7 -0
  41. package/shell-dist/assets/ojm-dayjs-locale-zh-cn.3vr3beiyp0.js +9 -0
  42. package/shell-dist/assets/pinyin-pro.3v0mnxczn0.js +1 -0
  43. package/shell-dist/assets/pro-components.2kyot1vcl0.js +83 -0
  44. package/shell-dist/assets/react-countup.2x8idnr8y0.js +10 -0
  45. package/shell-dist/assets/react-dom-client.ick0v05ob0.js +43 -0
  46. package/shell-dist/assets/react-dom.2so9uxg3f0.js +22 -0
  47. package/shell-dist/assets/react-error-boundary.2dncdfj3b0.js +1 -0
  48. package/shell-dist/assets/react-i18next.auhvjhqv00.js +1 -0
  49. package/shell-dist/assets/react-jss.1ei6dr9e00.js +29 -0
  50. package/shell-dist/assets/react-query.3rln45ow00.js +1 -0
  51. package/shell-dist/assets/react-router-dom.3c6zld8h40.js +44 -0
  52. package/shell-dist/assets/react-router.2h9rebcv50.js +56 -0
  53. package/shell-dist/assets/react.1ew63mwts0.js +14 -0
  54. package/shell-dist/assets/runtime.1xfsxcajj0.js +21702 -0
  55. package/shell-dist/assets/simplebar-react.2g739uvai0.js +1 -0
  56. package/shell-dist/assets/spin-delay.yjeyj6iwp0.js +9 -0
  57. package/shell-dist/assets/tailwind-merge.125ehiqjw0.js +1 -0
  58. package/shell-dist/assets/use-sync-external-store-shim.1nz1pi9bb0.js +22 -0
  59. package/shell-dist/assets/zustand-middleware.1xaxjueme0.js +6 -0
  60. package/shell-dist/assets/zustand-react-shallow.pybayv1hx0.js +1 -0
  61. package/shell-dist/assets/zustand-react.9fsl9brxy0.js +1 -0
  62. package/shell-dist/assets/zustand-shallow.6cz0yyv9x0.js +1 -0
  63. package/shell-dist/assets/zustand-vanilla-shallow.3424monv50.js +1 -0
  64. package/shell-dist/assets/zustand-vanilla.1mo3ka3g30.js +1 -0
  65. package/shell-dist/assets/zustand.3gjgzlnqo0.js +1 -0
  66. package/shell-dist/index.html +67 -118
  67. package/shell-dist/versions.json +3 -3
  68. package/src/esm-exports.ts +152 -70
  69. package/src/shared-deps.ts +69 -19
  70. package/src/site-base.ts +4 -0
  71. package/templates/src/app/web/home/pages/components/bar-chart.tsx +5 -3
  72. package/templates/src/app/web/home/pages/components/echarts-setup.ts +30 -0
  73. package/templates/src/app/web/home/pages/components/line-chart.tsx +5 -3
  74. package/templates/src/app/web/home/pages/components/pie-chart.tsx +6 -3
  75. package/templates/src/app/web/home/pages/index.tsx +3 -2
  76. package/templates/src/app/web/home/routes.ts +3 -2
  77. package/vendor/host-versions.json +3 -3
  78. package/shell-dist/assets/ahooks.js +0 -6909
  79. package/shell-dist/assets/antd-es-locale-zh_CN.js +0 -257
  80. package/shell-dist/assets/antd-img-crop.js +0 -1495
  81. package/shell-dist/assets/antd-locale-en_US.js +0 -374
  82. package/shell-dist/assets/antd-locale-zh_CN.js +0 -379
  83. package/shell-dist/assets/antd.js +0 -106874
  84. package/shell-dist/assets/clsx.js +0 -33
  85. package/shell-dist/assets/contract-errors.js +0 -30
  86. package/shell-dist/assets/contract.js +0 -18900
  87. package/shell-dist/assets/cssinjs.js +0 -2595
  88. package/shell-dist/assets/dayjs-plugin-advancedFormat.js +0 -98
  89. package/shell-dist/assets/dayjs-plugin-customParseFormat.js +0 -173
  90. package/shell-dist/assets/dayjs-plugin-isoWeek.js +0 -77
  91. package/shell-dist/assets/dayjs-plugin-localeData.js +0 -126
  92. package/shell-dist/assets/dayjs-plugin-quarterOfYear.js +0 -77
  93. package/shell-dist/assets/dayjs-plugin-relativeTime.js +0 -92
  94. package/shell-dist/assets/dayjs-plugin-weekOfYear.js +0 -73
  95. package/shell-dist/assets/dayjs-plugin-weekYear.js +0 -63
  96. package/shell-dist/assets/dayjs-plugin-weekday.js +0 -63
  97. package/shell-dist/assets/dayjs.js +0 -326
  98. package/shell-dist/assets/dnd-kit-core.js +0 -3601
  99. package/shell-dist/assets/dnd-kit-sortable.js +0 -717
  100. package/shell-dist/assets/dnd-kit-utilities.js +0 -340
  101. package/shell-dist/assets/i18next.js +0 -2321
  102. package/shell-dist/assets/icons-es-components-Context.js +0 -20
  103. package/shell-dist/assets/icons.js +0 -34961
  104. package/shell-dist/assets/jsx-dev-runtime.js +0 -75
  105. package/shell-dist/assets/jsx-runtime.js +0 -97
  106. package/shell-dist/assets/keepalive-for-react.js +0 -283
  107. package/shell-dist/assets/kit.js +0 -151
  108. package/shell-dist/assets/ky.js +0 -1427
  109. package/shell-dist/assets/motion-react.js +0 -13589
  110. package/shell-dist/assets/motion.js +0 -9959
  111. package/shell-dist/assets/nprogress.js +0 -314
  112. package/shell-dist/assets/ojm--ant-design-icons-es-icons-BarsOutlined.js +0 -7
  113. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CalendarOutlined.js +0 -7
  114. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretDownFilled.js +0 -7
  115. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretDownOutlined.js +0 -7
  116. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretUpOutlined.js +0 -7
  117. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CheckCircleFilled.js +0 -7
  118. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CheckOutlined.js +0 -7
  119. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ClockCircleOutlined.js +0 -7
  120. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CloseCircleFilled.js +0 -7
  121. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CloseOutlined.js +0 -7
  122. package/shell-dist/assets/ojm--ant-design-icons-es-icons-CopyOutlined.js +0 -7
  123. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DeleteOutlined.js +0 -7
  124. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DoubleLeftOutlined.js +0 -7
  125. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DoubleRightOutlined.js +0 -7
  126. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DownOutlined.js +0 -7
  127. package/shell-dist/assets/ojm--ant-design-icons-es-icons-DownloadOutlined.js +0 -7
  128. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EditOutlined.js +0 -7
  129. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EllipsisOutlined.js +0 -7
  130. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EnterOutlined.js +0 -7
  131. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ExclamationCircleFilled.js +0 -7
  132. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EyeInvisibleOutlined.js +0 -7
  133. package/shell-dist/assets/ojm--ant-design-icons-es-icons-EyeOutlined.js +0 -7
  134. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FileOutlined.js +0 -7
  135. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FileTextOutlined.js +0 -7
  136. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FilterFilled.js +0 -7
  137. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FolderOpenOutlined.js +0 -7
  138. package/shell-dist/assets/ojm--ant-design-icons-es-icons-FolderOutlined.js +0 -7
  139. package/shell-dist/assets/ojm--ant-design-icons-es-icons-HolderOutlined.js +0 -7
  140. package/shell-dist/assets/ojm--ant-design-icons-es-icons-InfoCircleFilled.js +0 -7
  141. package/shell-dist/assets/ojm--ant-design-icons-es-icons-LeftOutlined.js +0 -7
  142. package/shell-dist/assets/ojm--ant-design-icons-es-icons-LoadingOutlined.js +0 -7
  143. package/shell-dist/assets/ojm--ant-design-icons-es-icons-MinusOutlined.js +0 -7
  144. package/shell-dist/assets/ojm--ant-design-icons-es-icons-MinusSquareOutlined.js +0 -7
  145. package/shell-dist/assets/ojm--ant-design-icons-es-icons-PaperClipOutlined.js +0 -7
  146. package/shell-dist/assets/ojm--ant-design-icons-es-icons-PictureOutlined.js +0 -7
  147. package/shell-dist/assets/ojm--ant-design-icons-es-icons-PlusOutlined.js +0 -7
  148. package/shell-dist/assets/ojm--ant-design-icons-es-icons-PlusSquareOutlined.js +0 -7
  149. package/shell-dist/assets/ojm--ant-design-icons-es-icons-QuestionCircleOutlined.js +0 -7
  150. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ReloadOutlined.js +0 -7
  151. package/shell-dist/assets/ojm--ant-design-icons-es-icons-RightOutlined.js +0 -7
  152. package/shell-dist/assets/ojm--ant-design-icons-es-icons-RotateLeftOutlined.js +0 -7
  153. package/shell-dist/assets/ojm--ant-design-icons-es-icons-RotateRightOutlined.js +0 -7
  154. package/shell-dist/assets/ojm--ant-design-icons-es-icons-SearchOutlined.js +0 -7
  155. package/shell-dist/assets/ojm--ant-design-icons-es-icons-StarFilled.js +0 -7
  156. package/shell-dist/assets/ojm--ant-design-icons-es-icons-SwapOutlined.js +0 -7
  157. package/shell-dist/assets/ojm--ant-design-icons-es-icons-SwapRightOutlined.js +0 -7
  158. package/shell-dist/assets/ojm--ant-design-icons-es-icons-UpOutlined.js +0 -7
  159. package/shell-dist/assets/ojm--ant-design-icons-es-icons-VerticalAlignTopOutlined.js +0 -7
  160. package/shell-dist/assets/ojm--ant-design-icons-es-icons-WarningFilled.js +0 -7
  161. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ZoomInOutlined.js +0 -7
  162. package/shell-dist/assets/ojm--ant-design-icons-es-icons-ZoomOutOutlined.js +0 -7
  163. package/shell-dist/assets/ojm-dayjs-locale-zh-cn.js +0 -81
  164. package/shell-dist/assets/pinyin-pro.js +0 -25175
  165. package/shell-dist/assets/pro-components.js +0 -44627
  166. package/shell-dist/assets/react-countup.js +0 -525
  167. package/shell-dist/assets/react-dom-client.js +0 -12134
  168. package/shell-dist/assets/react-dom.js +0 -266
  169. package/shell-dist/assets/react-error-boundary.js +0 -141
  170. package/shell-dist/assets/react-i18next.js +0 -1773
  171. package/shell-dist/assets/react-jss.js +0 -4089
  172. package/shell-dist/assets/react-query.js +0 -3072
  173. package/shell-dist/assets/react-router-dom.js +0 -9927
  174. package/shell-dist/assets/react-router.js +0 -14584
  175. package/shell-dist/assets/react.js +0 -590
  176. package/shell-dist/assets/runtime.js +0 -28311
  177. package/shell-dist/assets/simplebar-react.js +0 -1119
  178. package/shell-dist/assets/spin-delay.js +0 -111
  179. package/shell-dist/assets/tailwind-merge.js +0 -3364
  180. package/shell-dist/assets/use-sync-external-store-shim.js +0 -130
  181. package/shell-dist/assets/zustand-middleware.js +0 -513
  182. package/shell-dist/assets/zustand-react-shallow.js +0 -27
  183. package/shell-dist/assets/zustand-react.js +0 -39
  184. package/shell-dist/assets/zustand-shallow.js +0 -22
  185. package/shell-dist/assets/zustand-vanilla-shallow.js +0 -71
  186. package/shell-dist/assets/zustand-vanilla.js +0 -40
  187. package/shell-dist/assets/zustand.js +0 -32
  188. /package/shell-dist/assets/{index-xZhmujjM.js → index.i0kqbxp050.js} +0 -0
  189. /package/shell-dist/assets/{nprogress-css.js → nprogress-css.1cq2pzkre0.js} +0 -0
  190. /package/shell-dist/assets/{ojm-antd-es-button.js → ojm-antd-es-button.2uriphio50.js} +0 -0
  191. /package/shell-dist/assets/{ojm-antd-es-modal.js → ojm-antd-es-modal.bf3tgdh8v0.js} +0 -0
  192. /package/shell-dist/assets/{ojm-antd-es-slider.js → ojm-antd-es-slider.xyvptuhid0.js} +0 -0
  193. /package/shell-dist/assets/{ojm-antd-es-upload.js → ojm-antd-es-upload.13gx45e0g0.js} +0 -0
@@ -0,0 +1,12 @@
1
+ var __defProp=Object.defineProperty;var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})};var react_exports={};__export(react_exports,{AnimatePresence:()=>AnimatePresence,AnimateSharedLayout:()=>AnimateSharedLayout,AsyncMotionValueAnimation:()=>AsyncMotionValueAnimation,DOMKeyframesResolver:()=>DOMKeyframesResolver,DOMVisualElement:()=>DOMVisualElement,DeprecatedLayoutGroupContext:()=>DeprecatedLayoutGroupContext,DocumentProjectionNode:()=>DocumentProjectionNode,DragControls:()=>DragControls,Feature:()=>Feature,FlatTree:()=>FlatTree,GroupAnimation:()=>GroupAnimation,GroupAnimationWithThen:()=>GroupAnimationWithThen,HTMLProjectionNode:()=>HTMLProjectionNode,HTMLVisualElement:()=>HTMLVisualElement,JSAnimation:()=>JSAnimation,KeyframeResolver:()=>KeyframeResolver,LayoutAnimationBuilder:()=>LayoutAnimationBuilder,LayoutGroup:()=>LayoutGroup,LayoutGroupContext:()=>LayoutGroupContext,LazyMotion:()=>LazyMotion,MotionConfig:()=>MotionConfig,MotionConfigContext:()=>MotionConfigContext,MotionContext:()=>MotionContext,MotionGlobalConfig:()=>MotionGlobalConfig,MotionValue:()=>MotionValue,NativeAnimation:()=>NativeAnimation,NativeAnimationExtended:()=>NativeAnimationExtended,NativeAnimationWrapper:()=>NativeAnimationWrapper,NodeStack:()=>NodeStack,ObjectVisualElement:()=>ObjectVisualElement,PopChild:()=>PopChild,PresenceChild:()=>PresenceChild,PresenceContext:()=>PresenceContext,Reorder:()=>namespace_exports,SVGVisualElement:()=>SVGVisualElement,SubscriptionManager:()=>SubscriptionManager,SwitchLayoutGroupContext:()=>SwitchLayoutGroupContext,ViewTransitionBuilder:()=>ViewTransitionBuilder,VisualElement:()=>VisualElement,WillChangeMotionValue:()=>WillChangeMotionValue,acceleratedValues:()=>acceleratedValues,addAttrValue:()=>addAttrValue,addDomEvent:()=>addDomEvent,addPointerEvent:()=>addPointerEvent,addPointerInfo:()=>addPointerInfo,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,animationControls:()=>animationControls,animationMapKey:()=>animationMapKey,animations:()=>animations,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,correctParentTransform:()=>correctParentTransform,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:()=>delay,delayInSeconds:()=>delayInSeconds,dimensionValueTypes:()=>dimensionValueTypes,disableInstantTransitions:()=>disableInstantTransitions,distance:()=>distance,distance2D:()=>distance2D,domAnimation:()=>domAnimation,domMax:()=>domMax,domMin:()=>domMin,eachAxis:()=>eachAxis,easeIn:()=>easeIn,easeInOut:()=>easeInOut,easeOut:()=>easeOut,easingDefinitionToFunction:()=>easingDefinitionToFunction,fillOffset:()=>fillOffset,fillWildcards:()=>fillWildcards,filterProps:()=>filterProps,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,isBrowser:()=>isBrowser,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,isMotionComponent:()=>isMotionComponent,isMotionValue:()=>isMotionValue,isNear:()=>isNear,isNodeOrChild:()=>isNodeOrChild,isNumericalString:()=>isNumericalString,isObject:()=>isObject,isPrimaryPointer:()=>isPrimaryPointer,isSVGElement:()=>isSVGElement,isSVGSVGElement:()=>isSVGSVGElement,isSVGTag:()=>isSVGTag,isTransitionDefined:()=>isTransitionDefined,isValidMotionProp:()=>isValidMotionProp,isVariantLabel:()=>isVariantLabel,isVariantNode:()=>isVariantNode,isWaapiSupportedEasing:()=>isWaapiSupportedEasing,isWillChangeMotionValue:()=>isWillChangeMotionValue,isZeroValueString:()=>isZeroValueString,keyframes:()=>keyframes,m:()=>m2,makeAnimationInstant:()=>makeAnimationInstant,makeUseVisualState:()=>makeUseVisualState,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,motion:()=>motion2,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,startOptimizedAppearAnimation:()=>startOptimizedAppearAnimation,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,transformViewBoxPoint:()=>transformViewBoxPoint,translateAxis:()=>translateAxis,unwrapMotionComponent:()=>unwrapMotionComponent,updateMotionValuesFromProps:()=>updateMotionValuesFromProps,useAnimate:()=>useAnimate,useAnimateMini:()=>useAnimateMini,useAnimation:()=>useAnimation,useAnimationControls:()=>useAnimationControls,useAnimationFrame:()=>useAnimationFrame,useComposedRefs:()=>useComposedRefs,useCycle:()=>useCycle,useDeprecatedAnimatedState:()=>useAnimatedState,useDeprecatedInvertedScale:()=>useInvertedScale,useDomEvent:()=>useDomEvent,useDragControls:()=>useDragControls,useElementScroll:()=>useElementScroll,useFollowValue:()=>useFollowValue,useForceUpdate:()=>useForceUpdate,useInView:()=>useInView,useInstantLayoutTransition:()=>useInstantLayoutTransition,useInstantTransition:()=>useInstantTransition,useIsPresent:()=>useIsPresent,useIsomorphicLayoutEffect:()=>useIsomorphicLayoutEffect,useMotionTemplate:()=>useMotionTemplate,useMotionValue:()=>useMotionValue,useMotionValueEvent:()=>useMotionValueEvent,usePageInView:()=>usePageInView,usePresence:()=>usePresence,usePresenceData:()=>usePresenceData,useReducedMotion:()=>useReducedMotion,useReducedMotionConfig:()=>useReducedMotionConfig,useResetProjection:()=>useResetProjection,useScroll:()=>useScroll,useSpring:()=>useSpring,useTime:()=>useTime,useTransform:()=>useTransform,useUnmountEffect:()=>useUnmountEffect,useVelocity:()=>useVelocity,useViewportScroll:()=>useViewportScroll,useWillChange:()=>useWillChange,variantPriorityOrder:()=>variantPriorityOrder,variantProps:()=>variantProps,velocityPerSecond:()=>velocityPerSecond,vh:()=>vh,visualElementStore:()=>visualElementStore,vw:()=>vw,warnOnce:()=>warnOnce,warning:()=>warning,wrap:()=>wrap});import{jsx as jsx3,Fragment}from"react/jsx-runtime";import{useMemo as useMemo2,useRef as useRef4,useState,useContext as useContext3}from"react";import{createContext}from"react";var LayoutGroupContext=createContext({});import{useRef}from"react";function useConstant(init){let ref=useRef(null);return ref.current===null&&(ref.current=init()),ref.current}import{useLayoutEffect,useEffect}from"react";var isBrowser=typeof window<"u";var useIsomorphicLayoutEffect=isBrowser?useLayoutEffect:useEffect;import{jsx as jsx2}from"react/jsx-runtime";import*as React3 from"react";import{useId as useId2,useRef as useRef3,useMemo}from"react";import{createContext as createContext2}from"react";var PresenceContext=createContext2(null);import{jsx}from"react/jsx-runtime";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(animations2){this.stop=()=>this.runAll("stop"),this.animations=animations2.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(animations2,propName){let max=0;for(let i=0;i<animations2.length;i++){let value=animations2[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,animations2){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&&animations2.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 animations2=[],animationTypeState=type&&visualElement.animationState&&visualElement.animationState.getState()[type],path=transition?.path;path&&path.animateVisualElement(visualElement,target,transition,delay2,animations2);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&&animations2.push(animation)}if(transitionEnd){let applyTransitionEnd=()=>frame.update(()=>{transitionEnd&&setTarget(visualElement,transitionEnd)});animations2.length?Promise.all(animations2).then(applyTransitionEnd):applyTransitionEnd()}return animations2}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 animations2=[];for(let child of visualElement.variantChildren)child.notify("AnimationStart",variant),animations2.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(animations2)}function animateVisualElement(visualElement,definition,options={}){visualElement.notify("AnimationStart",definition);let animation;if(Array.isArray(definition)){let animations2=definition.map(variant=>animateVariant(visualElement,variant,options));animation=Promise.all(animations2)}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,stopAnimation2=()=>{activeAnimation&&(activeAnimation.stop(),activeAnimation=null),value.animation=void 0},startAnimation=()=>{let currentValue=asNumber(value.get()),targetValue=asNumber(latestValue);if(currentValue===targetValue){stopAnimation2();return}let velocity=activeAnimation?activeAnimation.getGeneratorVelocity():value.getVelocity();stopAnimation2(),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)},stopAnimation2),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 stopAnimation2}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(),animations2=[],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)),animations2.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)?animations2.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),animations2.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)||animations2.push(new NativeAnimation({element:document.documentElement,name:corner,pseudoElement:`::view-transition-group(${name})`,keyframes:[from,to],delay:delay2,duration,ease:ease2}))}}),resolve(new GroupAnimation(animations2))}).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 isBrowser2=typeof window<"u";function initPrefersReducedMotion(){if(hasReducedMotionListener.current=!0,!!isBrowser2)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,transformPoint2){if(!transformPoint2)return point2;let topLeft=transformPoint2({x:point2.left,y:point2.top}),bottomRight=transformPoint2({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,transformPoint2){return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(),transformPoint2))}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:layout2,layoutId}){return transformProps.has(key)||key.startsWith("origin")||(layout2||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 animations2=>Promise.all(animations2.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)||{},animations2=[],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)&&animations2.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}),animations2.push({animation:fallbackAnimation})}let shouldAnimate=!!animations2.length;return isInitialRender&&(props.initial===!1||props.initial===props.animate)&&!visualElement.manuallyAnimateOnMount&&(shouldAnimate=!1),isInitialRender=!1,wasReset=!1,shouldAnimate?animate2(animations2):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 animations2=animateChanges(type);for(let key in state)state[key].protectedKeys={};return animations2}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,layout2,parent,anchor=0){let anchorPoint=anchor?mixNumber(parent.min,parent.max,anchor):parent.min;target.min=layout2.min-anchorPoint,target.max=target.min+calcLength(layout2)}function calcRelativePosition(target,layout2,parent,anchor){calcRelativeAxisPosition(target.x,layout2.x,parent.x,anchor?.x),calcRelativeAxisPosition(target.y,layout2.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:layout2,layoutId}=projectionNode.options;window.MotionCancelOptimisedAnimation(appearId,"transform",frame,!(layout2||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:layout2,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&&(layout2||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||layout2)&&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:layout2}=this.options;if(layoutId===void 0&&!layout2)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:layout2,layoutId}=this.options;if(!this.layout||!(layout2||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,layout2,parentLayout){this.relativeParent=relativeParent,this.linkedParentVersion=relativeParent.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=createBox(),this.relativeTargetOrigin=createBox(),calcRelativePosition(this.relativeTargetOrigin,layout2,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:layout2,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||!(layout2||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:layout2,latestValues}=lead;if(!(!targetWithTransforms||!target||!layout2)){if(this!==lead&&this.layout&&layout2&&shouldAnimatePositionOnly(this.options.animationType,this.layout.layoutBox,layout2.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:layout2,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=layout2[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],layout2[snapAxis])}else shouldAnimatePositionOnly(animationType,snapshot.layoutBox,layout2)&&eachAxis(axis=>{let axisSnapshot=isShared?snapshot.measuredBox[axis]:snapshot.layoutBox[axis],length=calcLength(layout2[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,layout2,snapshot.layoutBox);let visualDelta=createDelta();isShared?calcBoxDelta(visualDelta,node.applyTransform(measuredLayout,!0),snapshot.measuredBox):calcBoxDelta(visualDelta,layout2,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,layout2,parentLayout.layoutBox,anchor),boxEqualsRounded(relativeSnapshot,relativeLayout)||(hasRelativeLayoutChanged=!0),relativeParent.options.layoutRoot&&(node.relativeTarget=relativeLayout,node.relativeTargetOrigin=relativeSnapshot,node.relativeParent=relativeParent)}}}node.notifyListeners("didUpdate",{layout:layout2,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,layout2){return animationType==="position"||animationType==="preserve-aspect"&&!isNear(aspectRatio(snapshot),aspectRatio(layout2),.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(id4,transition){return this.sharedTransitions.set(id4,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 animations2=new Set;this.tracked.forEach(node=>{node.instance&&node.currentAnimation&&animations2.add(node.currentAnimation)}),this.notifyReady(new GroupAnimation([...animations2]))}};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),{});import*as React2 from"react";import{useId,useRef as useRef2,useContext,useInsertionEffect}from"react";import{createContext as createContext3}from"react";var MotionConfigContext=createContext3({transformPagePoint:p=>p,isStatic:!1,reducedMotion:"never"});import*as React from"react";function setRef(ref,value){if(typeof ref=="function")return ref(value);ref!=null&&(ref.current=value)}function composeRefs(...refs){return node=>{let hasCleanup=!1,cleanups=refs.map(ref=>{let cleanup=setRef(ref,node);return!hasCleanup&&typeof cleanup=="function"&&(hasCleanup=!0),cleanup});if(hasCleanup)return()=>{for(let i=0;i<cleanups.length;i++){let cleanup=cleanups[i];typeof cleanup=="function"?cleanup():setRef(refs[i],null)}}}}function useComposedRefs(...refs){return React.useCallback(composeRefs(...refs),refs)}var PopChildMeasure=class extends React2.Component{getSnapshotBeforeUpdate(prevProps){let element=this.props.childRef.current;if(isHTMLElement(element)&&prevProps.isPresent&&!this.props.isPresent&&this.props.pop!==!1){let parent=element.offsetParent,parentWidth=isHTMLElement(parent)&&parent.offsetWidth||0,parentHeight=isHTMLElement(parent)&&parent.offsetHeight||0,computedStyle=getComputedStyle(element),size=this.props.sizeRef.current;size.height=parseFloat(computedStyle.height),size.width=parseFloat(computedStyle.width),size.top=element.offsetTop,size.left=element.offsetLeft,size.right=parentWidth-size.width-size.left,size.bottom=parentHeight-size.height-size.top,size.direction=computedStyle.direction}return null}componentDidUpdate(){}render(){return this.props.children}};function PopChild({children,isPresent:isPresent2,anchorX,anchorY,root,pop}){let id4=useId(),ref=useRef2(null),size=useRef2({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce}=useContext(MotionConfigContext),childRef=pop!==!1?children.props?.ref??children?.ref:void 0,composedRef=useComposedRefs(ref,childRef);return useInsertionEffect(()=>{let{width,height,top,left,right,bottom,direction}=size.current;if(isPresent2||pop===!1||!ref.current||!width||!height)return;let isRTL=direction==="rtl",x=anchorX==="left"?isRTL?`right: ${right}`:`left: ${left}`:isRTL?`left: ${left}`:`right: ${right}`,y=anchorY==="bottom"?`bottom: ${bottom}`:`top: ${top}`;ref.current.dataset.motionPopId=id4;let style2=document.createElement("style");nonce&&(style2.nonce=nonce);let parent=root??document.head;return parent.appendChild(style2),style2.sheet&&style2.sheet.insertRule(`
5
+ [data-motion-pop-id="${id4}"] {
6
+ position: absolute !important;
7
+ width: ${width}px !important;
8
+ height: ${height}px !important;
9
+ ${x}px !important;
10
+ ${y}px !important;
11
+ }
12
+ `),()=>{ref.current?.removeAttribute("data-motion-pop-id"),parent.contains(style2)&&parent.removeChild(style2)}},[isPresent2]),jsx(PopChildMeasure,{isPresent:isPresent2,childRef:ref,sizeRef:size,pop,children:pop===!1?children:React2.cloneElement(children,{ref:composedRef})})}var PresenceChild=({children,initial,isPresent:isPresent2,onExitComplete,custom,presenceAffectsLayout,mode,anchorX,anchorY,root})=>{let presenceChildren=useConstant(newChildrenMap),id4=useId2(),isPresentRef=useRef3(isPresent2),onExitCompleteRef=useRef3(onExitComplete);useIsomorphicLayoutEffect(()=>{isPresentRef.current=isPresent2,onExitCompleteRef.current=onExitComplete});let isReusedContext=!0,context=useMemo(()=>(isReusedContext=!1,{id:id4,initial,isPresent:isPresent2,custom,onExitComplete:childId=>{presenceChildren.set(childId,!0);for(let isComplete of presenceChildren.values())if(!isComplete)return;onExitComplete&&onExitComplete()},register:childId=>(presenceChildren.set(childId,!1),()=>{presenceChildren.delete(childId),!isPresentRef.current&&!presenceChildren.size&&onExitCompleteRef.current?.()})}),[isPresent2,presenceChildren,onExitComplete]);return presenceAffectsLayout&&isReusedContext&&(context={...context}),useMemo(()=>{presenceChildren.forEach((_,key)=>presenceChildren.set(key,!1))},[isPresent2]),React3.useEffect(()=>{!isPresent2&&!presenceChildren.size&&onExitComplete&&onExitComplete()},[isPresent2]),children=jsx2(PopChild,{pop:mode==="popLayout",isPresent:isPresent2,anchorX,anchorY,root,children}),jsx2(PresenceContext.Provider,{value:context,children})};function newChildrenMap(){return new Map}import{useContext as useContext2,useId as useId3,useEffect as useEffect3,useCallback as useCallback2}from"react";function usePresence(subscribe=!0){let context=useContext2(PresenceContext);if(context===null)return[!0,null];let{isPresent:isPresent2,onExitComplete,register}=context,id4=useId3();useEffect3(()=>{if(subscribe)return register(id4)},[subscribe]);let safeToRemove=useCallback2(()=>subscribe&&onExitComplete&&onExitComplete(id4),[id4,onExitComplete,subscribe]);return!isPresent2&&onExitComplete?[!1,safeToRemove]:[!0]}function useIsPresent(){return isPresent(useContext2(PresenceContext))}function isPresent(context){return context===null?!0:context.isPresent}import{Children,isValidElement}from"react";var getChildKey=child=>child.key||"";function onlyElements(children){let filtered=[];return Children.forEach(children,child=>{isValidElement(child)&&filtered.push(child)}),filtered}var AnimatePresence=({children,custom,initial=!0,onExitComplete,presenceAffectsLayout=!0,mode="sync",propagate=!1,anchorX="left",anchorY="top",root})=>{let[isParentPresent,safeToRemove]=usePresence(propagate),presentChildren=useMemo2(()=>onlyElements(children),[children]),presentKeys=propagate&&!isParentPresent?[]:presentChildren.map(getChildKey),isInitialRender=useRef4(!0),pendingPresentChildren=useRef4(presentChildren),exitComplete=useConstant(()=>new Map),exitingComponents=useRef4(new Set),[diffedChildren,setDiffedChildren]=useState(presentChildren),[renderedChildren,setRenderedChildren]=useState(presentChildren);useIsomorphicLayoutEffect(()=>{isInitialRender.current=!1,pendingPresentChildren.current=presentChildren;for(let i=0;i<renderedChildren.length;i++){let key=getChildKey(renderedChildren[i]);presentKeys.includes(key)?(exitComplete.delete(key),exitingComponents.current.delete(key)):exitComplete.get(key)!==!0&&exitComplete.set(key,!1)}},[renderedChildren,presentKeys.length,presentKeys.join("-")]);let exitingChildren=[];if(presentChildren!==diffedChildren){let nextChildren=[...presentChildren];for(let i=0;i<renderedChildren.length;i++){let child=renderedChildren[i],key=getChildKey(child);presentKeys.includes(key)||(nextChildren.splice(i,0,child),exitingChildren.push(child))}return mode==="wait"&&exitingChildren.length&&(nextChildren=exitingChildren),setRenderedChildren(onlyElements(nextChildren)),setDiffedChildren(presentChildren),null}let{forceRender}=useContext3(LayoutGroupContext);return jsx3(Fragment,{children:renderedChildren.map(child=>{let key=getChildKey(child),isPresent2=propagate&&!isParentPresent?!1:presentChildren===renderedChildren||presentKeys.includes(key),onExit=()=>{if(exitingComponents.current.has(key))return;if(exitComplete.has(key))exitingComponents.current.add(key),exitComplete.set(key,!0);else return;let isEveryExitComplete=!0;exitComplete.forEach(isExitComplete=>{isExitComplete||(isEveryExitComplete=!1)}),isEveryExitComplete&&(forceRender?.(),setRenderedChildren(pendingPresentChildren.current),propagate&&safeToRemove?.(),onExitComplete&&onExitComplete())};return jsx3(PresenceChild,{isPresent:isPresent2,initial:!isInitialRender.current||initial?void 0:!1,custom,presenceAffectsLayout,mode,root,onExitComplete:isPresent2?void 0:onExit,anchorX,anchorY,children:child},key)})})};import{jsx as jsx4}from"react/jsx-runtime";import{useContext as useContext4,useRef as useRef6,useMemo as useMemo3}from"react";import{createContext as createContext4}from"react";var DeprecatedLayoutGroupContext=createContext4(null);import{useState as useState2,useCallback as useCallback3}from"react";import{useRef as useRef5}from"react";function useIsMounted(){let isMounted=useRef5(!1);return useIsomorphicLayoutEffect(()=>(isMounted.current=!0,()=>{isMounted.current=!1}),[]),isMounted}function useForceUpdate(){let isMounted=useIsMounted(),[forcedRenderCount,setForcedRenderCount]=useState2(0),forceRender=useCallback3(()=>{isMounted.current&&setForcedRenderCount(forcedRenderCount+1)},[forcedRenderCount]);return[useCallback3(()=>frame.postRender(forceRender),[forceRender]),forcedRenderCount]}var shouldInheritGroup=inherit=>inherit===!0,shouldInheritId=inherit=>shouldInheritGroup(inherit===!0)||inherit==="id",LayoutGroup=({children,id:id4,inherit=!0})=>{let layoutGroupContext=useContext4(LayoutGroupContext),deprecatedLayoutGroupContext=useContext4(DeprecatedLayoutGroupContext),[forceRender,key]=useForceUpdate(),context=useRef6(null),upstreamId=layoutGroupContext.id||deprecatedLayoutGroupContext;context.current===null&&(shouldInheritId(inherit)&&upstreamId&&(id4=id4?upstreamId+"-"+id4:upstreamId),context.current={id:id4,group:shouldInheritGroup(inherit)?layoutGroupContext.group||nodeGroup():nodeGroup()});let memoizedContext=useMemo3(()=>({...context.current,forceRender}),[key]);return jsx4(LayoutGroupContext.Provider,{value:memoizedContext,children})};import{jsx as jsx5}from"react/jsx-runtime";import{useState as useState3,useRef as useRef7,useEffect as useEffect4}from"react";import{createContext as createContext5}from"react";var LazyContext=createContext5({strict:!1});var featureProps={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},isInitialized=!1;function initFeatureDefinitions(){if(isInitialized)return;let initialFeatureDefinitions={};for(let key in featureProps)initialFeatureDefinitions[key]={isEnabled:props=>featureProps[key].some(name=>!!props[name])};setFeatureDefinitions(initialFeatureDefinitions),isInitialized=!0}function getInitializedFeatureDefinitions(){return initFeatureDefinitions(),getFeatureDefinitions()}function loadFeatures(features){let featureDefinitions2=getInitializedFeatureDefinitions();for(let key in features)featureDefinitions2[key]={...featureDefinitions2[key],...features[key]};setFeatureDefinitions(featureDefinitions2)}function LazyMotion({children,features,strict=!1}){let[,setIsLoaded]=useState3(!isLazyBundle(features)),loadedRenderer=useRef7(void 0);if(!isLazyBundle(features)){let{renderer,...loadedFeatures}=features;loadedRenderer.current=renderer,loadFeatures(loadedFeatures)}return useEffect4(()=>{isLazyBundle(features)&&features().then(({renderer,...loadedFeatures})=>{loadFeatures(loadedFeatures),loadedRenderer.current=renderer,setIsLoaded(!0)})},[]),jsx5(LazyContext.Provider,{value:{renderer:loadedRenderer.current,strict},children})}function isLazyBundle(features){return typeof features=="function"}import{jsx as jsx6}from"react/jsx-runtime";import{useContext as useContext5,useMemo as useMemo4}from"react";var validMotionProps=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function isValidMotionProp(key){return key.startsWith("while")||key.startsWith("drag")&&key!=="draggable"||key.startsWith("layout")||key.startsWith("onTap")||key.startsWith("onPan")||key.startsWith("onLayout")||validMotionProps.has(key)}var shouldForward=key=>!isValidMotionProp(key);function loadExternalIsValidProp(isValidProp){typeof isValidProp=="function"&&(shouldForward=key=>key.startsWith("on")?!isValidMotionProp(key):isValidProp(key))}try{loadExternalIsValidProp(__require("@emotion/is-prop-valid").default)}catch{}function filterProps(props,isDom,forwardMotionProps){let filteredProps={};for(let key in props)key==="values"&&typeof props.values=="object"||isMotionValue(props[key])||(shouldForward(key)||forwardMotionProps===!0&&isValidMotionProp(key)||!isDom&&!isValidMotionProp(key)||props.draggable&&key.startsWith("onDrag"))&&(filteredProps[key]=props[key]);return filteredProps}function MotionConfig({children,isValidProp,...config}){isValidProp&&loadExternalIsValidProp(isValidProp);let parentConfig=useContext5(MotionConfigContext);config={...parentConfig,...config},config.transition=resolveTransition(config.transition,parentConfig.transition),config.isStatic=useConstant(()=>config.isStatic);let context=useMemo4(()=>config,[JSON.stringify(config.transition),config.transformPagePoint,config.reducedMotion,config.skipAnimations]);return jsx6(MotionConfigContext.Provider,{value:context,children})}import{jsxs,jsx as jsx7}from"react/jsx-runtime";import{forwardRef,useContext as useContext9}from"react";import{createContext as createContext6}from"react";var MotionContext=createContext6({});import{useContext as useContext6,useMemo as useMemo5}from"react";function getCurrentTreeVariants(props,context){if(isControllingVariants(props)){let{initial,animate:animate2}=props;return{initial:initial===!1||isVariantLabel(initial)?initial:void 0,animate:isVariantLabel(animate2)?animate2:void 0}}return props.inherit!==!1?context:{}}function useCreateMotionContext(props){let{initial,animate:animate2}=getCurrentTreeVariants(props,useContext6(MotionContext));return useMemo5(()=>({initial,animate:animate2}),[variantLabelsAsDependency(initial),variantLabelsAsDependency(animate2)])}function variantLabelsAsDependency(prop){return Array.isArray(prop)?prop.join(" "):prop}import{Fragment as Fragment2,useMemo as useMemo8,createElement}from"react";import{useMemo as useMemo6}from"react";var createHtmlRenderState=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function copyRawValuesOnly(target,source,props){for(let key in source)!isMotionValue(source[key])&&!isForcedMotionValue(key,props)&&(target[key]=source[key])}function useInitialMotionValues({transformTemplate},visualState){return useMemo6(()=>{let state=createHtmlRenderState();return buildHTMLStyles(state,visualState,transformTemplate),Object.assign({},state.vars,state.style)},[visualState])}function useStyle(props,visualState){let styleProp=props.style||{},style2={};return copyRawValuesOnly(style2,styleProp,props),Object.assign(style2,useInitialMotionValues(props,visualState)),style2}function useHTMLProps(props,visualState){let htmlProps={},style2=useStyle(props,visualState);return props.drag&&props.dragListener!==!1&&(htmlProps.draggable=!1,style2.userSelect=style2.WebkitUserSelect=style2.WebkitTouchCallout="none",style2.touchAction=props.drag===!0?"none":`pan-${props.drag==="x"?"y":"x"}`),props.tabIndex===void 0&&(props.onTap||props.onTapStart||props.whileTap)&&(htmlProps.tabIndex=0),htmlProps.style=style2,htmlProps}import{useMemo as useMemo7}from"react";var createSvgRenderState=()=>({...createHtmlRenderState(),attrs:{}});function useSVGProps(props,visualState,_isStatic,Component3){let visualProps=useMemo7(()=>{let state=createSvgRenderState();return buildSVGAttrs(state,visualState,isSVGTag(Component3),props.transformTemplate,props.style),{...state.attrs,style:{...state.style}}},[visualState]);if(props.style){let rawStyles={};copyRawValuesOnly(rawStyles,props.style,props),visualProps.style={...rawStyles,...visualProps.style}}return visualProps}var lowercaseSVGElements=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function isSVGComponent(Component3){return typeof Component3!="string"||Component3.includes("-")?!1:!!(lowercaseSVGElements.indexOf(Component3)>-1||/[A-Z]/u.test(Component3))}function useRender(Component3,props,ref,{latestValues},isStatic,forwardMotionProps=!1,isSVG){let visualProps=(isSVG??isSVGComponent(Component3)?useSVGProps:useHTMLProps)(props,latestValues,isStatic,Component3),filteredProps=filterProps(props,typeof Component3=="string",forwardMotionProps),elementProps=Component3!==Fragment2?{...filteredProps,...visualProps,ref}:{},{children}=props,renderedChildren=useMemo8(()=>isMotionValue(children)?children.get():children,[children]);return createElement(Component3,{...elementProps,children:renderedChildren})}import{useContext as useContext7}from"react";function makeState({scrapeMotionValuesFromProps:scrapeMotionValuesFromProps3,createRenderState},props,context,presenceContext){return{latestValues:makeLatestValues(props,context,presenceContext,scrapeMotionValuesFromProps3),renderState:createRenderState()}}function makeLatestValues(props,context,presenceContext,scrapeMotionValues){let values={},motionValues=scrapeMotionValues(props,{});for(let key in motionValues)values[key]=resolveMotionValue(motionValues[key]);let{initial,animate:animate2}=props,isControllingVariants$1=isControllingVariants(props),isVariantNode$1=isVariantNode(props);context&&isVariantNode$1&&!isControllingVariants$1&&props.inherit!==!1&&(initial===void 0&&(initial=context.initial),animate2===void 0&&(animate2=context.animate));let isInitialAnimationBlocked=presenceContext?presenceContext.initial===!1:!1;isInitialAnimationBlocked=isInitialAnimationBlocked||initial===!1;let variantToSet=isInitialAnimationBlocked?animate2:initial;if(variantToSet&&typeof variantToSet!="boolean"&&!isAnimationControls(variantToSet)){let list=Array.isArray(variantToSet)?variantToSet:[variantToSet];for(let i=0;i<list.length;i++){let resolved=resolveVariantFromProps(props,list[i]);if(resolved){let{transitionEnd,transition,...target}=resolved;for(let key in target){let valueTarget=target[key];if(Array.isArray(valueTarget)){let index=isInitialAnimationBlocked?valueTarget.length-1:0;valueTarget=valueTarget[index]}valueTarget!==null&&(values[key]=valueTarget)}for(let key in transitionEnd)values[key]=transitionEnd[key]}}}return values}var makeUseVisualState=config=>(props,isStatic)=>{let context=useContext7(MotionContext),presenceContext=useContext7(PresenceContext),make=()=>makeState(config,props,context,presenceContext);return isStatic?make():useConstant(make)};var useHTMLVisualState=makeUseVisualState({scrapeMotionValuesFromProps,createRenderState:createHtmlRenderState});var useSVGVisualState=makeUseVisualState({scrapeMotionValuesFromProps:scrapeMotionValuesFromProps2,createRenderState:createSvgRenderState});var motionComponentSymbol=Symbol.for("motionComponentSymbol");import{useRef as useRef8,useInsertionEffect as useInsertionEffect2,useCallback as useCallback4}from"react";function useMotionRef(visualState,visualElement,externalRef){let externalRefContainer=useRef8(externalRef);useInsertionEffect2(()=>{externalRefContainer.current=externalRef});let refCleanup=useRef8(null);return useCallback4(instance=>{instance&&visualState.onMount?.(instance),visualElement&&(instance?visualElement.mount(instance):visualElement.unmount());let ref=externalRefContainer.current;if(typeof ref=="function")if(instance){let cleanup=ref(instance);typeof cleanup=="function"&&(refCleanup.current=cleanup)}else refCleanup.current?(refCleanup.current(),refCleanup.current=null):ref(instance);else ref&&(ref.current=instance)},[visualElement])}import{useContext as useContext8,useRef as useRef9,useInsertionEffect as useInsertionEffect3,useEffect as useEffect5}from"react";import{createContext as createContext7}from"react";var SwitchLayoutGroupContext=createContext7({});function isRefObject(ref){return ref&&typeof ref=="object"&&Object.prototype.hasOwnProperty.call(ref,"current")}function useVisualElement(Component3,visualState,props,createVisualElement2,ProjectionNodeConstructor,isSVG){let{visualElement:parent}=useContext8(MotionContext),lazyContext=useContext8(LazyContext),presenceContext=useContext8(PresenceContext),motionConfig=useContext8(MotionConfigContext),reducedMotionConfig=motionConfig.reducedMotion,skipAnimations=motionConfig.skipAnimations,visualElementRef=useRef9(null),hasMountedOnce=useRef9(!1);createVisualElement2=createVisualElement2||lazyContext.renderer,!visualElementRef.current&&createVisualElement2&&(visualElementRef.current=createVisualElement2(Component3,{visualState,parent,props,presenceContext,blockInitialAnimation:presenceContext?presenceContext.initial===!1:!1,reducedMotionConfig,skipAnimations,isSVG}),hasMountedOnce.current&&visualElementRef.current&&(visualElementRef.current.manuallyAnimateOnMount=!0));let visualElement=visualElementRef.current,initialLayoutGroupConfig=useContext8(SwitchLayoutGroupContext);visualElement&&!visualElement.projection&&ProjectionNodeConstructor&&(visualElement.type==="html"||visualElement.type==="svg")&&createProjectionNode2(visualElementRef.current,props,ProjectionNodeConstructor,initialLayoutGroupConfig);let isMounted=useRef9(!1);useInsertionEffect3(()=>{visualElement&&isMounted.current&&visualElement.update(props,presenceContext)});let optimisedAppearId=props[optimizedAppearDataAttribute],wantsHandoff=useRef9(!!optimisedAppearId&&typeof window<"u"&&!window.MotionHandoffIsComplete?.(optimisedAppearId)&&window.MotionHasOptimisedAnimation?.(optimisedAppearId));return useIsomorphicLayoutEffect(()=>{hasMountedOnce.current=!0,visualElement&&(isMounted.current=!0,window.MotionIsMounted=!0,visualElement.updateFeatures(),visualElement.scheduleRenderMicrotask(),wantsHandoff.current&&visualElement.animationState&&visualElement.animationState.animateChanges())}),useEffect5(()=>{visualElement&&(!wantsHandoff.current&&visualElement.animationState&&visualElement.animationState.animateChanges(),wantsHandoff.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(optimisedAppearId)}),wantsHandoff.current=!1),visualElement.enteringChildren=void 0)}),visualElement}function createProjectionNode2(visualElement,props,ProjectionNodeConstructor,initialPromotionConfig){let{layoutId,layout:layout2,drag:drag2,dragConstraints,layoutScroll,layoutRoot,layoutAnchor,layoutCrossfade}=props;visualElement.projection=new ProjectionNodeConstructor(visualElement.latestValues,props["data-framer-portal-id"]?void 0:getClosestProjectingNode(visualElement.parent)),visualElement.projection.setOptions({layoutId,layout:layout2,alwaysMeasureLayout:!!drag2||dragConstraints&&isRefObject(dragConstraints),visualElement,animationType:typeof layout2=="string"?layout2:"both",initialPromotionConfig,crossfade:layoutCrossfade,layoutScroll,layoutRoot,layoutAnchor})}function getClosestProjectingNode(visualElement){if(visualElement)return visualElement.options.allowProjection!==!1?visualElement.projection:getClosestProjectingNode(visualElement.parent)}function createMotionComponent(Component3,{forwardMotionProps=!1,type}={},preloadedFeatures,createVisualElement2){preloadedFeatures&&loadFeatures(preloadedFeatures);let isSVG=type?type==="svg":isSVGComponent(Component3),useVisualState2=isSVG?useSVGVisualState:useHTMLVisualState;function MotionDOMComponent(props,externalRef){let MeasureLayout2,configAndProps={...useContext9(MotionConfigContext),...props,layoutId:useLayoutId(props)},{isStatic}=configAndProps,context=useCreateMotionContext(props),visualState=useVisualState2(props,isStatic);if(!isStatic&&typeof window<"u"){useStrictMode(configAndProps,preloadedFeatures);let layoutProjection=getProjectionFunctionality(configAndProps);MeasureLayout2=layoutProjection.MeasureLayout,context.visualElement=useVisualElement(Component3,visualState,configAndProps,createVisualElement2,layoutProjection.ProjectionNode,isSVG)}return jsxs(MotionContext.Provider,{value:context,children:[MeasureLayout2&&context.visualElement?jsx7(MeasureLayout2,{visualElement:context.visualElement,...configAndProps}):null,useRender(Component3,props,useMotionRef(visualState,context.visualElement,externalRef),visualState,isStatic,forwardMotionProps,isSVG)]})}MotionDOMComponent.displayName=`motion.${typeof Component3=="string"?Component3:`create(${Component3.displayName??Component3.name??""})`}`;let ForwardRefMotionComponent=forwardRef(MotionDOMComponent);return ForwardRefMotionComponent[motionComponentSymbol]=Component3,ForwardRefMotionComponent}function useLayoutId({layoutId}){let layoutGroupId=useContext9(LayoutGroupContext).id;return layoutGroupId&&layoutId!==void 0?layoutGroupId+"-"+layoutId:layoutId}function useStrictMode(configAndProps,preloadedFeatures){let isStrict=useContext9(LazyContext).strict}function getProjectionFunctionality(props){let featureDefinitions2=getInitializedFeatureDefinitions(),{drag:drag2,layout:layout2}=featureDefinitions2;if(!drag2&&!layout2)return{};let combined={...drag2,...layout2};return{MeasureLayout:drag2?.isEnabled(props)||layout2?.isEnabled(props)?combined.MeasureLayout:void 0,ProjectionNode:combined.ProjectionNode}}function createMotionProxy(preloadedFeatures,createVisualElement2){if(typeof Proxy>"u")return createMotionComponent;let componentCache=new Map,factory=(Component3,options)=>createMotionComponent(Component3,options,preloadedFeatures,createVisualElement2),deprecatedFactoryFunction=(Component3,options)=>factory(Component3,options);return new Proxy(deprecatedFactoryFunction,{get:(_target,key)=>key==="create"?factory:(componentCache.has(key)||componentCache.set(key,createMotionComponent(key,void 0,preloadedFeatures,createVisualElement2)),componentCache.get(key))})}var m=createMotionProxy();import{Fragment as Fragment3}from"react";var createDomVisualElement=(Component3,options)=>options.isSVG??isSVGComponent(Component3)?new SVGVisualElement(options):new HTMLVisualElement(options,{allowProjection:Component3!==Fragment3});var AnimationFeature=class extends Feature{constructor(node){super(node),node.animationState||(node.animationState=createAnimationState(node))}updateAnimationControlsSubscription(){let{animate:animate2}=this.node.getProps();isAnimationControls(animate2)&&(this.unmountControls=animate2.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:animate2}=this.node.getProps(),{animate:prevAnimate}=this.node.prevProps||{};animate2!==prevAnimate&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}};var id2=0,ExitAnimationFeature=class extends Feature{constructor(){super(...arguments),this.id=id2++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;let{isPresent:isPresent2,onExitComplete}=this.node.presenceContext,{isPresent:prevIsPresent}=this.node.prevPresenceContext||{};if(!this.node.animationState||isPresent2===prevIsPresent)return;if(isPresent2&&prevIsPresent===!1){if(this.isExitComplete){let{initial,custom}=this.node.getProps();if(typeof initial=="string"||typeof initial=="object"&&initial!==null&&!Array.isArray(initial)){let resolved=resolveVariant(this.node,initial,custom);if(resolved){let{transition,transitionEnd,...target}=resolved;for(let key in target)this.node.getValue(key)?.jump(target[key])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}let exitAnimation=this.node.animationState.setActive("exit",!isPresent2);onExitComplete&&!isPresent2&&exitAnimation.then(()=>{this.isExitComplete=!0,onExitComplete(this.id)})}mount(){let{register,onExitComplete}=this.node.presenceContext||{};onExitComplete&&onExitComplete(this.id),register&&(this.unmount=register(this.id))}unmount(){}};var animations={animation:{Feature:AnimationFeature},exit:{Feature:ExitAnimationFeature}};function extractEventInfo(event){return{point:{x:event.pageX,y:event.pageY}}}var addPointerInfo=handler=>event=>isPrimaryPointer(event)&&handler(event,extractEventInfo(event));function addPointerEvent(target,eventName,handler,options){return addDomEvent(target,eventName,addPointerInfo(handler),options)}var getContextWindow=({current:current2})=>current2?current2.ownerDocument.defaultView:null;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 overflowStyles=new Set(["auto","scroll"]),PanSession=class{constructor(event,handlers,{transformPagePoint,contextWindow=window,dragSnapToOrigin=!1,distanceThreshold=3,element}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=event2=>{this.handleScroll(event2.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=transformPoint(this.lastRawMoveEventInfo,this.transformPagePoint));let info2=getPanInfo(this.lastMoveEventInfo,this.history),isPanStarted=this.startEvent!==null,isDistancePastThreshold=distance2D(info2.offset,{x:0,y:0})>=this.distanceThreshold;if(!isPanStarted&&!isDistancePastThreshold)return;let{point:point3}=info2,{timestamp:timestamp2}=frameData;this.history.push({...point3,timestamp:timestamp2});let{onStart,onMove}=this.handlers;isPanStarted||(onStart&&onStart(this.lastMoveEvent,info2),this.startEvent=this.lastMoveEvent),onMove&&onMove(this.lastMoveEvent,info2)},this.handlePointerMove=(event2,info2)=>{this.lastMoveEvent=event2,this.lastRawMoveEventInfo=info2,this.lastMoveEventInfo=transformPoint(info2,this.transformPagePoint),frame.update(this.updatePoint,!0)},this.handlePointerUp=(event2,info2)=>{this.end();let{onEnd,onSessionEnd,resumeAnimation}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&resumeAnimation&&resumeAnimation(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let panInfo=getPanInfo(event2.type==="pointercancel"?this.lastMoveEventInfo:transformPoint(info2,this.transformPagePoint),this.history);this.startEvent&&onEnd&&onEnd(event2,panInfo),onSessionEnd&&onSessionEnd(event2,panInfo)},!isPrimaryPointer(event))return;this.dragSnapToOrigin=dragSnapToOrigin,this.handlers=handlers,this.transformPagePoint=transformPagePoint,this.distanceThreshold=distanceThreshold,this.contextWindow=contextWindow||window;let info=extractEventInfo(event),initialInfo=transformPoint(info,this.transformPagePoint),{point:point2}=initialInfo,{timestamp}=frameData;this.history=[{...point2,timestamp}];let{onSessionStart}=handlers;onSessionStart&&onSessionStart(event,getPanInfo(initialInfo,this.history));let eventOptions={passive:!0,capture:!0};this.removeListeners=pipe(addPointerEvent(this.contextWindow,"pointermove",this.handlePointerMove,eventOptions),addPointerEvent(this.contextWindow,"pointerup",this.handlePointerUp,eventOptions),addPointerEvent(this.contextWindow,"pointercancel",this.handlePointerUp,eventOptions)),element&&this.startScrollTracking(element)}startScrollTracking(element){let current2=element.parentElement;for(;current2;){let style2=getComputedStyle(current2);(overflowStyles.has(style2.overflowX)||overflowStyles.has(style2.overflowY))&&this.scrollPositions.set(current2,{x:current2.scrollLeft,y:current2.scrollTop}),current2=current2.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(target){let initial=this.scrollPositions.get(target);if(!initial)return;let isWindow=target===window,current2=isWindow?{x:window.scrollX,y:window.scrollY}:{x:target.scrollLeft,y:target.scrollTop},delta={x:current2.x-initial.x,y:current2.y-initial.y};delta.x===0&&delta.y===0||(isWindow?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=delta.x,this.lastMoveEventInfo.point.y+=delta.y):this.history.length>0&&(this.history[0].x-=delta.x,this.history[0].y-=delta.y),this.scrollPositions.set(target,current2),frame.update(this.updatePoint,!0))}updateHandlers(handlers){this.handlers=handlers}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),cancelFrame(this.updatePoint)}};function transformPoint(info,transformPagePoint){return transformPagePoint?{point:transformPagePoint(info.point)}:info}function subtractPoint(a,b){return{x:a.x-b.x,y:a.y-b.y}}function getPanInfo({point:point2},history){return{point:point2,delta:subtractPoint(point2,lastDevicePoint(history)),offset:subtractPoint(point2,startDevicePoint(history)),velocity:getVelocity(history,.1)}}function startDevicePoint(history){return history[0]}function lastDevicePoint(history){return history[history.length-1]}function getVelocity(history,timeDelta){if(history.length<2)return{x:0,y:0};let i=history.length-1,timestampedPoint=null,lastPoint=lastDevicePoint(history);for(;i>=0&&(timestampedPoint=history[i],!(lastPoint.timestamp-timestampedPoint.timestamp>secondsToMilliseconds(timeDelta)));)i--;if(!timestampedPoint)return{x:0,y:0};timestampedPoint===history[0]&&history.length>2&&lastPoint.timestamp-timestampedPoint.timestamp>secondsToMilliseconds(timeDelta)*2&&(timestampedPoint=history[1]);let time2=millisecondsToSeconds(lastPoint.timestamp-timestampedPoint.timestamp);if(time2===0)return{x:0,y:0};let currentVelocity={x:(lastPoint.x-timestampedPoint.x)/time2,y:(lastPoint.y-timestampedPoint.y)/time2};return currentVelocity.x===1/0&&(currentVelocity.x=0),currentVelocity.y===1/0&&(currentVelocity.y=0),currentVelocity}function applyConstraints(point2,{min,max},elastic){return min!==void 0&&point2<min?point2=elastic?mixNumber(min,point2,elastic.min):Math.max(point2,min):max!==void 0&&point2>max&&(point2=elastic?mixNumber(max,point2,elastic.max):Math.min(point2,max)),point2}function calcRelativeAxisConstraints(axis,min,max){return{min:min!==void 0?axis.min+min:void 0,max:max!==void 0?axis.max+max-(axis.max-axis.min):void 0}}function calcRelativeConstraints(layoutBox,{top,left,bottom,right}){return{x:calcRelativeAxisConstraints(layoutBox.x,left,right),y:calcRelativeAxisConstraints(layoutBox.y,top,bottom)}}function calcViewportAxisConstraints(layoutAxis,constraintsAxis){let min=constraintsAxis.min-layoutAxis.min,max=constraintsAxis.max-layoutAxis.max;return constraintsAxis.max-constraintsAxis.min<layoutAxis.max-layoutAxis.min&&([min,max]=[max,min]),{min,max}}function calcViewportConstraints(layoutBox,constraintsBox){return{x:calcViewportAxisConstraints(layoutBox.x,constraintsBox.x),y:calcViewportAxisConstraints(layoutBox.y,constraintsBox.y)}}function calcOrigin(source,target){let origin=.5,sourceLength=calcLength(source),targetLength=calcLength(target);return targetLength>sourceLength?origin=progress(target.min,target.max-sourceLength,source.min):sourceLength>targetLength&&(origin=progress(source.min,source.max-targetLength,target.min)),clamp(0,1,origin)}function rebaseAxisConstraints(layout2,constraints){let relativeConstraints={};return constraints.min!==void 0&&(relativeConstraints.min=constraints.min-layout2.min),constraints.max!==void 0&&(relativeConstraints.max=constraints.max-layout2.min),relativeConstraints}var defaultElastic=.35;function resolveDragElastic(dragElastic=defaultElastic){return dragElastic===!1?dragElastic=0:dragElastic===!0&&(dragElastic=defaultElastic),{x:resolveAxisElastic(dragElastic,"left","right"),y:resolveAxisElastic(dragElastic,"top","bottom")}}function resolveAxisElastic(dragElastic,minLabel,maxLabel){return{min:resolvePointElastic(dragElastic,minLabel),max:resolvePointElastic(dragElastic,maxLabel)}}function resolvePointElastic(dragElastic,label){return typeof dragElastic=="number"?dragElastic:dragElastic[label]||0}var elementDragControls=new WeakMap,VisualElementDragControls=class{constructor(visualElement){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=createBox(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=visualElement}start(originEvent,{snapToCursor=!1,distanceThreshold}={}){let{presenceContext}=this.visualElement;if(presenceContext&&presenceContext.isPresent===!1)return;let onSessionStart=event=>{snapToCursor&&this.snapToCursor(extractEventInfo(event).point),this.stopAnimation()},onStart=(event,info)=>{let{drag:drag2,dragPropagation,onDragStart}=this.getProps();if(drag2&&!dragPropagation&&(this.openDragLock&&this.openDragLock(),this.openDragLock=setDragLock(drag2),!this.openDragLock))return;this.latestPointerEvent=event,this.latestPanInfo=info,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),eachAxis(axis=>{let current2=this.getAxisMotionValue(axis).get()||0;if(percent.test(current2)){let{projection}=this.visualElement;if(projection&&projection.layout){let measuredAxis=projection.layout.layoutBox[axis];measuredAxis&&(current2=calcLength(measuredAxis)*(parseFloat(current2)/100))}}this.originPoint[axis]=current2}),onDragStart&&frame.update(()=>onDragStart(event,info),!1,!0),addValueToWillChange(this.visualElement,"transform");let{animationState}=this.visualElement;animationState&&animationState.setActive("whileDrag",!0)},onMove=(event,info)=>{this.latestPointerEvent=event,this.latestPanInfo=info;let{dragPropagation,dragDirectionLock,onDirectionLock,onDrag}=this.getProps();if(!dragPropagation&&!this.openDragLock)return;let{offset}=info;if(dragDirectionLock&&this.currentDirection===null){this.currentDirection=getCurrentDirection(offset),this.currentDirection!==null&&onDirectionLock&&onDirectionLock(this.currentDirection);return}this.updateAxis("x",info.point,offset),this.updateAxis("y",info.point,offset),this.visualElement.render(),onDrag&&frame.update(()=>onDrag(event,info),!1,!0)},onSessionEnd=(event,info)=>{this.latestPointerEvent=event,this.latestPanInfo=info,this.stop(event,info),this.latestPointerEvent=null,this.latestPanInfo=null},resumeAnimation=()=>{let{dragSnapToOrigin:snap}=this.getProps();(snap||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin}=this.getProps();this.panSession=new PanSession(originEvent,{onSessionStart,onStart,onMove,onSessionEnd,resumeAnimation},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin,distanceThreshold,contextWindow:getContextWindow(this.visualElement),element:this.visualElement.current})}stop(event,panInfo){let finalEvent=event||this.latestPointerEvent,finalPanInfo=panInfo||this.latestPanInfo,isDragging2=this.isDragging;if(this.cancel(),!isDragging2||!finalPanInfo||!finalEvent)return;let{velocity}=finalPanInfo;this.startAnimation(velocity);let{onDragEnd}=this.getProps();onDragEnd&&frame.postRender(()=>onDragEnd(finalEvent,finalPanInfo))}cancel(){this.isDragging=!1;let{projection,animationState}=this.visualElement;projection&&(projection.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation}=this.getProps();!dragPropagation&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),animationState&&animationState.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(axis,_point,offset){let{drag:drag2}=this.getProps();if(!offset||!shouldDrag(axis,drag2,this.currentDirection))return;let axisValue=this.getAxisMotionValue(axis),next2=this.originPoint[axis]+offset[axis];this.constraints&&this.constraints[axis]&&(next2=applyConstraints(next2,this.constraints[axis],this.elastic[axis])),axisValue.set(next2)}resolveConstraints(){let{dragConstraints,dragElastic}=this.getProps(),layout2=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,prevConstraints=this.constraints;dragConstraints&&isRefObject(dragConstraints)?this.constraints||(this.constraints=this.resolveRefConstraints()):dragConstraints&&layout2?this.constraints=calcRelativeConstraints(layout2.layoutBox,dragConstraints):this.constraints=!1,this.elastic=resolveDragElastic(dragElastic),prevConstraints!==this.constraints&&!isRefObject(dragConstraints)&&layout2&&this.constraints&&!this.hasMutatedConstraints&&eachAxis(axis=>{this.constraints!==!1&&this.getAxisMotionValue(axis)&&(this.constraints[axis]=rebaseAxisConstraints(layout2.layoutBox[axis],this.constraints[axis]))})}resolveRefConstraints(){let{dragConstraints:constraints,onMeasureDragConstraints}=this.getProps();if(!constraints||!isRefObject(constraints))return!1;let constraintsElement=constraints.current;invariant(constraintsElement!==null,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection}=this.visualElement;if(!projection||!projection.layout)return!1;projection.root&&(projection.root.scroll=void 0,projection.root.updateScroll());let constraintsBox=measurePageBox(constraintsElement,projection.root,this.visualElement.getTransformPagePoint()),measuredConstraints=calcViewportConstraints(projection.layout.layoutBox,constraintsBox);if(onMeasureDragConstraints){let userConstraints=onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));this.hasMutatedConstraints=!!userConstraints,userConstraints&&(measuredConstraints=convertBoundingBoxToBox(userConstraints))}return measuredConstraints}startAnimation(velocity){let{drag:drag2,dragMomentum,dragElastic,dragTransition,dragSnapToOrigin,onDragTransitionEnd}=this.getProps(),constraints=this.constraints||{},momentumAnimations=eachAxis(axis=>{if(!shouldDrag(axis,drag2,this.currentDirection))return;let transition=constraints&&constraints[axis]||{};(dragSnapToOrigin===!0||dragSnapToOrigin===axis)&&(transition={min:0,max:0});let bounceStiffness=dragElastic?200:1e6,bounceDamping=dragElastic?40:1e7,inertia2={type:"inertia",velocity:dragMomentum?velocity[axis]:0,bounceStiffness,bounceDamping,timeConstant:750,restDelta:1,restSpeed:10,...dragTransition,...transition};return this.startAxisValueAnimation(axis,inertia2)});return Promise.all(momentumAnimations).then(onDragTransitionEnd)}startAxisValueAnimation(axis,transition){let axisValue=this.getAxisMotionValue(axis);return addValueToWillChange(this.visualElement,axis),axisValue.start(animateMotionValue(axis,axisValue,0,transition,this.visualElement,!1))}stopAnimation(){eachAxis(axis=>this.getAxisMotionValue(axis).stop())}getAxisMotionValue(axis){let dragKey=`_drag${axis.toUpperCase()}`,externalMotionValue=this.visualElement.getProps()[dragKey];return externalMotionValue||this.visualElement.getValue(axis,this.visualElement.latestValues[axis]??0)}snapToCursor(point2){eachAxis(axis=>{let{drag:drag2}=this.getProps();if(!shouldDrag(axis,drag2,this.currentDirection))return;let{projection}=this.visualElement,axisValue=this.getAxisMotionValue(axis);if(projection&&projection.layout){let{min,max}=projection.layout.layoutBox[axis],current2=axisValue.get()||0;axisValue.set(point2[axis]-mixNumber(min,max,.5)+current2)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:drag2,dragConstraints}=this.getProps(),{projection}=this.visualElement;if(!isRefObject(dragConstraints)||!projection||!this.constraints)return;this.stopAnimation();let boxProgress={x:0,y:0};eachAxis(axis=>{let axisValue=this.getAxisMotionValue(axis);if(axisValue&&this.constraints!==!1){let latest=axisValue.get();boxProgress[axis]=calcOrigin({min:latest,max:latest},this.constraints[axis])}});let{transformTemplate}=this.visualElement.getProps();this.visualElement.current.style.transform=transformTemplate?transformTemplate({},""):"none",projection.root&&projection.root.updateScroll(),projection.updateLayout(),this.constraints=!1,this.resolveConstraints(),eachAxis(axis=>{if(!shouldDrag(axis,drag2,null))return;let axisValue=this.getAxisMotionValue(axis),{min,max}=this.constraints[axis];axisValue.set(mixNumber(min,max,boxProgress[axis]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;elementDragControls.set(this.visualElement,this);let element=this.visualElement.current,stopPointerListener=addPointerEvent(element,"pointerdown",event=>{let{drag:drag2,dragListener=!0}=this.getProps(),target=event.target,isClickingTextInputChild=target!==element&&isElementTextInput(target);drag2&&dragListener&&!isClickingTextInputChild&&this.start(event)}),stopResizeObservers,measureDragConstraints=()=>{let{dragConstraints}=this.getProps();isRefObject(dragConstraints)&&dragConstraints.current&&(this.constraints=this.resolveRefConstraints(),stopResizeObservers||(stopResizeObservers=startResizeObservers(element,dragConstraints.current,()=>this.scalePositionWithinConstraints())))},{projection}=this.visualElement,stopMeasureLayoutListener=projection.addEventListener("measure",measureDragConstraints);projection&&!projection.layout&&(projection.root&&projection.root.updateScroll(),projection.updateLayout()),frame.read(measureDragConstraints);let stopResizeListener=addDomEvent(window,"resize",()=>this.scalePositionWithinConstraints()),stopLayoutUpdateListener=projection.addEventListener("didUpdate",(({delta,hasLayoutChanged})=>{this.isDragging&&hasLayoutChanged&&(eachAxis(axis=>{let motionValue2=this.getAxisMotionValue(axis);motionValue2&&(this.originPoint[axis]+=delta[axis].translate,motionValue2.set(motionValue2.get()+delta[axis].translate))}),this.visualElement.render())}));return()=>{stopResizeListener(),stopPointerListener(),stopMeasureLayoutListener(),stopLayoutUpdateListener&&stopLayoutUpdateListener(),stopResizeObservers&&stopResizeObservers()}}getProps(){let props=this.visualElement.getProps(),{drag:drag2=!1,dragDirectionLock=!1,dragPropagation=!1,dragConstraints=!1,dragElastic=defaultElastic,dragMomentum=!0}=props;return{...props,drag:drag2,dragDirectionLock,dragPropagation,dragConstraints,dragElastic,dragMomentum}}};function skipFirstCall(callback){let isFirst=!0;return()=>{if(isFirst){isFirst=!1;return}callback()}}function startResizeObservers(element,constraintsElement,onResize){let stopElement=resize(element,skipFirstCall(onResize)),stopContainer=resize(constraintsElement,skipFirstCall(onResize));return()=>{stopElement(),stopContainer()}}function shouldDrag(direction,drag2,currentDirection){return(drag2===!0||drag2===direction)&&(currentDirection===null||currentDirection===direction)}function getCurrentDirection(offset,lockThreshold=10){let direction=null;return Math.abs(offset.y)>lockThreshold?direction="y":Math.abs(offset.x)>lockThreshold&&(direction="x"),direction}var DragGesture=class extends Feature{constructor(node){super(node),this.removeGroupControls=noop,this.removeListeners=noop,this.controls=new VisualElementDragControls(node)}mount(){let{dragControls}=this.node.getProps();dragControls&&(this.removeGroupControls=dragControls.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||noop}update(){let{dragControls}=this.node.getProps(),{dragControls:prevDragControls}=this.node.prevProps||{};dragControls!==prevDragControls&&(this.removeGroupControls(),dragControls&&(this.removeGroupControls=dragControls.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}};var asyncHandler=handler=>(event,info)=>{handler&&frame.update(()=>handler(event,info),!1,!0)},PanGesture=class extends Feature{constructor(){super(...arguments),this.removePointerDownListener=noop}onPointerDown(pointerDownEvent){this.session=new PanSession(pointerDownEvent,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:getContextWindow(this.node)})}createPanHandlers(){let{onPanSessionStart,onPanStart,onPan,onPanEnd}=this.node.getProps();return{onSessionStart:asyncHandler(onPanSessionStart),onStart:asyncHandler(onPanStart),onMove:asyncHandler(onPan),onEnd:(event,info)=>{delete this.session,onPanEnd&&frame.postRender(()=>onPanEnd(event,info))}}}mount(){this.removePointerDownListener=addPointerEvent(this.node.current,"pointerdown",event=>this.onPointerDown(event))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}};import{jsx as jsx8}from"react/jsx-runtime";import{useContext as useContext10,Component as Component2}from"react";var hasTakenAnySnapshot=!1,MeasureLayoutWithContext=class extends Component2{componentDidMount(){let{visualElement,layoutGroup,switchLayoutGroup,layoutId}=this.props,{projection}=visualElement;projection&&(layoutGroup.group&&layoutGroup.group.add(projection),switchLayoutGroup&&switchLayoutGroup.register&&layoutId&&switchLayoutGroup.register(projection),hasTakenAnySnapshot&&projection.root.didUpdate(),projection.addEventListener("animationComplete",()=>{this.safeToRemove()}),projection.setOptions({...projection.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),globalProjectionState.hasEverUpdated=!0}getSnapshotBeforeUpdate(prevProps){let{layoutDependency,visualElement,drag:drag2,isPresent:isPresent2}=this.props,{projection}=visualElement;return projection&&(projection.isPresent=isPresent2,prevProps.layoutDependency!==layoutDependency&&projection.setOptions({...projection.options,layoutDependency}),hasTakenAnySnapshot=!0,drag2||prevProps.layoutDependency!==layoutDependency||layoutDependency===void 0||prevProps.isPresent!==isPresent2?projection.willUpdate():this.safeToRemove(),prevProps.isPresent!==isPresent2&&(isPresent2?projection.promote():projection.relegate()||frame.postRender(()=>{let stack=projection.getStack();(!stack||!stack.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){let{visualElement,layoutAnchor}=this.props,{projection}=visualElement;projection&&(projection.options.layoutAnchor=layoutAnchor,projection.root.didUpdate(),microtask.postRender(()=>{!projection.currentAnimation&&projection.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement,layoutGroup,switchLayoutGroup:promoteContext}=this.props,{projection}=visualElement;hasTakenAnySnapshot=!0,projection&&(projection.scheduleCheckAfterUnmount(),layoutGroup&&layoutGroup.group&&layoutGroup.group.remove(projection),promoteContext&&promoteContext.deregister&&promoteContext.deregister(projection))}safeToRemove(){let{safeToRemove}=this.props;safeToRemove&&safeToRemove()}render(){return null}};function MeasureLayout(props){let[isPresent2,safeToRemove]=usePresence(),layoutGroup=useContext10(LayoutGroupContext);return jsx8(MeasureLayoutWithContext,{...props,layoutGroup,switchLayoutGroup:useContext10(SwitchLayoutGroupContext),isPresent:isPresent2,safeToRemove})}var drag={pan:{Feature:PanGesture},drag:{Feature:DragGesture,ProjectionNode:HTMLProjectionNode,MeasureLayout}};function handleHoverEvent(node,event,lifecycle){let{props}=node;node.animationState&&props.whileHover&&node.animationState.setActive("whileHover",lifecycle==="Start");let eventName="onHover"+lifecycle,callback=props[eventName];callback&&frame.postRender(()=>callback(event,extractEventInfo(event)))}var HoverGesture=class extends Feature{mount(){let{current:current2}=this.node;current2&&(this.unmount=hover(current2,(_element,startEvent)=>(handleHoverEvent(this.node,startEvent,"Start"),endEvent=>handleHoverEvent(this.node,endEvent,"End"))))}unmount(){}};var FocusGesture=class extends Feature{constructor(){super(...arguments),this.isActive=!1}onFocus(){let isFocusVisible=!1;try{isFocusVisible=this.node.current.matches(":focus-visible")}catch{isFocusVisible=!0}!isFocusVisible||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=pipe(addDomEvent(this.node.current,"focus",()=>this.onFocus()),addDomEvent(this.node.current,"blur",()=>this.onBlur()))}unmount(){}};function handlePressEvent(node,event,lifecycle){let{props}=node;if(node.current instanceof HTMLButtonElement&&node.current.disabled)return;node.animationState&&props.whileTap&&node.animationState.setActive("whileTap",lifecycle==="Start");let eventName="onTap"+(lifecycle==="End"?"":lifecycle),callback=props[eventName];callback&&frame.postRender(()=>callback(event,extractEventInfo(event)))}var PressGesture=class extends Feature{mount(){let{current:current2}=this.node;if(!current2)return;let{globalTapTarget,propagate}=this.node.props;this.unmount=press(current2,(_element,startEvent)=>(handlePressEvent(this.node,startEvent,"Start"),(endEvent,{success})=>handlePressEvent(this.node,endEvent,success?"End":"Cancel")),{useGlobalTarget:globalTapTarget,stopPropagation:propagate?.tap===!1})}unmount(){}};var observerCallbacks=new WeakMap,observers=new WeakMap,fireObserverCallback=entry=>{let callback=observerCallbacks.get(entry.target);callback&&callback(entry)},fireAllObserverCallbacks=entries=>{entries.forEach(fireObserverCallback)};function initIntersectionObserver({root,...options}){let lookupRoot=root||document;observers.has(lookupRoot)||observers.set(lookupRoot,{});let rootObservers=observers.get(lookupRoot),key=JSON.stringify(options);return rootObservers[key]||(rootObservers[key]=new IntersectionObserver(fireAllObserverCallbacks,{root,...options})),rootObservers[key]}function observeIntersection(element,options,callback){let rootInteresectionObserver=initIntersectionObserver(options);return observerCallbacks.set(element,callback),rootInteresectionObserver.observe(element),()=>{observerCallbacks.delete(element),rootInteresectionObserver.unobserve(element)}}var thresholdNames={some:0,all:1},InViewFeature=class extends Feature{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();let{viewport={}}=this.node.getProps(),{root,margin:rootMargin,amount="some",once}=viewport,options={root:root?root.current:void 0,rootMargin,threshold:typeof amount=="number"?amount:thresholdNames[amount]},onIntersectionUpdate=entry=>{let{isIntersecting}=entry;if(this.isInView===isIntersecting||(this.isInView=isIntersecting,once&&!isIntersecting&&this.hasEnteredView))return;isIntersecting&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",isIntersecting);let{onViewportEnter,onViewportLeave}=this.node.getProps(),callback=isIntersecting?onViewportEnter:onViewportLeave;callback&&callback(entry)};this.stopObserver=observeIntersection(this.node.current,options,onIntersectionUpdate)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;let{props,prevProps}=this.node;["amount","margin","root"].some(hasViewportOptionChanged(props,prevProps))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}};function hasViewportOptionChanged({viewport={}},{viewport:prevViewport={}}={}){return name=>viewport[name]!==prevViewport[name]}var gestureAnimations={inView:{Feature:InViewFeature},tap:{Feature:PressGesture},focus:{Feature:FocusGesture},hover:{Feature:HoverGesture}};var layout={layout:{ProjectionNode:HTMLProjectionNode,MeasureLayout}};var featureBundle={...animations,...gestureAnimations,...drag,...layout};var motion=createMotionProxy(featureBundle,createDomVisualElement);import{useEffect as useEffect6}from"react";function useUnmountEffect(callback){return useEffect6(()=>()=>callback(),[])}var domAnimation={renderer:createDomVisualElement,...animations,...gestureAnimations};var domMax={...domAnimation,...drag,...layout};var domMin={renderer:createDomVisualElement,...animations};import{useInsertionEffect as useInsertionEffect4}from"react";function useMotionValueEvent(value,event,callback){useInsertionEffect4(()=>value.on(event,callback),[value,event,callback])}import{useRef as useRef10,useCallback as useCallback5,useEffect as useEffect7}from"react";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 createScrollMotionValues=()=>({scrollX:motionValue(0),scrollY:motionValue(0),scrollXProgress:motionValue(0),scrollYProgress:motionValue(0)}),isRefPending=ref=>ref?!ref.current:!1;function makeAccelerateConfig(axis,options,container,target){return{factory:animation=>{let cleanup,start2=()=>{if(isRefPending(container)||isRefPending(target)){microtask.read(start2);return}cleanup=scroll(animation,{...options,axis,container:container?.current||void 0,target:target?.current||void 0})};return microtask.read(start2),()=>{cancelMicrotask(start2),cleanup?.()}},times:[0,1],keyframes:[0,1],ease:v=>v,duration:1}}function canAccelerateScroll(target,offset){return typeof window>"u"?!1:target?supportsViewTimeline()&&!!offsetToViewTimelineRange(offset):supportsScrollTimeline()}function useScroll({container,target,...options}={}){let values=useConstant(createScrollMotionValues);canAccelerateScroll(target,options.offset)&&(values.scrollXProgress.accelerate=makeAccelerateConfig("x",options,container,target),values.scrollYProgress.accelerate=makeAccelerateConfig("y",options,container,target));let scrollAnimation=useRef10(null),needsStart=useRef10(!1),start2=useCallback5(()=>(scrollAnimation.current=scroll((_progress,{x,y})=>{values.scrollX.set(x.current),values.scrollXProgress.set(x.progress),values.scrollY.set(y.current),values.scrollYProgress.set(y.progress)},{...options,container:container?.current||void 0,target:target?.current||void 0}),()=>{scrollAnimation.current?.()}),[container,target,JSON.stringify(options.offset)]);return useIsomorphicLayoutEffect(()=>{if(needsStart.current=!1,isRefPending(container)||isRefPending(target)){needsStart.current=!0;return}else return start2()},[start2]),useEffect7(()=>{if(!needsStart.current)return;let cleanup,tryStart=()=>{let containerPending=isRefPending(container),targetPending=isRefPending(target);invariant(!containerPending,"Container ref is defined but not hydrated","use-scroll-ref"),invariant(!targetPending,"Target ref is defined but not hydrated","use-scroll-ref"),!containerPending&&!targetPending&&(cleanup=start2())};return microtask.read(tryStart),()=>{cancelMicrotask(tryStart),cleanup?.()}},[start2]),values}function useElementScroll(ref){return useScroll({container:ref})}function useViewportScroll(){return useScroll()}import{useContext as useContext11,useState as useState4,useEffect as useEffect8}from"react";function useMotionValue(initial){let value=useConstant(()=>motionValue(initial)),{isStatic}=useContext11(MotionConfigContext);if(isStatic){let[,setLatest]=useState4(initial);useEffect8(()=>value.on("change",setLatest),[])}return value}function useCombineMotionValues(values,combineValues){let value=useMotionValue(combineValues()),updateValue=()=>value.set(combineValues());return updateValue(),useIsomorphicLayoutEffect(()=>{let scheduleUpdate=()=>frame.preRender(updateValue,!1,!0),subscriptions=values.map(v=>v.on("change",scheduleUpdate));return()=>{subscriptions.forEach(unsubscribe=>unsubscribe()),cancelFrame(updateValue)}}),value}function useMotionTemplate(fragments,...values){let numFragments=fragments.length;function buildValue(){let output="";for(let i=0;i<numFragments;i++){output+=fragments[i];let value=values[i];value&&(output+=isMotionValue(value)?value.get():value)}return output}return useCombineMotionValues(values.filter(isMotionValue),buildValue)}import{useContext as useContext12,useInsertionEffect as useInsertionEffect5}from"react";function useComputed(compute){collectMotionValues.current=[],compute();let value=useCombineMotionValues(collectMotionValues.current,compute);return collectMotionValues.current=void 0,value}function useTransform(input,inputRangeOrTransformer,outputRangeOrMap,options){if(typeof input=="function")return useComputed(input);if(outputRangeOrMap!==void 0&&!Array.isArray(outputRangeOrMap)&&typeof inputRangeOrTransformer!="function")return useMapTransform(input,inputRangeOrTransformer,outputRangeOrMap,options);let transformer=typeof inputRangeOrTransformer=="function"?inputRangeOrTransformer:transform(inputRangeOrTransformer,outputRangeOrMap,options),result=Array.isArray(input)?useListTransform(input,transformer):useListTransform([input],([latest])=>transformer(latest)),inputAccelerate=Array.isArray(input)?void 0:input.accelerate;return inputAccelerate&&!inputAccelerate.isTransformed&&typeof inputRangeOrTransformer!="function"&&Array.isArray(outputRangeOrMap)&&options?.clamp!==!1&&(result.accelerate={...inputAccelerate,times:inputRangeOrTransformer,keyframes:outputRangeOrMap,isTransformed:!0,...options?.ease?{ease:options.ease}:{}}),result}function useListTransform(values,transformer){let latest=useConstant(()=>[]);return useCombineMotionValues(values,()=>{latest.length=0;let numValues=values.length;for(let i=0;i<numValues;i++)latest[i]=values[i].get();return transformer(latest)})}function useMapTransform(inputValue,inputRange,outputMap,options){let keys2=useConstant(()=>Object.keys(outputMap)),output=useConstant(()=>({}));for(let key of keys2)output[key]=useTransform(inputValue,inputRange,outputMap[key],options);return output}function useFollowValue(source,options={}){let{isStatic}=useContext12(MotionConfigContext),getFromSource=()=>isMotionValue(source)?source.get():source;if(isStatic)return useTransform(getFromSource);let value=useMotionValue(getFromSource());return useInsertionEffect5(()=>attachFollow(value,source,options),[value,JSON.stringify(options)]),value}function useSpring(source,options={}){return useFollowValue(source,{type:"spring",...options})}import{useRef as useRef11,useContext as useContext13,useEffect as useEffect9}from"react";function useAnimationFrame(callback){let initialTimestamp=useRef11(0),{isStatic}=useContext13(MotionConfigContext);useEffect9(()=>{if(isStatic)return;let provideTimeSinceStart=({timestamp,delta})=>{initialTimestamp.current||(initialTimestamp.current=timestamp),callback(timestamp-initialTimestamp.current,delta)};return frame.update(provideTimeSinceStart,!0),()=>cancelFrame(provideTimeSinceStart)},[callback])}function useTime(){let time2=useMotionValue(0);return useAnimationFrame(t=>time2.set(t)),time2}function useVelocity(value){let velocity=useMotionValue(value.getVelocity()),updateVelocity=()=>{let latest=value.getVelocity();velocity.set(latest),latest&&frame.update(updateVelocity)};return useMotionValueEvent(value,"change",()=>{frame.update(updateVelocity,!1,!0)}),velocity}var WillChangeMotionValue=class extends MotionValue{constructor(){super(...arguments),this.isEnabled=!1}add(name){(transformProps.has(name)||acceleratedValues.has(name))&&(this.isEnabled=!0,this.update())}update(){this.set(this.isEnabled?"transform":"auto")}};function useWillChange(){return useConstant(()=>new WillChangeMotionValue("auto"))}import{useState as useState5}from"react";function useReducedMotion(){!hasReducedMotionListener.current&&initPrefersReducedMotion();let[shouldReduceMotion]=useState5(prefersReducedMotion.current);return shouldReduceMotion}import{useContext as useContext14}from"react";function useReducedMotionConfig(){let reducedMotionPreference=useReducedMotion(),{reducedMotion}=useContext14(MotionConfigContext);return reducedMotion==="never"?!1:reducedMotion==="always"?!0:reducedMotionPreference}function stopAnimation(visualElement){visualElement.values.forEach(value=>value.stop())}function setVariants(visualElement,variantLabels){[...variantLabels].reverse().forEach(key=>{let variant=visualElement.getVariant(key);variant&&setTarget(visualElement,variant),visualElement.variantChildren&&visualElement.variantChildren.forEach(child=>{setVariants(child,variantLabels)})})}function setValues(visualElement,definition){if(Array.isArray(definition))return setVariants(visualElement,definition);if(typeof definition=="string")return setVariants(visualElement,[definition]);setTarget(visualElement,definition)}function animationControls(){let hasMounted=!1,subscribers=new Set,controls={subscribe(visualElement){return subscribers.add(visualElement),()=>{subscribers.delete(visualElement)}},start(definition,transitionOverride){invariant(hasMounted,"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.");let animations2=[];return subscribers.forEach(visualElement=>{animations2.push(animateVisualElement(visualElement,definition,{transitionOverride}))}),Promise.all(animations2)},set(definition){return invariant(hasMounted,"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook."),subscribers.forEach(visualElement=>{setValues(visualElement,definition)})},stop(){subscribers.forEach(visualElement=>{stopAnimation(visualElement)})},mount(){return hasMounted=!0,()=>{hasMounted=!1,controls.stop()}}};return controls}import{useContext as useContext15,useMemo as useMemo9}from"react";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 animations2=[];if(isSingleValue(subject,keyframes2))animations2.push(animateSingleValue(subject,isDOMKeyframes(keyframes2)&&keyframes2.default||keyframes2,options&&(options.default||options)));else{if(subject==null)return animations2;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)),animations2.push(...animateTarget(visualElement,{...keyframes2,transition},{}))}}return animations2}function animateSequence(sequence,options,scope){let animations2=[],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)=>{animations2.push(...animateSubject(subject,keyframes2,transition))}),animations2}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 animations2=[],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),animations2=animateSequence(subjectOrSequence,{...inherited,...sequenceOptions},scope)}else{let{onComplete,...rest}=options2||{};typeof onComplete=="function"&&(animationOnComplete=onComplete),animations2=animateSubject(subjectOrSequence,optionsOrKeyframes,{...inherited,...rest},scope)}let animation=new GroupAnimationWithThen(animations2);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 useAnimate(){let scope=useConstant(()=>({current:null,animations:[]})),reduceMotion=useReducedMotionConfig()??void 0,{skipAnimations}=useContext15(MotionConfigContext),animate2=useMemo9(()=>createScopedAnimate({scope,reduceMotion,skipAnimations}),[scope,reduceMotion,skipAnimations]);return useUnmountEffect(()=>{scope.animations.forEach(animation=>animation.stop()),scope.animations.length=0}),[scope,animate2]}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 animations2=[];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)),animations2.push(animation)}return animations2}var createScopedWaapiAnimate=scope=>{function scopedAnimate(elementOrSelector,keyframes2,options){return new GroupAnimationWithThen(animateElements(elementOrSelector,keyframes2,options,scope))}return scopedAnimate},animateMini=createScopedWaapiAnimate();function useAnimateMini(){let scope=useConstant(()=>({current:null,animations:[]})),animate2=useConstant(()=>createScopedWaapiAnimate(scope));return useUnmountEffect(()=>{scope.animations.forEach(animation=>animation.stop())}),[scope,animate2]}function useAnimationControls(){let controls=useConstant(animationControls);return useIsomorphicLayoutEffect(controls.mount,[]),controls}var useAnimation=useAnimationControls;import{useContext as useContext16}from"react";function usePresenceData(){let context=useContext16(PresenceContext);return context?context.custom:void 0}import{useEffect as useEffect10}from"react";function useDomEvent(ref,eventName,handler,options){useEffect10(()=>{let element=ref.current;if(handler&&element)return addDomEvent(element,eventName,handler,options)},[ref,eventName,handler,options])}var DragControls=class{constructor(){this.componentControls=new Set}subscribe(controls){return this.componentControls.add(controls),()=>this.componentControls.delete(controls)}start(event,options){this.componentControls.forEach(controls=>{controls.start(event.nativeEvent||event,options)})}cancel(){this.componentControls.forEach(controls=>{controls.cancel()})}stop(){this.componentControls.forEach(controls=>{controls.stop()})}},createDragControls=()=>new DragControls;function useDragControls(){return useConstant(createDragControls)}function isMotionComponent(component){return component!==null&&typeof component=="object"&&motionComponentSymbol in component}function unwrapMotionComponent(component){if(isMotionComponent(component))return component[motionComponentSymbol]}function useInstantLayoutTransition(){return startTransition}function startTransition(callback){rootProjectionNode.current&&(rootProjectionNode.current.isUpdating=!1,rootProjectionNode.current.blockUpdate(),callback&&callback())}import{useCallback as useCallback6}from"react";function useResetProjection(){return useCallback6(()=>{let root=rootProjectionNode.current;root&&root.resetTree()},[])}import{useRef as useRef12,useState as useState6,useCallback as useCallback7}from"react";function useCycle(...items){let index=useRef12(0),[item,setItem]=useState6(items[index.current]),runCycle=useCallback7(next2=>{index.current=typeof next2!="number"?wrap(0,items.length,index.current+1):next2,setItem(items[index.current])},[items.length,...items]);return[item,runCycle]}import{useState as useState7,useEffect as useEffect11}from"react";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()}function useInView(ref,{root,margin,amount,once=!1,initial=!1}={}){let[isInView,setInView]=useState7(initial);return useEffect11(()=>{if(!ref.current||once&&isInView)return;let onEnter=()=>(setInView(!0),once?void 0:()=>setInView(!1)),options={root:root&&root.current||void 0,margin,amount};return inView(ref.current,onEnter,options)},[root,ref,margin,once,amount]),isInView}import{useRef as useRef13,useEffect as useEffect12}from"react";function useInstantTransition(){let[forceUpdate,forcedRenderCount]=useForceUpdate(),startInstantLayoutTransition=useInstantLayoutTransition(),unlockOnFrameRef=useRef13(-1);return useEffect12(()=>{frame.postRender(()=>frame.postRender(()=>{forcedRenderCount===unlockOnFrameRef.current&&(MotionGlobalConfig.instantAnimations=!1)}))},[forcedRenderCount]),callback=>{startInstantLayoutTransition(()=>{MotionGlobalConfig.instantAnimations=!0,forceUpdate(),callback(),unlockOnFrameRef.current=forcedRenderCount+1})}}function disableInstantTransitions(){MotionGlobalConfig.instantAnimations=!1}import{useState as useState8,useEffect as useEffect13}from"react";function usePageInView(){let[isInView,setIsInView]=useState8(!0);return useEffect13(()=>{let handleVisibilityChange=()=>setIsInView(!document.hidden);return document.hidden&&handleVisibilityChange(),document.addEventListener("visibilitychange",handleVisibilityChange),()=>{document.removeEventListener("visibilitychange",handleVisibilityChange)}},[]),isInView}function transformViewBoxPoint(svgRef){return point2=>{let svg=svgRef.current;if(!svg)return point2;let viewBox=svg.viewBox?.baseVal;if(!viewBox||viewBox.width===0&&viewBox.height===0)return point2;let bbox=svg.getBoundingClientRect();if(bbox.width===0||bbox.height===0)return point2;let scaleX2=viewBox.width/bbox.width,scaleY2=viewBox.height/bbox.height,svgX=bbox.left+window.scrollX,svgY=bbox.top+window.scrollY;return{x:(point2.x-svgX)*scaleX2+svgX,y:(point2.y-svgY)*scaleY2+svgY}}}function correctParentTransform(parentRef){return point2=>{let parent=parentRef.current;if(!parent)return point2;let inv=getInverseMatrix(parent);if(!inv)return point2;let rect=parent.getBoundingClientRect(),cx=rect.left+window.scrollX+rect.width/2,cy=rect.top+window.scrollY+rect.height/2,dx=point2.x-cx,dy=point2.y-cy;return{x:cx+inv.a*dx+inv.c*dy,y:cy+inv.b*dx+inv.d*dy}}}function getInverseMatrix(element){let{transform:transform2}=getComputedStyle(element);if(!transform2||transform2==="none")return null;let match=transform2.match(/^matrix3d\((.*)\)$/u)||transform2.match(/^matrix\((.*)\)$/u);if(!match)return null;let v=match[1].split(",").map(Number),is3d=transform2.startsWith("matrix3d"),a=v[0],b=v[1],c=is3d?v[4]:v[2],d=is3d?v[5]:v[3],det=a*d-b*c;return Math.abs(det)<1e-10?null:{a:d/det,b:-b/det,c:-c/det,d:a/det}}var appearAnimationStore=new Map,appearComplete=new Map;var appearStoreId=(elementId,valueName)=>{let key=transformProps.has(valueName)?"transform":valueName;return`${elementId}: ${key}`};function handoffOptimizedAppearAnimation(elementId,valueName,frame2){let storeId=appearStoreId(elementId,valueName),optimisedAnimation=appearAnimationStore.get(storeId);if(!optimisedAnimation)return null;let{animation,startTime}=optimisedAnimation;function cancelAnimation(){window.MotionCancelOptimisedAnimation?.(elementId,valueName,frame2)}return animation.onfinish=cancelAnimation,startTime===null||window.MotionHandoffIsComplete?.(elementId)?(cancelAnimation(),null):startTime}var startFrameTime,readyAnimation,suspendedAnimations=new Set;function resumeSuspendedAnimations(){suspendedAnimations.forEach(data=>{data.animation.play(),data.animation.startTime=data.startTime}),suspendedAnimations.clear()}function startOptimizedAppearAnimation(element,name,keyframes2,options,onReady){if(window.MotionIsMounted)return;let id4=element.dataset[optimizedAppearDataId];if(!id4)return;window.MotionHandoffAnimation=handoffOptimizedAppearAnimation;let storeId=appearStoreId(id4,name);readyAnimation||(readyAnimation=startWaapiAnimation(element,name,[keyframes2[0],keyframes2[0]],{duration:1e4,ease:"linear"}),appearAnimationStore.set(storeId,{animation:readyAnimation,startTime:null}),window.MotionHandoffAnimation=handoffOptimizedAppearAnimation,window.MotionHasOptimisedAnimation=(elementId,valueName)=>{if(!elementId)return!1;if(!valueName)return appearComplete.has(elementId);let animationId=appearStoreId(elementId,valueName);return!!appearAnimationStore.get(animationId)},window.MotionHandoffMarkAsComplete=elementId=>{appearComplete.has(elementId)&&appearComplete.set(elementId,!0)},window.MotionHandoffIsComplete=elementId=>appearComplete.get(elementId)===!0,window.MotionCancelOptimisedAnimation=(elementId,valueName,frame2,canResume)=>{let animationId=appearStoreId(elementId,valueName),data=appearAnimationStore.get(animationId);data&&(frame2&&canResume===void 0?frame2.postRender(()=>{frame2.postRender(()=>{data.animation.cancel()})}):data.animation.cancel(),frame2&&canResume?(suspendedAnimations.add(data),frame2.render(resumeSuspendedAnimations)):(appearAnimationStore.delete(animationId),appearAnimationStore.size||(window.MotionCancelOptimisedAnimation=void 0)))},window.MotionCheckAppearSync=(visualElement,valueName,value)=>{let appearId=getOptimisedAppearId(visualElement);if(!appearId)return;let valueIsOptimised=window.MotionHasOptimisedAnimation?.(appearId,valueName),externalAnimationValue=visualElement.props.values?.[valueName];if(!valueIsOptimised||!externalAnimationValue)return;let removeSyncCheck=value.on("change",latestValue=>{externalAnimationValue.get()!==latestValue&&(window.MotionCancelOptimisedAnimation?.(appearId,valueName),removeSyncCheck())});return removeSyncCheck});let startAnimation=()=>{readyAnimation.cancel();let appearAnimation=startWaapiAnimation(element,name,keyframes2,options);startFrameTime===void 0&&(startFrameTime=performance.now()),appearAnimation.startTime=startFrameTime,appearAnimationStore.set(storeId,{animation:appearAnimation,startTime:startFrameTime}),onReady&&onReady(appearAnimation)};appearComplete.set(id4,!1),readyAnimation.ready?readyAnimation.ready.then(startAnimation).catch(noop):startAnimation()}import{useState as useState9,useLayoutEffect as useLayoutEffect2}from"react";var createObject=()=>({}),StateVisualElement=class extends VisualElement{constructor(){super(...arguments),this.measureInstanceViewportBox=createBox}build(){}resetTransform(){}restoreTransform(){}removeValueFromRenderState(){}renderInstance(){}scrapeMotionValuesFromProps(){return createObject()}getBaseTargetFromProps(){}readValueFromInstance(_state,key,options){return options.initialState[key]||0}sortInstanceNodePosition(){return 0}},useVisualState=makeUseVisualState({scrapeMotionValuesFromProps:createObject,createRenderState:createObject});function useAnimatedState(initialState){let[animationState,setAnimationState]=useState9(initialState),visualState=useVisualState({},!1),element=useConstant(()=>new StateVisualElement({props:{onUpdate:v=>{setAnimationState({...v})}},visualState,presenceContext:null},{initialState}));useLayoutEffect2(()=>(element.mount({}),()=>element.unmount()),[element]);let startAnimation=useConstant(()=>animationDefinition=>animateVisualElement(element,animationDefinition));return[animationState,startAnimation]}import{jsx as jsx9}from"react/jsx-runtime";import*as React4 from"react";var id3=0,AnimateSharedLayout=({children})=>(React4.useEffect(()=>{invariant(!1,"AnimateSharedLayout is deprecated: https://www.framer.com/docs/guide-upgrade/##shared-layout-animations")},[]),jsx9(LayoutGroup,{id:useConstant(()=>`asl-${id3++}`),children}));import{useContext as useContext17}from"react";var maxScale=1e5,invertScale=scale2=>scale2>.001?1/scale2:maxScale,hasWarned2=!1;function useInvertedScale(scale2){let parentScaleX=useMotionValue(1),parentScaleY=useMotionValue(1),{visualElement}=useContext17(MotionContext);invariant(!!(scale2||visualElement),"If no scale values are provided, useInvertedScale must be used within a child of another motion component."),warning(hasWarned2,"useInvertedScale is deprecated and will be removed in 3.0. Use the layout prop instead."),hasWarned2=!0,scale2?(parentScaleX=scale2.scaleX||parentScaleX,parentScaleY=scale2.scaleY||parentScaleY):visualElement&&(parentScaleX=visualElement.getValue("scaleX",1),parentScaleY=visualElement.getValue("scaleY",1));let scaleX2=useTransform(parentScaleX,invertScale),scaleY2=useTransform(parentScaleY,invertScale);return{scaleX:scaleX2,scaleY:scaleY2}}var namespace_exports={};__export(namespace_exports,{Group:()=>ReorderGroup,Item:()=>ReorderItem});import{jsx as jsx10}from"react/jsx-runtime";import{forwardRef as forwardRef2,useRef as useRef14,useEffect as useEffect15}from"react";import{createContext as createContext8}from"react";var ReorderContext=createContext8(null);function checkReorder(order,value,offset,velocity){if(!velocity)return order;let index=order.findIndex(item2=>item2.value===value);if(index===-1)return order;let nextOffset=velocity>0?1:-1,nextItem=order[index+nextOffset];if(!nextItem)return order;let item=order[index],nextLayout=nextItem.layout,nextItemCenter=mixNumber(nextLayout.min,nextLayout.max,.5);return nextOffset===1&&item.layout.max+offset>nextItemCenter||nextOffset===-1&&item.layout.min+offset<nextItemCenter?moveItem(order,index,index+nextOffset):order}function ReorderGroupComponent({children,as="ul",axis="y",onReorder,values,...props},externalRef){let Component3=useConstant(()=>motion[as]),order=[],isReordering=useRef14(!1),groupRef=useRef14(null);invariant(!!values,"Reorder.Group must be provided a values prop","reorder-values");let context={axis,groupRef,registerItem:(value,layout2)=>{let idx=order.findIndex(entry=>value===entry.value);idx!==-1?order[idx].layout=layout2[axis]:order.push({value,layout:layout2[axis]}),order.sort(compareMin)},updateOrder:(item,offset,velocity)=>{if(isReordering.current)return;let newOrder=checkReorder(order,item,offset,velocity);if(order!==newOrder){isReordering.current=!0;let newValues=[...values];for(let i=0;i<newOrder.length;i++)if(order[i].value!==newOrder[i].value){let a=values.indexOf(order[i].value),b=values.indexOf(newOrder[i].value);a!==-1&&b!==-1&&([newValues[a],newValues[b]]=[newValues[b],newValues[a]]);break}onReorder(newValues)}}};useEffect15(()=>{isReordering.current=!1});let setRef2=element=>{groupRef.current=element,typeof externalRef=="function"?externalRef(element):externalRef&&(externalRef.current=element)},groupStyle={overflowAnchor:"none",...props.style};return jsx10(Component3,{...props,style:groupStyle,ref:setRef2,ignoreStrict:!0,children:jsx10(ReorderContext.Provider,{value:context,children})})}var ReorderGroup=forwardRef2(ReorderGroupComponent);function compareMin(a,b){return a.layout.min-b.layout.min}import{jsx as jsx11}from"react/jsx-runtime";import{forwardRef as forwardRef3,useContext as useContext18}from"react";var overflowStyles2=new Set(["auto","scroll"]),initialScrollLimits=new WeakMap,activeScrollEdge=new WeakMap,currentGroupElement=null;function resetAutoScrollState(){if(currentGroupElement){let scrollableAncestor=findScrollableAncestor(currentGroupElement,"y");scrollableAncestor&&(activeScrollEdge.delete(scrollableAncestor),initialScrollLimits.delete(scrollableAncestor));let scrollableAncestorX=findScrollableAncestor(currentGroupElement,"x");scrollableAncestorX&&scrollableAncestorX!==scrollableAncestor&&(activeScrollEdge.delete(scrollableAncestorX),initialScrollLimits.delete(scrollableAncestorX)),currentGroupElement=null}}function isScrollableElement(element,axis){let style2=getComputedStyle(element),overflow=axis==="x"?style2.overflowX:style2.overflowY,isDocumentScroll=element===document.body||element===document.documentElement;return overflowStyles2.has(overflow)||isDocumentScroll}function findScrollableAncestor(element,axis){let current2=element?.parentElement;for(;current2;){if(isScrollableElement(current2,axis))return current2;current2=current2.parentElement}return null}function getScrollAmount(pointerPosition,scrollElement,axis){let rect=scrollElement.getBoundingClientRect(),start2=axis==="x"?Math.max(0,rect.left):Math.max(0,rect.top),end=axis==="x"?Math.min(window.innerWidth,rect.right):Math.min(window.innerHeight,rect.bottom),distanceFromStart=pointerPosition-start2,distanceFromEnd=end-pointerPosition;if(distanceFromStart<50){let intensity=1-distanceFromStart/50;return{amount:-25*intensity*intensity,edge:"start"}}else if(distanceFromEnd<50){let intensity=1-distanceFromEnd/50;return{amount:25*intensity*intensity,edge:"end"}}return{amount:0,edge:null}}function autoScrollIfNeeded(groupElement,pointerPosition,axis,velocity){if(!groupElement)return;currentGroupElement=groupElement;let scrollableAncestor=findScrollableAncestor(groupElement,axis);if(!scrollableAncestor)return;let viewportPointerPosition=pointerPosition-(axis==="x"?window.scrollX:window.scrollY),{amount:scrollAmount,edge}=getScrollAmount(viewportPointerPosition,scrollableAncestor,axis);if(edge===null){activeScrollEdge.delete(scrollableAncestor),initialScrollLimits.delete(scrollableAncestor);return}let currentActiveEdge=activeScrollEdge.get(scrollableAncestor),isDocumentScroll=scrollableAncestor===document.body||scrollableAncestor===document.documentElement;if(currentActiveEdge!==edge){if(!(edge==="start"&&velocity<0||edge==="end"&&velocity>0))return;activeScrollEdge.set(scrollableAncestor,edge);let maxScroll=axis==="x"?scrollableAncestor.scrollWidth-(isDocumentScroll?window.innerWidth:scrollableAncestor.clientWidth):scrollableAncestor.scrollHeight-(isDocumentScroll?window.innerHeight:scrollableAncestor.clientHeight);initialScrollLimits.set(scrollableAncestor,maxScroll)}if(scrollAmount>0){let initialLimit=initialScrollLimits.get(scrollableAncestor);if((axis==="x"?isDocumentScroll?window.scrollX:scrollableAncestor.scrollLeft:isDocumentScroll?window.scrollY:scrollableAncestor.scrollTop)>=initialLimit)return}axis==="x"?isDocumentScroll?window.scrollBy({left:scrollAmount}):scrollableAncestor.scrollLeft+=scrollAmount:isDocumentScroll?window.scrollBy({top:scrollAmount}):scrollableAncestor.scrollTop+=scrollAmount}function useDefaultMotionValue(value,defaultValue=0){return isMotionValue(value)?value:useMotionValue(defaultValue)}function ReorderItemComponent({children,style:style2={},value,as="li",onDrag,onDragEnd,layout:layout2=!0,...props},externalRef){let Component3=useConstant(()=>motion[as]),context=useContext18(ReorderContext),point2={x:useDefaultMotionValue(style2.x),y:useDefaultMotionValue(style2.y)},zIndex=useTransform([point2.x,point2.y],([latestX,latestY])=>latestX||latestY?1:"unset");invariant(!!context,"Reorder.Item must be a child of Reorder.Group","reorder-item-child");let{axis,registerItem,updateOrder,groupRef}=context;return jsx11(Component3,{drag:axis,...props,dragSnapToOrigin:!0,style:{...style2,x:point2.x,y:point2.y,zIndex},layout:layout2,onDrag:(event,gesturePoint)=>{let{velocity,point:pointerPoint}=gesturePoint,offset=point2[axis].get();updateOrder(value,offset,velocity[axis]),autoScrollIfNeeded(groupRef.current,pointerPoint[axis],axis,velocity[axis]),onDrag&&onDrag(event,gesturePoint)},onDragEnd:(event,gesturePoint)=>{resetAutoScrollState(),onDragEnd&&onDragEnd(event,gesturePoint)},onLayoutMeasure:measured=>{registerItem(value,measured)},ref:externalRef,ignoreStrict:!0,children})}var ReorderItem=forwardRef3(ReorderItemComponent);var motion2=motion,m2=m;var ojm_shim_motion_react_default=void 0??react_exports;export{AnimatePresence,AnimateSharedLayout,AsyncMotionValueAnimation,DOMKeyframesResolver,DOMVisualElement,DeprecatedLayoutGroupContext,DocumentProjectionNode,DragControls,Feature,FlatTree,GroupAnimation,GroupAnimationWithThen,HTMLProjectionNode,HTMLVisualElement,JSAnimation,KeyframeResolver,LayoutAnimationBuilder,LayoutGroup,LayoutGroupContext,LazyMotion,MotionConfig,MotionConfigContext,MotionContext,MotionGlobalConfig,MotionValue,NativeAnimation,NativeAnimationExtended,NativeAnimationWrapper,NodeStack,ObjectVisualElement,PopChild,PresenceChild,PresenceContext,namespace_exports as Reorder,SVGVisualElement,SubscriptionManager,SwitchLayoutGroupContext,ViewTransitionBuilder,VisualElement,WillChangeMotionValue,acceleratedValues,addAttrValue,addDomEvent,addPointerEvent,addPointerInfo,addScaleCorrector,addStyleValue,addUniqueItem,addValueToWillChange,alpha,analyseComplexValue,animate,animateMini,animateMotionValue,animateSingleValue,animateTarget,animateValue,animateVariant,animateView,animateVisualElement,animationControls,animationMapKey,animations,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,correctParentTransform,createAnimationState,createAxis,createAxisDelta,createBox,createDelta,createGeneratorEasing,createProjectionNode,createRenderBatcher,createScopedAnimate,cubicBezier,cubicBezierAsString,ojm_shim_motion_react_default as default,defaultEasing,defaultOffset,defaultTransformValue,defaultValueTypes,degrees,delay,delayInSeconds,dimensionValueTypes,disableInstantTransitions,distance,distance2D,domAnimation,domMax,domMin,eachAxis,easeIn,easeInOut,easeOut,easingDefinitionToFunction,fillOffset,fillWildcards,filterProps,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,isBrowser,isCSSVariableName,isCSSVariableToken,isControllingVariants,isDeltaZero,isDragActive,isDragging,isEasingArray,isElementKeyboardAccessible,isElementTextInput,isForcedMotionValue,isGenerator,isHTMLElement,isKeyframesTarget,isMotionComponent,isMotionValue,isNear,isNodeOrChild,isNumericalString,isObject,isPrimaryPointer,isSVGElement,isSVGSVGElement,isSVGTag,isTransitionDefined,isValidMotionProp,isVariantLabel,isVariantNode,isWaapiSupportedEasing,isWillChangeMotionValue,isZeroValueString,keyframes,m2 as m,makeAnimationInstant,makeUseVisualState,mapEasingToNativeEasing,mapValue,maxGeneratorDuration,measurePageBox,measureViewportBox,memo,microtask,millisecondsToSeconds,mirrorEasing,mix,mixArray,mixColor,mixComplex,mixImmediate,mixLinearColor,mixNumber,mixObject,mixValues,mixVisibility,motion2 as motion,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,startOptimizedAppearAnimation,startWaapiAnimation,statsBuffer,steps,styleEffect,supportedWaapiEasing,supportsBrowserAnimation,supportsFlags,supportsLinearEasing,supportsPartialKeyframes,supportsScrollTimeline,supportsViewTimeline,svgEffect,sync,testValueType,time,transform,transformAxis,transformBox,transformBoxPoints,transformPropOrder,transformProps,transformValue,transformValueTypes,transformViewBoxPoint,translateAxis,unwrapMotionComponent,updateMotionValuesFromProps,useAnimate,useAnimateMini,useAnimation,useAnimationControls,useAnimationFrame,useComposedRefs,useCycle,useAnimatedState as useDeprecatedAnimatedState,useInvertedScale as useDeprecatedInvertedScale,useDomEvent,useDragControls,useElementScroll,useFollowValue,useForceUpdate,useInView,useInstantLayoutTransition,useInstantTransition,useIsPresent,useIsomorphicLayoutEffect,useMotionTemplate,useMotionValue,useMotionValueEvent,usePageInView,usePresence,usePresenceData,useReducedMotion,useReducedMotionConfig,useResetProjection,useScroll,useSpring,useTime,useTransform,useUnmountEffect,useVelocity,useViewportScroll,useWillChange,variantPriorityOrder,variantProps,velocityPerSecond,vh,visualElementStore,vw,warnOnce,warning,wrap};