"use client" import * as React from "react" import { cva, type VariantProps } from "class-variance-authority" import { cn } from "cn" import { Button } from "@/registry/bases/radix/ui/button" import { Input } from "@/registry/bases/radix/ui/input" import { Textarea } from "@/registry/bases/radix/ui/textarea" function InputGroup({ className, ...props }: React.ComponentProps<"div">) { return (
textarea]:h-auto", className )} {...props} /> ) } const inputGroupAddonVariants = cva( "cn-input-group-addon flex cursor-text items-center justify-center select-none", { variants: { align: { "inline-start": "cn-input-group-addon-align-inline-start order-first", "inline-end": "cn-input-group-addon-align-inline-end order-last", "block-start": "cn-input-group-addon-align-block-start order-first w-full justify-start", "block-end": "cn-input-group-addon-align-block-end order-last w-full justify-start", }, }, defaultVariants: { align: "inline-start", }, } ) function InputGroupAddon({ className, align = "inline-start", ...props }: React.ComponentProps<"div"> & VariantProps) { return (
{ if ((e.target as HTMLElement).closest("button")) { return } e.currentTarget.parentElement?.querySelector("input")?.focus() }} {...props} /> ) } const inputGroupButtonVariants = cva( "cn-input-group-button flex items-center shadow-none", { variants: { size: { xs: "cn-input-group-button-size-xs", sm: "cn-input-group-button-size-sm", "icon-xs": "cn-input-group-button-size-icon-xs", "icon-sm": "cn-input-group-button-size-icon-sm", }, }, defaultVariants: { size: "xs", }, } ) function InputGroupButton({ className, type = "button", variant = "ghost", size = "xs", ...props }: Omit, "size"> & VariantProps) { return (