@nethesis/phone-island 1.0.9-dev.7 → 1.0.10-dev.1

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 (583) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/App.js.map +1 -1
  3. package/dist/_virtual/index6.js +1 -1
  4. package/dist/_virtual/index8.js +1 -1
  5. package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
  6. package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
  7. package/dist/components/Socket.js +1 -1
  8. package/dist/components/Socket.js.map +1 -1
  9. package/dist/components/TranscriptionView/TranscriptionView.js.map +1 -1
  10. package/dist/lib/devices/devices.js +1 -1
  11. package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js +1 -1
  12. package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js +1 -1
  13. package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js.map +1 -1
  14. package/dist/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs.js +1 -1
  15. package/dist/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs.js.map +1 -1
  16. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js +1 -1
  17. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js.map +1 -1
  18. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js +1 -1
  19. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js.map +1 -1
  20. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js +1 -1
  21. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js.map +1 -1
  22. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js.map +1 -1
  23. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js.map +1 -1
  24. package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs.js.map +1 -1
  25. package/dist/node_modules/framer-motion/dist/es/context/LazyContext.mjs.js.map +1 -1
  26. package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs.js.map +1 -1
  27. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js.map +1 -1
  28. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs.js.map +1 -1
  29. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs.js +1 -1
  30. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs.js.map +1 -1
  31. package/dist/node_modules/framer-motion/dist/es/context/PresenceContext.mjs.js.map +1 -1
  32. package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs.js.map +1 -1
  33. package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js +1 -1
  34. package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js.map +1 -1
  35. package/dist/node_modules/framer-motion/dist/es/events/event-info.mjs.js.map +1 -1
  36. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js +1 -1
  37. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +1 -1
  38. package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js +1 -1
  39. package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js.map +1 -1
  40. package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js +1 -1
  41. package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js.map +1 -1
  42. package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js +1 -1
  43. package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js.map +1 -1
  44. package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js +1 -1
  45. package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js.map +1 -1
  46. package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js +1 -1
  47. package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js.map +1 -1
  48. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js +1 -1
  49. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js.map +1 -1
  50. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js +1 -1
  51. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js.map +1 -1
  52. package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js +1 -1
  53. package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js.map +1 -1
  54. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js +1 -1
  55. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js.map +1 -1
  56. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs.js +1 -1
  57. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs.js.map +1 -1
  58. package/dist/node_modules/framer-motion/dist/es/motion/features/animations.mjs.js.map +1 -1
  59. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js +1 -1
  60. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js.map +1 -1
  61. package/dist/node_modules/framer-motion/dist/es/motion/features/drag.mjs.js +1 -1
  62. package/dist/node_modules/framer-motion/dist/es/motion/features/drag.mjs.js.map +1 -1
  63. package/dist/node_modules/framer-motion/dist/es/motion/features/gestures.mjs.js.map +1 -1
  64. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js +1 -1
  65. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js.map +1 -1
  66. package/dist/node_modules/framer-motion/dist/es/motion/features/layout.mjs.js +1 -1
  67. package/dist/node_modules/framer-motion/dist/es/motion/features/layout.mjs.js.map +1 -1
  68. package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.mjs.js +1 -1
  69. package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.mjs.js.map +1 -1
  70. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js +1 -1
  71. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js.map +1 -1
  72. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs.js.map +1 -1
  73. package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js +1 -1
  74. package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js.map +1 -1
  75. package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs.js.map +1 -1
  76. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js +1 -1
  77. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js.map +1 -1
  78. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js +1 -1
  79. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js.map +1 -1
  80. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs.js +1 -1
  81. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs.js.map +1 -1
  82. package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js +1 -1
  83. package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js.map +1 -1
  84. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js +1 -1
  85. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js.map +1 -1
  86. package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs.js +2 -0
  87. package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs.js.map +1 -0
  88. package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js +1 -1
  89. package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js.map +1 -1
  90. package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs.js +1 -1
  91. package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs.js.map +1 -1
  92. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js +1 -1
  93. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js.map +1 -1
  94. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js +1 -1
  95. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js.map +1 -1
  96. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs.js.map +1 -1
  97. package/dist/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs.js +2 -0
  98. package/dist/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs.js.map +1 -0
  99. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js +1 -1
  100. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js.map +1 -1
  101. package/dist/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs.js.map +1 -1
  102. package/dist/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs.js.map +1 -1
  103. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js +1 -1
  104. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js.map +1 -1
  105. package/dist/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs.js +2 -0
  106. package/dist/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs.js.map +1 -0
  107. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs.js.map +1 -1
  108. package/dist/node_modules/framer-motion/dist/es/utils/distance.mjs.js.map +1 -1
  109. package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.mjs.js.map +1 -1
  110. package/dist/node_modules/framer-motion/dist/es/utils/is-browser.mjs.js.map +1 -1
  111. package/dist/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs.js.map +1 -1
  112. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js +2 -0
  113. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js.map +1 -0
  114. package/dist/node_modules/framer-motion/dist/es/utils/use-constant.mjs.js.map +1 -1
  115. package/dist/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs.js.map +1 -1
  116. package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js +1 -1
  117. package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js.map +1 -1
  118. package/dist/node_modules/mic-check/lib/index.js +1 -1
  119. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js +1 -1
  120. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js.map +1 -1
  121. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js +1 -1
  122. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js.map +1 -1
  123. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js +1 -1
  124. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js.map +1 -1
  125. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js +1 -1
  126. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js.map +1 -1
  127. package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.mjs.js +2 -0
  128. package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.mjs.js.map +1 -0
  129. package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js +2 -0
  130. package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js.map +1 -0
  131. package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js +1 -1
  132. package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js.map +1 -1
  133. package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js.map +1 -1
  134. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js +2 -0
  135. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js.map +1 -0
  136. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs.js.map +1 -1
  137. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs.js.map +1 -1
  138. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs.js.map +1 -1
  139. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js +1 -1
  140. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js.map +1 -1
  141. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js +2 -0
  142. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js.map +1 -0
  143. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js +2 -0
  144. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js.map +1 -0
  145. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js +2 -0
  146. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +1 -0
  147. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js.map +1 -0
  148. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js +1 -1
  149. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js.map +1 -1
  150. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js +1 -1
  151. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js.map +1 -1
  152. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs.js.map +1 -1
  153. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs.js.map +1 -1
  154. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs.js.map +1 -1
  155. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js.map +1 -1
  156. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs.js.map +1 -1
  157. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs.js.map +1 -1
  158. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs.js.map +1 -1
  159. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js +1 -1
  160. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js.map +1 -1
  161. package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs.js.map +1 -0
  162. package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs.js.map +1 -0
  163. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js +1 -1
  164. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js.map +1 -1
  165. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js +2 -0
  166. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js.map +1 -0
  167. package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js +1 -1
  168. package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js.map +1 -1
  169. package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs.js +1 -1
  170. package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs.js.map +1 -1
  171. package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs.js +2 -0
  172. package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs.js.map +1 -0
  173. package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs.js +1 -1
  174. package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs.js.map +1 -1
  175. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs.js.map +1 -1
  176. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs.js +1 -1
  177. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs.js.map +1 -1
  178. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs.js +2 -0
  179. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs.js.map +1 -0
  180. package/dist/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs.js +2 -0
  181. package/dist/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs.js.map +1 -0
  182. package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs.js +1 -1
  183. package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs.js.map +1 -1
  184. package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs.js +2 -0
  185. package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs.js.map +1 -0
  186. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs.js.map +1 -1
  187. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js.map +1 -1
  188. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs.js.map +1 -1
  189. package/dist/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs.js.map +1 -1
  190. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js +1 -1
  191. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js.map +1 -1
  192. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js +2 -0
  193. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js.map +1 -0
  194. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs.js.map +1 -1
  195. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.mjs.js +2 -0
  196. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.mjs.js.map +1 -0
  197. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs.js +1 -1
  198. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs.js.map +1 -1
  199. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs.js.map +1 -1
  200. package/dist/node_modules/motion-dom/dist/es/events/add-dom-event.mjs.js.map +1 -0
  201. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js +1 -1
  202. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js.map +1 -1
  203. package/dist/node_modules/motion-dom/dist/es/frameloop/frame.mjs.js.map +1 -1
  204. package/dist/node_modules/motion-dom/dist/es/frameloop/microtask.mjs.js.map +1 -1
  205. package/dist/node_modules/motion-dom/dist/es/frameloop/order.mjs.js.map +1 -1
  206. package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js +1 -1
  207. package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js.map +1 -1
  208. package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js.map +1 -1
  209. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs.js.map +1 -1
  210. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs.js.map +1 -1
  211. package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js +1 -1
  212. package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js.map +1 -1
  213. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js +1 -1
  214. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js.map +1 -1
  215. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs.js +1 -1
  216. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs.js.map +1 -1
  217. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js.map +1 -1
  218. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs.js.map +1 -1
  219. package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs.js.map +1 -1
  220. package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs.js.map +1 -1
  221. package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs.js.map +1 -1
  222. package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs.js +2 -0
  223. package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs.js.map +1 -0
  224. package/dist/node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs.js.map +1 -0
  225. package/dist/node_modules/motion-dom/dist/es/projection/geometry/copy.mjs.js.map +1 -0
  226. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs.js +2 -0
  227. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs.js.map +1 -0
  228. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js +2 -0
  229. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js.map +1 -0
  230. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs.js +2 -0
  231. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs.js.map +1 -0
  232. package/dist/node_modules/motion-dom/dist/es/projection/geometry/models.mjs.js.map +1 -0
  233. package/dist/node_modules/motion-dom/dist/es/projection/geometry/utils.mjs.js.map +1 -0
  234. package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs.js +2 -0
  235. package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs.js.map +1 -0
  236. package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +1 -0
  237. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js +2 -0
  238. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js.map +1 -0
  239. package/dist/node_modules/motion-dom/dist/es/projection/node/state.mjs.js.map +1 -0
  240. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js +2 -0
  241. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js.map +1 -0
  242. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs.js +2 -0
  243. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs.js.map +1 -0
  244. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs.js +2 -0
  245. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs.js.map +1 -0
  246. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs.js +2 -0
  247. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs.js.map +1 -0
  248. package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/styles/transform.mjs.js +1 -1
  249. package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.mjs.js.map +1 -0
  250. package/dist/node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs.js.map +1 -0
  251. package/dist/node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs.js.map +1 -0
  252. package/dist/node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs.js.map +1 -0
  253. package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs.js.map +1 -0
  254. package/dist/node_modules/motion-dom/dist/es/projection/utils/measure.mjs.js.map +1 -0
  255. package/dist/node_modules/motion-dom/dist/es/render/Feature.mjs.js.map +1 -0
  256. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js +2 -0
  257. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js.map +1 -0
  258. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js +2 -0
  259. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js.map +1 -0
  260. package/dist/node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs.js.map +1 -1
  261. package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js +1 -1
  262. package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js.map +1 -1
  263. package/dist/node_modules/motion-dom/dist/es/render/dom/style-set.mjs.js.map +1 -1
  264. package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/dom/utils/camel-to-dash.mjs.js +1 -1
  265. package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs.js.map +1 -0
  266. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js +2 -0
  267. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js.map +1 -0
  268. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs.js +2 -0
  269. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs.js.map +1 -0
  270. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs.js +2 -0
  271. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs.js.map +1 -0
  272. package/dist/node_modules/motion-dom/dist/es/render/html/utils/render.mjs.js +2 -0
  273. package/dist/node_modules/motion-dom/dist/es/render/html/utils/render.mjs.js.map +1 -0
  274. package/dist/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs.js +2 -0
  275. package/dist/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs.js.map +1 -0
  276. package/dist/node_modules/motion-dom/dist/es/render/store.mjs.js.map +1 -0
  277. package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs.js +2 -0
  278. package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs.js.map +1 -0
  279. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs.js +2 -0
  280. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs.js.map +1 -0
  281. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs.js.map +1 -0
  282. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs.js.map +1 -0
  283. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/path.mjs.js +2 -0
  284. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/path.mjs.js.map +1 -0
  285. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/render.mjs.js.map +1 -0
  286. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs.js +2 -0
  287. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs.js.map +1 -0
  288. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js +2 -0
  289. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js.map +1 -0
  290. package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs.js.map +1 -0
  291. package/dist/node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs.js.map +1 -0
  292. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js +2 -0
  293. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js.map +1 -0
  294. package/dist/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs.js +2 -0
  295. package/dist/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs.js.map +1 -0
  296. package/dist/node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs.js.map +1 -0
  297. package/dist/node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs.js.map +1 -0
  298. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-position.mjs.js.map +1 -1
  299. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs.js +1 -1
  300. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs.js.map +1 -1
  301. package/dist/node_modules/motion-dom/dist/es/render/utils/motion-values.mjs.js +2 -0
  302. package/dist/node_modules/motion-dom/dist/es/render/utils/motion-values.mjs.js.map +1 -0
  303. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs.js +2 -0
  304. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs.js.map +1 -0
  305. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs.js.map +1 -0
  306. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs.js.map +1 -0
  307. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js.map +1 -0
  308. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js +2 -0
  309. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js.map +1 -0
  310. package/dist/node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs.js.map +1 -0
  311. package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.mjs.js.map +1 -0
  312. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js +2 -0
  313. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js.map +1 -0
  314. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js +2 -0
  315. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js.map +1 -0
  316. package/dist/node_modules/motion-dom/dist/es/resize/index.mjs.js +2 -0
  317. package/dist/node_modules/motion-dom/dist/es/resize/index.mjs.js.map +1 -0
  318. package/dist/node_modules/motion-dom/dist/es/stats/buffer.mjs.js.map +1 -1
  319. package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js +2 -0
  320. package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js.map +1 -0
  321. package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js +1 -1
  322. package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js.map +1 -1
  323. package/dist/node_modules/motion-dom/dist/es/utils/is-html-element.mjs.js +2 -0
  324. package/dist/node_modules/motion-dom/dist/es/utils/is-html-element.mjs.js.map +1 -0
  325. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-element.mjs.js +2 -0
  326. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-element.mjs.js.map +1 -0
  327. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs.js +2 -0
  328. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs.js.map +1 -0
  329. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js +1 -1
  330. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js.map +1 -1
  331. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js +1 -1
  332. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js.map +1 -1
  333. package/dist/node_modules/motion-dom/dist/es/utils/mix/immediate.mjs.js.map +1 -1
  334. package/dist/node_modules/motion-dom/dist/es/utils/mix/index.mjs.js.map +1 -1
  335. package/dist/node_modules/motion-dom/dist/es/utils/mix/number.mjs.js.map +1 -1
  336. package/dist/node_modules/motion-dom/dist/es/utils/mix/visibility.mjs.js.map +1 -1
  337. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js +1 -1
  338. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js.map +1 -1
  339. package/dist/node_modules/motion-dom/dist/es/utils/supports/flags.mjs.js.map +1 -1
  340. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js.map +1 -1
  341. package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.mjs.js.map +1 -1
  342. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js +1 -1
  343. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js.map +1 -1
  344. package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js +1 -1
  345. package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js.map +1 -1
  346. package/dist/node_modules/motion-dom/dist/es/value/types/auto.mjs.js.map +1 -1
  347. package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.mjs.js.map +1 -1
  348. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs.js.map +1 -1
  349. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs.js.map +1 -1
  350. package/dist/node_modules/motion-dom/dist/es/value/types/color/index.mjs.js +1 -1
  351. package/dist/node_modules/motion-dom/dist/es/value/types/color/index.mjs.js.map +1 -1
  352. package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs.js.map +1 -1
  353. package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.mjs.js.map +1 -1
  354. package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.mjs.js.map +1 -1
  355. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js +1 -1
  356. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js.map +1 -1
  357. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js +2 -0
  358. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js.map +1 -0
  359. package/dist/node_modules/motion-dom/dist/es/value/types/dimensions.mjs.js.map +1 -1
  360. package/dist/node_modules/motion-dom/dist/es/value/types/int.mjs.js.map +1 -1
  361. package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs.js +1 -1
  362. package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs.js.map +1 -1
  363. package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.mjs.js +1 -1
  364. package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.mjs.js.map +1 -1
  365. package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.mjs.js +1 -1
  366. package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.mjs.js.map +1 -1
  367. package/dist/node_modules/motion-dom/dist/es/value/types/numbers/index.mjs.js.map +1 -1
  368. package/dist/node_modules/motion-dom/dist/es/value/types/numbers/units.mjs.js.map +1 -1
  369. package/dist/node_modules/motion-dom/dist/es/value/types/test.mjs.js.map +1 -1
  370. package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs.js +1 -1
  371. package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs.js.map +1 -1
  372. package/dist/node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs.js.map +1 -1
  373. package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.mjs.js.map +1 -1
  374. package/dist/node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs.js.map +1 -1
  375. package/dist/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs.js.map +1 -1
  376. package/dist/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs.js.map +1 -1
  377. package/dist/node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs.js.map +1 -1
  378. package/dist/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs.js.map +1 -1
  379. package/dist/node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs.js.map +1 -0
  380. package/dist/node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs.js.map +1 -0
  381. package/dist/node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs.js.map +1 -0
  382. package/dist/node_modules/motion-dom/dist/es/value/will-change/is.mjs.js.map +1 -0
  383. package/dist/node_modules/motion-utils/dist/es/array.mjs.js.map +1 -1
  384. package/dist/node_modules/motion-utils/dist/es/clamp.mjs.js.map +1 -1
  385. package/dist/node_modules/motion-utils/dist/es/easing/anticipate.mjs.js +1 -1
  386. package/dist/node_modules/motion-utils/dist/es/easing/anticipate.mjs.js.map +1 -1
  387. package/dist/node_modules/motion-utils/dist/es/easing/back.mjs.js.map +1 -1
  388. package/dist/node_modules/motion-utils/dist/es/easing/circ.mjs.js.map +1 -1
  389. package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js.map +1 -1
  390. package/dist/node_modules/motion-utils/dist/es/easing/ease.mjs.js.map +1 -1
  391. package/dist/node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs.js.map +1 -1
  392. package/dist/node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs.js.map +1 -1
  393. package/dist/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs.js.map +1 -1
  394. package/dist/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs.js.map +1 -1
  395. package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js +1 -1
  396. package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js.map +1 -1
  397. package/dist/node_modules/motion-utils/dist/es/errors.mjs.js +1 -1
  398. package/dist/node_modules/motion-utils/dist/es/errors.mjs.js.map +1 -1
  399. package/dist/node_modules/motion-utils/dist/es/format-error-message.mjs.js +2 -0
  400. package/dist/node_modules/motion-utils/dist/es/format-error-message.mjs.js.map +1 -0
  401. package/dist/node_modules/motion-utils/dist/es/global-config.mjs.js.map +1 -1
  402. package/dist/node_modules/motion-utils/dist/es/is-numerical-string.mjs.js.map +1 -1
  403. package/dist/node_modules/motion-utils/dist/es/is-object.mjs.js +2 -0
  404. package/dist/node_modules/motion-utils/dist/es/is-object.mjs.js.map +1 -0
  405. package/dist/node_modules/motion-utils/dist/es/is-zero-value-string.mjs.js.map +1 -1
  406. package/dist/node_modules/motion-utils/dist/es/memo.mjs.js.map +1 -1
  407. package/dist/node_modules/motion-utils/dist/es/noop.mjs.js.map +1 -1
  408. package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js +1 -1
  409. package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js.map +1 -1
  410. package/dist/node_modules/motion-utils/dist/es/progress.mjs.js +1 -1
  411. package/dist/node_modules/motion-utils/dist/es/progress.mjs.js.map +1 -1
  412. package/dist/node_modules/motion-utils/dist/es/subscription-manager.mjs.js.map +1 -1
  413. package/dist/node_modules/motion-utils/dist/es/time-conversion.mjs.js.map +1 -1
  414. package/dist/node_modules/motion-utils/dist/es/velocity-per-second.mjs.js +1 -1
  415. package/dist/node_modules/motion-utils/dist/es/velocity-per-second.mjs.js.map +1 -1
  416. package/dist/node_modules/motion-utils/dist/es/warn-once.mjs.js +1 -1
  417. package/dist/node_modules/motion-utils/dist/es/warn-once.mjs.js.map +1 -1
  418. package/dist/node_modules/prop-types/index.js +1 -1
  419. package/dist/node_modules/prop-types/node_modules/react-is/index.js +1 -1
  420. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +1 -1
  421. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -1
  422. package/dist/package.json.js +1 -1
  423. package/dist/services/user.js +1 -1
  424. package/dist/services/user.js.map +1 -1
  425. package/package.json +1 -1
  426. package/dist/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs.js +0 -2
  427. package/dist/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs.js.map +0 -1
  428. package/dist/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs.js +0 -2
  429. package/dist/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs.js.map +0 -1
  430. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs.js +0 -2
  431. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs.js.map +0 -1
  432. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs.js +0 -2
  433. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs.js.map +0 -1
  434. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs.js +0 -2
  435. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +0 -1
  436. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs.js.map +0 -1
  437. package/dist/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs.js.map +0 -1
  438. package/dist/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs.js.map +0 -1
  439. package/dist/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs.js +0 -2
  440. package/dist/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs.js.map +0 -1
  441. package/dist/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs.js.map +0 -1
  442. package/dist/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs.js.map +0 -1
  443. package/dist/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs.js +0 -2
  444. package/dist/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs.js.map +0 -1
  445. package/dist/node_modules/framer-motion/dist/es/events/add-dom-event.mjs.js.map +0 -1
  446. package/dist/node_modules/framer-motion/dist/es/motion/features/Feature.mjs.js.map +0 -1
  447. package/dist/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs.js +0 -2
  448. package/dist/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs.js.map +0 -1
  449. package/dist/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs.js +0 -2
  450. package/dist/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs.js.map +0 -1
  451. package/dist/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs.js.map +0 -1
  452. package/dist/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs.js.map +0 -1
  453. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs.js +0 -2
  454. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs.js.map +0 -1
  455. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs.js +0 -2
  456. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs.js.map +0 -1
  457. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs.js +0 -2
  458. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs.js.map +0 -1
  459. package/dist/node_modules/framer-motion/dist/es/projection/geometry/models.mjs.js.map +0 -1
  460. package/dist/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs.js.map +0 -1
  461. package/dist/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs.js +0 -2
  462. package/dist/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs.js.map +0 -1
  463. package/dist/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +0 -1
  464. package/dist/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs.js +0 -2
  465. package/dist/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs.js.map +0 -1
  466. package/dist/node_modules/framer-motion/dist/es/projection/node/state.mjs.js.map +0 -1
  467. package/dist/node_modules/framer-motion/dist/es/projection/shared/stack.mjs.js +0 -2
  468. package/dist/node_modules/framer-motion/dist/es/projection/shared/stack.mjs.js.map +0 -1
  469. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs.js +0 -2
  470. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs.js.map +0 -1
  471. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs.js +0 -2
  472. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs.js.map +0 -1
  473. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs.js +0 -2
  474. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs.js.map +0 -1
  475. package/dist/node_modules/framer-motion/dist/es/projection/styles/transform.mjs.js.map +0 -1
  476. package/dist/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs.js.map +0 -1
  477. package/dist/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs.js.map +0 -1
  478. package/dist/node_modules/framer-motion/dist/es/projection/utils/measure.mjs.js.map +0 -1
  479. package/dist/node_modules/framer-motion/dist/es/render/VisualElement.mjs.js +0 -2
  480. package/dist/node_modules/framer-motion/dist/es/render/VisualElement.mjs.js.map +0 -1
  481. package/dist/node_modules/framer-motion/dist/es/render/components/create-factory.mjs.js +0 -2
  482. package/dist/node_modules/framer-motion/dist/es/render/components/create-factory.mjs.js.map +0 -1
  483. package/dist/node_modules/framer-motion/dist/es/render/components/motion/create.mjs.js +0 -2
  484. package/dist/node_modules/framer-motion/dist/es/render/components/motion/create.mjs.js.map +0 -1
  485. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs.js +0 -2
  486. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs.js.map +0 -1
  487. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs.js.map +0 -1
  488. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs.js +0 -2
  489. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs.js.map +0 -1
  490. package/dist/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs.js +0 -2
  491. package/dist/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs.js.map +0 -1
  492. package/dist/node_modules/framer-motion/dist/es/render/html/config-motion.mjs.js +0 -2
  493. package/dist/node_modules/framer-motion/dist/es/render/html/config-motion.mjs.js.map +0 -1
  494. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs.js +0 -2
  495. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs.js.map +0 -1
  496. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs.js +0 -2
  497. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs.js.map +0 -1
  498. package/dist/node_modules/framer-motion/dist/es/render/html/utils/render.mjs.js +0 -2
  499. package/dist/node_modules/framer-motion/dist/es/render/html/utils/render.mjs.js.map +0 -1
  500. package/dist/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs.js +0 -2
  501. package/dist/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs.js.map +0 -1
  502. package/dist/node_modules/framer-motion/dist/es/render/store.mjs.js.map +0 -1
  503. package/dist/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs.js +0 -2
  504. package/dist/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs.js.map +0 -1
  505. package/dist/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs.js +0 -2
  506. package/dist/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs.js.map +0 -1
  507. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs.js +0 -2
  508. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs.js.map +0 -1
  509. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs.js.map +0 -1
  510. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs.js.map +0 -1
  511. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs.js +0 -2
  512. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs.js.map +0 -1
  513. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs.js.map +0 -1
  514. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs.js +0 -2
  515. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs.js.map +0 -1
  516. package/dist/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs.js +0 -2
  517. package/dist/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs.js.map +0 -1
  518. package/dist/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs.js.map +0 -1
  519. package/dist/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs.js.map +0 -1
  520. package/dist/node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs.js.map +0 -1
  521. package/dist/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs.js +0 -2
  522. package/dist/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs.js.map +0 -1
  523. package/dist/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs.js.map +0 -1
  524. package/dist/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs.js +0 -2
  525. package/dist/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs.js.map +0 -1
  526. package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs.js.map +0 -1
  527. package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs.js.map +0 -1
  528. package/dist/node_modules/framer-motion/dist/es/render/utils/setters.mjs.js +0 -2
  529. package/dist/node_modules/framer-motion/dist/es/render/utils/setters.mjs.js.map +0 -1
  530. package/dist/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs.js.map +0 -1
  531. package/dist/node_modules/framer-motion/dist/es/utils/delay.mjs.js +0 -2
  532. package/dist/node_modules/framer-motion/dist/es/utils/delay.mjs.js.map +0 -1
  533. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs.js +0 -2
  534. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs.js.map +0 -1
  535. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs.js.map +0 -1
  536. package/dist/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs.js.map +0 -1
  537. package/dist/node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs.js.map +0 -1
  538. package/dist/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs.js.map +0 -1
  539. package/dist/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs.js.map +0 -1
  540. package/dist/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs.js.map +0 -1
  541. package/dist/node_modules/motion-dom/dist/es/animation/drivers/driver-frameloop.mjs.js +0 -2
  542. package/dist/node_modules/motion-dom/dist/es/animation/drivers/driver-frameloop.mjs.js.map +0 -1
  543. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs.js +0 -2
  544. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs.js.map +0 -1
  545. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs.js +0 -2
  546. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs.js.map +0 -1
  547. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs.js +0 -2
  548. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs.js.map +0 -1
  549. package/dist/utils/genericFunctions/summaryEvents.js +0 -2
  550. package/dist/utils/genericFunctions/summaryEvents.js.map +0 -1
  551. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/animation/interfaces/visual-element.mjs.js +0 -0
  552. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/animation/optimized-appear/data-id.mjs.js +0 -0
  553. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/animation/optimized-appear/get-appear-id.mjs.js +0 -0
  554. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/events/add-dom-event.mjs.js +0 -0
  555. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/geometry/conversion.mjs.js +0 -0
  556. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/geometry/copy.mjs.js +0 -0
  557. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/geometry/models.mjs.js +0 -0
  558. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/geometry/utils.mjs.js +0 -0
  559. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/node/HTMLProjectionNode.mjs.js +0 -0
  560. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/node/state.mjs.js +0 -0
  561. /package/dist/node_modules/{framer-motion/dist/es/render → motion-dom/dist/es/projection}/utils/compare-by-depth.mjs.js +0 -0
  562. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/utils/each-axis.mjs.js +0 -0
  563. /package/dist/node_modules/{framer-motion/dist/es/render → motion-dom/dist/es/projection}/utils/flat-tree.mjs.js +0 -0
  564. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/utils/has-transform.mjs.js +0 -0
  565. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/projection/utils/measure.mjs.js +0 -0
  566. /package/dist/node_modules/{framer-motion/dist/es/motion/features → motion-dom/dist/es/render}/Feature.mjs.js +0 -0
  567. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/store.mjs.js +0 -0
  568. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/svg/utils/camel-case-attrs.mjs.js +0 -0
  569. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/svg/utils/is-svg-tag.mjs.js +0 -0
  570. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/svg/utils/render.mjs.js +0 -0
  571. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/utils/get-variant-context.mjs.js +0 -0
  572. /package/dist/node_modules/{framer-motion/dist/es/animation → motion-dom/dist/es/render}/utils/is-animation-controls.mjs.js +0 -0
  573. /package/dist/node_modules/{framer-motion/dist/es/animation → motion-dom/dist/es/render}/utils/is-keyframes-target.mjs.js +0 -0
  574. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/utils/is-variant-label.mjs.js +0 -0
  575. /package/dist/node_modules/{framer-motion/dist/es → motion-dom/dist/es/render}/utils/reduced-motion/state.mjs.js +0 -0
  576. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/utils/resolve-dynamic-variants.mjs.js +0 -0
  577. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/utils/resolve-variants.mjs.js +0 -0
  578. /package/dist/node_modules/{framer-motion/dist/es → motion-dom/dist/es/render}/utils/shallow-compare.mjs.js +0 -0
  579. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/render/utils/variant-props.mjs.js +0 -0
  580. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/value/utils/is-motion-value.mjs.js +0 -0
  581. /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/value/utils/resolve-motion-value.mjs.js +0 -0
  582. /package/dist/node_modules/{framer-motion/dist/es/value/use-will-change → motion-dom/dist/es/value/will-change}/add-will-change.mjs.js +0 -0
  583. /package/dist/node_modules/{framer-motion/dist/es/value/use-will-change → motion-dom/dist/es/value/will-change}/is.mjs.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TranscriptionView.js","sources":["../../../src/components/TranscriptionView/TranscriptionView.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC, memo, useState, useEffect, useRef } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleUp, faArrowDown } from '@fortawesome/free-solid-svg-icons'\n\nconst ANIMATION_CONFIG = {\n initial: { height: 0, opacity: 0 },\n animate: { height: '360px', opacity: 1 },\n exit: { height: 0, opacity: 0 },\n transition: {\n duration: 0.1,\n ease: 'easeOut',\n },\n}\n\nconst STYLE_CONFIG = {\n borderBottomLeftRadius: '20px',\n borderBottomRightRadius: '20px',\n transformOrigin: 'top',\n overflow: 'hidden',\n} as const\n\ninterface TranscriptionViewProps {\n isVisible: boolean\n}\n\ninterface TranscriptionMessage {\n id: string\n timestamp: number\n channelIndex: number\n segmentStart: number\n speaker: string\n speakerNumber: string\n counterpart: string\n counterpartNumber: string\n text: string\n isFinal: boolean\n}\n\nconst TypewriterText: FC<{ text: string; isFinal: boolean; speed?: number }> = ({\n text,\n isFinal,\n speed = 50,\n}) => {\n const [displayText, setDisplayText] = useState('')\n\n useEffect(() => {\n if (isFinal) {\n setDisplayText(text)\n return\n }\n\n setDisplayText('')\n let currentIndex = 0\n\n const typeInterval = setInterval(() => {\n if (currentIndex < text.length) {\n setDisplayText(text.slice(0, currentIndex + 1))\n currentIndex++\n } else {\n clearInterval(typeInterval)\n }\n }, speed)\n\n return () => clearInterval(typeInterval)\n }, [text, isFinal, speed])\n\n return (\n <div className='pi-inline-flex pi-items-center pi-flex-wrap'>\n <span>{displayText}</span>\n </div>\n )\n}\n\nconst TranscriptionView: FC<TranscriptionViewProps> = memo(({ isVisible }) => {\n const { actionsExpanded, view } = useSelector((state: RootState) => state.island)\n const currentUser = useSelector((state: RootState) => state.currentUser)\n const currentCallStartTime = useSelector((state: RootState) => state.currentCall.startTime)\n const { t } = useTranslation()\n\n const [allMessages, setAllMessages] = useState<TranscriptionMessage[]>([])\n const [visibleMessages, setVisibleMessages] = useState<TranscriptionMessage[]>([])\n const [hasNewContent, setHasNewContent] = useState(false)\n const [userScrolled, setUserScrolled] = useState(false)\n const [lastSeenMessageIndex, setLastSeenMessageIndex] = useState(0)\n const messagesEndRef = useRef<HTMLDivElement>(null)\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n const timestampCorrectionRef = useRef<number | null>(null)\n const [autoScroll, setAutoScroll] = useState(true)\n\n const MAX_VISIBLE_MESSAGES = 100\n const BUFFER_MESSAGES = 10\n const SCROLL_DEBOUNCE_MS = 100\n\n const resetTranscriptionState = () => {\n timestampCorrectionRef.current = null\n setAllMessages([])\n setVisibleMessages([])\n setHasNewContent(false)\n setUserScrolled(false)\n setLastSeenMessageIndex(0)\n setAutoScroll(true)\n }\n\n const getLocalCallElapsedSeconds = () => {\n const start = Number(currentCallStartTime)\n if (!Number.isFinite(start) || start <= 0) {\n return null\n }\n return Math.max(0, Math.floor(Date.now() / 1000) - start)\n }\n\n\n // Function to check if a speaker number belongs to current user\n const isMyNumber = (speakerNumber: string): boolean => {\n if (!currentUser || !speakerNumber) return false\n\n // Check main extension from endpoints\n if (currentUser.endpoints?.mainextension?.[0]?.id === speakerNumber) return true\n\n // Check other extensions in endpoints\n if (currentUser.endpoints?.extension) {\n return Object.values(currentUser.endpoints.extension).some(\n (ext: any) => ext.id === speakerNumber || ext.exten === speakerNumber,\n )\n }\n\n return false\n }\n\n // Update visible messages when all messages change.\n // Sort all messages (finals + interims) chronologically so that concurrent\n // speakers always appear in the correct time order.\n useEffect(() => {\n const startIndex = Math.max(0, allMessages.length - MAX_VISIBLE_MESSAGES)\n const recentMessages = allMessages.slice(startIndex)\n // JS Array.sort is stable: messages with equal timestamps keep insertion order.\n const sorted = [...recentMessages].sort((a, b) => a.timestamp - b.timestamp)\n setVisibleMessages(sorted)\n }, [allMessages])\n\n // Handle incoming transcription messages\n const addTranscriptionMessage = (data: any) => {\n const rawTimestamp = Number(data.timestamp) || 0\n const channelIndex = Number.isFinite(Number(data.channel_index)) ? Number(data.channel_index) : -1\n const segmentStart = Number.isFinite(Number(data.segment_start))\n ? Number(data.segment_start)\n : rawTimestamp\n const uniqueId =\n data.uniqueid && channelIndex >= 0\n ? `${data.uniqueid}_${channelIndex}_${segmentStart.toFixed(3)}`\n : `${data.uniqueid}_${rawTimestamp}`\n const localElapsed = getLocalCallElapsedSeconds()\n let correctedTimestamp = rawTimestamp\n\n // Keep transcription timestamps aligned to local call timer, avoiding progressive drift.\n if (localElapsed !== null) {\n if (timestampCorrectionRef.current === null) {\n timestampCorrectionRef.current = localElapsed - rawTimestamp\n } else {\n const predicted = rawTimestamp + timestampCorrectionRef.current\n const error = localElapsed - predicted\n const boundedError = Math.max(-2, Math.min(2, error))\n timestampCorrectionRef.current += boundedError * 0.2\n }\n\n correctedTimestamp = rawTimestamp + (timestampCorrectionRef.current || 0)\n correctedTimestamp = Math.max(0, Math.min(localElapsed, correctedTimestamp))\n }\n\n const message: TranscriptionMessage = {\n id: uniqueId,\n timestamp: correctedTimestamp,\n channelIndex,\n segmentStart,\n speaker: data.speaker_name || 'Unknown',\n speakerNumber: data.speaker_number || '',\n counterpart: data.speaker_counterpart_name || '',\n counterpartNumber: data.speaker_counterpart_number || '',\n text: data.transcription || '',\n isFinal: data.is_final || false,\n }\n\n setAllMessages((prevMessages) => {\n const findLastIndex = (predicate: (message: TranscriptionMessage) => boolean) => {\n for (let index = prevMessages.length - 1; index >= 0; index -= 1) {\n if (predicate(prevMessages[index])) {\n return index\n }\n }\n return -1\n }\n\n const isSameSpeakerStream = (existingMessage: TranscriptionMessage) => {\n if (message.channelIndex >= 0 && existingMessage.channelIndex >= 0) {\n return existingMessage.channelIndex === message.channelIndex\n }\n\n if (message.speakerNumber && existingMessage.speakerNumber) {\n return existingMessage.speakerNumber === message.speakerNumber\n }\n\n return existingMessage.speaker === message.speaker\n }\n\n // 1. Exact match by segment identity – update in place, but never\n // overwrite an already-finalized message with a new interim.\n const existingMessageIndex = prevMessages.findIndex((msg) => msg.id === uniqueId)\n if (existingMessageIndex !== -1) {\n const existing = prevMessages[existingMessageIndex]\n if (existing.isFinal && !message.isFinal) {\n // UniqueId collision: the existing segment was finalized but the\n // backend started a new interim with a colliding id. Treat it as\n // a brand-new message so the final bubble is preserved.\n return [...prevMessages, { ...message, id: `${message.id}_${Date.now()}` }]\n }\n const updatedMessages = [...prevMessages]\n updatedMessages[existingMessageIndex] = message\n return updatedMessages\n }\n\n // 2. Final message path\n if (message.isFinal) {\n // Check for a duplicate final with identical text and close timestamp\n const similarFinalIndex = findLastIndex(\n (existing) =>\n existing.isFinal &&\n isSameSpeakerStream(existing) &&\n existing.text.trim() === message.text.trim() &&\n Math.abs(existing.timestamp - message.timestamp) <= 1,\n )\n if (similarFinalIndex !== -1) {\n const updatedMessages = [...prevMessages]\n updatedMessages[similarFinalIndex] = {\n ...message,\n id: prevMessages[similarFinalIndex].id,\n }\n return updatedMessages\n }\n\n // Replace the active interim from the same speaker (the \"speaking\" bubble)\n const activeInterimIndex = findLastIndex(\n (existing) => !existing.isFinal && isSameSpeakerStream(existing),\n )\n if (activeInterimIndex !== -1) {\n const updatedMessages = [...prevMessages]\n updatedMessages[activeInterimIndex] = {\n ...message,\n id: prevMessages[activeInterimIndex].id,\n }\n return updatedMessages\n }\n\n // No interim to replace – just append.\n return [...prevMessages, message]\n }\n\n // 3. Interim message path – keep at most one active interim per speaker/channel.\n const activeInterimIndex = findLastIndex(\n (existing) => !existing.isFinal && isSameSpeakerStream(existing),\n )\n if (activeInterimIndex !== -1) {\n const updatedMessages = [...prevMessages]\n updatedMessages[activeInterimIndex] = {\n ...message,\n id: prevMessages[activeInterimIndex].id,\n }\n return updatedMessages\n }\n\n return [...prevMessages, message]\n })\n }\n\n // Check if user is at the bottom of the scroll area\n const isAtBottom = () => {\n if (!scrollContainerRef.current) return true\n const { scrollTop, scrollHeight, clientHeight } = scrollContainerRef.current\n return scrollHeight - scrollTop <= clientHeight + 10 // 10px tolerance\n }\n\n // Handle scroll events to detect user scrolling\n const handleScroll = () => {\n if (!scrollContainerRef.current) return\n\n const atBottom = isAtBottom()\n const { scrollTop, scrollHeight, clientHeight } = scrollContainerRef.current\n\n if (atBottom) {\n // User is at bottom, clear indicators and enable auto-scroll\n setHasNewContent(false)\n setUserScrolled(false)\n setAutoScroll(true)\n setLastSeenMessageIndex(allMessages.length)\n } else {\n setUserScrolled(true)\n setAutoScroll(false)\n }\n }\n\n // Scroll to bottom function\n const scrollToBottom = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollTop = scrollContainerRef.current.scrollHeight\n\n // Update state\n setHasNewContent(false)\n setUserScrolled(false)\n setAutoScroll(true)\n setLastSeenMessageIndex(allMessages.length)\n }\n }\n\n // Calculate unseen messages count\n const unseenMessagesCount = Math.max(0, allMessages.length - lastSeenMessageIndex)\n\n // Auto-scroll to bottom when new messages arrive\n useEffect(() => {\n if (allMessages.length === 0) return\n\n if (autoScroll && scrollContainerRef.current) {\n // Auto-scroll to bottom immediately for new messages\n setTimeout(() => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollTop = scrollContainerRef.current.scrollHeight\n }\n }, 100)\n } else if (userScrolled && !autoScroll) {\n // If user has scrolled up and there's a new message, show the indicator\n setHasNewContent(true)\n }\n }, [allMessages])\n\n useEffect(() => {\n if (isVisible && allMessages.length > 0) {\n setAutoScroll(true)\n setUserScrolled(false)\n setHasNewContent(false)\n }\n }, [isVisible])\n\n // Listen for transcription events\n useEventListener('phone-island-conversation-transcription', (data: any) => {\n addTranscriptionMessage(data)\n })\n\n useEventListener('phone-island-transcription-opened', () => {\n resetTranscriptionState()\n })\n\n useEventListener('phone-island-transcription-closed', () => {\n resetTranscriptionState()\n })\n\n\n // Format timestamp - converts seconds from call start to MM:SS format\n const formatTimestamp = (timestamp: number) => {\n const minutes = Math.floor(timestamp / 60)\n const seconds = Math.floor(timestamp % 60)\n return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n\n // Skeleton component for loading state\n const TranscriptionSkeleton: FC = () => (\n <div className='pi-space-y-2 pi-animate-pulse'>\n {/* First shorter bar */}\n <div className='pi-h-4 pi-bg-gray-200 dark:pi-bg-gray-700 pi-rounded pi-w-2/5'></div>\n {/* Second longer bar */}\n <div className='pi-h-4 pi-bg-gray-200 dark:pi-bg-gray-700 pi-rounded pi-w-4/5'></div>\n {/* First shorter bar */}\n <div className='pi-h-4 pi-bg-gray-200 dark:pi-bg-gray-700 pi-rounded pi-w-2/5'></div>\n {/* Third medium bar */}\n <div className='pi-h-4 pi-bg-gray-200 dark:pi-bg-gray-700 pi-rounded pi-w-4/5'></div>\n </div>\n )\n\n const containerClassName = `pi-absolute pi-w-full pi-bg-elevationL2 pi-flex pi-flex-col pi-text-iconWhite dark:pi-text-iconWhiteDark pi-left-0 -pi-z-10 pi-pointer-events-auto ${\n view === 'settings' || actionsExpanded ? 'pi-top-[17rem]' : 'pi-top-[13rem]'\n }`\n\n return (\n <>\n <AnimatePresence>\n {isVisible && (\n <motion.div className={containerClassName} style={STYLE_CONFIG} {...ANIMATION_CONFIG}>\n <div className='pi-h-full pi-rounded-lg pi-overflow-hidden pi-bg-elevationL2 dark:pi-bg-elevationL2Dark pi-relative pi-flex pi-flex-col pi-border-2 pi-border-gray-100 dark:pi-border-gray-600 pi-shadow-lg'>\n {/* Main Content Card */}\n <div className='pi-flex-1 pi-pt-4 pi-px-4 pi-mt-8'>\n <div className='pi-h-60 pi-bg-gray-100 dark:pi-bg-gray-800 pi-rounded-lg pi-border pi-border-gray-200 dark:pi-border-gray-700 pi-overflow-hidden pi-flex pi-flex-col'>\n <AnimatePresence>\n {hasNewContent && userScrolled && (\n <motion.div\n initial={{ opacity: 0, y: -10, scale: 0.9 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: -10, scale: 0.9 }}\n className='pi-absolute pi-top-16 pi-left-0 pi-right-0 pi-flex pi-justify-center pi-z-20'\n >\n <button\n onClick={scrollToBottom}\n className='pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-px-4 pi-py-2 pi-rounded-full pi-text-sm pi-shadow-lg pi-flex pi-items-center pi-gap-2 pi-transition-all pi-duration-200 pi-border pi-backdrop-blur-sm'\n >\n <FontAwesomeIcon icon={faArrowDown} className='pi-w-4 pi-h-4' />\n {unseenMessagesCount > 1\n ? t('TranscriptionView.New messages')\n : t('TranscriptionView.New message')}\n </button>\n </motion.div>\n )}\n </AnimatePresence>\n\n <div\n ref={scrollContainerRef}\n onScroll={handleScroll}\n className={`pi-flex-1 pi-p-4 ${\n visibleMessages.length > 0\n ? 'pi-overflow-y-auto pi-scrollbar-thin pi-scrollbar-thumb-gray-400 pi-scrollbar-thumb-rounded-full pi-scrollbar-thumb-opacity-50 pi-scrollbar-track-gray-200 dark:pi-scrollbar-track-gray-900 pi-scrollbar-track-rounded-full pi-scrollbar-track-opacity-25'\n : 'pi-overflow-hidden'\n }`}\n >\n {visibleMessages.length === 0 ? (\n <TranscriptionSkeleton />\n ) : (\n <div className='pi-space-y-4'>\n {/* Show indicator if there are more messages than displayed */}\n {allMessages.length > MAX_VISIBLE_MESSAGES && (\n <div className='pi-text-center pi-py-2 pi-text-xs pi-text-gray-500 dark:pi-text-gray-400 pi-border-b pi-border-gray-200 dark:pi-border-gray-700'>\n {t('TranscriptionView.Showing messages', {\n visible: visibleMessages.length,\n total: allMessages.length,\n })}\n </div>\n )}\n\n {visibleMessages.map((message, index) => (\n <motion.div\n key={message.id}\n layout\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.3, layout: { duration: 0.25 } }}\n className='pi-mb-4'\n >\n {/* Speaker Name */}\n <div className='pi-mb-2'>\n <span className='pi-font-medium pi-text-xs pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark'>\n {isMyNumber(message.speakerNumber)\n ? t('Common.Me', 'Me')\n : message.speaker}\n </span>\n </div>\n\n {/* Message Bubble with Background */}\n <div\n className={`pi-relative pi-p-3 pi-rounded-lg pi-text-xs pi-font-regular ${\n isMyNumber(message.speakerNumber)\n ? 'pi-text-gray-800 dark:pi-text-gray-100 pi-bg-gray-200 dark:pi-bg-gray-600'\n : 'pi-text-indigo-800 dark:pi-text-indigo-100 pi-bg-indigo-100 dark:pi-bg-indigo-700'\n }`}\n >\n <div className='pi-flex pi-items-start pi-justify-between pi-gap-3'>\n <div className='pi-flex-1'>\n <TypewriterText\n text={message.text}\n isFinal={message.isFinal}\n speed={30}\n />\n </div>\n {/* Timestamp on the right */}\n <div\n className={`pi-flex-shrink-0 pi-mt-1 pi-text-xs pi-font-regular ${\n isMyNumber(message.speakerNumber)\n ? 'pi-text-gray-800 dark:pi-text-gray-100 pi-bg-gray-200 dark:pi-bg-gray-600'\n : 'pi-text-indigo-800 dark:pi-text-indigo-100 pi-bg-indigo-100 dark:pi-bg-indigo-700'\n }`}\n >\n {formatTimestamp(message.timestamp)}\n </div>\n </div>\n </div>\n\n {!message.isFinal && message.text.trim() !== '' && (\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n className='pi-mt-1 pi-ml-3 pi-flex pi-items-center pi-gap-1'\n >\n <span className='pi-text-xs pi-text-gray-400 dark:pi-text-gray-500 pi-italic'>\n {t('TranscriptionView.Is speaking', '')}\n </span>\n <div className='pi-inline-flex pi-items-center pi-gap-1'>\n <motion.div\n className='pi-w-1 pi-h-1 pi-bg-gray-400 dark:pi-bg-gray-500 pi-rounded-full'\n animate={{ opacity: [0.3, 1, 0.3] }}\n transition={{ duration: 1.5, repeat: Infinity, delay: 0 }}\n />\n <motion.div\n className='pi-w-1 pi-h-1 pi-bg-gray-400 dark:pi-bg-gray-500 pi-rounded-full'\n animate={{ opacity: [0.3, 1, 0.3] }}\n transition={{ duration: 1.5, repeat: Infinity, delay: 0.2 }}\n />\n <motion.div\n className='pi-w-1 pi-h-1 pi-bg-gray-400 dark:pi-bg-gray-500 pi-rounded-full'\n animate={{ opacity: [0.3, 1, 0.3] }}\n transition={{ duration: 1.5, repeat: Infinity, delay: 0.4 }}\n />\n </div>\n </motion.div>\n )}\n </motion.div>\n ))}\n <div ref={messagesEndRef} className='pi-pb-4' />\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Footer with Close Button */}\n <div className='pi-flex pi-items-center pi-justify-center pi-py-2'>\n <button\n onClick={() => eventDispatch('phone-island-transcription-close', {})}\n className='pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral pi-outline-none pi-border-transparent dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-24 pi-rounded-fullpi-px-4 pi-py-2 pi-rounded-full pi-text-lg pi-flex pi-items-center pi-gap-2 pi-transition-all pi-duration-200 pi-border pi-backdrop-blur-sm'\n >\n <FontAwesomeIcon icon={faAngleUp} className='pi-w-4 pi-h-4 pi-ml-1' />\n {t('Common.Close')}\n </button>\n </div>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </>\n )\n})\n\nTranscriptionView.displayName = 'TranscriptionView'\n\nexport default TranscriptionView\n"],"names":["ANIMATION_CONFIG","initial","height","opacity","animate","exit","transition","duration","ease","STYLE_CONFIG","borderBottomLeftRadius","borderBottomRightRadius","transformOrigin","overflow","TypewriterText","_a","text","isFinal","_b","speed","_c","useState","displayText","setDisplayText","useEffect","currentIndex","typeInterval","setInterval","length","slice","clearInterval","React","createElement","className","TranscriptionView","memo","isVisible","useSelector","state","island","actionsExpanded","view","currentUser","currentCallStartTime","currentCall","startTime","t","useTranslation","allMessages","setAllMessages","_d","visibleMessages","setVisibleMessages","_e","hasNewContent","setHasNewContent","_f","userScrolled","setUserScrolled","_g","lastSeenMessageIndex","setLastSeenMessageIndex","messagesEndRef","useRef","scrollContainerRef","timestampCorrectionRef","_h","autoScroll","setAutoScroll","resetTranscriptionState","current","isMyNumber","speakerNumber","endpoints","mainextension","id","extension","Object","values","some","ext","exten","startIndex","Math","max","recentMessages","sorted","__spreadArray","sort","a","b","timestamp","addTranscriptionMessage","data","start","rawTimestamp","Number","channelIndex","isFinite","channel_index","segmentStart","segment_start","uniqueId","uniqueid","concat","toFixed","localElapsed","floor","Date","now","correctedTimestamp","error","boundedError","min","message","speaker","speaker_name","speaker_number","counterpart","speaker_counterpart_name","counterpartNumber","speaker_counterpart_number","transcription","is_final","prevMessages","findLastIndex","predicate","index","isSameSpeakerStream","existingMessage","existingMessageIndex","findIndex","msg","__assign","updatedMessages","similarFinalIndex","existing","trim","abs","activeInterimIndex_1","activeInterimIndex","unseenMessagesCount","setTimeout","scrollTop","scrollHeight","useEventListener","containerClassName","Fragment","AnimatePresence","motion","div","style","y","scale","onClick","FontAwesomeIcon","icon","faArrowDown","ref","onScroll","atBottom","isAtBottom","visible","total","map","key","layout","minutes","seconds","toString","padStart","repeat","Infinity","delay","eventDispatch","faAngleUp","displayName"],"mappings":"k0CAYMA,EAAmB,CACvBC,QAAS,CAAEC,OAAQ,EAAGC,QAAS,GAC/BC,QAAS,CAAEF,OAAQ,QAASC,QAAS,GACrCE,KAAM,CAAEH,OAAQ,EAAGC,QAAS,GAC5BG,WAAY,CACVC,SAAU,GACVC,KAAM,YAIJC,EAAe,CACnBC,uBAAwB,OACxBC,wBAAyB,OACzBC,gBAAiB,MACjBC,SAAU,UAoBNC,EAAyE,SAACC,OAC9EC,EAAID,EAAAC,KACJC,EAAOF,EAAAE,QACPC,UAAAC,OAAQ,IAAAD,EAAA,GAAEA,EAEJE,EAAgCC,EAAAA,SAAS,IAAxCC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAuBlC,OArBAI,EAAAA,WAAU,WACR,IAAIP,EAAJ,CAKAM,EAAe,IACf,IAAIE,EAAe,EAEbC,EAAeC,aAAY,WAC3BF,EAAeT,EAAKY,QACtBL,EAAeP,EAAKa,MAAM,EAAGJ,EAAe,IAC5CA,KAEAK,cAAcJ,EAEjB,GAAEP,GAEH,OAAO,WAAM,OAAAW,cAAcJ,EAAa,CAdvC,CAFCH,EAAeP,EAiBlB,GAAE,CAACA,EAAMC,EAASE,IAGjBY,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,+CACbF,EAAAA,QAAAC,cAAA,OAAA,KAAOV,GAGb,EAEMY,EAAgDC,EAAAA,MAAK,SAACpB,GAAE,IAAAqB,EAASrB,EAAAqB,UAC/DlB,EAA4BmB,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,MAAM,IAAxEC,oBAAiBC,SACnBC,EAAcL,EAAWA,aAAC,SAACC,GAAqB,OAAAA,EAAMI,WAAN,IAChDC,EAAuBN,eAAY,SAACC,GAAqB,OAAAA,EAAMM,YAAYC,SAAlB,IACvDC,EAAMC,qBAER3B,EAAgCC,EAAAA,SAAiC,IAAhE2B,EAAW5B,EAAA,GAAE6B,EAAc7B,EAAA,GAC5B8B,EAAwC7B,EAAAA,SAAiC,IAAxE8B,EAAeD,EAAA,GAAEE,EAAkBF,EAAA,GACpCG,EAAoChC,EAAAA,UAAS,GAA5CiC,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAChCG,EAAkCnC,EAAAA,UAAS,GAA1CoC,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAC9BG,EAAkDtC,EAAAA,SAAS,GAA1DuC,EAAoBD,EAAA,GAAEE,EAAuBF,EAAA,GAC9CG,EAAiBC,SAAuB,MACxCC,EAAqBD,SAAuB,MAC5CE,EAAyBF,SAAsB,MAC/CG,EAA8B7C,EAAAA,UAAS,GAAtC8C,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAM1BG,EAA0B,WAC9BJ,EAAuBK,QAAU,KACjCrB,EAAe,IACfG,EAAmB,IACnBG,GAAiB,GACjBG,GAAgB,GAChBG,EAAwB,GACxBO,GAAc,EAChB,EAYMG,EAAa,SAACC,eAClB,SAAK9B,IAAgB8B,MAG0B,QAA3CpD,UAAAF,EAAuB,QAAvBH,EAAA2B,EAAY+B,iBAAW,IAAA1D,OAAA,EAAAA,EAAA2D,oCAAgB,UAAI,IAAAtD,OAAA,EAAAA,EAAAuD,MAAOH,MAG7B,UAArB9B,EAAY+B,iBAAS,IAAAvB,OAAA,EAAAA,EAAE0B,YAClBC,OAAOC,OAAOpC,EAAY+B,UAAUG,WAAWG,MACpD,SAACC,GAAa,OAAAA,EAAIL,KAAOH,GAAiBQ,EAAIC,QAAUT,CAA1C,IAKpB,EAKAhD,EAAAA,WAAU,WACR,IAAM0D,EAAaC,KAAKC,IAAI,EAAGpC,EAAYpB,OA5ChB,KA6CrByD,EAAiBrC,EAAYnB,MAAMqD,GAEnCI,EAASC,EAAAA,cAAI,GAAAF,MAAgBG,MAAK,SAACC,EAAGC,GAAM,OAAAD,EAAEE,UAAYD,EAAEC,SAAS,IAC3EvC,EAAmBkC,EACrB,GAAG,CAACtC,IAGJ,IAAM4C,EAA0B,SAACC,GAC/B,IAtCMC,EAsCAC,EAAeC,OAAOH,EAAKF,YAAc,EACzCM,EAAeD,OAAOE,SAASF,OAAOH,EAAKM,gBAAkBH,OAAOH,EAAKM,gBAAkB,EAC3FC,EAAeJ,OAAOE,SAASF,OAAOH,EAAKQ,gBAC7CL,OAAOH,EAAKQ,eACZN,EACEO,EACJT,EAAKU,UAAYN,GAAgB,EAC7B,GAAAO,OAAGX,EAAKU,SAAY,KAAAC,OAAAP,EAAgB,KAAAO,OAAAJ,EAAaK,QAAQ,IACzD,UAAGZ,EAAKU,SAAY,KAAAC,OAAAT,GACpBW,GA/CAZ,EAAQE,OAAOrD,IAChBqD,OAAOE,SAASJ,IAAUA,GAAS,EAC/B,KAEFX,KAAKC,IAAI,EAAGD,KAAKwB,MAAMC,KAAKC,MAAQ,KAAQf,IA4C/CgB,EAAqBf,EAGzB,GAAqB,OAAjBW,EAAuB,CACzB,GAAuC,OAAnCzC,EAAuBK,QACzBL,EAAuBK,QAAUoC,EAAeX,MAC3C,CACL,IACMgB,EAAQL,GADIX,EAAe9B,EAAuBK,SAElD0C,EAAe7B,KAAKC,KAAK,EAAGD,KAAK8B,IAAI,EAAGF,IAC9C9C,EAAuBK,SAA0B,GAAf0C,CACnC,CAEDF,EAAqBf,GAAgB9B,EAAuBK,SAAW,GACvEwC,EAAqB3B,KAAKC,IAAI,EAAGD,KAAK8B,IAAIP,EAAcI,GACzD,CAED,IAAMI,EAAgC,CACpCvC,GAAI2B,EACJX,UAAWmB,EACXb,aAAYA,EACZG,aAAYA,EACZe,QAAStB,EAAKuB,cAAgB,UAC9B5C,cAAeqB,EAAKwB,gBAAkB,GACtCC,YAAazB,EAAK0B,0BAA4B,GAC9CC,kBAAmB3B,EAAK4B,4BAA8B,GACtDzG,KAAM6E,EAAK6B,eAAiB,GAC5BzG,QAAS4E,EAAK8B,WAAY,GAG5B1E,GAAe,SAAC2E,GACd,IAAMC,EAAgB,SAACC,GACrB,IAAK,IAAIC,EAAQH,EAAahG,OAAS,EAAGmG,GAAS,EAAGA,GAAS,EAC7D,GAAID,EAAUF,EAAaG,IACzB,OAAOA,EAGX,OAAQ,CACV,EAEMC,EAAsB,SAACC,GAC3B,OAAIf,EAAQjB,cAAgB,GAAKgC,EAAgBhC,cAAgB,EACxDgC,EAAgBhC,eAAiBiB,EAAQjB,aAG9CiB,EAAQ1C,eAAiByD,EAAgBzD,cACpCyD,EAAgBzD,gBAAkB0C,EAAQ1C,cAG5CyD,EAAgBd,UAAYD,EAAQC,OAC7C,EAIMe,EAAuBN,EAAaO,WAAU,SAACC,GAAQ,OAAAA,EAAIzD,KAAO2B,CAAX,IAC7D,IAA8B,IAA1B4B,EAEF,OADiBN,EAAaM,GACjBjH,UAAYiG,EAAQjG,QAI/BsE,gBAAAA,EAAAA,cAAA,GAAWqC,GAAmB,GAAA,CAAAS,EAAAA,SAAAA,EAAAA,SAAA,GAAAnB,GAAS,CAAAvC,GAAI,GAAG6B,OAAAU,EAAQvC,eAAMiC,KAAKC,WAAU,KAEvEyB,EAAe/C,EAAAA,cAAA,GAAOqC,GAAY,IACxBM,GAAwBhB,EACjCoB,GAIT,GAAIpB,EAAQjG,QAAS,CAEnB,IAAMsH,EAAoBV,GACxB,SAACW,GACC,OAAAA,EAASvH,SACT+G,EAAoBQ,IACpBA,EAASxH,KAAKyH,SAAWvB,EAAQlG,KAAKyH,QACtCtD,KAAKuD,IAAIF,EAAS7C,UAAYuB,EAAQvB,YAAc,CAHpD,IAKJ,IAA2B,IAAvB4C,EAMF,OALMD,EAAe/C,EAAAA,cAAA,GAAOqC,GAAY,IACxBW,GAAkBF,WAAAA,EAAAA,SAAA,CAAA,EAC7BnB,GACH,CAAAvC,GAAIiD,EAAaW,GAAmB5D,KAE/B2D,EAIT,IAAMK,EAAqBd,GACzB,SAACW,GAAa,OAACA,EAASvH,SAAW+G,EAAoBQ,EAAS,IAElE,OAA4B,IAAxBG,IACIL,EAAe/C,EAAAA,cAAA,GAAOqC,GAAY,IACxBe,GAAmBN,WAAAA,EAAAA,SAAA,CAAA,EAC9BnB,GACH,CAAAvC,GAAIiD,EAAae,GAAoBhE,KAEhC2D,GAIE/C,EAAAA,cAAAA,gBAAA,GAAAqC,GAAc,GAAA,CAAAV,IAAQ,EAClC,CAGD,IAIQoB,EAJFM,EAAqBf,GACzB,SAACW,GAAa,OAACA,EAASvH,SAAW+G,EAAoBQ,EAAS,IAElE,OAA4B,IAAxBI,IACIN,EAAe/C,EAAAA,cAAA,GAAOqC,GAAY,IACxBgB,GAAmBP,WAAAA,EAAAA,SAAA,CAAA,EAC9BnB,GACH,CAAAvC,GAAIiD,EAAagB,GAAoBjE,KAEhC2D,GAGE/C,EAAAA,cAAAA,gBAAA,GAAAqC,GAAc,GAAA,CAAAV,IAAQ,EACnC,GACF,EA0CM2B,EAAsB1D,KAAKC,IAAI,EAAGpC,EAAYpB,OAASgC,GAG7DpC,EAAAA,WAAU,WACmB,IAAvBwB,EAAYpB,SAEZuC,GAAcH,EAAmBM,QAEnCwE,YAAW,WACL9E,EAAmBM,UACrBN,EAAmBM,QAAQyE,UAAY/E,EAAmBM,QAAQ0E,aAErE,GAAE,KACMvF,IAAiBU,GAE1BZ,GAAiB,GAErB,GAAG,CAACP,IAEJxB,EAAAA,WAAU,WACJY,GAAaY,EAAYpB,OAAS,IACpCwC,GAAc,GACdV,GAAgB,GAChBH,GAAiB,GAErB,GAAG,CAACnB,IAGJ6G,mBAAiB,2CAA2C,SAACpD,GAC3DD,EAAwBC,EAC1B,IAEAoD,EAAgBA,iBAAC,qCAAqC,WACpD5E,GACF,IAEA4E,EAAgBA,iBAAC,qCAAqC,WACpD5E,GACF,IAIA,IAoBM6E,EAAqB,sJAAA1C,OAChB,aAAT/D,GAAuBD,EAAkB,iBAAmB,kBAG9D,OACET,UAAAC,cAAAD,EAAA,QAAAoH,SAAA,KACEpH,EAAA,QAAAC,cAACoH,EAAeA,gBACb,KAAAhH,GACCL,EAAA,QAAAC,cAACqH,EAAAA,OAAOC,IAAIjB,EAAAA,SAAA,CAAApG,UAAWiH,EAAoBK,MAAO9I,GAAkBT,GAClE+B,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,+LAEbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,qCACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,wJACbF,EAAA,QAAAC,cAACoH,kBAAe,KACb9F,GAAiBG,GAChB1B,EAAA,QAAAC,cAACqH,EAAAA,OAAOC,IAAG,CACTrJ,QAAS,CAAEE,QAAS,EAAGqJ,GAAI,GAAIC,MAAO,IACtCrJ,QAAS,CAAED,QAAS,EAAGqJ,EAAG,EAAGC,MAAO,GACpCpJ,KAAM,CAAEF,QAAS,EAAGqJ,GAAI,GAAIC,MAAO,IACnCxH,UAAU,gFAEVF,EAAA,QAAAC,cAAA,SAAA,CACE0H,QAjGD,WACjB1F,EAAmBM,UACrBN,EAAmBM,QAAQyE,UAAY/E,EAAmBM,QAAQ0E,aAGlEzF,GAAiB,GACjBG,GAAgB,GAChBU,GAAc,GACdP,EAAwBb,EAAYpB,QAExC,EAwFwBK,UAAU,iXAEVF,EAAC,QAAAC,cAAA2H,mBAAgBC,KAAMC,cAAa5H,UAAU,kBAE1Ca,EADH+F,EAAsB,EACjB,iCACA,oCAMd9G,EAAAA,QAAAC,cAAA,MAAA,CACE8H,IAAK9F,EACL+F,SAlIG,WACnB,GAAK/F,EAAmBM,QAAxB,CAEA,IAAM0F,EAVW,WACjB,IAAKhG,EAAmBM,QAAS,OAAO,EAClC,IAAAvD,EAA4CiD,EAAmBM,QAA7DyE,EAAShI,EAAAgI,UACjB,OAD+BhI,EAAAiI,aACTD,kBAA4B,EACpD,CAMmBkB,GACXlJ,EAA4CiD,EAAmBM,QAApDvD,EAAAgI,UAAchI,EAAAiI,4BAE3BgB,GAEFzG,GAAiB,GACjBG,GAAgB,GAChBU,GAAc,GACdP,EAAwBb,EAAYpB,UAEpC8B,GAAgB,GAChBU,GAAc,GAbuB,CAezC,EAmHkBnC,UAAW,oBACTuE,OAAArD,EAAgBvB,OAAS,EACrB,4PACA,uBAGsB,IAA3BuB,EAAgBvB,OACfG,EAAC,QAAAC,eAzDa,WAAM,OACtCD,EAAK,QAAAC,cAAA,MAAA,CAAAC,UAAU,iCAEbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,kEAEfF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,kEAEfF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,kEAEfF,EAAK,QAAAC,cAAA,MAAA,CAAAC,UAAU,qEAgD0B,MAEzBF,EAAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,gBAEZe,EAAYpB,OA9UN,KA+ULG,EAAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,mIACZa,EAAE,qCAAsC,CACvCoH,QAAS/G,EAAgBvB,OACzBuI,MAAOnH,EAAYpB,UAKxBuB,EAAgBiH,KAAI,SAAClD,EAASa,GAAU,OACvChG,EAAAA,QAACC,cAAAqH,EAAMA,OAACC,IAAG,CACTe,IAAKnD,EAAQvC,GACb2F,QAAM,EACNrK,QAAS,CAAEE,QAAS,EAAGqJ,EAAG,IAC1BpJ,QAAS,CAAED,QAAS,EAAGqJ,EAAG,GAC1BlJ,WAAY,CAAEC,SAAU,GAAK+J,OAAQ,CAAE/J,SAAU,MACjD0B,UAAU,WAGVF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,WACbF,UAAMC,cAAA,OAAA,CAAAC,UAAU,wFACbsC,EAAW2C,EAAQ1C,eAChB1B,EAAE,YAAa,MACfoE,EAAQC,UAKhBpF,UACEC,cAAA,MAAA,CAAAC,UAAW,+DACTuE,OAAAjC,EAAW2C,EAAQ1C,eACf,4EACA,sFAGNzC,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,sDACbF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,aACbF,EAAAA,QAAAC,cAAClB,EACC,CAAAE,KAAMkG,EAAQlG,KACdC,QAASiG,EAAQjG,QACjBE,MAAO,MAIXY,UACEC,cAAA,MAAA,CAAAC,UAAW,uDACTuE,OAAAjC,EAAW2C,EAAQ1C,eACf,4EACA,uFApHbmB,EAuHwBuB,EAAQvB,UAtHjD4E,EAAUpF,KAAKwB,MAAMhB,EAAY,IACjC6E,EAAUrF,KAAKwB,MAAMhB,EAAY,IAChC,GAAAa,OAAG+D,EAAQE,WAAWC,SAAS,EAAG,iBAAQF,EAAQC,WAAWC,SAAS,EAAG,WAyHtDxD,EAAQjG,SAAmC,KAAxBiG,EAAQlG,KAAKyH,QAChC1G,EAAC,QAAAC,cAAAqH,SAAOC,IAAG,CACTrJ,QAAS,CAAEE,QAAS,GACpBC,QAAS,CAAED,QAAS,GACpBE,KAAM,CAAEF,QAAS,GACjB8B,UAAU,oDAEVF,UAAMC,cAAA,OAAA,CAAAC,UAAU,+DACba,EAAE,gCAAiC,KAEtCf,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,2CACbF,UAAAC,cAACqH,EAAMA,OAACC,IACN,CAAArH,UAAU,mEACV7B,QAAS,CAAED,QAAS,CAAC,GAAK,EAAG,KAC7BG,WAAY,CAAEC,SAAU,IAAKoK,OAAQC,IAAUC,MAAO,KAExD9I,UAAAC,cAACqH,EAAMA,OAACC,IACN,CAAArH,UAAU,mEACV7B,QAAS,CAAED,QAAS,CAAC,GAAK,EAAG,KAC7BG,WAAY,CAAEC,SAAU,IAAKoK,OAAQC,IAAUC,MAAO,MAExD9I,EAAAA,QAACC,cAAAqH,SAAOC,IAAG,CACTrH,UAAU,mEACV7B,QAAS,CAAED,QAAS,CAAC,GAAK,EAAG,KAC7BG,WAAY,CAAEC,SAAU,IAAKoK,OAAQC,IAAUC,MAAO,SApJhE,IAAClF,EACjB4E,EACAC,CA2EuD,IA8EzCzI,EAAAA,QAAAC,cAAA,MAAA,CAAK8H,IAAKhG,EAAgB7B,UAAU,gBAQ9CF,EAAAA,QAAKC,cAAA,MAAA,CAAAC,UAAU,qDACbF,EAAAA,QAAAC,cAAA,SAAA,CACE0H,QAAS,WAAM,OAAAoB,gBAAc,mCAAoC,CAAA,IACjE7I,UAAU,wbAEVF,EAAC,QAAAC,cAAA2H,mBAAgBC,KAAMmB,YAAW9I,UAAU,0BAC3Ca,EAAE,qBASrB,IAEAZ,EAAkB8I,YAAc"}
1
+ {"version":3,"file":"TranscriptionView.js","sources":["../../../src/components/TranscriptionView/TranscriptionView.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC, memo, useState, useEffect, useRef } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleUp, faArrowDown } from '@fortawesome/free-solid-svg-icons'\n\nconst ANIMATION_CONFIG = {\n initial: { height: 0, opacity: 0 },\n animate: { height: '360px', opacity: 1 },\n exit: { height: 0, opacity: 0 },\n transition: {\n duration: 0.1,\n ease: 'easeOut',\n },\n}\n\nconst STYLE_CONFIG = {\n borderBottomLeftRadius: '20px',\n borderBottomRightRadius: '20px',\n transformOrigin: 'top',\n overflow: 'hidden',\n} as const\n\ninterface TranscriptionViewProps {\n isVisible: boolean\n}\n\ninterface TranscriptionMessage {\n id: string\n timestamp: number\n channelIndex: number\n segmentStart: number\n speaker: string\n speakerNumber: string\n counterpart: string\n counterpartNumber: string\n text: string\n isFinal: boolean\n}\n\nconst TypewriterText: FC<{ text: string; isFinal: boolean; speed?: number }> = ({\n text,\n isFinal,\n speed = 50,\n}) => {\n const [displayText, setDisplayText] = useState('')\n\n useEffect(() => {\n if (isFinal) {\n setDisplayText(text)\n return\n }\n\n setDisplayText('')\n let currentIndex = 0\n\n const typeInterval = setInterval(() => {\n if (currentIndex < text.length) {\n setDisplayText(text.slice(0, currentIndex + 1))\n currentIndex++\n } else {\n clearInterval(typeInterval)\n }\n }, speed)\n\n return () => clearInterval(typeInterval)\n }, [text, isFinal, speed])\n\n return (\n <div className='pi-inline-flex pi-items-center pi-flex-wrap'>\n <span>{displayText}</span>\n </div>\n )\n}\n\nconst TranscriptionView: FC<TranscriptionViewProps> = memo(({ isVisible }) => {\n const { actionsExpanded, view } = useSelector((state: RootState) => state.island)\n const currentUser = useSelector((state: RootState) => state.currentUser)\n const currentCallStartTime = useSelector((state: RootState) => state.currentCall.startTime)\n const { t } = useTranslation()\n\n const [allMessages, setAllMessages] = useState<TranscriptionMessage[]>([])\n const [visibleMessages, setVisibleMessages] = useState<TranscriptionMessage[]>([])\n const [hasNewContent, setHasNewContent] = useState(false)\n const [userScrolled, setUserScrolled] = useState(false)\n const [lastSeenMessageIndex, setLastSeenMessageIndex] = useState(0)\n const messagesEndRef = useRef<HTMLDivElement>(null)\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n const timestampCorrectionRef = useRef<number | null>(null)\n const [autoScroll, setAutoScroll] = useState(true)\n\n const MAX_VISIBLE_MESSAGES = 100\n const BUFFER_MESSAGES = 10\n const SCROLL_DEBOUNCE_MS = 100\n\n const resetTranscriptionState = () => {\n timestampCorrectionRef.current = null\n setAllMessages([])\n setVisibleMessages([])\n setHasNewContent(false)\n setUserScrolled(false)\n setLastSeenMessageIndex(0)\n setAutoScroll(true)\n }\n\n const getLocalCallElapsedSeconds = () => {\n const start = Number(currentCallStartTime)\n if (!Number.isFinite(start) || start <= 0) {\n return null\n }\n return Math.max(0, Math.floor(Date.now() / 1000) - start)\n }\n\n\n // Function to check if a speaker number belongs to current user\n const isMyNumber = (speakerNumber: string): boolean => {\n if (!currentUser || !speakerNumber) return false\n\n // Check main extension from endpoints\n if (currentUser.endpoints?.mainextension?.[0]?.id === speakerNumber) return true\n\n // Check other extensions in endpoints\n if (currentUser.endpoints?.extension) {\n return Object.values(currentUser.endpoints.extension).some(\n (ext: any) => ext.id === speakerNumber || ext.exten === speakerNumber,\n )\n }\n\n return false\n }\n\n // Update visible messages when all messages change.\n // Sort all messages (finals + interims) chronologically so that concurrent\n // speakers always appear in the correct time order.\n useEffect(() => {\n const startIndex = Math.max(0, allMessages.length - MAX_VISIBLE_MESSAGES)\n const recentMessages = allMessages.slice(startIndex)\n // JS Array.sort is stable: messages with equal timestamps keep insertion order.\n const sorted = [...recentMessages].sort((a, b) => a.timestamp - b.timestamp)\n setVisibleMessages(sorted)\n }, [allMessages])\n\n // Handle incoming transcription messages\n const addTranscriptionMessage = (data: any) => {\n const rawTimestamp = Number(data.timestamp) || 0\n const channelIndex = Number.isFinite(Number(data.channel_index)) ? Number(data.channel_index) : -1\n const segmentStart = Number.isFinite(Number(data.segment_start))\n ? Number(data.segment_start)\n : rawTimestamp\n const uniqueId =\n data.uniqueid && channelIndex >= 0\n ? `${data.uniqueid}_${channelIndex}_${segmentStart.toFixed(3)}`\n : `${data.uniqueid}_${rawTimestamp}`\n const localElapsed = getLocalCallElapsedSeconds()\n let correctedTimestamp = rawTimestamp\n\n // Keep transcription timestamps aligned to local call timer, avoiding progressive drift.\n if (localElapsed !== null) {\n if (timestampCorrectionRef.current === null) {\n timestampCorrectionRef.current = localElapsed - rawTimestamp\n } else {\n const predicted = rawTimestamp + timestampCorrectionRef.current\n const error = localElapsed - predicted\n const boundedError = Math.max(-2, Math.min(2, error))\n timestampCorrectionRef.current += boundedError * 0.2\n }\n\n correctedTimestamp = rawTimestamp + (timestampCorrectionRef.current || 0)\n correctedTimestamp = Math.max(0, Math.min(localElapsed, correctedTimestamp))\n }\n\n const message: TranscriptionMessage = {\n id: uniqueId,\n timestamp: correctedTimestamp,\n channelIndex,\n segmentStart,\n speaker: data.speaker_name || 'Unknown',\n speakerNumber: data.speaker_number || '',\n counterpart: data.speaker_counterpart_name || '',\n counterpartNumber: data.speaker_counterpart_number || '',\n text: data.transcription || '',\n isFinal: data.is_final || false,\n }\n\n setAllMessages((prevMessages) => {\n const findLastIndex = (predicate: (message: TranscriptionMessage) => boolean) => {\n for (let index = prevMessages.length - 1; index >= 0; index -= 1) {\n if (predicate(prevMessages[index])) {\n return index\n }\n }\n return -1\n }\n\n const isSameSpeakerStream = (existingMessage: TranscriptionMessage) => {\n if (message.channelIndex >= 0 && existingMessage.channelIndex >= 0) {\n return existingMessage.channelIndex === message.channelIndex\n }\n\n if (message.speakerNumber && existingMessage.speakerNumber) {\n return existingMessage.speakerNumber === message.speakerNumber\n }\n\n return existingMessage.speaker === message.speaker\n }\n\n // 1. Exact match by segment identity – update in place, but never\n // overwrite an already-finalized message with a new interim.\n const existingMessageIndex = prevMessages.findIndex((msg) => msg.id === uniqueId)\n if (existingMessageIndex !== -1) {\n const existing = prevMessages[existingMessageIndex]\n if (existing.isFinal && !message.isFinal) {\n // UniqueId collision: the existing segment was finalized but the\n // backend started a new interim with a colliding id. Treat it as\n // a brand-new message so the final bubble is preserved.\n return [...prevMessages, { ...message, id: `${message.id}_${Date.now()}` }]\n }\n const updatedMessages = [...prevMessages]\n updatedMessages[existingMessageIndex] = message\n return updatedMessages\n }\n\n // 2. Final message path\n if (message.isFinal) {\n // Check for a duplicate final with identical text and close timestamp\n const similarFinalIndex = findLastIndex(\n (existing) =>\n existing.isFinal &&\n isSameSpeakerStream(existing) &&\n existing.text.trim() === message.text.trim() &&\n Math.abs(existing.timestamp - message.timestamp) <= 1,\n )\n if (similarFinalIndex !== -1) {\n const updatedMessages = [...prevMessages]\n updatedMessages[similarFinalIndex] = {\n ...message,\n id: prevMessages[similarFinalIndex].id,\n }\n return updatedMessages\n }\n\n // Replace the active interim from the same speaker (the \"speaking\" bubble)\n const activeInterimIndex = findLastIndex(\n (existing) => !existing.isFinal && isSameSpeakerStream(existing),\n )\n if (activeInterimIndex !== -1) {\n const updatedMessages = [...prevMessages]\n updatedMessages[activeInterimIndex] = {\n ...message,\n id: prevMessages[activeInterimIndex].id,\n }\n return updatedMessages\n }\n\n // No interim to replace – just append.\n return [...prevMessages, message]\n }\n\n // 3. Interim message path – keep at most one active interim per speaker/channel.\n const activeInterimIndex = findLastIndex(\n (existing) => !existing.isFinal && isSameSpeakerStream(existing),\n )\n if (activeInterimIndex !== -1) {\n const updatedMessages = [...prevMessages]\n updatedMessages[activeInterimIndex] = {\n ...message,\n id: prevMessages[activeInterimIndex].id,\n }\n return updatedMessages\n }\n\n return [...prevMessages, message]\n })\n }\n\n // Check if user is at the bottom of the scroll area\n const isAtBottom = () => {\n if (!scrollContainerRef.current) return true\n const { scrollTop, scrollHeight, clientHeight } = scrollContainerRef.current\n return scrollHeight - scrollTop <= clientHeight + 10 // 10px tolerance\n }\n\n // Handle scroll events to detect user scrolling\n const handleScroll = () => {\n if (!scrollContainerRef.current) return\n\n const atBottom = isAtBottom()\n const { scrollTop, scrollHeight, clientHeight } = scrollContainerRef.current\n\n if (atBottom) {\n // User is at bottom, clear indicators and enable auto-scroll\n setHasNewContent(false)\n setUserScrolled(false)\n setAutoScroll(true)\n setLastSeenMessageIndex(allMessages.length)\n } else {\n setUserScrolled(true)\n setAutoScroll(false)\n }\n }\n\n // Scroll to bottom function\n const scrollToBottom = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollTop = scrollContainerRef.current.scrollHeight\n\n // Update state\n setHasNewContent(false)\n setUserScrolled(false)\n setAutoScroll(true)\n setLastSeenMessageIndex(allMessages.length)\n }\n }\n\n // Calculate unseen messages count\n const unseenMessagesCount = Math.max(0, allMessages.length - lastSeenMessageIndex)\n\n // Auto-scroll to bottom when new messages arrive\n useEffect(() => {\n if (allMessages.length === 0) return\n\n if (autoScroll && scrollContainerRef.current) {\n // Auto-scroll to bottom immediately for new messages\n setTimeout(() => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollTop = scrollContainerRef.current.scrollHeight\n }\n }, 100)\n } else if (userScrolled && !autoScroll) {\n // If user has scrolled up and there's a new message, show the indicator\n setHasNewContent(true)\n }\n }, [allMessages])\n\n useEffect(() => {\n if (isVisible && allMessages.length > 0) {\n setAutoScroll(true)\n setUserScrolled(false)\n setHasNewContent(false)\n }\n }, [isVisible])\n\n // Listen for transcription events\n useEventListener('phone-island-conversation-transcription', (transcriptionData: any) => {\n addTranscriptionMessage(transcriptionData)\n })\n\n useEventListener('phone-island-transcription-opened', () => {\n resetTranscriptionState()\n })\n\n useEventListener('phone-island-transcription-closed', () => {\n resetTranscriptionState()\n })\n\n\n // Format timestamp - converts seconds from call start to MM:SS format\n const formatTimestamp = (timestamp: number) => {\n const minutes = Math.floor(timestamp / 60)\n const seconds = Math.floor(timestamp % 60)\n return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n\n // Skeleton component for loading state\n const TranscriptionSkeleton: FC = () => (\n <div className='pi-space-y-2 pi-animate-pulse'>\n {/* First shorter bar */}\n <div className='pi-h-4 pi-bg-gray-200 dark:pi-bg-gray-700 pi-rounded pi-w-2/5'></div>\n {/* Second longer bar */}\n <div className='pi-h-4 pi-bg-gray-200 dark:pi-bg-gray-700 pi-rounded pi-w-4/5'></div>\n {/* First shorter bar */}\n <div className='pi-h-4 pi-bg-gray-200 dark:pi-bg-gray-700 pi-rounded pi-w-2/5'></div>\n {/* Third medium bar */}\n <div className='pi-h-4 pi-bg-gray-200 dark:pi-bg-gray-700 pi-rounded pi-w-4/5'></div>\n </div>\n )\n\n const containerClassName = `pi-absolute pi-w-full pi-bg-elevationL2 pi-flex pi-flex-col pi-text-iconWhite dark:pi-text-iconWhiteDark pi-left-0 -pi-z-10 pi-pointer-events-auto ${\n view === 'settings' || actionsExpanded ? 'pi-top-[17rem]' : 'pi-top-[13rem]'\n }`\n\n return (\n <>\n <AnimatePresence>\n {isVisible && (\n <motion.div className={containerClassName} style={STYLE_CONFIG} {...ANIMATION_CONFIG}>\n <div className='pi-h-full pi-rounded-lg pi-overflow-hidden pi-bg-elevationL2 dark:pi-bg-elevationL2Dark pi-relative pi-flex pi-flex-col pi-border-2 pi-border-gray-100 dark:pi-border-gray-600 pi-shadow-lg'>\n {/* Main Content Card */}\n <div className='pi-flex-1 pi-pt-4 pi-px-4 pi-mt-8'>\n <div className='pi-h-60 pi-bg-gray-100 dark:pi-bg-gray-800 pi-rounded-lg pi-border pi-border-gray-200 dark:pi-border-gray-700 pi-overflow-hidden pi-flex pi-flex-col'>\n <AnimatePresence>\n {hasNewContent && userScrolled && (\n <motion.div\n initial={{ opacity: 0, y: -10, scale: 0.9 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: -10, scale: 0.9 }}\n className='pi-absolute pi-top-16 pi-left-0 pi-right-0 pi-flex pi-justify-center pi-z-20'\n >\n <button\n onClick={scrollToBottom}\n className='pi-bg-phoneIslandActive dark:pi-bg-phoneIslandActiveDark hover:pi-bg-gray-500 dark:hover:pi-bg-gray-50 focus:pi-ring-emerald-500 dark:focus:pi-ring-emerald-300 pi-text-primaryInvert dark:pi-text-primaryInvertDark pi-px-4 pi-py-2 pi-rounded-full pi-text-sm pi-shadow-lg pi-flex pi-items-center pi-gap-2 pi-transition-all pi-duration-200 pi-border pi-backdrop-blur-sm'\n >\n <FontAwesomeIcon icon={faArrowDown} className='pi-w-4 pi-h-4' />\n {unseenMessagesCount > 1\n ? t('TranscriptionView.New messages')\n : t('TranscriptionView.New message')}\n </button>\n </motion.div>\n )}\n </AnimatePresence>\n\n <div\n ref={scrollContainerRef}\n onScroll={handleScroll}\n className={`pi-flex-1 pi-p-4 ${\n visibleMessages.length > 0\n ? 'pi-overflow-y-auto pi-scrollbar-thin pi-scrollbar-thumb-gray-400 pi-scrollbar-thumb-rounded-full pi-scrollbar-thumb-opacity-50 pi-scrollbar-track-gray-200 dark:pi-scrollbar-track-gray-900 pi-scrollbar-track-rounded-full pi-scrollbar-track-opacity-25'\n : 'pi-overflow-hidden'\n }`}\n >\n {visibleMessages.length === 0 ? (\n <TranscriptionSkeleton />\n ) : (\n <div className='pi-space-y-4'>\n {/* Show indicator if there are more messages than displayed */}\n {allMessages.length > MAX_VISIBLE_MESSAGES && (\n <div className='pi-text-center pi-py-2 pi-text-xs pi-text-gray-500 dark:pi-text-gray-400 pi-border-b pi-border-gray-200 dark:pi-border-gray-700'>\n {t('TranscriptionView.Showing messages', {\n visible: visibleMessages.length,\n total: allMessages.length,\n })}\n </div>\n )}\n\n {visibleMessages.map((message, index) => (\n <motion.div\n key={message.id}\n layout\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.3, layout: { duration: 0.25 } }}\n className='pi-mb-4'\n >\n {/* Speaker Name */}\n <div className='pi-mb-2'>\n <span className='pi-font-medium pi-text-xs pi-text-secondaryNeutral dark:pi-text-secondaryNeutralDark'>\n {isMyNumber(message.speakerNumber)\n ? t('Common.Me', 'Me')\n : message.speaker}\n </span>\n </div>\n\n {/* Message Bubble with Background */}\n <div\n className={`pi-relative pi-p-3 pi-rounded-lg pi-text-xs pi-font-regular ${\n isMyNumber(message.speakerNumber)\n ? 'pi-text-gray-800 dark:pi-text-gray-100 pi-bg-gray-200 dark:pi-bg-gray-600'\n : 'pi-text-indigo-800 dark:pi-text-indigo-100 pi-bg-indigo-100 dark:pi-bg-indigo-700'\n }`}\n >\n <div className='pi-flex pi-items-start pi-justify-between pi-gap-3'>\n <div className='pi-flex-1'>\n <TypewriterText\n text={message.text}\n isFinal={message.isFinal}\n speed={30}\n />\n </div>\n {/* Timestamp on the right */}\n <div\n className={`pi-flex-shrink-0 pi-mt-1 pi-text-xs pi-font-regular ${\n isMyNumber(message.speakerNumber)\n ? 'pi-text-gray-800 dark:pi-text-gray-100 pi-bg-gray-200 dark:pi-bg-gray-600'\n : 'pi-text-indigo-800 dark:pi-text-indigo-100 pi-bg-indigo-100 dark:pi-bg-indigo-700'\n }`}\n >\n {formatTimestamp(message.timestamp)}\n </div>\n </div>\n </div>\n\n {!message.isFinal && message.text.trim() !== '' && (\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n className='pi-mt-1 pi-ml-3 pi-flex pi-items-center pi-gap-1'\n >\n <span className='pi-text-xs pi-text-gray-400 dark:pi-text-gray-500 pi-italic'>\n {t('TranscriptionView.Is speaking', '')}\n </span>\n <div className='pi-inline-flex pi-items-center pi-gap-1'>\n <motion.div\n className='pi-w-1 pi-h-1 pi-bg-gray-400 dark:pi-bg-gray-500 pi-rounded-full'\n animate={{ opacity: [0.3, 1, 0.3] }}\n transition={{ duration: 1.5, repeat: Infinity, delay: 0 }}\n />\n <motion.div\n className='pi-w-1 pi-h-1 pi-bg-gray-400 dark:pi-bg-gray-500 pi-rounded-full'\n animate={{ opacity: [0.3, 1, 0.3] }}\n transition={{ duration: 1.5, repeat: Infinity, delay: 0.2 }}\n />\n <motion.div\n className='pi-w-1 pi-h-1 pi-bg-gray-400 dark:pi-bg-gray-500 pi-rounded-full'\n animate={{ opacity: [0.3, 1, 0.3] }}\n transition={{ duration: 1.5, repeat: Infinity, delay: 0.4 }}\n />\n </div>\n </motion.div>\n )}\n </motion.div>\n ))}\n <div ref={messagesEndRef} className='pi-pb-4' />\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Footer with Close Button */}\n <div className='pi-flex pi-items-center pi-justify-center pi-py-2'>\n <button\n onClick={() => eventDispatch('phone-island-transcription-close', {})}\n className='pi-bg-transparent dark:enabled:hover:pi-bg-gray-700/30 enabled:hover:pi-bg-gray-300/70 focus:pi-ring-offset-gray-200 dark:focus:pi-ring-gray-500 focus:pi-ring-gray-400 pi-text-secondaryNeutral pi-outline-none pi-border-transparent dark:pi-text-secondaryNeutralDark pi-h-12 pi-w-24 pi-rounded-fullpi-px-4 pi-py-2 pi-rounded-full pi-text-lg pi-flex pi-items-center pi-gap-2 pi-transition-all pi-duration-200 pi-border pi-backdrop-blur-sm'\n >\n <FontAwesomeIcon icon={faAngleUp} className='pi-w-4 pi-h-4 pi-ml-1' />\n {t('Common.Close')}\n </button>\n </div>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </>\n )\n})\n\nTranscriptionView.displayName = 'TranscriptionView'\n\nexport default TranscriptionView\n"],"names":["ANIMATION_CONFIG","initial","height","opacity","animate","exit","transition","duration","ease","STYLE_CONFIG","borderBottomLeftRadius","borderBottomRightRadius","transformOrigin","overflow","TypewriterText","_a","text","isFinal","_b","speed","_c","useState","displayText","setDisplayText","useEffect","currentIndex","typeInterval","setInterval","length","slice","clearInterval","React","createElement","className","TranscriptionView","memo","isVisible","useSelector","state","island","actionsExpanded","view","currentUser","currentCallStartTime","currentCall","startTime","t","useTranslation","allMessages","setAllMessages","_d","visibleMessages","setVisibleMessages","_e","hasNewContent","setHasNewContent","_f","userScrolled","setUserScrolled","_g","lastSeenMessageIndex","setLastSeenMessageIndex","messagesEndRef","useRef","scrollContainerRef","timestampCorrectionRef","_h","autoScroll","setAutoScroll","resetTranscriptionState","current","isMyNumber","speakerNumber","endpoints","mainextension","id","extension","Object","values","some","ext","exten","startIndex","Math","max","recentMessages","sorted","__spreadArray","sort","a","b","timestamp","addTranscriptionMessage","data","start","rawTimestamp","Number","channelIndex","isFinite","channel_index","segmentStart","segment_start","uniqueId","uniqueid","concat","toFixed","localElapsed","floor","Date","now","correctedTimestamp","error","boundedError","min","message","speaker","speaker_name","speaker_number","counterpart","speaker_counterpart_name","counterpartNumber","speaker_counterpart_number","transcription","is_final","prevMessages","findLastIndex","predicate","index","isSameSpeakerStream","existingMessage","existingMessageIndex","findIndex","msg","__assign","updatedMessages","similarFinalIndex","existing","trim","abs","activeInterimIndex_1","activeInterimIndex","unseenMessagesCount","setTimeout","scrollTop","scrollHeight","useEventListener","transcriptionData","containerClassName","Fragment","AnimatePresence","motion","div","style","y","scale","onClick","FontAwesomeIcon","icon","faArrowDown","ref","onScroll","atBottom","isAtBottom","visible","total","map","key","layout","minutes","seconds","toString","padStart","repeat","Infinity","delay","eventDispatch","faAngleUp","displayName"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../node_modules/mic-check/lib/index.js");var e=require("../webrtc/janus.js"),i=require("../../store/index.js"),r=require("../user/default_device.js");require("react");var t=require("../../utils/genericFunctions/localStorage.js");require("../../node_modules/tslib/tslib.es6.js");var n=require("../../_virtual/index8.js"),o=e.default;exports.checkMediaPermissions=function(){if(r.isPhysical())return i.store.dispatch.alerts.removeAlert("browser_permissions"),i.store.dispatch.alerts.removeAlert("user_permissions"),i.store.dispatch.alerts.removeAlert("busy_camera"),void i.store.dispatch.alerts.removeAlert("unknown_media_permissions");n.__exports.requestMediaPermissions({audio:!0}).then((function(){})).catch((function(e){var r,t,s=e.type,d=null!==(t=((r={})[n.__exports.MediaPermissionsErrorType.SystemPermissionDenied]={alert:"browser_permissions",message:"WebRTC: browser does not have permission to access camera or microphone"},r[n.__exports.MediaPermissionsErrorType.UserPermissionDenied]={alert:"user_permissions",message:"WebRTC: user didn't allow app to access camera or microphone"},r)[s])&&void 0!==t?t:{alert:"unknown_media_permissions",message:"WebRTC: can't access audio or camera on this device. unknown error"};i.store.dispatch.alerts.setAlert(d.alert),o.error&&o.error(d.message)}))},exports.checkWebCamPermission=function(){return new Promise((function(e){n.__exports.requestMediaPermissions({video:!0}).then((function(){e(!0)})).catch((function(i){console.error("Error requesting webcam permission:",i),e(!1)}))}))},exports.getCurrentAudioInputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-input-device").deviceId||null,r=i.store.select.mediaDevices.audioInputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Audio input device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-audio-input-device",{deviceId:o})),o},exports.getCurrentAudioOutputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-output-device").deviceId||null,r=i.store.select.mediaDevices.audioOutputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Audio output device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-audio-output-device",{deviceId:o})),o},exports.getCurrentVideoInputDeviceId=function(){var e=t.getJSONItem("phone-island-video-input-device").deviceId||null,r=i.store.select.mediaDevices.videoInputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Video input device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-video-input-device",{deviceId:o})),o},exports.getSupportedDevices=function(e){var i,r,t=!1,n=!1,s=!1,d=!1;i=function(){var i={audio:t,audioCap:s,video:n,videoCap:d};o.log&&o.log("supportedDevices=",i),e()},r=[],navigator.mediaDevices.enumerateDevices().then((function(e){e.forEach((function(e){var i=!1;r.forEach((function(r){r.deviceId===e.deviceId&&r.kind===e.kind&&(i=!0)})),i||("videoinput"!==e.kind||d||(d=!0),"audioinput"!==e.kind||s||(s=!0),"audioinput"===e.kind&&(t=!0),e.kind,"videoinput"===e.kind&&(n=!0),r.push(e))})),i&&i()}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../node_modules/mic-check/lib/index.js");var e=require("../webrtc/janus.js"),i=require("../../store/index.js"),r=require("../user/default_device.js");require("react");var t=require("../../utils/genericFunctions/localStorage.js");require("../../node_modules/tslib/tslib.es6.js");var n=require("../../_virtual/index6.js"),o=e.default;exports.checkMediaPermissions=function(){if(r.isPhysical())return i.store.dispatch.alerts.removeAlert("browser_permissions"),i.store.dispatch.alerts.removeAlert("user_permissions"),i.store.dispatch.alerts.removeAlert("busy_camera"),void i.store.dispatch.alerts.removeAlert("unknown_media_permissions");n.__exports.requestMediaPermissions({audio:!0}).then((function(){})).catch((function(e){var r,t,s=e.type,d=null!==(t=((r={})[n.__exports.MediaPermissionsErrorType.SystemPermissionDenied]={alert:"browser_permissions",message:"WebRTC: browser does not have permission to access camera or microphone"},r[n.__exports.MediaPermissionsErrorType.UserPermissionDenied]={alert:"user_permissions",message:"WebRTC: user didn't allow app to access camera or microphone"},r)[s])&&void 0!==t?t:{alert:"unknown_media_permissions",message:"WebRTC: can't access audio or camera on this device. unknown error"};i.store.dispatch.alerts.setAlert(d.alert),o.error&&o.error(d.message)}))},exports.checkWebCamPermission=function(){return new Promise((function(e){n.__exports.requestMediaPermissions({video:!0}).then((function(){e(!0)})).catch((function(i){console.error("Error requesting webcam permission:",i),e(!1)}))}))},exports.getCurrentAudioInputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-input-device").deviceId||null,r=i.store.select.mediaDevices.audioInputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Audio input device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-audio-input-device",{deviceId:o})),o},exports.getCurrentAudioOutputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-output-device").deviceId||null,r=i.store.select.mediaDevices.audioOutputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Audio output device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-audio-output-device",{deviceId:o})),o},exports.getCurrentVideoInputDeviceId=function(){var e=t.getJSONItem("phone-island-video-input-device").deviceId||null,r=i.store.select.mediaDevices.videoInputDevices(i.store.getState());if(r.find((function(i){return i.deviceId===e})))return e;var n=r.find((function(e){return"default"===e.deviceId||""===e.deviceId}))||r[0],o=n?n.deviceId:"default";return null!==e&&o!==e&&(console.warn("Video input device ".concat(e," no longer available, falling back to default device")),t.setJSONItem("phone-island-video-input-device",{deviceId:o})),o},exports.getSupportedDevices=function(e){var i,r,t=!1,n=!1,s=!1,d=!1;i=function(){var i={audio:t,audioCap:s,video:n,videoCap:d};o.log&&o.log("supportedDevices=",i),e()},r=[],navigator.mediaDevices.enumerateDevices().then((function(e){e.forEach((function(e){var i=!1;r.forEach((function(r){r.deviceId===e.deviceId&&r.kind===e.kind&&(i=!0)})),i||("videoinput"!==e.kind||d||(d=!0),"audioinput"!==e.kind||s||(s=!0),"audioinput"===e.kind&&(t=!0),e.kind,"videoinput"===e.kind&&(n=!0),r.push(e))})),i&&i()}))};
2
2
  //# sourceMappingURL=devices.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../fontawesome-svg-core/index.mjs.js");require("../../prop-types/index.js");var e=require("react"),r=require("../../../_virtual/index6.js");function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var n=o(e);function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,o=Array(e);r<e;r++)o[r]=t[r];return o}function i(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,e||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var o,n,a,i,s=[],l=!0,f=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(o=a.call(r)).done)&&(s.push(o.value),s.length!==e);l=!0);}catch(t){f=!0,n=t}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(f)throw n}}return s}}(t,e)||p(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||p(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function p(t,e){if(t){if("string"==typeof t)return a(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}var b;try{var y=require("@fortawesome/fontawesome-svg-core/package.json");b=y.version}catch(t){b="undefined"!=typeof process&&process.env.FA_VERSION||"7.0.0"}function m(t){var e=t.beat,r=t.fade,o=t.beatFade,n=t.bounce,a=t.shake,s=t.flash,l=t.spin,u=t.spinPulse,c=t.spinReverse,p=t.pulse,y=t.fixedWidth,m=t.inverse,d=t.border,x=t.listItem,v=t.flip,h=t.size,g=t.rotation,O=t.pull,w=t.swapOpacity,j=t.rotateBy,A=t.widthAuto,I=function(t,e){for(var r=f(t.split("-"),2),o=r[0],n=r[1],a=f(e.split("-"),2),i=a[0],s=a[1],l=o.split("."),u=i.split("."),c=0;c<Math.max(l.length,u.length);c++){var p=l[c]||"0",b=u[c]||"0",y=parseInt(p,10),m=parseInt(b,10);if(y!==m)return y>m}for(var d=0;d<Math.max(l.length,u.length);d++){var x=l[d]||"0",v=u[d]||"0";if(x!==v&&x.length!==v.length)return x.length<v.length}return!(n&&!s)}(b,"7.0.0"),k=i(i(i(i(i(i({"fa-beat":e,"fa-fade":r,"fa-beat-fade":o,"fa-bounce":n,"fa-shake":a,"fa-flash":s,"fa-spin":l,"fa-spin-reverse":c,"fa-spin-pulse":u,"fa-pulse":p,"fa-fw":y,"fa-inverse":m,"fa-border":d,"fa-li":x,"fa-flip":!0===v,"fa-flip-horizontal":"horizontal"===v||"both"===v,"fa-flip-vertical":"vertical"===v||"both"===v},"fa-".concat(h),null!=h),"fa-rotate-".concat(g),null!=g&&0!==g),"fa-pull-".concat(O),null!=O),"fa-swap-opacity",w),"fa-rotate-by",I&&j),"fa-width-auto",I&&A);return Object.keys(k).map((function(t){return k[t]?t:null})).filter((function(t){return t}))}function d(t){return e=t,(e-=0)==e?t:(t=t.replace(/[\-_\s]+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))).substr(0,1).toLowerCase()+t.substr(1);var e}var x=["style"];var v=!1;try{v="production"===process.env.NODE_ENV}catch(t){}function h(e){return e&&"object"===c(e)&&e.prefix&&e.iconName&&e.icon?e:t.parse.icon?t.parse.icon(e):null===e?null:e&&"object"===c(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"==typeof e?{prefix:"fas",iconName:e}:void 0}function g(t,e){return Array.isArray(e)&&e.length>0||!Array.isArray(e)&&e?i({},t,e):{}}var O={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,rotateBy:!1,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1,widthAuto:!1},w=n.default.forwardRef((function(e,r){var o=l(l({},O),e),n=o.icon,a=o.mask,i=o.symbol,s=o.className,f=o.title,c=o.titleId,p=o.maskId,b=h(n),y=g("classes",[].concat(u(m(o)),u((s||"").split(" ")))),d=g("transform","string"==typeof o.transform?t.parse.transform(o.transform):o.transform),x=g("mask",h(a)),w=t.icon(b,l(l(l(l({},y),d),x),{},{symbol:i,title:f,titleId:c,maskId:p}));if(!w)return function(){var t;!v&&console&&"function"==typeof console.error&&(t=console).error.apply(t,arguments)}("Could not find icon",b),null;var A=w.abstract,I={ref:r};return Object.keys(o).forEach((function(t){O.hasOwnProperty(t)||(I[t]=o[t])})),j(A[0],I)}));w.displayName="FontAwesomeIcon",w.propTypes={beat:r.exports.bool,border:r.exports.bool,beatFade:r.exports.bool,bounce:r.exports.bool,className:r.exports.string,fade:r.exports.bool,flash:r.exports.bool,mask:r.exports.oneOfType([r.exports.object,r.exports.array,r.exports.string]),maskId:r.exports.string,fixedWidth:r.exports.bool,inverse:r.exports.bool,flip:r.exports.oneOf([!0,!1,"horizontal","vertical","both"]),icon:r.exports.oneOfType([r.exports.object,r.exports.array,r.exports.string]),listItem:r.exports.bool,pull:r.exports.oneOf(["right","left"]),pulse:r.exports.bool,rotation:r.exports.oneOf([0,90,180,270]),rotateBy:r.exports.bool,shake:r.exports.bool,size:r.exports.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:r.exports.bool,spinPulse:r.exports.bool,spinReverse:r.exports.bool,symbol:r.exports.oneOfType([r.exports.bool,r.exports.string]),title:r.exports.string,titleId:r.exports.string,transform:r.exports.oneOfType([r.exports.string,r.exports.object]),swapOpacity:r.exports.bool,widthAuto:r.exports.bool};var j=function t(e,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof r)return r;var n=(r.children||[]).map((function(r){return t(e,r)})),a=Object.keys(r.attributes||{}).reduce((function(t,e){var o=r.attributes[e];switch(e){case"class":t.attrs.className=o,delete r.attributes.class;break;case"style":t.attrs.style=o.split(";").map((function(t){return t.trim()})).filter((function(t){return t})).reduce((function(t,e){var r,o=e.indexOf(":"),n=d(e.slice(0,o)),a=e.slice(o+1).trim();return n.startsWith("webkit")?t[(r=n,r.charAt(0).toUpperCase()+r.slice(1))]=a:t[n]=a,t}),{});break;default:0===e.indexOf("aria-")||0===e.indexOf("data-")?t.attrs[e.toLowerCase()]=o:t.attrs[d(e)]=o}return t}),{attrs:{}}),i=o.style,s=void 0===i?{}:i,f=function(t,e){if(null==t)return{};var r,o,n=function(t,e){if(null==t)return{};var r={};for(var o in t)if({}.hasOwnProperty.call(t,o)){if(-1!==e.indexOf(o))continue;r[o]=t[o]}return r}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o<a.length;o++)r=a[o],-1===e.indexOf(r)&&{}.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}(o,x);return a.attrs.style=l(l({},a.attrs.style),s),e.apply(void 0,[r.tag,l(l({},a.attrs),f)].concat(u(n)))}.bind(null,n.default.createElement);exports.FontAwesomeIcon=w;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../fontawesome-svg-core/index.mjs.js");require("../../prop-types/index.js");var e=require("react"),r=require("../../../_virtual/index7.js");function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var n=o(e);function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,o=Array(e);r<e;r++)o[r]=t[r];return o}function i(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,e||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var o,n,a,i,s=[],l=!0,f=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(o=a.call(r)).done)&&(s.push(o.value),s.length!==e);l=!0);}catch(t){f=!0,n=t}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(f)throw n}}return s}}(t,e)||p(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||p(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function p(t,e){if(t){if("string"==typeof t)return a(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}var b;try{var y=require("@fortawesome/fontawesome-svg-core/package.json");b=y.version}catch(t){b="undefined"!=typeof process&&process.env.FA_VERSION||"7.0.0"}function m(t){var e=t.beat,r=t.fade,o=t.beatFade,n=t.bounce,a=t.shake,s=t.flash,l=t.spin,u=t.spinPulse,c=t.spinReverse,p=t.pulse,y=t.fixedWidth,m=t.inverse,d=t.border,x=t.listItem,v=t.flip,h=t.size,g=t.rotation,O=t.pull,w=t.swapOpacity,j=t.rotateBy,A=t.widthAuto,I=function(t,e){for(var r=f(t.split("-"),2),o=r[0],n=r[1],a=f(e.split("-"),2),i=a[0],s=a[1],l=o.split("."),u=i.split("."),c=0;c<Math.max(l.length,u.length);c++){var p=l[c]||"0",b=u[c]||"0",y=parseInt(p,10),m=parseInt(b,10);if(y!==m)return y>m}for(var d=0;d<Math.max(l.length,u.length);d++){var x=l[d]||"0",v=u[d]||"0";if(x!==v&&x.length!==v.length)return x.length<v.length}return!(n&&!s)}(b,"7.0.0"),k=i(i(i(i(i(i({"fa-beat":e,"fa-fade":r,"fa-beat-fade":o,"fa-bounce":n,"fa-shake":a,"fa-flash":s,"fa-spin":l,"fa-spin-reverse":c,"fa-spin-pulse":u,"fa-pulse":p,"fa-fw":y,"fa-inverse":m,"fa-border":d,"fa-li":x,"fa-flip":!0===v,"fa-flip-horizontal":"horizontal"===v||"both"===v,"fa-flip-vertical":"vertical"===v||"both"===v},"fa-".concat(h),null!=h),"fa-rotate-".concat(g),null!=g&&0!==g),"fa-pull-".concat(O),null!=O),"fa-swap-opacity",w),"fa-rotate-by",I&&j),"fa-width-auto",I&&A);return Object.keys(k).map((function(t){return k[t]?t:null})).filter((function(t){return t}))}function d(t){return e=t,(e-=0)==e?t:(t=t.replace(/[\-_\s]+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))).substr(0,1).toLowerCase()+t.substr(1);var e}var x=["style"];var v=!1;try{v="production"===process.env.NODE_ENV}catch(t){}function h(e){return e&&"object"===c(e)&&e.prefix&&e.iconName&&e.icon?e:t.parse.icon?t.parse.icon(e):null===e?null:e&&"object"===c(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"==typeof e?{prefix:"fas",iconName:e}:void 0}function g(t,e){return Array.isArray(e)&&e.length>0||!Array.isArray(e)&&e?i({},t,e):{}}var O={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,rotateBy:!1,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1,widthAuto:!1},w=n.default.forwardRef((function(e,r){var o=l(l({},O),e),n=o.icon,a=o.mask,i=o.symbol,s=o.className,f=o.title,c=o.titleId,p=o.maskId,b=h(n),y=g("classes",[].concat(u(m(o)),u((s||"").split(" ")))),d=g("transform","string"==typeof o.transform?t.parse.transform(o.transform):o.transform),x=g("mask",h(a)),w=t.icon(b,l(l(l(l({},y),d),x),{},{symbol:i,title:f,titleId:c,maskId:p}));if(!w)return function(){var t;!v&&console&&"function"==typeof console.error&&(t=console).error.apply(t,arguments)}("Could not find icon",b),null;var A=w.abstract,I={ref:r};return Object.keys(o).forEach((function(t){O.hasOwnProperty(t)||(I[t]=o[t])})),j(A[0],I)}));w.displayName="FontAwesomeIcon",w.propTypes={beat:r.exports.bool,border:r.exports.bool,beatFade:r.exports.bool,bounce:r.exports.bool,className:r.exports.string,fade:r.exports.bool,flash:r.exports.bool,mask:r.exports.oneOfType([r.exports.object,r.exports.array,r.exports.string]),maskId:r.exports.string,fixedWidth:r.exports.bool,inverse:r.exports.bool,flip:r.exports.oneOf([!0,!1,"horizontal","vertical","both"]),icon:r.exports.oneOfType([r.exports.object,r.exports.array,r.exports.string]),listItem:r.exports.bool,pull:r.exports.oneOf(["right","left"]),pulse:r.exports.bool,rotation:r.exports.oneOf([0,90,180,270]),rotateBy:r.exports.bool,shake:r.exports.bool,size:r.exports.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:r.exports.bool,spinPulse:r.exports.bool,spinReverse:r.exports.bool,symbol:r.exports.oneOfType([r.exports.bool,r.exports.string]),title:r.exports.string,titleId:r.exports.string,transform:r.exports.oneOfType([r.exports.string,r.exports.object]),swapOpacity:r.exports.bool,widthAuto:r.exports.bool};var j=function t(e,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof r)return r;var n=(r.children||[]).map((function(r){return t(e,r)})),a=Object.keys(r.attributes||{}).reduce((function(t,e){var o=r.attributes[e];switch(e){case"class":t.attrs.className=o,delete r.attributes.class;break;case"style":t.attrs.style=o.split(";").map((function(t){return t.trim()})).filter((function(t){return t})).reduce((function(t,e){var r,o=e.indexOf(":"),n=d(e.slice(0,o)),a=e.slice(o+1).trim();return n.startsWith("webkit")?t[(r=n,r.charAt(0).toUpperCase()+r.slice(1))]=a:t[n]=a,t}),{});break;default:0===e.indexOf("aria-")||0===e.indexOf("data-")?t.attrs[e.toLowerCase()]=o:t.attrs[d(e)]=o}return t}),{attrs:{}}),i=o.style,s=void 0===i?{}:i,f=function(t,e){if(null==t)return{};var r,o,n=function(t,e){if(null==t)return{};var r={};for(var o in t)if({}.hasOwnProperty.call(t,o)){if(-1!==e.indexOf(o))continue;r[o]=t[o]}return r}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o<a.length;o++)r=a[o],-1===e.indexOf(r)&&{}.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}(o,x);return a.attrs.style=l(l({},a.attrs.style),s),e.apply(void 0,[r.tag,l(l({},a.attrs),f)].concat(u(n)))}.bind(null,n.default.createElement);exports.FontAwesomeIcon=w;
2
2
  //# sourceMappingURL=index.es.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../render/utils/setters.mjs.js"),t=require("../interfaces/visual-element.mjs.js"),r=require("../../../../../motion-utils/dist/es/errors.mjs.js");function s(t,r){[...r].reverse().forEach((n=>{const o=t.getVariant(n);o&&e.setTarget(t,o),t.variantChildren&&t.variantChildren.forEach((e=>{s(e,r)}))}))}function n(t,r){return Array.isArray(r)?s(t,r):"string"==typeof r?s(t,[r]):void e.setTarget(t,r)}exports.animationControls=function(){let e=!1;const s=new Set,o={subscribe:e=>(s.add(e),()=>{s.delete(e)}),start(n,o){r.invariant(e,"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.");const a=[];return s.forEach((e=>{a.push(t.animateVisualElement(e,n,{transitionOverride:o}))})),Promise.all(a)},set:t=>(r.invariant(e,"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook."),s.forEach((e=>{n(e,t)}))),stop(){s.forEach((e=>{!function(e){e.values.forEach((e=>e.stop()))}(e)}))},mount:()=>(e=!0,()=>{e=!1,o.stop()})};return o},exports.setValues=n;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../../motion-utils/dist/es/errors.mjs.js"),t=require("../../../../../motion-dom/dist/es/animation/interfaces/visual-element.mjs.js"),r=require("../../../../../motion-dom/dist/es/render/utils/setters.mjs.js");function s(e,t){[...t].reverse().forEach((o=>{const n=e.getVariant(o);n&&r.setTarget(e,n),e.variantChildren&&e.variantChildren.forEach((e=>{s(e,t)}))}))}function o(e,t){return Array.isArray(t)?s(e,t):"string"==typeof t?s(e,[t]):void r.setTarget(e,t)}exports.animationControls=function(){let r=!1;const s=new Set,n={subscribe:e=>(s.add(e),()=>{s.delete(e)}),start(o,n){e.invariant(r,"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.");const a=[];return s.forEach((e=>{a.push(t.animateVisualElement(e,o,{transitionOverride:n}))})),Promise.all(a)},set:t=>(e.invariant(r,"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook."),s.forEach((e=>{o(e,t)}))),stop(){s.forEach((e=>{!function(e){e.values.forEach((e=>e.stop()))}(e)}))},mount:()=>(r=!0,()=>{r=!1,n.stop()})};return n},exports.setValues=o;
2
2
  //# sourceMappingURL=animation-controls.mjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animation-controls.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs"],"sourcesContent":["import { invariant } from 'motion-utils';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { animateVisualElement } from '../interfaces/visual-element.mjs';\n\nfunction stopAnimation(visualElement) {\n visualElement.values.forEach((value) => value.stop());\n}\nfunction setVariants(visualElement, variantLabels) {\n const reversedLabels = [...variantLabels].reverse();\n reversedLabels.forEach((key) => {\n const variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n if (visualElement.variantChildren) {\n visualElement.variantChildren.forEach((child) => {\n setVariants(child, variantLabels);\n });\n }\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\n/**\n * @public\n */\nfunction animationControls() {\n /**\n * Track whether the host component has mounted.\n */\n let hasMounted = false;\n /**\n * A collection of linked component animation controls.\n */\n const subscribers = new Set();\n const controls = {\n subscribe(visualElement) {\n subscribers.add(visualElement);\n return () => void subscribers.delete(visualElement);\n },\n start(definition, transitionOverride) {\n invariant(hasMounted, \"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.\");\n const animations = [];\n subscribers.forEach((visualElement) => {\n animations.push(animateVisualElement(visualElement, definition, {\n transitionOverride,\n }));\n });\n return Promise.all(animations);\n },\n set(definition) {\n invariant(hasMounted, \"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook.\");\n return subscribers.forEach((visualElement) => {\n setValues(visualElement, definition);\n });\n },\n stop() {\n subscribers.forEach((visualElement) => {\n stopAnimation(visualElement);\n });\n },\n mount() {\n hasMounted = true;\n return () => {\n hasMounted = false;\n controls.stop();\n };\n },\n };\n return controls;\n}\n\nexport { animationControls, setValues };\n"],"names":["setVariants","visualElement","variantLabels","reverse","forEach","key","variant","getVariant","setTarget","variantChildren","child","setValues","definition","Array","isArray","hasMounted","subscribers","Set","controls","subscribe","add","delete","start","transitionOverride","invariant","animations","push","animateVisualElement","Promise","all","set","stop","values","value","stopAnimation","mount"],"mappings":"uOAOA,SAASA,EAAYC,EAAeC,GACT,IAAIA,GAAeC,UAC3BC,SAASC,IACpB,MAAMC,EAAUL,EAAcM,WAAWF,GACzCC,GAAWE,EAASA,UAACP,EAAeK,GAChCL,EAAcQ,iBACdR,EAAcQ,gBAAgBL,SAASM,IACnCV,EAAYU,EAAOR,EAAc,GAEzC,GAER,CACA,SAASS,EAAUV,EAAeW,GAC9B,OAAIC,MAAMC,QAAQF,GACPZ,EAAYC,EAAeW,GAEP,iBAAfA,EACLZ,EAAYC,EAAe,CAACW,SAGnCJ,YAAUP,EAAeW,EAEjC,2BAIA,WAII,IAAIG,GAAa,EAIjB,MAAMC,EAAc,IAAIC,IAClBC,EAAW,CACbC,UAAUlB,IACNe,EAAYI,IAAInB,GACT,KAAWe,EAAYK,OAAOpB,EAAc,GAEvDqB,KAAAA,CAAMV,EAAYW,GACdC,YAAUT,EAAY,mHACtB,MAAMU,EAAa,GAMnB,OALAT,EAAYZ,SAASH,IACjBwB,EAAWC,KAAKC,uBAAqB1B,EAAeW,EAAY,CAC5DW,uBACD,IAEAK,QAAQC,IAAIJ,EACtB,EACDK,IAAIlB,IACAY,YAAUT,EAAY,iHACfC,EAAYZ,SAASH,IACxBU,EAAUV,EAAeW,EAAW,KAG5CmB,IAAAA,GACIf,EAAYZ,SAASH,KA5DjC,SAAuBA,GACnBA,EAAc+B,OAAO5B,SAAS6B,GAAUA,EAAMF,QAClD,CA2DgBG,CAAcjC,EAAc,GAEnC,EACDkC,MAAKA,KACDpB,GAAa,EACN,KACHA,GAAa,EACbG,EAASa,MAAM,IAI3B,OAAOb,CACX"}
1
+ {"version":3,"file":"animation-controls.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs"],"sourcesContent":["import { animateVisualElement, setTarget } from 'motion-dom';\nimport { invariant } from 'motion-utils';\n\nfunction stopAnimation(visualElement) {\n visualElement.values.forEach((value) => value.stop());\n}\nfunction setVariants(visualElement, variantLabels) {\n const reversedLabels = [...variantLabels].reverse();\n reversedLabels.forEach((key) => {\n const variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n if (visualElement.variantChildren) {\n visualElement.variantChildren.forEach((child) => {\n setVariants(child, variantLabels);\n });\n }\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\n/**\n * @public\n */\nfunction animationControls() {\n /**\n * Track whether the host component has mounted.\n */\n let hasMounted = false;\n /**\n * A collection of linked component animation controls.\n */\n const subscribers = new Set();\n const controls = {\n subscribe(visualElement) {\n subscribers.add(visualElement);\n return () => void subscribers.delete(visualElement);\n },\n start(definition, transitionOverride) {\n invariant(hasMounted, \"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.\");\n const animations = [];\n subscribers.forEach((visualElement) => {\n animations.push(animateVisualElement(visualElement, definition, {\n transitionOverride,\n }));\n });\n return Promise.all(animations);\n },\n set(definition) {\n invariant(hasMounted, \"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook.\");\n return subscribers.forEach((visualElement) => {\n setValues(visualElement, definition);\n });\n },\n stop() {\n subscribers.forEach((visualElement) => {\n stopAnimation(visualElement);\n });\n },\n mount() {\n hasMounted = true;\n return () => {\n hasMounted = false;\n controls.stop();\n };\n },\n };\n return controls;\n}\n\nexport { animationControls, setValues };\n//# sourceMappingURL=animation-controls.mjs.map\n"],"names":["setVariants","visualElement","variantLabels","reverse","forEach","key","variant","getVariant","setTarget","variantChildren","child","setValues","definition","Array","isArray","animationControls","hasMounted","subscribers","Set","controls","subscribe","add","delete","start","transitionOverride","invariant","animations","push","animateVisualElement","Promise","all","set","stop","values","value","stopAnimation","mount"],"mappings":"4SAaA,SAASA,EAAYC,EAA8BC,GACxB,IAAIA,GAAeC,UAE3BC,SAASC,IACpB,MAAMC,EAAUL,EAAcM,WAAWF,GACzCC,GAAWE,EAASA,UAACP,EAAeK,GAEhCL,EAAcQ,iBACdR,EAAcQ,gBAAgBL,SAASM,IACnCV,EAAYU,EAAOR,EAAc,GAEzC,GAER,CAEM,SAAUS,EACZV,EACAW,GAEA,OAAIC,MAAMC,QAAQF,GACPZ,EAAYC,EAAeW,GACL,iBAAfA,EACPZ,EAAYC,EAAe,CAACW,SAEnCJ,YAAUP,EAAeW,EAEjC,2BAKgBG,WAIZ,IAAIC,GAAa,EAKjB,MAAMC,EAAc,IAAIC,IAElBC,EAAoC,CACtCC,UAAUnB,IACNgB,EAAYI,IAAIpB,GACT,KAAWgB,EAAYK,OAAOrB,EAAc,GAGvDsB,KAAAA,CAAMX,EAAYY,GACdC,YACIT,EACA,mHAGJ,MAAMU,EAAkC,GASxC,OARAT,EAAYb,SAASH,IACjByB,EAAWC,KACPC,uBAAqB3B,EAAeW,EAAY,CAC5CY,uBAEP,IAGEK,QAAQC,IAAIJ,EACtB,EAEDK,IAAInB,IACAa,YACIT,EACA,iHAGGC,EAAYb,SAASH,IACxBU,EAAUV,EAAeW,EAAW,KAI5CoB,IAAAA,GACIf,EAAYb,SAASH,KAlFjC,SAAuBA,GACnBA,EAAcgC,OAAO7B,SAAS8B,GAAUA,EAAMF,QAClD,CAiFgBG,CAAclC,EAAc,GAEnC,EAEDmC,MAAKA,KACDpB,GAAa,EAEN,KACHA,GAAa,EACbG,EAASa,MAAM,IAK3B,OAAOb,CACX"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var s=require("./animation-controls.mjs.js"),t=require("../../utils/use-constant.mjs.js"),e=require("../../utils/use-isomorphic-effect.mjs.js");function o(){const o=t.useConstant(s.animationControls);return e.useIsomorphicLayoutEffect(o.mount,[]),o}const n=o;exports.useAnimation=n,exports.useAnimationControls=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var s=require("../../utils/use-constant.mjs.js"),t=require("../../utils/use-isomorphic-effect.mjs.js"),e=require("./animation-controls.mjs.js");function o(){const o=s.useConstant(e.animationControls);return t.useIsomorphicLayoutEffect(o.mount,[]),o}const n=o;exports.useAnimation=n,exports.useAnimationControls=o;
2
2
  //# sourceMappingURL=use-animation.mjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-animation.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs"],"sourcesContent":["import { animationControls } from './animation-controls.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\n\n/**\n * Creates `AnimationControls`, which can be used to manually start, stop\n * and sequence animations on one or more components.\n *\n * The returned `AnimationControls` should be passed to the `animate` property\n * of the components you want to animate.\n *\n * These components can then be animated with the `start` method.\n *\n * ```jsx\n * import * as React from 'react'\n * import { motion, useAnimation } from 'framer-motion'\n *\n * export function MyComponent(props) {\n * const controls = useAnimation()\n *\n * controls.start({\n * x: 100,\n * transition: { duration: 0.5 },\n * })\n *\n * return <motion.div animate={controls} />\n * }\n * ```\n *\n * @returns Animation controller with `start` and `stop` methods\n *\n * @public\n */\nfunction useAnimationControls() {\n const controls = useConstant(animationControls);\n useIsomorphicLayoutEffect(controls.mount, []);\n return controls;\n}\nconst useAnimation = useAnimationControls;\n\nexport { useAnimation, useAnimationControls };\n"],"names":["useAnimationControls","controls","useConstant","animationControls","useIsomorphicLayoutEffect","mount","useAnimation"],"mappings":"oNAiCA,SAASA,IACL,MAAMC,EAAWC,cAAYC,EAAAA,mBAE7B,OADAC,EAAAA,0BAA0BH,EAASI,MAAO,IACnCJ,CACX,CACMK,MAAAA,EAAeN"}
1
+ {"version":3,"file":"use-animation.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs"],"sourcesContent":["\"use client\";\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { animationControls } from './animation-controls.mjs';\n\n/**\n * Creates `LegacyAnimationControls`, which can be used to manually start, stop\n * and sequence animations on one or more components.\n *\n * The returned `LegacyAnimationControls` should be passed to the `animate` property\n * of the components you want to animate.\n *\n * These components can then be animated with the `start` method.\n *\n * ```jsx\n * import * as React from 'react'\n * import { motion, useAnimation } from 'framer-motion'\n *\n * export function MyComponent(props) {\n * const controls = useAnimation()\n *\n * controls.start({\n * x: 100,\n * transition: { duration: 0.5 },\n * })\n *\n * return <motion.div animate={controls} />\n * }\n * ```\n *\n * @returns Animation controller with `start` and `stop` methods\n *\n * @public\n */\nfunction useAnimationControls() {\n const controls = useConstant(animationControls);\n useIsomorphicLayoutEffect(controls.mount, []);\n return controls;\n}\nconst useAnimation = useAnimationControls;\n\nexport { useAnimation, useAnimationControls };\n//# sourceMappingURL=use-animation.mjs.map\n"],"names":["controls","useConstant","animationControls","useIsomorphicLayoutEffect","mount","useAnimation","useAnimationControls"],"mappings":"iOAqCI,MAAAA,EAAAC,cAAAC,EAAAA,mBAIA,OAFAC,EAAAA,0BAAAH,EAAAI,MAAA,IAEAJ,CACJ,CAEOK,MAAAA,EAAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../../../../react/jsx-runtime.js");var e=require("react"),t=require("../../context/MotionConfigContext.mjs.js"),n=require("../../../../../../_virtual/jsx-runtime.js");function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var o=r(e);class i extends o.Component{getSnapshotBeforeUpdate(e){const t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){const e=t.offsetParent,n=e instanceof HTMLElement&&e.offsetWidth||0,r=this.props.sizeRef.current;r.height=t.offsetHeight||0,r.width=t.offsetWidth||0,r.top=t.offsetTop,r.left=t.offsetLeft,r.right=n-r.width-r.left}return null}componentDidUpdate(){}render(){return this.props.children}}exports.PopChild=function(r){let{children:s,isPresent:f,anchorX:c}=r;const u=e.useId(),p=e.useRef(null),h=e.useRef({width:0,height:0,top:0,left:0,right:0}),{nonce:d}=e.useContext(t.MotionConfigContext);return e.useInsertionEffect((()=>{const{width:e,height:t,top:n,left:r,right:o}=h.current;if(f||!p.current||!e||!t)return;const i="left"===c?`left: ${r}`:`right: ${o}`;p.current.dataset.motionPopId=u;const s=document.createElement("style");return d&&(s.nonce=d),document.head.appendChild(s),s.sheet&&s.sheet.insertRule(`\n [data-motion-pop-id="${u}"] {\n position: absolute !important;\n width: ${e}px !important;\n height: ${t}px !important;\n ${i}px !important;\n top: ${n}px !important;\n }\n `),()=>{document.head.removeChild(s)}}),[f]),n.exports.jsx(i,{isPresent:f,childRef:p,sizeRef:h,children:o.cloneElement(s,{ref:p})})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../../../../react/jsx-runtime.js");var e=require("react"),t=require("../../context/MotionConfigContext.mjs.js"),r=require("../../utils/use-composed-ref.mjs.js"),o=require("../../../../../motion-dom/dist/es/utils/is-html-element.mjs.js"),n=require("../../../../../../_virtual/jsx-runtime.js");function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=i(e);class p extends s.Component{getSnapshotBeforeUpdate(e){const t=this.props.childRef.current;if(o.isHTMLElement(t)&&e.isPresent&&!this.props.isPresent&&!1!==this.props.pop){const e=t.offsetParent,r=o.isHTMLElement(e)&&e.offsetWidth||0,n=o.isHTMLElement(e)&&e.offsetHeight||0,i=getComputedStyle(t),s=this.props.sizeRef.current;s.height=parseFloat(i.height),s.width=parseFloat(i.width),s.top=t.offsetTop,s.left=t.offsetLeft,s.right=r-s.width-s.left,s.bottom=n-s.height-s.top,s.direction=i.direction}return null}componentDidUpdate(){}render(){return this.props.children}}exports.PopChild=function(o){let{children:i,isPresent:c,anchorX:u,anchorY:f,root:l,pop:d}=o;const h=e.useId(),a=e.useRef(null),m=e.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:g}=e.useContext(t.MotionConfigContext),j=i.props?.ref??i?.ref,x=r.useComposedRefs(a,j);return e.useInsertionEffect((()=>{const{width:e,height:t,top:r,left:o,right:n,bottom:i,direction:s}=m.current;if(c||!1===d||!a.current||!e||!t)return;const p="rtl"===s,j="left"===u?p?`right: ${n}`:`left: ${o}`:p?`left: ${o}`:`right: ${n}`,x="bottom"===f?`bottom: ${i}`:`top: ${r}`;a.current.dataset.motionPopId=h;const b=document.createElement("style");g&&(b.nonce=g);const C=l??document.head;return C.appendChild(b),b.sheet&&b.sheet.insertRule(`\n [data-motion-pop-id="${h}"] {\n position: absolute !important;\n width: ${e}px !important;\n height: ${t}px !important;\n ${j}px !important;\n ${x}px !important;\n }\n `),()=>{a.current?.removeAttribute("data-motion-pop-id"),C.contains(b)&&C.removeChild(b)}}),[c]),n.exports.jsx(p,{isPresent:c,childRef:a,sizeRef:m,pop:d,children:!1===d?i:s.cloneElement(i,{ref:x})})};
2
2
  //# sourceMappingURL=PopChild.mjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopChild.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs"],"sourcesContent":["\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useRef, useContext, useInsertionEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const parent = element.offsetParent;\n const parentWidth = parent instanceof HTMLElement ? parent.offsetWidth || 0 : 0;\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n size.right = parentWidth - size.width - size.left;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent, anchorX }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n });\n const { nonce } = useContext(MotionConfigContext);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left, right } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n const x = anchorX === \"left\" ? `left: ${left}` : `right: ${right}`;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce)\n style.nonce = nonce;\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n ${x}px !important;\n top: ${top}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: React.cloneElement(children, { ref }) }));\n}\n\nexport { PopChild };\n"],"names":["PopChildMeasure","React","Component","getSnapshotBeforeUpdate","prevProps","element","this","props","childRef","current","isPresent","parent","offsetParent","parentWidth","HTMLElement","offsetWidth","size","sizeRef","height","offsetHeight","width","top","offsetTop","left","offsetLeft","right","componentDidUpdate","render","children","_ref","anchorX","id","useId","ref","useRef","nonce","useContext","MotionConfigContext","useInsertionEffect","x","dataset","motionPopId","style","document","createElement","head","appendChild","sheet","insertRule","removeChild","jsx","cloneElement"],"mappings":"iiBAUA,MAAMA,UAAwBC,EAAMC,UAChCC,uBAAAA,CAAwBC,GACpB,MAAMC,EAAUC,KAAKC,MAAMC,SAASC,QACpC,GAAIJ,GAAWD,EAAUM,YAAcJ,KAAKC,MAAMG,UAAW,CACzD,MAAMC,EAASN,EAAQO,aACjBC,EAAcF,aAAkBG,aAAcH,EAAOI,aAAmB,EACxEC,EAAOV,KAAKC,MAAMU,QAAQR,QAChCO,EAAKE,OAASb,EAAQc,cAAgB,EACtCH,EAAKI,MAAQf,EAAQU,aAAe,EACpCC,EAAKK,IAAMhB,EAAQiB,UACnBN,EAAKO,KAAOlB,EAAQmB,WACpBR,EAAKS,MAAQZ,EAAcG,EAAKI,MAAQJ,EAAKO,IACjD,CACA,OAAO,IACX,CAIAG,kBAAAA,GAAuB,CACvBC,MAAAA,GACI,OAAOrB,KAAKC,MAAMqB,QACtB,mBAEJ,SAAiBC,GAAmC,IAAlCD,SAAEA,EAAQlB,UAAEA,EAASoB,QAAEA,GAASD,EAC9C,MAAME,EAAKC,EAAAA,QACLC,EAAMC,SAAO,MACblB,EAAOkB,EAAAA,OAAO,CAChBd,MAAO,EACPF,OAAQ,EACRG,IAAK,EACLE,KAAM,EACNE,MAAO,KAELU,MAAEA,GAAUC,EAAAA,WAAWC,EAAAA,qBAmC7B,OAzBAC,EAAAA,oBAAmB,KACf,MAAMlB,MAAEA,EAAKF,OAAEA,EAAMG,IAAEA,EAAGE,KAAEA,EAAIE,MAAEA,GAAUT,EAAKP,QACjD,GAAIC,IAAcuB,EAAIxB,UAAYW,IAAUF,EACxC,OACJ,MAAMqB,EAAgB,SAAZT,EAAqB,SAASP,IAAS,UAAUE,IAC3DQ,EAAIxB,QAAQ+B,QAAQC,YAAcV,EAClC,MAAMW,EAAQC,SAASC,cAAc,SAerC,OAdIT,IACAO,EAAMP,MAAQA,GAClBQ,SAASE,KAAKC,YAAYJ,GACtBA,EAAMK,OACNL,EAAMK,MAAMC,WAAW,oCACFjB,yEAEZX,wCACCF,gCACRqB,qCACKlB,0CAIJ,KACHsB,SAASE,KAAKI,YAAYP,EAAM,CACnC,GACF,CAAChC,IACIwC,EAAAA,QAAAA,IAAIlD,EAAiB,CAAEU,UAAWA,EAAWF,SAAUyB,EAAKhB,QAASD,EAAMY,SAAU3B,EAAMkD,aAAavB,EAAU,CAAEK,SAChI"}
1
+ {"version":3,"file":"PopChild.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs"],"sourcesContent":["\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { isHTMLElement } from 'motion-dom';\nimport * as React from 'react';\nimport { useId, useRef, useContext, useInsertionEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { useComposedRefs } from '../../utils/use-composed-ref.mjs';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (isHTMLElement(element) && prevProps.isPresent && !this.props.isPresent && this.props.pop !== false) {\n const parent = element.offsetParent;\n const parentWidth = isHTMLElement(parent)\n ? parent.offsetWidth || 0\n : 0;\n const parentHeight = isHTMLElement(parent)\n ? parent.offsetHeight || 0\n : 0;\n const computedStyle = getComputedStyle(element);\n const size = this.props.sizeRef.current;\n size.height = parseFloat(computedStyle.height);\n size.width = parseFloat(computedStyle.width);\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n size.right = parentWidth - size.width - size.left;\n size.bottom = parentHeight - size.height - size.top;\n size.direction = computedStyle.direction;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent, anchorX, anchorY, root, pop }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n direction: \"ltr\",\n });\n const { nonce } = useContext(MotionConfigContext);\n /**\n * In React 19, refs are passed via props.ref instead of element.ref.\n * We check props.ref first (React 19) and fall back to element.ref (React 18).\n */\n const childRef = children.props?.ref ??\n children?.ref;\n const composedRef = useComposedRefs(ref, childRef);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left, right, bottom, direction } = size.current;\n if (isPresent || pop === false || !ref.current || !width || !height)\n return;\n const isRTL = direction === \"rtl\";\n const x = anchorX === \"left\"\n ? (isRTL ? `right: ${right}` : `left: ${left}`)\n : (isRTL ? `left: ${left}` : `right: ${right}`);\n const y = anchorY === \"bottom\" ? `bottom: ${bottom}` : `top: ${top}`;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce)\n style.nonce = nonce;\n const parent = root ?? document.head;\n parent.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n ${x}px !important;\n ${y}px !important;\n }\n `);\n }\n return () => {\n ref.current?.removeAttribute(\"data-motion-pop-id\");\n if (parent.contains(style)) {\n parent.removeChild(style);\n }\n };\n }, [isPresent]);\n return (jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, pop: pop, children: pop === false\n ? children\n : React.cloneElement(children, { ref: composedRef }) }));\n}\n\nexport { PopChild };\n//# sourceMappingURL=PopChild.mjs.map\n"],"names":["PopChildMeasure","React","Component","getSnapshotBeforeUpdate","prevProps","parent","element","offsetParent","parentWidth","isHTMLElement","offsetWidth","parentHeight","offsetHeight","computedStyle","getComputedStyle","size","top","offsetTop","left","offsetLeft","right","width","bottom","height","direction","componentDidUpdate","props","children","_ref","isPresent","anchorX","anchorY","root","pop","id","useId","ref","useRef","childRef","current","isRTL","x","y","nonce","style","document","head","appendChild","sheet","insertRule","removeAttribute","contains","removeChild","cloneElement","composedRef"],"mappings":"8pBAqCA,MAAAA,UAAAC,EAAAC,UACIC,uBAAAA,CAAAC,uHAGQ,MAAAC,EAAAC,EAAAC,aACAC,EAAAC,EAAAA,cAAAJ,IACIA,EAAAK,eAEJC,EAAAF,EAAAA,cAAAJ,IACIA,EAAAO,gBAGJC,EAAAC,iBAAAR,0FAIAS,EAAAC,IAAAV,EAAAW,UACAF,EAAAG,KAAAZ,EAAAa,WACAJ,EAAAK,MAAAZ,EAAAO,EAAAM,MAAAN,EAAAG,KACAH,EAAAO,OAAAX,EAAAI,EAAAQ,OAAAR,EAAAC,IACAD,EAAAS,UAAAX,EAAAW,UAGJ,OAAA,KAMJC,kBAAAA,GAAA,UAGI,OAAAC,KAAAA,MAAAC,2BAIF,SAAAC,GAAA,IAAAD,SAAAA,EAAAE,UAAAA,EAAAC,QAAAA,EAAAC,QAAAA,EAAAC,KAAAA,EAAAC,IAAAA,GAAAL,EACF,MAAAM,EAAAC,EAAAA,QACAC,EAAAC,SAAA,kBAEIhB,MAAA,EACAE,OAAA,EACAP,IAAA,EACAE,KAAA,EACAE,MAAA,EACAE,OAAA,EACAE,UAAA,sDAOJc,EAAAX,EAAAD,OAAAU,uEAeI,MAAAf,MAAAA,EAAAE,OAAAA,EAAAP,IAAAA,EAAAE,KAAAA,EAAAE,MAAAA,EAAAE,OAAAA,EAAAE,UAAAA,GAAAT,EAAAwB,QACA,GAAAV,IAAAO,IAAAH,IAAAG,EAAAG,UAAAlB,IAAAE,SAEA,MAAAiB,EAAA,QAAAhB,EACAiB,EAAA,SAAAX,EACIU,EAAApB,UAAAA,IAAAF,SAAAA,IACAsB,EAAAtB,SAAAA,cAAAE,IACJsB,EAAApB,WAAAS,EAAAT,WAAAA,YAAAN,4EAKA2B,IAAWC,EAAAD,MAAAA,GAEX,MAAAtC,EAAA2B,GAAAa,SAAAC,KAeA,OAdAzC,EAAA0C,YAAAH,GAEAA,EAAAI,OACIJ,EAAAI,MAAAC,WAAA,+PAWJ,KACIb,EAAAG,SAAAW,gBAAA,sBACA7C,EAAA8C,SAAAP,IACIvC,EAAA+C,YAAAR,GAER,GACJ,CAAAf,4DAKYF,UAAAA,IAAAA,EAAAA,EACA1B,EAAAoD,aAAA1B,EAAA,CAAAS,IAAAkB,KAGhB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../../../../react/jsx-runtime.js");var e=require("react"),t=require("../../context/PresenceContext.mjs.js"),r=require("../../utils/use-constant.mjs.js"),s=require("./PopChild.mjs.js"),n=require("../../../../../../_virtual/jsx-runtime.js");function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=i(e);function u(){return new Map}exports.PresenceChild=i=>{let{children:c,initial:a,isPresent:l,onExitComplete:f,custom:j,presenceAffectsLayout:d,mode:p,anchorX:m}=i;const x=r.useConstant(u),P=e.useId();let h=!0,v=e.useMemo((()=>(h=!1,{id:P,initial:a,isPresent:l,custom:j,onExitComplete:e=>{x.set(e,!0);for(const e of x.values())if(!e)return;f&&f()},register:e=>(x.set(e,!1),()=>x.delete(e))})),[l,x,f]);return d&&h&&(v={...v}),e.useMemo((()=>{x.forEach(((e,t)=>x.set(t,!1)))}),[l]),o.useEffect((()=>{!l&&!x.size&&f&&f()}),[l]),"popLayout"===p&&(c=n.exports.jsx(s.PopChild,{isPresent:l,anchorX:m,children:c})),n.exports.jsx(t.PresenceContext.Provider,{value:v,children:c})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../../../../react/jsx-runtime.js");var e=require("react"),t=require("../../context/PresenceContext.mjs.js"),r=require("../../utils/use-constant.mjs.js"),s=require("./PopChild.mjs.js"),n=require("../../../../../../_virtual/jsx-runtime.js");function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=o(e);function u(){return new Map}exports.PresenceChild=o=>{let{children:c,initial:a,isPresent:l,onExitComplete:f,custom:j,presenceAffectsLayout:p,mode:d,anchorX:m,anchorY:x,root:h}=o;const P=r.useConstant(u),v=e.useId();let C=!0,b=e.useMemo((()=>(C=!1,{id:v,initial:a,isPresent:l,custom:j,onExitComplete:e=>{P.set(e,!0);for(const e of P.values())if(!e)return;f&&f()},register:e=>(P.set(e,!1),()=>P.delete(e))})),[l,P,f]);return p&&C&&(b={...b}),e.useMemo((()=>{P.forEach(((e,t)=>P.set(t,!1)))}),[l]),i.useEffect((()=>{!l&&!P.size&&f&&f()}),[l]),c=n.exports.jsx(s.PopChild,{pop:"popLayout"===d,isPresent:l,anchorX:m,anchorY:x,root:h,children:c}),n.exports.jsx(t.PresenceContext.Provider,{value:b,children:c})};
2
2
  //# sourceMappingURL=PresenceChild.mjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PresenceChild.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs"],"sourcesContent":["\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n let isReusedContext = true;\n let context = useMemo(() => {\n isReusedContext = false;\n return {\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n };\n }, [isPresent, presenceChildren, onExitComplete]);\n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n if (presenceAffectsLayout && isReusedContext) {\n context = { ...context };\n }\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = (jsx(PopChild, { isPresent: isPresent, anchorX: anchorX, children: children }));\n }\n return (jsx(PresenceContext.Provider, { value: context, children: children }));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n"],"names":["newChildrenMap","Map","_ref","children","initial","isPresent","onExitComplete","custom","presenceAffectsLayout","mode","anchorX","presenceChildren","useConstant","id","useId","isReusedContext","context","useMemo","childId","set","isComplete","values","register","delete","forEach","_","key","React","useEffect","size","jsx","exports","PopChild","PresenceContext","Provider","value"],"mappings":"ymBA2DA,SAASA,IACL,OAAO,IAAIC,GACf,uBArDsBC,IAAqG,IAApGC,SAAEA,EAAQC,QAAEA,EAAOC,UAAEA,EAASC,eAAEA,EAAcC,OAAEA,EAAMC,sBAAEA,EAAqBC,KAAEA,EAAIC,QAAEA,GAAUR,EAClH,MAAMS,EAAmBC,cAAYZ,GAC/Ba,EAAKC,EAAAA,QACX,IAAIC,GAAkB,EAClBC,EAAUC,EAAAA,SAAQ,KAClBF,GAAkB,EACX,CACHF,KACAT,UACAC,YACAE,SACAD,eAAiBY,IACbP,EAAiBQ,IAAID,GAAS,GAC9B,IAAK,MAAME,KAAcT,EAAiBU,SACtC,IAAKD,EACD,OAERd,GAAkBA,GAAgB,EAEtCgB,SAAWJ,IACPP,EAAiBQ,IAAID,GAAS,GACvB,IAAMP,EAAiBY,OAAOL,OAG9C,CAACb,EAAWM,EAAkBL,IAyBjC,OAnBIE,GAAyBO,IACzBC,EAAU,IAAKA,IAEnBC,EAAAA,SAAQ,KACJN,EAAiBa,SAAQ,CAACC,EAAGC,IAAQf,EAAiBQ,IAAIO,GAAK,IAAO,GACvE,CAACrB,IAKJsB,EAAMC,WAAU,MACXvB,IACIM,EAAiBkB,MAClBvB,GACAA,GAAgB,GACrB,CAACD,IACS,cAATI,IACAN,EAAY2B,EAAGC,QAAAD,IAACE,WAAU,CAAE3B,UAAWA,EAAWK,QAASA,EAASP,SAAUA,KAE1E2B,EAAGC,QAAAD,IAACG,EAAeA,gBAACC,SAAU,CAAEC,MAAOnB,EAASb,SAAUA,GAAW"}
1
+ {"version":3,"file":"PresenceChild.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs"],"sourcesContent":["\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, anchorY, root }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n let isReusedContext = true;\n let context = useMemo(() => {\n isReusedContext = false;\n return {\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n };\n }, [isPresent, presenceChildren, onExitComplete]);\n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n if (presenceAffectsLayout && isReusedContext) {\n context = { ...context };\n }\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n children = (jsx(PopChild, { pop: mode === \"popLayout\", isPresent: isPresent, anchorX: anchorX, anchorY: anchorY, root: root, children: children }));\n return (jsx(PresenceContext.Provider, { value: context, children: children }));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n//# sourceMappingURL=PresenceChild.mjs.map\n"],"names":["newChildrenMap","_ref","children","initial","isPresent","onExitComplete","custom","presenceAffectsLayout","mode","anchorX","anchorY","root","presenceChildren","useConstant","id","useId","context","useMemo","childId","set","isComplete","register","isReusedContext","forEach","_","key","React","useEffect","jsx","exports","PopChild","pop","PresenceContext","Provider","value"],"mappings":"ymBAqGA,SAAAA,kBAEA,uBA9EOC,IAAA,IAAAC,SAAAA,EAAAC,QAAAA,EAAAC,UAAAA,EAAAC,eAAAA,EAAAC,OAAAA,EAAAC,sBAAAA,EAAAC,KAAAA,EAAAC,QAAAA,EAAAC,QAAAA,EAAAC,KAAAA,GAAAV,EAYH,MAAAW,EAAAC,cAAAb,GACAc,EAAAC,EAAAA,iBAGAC,EAAAC,EAAAA,SAAA,+CAOQZ,eAAAa,IACIN,EAAAO,IAAAD,GAAA,6BAGI,IAAAE,EAAiB,eAKzBC,SAAAH,IACIN,EAAAO,IAAAD,GAAA,gCAoCZ,OAzBAX,GAAAe,IACIN,EAAA,IAAAA,oBAIAJ,EAAAW,SAAA,CAAAC,EAAAC,IAAAb,EAAAO,IAAAM,GAAA,IAAA,GACJ,CAAArB,IAMAsB,EAAAC,WAAA,MACIvB,eAGIC,GAAA,GACR,CAAAD,IAEAF,EAAA0B,EAAAC,QAAAD,IAAAE,WAAA,CAAAC,IAAA,cAAAvB,EAAAJ,UAAAA,EAAAK,QAAAA,EAAAC,QAAAA,EAAAC,KAAAA,EAAAT,SAAAA,IAMA0B,EAAAC,QAAAD,IAAAI,EAAAA,gBAAAC,SAAA,CAAAC,MAAAlB,EAAAd,SAAAA,GAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../../../../react/jsx-runtime.js");var e=require("react"),t=require("../../context/LayoutGroupContext.mjs.js"),s=require("../../utils/use-constant.mjs.js"),r=require("../../utils/use-isomorphic-effect.mjs.js"),n=require("./PresenceChild.mjs.js"),i=require("./use-presence.mjs.js"),o=require("./utils.mjs.js"),u=require("../../../../../../_virtual/jsx-runtime.js");exports.AnimatePresence=l=>{let{children:c,custom:a,initial:m=!0,onExitComplete:d,presenceAffectsLayout:p=!0,mode:h="sync",propagate:j=!1,anchorX:f="left"}=l;const[x,g]=i.usePresence(j),y=e.useMemo((()=>o.onlyElements(c)),[c]),C=j&&!x?[]:y.map(o.getChildKey),q=e.useRef(!0),v=e.useRef(y),E=s.useConstant((()=>new Map)),[w,P]=e.useState(y),[L,A]=e.useState(y);r.useIsomorphicLayoutEffect((()=>{q.current=!1,v.current=y;for(let e=0;e<L.length;e++){const t=o.getChildKey(L[e]);C.includes(t)?E.delete(t):!0!==E.get(t)&&E.set(t,!1)}}),[L,C.length,C.join("-")]);const K=[];if(y!==w){let e=[...y];for(let t=0;t<L.length;t++){const s=L[t],r=o.getChildKey(s);C.includes(r)||(e.splice(t,0,s),K.push(s))}return"wait"===h&&K.length&&(e=K),A(o.onlyElements(e)),P(y),null}"production"!==process.env.NODE_ENV&&"wait"===h&&L.length>1&&console.warn('You\'re attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.');const{forceRender:_}=e.useContext(t.LayoutGroupContext);return u.exports.jsx(u.exports.Fragment,{children:L.map((e=>{const t=o.getChildKey(e),s=!(j&&!x)&&(y===L||C.includes(t));return u.exports.jsx(n.PresenceChild,{isPresent:s,initial:!(q.current&&!m)&&void 0,custom:a,presenceAffectsLayout:p,mode:h,onExitComplete:s?void 0:()=>{if(!E.has(t))return;E.set(t,!0);let e=!0;E.forEach((t=>{t||(e=!1)})),e&&(_?.(),A(v.current),j&&g?.(),d&&d())},anchorX:f,children:e},t)}))})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../../../../react/jsx-runtime.js");var e=require("react"),t=require("../../context/LayoutGroupContext.mjs.js"),r=require("../../utils/use-constant.mjs.js"),s=require("../../utils/use-isomorphic-effect.mjs.js"),n=require("./PresenceChild.mjs.js"),o=require("./use-presence.mjs.js"),i=require("./utils.mjs.js"),u=require("../../../../../../_virtual/jsx-runtime.js");exports.AnimatePresence=c=>{let{children:l,custom:a,initial:d=!0,onExitComplete:h,presenceAffectsLayout:m=!0,mode:p="sync",propagate:f=!1,anchorX:j="left",anchorY:x="top",root:g}=c;const[y,C]=o.usePresence(f),q=e.useMemo((()=>i.onlyElements(l)),[l]),v=f&&!y?[]:q.map(i.getChildKey),w=e.useRef(!0),E=e.useRef(q),P=r.useConstant((()=>new Map)),L=e.useRef(new Set),[A,K]=e.useState(q),[R,_]=e.useState(q);s.useIsomorphicLayoutEffect((()=>{w.current=!1,E.current=q;for(let e=0;e<R.length;e++){const t=i.getChildKey(R[e]);v.includes(t)?(P.delete(t),L.current.delete(t)):!0!==P.get(t)&&P.set(t,!1)}}),[R,v.length,v.join("-")]);const b=[];if(q!==A){let e=[...q];for(let t=0;t<R.length;t++){const r=R[t],s=i.getChildKey(r);v.includes(s)||(e.splice(t,0,r),b.push(r))}return"wait"===p&&b.length&&(e=b),_(i.onlyElements(e)),K(q),null}"production"!==process.env.NODE_ENV&&"wait"===p&&R.length>1&&console.warn('You\'re attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.');const{forceRender:M}=e.useContext(t.LayoutGroupContext);return u.exports.jsx(u.exports.Fragment,{children:R.map((e=>{const t=i.getChildKey(e),r=!(f&&!y)&&(q===R||v.includes(t));return u.exports.jsx(n.PresenceChild,{isPresent:r,initial:!(w.current&&!d)&&void 0,custom:a,presenceAffectsLayout:m,mode:p,root:g,onExitComplete:r?void 0:()=>{if(L.current.has(t))return;if(!P.has(t))return;L.current.add(t),P.set(t,!0);let e=!0;P.forEach((t=>{t||(e=!1)})),e&&(M?.(),_(E.current),f&&C?.(),h&&h())},anchorX:j,anchorY:x,children:e},t)}))})};
2
2
  //# sourceMappingURL=index.mjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs"],"sourcesContent":["\"use client\";\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { useMemo, useRef, useState, useContext } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { usePresence } from './use-presence.mjs';\nimport { onlyElements, getChildKey } from './utils.mjs';\n\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * <AnimatePresence>\n * {items.map(item => (\n * <motion.div\n * key={item.id}\n * initial={{ opacity: 0 }}\n * animate={{ opacity: 1 }}\n * exit={{ opacity: 0 }}\n * />\n * ))}\n * </AnimatePresence>\n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, anchorX = \"left\", }) => {\n const [isParentPresent, safeToRemove] = usePresence(propagate);\n /**\n * Filter any children that aren't ReactElements. We can only track components\n * between renders with a props.key.\n */\n const presentChildren = useMemo(() => onlyElements(children), [children]);\n /**\n * Track the keys of the currently rendered children. This is used to\n * determine which children are exiting.\n */\n const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey);\n /**\n * If `initial={false}` we only want to pass this to components in the first render.\n */\n const isInitialRender = useRef(true);\n /**\n * A ref containing the currently present children. When all exit animations\n * are complete, we use this to re-render the component with the latest children\n * *committed* rather than the latest children *rendered*.\n */\n const pendingPresentChildren = useRef(presentChildren);\n /**\n * Track which exiting children have finished animating out.\n */\n const exitComplete = useConstant(() => new Map());\n /**\n * Save children to render as React state. To ensure this component is concurrent-safe,\n * we check for exiting children via an effect.\n */\n const [diffedChildren, setDiffedChildren] = useState(presentChildren);\n const [renderedChildren, setRenderedChildren] = useState(presentChildren);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n pendingPresentChildren.current = presentChildren;\n /**\n * Update complete status of exiting children.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const key = getChildKey(renderedChildren[i]);\n if (!presentKeys.includes(key)) {\n if (exitComplete.get(key) !== true) {\n exitComplete.set(key, false);\n }\n }\n else {\n exitComplete.delete(key);\n }\n }\n }, [renderedChildren, presentKeys.length, presentKeys.join(\"-\")]);\n const exitingChildren = [];\n if (presentChildren !== diffedChildren) {\n let nextChildren = [...presentChildren];\n /**\n * Loop through all the currently rendered components and decide which\n * are exiting.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const child = renderedChildren[i];\n const key = getChildKey(child);\n if (!presentKeys.includes(key)) {\n nextChildren.splice(i, 0, child);\n exitingChildren.push(child);\n }\n }\n /**\n * If we're in \"wait\" mode, and we have exiting children, we want to\n * only render these until they've all exited.\n */\n if (mode === \"wait\" && exitingChildren.length) {\n nextChildren = exitingChildren;\n }\n setRenderedChildren(onlyElements(nextChildren));\n setDiffedChildren(presentChildren);\n /**\n * Early return to ensure once we've set state with the latest diffed\n * children, we can immediately re-render.\n */\n return null;\n }\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n renderedChildren.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n /**\n * If we've been provided a forceRender function by the LayoutGroupContext,\n * we can use it to force a re-render amongst all surrounding components once\n * all components have finished animating out.\n */\n const { forceRender } = useContext(LayoutGroupContext);\n return (jsx(Fragment, { children: renderedChildren.map((child) => {\n const key = getChildKey(child);\n const isPresent = propagate && !isParentPresent\n ? false\n : presentChildren === renderedChildren ||\n presentKeys.includes(key);\n const onExit = () => {\n if (exitComplete.has(key)) {\n exitComplete.set(key, true);\n }\n else {\n return;\n }\n let isEveryExitComplete = true;\n exitComplete.forEach((isExitComplete) => {\n if (!isExitComplete)\n isEveryExitComplete = false;\n });\n if (isEveryExitComplete) {\n forceRender?.();\n setRenderedChildren(pendingPresentChildren.current);\n propagate && safeToRemove?.();\n onExitComplete && onExitComplete();\n }\n };\n return (jsx(PresenceChild, { isPresent: isPresent, initial: !isInitialRender.current || initial\n ? undefined\n : false, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, onExitComplete: isPresent ? undefined : onExit, anchorX: anchorX, children: child }, key));\n }) }));\n};\n\nexport { AnimatePresence };\n"],"names":["_ref","children","custom","initial","onExitComplete","presenceAffectsLayout","mode","propagate","anchorX","isParentPresent","safeToRemove","usePresence","presentChildren","useMemo","onlyElements","presentKeys","map","getChildKey","isInitialRender","useRef","pendingPresentChildren","exitComplete","useConstant","Map","diffedChildren","setDiffedChildren","useState","renderedChildren","setRenderedChildren","useIsomorphicLayoutEffect","current","i","length","key","includes","delete","get","set","join","exitingChildren","nextChildren","child","splice","push","process","env","NODE_ENV","console","warn","forceRender","useContext","LayoutGroupContext","jsx","Fragment","isPresent","PresenceChild","undefined","onExit","has","isEveryExitComplete","forEach","isExitComplete"],"mappings":"odA2CwBA,IAA6I,IAA5IC,SAAEA,EAAQC,OAAEA,EAAMC,QAAEA,GAAU,EAAIC,eAAEA,EAAcC,sBAAEA,GAAwB,EAAIC,KAAEA,EAAO,OAAMC,UAAEA,GAAY,EAAKC,QAAEA,EAAU,QAASR,EAC5J,MAAOS,EAAiBC,GAAgBC,EAAWA,YAACJ,GAK9CK,EAAkBC,EAAAA,SAAQ,IAAMC,EAAAA,aAAab,IAAW,CAACA,IAKzDc,EAAcR,IAAcE,EAAkB,GAAKG,EAAgBI,IAAIC,EAAAA,aAIvEC,EAAkBC,UAAO,GAMzBC,EAAyBD,SAAOP,GAIhCS,EAAeC,EAAWA,aAAC,IAAM,IAAIC,OAKpCC,EAAgBC,GAAqBC,EAAQA,SAACd,IAC9Ce,EAAkBC,GAAuBF,EAAQA,SAACd,GACzDiB,EAAAA,2BAA0B,KACtBX,EAAgBY,SAAU,EAC1BV,EAAuBU,QAAUlB,EAIjC,IAAK,IAAImB,EAAI,EAAGA,EAAIJ,EAAiBK,OAAQD,IAAK,CAC9C,MAAME,EAAMhB,EAAWA,YAACU,EAAiBI,IACpChB,EAAYmB,SAASD,GAMtBZ,EAAac,OAAOF,IALU,IAA1BZ,EAAae,IAAIH,IACjBZ,EAAagB,IAAIJ,GAAK,EAMlC,IACD,CAACN,EAAkBZ,EAAYiB,OAAQjB,EAAYuB,KAAK,OAC3D,MAAMC,EAAkB,GACxB,GAAI3B,IAAoBY,EAAgB,CACpC,IAAIgB,EAAe,IAAI5B,GAKvB,IAAK,IAAImB,EAAI,EAAGA,EAAIJ,EAAiBK,OAAQD,IAAK,CAC9C,MAAMU,EAAQd,EAAiBI,GACzBE,EAAMhB,cAAYwB,GACnB1B,EAAYmB,SAASD,KACtBO,EAAaE,OAAOX,EAAG,EAAGU,GAC1BF,EAAgBI,KAAKF,GAE7B,CAcA,MATa,SAATnC,GAAmBiC,EAAgBP,SACnCQ,EAAeD,GAEnBX,EAAoBd,EAAAA,aAAa0B,IACjCf,EAAkBb,GAKX,IACX,CAC6B,eAAzBgC,QAAQC,IAAIC,UACH,SAATxC,GACAqB,EAAiBK,OAAS,GAC1Be,QAAQC,KAAK,kJAOjB,MAAMC,YAAEA,GAAgBC,EAAAA,WAAWC,EAAAA,oBACnC,OAAQC,EAAAA,QAAAA,IAAIC,EAAAA,QAAAA,SAAU,CAAEpD,SAAU0B,EAAiBX,KAAKyB,IAChD,MAAMR,EAAMhB,cAAYwB,GAClBa,IAAY/C,IAAcE,KAE1BG,IAAoBe,GAClBZ,EAAYmB,SAASD,IAoB7B,OAAQmB,EAAAA,QAAAA,IAAIG,EAAAA,cAAe,CAAED,UAAWA,EAAWnD,UAAUe,EAAgBY,UAAW3B,SAC9EqD,EACOtD,OAAQA,EAAQG,sBAAuBA,EAAuBC,KAAMA,EAAMF,eAAgBkD,OAAYE,EArBxGC,KACX,IAAIpC,EAAaqC,IAAIzB,GAIjB,OAHAZ,EAAagB,IAAIJ,GAAK,GAK1B,IAAI0B,GAAsB,EAC1BtC,EAAauC,SAASC,IACbA,IACDF,GAAsB,EAAK,IAE/BA,IACAV,MACArB,EAAoBR,EAAuBU,SAC3CvB,GAAaG,MACbN,GAAkBA,IACtB,EAIuII,QAASA,EAASP,SAAUwC,GAASR,EAAI,KACnL"}
1
+ {"version":3,"file":"index.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs"],"sourcesContent":["\"use client\";\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { useMemo, useRef, useState, useContext } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { usePresence } from './use-presence.mjs';\nimport { onlyElements, getChildKey } from './utils.mjs';\n\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * <AnimatePresence>\n * {items.map(item => (\n * <motion.div\n * key={item.id}\n * initial={{ opacity: 0 }}\n * animate={{ opacity: 1 }}\n * exit={{ opacity: 0 }}\n * />\n * ))}\n * </AnimatePresence>\n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, anchorX = \"left\", anchorY = \"top\", root }) => {\n const [isParentPresent, safeToRemove] = usePresence(propagate);\n /**\n * Filter any children that aren't ReactElements. We can only track components\n * between renders with a props.key.\n */\n const presentChildren = useMemo(() => onlyElements(children), [children]);\n /**\n * Track the keys of the currently rendered children. This is used to\n * determine which children are exiting.\n */\n const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey);\n /**\n * If `initial={false}` we only want to pass this to components in the first render.\n */\n const isInitialRender = useRef(true);\n /**\n * A ref containing the currently present children. When all exit animations\n * are complete, we use this to re-render the component with the latest children\n * *committed* rather than the latest children *rendered*.\n */\n const pendingPresentChildren = useRef(presentChildren);\n /**\n * Track which exiting children have finished animating out.\n */\n const exitComplete = useConstant(() => new Map());\n /**\n * Track which components are currently processing exit to prevent duplicate processing.\n */\n const exitingComponents = useRef(new Set());\n /**\n * Save children to render as React state. To ensure this component is concurrent-safe,\n * we check for exiting children via an effect.\n */\n const [diffedChildren, setDiffedChildren] = useState(presentChildren);\n const [renderedChildren, setRenderedChildren] = useState(presentChildren);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n pendingPresentChildren.current = presentChildren;\n /**\n * Update complete status of exiting children.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const key = getChildKey(renderedChildren[i]);\n if (!presentKeys.includes(key)) {\n if (exitComplete.get(key) !== true) {\n exitComplete.set(key, false);\n }\n }\n else {\n exitComplete.delete(key);\n exitingComponents.current.delete(key);\n }\n }\n }, [renderedChildren, presentKeys.length, presentKeys.join(\"-\")]);\n const exitingChildren = [];\n if (presentChildren !== diffedChildren) {\n let nextChildren = [...presentChildren];\n /**\n * Loop through all the currently rendered components and decide which\n * are exiting.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const child = renderedChildren[i];\n const key = getChildKey(child);\n if (!presentKeys.includes(key)) {\n nextChildren.splice(i, 0, child);\n exitingChildren.push(child);\n }\n }\n /**\n * If we're in \"wait\" mode, and we have exiting children, we want to\n * only render these until they've all exited.\n */\n if (mode === \"wait\" && exitingChildren.length) {\n nextChildren = exitingChildren;\n }\n setRenderedChildren(onlyElements(nextChildren));\n setDiffedChildren(presentChildren);\n /**\n * Early return to ensure once we've set state with the latest diffed\n * children, we can immediately re-render.\n */\n return null;\n }\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n renderedChildren.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n /**\n * If we've been provided a forceRender function by the LayoutGroupContext,\n * we can use it to force a re-render amongst all surrounding components once\n * all components have finished animating out.\n */\n const { forceRender } = useContext(LayoutGroupContext);\n return (jsx(Fragment, { children: renderedChildren.map((child) => {\n const key = getChildKey(child);\n const isPresent = propagate && !isParentPresent\n ? false\n : presentChildren === renderedChildren ||\n presentKeys.includes(key);\n const onExit = () => {\n if (exitingComponents.current.has(key)) {\n return;\n }\n if (exitComplete.has(key)) {\n exitingComponents.current.add(key);\n exitComplete.set(key, true);\n }\n else {\n return;\n }\n let isEveryExitComplete = true;\n exitComplete.forEach((isExitComplete) => {\n if (!isExitComplete)\n isEveryExitComplete = false;\n });\n if (isEveryExitComplete) {\n forceRender?.();\n setRenderedChildren(pendingPresentChildren.current);\n propagate && safeToRemove?.();\n onExitComplete && onExitComplete();\n }\n };\n return (jsx(PresenceChild, { isPresent: isPresent, initial: !isInitialRender.current || initial\n ? undefined\n : false, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, root: root, onExitComplete: isPresent ? undefined : onExit, anchorX: anchorX, anchorY: anchorY, children: child }, key));\n }) }));\n};\n\nexport { AnimatePresence };\n//# sourceMappingURL=index.mjs.map\n"],"names":["_ref","children","custom","initial","onExitComplete","presenceAffectsLayout","mode","propagate","anchorX","anchorY","root","presentChildren","useMemo","onlyElements","presentKeys","isParentPresent","map","getChildKey","isInitialRender","useRef","pendingPresentChildren","current","i","renderedChildren","length","exitComplete","delete","key","exitingComponents","set","join","diffedChildren","nextChildren","child","exitingChildren","push","setRenderedChildren","process","env","NODE_ENV","console","warn","isPresent","includes","jsx","PresenceChild","undefined","has","add","forEach","isExitComplete","safeToRemove"],"mappings":"odA6COA,IAAA,IAAAC,SAAAA,EAAAC,OAAAA,EAAAC,QAAAA,GAAA,EAAAC,eAAAA,EAAAC,sBAAAA,GAAA,EAAAC,KAAAA,EAAA,OAAAC,UAAAA,GAAA,EAAAC,QAAAA,EAAA,OAAAC,QAAAA,EAAA,MAAAC,KAAAA,GAAAV,8BAkBHW,EAAAC,EAAAA,SAAA,IAAAC,EAAAA,aAAAZ,KAAAA,IAMAa,EAAAP,IAAAQ,KAAAJ,EAAAK,IAAAC,EAAAA,aAMAC,EAAAC,UAAA,GAOAC,EAAAD,SAAAR,gIAoBIO,EAAAG,SAAA,EACAD,EAAAC,QAAAV,EAKA,IAAAW,IAAAA,IAAAA,EAAAC,EAAAC,OAAAF,IAAA,4CAQQG,EAAAC,OAAAC,GACAC,EAAAP,QAAAK,OAAAC,mBAJIF,EAAAI,IAAAF,GAAA,MAOhBJ,CAAAA,EAAAT,EAAAU,OAAAV,EAAAgB,KAAA,kBAIA,GAAAnB,IAAAoB,EAAA,CACI,IAAAC,MAAArB,GAMA,IAAAW,IAAAA,IAAAA,EAAAC,EAAAC,OAAAF,IAAA,CACI,MAAAW,EAAAV,EAAAD,GACAK,EAAAV,cAAAgB,mCAIIC,EAAAC,KAAAF,IAmBR,kCAPAG,EAAAvB,EAAAA,aAAAmB,SAOA,oBAGJK,QAAAC,IAAAC,UAEI,SAAAjC,GACAiB,EAAAC,OAAA,GAEAgB,QAAAC,KAAA,uQAeQ,MAAAd,EAAAV,cAAAgB,GAEAS,IAAAnC,IAAAQ,YAIUD,EAAA6B,SAAAhB,IA6BV,OAAAiB,EAAAA,QAAAA,IAAAC,EAAAA,cAAA,CAAAH,UAAAA,EAAAvC,UAAAe,EAAAG,UAAAlB,SAMgB2C,yGA5BZ,IAAArB,EAAAsB,IAAApB,UACIC,EAAAP,QAAA2B,IAAArB,GACAF,EAAAI,IAAAF,GAAA,YAMJF,EAAAwB,SAAAC,IACIA,uBAKAd,EAAAhB,EAAAC,SAEAd,GAAA4C"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-presence.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs"],"sourcesContent":["import { useContext, useId, useEffect, useCallback } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence(subscribe = true) {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => {\n if (subscribe) {\n return register(id);\n }\n }, [subscribe]);\n const safeToRemove = useCallback(() => subscribe && onExitComplete && onExitComplete(id), [id, onExitComplete, subscribe]);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n"],"names":["subscribe","arguments","length","undefined","context","useContext","PresenceContext","isPresent","onExitComplete","register","id","useId","useEffect","safeToRemove","useCallback"],"mappings":"iKA0BA,WAAuC,IAAlBA,IAASC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAC1B,MAAMG,EAAUC,aAAWC,EAAAA,iBAC3B,GAAgB,OAAZF,EACA,MAAO,EAAC,EAAM,MAClB,MAAMG,UAAEA,EAASC,eAAEA,EAAcC,SAAEA,GAAaL,EAG1CM,EAAKC,EAAAA,QACXC,EAAAA,WAAU,KACN,GAAIZ,EACA,OAAOS,EAASC,EACpB,GACD,CAACV,IACJ,MAAMa,EAAeC,EAAAA,aAAY,IAAMd,GAAaQ,GAAkBA,EAAeE,IAAK,CAACA,EAAIF,EAAgBR,IAC/G,OAAQO,GAAaC,EAAiB,EAAC,EAAOK,GAAgB,EAAC,EACnE"}
1
+ {"version":3,"file":"use-presence.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs"],"sourcesContent":["\"use client\";\nimport { useContext, useId, useEffect, useCallback } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed from the tree,\n * but `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence(subscribe = true) {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => {\n if (subscribe) {\n return register(id);\n }\n }, [subscribe]);\n const safeToRemove = useCallback(() => subscribe && onExitComplete && onExitComplete(id), [id, onExitComplete, subscribe]);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n//# sourceMappingURL=use-presence.mjs.map\n"],"names":["subscribe","arguments","length","undefined","context","useContext","PresenceContext","id","useId","register","isPresent","onExitComplete","safeToRemove"],"mappings":"iKAuCM,WAAA,IAAAA,IAAAC,UAAAC,eAAAC,IAAAF,UAAA,KAAAA,UAAA,GAGF,MAAAG,EAAAC,aAAAC,EAAAA,iBAEsB,GAAA,OAAAF,EAAA,MAAA,EAAA,EAAA,uDAOtBG,EAAAC,EAAAA,+BAGQ,OAAAC,EAAAF,KAER,CAAAP,oDAOA,OAAAU,GAAAC,EAAA,EAAA,EAAAC,GAAA,EAAA,EACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs"],"sourcesContent":["import { Children, isValidElement } from 'react';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n\nexport { getChildKey, onlyElements };\n"],"names":["child","key","children","filtered","Children","forEach","isValidElement","push"],"mappings":"+GAEqBA,GAAUA,EAAMC,KAAO,wBAC5C,SAAsBC,GAClB,MAAMC,EAAW,GAMjB,OAJAC,WAASC,QAAQH,GAAWF,IACpBM,EAAAA,eAAeN,IACfG,EAASI,KAAKP,EAAM,IAErBG,CACX"}
1
+ {"version":3,"file":"utils.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs"],"sourcesContent":["import { Children, isValidElement } from 'react';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n\nexport { getChildKey, onlyElements };\n//# sourceMappingURL=utils.mjs.map\n"],"names":["child","key","children","filtered","Children","forEach","isValidElement","push"],"mappings":"+GAI4BA,GACxBA,EAAMC,KAAO,wBAEX,SAAuBC,GACzB,MAAMC,EAAgC,GAOtC,OAJAC,WAASC,QAAQH,GAAWF,IACpBM,EAAAA,eAAeN,IAAQG,EAASI,KAAKP,EAAM,IAG5CG,CACX"}
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutGroupContext.mjs.js","sources":["../../../../../../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs"],"sourcesContent":["\"use client\";\nimport { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n"],"names":["LayoutGroupContext","createContext"],"mappings":"oEAGA,MAAMA,mBAAkCC,cAAC,CAAE"}
1
+ {"version":3,"file":"LayoutGroupContext.mjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"LazyContext.mjs.js","sources":["../../../../../../node_modules/framer-motion/dist/es/context/LazyContext.mjs"],"sourcesContent":["\"use client\";\nimport { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n"],"names":["LazyContext","createContext","strict"],"mappings":"oEAGMA,MAAAA,mBAAcC,cAAc,CAAEC,QAAQ"}
1
+ {"version":3,"file":"LazyContext.mjs.js","sources":["../../../../../../node_modules/framer-motion/dist/es/context/LazyContext.mjs"],"sourcesContent":["\"use client\";\nimport { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n//# sourceMappingURL=LazyContext.mjs.map\n"],"names":["LazyContext","createContext","strict"],"mappings":"oEAUOA,MAAAA,mBAAAC,cAAA,CAAAC,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MotionConfigContext.mjs.js","sources":["../../../../../../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs"],"sourcesContent":["\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n"],"names":["MotionConfigContext","createContext","transformPagePoint","p","isStatic","reducedMotion"],"mappings":"oEAMMA,MAAAA,mBAAsBC,cAAc,CACtCC,mBAAqBC,GAAMA,EAC3BC,UAAU,EACVC,cAAe"}
1
+ {"version":3,"file":"MotionConfigContext.mjs.js","sources":["../../../../../../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs"],"sourcesContent":["\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n//# sourceMappingURL=MotionConfigContext.mjs.map\n"],"names":["MotionConfigContext","createContext","transformPagePoint","p","isStatic","reducedMotion"],"mappings":"oEA4DOA,MAAAA,mBAAAC,cAAA,CACHC,mBAAAC,GAAAA,EACAC,UAAA,EACAC,cAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs"],"sourcesContent":["import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n"],"names":["variantLabelsAsDependency","prop","Array","isArray","join","props","initial","animate","getCurrentTreeVariants","useContext","MotionContext","useMemo"],"mappings":"mJAQA,SAASA,EAA0BC,GAC/B,OAAOC,MAAMC,QAAQF,GAAQA,EAAKG,KAAK,KAAOH,CAClD,gCANA,SAAgCI,GAC5B,MAAMC,QAAEA,EAAOC,QAAEA,GAAYC,EAAsBA,uBAACH,EAAOI,aAAWC,EAAAA,gBACtE,OAAOC,EAAOA,SAAC,KAAO,CAAEL,UAASC,aAAY,CAACP,EAA0BM,GAAUN,EAA0BO,IAChH"}
1
+ {"version":3,"file":"create.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs"],"sourcesContent":["\"use client\";\nimport { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n//# sourceMappingURL=create.mjs.map\n"],"names":["variantLabelsAsDependency","prop","Array","isArray","join","props","initial","animate","getCurrentTreeVariants","useContext","MotionContext"],"mappings":"mJAqBA,SAAAA,EAAAC,GAGI,OAAAC,MAAAC,QAAAF,GAAAA,EAAAG,KAAA,KAAAH,CACJ,gCAlBM,SAAAI,GAGF,MAAAC,QAAAA,EAAAC,QAAAA,GAAAC,EAAAA,uBAAAH,EAAAI,aAAAC,EAAAA,2EASJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs"],"sourcesContent":["\"use client\";\nimport { createContext } from 'react';\n\nconst MotionContext = /* @__PURE__ */ createContext({});\n\nexport { MotionContext };\n"],"names":["MotionContext","createContext"],"mappings":"oEAGA,MAAMA,mBAA6CC,cAAC,CAAE"}
1
+ {"version":3,"file":"index.mjs.js","sources":["../../../../../../../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs"],"sourcesContent":["\"use client\";\nimport { createContext } from 'react';\n\nconst MotionContext = /* @__PURE__ */ createContext({});\n\nexport { MotionContext };\n//# sourceMappingURL=index.mjs.map\n"],"names":["MotionContext","createContext"],"mappings":"oEAWOA,MAAAA,mBAAAC,cAAA,CAAA"}