diff --git a/apps/www/public/llms-full.txt b/apps/www/public/llms-full.txt
index 6e2d9975a..595ccc1ca 100644
--- a/apps/www/public/llms-full.txt
+++ b/apps/www/public/llms-full.txt
@@ -3394,10 +3394,10 @@ import { useRef } from "react"
import {
AnimatePresence,
motion,
- MotionProps,
+ type MotionProps,
useInView,
- UseInViewOptions,
- Variants,
+ type UseInViewOptions,
+ type Variants,
} from "motion/react"
type MarginType = UseInViewOptions["margin"]
@@ -3418,6 +3418,9 @@ interface BlurFadeProps extends MotionProps {
blur?: string
}
+const getFilter = (v: Variants[string]) =>
+ typeof v === "function" ? undefined : v.filter
+
export function BlurFade({
children,
className,
@@ -3448,6 +3451,15 @@ export function BlurFade({
},
}
const combinedVariants = variant || defaultVariants
+
+ const hiddenFilter = getFilter(combinedVariants.hidden)
+ const visibleFilter = getFilter(combinedVariants.visible)
+
+ const shouldTransitionFilter =
+ hiddenFilter != null &&
+ visibleFilter != null &&
+ hiddenFilter !== visibleFilter
+
return (
\n \n {children}\n \n \n )\n}\n",
+ "content": "\"use client\"\n\nimport { useRef } from \"react\"\nimport {\n AnimatePresence,\n motion,\n type MotionProps,\n useInView,\n type UseInViewOptions,\n type Variants,\n} from \"motion/react\"\n\ntype MarginType = UseInViewOptions[\"margin\"]\n\ninterface BlurFadeProps extends MotionProps {\n children: React.ReactNode\n className?: string\n variant?: {\n hidden: { y: number }\n visible: { y: number }\n }\n duration?: number\n delay?: number\n offset?: number\n direction?: \"up\" | \"down\" | \"left\" | \"right\"\n inView?: boolean\n inViewMargin?: MarginType\n blur?: string\n}\n\nconst getFilter = (v: Variants[string]) =>\n typeof v === \"function\" ? undefined : v.filter\n\nexport function BlurFade({\n children,\n className,\n variant,\n duration = 0.4,\n delay = 0,\n offset = 6,\n direction = \"down\",\n inView = false,\n inViewMargin = \"-50px\",\n blur = \"6px\",\n ...props\n}: BlurFadeProps) {\n const ref = useRef(null)\n const inViewResult = useInView(ref, { once: true, margin: inViewMargin })\n const isInView = !inView || inViewResult\n const defaultVariants: Variants = {\n hidden: {\n [direction === \"left\" || direction === \"right\" ? \"x\" : \"y\"]:\n direction === \"right\" || direction === \"down\" ? -offset : offset,\n opacity: 0,\n filter: `blur(${blur})`,\n },\n visible: {\n [direction === \"left\" || direction === \"right\" ? \"x\" : \"y\"]: 0,\n opacity: 1,\n filter: `blur(0px)`,\n },\n }\n const combinedVariants = variant || defaultVariants\n\n const hiddenFilter = getFilter(combinedVariants.hidden)\n const visibleFilter = getFilter(combinedVariants.visible)\n\n const shouldTransitionFilter =\n hiddenFilter != null &&\n visibleFilter != null &&\n hiddenFilter !== visibleFilter\n\n return (\n \n \n {children}\n \n \n )\n}\n",
"type": "registry:ui"
}
]
diff --git a/apps/www/registry/magicui/blur-fade.tsx b/apps/www/registry/magicui/blur-fade.tsx
index 6609f5af9..1a546c4b1 100644
--- a/apps/www/registry/magicui/blur-fade.tsx
+++ b/apps/www/registry/magicui/blur-fade.tsx
@@ -4,10 +4,10 @@ import { useRef } from "react"
import {
AnimatePresence,
motion,
- MotionProps,
useInView,
- UseInViewOptions,
- Variants,
+ type MotionProps,
+ type UseInViewOptions,
+ type Variants,
} from "motion/react"
type MarginType = UseInViewOptions["margin"]
@@ -28,6 +28,9 @@ interface BlurFadeProps extends MotionProps {
blur?: string
}
+const getFilter = (v: Variants[string]) =>
+ typeof v === "function" ? undefined : v.filter
+
export function BlurFade({
children,
className,
@@ -58,6 +61,15 @@ export function BlurFade({
},
}
const combinedVariants = variant || defaultVariants
+
+ const hiddenFilter = getFilter(combinedVariants.hidden)
+ const visibleFilter = getFilter(combinedVariants.visible)
+
+ const shouldTransitionFilter =
+ hiddenFilter != null &&
+ visibleFilter != null &&
+ hiddenFilter !== visibleFilter
+
return (