{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "spinner",
  "files": [
    {
      "path": "ui/spinner/Spinner.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/spinner/Spinner.astro directly.\n/**\n * @component Spinner\n * @title Spinner\n * @description A loading indicator component that displays an animated spinning icon.\n *\n * @preview\n *\n * <Item variant=\"muted\" class=\"w-full max-w-xs\">\n *   <ItemMedia>\n *     <Spinner />\n *   </ItemMedia>\n *   <ItemContent>\n *     <ItemTitle class=\"line-clamp-1\">Submitting Contact Form...</ItemTitle>\n *   </ItemContent>\n * </Item>\n *\n * @usage\n *\n * ```astro nocollapse\n * ---\n * import { Spinner } from '@bejamas/ui/components/spinner';\n * ---\n *\n * <Spinner />\n * ```\n *\n * ## Customization\n *\n * You can replace the default spinner icon with any other icon by editing the `Spinner` component.\n *\n * ```astro showLineNumbers title=\"components/ui/spinner/Spinner.astro\" nocollapse nopreview\n * ---\n * import { cn } from \"@/lib/utils\";\n * import { Loader as LoaderIcon } from \"@lucide/astro\";\n *\n * const { class: className = \"\", ...props } = Astro.props;\n * ---\n *\n * <LoaderIcon\n *   data-slot=\"spinner\"\n *   role=\"status\"\n *   aria-label=\"Loading\"\n *   class={cn(\"cn-spinner\", \"size-4 animate-spin\", className)}\n *   {...props}\n * />\n * ```\n *\n * @examples\n *\n * ### Size\n *\n * Use the `size-*` utility class to change the size of the spinner.\n *\n * <div class=\"flex items-center gap-6\">\n *   <Spinner class=\"size-3\" />\n *   <Spinner class=\"size-4\" />\n *   <Spinner class=\"size-6\" />\n *   <Spinner class=\"size-8\" />\n * </div>\n *\n * ### Button\n *\n * Add a spinner to a button to indicate a loading state. Remember to use the `data-icon` attribute for proper spacing.\n *\n * <div class=\"flex flex-col items-center gap-4\">\n *   <Button disabled size=\"sm\">\n *     <Spinner data-icon />\n *     Loading...\n *   </Button>\n *   <Button variant=\"outline\" disabled size=\"sm\">\n *     <Spinner data-icon />\n *     Please wait\n *   </Button>\n *   <Button variant=\"secondary\" disabled size=\"sm\">\n *     <Spinner data-icon />\n *     Processing\n *   </Button>\n * </div>\n *\n * ### Badge\n *\n * Add a spinner to a badge to indicate a loading state.\n *\n * <div class=\"flex items-center gap-4 [--radius:1.2rem]\">\n *   <Badge>\n *     <Spinner data-icon />\n *     Syncing\n *   </Badge>\n *   <Badge variant=\"secondary\">\n *     <Spinner data-icon />\n *     Updating\n *   </Badge>\n *   <Badge variant=\"outline\">\n *     <Spinner data-icon />\n *     Processing\n *   </Badge>\n * </div>\n *\n * ### Input Group\n *\n * <div class=\"flex w-full max-w-md flex-col gap-4\">\n *   <InputGroup>\n *     <InputGroupInput placeholder=\"Send a message...\" disabled />\n *     <InputGroupAddon align=\"inline-end\">\n *       <Spinner />\n *     </InputGroupAddon>\n *   </InputGroup>\n *   <InputGroup>\n *     <InputGroupTextarea placeholder=\"Send a message...\" disabled />\n *     <InputGroupAddon align=\"block-end\">\n *       <Spinner /> Validating...\n *       <InputGroupButton class=\"ml-auto\" variant=\"default\">\n *         <ArrowUpIcon />\n *         <span class=\"sr-only\">Send</span>\n *       </InputGroupButton>\n *     </InputGroupAddon>\n *   </InputGroup>\n * </div>\n *\n * @props\n * - class?: string — Additional classes for styling (e.g., size-3, size-6).\n */\n\nimport { cn } from \"@/lib/utils\";\nimport SemanticIcon from \"../icon/SemanticIcon.astro\";\n\nconst { class: className = \"\", ...props } = Astro.props;\n---\n\n<SemanticIcon\n  name=\"loader-circle\"\n  data-slot=\"spinner\"\n  role=\"status\"\n  aria-label=\"Loading\"\n  class={cn(\"\", \"size-4 animate-spin\", className)}\n  {...props}\n/>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/spinner/index.ts",
      "content": "// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/spinner/index.ts directly.\nexport { default as Spinner } from \"./Spinner.astro\";\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}