{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "display",
  "title": "Display",
  "description": "Oversized hero/display text driven by the display tokens, with an optional reduced-motion-safe reveal.",
  "dependencies": [
    "@vllnt/ui@^0.3.0"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/default/display/display.tsx",
      "content": "import { createElement } from \"react\";\n\nimport { cn } from \"@vllnt/ui\";\n\n/** HTML element the {@link Display} primitive renders as. */\nexport type DisplayElement = \"div\" | \"h1\" | \"h2\" | \"p\" | \"span\";\n\n/** Props for {@link Display}. */\nexport type DisplayProps = React.HTMLAttributes<HTMLElement> & {\n  /**\n   * Play a rise-in reveal on mount. Automatically disabled when the user\n   * requests reduced motion (`prefers-reduced-motion`).\n   */\n  animated?: boolean;\n  as?: DisplayElement;\n  ref?: React.Ref<HTMLElement>;\n};\n\nconst displayBase =\n  \"font-[family-name:var(--font-display)] [font-weight:var(--font-weight-display)] text-[length:var(--font-size-display)] leading-[var(--line-height-display)] text-balance tracking-tight text-foreground\";\n\n/**\n * Oversized hero/display text driven by the display tokens (`--font-display`,\n * `--font-weight-display`, `--font-size-display`). Renders a non-semantic `div`\n * by default — pass `as=\"h1\"` for a hero heading. With `animated`, a rise-in\n * reveal runs when the user permits motion; `prefers-reduced-motion` skips it.\n * Polymorphic via `as`; forwards `ref` to the rendered element.\n *\n * @example\n * <Display as=\"h1\" animated>Ship faster</Display>\n */\nconst Display = ({\n  animated = false,\n  as = \"div\",\n  className,\n  ref,\n  ...props\n}: DisplayProps) =>\n  createElement(as, {\n    className: cn(\n      displayBase,\n      animated &&\n        \"motion-safe:animate-[vllnt-animated-text-reveal_0.6s_ease-out_both]\",\n      className,\n    ),\n    ref,\n    ...props,\n  });\nDisplay.displayName = \"Display\";\n\nexport { Display };\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component",
  "version": "0.3.0",
  "stability": "stable",
  "a11y": {
    "notes": "Non-semantic by default (a div); set `as` to h1 for a hero heading. The optional reveal animation is gated behind prefers-reduced-motion, so it does not play when the user requests reduced motion."
  }
}
