{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "shadcncraft",
  "homepage": "https://shadcncraft.com",
  "items": [
    {
      "name": "index",
      "type": "registry:style",
      "dependencies": ["class-variance-authority", "radix-ui"],
      "devDependencies": ["tw-animate-css", "shadcn"],
      "registryDependencies": ["utils"],
      "cssVars": {},
      "css": {
        "@import \"tw-animate-css\"": {},
        "@import \"shadcn/tailwind.css\"": {},
        "@layer base": {
          "*": {
            "@apply border-border outline-ring/50": {}
          },
          "body": {
            "@apply bg-background font-sans text-foreground antialiased": {}
          },
          "button:not(:disabled), [role=\"button\"]:not(:disabled)": {
            "@apply cursor-pointer": {}
          }
        }
      }
    },
    {
      "name": "style",
      "type": "registry:style",
      "dependencies": ["class-variance-authority", "radix-ui"],
      "devDependencies": ["tw-animate-css", "shadcn"],
      "registryDependencies": ["utils"],
      "cssVars": {},
      "css": {
        "@import \"tw-animate-css\"": {},
        "@import \"shadcn/tailwind.css\"": {},
        "@layer base": {
          "*": {
            "@apply border-border outline-ring/50": {}
          },
          "body": {
            "@apply bg-background font-sans text-foreground antialiased": {}
          },
          "button:not(:disabled), [role=\"button\"]:not(:disabled)": {
            "@apply cursor-pointer": {}
          }
        }
      }
    },
    {
      "name": "avatar-stack",
      "title": "Avatar Stack",
      "description": "A compact, visually appealing component for displaying multiple user avatars in an overlapping stack. Perfect for showing participants in a group chat, team members, or active collaborators. Supports customizable size, max visible avatars, border styling, and optional '+n' indicator for overflow. Renders gracefully from 1 to dozens of users while maintaining a small footprint.",
      "files": [
        {
          "path": "components/shadcncraft/pro-marketing/avatar-stack.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-marketing/avatar-stack.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "52380-8289",
        "bundle": "pro-marketing"
      },
      "type": "registry:ui"
    },
    {
      "name": "featured-icon",
      "title": "Featured Icon",
      "description": "A component that places an icon inside a styled square or circle frame for extra prominence. This component makes supporting visuals stand out in marketing layouts.",
      "files": [
        {
          "path": "components/shadcncraft/pro-marketing/featured-icon.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-marketing/featured-icon.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17897-100009",
        "bundle": "pro-marketing"
      },
      "type": "registry:ui"
    },
    {
      "name": "marquee",
      "title": "Marquee",
      "description": "A smooth, endlessly looping scroller ideal for showcasing logos, testimonials, images, or sponsor lists. Features auto-play with customizable speed, pause-on-hover, reverse direction, and seamless loop behavior.",
      "files": [
        {
          "path": "components/shadcncraft/pro-marketing/marquee.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-marketing/marquee.tsx"
        }
      ],
      "cssVars": {
        "theme": {
          "animate-marquee": "marquee var(--duration) infinite linear",
          "animate-marquee-vertical": "marquee-vertical var(--duration) linear infinite"
        }
      },
      "css": {
        "@keyframes marquee": {
          "from": {
            "transform": "translateX(0)"
          },
          "to": {
            "transform": "translateX(calc(-100% - var(--gap)))"
          }
        },
        "@keyframes marquee-vertical": {
          "from": {
            "transform": "translateY(0)"
          },
          "to": {
            "transform": "translateY(calc(-100% - var(--gap)))"
          }
        }
      },
      "meta": {
        "tier": "free",
        "figmaNodeId": "81614-10088",
        "bundle": "pro-marketing"
      },
      "type": "registry:ui"
    },
    {
      "name": "page-heading",
      "title": "Page Heading",
      "description": "A component that acts as the text-focused version of a hero banner. This component combines a pre-heading label, an H1 heading, supporting description text, and call-to-action buttons.",
      "registryDependencies": ["@shadcncraft/tagline"],
      "files": [
        {
          "path": "components/shadcncraft/pro-marketing/page-heading.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-marketing/page-heading.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "18403-114401",
        "bundle": "pro-marketing"
      },
      "type": "registry:ui"
    },
    {
      "name": "placeholder-logo",
      "title": "Placeholder Logo",
      "description": "A component for that can be replaced with your brand's main logo. This component ensures layouts stay consistent before brand assets are applied.",
      "files": [
        {
          "path": "components/shadcncraft/pro-marketing/placeholder-logo.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-marketing/placeholder-logo.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17897-100144",
        "bundle": "pro-marketing"
      },
      "type": "registry:ui"
    },
    {
      "name": "profile-card",
      "title": "Profile Card",
      "description": "An extension of the avatar component with more details on the individual. Good for blog posts etc.",
      "registryDependencies": ["avatar"],
      "files": [
        {
          "path": "components/shadcncraft/pro-marketing/profile-card.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-marketing/profile-card.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17897-105981",
        "bundle": "pro-marketing"
      },
      "type": "registry:ui"
    },
    {
      "name": "section-heading",
      "title": "Section Heading",
      "description": "A component that standardizes heading typography and spacing. This component includes a pre-heading label, main heading, and body text in different layout variants.",
      "registryDependencies": ["@shadcncraft/tagline"],
      "files": [
        {
          "path": "components/shadcncraft/pro-marketing/section-heading.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-marketing/section-heading.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17897-105935",
        "bundle": "pro-marketing"
      },
      "type": "registry:ui"
    },
    {
      "name": "star-rating",
      "title": "Star Rating",
      "description": "A component that displays ratings with stars and an optional label. This component builds trust with visual feedback.",
      "files": [
        {
          "path": "components/shadcncraft/pro-marketing/star-rating.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-marketing/star-rating.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17897-99964",
        "bundle": "pro-marketing"
      },
      "type": "registry:ui"
    },
    {
      "name": "tagline",
      "title": "Tagline",
      "description": "A component that displays a tagline with different variants.",
      "files": [
        {
          "path": "components/shadcncraft/pro-marketing/tagline.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-marketing/tagline.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17897-105936",
        "bundle": "pro-marketing"
      },
      "type": "registry:ui"
    },
    {
      "name": "image-zoom",
      "title": "Image Zoom",
      "description": "Image zoom is a component that allows you to zoom in on an image.",
      "dependencies": ["react-medium-image-zoom"],
      "files": [
        {
          "path": "components/shadcncraft/pro-ecommerce/image-zoom.tsx",
          "type": "registry:ui",
          "target": "@components/shadcncraft/pro-ecommerce/image-zoom.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "bundle": "pro-ecommerce"
      },
      "type": "registry:ui"
    },
    {
      "name": "banner-10",
      "title": "Banner 10 – Inline announcement link",
      "description": "A minimal announcement banner for low-friction updates. Renders as simple inline text with an optional icon and link, plus a close action. Best for subtle product news or secondary announcements that shouldn't compete with primary page content.",
      "registryDependencies": ["button"],
      "files": [
        {
          "path": "blocks/pro-marketing/banners/banner-10/index.tsx",
          "type": "registry:component",
          "target": "@components/shadcncraft/pro-marketing/banners/banner-10/index.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17859-94327",
        "bundle": "pro-marketing"
      },
      "categories": ["banners"],
      "type": "registry:block"
    },
    {
      "name": "benefits-13",
      "title": "Benefits 13 – Card grid with section header",
      "description": "A layout with a section header followed by a grid of equal-height cards. Each card includes an icon, title, and short text, arranged in a consistent grid that collapses responsively. Use when you need a structured, repeatable set of items with strong visual separation.",
      "registryDependencies": [
        "@shadcncraft/section-heading",
        "@shadcncraft/featured-icon"
      ],
      "files": [
        {
          "path": "blocks/pro-marketing/benefits/benefits-13/index.tsx",
          "type": "registry:component",
          "target": "@components/shadcncraft/pro-marketing/benefits/benefits-13/index.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17859-91861",
        "bundle": "pro-marketing"
      },
      "categories": ["benefits"],
      "type": "registry:block"
    },
    {
      "name": "contact-11",
      "title": "Contact 11 – Centered form with supporting sidebar",
      "description": "A balanced contact layout with a primary, centered form and a secondary sidebar that mirrors or reinforces the same interaction. The main column keeps focus on the form, while the sidebar provides a persistent fallback or alternative entry point. Useful when you want a calm, symmetrical layout with built-in redundancy for conversion.",
      "registryDependencies": [
        "button",
        "label",
        "input",
        "textarea",
        "checkbox",
        "@shadcncraft/section-heading"
      ],
      "files": [
        {
          "path": "blocks/pro-marketing/contact/contact-11/index.tsx",
          "type": "registry:component",
          "target": "@components/shadcncraft/pro-marketing/contact/contact-11/index.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17859-93196",
        "bundle": "pro-marketing"
      },
      "categories": ["contact"],
      "type": "registry:block"
    },
    {
      "name": "faqs-4",
      "title": "FAQ 4 – Centered accordion with supporting panel",
      "description": "A clean, centered FAQ accordion paired with a narrow sidebar version. Uses a strong section header and clear dividers for easy scanning, with an optional support link at the end. Works well for product or marketing pages where FAQs are a secondary section, not the main focus.",
      "registryDependencies": ["accordion", "@shadcncraft/section-heading"],
      "files": [
        {
          "path": "blocks/pro-marketing/faqs/faqs-4/index.tsx",
          "type": "registry:component",
          "target": "@components/shadcncraft/pro-marketing/faqs/faqs-4/index.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17859-93945",
        "bundle": "pro-marketing"
      },
      "categories": ["faqs"],
      "type": "registry:block"
    },
    {
      "name": "footer-4",
      "title": "Footer 4 – Brand-led sitemap footer",
      "description": "A sitemap footer anchored by a short brand statement and logo, followed by structured link columns and legal links. Gives more context about the company while keeping navigation clear. Works well for marketing sites where brand positioning matters as much as wayfinding.",
      "dependencies": ["react-icons"],
      "registryDependencies": ["separator", "@shadcncraft/placeholder-logo"],
      "files": [
        {
          "path": "blocks/pro-marketing/footers/footer-4/index.tsx",
          "type": "registry:component",
          "target": "@components/shadcncraft/pro-marketing/footers/footer-4/index.tsx"
        }
      ],
      "meta": {
        "containerClassName": "min-h-svh content-end",
        "tier": "free",
        "figmaNodeId": "17859-94192",
        "bundle": "pro-marketing"
      },
      "categories": ["footers"],
      "type": "registry:block"
    },
    {
      "name": "newsletter-signup-5",
      "title": "Newsletter Signup 5 – Inline callout with contained form",
      "description": "A horizontal newsletter signup pattern presented inside a soft container to separate it from surrounding content. The headline and description anchor the left side while the inline form sits to the right, creating a clear scan path and compact footprint. Works well as an embedded callout within long pages and collapses cleanly to a stacked layout on smaller screens.",
      "registryDependencies": ["button", "input", "@shadcncraft/section-heading"],
      "files": [
        {
          "path": "blocks/pro-marketing/newsletter-signup/newsletter-signup-5/index.tsx",
          "type": "registry:component",
          "target": "@components/shadcncraft/pro-marketing/newsletter-signup/newsletter-signup-5/index.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17936-107882",
        "bundle": "pro-marketing"
      },
      "categories": ["newsletter-signup"],
      "type": "registry:block"
    },
    {
      "name": "testimonials-11",
      "title": "Testimonial 11 – Editorial quote grid",
      "description": "A structured testimonial layout that combines a clear section header with a multi-column grid of short quotes. It balances scannability and depth by presenting many voices at once, using consistent cards and subtle hierarchy to reinforce trust without relying on a single standout story.",
      "registryDependencies": [
        "@shadcncraft/section-heading",
        "@shadcncraft/profile-card"
      ],
      "files": [
        {
          "path": "blocks/pro-marketing/testimonials/testimonials-11/index.tsx",
          "type": "registry:component",
          "target": "@components/shadcncraft/pro-marketing/testimonials/testimonials-11/index.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "17936-108064",
        "bundle": "pro-marketing"
      },
      "categories": ["testimonials"],
      "type": "registry:block"
    },
    {
      "name": "top-navigation-5",
      "title": "Top Navigation 5 – Minimal center-aligned links with inline auth",
      "description": "A stripped-back, center-aligned top navigation that prioritizes clarity and whitespace. Primary links sit in a single horizontal row with the brand anchored to the left and a lightweight login action on the right. On small screens, the layout collapses into a simple slide-out menu with stacked links and a single secondary action, keeping the structure familiar while reducing visual noise.",
      "registryDependencies": [
        "button",
        "@shadcncraft/placeholder-logo",
        "@shadcncraft/use-click-outside",
        "@shadcncraft/use-mobile"
      ],
      "files": [
        {
          "path": "blocks/pro-marketing/top-navigation/top-navigation-5/index.tsx",
          "type": "registry:component",
          "target": "@components/shadcncraft/pro-marketing/top-navigation/top-navigation-5/index.tsx"
        }
      ],
      "meta": {
        "tier": "free",
        "figmaNodeId": "14088-52274",
        "bundle": "pro-marketing"
      },
      "categories": ["top-navigation"],
      "type": "registry:block"
    },
    {
      "name": "semantic-tokens",
      "files": [],
      "cssVars": {
        "theme": {
          "color-info": "var(--info)",
          "color-info-foreground": "var(--info-foreground)",
          "color-success": "var(--success)",
          "color-success-foreground": "var(--success-foreground)",
          "color-warning": "var(--warning)",
          "color-warning-foreground": "var(--warning-foreground)",
          "color-border-subtle": "var(--border-subtle)"
        },
        "light": {
          "info": "hsl(201, 98%, 32%)",
          "info-foreground": "hsl(204, 100%, 97%)",
          "success": "hsl(155, 90%, 24%)",
          "success-foreground": "hsl(145, 81%, 96%)",
          "warning": "hsl(22, 92%, 37%)",
          "warning-foreground": "hsl(45, 100%, 96%)",
          "border-subtle": "hsl(0, 0%, 0%, 0.05)"
        },
        "dark": {
          "info": "hsl(199, 97%, 74%)",
          "info-foreground": "hsl(201, 83%, 14%)",
          "success": "hsl(148, 63%, 67%)",
          "success-foreground": "hsl(156, 79%, 11%)",
          "warning": "hsl(42, 99%, 65%)",
          "warning-foreground": "hsl(17, 79%, 17%)",
          "border-subtle": "hsl(0, 0%, 100%, 0.1)"
        }
      },
      "type": "registry:theme"
    },
    {
      "name": "design-system",
      "registryDependencies": ["@shadcncraft/style", "@shadcncraft/semantic-tokens"],
      "files": [],
      "cssVars": {},
      "type": "registry:style"
    },
    {
      "name": "use-carousel",
      "dependencies": ["embla-carousel", "embla-carousel-react"],
      "files": [
        {
          "path": "src/registry/bases/radix/hooks/use-carousel.ts",
          "type": "registry:hook"
        }
      ],
      "meta": {
        "tier": "free"
      },
      "type": "registry:hook"
    },
    {
      "name": "use-click-outside",
      "dependencies": [],
      "files": [
        {
          "path": "src/registry/bases/radix/hooks/use-click-outside.ts",
          "type": "registry:hook"
        }
      ],
      "meta": {
        "tier": "free"
      },
      "type": "registry:hook"
    },
    {
      "name": "use-mobile",
      "dependencies": [],
      "files": [
        {
          "path": "src/registry/bases/radix/hooks/use-mobile.ts",
          "type": "registry:hook"
        }
      ],
      "meta": {
        "tier": "free"
      },
      "type": "registry:hook"
    }
  ]
}
