{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "footer-row",
  "title": "Footer Row",
  "description": "A wrapping row of links under its own label, set apart by a dashed rule.",
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/default/footer-row/footer-row.tsx",
      "content": "import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** The same shapes Footer Columns uses, so the two interchange. */\nexport type FooterLink = {\n  label: React.ReactNode\n  href: string\n  external?: boolean\n}\n\nexport type FooterLinkRenderer = (link: FooterLink) => React.ReactNode\n\nconst LABEL = \"text-[0.6875rem] font-medium tracking-[0.09em] uppercase\"\n\nconst LINK =\n  \"text-[color-mix(in_oklab,currentColor_70%,transparent)] text-sm no-underline transition-colors duration-150 hover:text-current motion-reduce:transition-none\"\n\nexport type FooterRowProps = Omit<\n  React.HTMLAttributes<HTMLDivElement>,\n  \"children\"\n> & {\n  links: readonly FooterLink[]\n  label?: React.ReactNode\n  renderLink?: FooterLinkRenderer\n  /** A dashed rule above, to set the row apart. Defaults to true. */\n  rule?: boolean\n}\n\n/**\n * A wrapping row of links under its own label: sister products, a legal\n * strip, an A to Z index. Anything that is a list rather than a column.\n */\nexport function FooterRow({\n  links,\n  label,\n  renderLink,\n  rule = true,\n  className,\n  ...rootProps\n}: FooterRowProps) {\n  if (links.length === 0) return null\n\n  return (\n    <div\n      data-slot=\"footer-row\"\n      className={cn(\n        rule &&\n          \"border-t border-dashed border-[color-mix(in_oklab,currentColor_20%,transparent)] pt-8\",\n        className\n      )}\n      {...rootProps}\n    >\n      {label && <p className={cn(LABEL, \"text-current\")}>{label}</p>}\n      <ul className={cn(\"flex flex-wrap gap-x-6 gap-y-2.5\", label && \"mt-4\")}>\n        {links.map((link, index) => (\n          <li key={`${link.href}-${index}`}>\n            {renderLink ? (\n              renderLink(link)\n            ) : (\n              <a\n                href={link.href}\n                {...(link.external\n                  ? { target: \"_blank\", rel: \"noreferrer noopener\" }\n                  : {})}\n                className={LINK}\n              >\n                {link.label}\n                {/* Punctuation-led: a leading space is dropped when the\n                    accessible name is computed. */}\n                {link.external ? (\n                  <span className=\"sr-only\">, opens in a new tab</span>\n                ) : null}\n              </a>\n            )}\n          </li>\n        ))}\n      </ul>\n    </div>\n  )\n}\n",
      "type": "registry:ui"
    }
  ],
  "categories": [
    "footer",
    "links",
    "layout"
  ],
  "type": "registry:ui"
}