Input Group
blode-ui/input-groupFreeComponent
A wrapper that combines an input with addons like icons or buttons.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/mblode/blode-ui/main/public/r/input-group.jsonSource
1"use client";23import { cva } from "class-variance-authority";4import type { VariantProps } from "class-variance-authority";5import type * as React from "react";67import { cn } from "@/lib/utils";8import { Button } from "@/components/ui/button";9import { Input } from "@/components/ui/input";10import { Textarea } from "@/components/ui/textarea";1112const InputGroup = ({ className, ...props }: React.ComponentProps<"fieldset">) => (13 <fieldset14 className={cn(15 "group/input-group relative flex h-[var(--field-height)] w-full min-w-0 items-center rounded-[var(--field-radius)] border border-input outline-none transition-colors in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-start]]:h-auto has-[>textarea]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:flex-col has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot][aria-invalid=true]]:border-destructive has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",16 className,17 )}18 data-slot="input-group"19 {...props}20 />21);2223const inputGroupAddonVariants = cva(24 "flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 font-medium text-muted-foreground text-sm group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",25 {26 defaultVariants: {27 align: "inline-start",28 },29 variants: {30 align: {31 "block-end":32 "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2",33 "block-start":34 "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",35 "inline-end":36 "order-last shrink-0 whitespace-nowrap pr-[var(--field-padding-x)] has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]",37 "inline-start":38 "order-first shrink-0 whitespace-nowrap pl-[var(--field-padding-x)] has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]",39 },40 },41 },42);4344// … truncated
What it pulls in
Other registry items
Files it writes
More from blode/ui
All 85 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | blode/ui | Components | Free | 2 deps | |
| Alertalert | blode/ui | Components | Free | no deps | |
| Alert Dialogalert-dialog | blode/ui | Components | Free | 1 dep | |
| Ask User Questionsask-user-questions | blode/ui | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | blode/ui | Components | Free | 1 dep | |
| Attachmentattachment | blode/ui | Components | Free | 1 dep | |
| Autocompleteautocomplete | blode/ui | Components | Free | 1 dep | |
| Avataravatar | blode/ui | Components | Free | 1 dep |
