{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "footer-bold",
  "dependencies": [
    "motion"
  ],
  "devDependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "path": "../../packages/blocks/src/footer-section/footer-bold.tsx",
      "content": "export const BoldFooter = () => {\r\n  return (\r\n    <footer className=\"w-full min-h-screen bg-white text-zinc-900 overflow-hidden border-t border-zinc-200 font-dmSans\">\r\n      <div className=\"max-w-7xl mx-auto px-4 py-20 sm:px-6 lg:px-8 flex flex-col items-center\">\r\n        <div className=\"w-full flex flex-col md:flex-row justify-between items-start gap-12 mb-20\">\r\n          <div className=\"max-w-md\">\r\n            <h2 className=\"text-3xl font-bold tracking-tight text-pretty mb-6\">\r\n              Have a project in mind? Let's build something exceptional.\r\n            </h2>\r\n            <a\r\n              href=\"mailto:hello@example.com\"\r\n              className=\"text-lg font-medium border-b-2 border-zinc-900 pb-1 hover:text-zinc-500 hover:border-zinc-500 transition-all\"\r\n            >\r\n              hello@example.com\r\n            </a>\r\n          </div>\r\n\r\n          <div className=\"grid grid-cols-2 gap-12 sm:gap-24\">\r\n            <div>\r\n              <p className=\"text-xs font-bold uppercase tracking-widest text-zinc-400 mb-4\">\r\n                Location\r\n              </p>\r\n              <address className=\"not-italic text-sm space-y-1\">\r\n                <p>123 Creative Way</p>\r\n                <p>Brooklyn, NY 11201</p>\r\n              </address>\r\n            </div>\r\n            <div>\r\n              <p className=\"text-xs font-bold uppercase tracking-widest text-zinc-400 mb-4\">\r\n                Social\r\n              </p>\r\n              <nav className=\"flex flex-col gap-2\">\r\n                <a href=\"#\" className=\"text-sm font-medium hover:underline\">\r\n                  Instagram\r\n                </a>\r\n                <a href=\"#\" className=\"text-sm font-medium hover:underline\">\r\n                  Dribbble\r\n                </a>\r\n                <a href=\"#\" className=\"text-sm font-medium hover:underline\">\r\n                  LinkedIn\r\n                </a>\r\n              </nav>\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"relative w-full\">\r\n          <h1 className=\"text-[12vw] font-black tracking-tighter text-zinc-950 select-none pointer-events-none leading-none -mb-[2vw] opacity-5\">\r\n            UI-Layouts\r\n          </h1>\r\n          <div className=\"flex justify-between items-end border-t backdrop-blur border-zinc-200 pt-8 pb-6 relative z-10\">\r\n            <span className=\"text-xs font-medium uppercase tracking-widest text-zinc-400\">\r\n              © 2026 UI-Layouts{' '}\r\n            </span>\r\n            <div className=\"flex gap-8\">\r\n              <span className=\"text-xs  text-zinc-400\">001 — 2024</span>\r\n              <button className=\"text-xs font-bold uppercase tracking-widest hover:text-zinc-500 transition-colors\">\r\n                Back to top ↑\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </footer>\r\n  )\r\n}\r\n",
      "type": "registry:block"
    },
    {
      "path": "./components/ui/timeline-animation.tsx",
      "content": "import type { Variants } from 'motion/react';\nimport { type HTMLMotionProps, motion, useInView } from 'motion/react';\nimport type React from 'react';\n\ntype TimelineContentProps<T extends keyof HTMLElementTagNameMap> = {\n  children?: React.ReactNode;\n  animationNum: number;\n  className?: string;\n  timelineRef: React.RefObject<HTMLElement | null>;\n  as?: T;\n  customVariants?: Variants;\n  once?: boolean;\n} & HTMLMotionProps<T>;\n\nexport const TimelineAnimation = <T extends keyof HTMLElementTagNameMap = 'div'>({\n  children,\n  animationNum,\n  timelineRef,\n  className,\n  as,\n  customVariants,\n  once = true,\n  ...props\n}: TimelineContentProps<T>) => {\n  const defaultSequenceVariants = {\n    visible: (i: number) => ({\n      filter: 'blur(0px)',\n      y: 0,\n      opacity: 1,\n      transition: {\n        delay: i * 0.5,\n        duration: 0.5,\n      },\n    }),\n    hidden: {\n      filter: 'blur(20px)',\n      y: 0,\n      opacity: 0,\n    },\n  };\n\n  const sequenceVariants = customVariants || defaultSequenceVariants;\n\n  const isInView = useInView(timelineRef, {\n    once,\n  });\n\n  const MotionComponent = motion[as || 'div'] as React.ElementType;\n\n  return (\n    <MotionComponent\n      initial='hidden'\n      animate={isInView ? 'visible' : 'hidden'}\n      custom={animationNum}\n      variants={sequenceVariants}\n      className={className}\n      {...props}\n    >\n      {children}\n    </MotionComponent>\n  );\n};\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:block"
}