diff --git a/package.json b/package.json index e35c3a14..34a4301b 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,6 @@ "clsx": "^2.1.1", "cmdk": "^1.1.1", "croner": "^10.0.1", - "framer-motion": "^12.43.0", "hash-wasm": "^4.12.0", "ioredis": "^5.11.1", "jpeg-js": "^0.4.4", @@ -62,6 +61,7 @@ "lenis": "^1.3.25", "lucide-react": "^1.27.0", "lzma": "^2.3.2", + "motion": "^12.43.0", "music-metadata": "^11.14.0", "mysql2": "^3.23.2", "next": "^16.2.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 394838fb..613b2098 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -62,9 +62,6 @@ importers: croner: specifier: ^10.0.1 version: 10.0.1 - framer-motion: - specifier: ^12.43.0 - version: 12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) hash-wasm: specifier: ^4.12.0 version: 4.12.0 @@ -89,6 +86,9 @@ importers: lzma: specifier: ^2.3.2 version: 2.3.2 + motion: + specifier: ^12.43.0 + version: 12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) music-metadata: specifier: ^11.14.0 version: 11.14.0 @@ -4423,6 +4423,20 @@ packages: motion-utils@12.39.0: resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==} + motion@12.43.0: + resolution: {integrity: sha512-BQgQbSa9Hn3/mtbib0MK53y6JSANa+YKUKlaYnWzAVDH424RYQ5LVpV3pNiWH00BA2z4ojsSdMzqT7g2FQwjuQ==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -9565,6 +9579,14 @@ snapshots: motion-utils@12.39.0: {} + motion@12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + dependencies: + framer-motion: 12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + tslib: 2.8.1 + optionalDependencies: + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + mrmime@2.0.1: {} ms@2.0.0: {} diff --git a/src/components/admin/confirm-dialog.tsx b/src/components/admin/confirm-dialog.tsx index f98e0d97..53c68376 100644 --- a/src/components/admin/confirm-dialog.tsx +++ b/src/components/admin/confirm-dialog.tsx @@ -1,6 +1,6 @@ "use client"; -import { AnimatePresence, motion } from "framer-motion"; +import { AnimatePresence, motion } from "motion/react"; import { useCallback, useEffect, useRef, useState } from "react"; import { createPortal } from "react-dom"; import { Button } from "@/components/ui/button"; diff --git a/src/components/animated-counter.tsx b/src/components/animated-counter.tsx index 168bfbf1..62977c82 100644 --- a/src/components/animated-counter.tsx +++ b/src/components/animated-counter.tsx @@ -1,6 +1,6 @@ "use client"; -import { motion, useInView } from "framer-motion"; +import { motion, useInView } from "motion/react"; import { useEffect, useRef, useState } from "react"; export function AnimatedCounter({ diff --git a/src/components/cms-info-popup.tsx b/src/components/cms-info-popup.tsx index faafebad..b36d8eff 100644 --- a/src/components/cms-info-popup.tsx +++ b/src/components/cms-info-popup.tsx @@ -1,6 +1,6 @@ "use client"; -import { AnimatePresence, motion } from "framer-motion"; +import { AnimatePresence, motion } from "motion/react"; import { useEffect, useState } from "react"; const cmsDetails = [ diff --git a/src/components/mobile-nav.tsx b/src/components/mobile-nav.tsx index bb4323cb..e0bdd9d8 100644 --- a/src/components/mobile-nav.tsx +++ b/src/components/mobile-nav.tsx @@ -1,6 +1,6 @@ "use client"; -import { AnimatePresence, motion } from "framer-motion"; +import { AnimatePresence, motion } from "motion/react"; import Image from "next/image"; import { type ReactNode, useRef, useState } from "react"; import { FALLBACK_HOTEL_NAME } from "@/lib/brand"; diff --git a/src/components/motion-page-wrapper.tsx b/src/components/motion-page-wrapper.tsx index f178ca11..bb40930b 100644 --- a/src/components/motion-page-wrapper.tsx +++ b/src/components/motion-page-wrapper.tsx @@ -1,6 +1,6 @@ "use client"; -import { AnimatePresence, motion } from "framer-motion"; +import { AnimatePresence, motion } from "motion/react"; import { usePathname } from "next/navigation"; import type { ReactNode } from "react"; import { pageTransition } from "@/lib/motion"; diff --git a/src/components/motion-reveal.tsx b/src/components/motion-reveal.tsx index 9b66c4c5..edbf0af4 100644 --- a/src/components/motion-reveal.tsx +++ b/src/components/motion-reveal.tsx @@ -1,6 +1,6 @@ "use client"; -import { motion } from "framer-motion"; +import { motion } from "motion/react"; import type { ReactNode } from "react"; interface RevealProps { diff --git a/src/components/nav-dropdown.tsx b/src/components/nav-dropdown.tsx index e84980ef..03aa2009 100644 --- a/src/components/nav-dropdown.tsx +++ b/src/components/nav-dropdown.tsx @@ -1,6 +1,6 @@ "use client"; -import { AnimatePresence, motion } from "framer-motion"; +import { AnimatePresence, motion } from "motion/react"; import Image from "next/image"; import { type ReactNode, useEffect, useRef, useState } from "react"; import { dropdownVariants } from "@/lib/motion"; diff --git a/src/components/public/photo-lightbox.tsx b/src/components/public/photo-lightbox.tsx index 1916df30..333f6e92 100644 --- a/src/components/public/photo-lightbox.tsx +++ b/src/components/public/photo-lightbox.tsx @@ -1,6 +1,6 @@ "use client"; -import { AnimatePresence, motion } from "framer-motion"; +import { AnimatePresence, motion } from "motion/react"; import { useCallback, useEffect, useState } from "react"; /** diff --git a/src/components/public/radio-player.tsx b/src/components/public/radio-player.tsx index eba9dac3..35d317bc 100644 --- a/src/components/public/radio-player.tsx +++ b/src/components/public/radio-player.tsx @@ -1,6 +1,6 @@ "use client"; -import { motion } from "framer-motion"; +import { motion } from "motion/react"; import { useCallback, useEffect, useRef, useState } from "react"; import { useEventSource } from "@/lib/use-event-source"; diff --git a/src/components/typewriter-text.tsx b/src/components/typewriter-text.tsx index c713f441..fa225743 100644 --- a/src/components/typewriter-text.tsx +++ b/src/components/typewriter-text.tsx @@ -1,6 +1,6 @@ "use client"; -import { motion } from "framer-motion"; +import { motion } from "motion/react"; import { useEffect, useState } from "react"; export function TypewriterText({ diff --git a/src/lib/motion.ts b/src/lib/motion.ts index 56e8858f..8c36731b 100644 --- a/src/lib/motion.ts +++ b/src/lib/motion.ts @@ -1,4 +1,4 @@ -import type { Variants } from "framer-motion"; +import type { Variants } from "motion/react"; export const pageTransition: Variants = { initial: { opacity: 0, y: 8 },