{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "input",
  "files": [
    {
      "path": "ui/input/Input.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/input/Input.astro directly.\n/**\n * @component Input\n * @title Input\n * @description Base input field used in forms.\n * @description A field for collecting user input.\n * @figmaUrl https://www.figma.com/design/koxai7zw5vIuBzuVxe5T2l/bejamas-ui?node-id=2589-23428&t=YFStJ3V8fXEO8QD8-4\n * @status stable\n * @since 0.1.0\n *\n * @preview\n *\n * <Input type=\"text\" placeholder=\"Enter your name\" />\n *\n * @usage\n *\n * ```astro nocollapse\n * ---\n * import { Input } from '@bejamas/ui/components/input';\n * ---\n * <Input type=\"email\" placeholder=\"Enter your email\" />\n * ```\n *\n * @examples\n *\n * ### Default\n *\n * <Input type=\"email\" placeholder=\"Enter your email\" />\n *\n * ### Disabled\n *\n * <Input type=\"email\" placeholder=\"Enter your email\" disabled />\n *\n * ### Sizes\n *\n * <div class=\"grid w-full max-w-sm gap-3\">\n *   <div class=\"flex items-center gap-2\">\n *     <Input size=\"sm\" placeholder=\"Small input (h-8)\" />\n *     <Button size=\"sm\" variant=\"outline\">\n *       Small\n *     </Button>\n *   </div>\n *   <div class=\"flex items-center gap-2\">\n *     <Input placeholder=\"Default input (h-9)\" />\n *     <Button variant=\"outline\">Default</Button>\n *   </div>\n *   <div class=\"flex items-center gap-2\">\n *     <Input size=\"lg\" placeholder=\"Large input (h-10)\" />\n *     <Button size=\"lg\" variant=\"outline\">\n *       Large\n *     </Button>\n *   </div>\n * </div>\n *\n * ### File\n *\n * <div class=\"grid w-full max-w-sm items-center gap-3\">\n *   <Label htmlFor=\"picture\">Picture</Label>\n *   <Input id=\"picture\" type=\"file\" />\n * </div>\n *\n * ### With Label\n *\n * <div class=\"grid w-full max-w-sm items-center gap-3\">\n *   <Label htmlFor=\"email\">Email</Label>\n *   <Input id=\"email\" type=\"email\" placeholder=\"Enter your email\" />\n * </div>\n *\n * ### With Button\n *\n *  <div class=\"flex w-full max-w-sm items-center gap-2\">\n *    <Input type=\"email\" placeholder=\"Email\" />\n *    <Button type=\"submit\" variant=\"outline\">\n *      Subscribe\n *    </Button>\n *  </div>\n */\n\nimport { cn } from \"@/lib/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport type { HTMLAttributes } from \"astro/types\";\n\nconst inputVariants = cva(\n  \"w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n  {\n    variants: {\n      size: {\n        sm: \"data-[size=sm]\",\n        default: \"data-[size=default]\",\n        lg: \"data-[size=lg]\",\n      },\n    },\n    defaultVariants: {\n      size: \"default\",\n    },\n  },\n);\n\ntype InputUiSize = NonNullable<VariantProps<typeof inputVariants>[\"size\"]>;\ntype NativeInputSize = HTMLAttributes<\"input\">[\"size\"];\n\ninterface Props extends Omit<HTMLAttributes<\"input\">, \"size\"> {\n  size?: InputUiSize | NativeInputSize;\n  nativeSize?: NativeInputSize;\n}\n\nconst {\n  class: className = \"\",\n  type = \"text\",\n  size: sizeProp,\n  nativeSize,\n  ...props\n} = Astro.props as Props;\n\nconst isUiSize = (value: unknown): value is InputUiSize =>\n  value === \"sm\" || value === \"default\" || value === \"lg\";\n\nconst resolvedUiSize = isUiSize(sizeProp) ? sizeProp : \"default\";\nconst resolvedNativeSize =\n  nativeSize ?? (!isUiSize(sizeProp) ? sizeProp : undefined);\n---\n\n<input\n  type={type}\n  size={resolvedNativeSize}\n  data-slot={props[\"data-slot\"] ?? \"input\"}\n  data-size={resolvedUiSize}\n  class={cn(\"dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-9 rounded-md border bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] file:h-7 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm rounded-lg data-[size=sm]:h-8 data-[size=sm]:px-2.5 data-[size=sm]:py-1 data-[size=sm]:md:text-xs data-[size=default]:h-9 data-[size=default]:px-3 data-[size=default]:py-1 data-[size=default]:md:text-sm data-[size=lg]:h-10 data-[size=lg]:px-3.5 data-[size=lg]:py-1.5 data-[size=lg]:md:text-base\", inputVariants({ size: resolvedUiSize }), className)}\n  {...props}\n/>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/input/index.ts",
      "content": "// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/input/index.ts directly.\nexport { default as Input } from \"./Input.astro\";\n\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}