input-group-button.tsx — ui Source File
Architecture documentation for input-group-button.tsx, a tsx file in the ui codebase. 6 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 2b11067e_2247_7775_9a4a_87a2ae75b8b6["input-group-button.tsx"] 1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"] 2b11067e_2247_7775_9a4a_87a2ae75b8b6 --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2 5a7da2d0_5f0c_be7c_cec3_d1c492aa50f7["input-group"] 2b11067e_2247_7775_9a4a_87a2ae75b8b6 --> 5a7da2d0_5f0c_be7c_cec3_d1c492aa50f7 7ef314f6_7093_dcb4_c528_ee12b9a57e00["label"] 2b11067e_2247_7775_9a4a_87a2ae75b8b6 --> 7ef314f6_7093_dcb4_c528_ee12b9a57e00 4e2008eb_827c_ac2f_bc4f_01dc295f094e["popover"] 2b11067e_2247_7775_9a4a_87a2ae75b8b6 --> 4e2008eb_827c_ac2f_bc4f_01dc295f094e 39a0d62e_8e7d_d097_eb95_91d2bca361f7["icons-react"] 2b11067e_2247_7775_9a4a_87a2ae75b8b6 --> 39a0d62e_8e7d_d097_eb95_91d2bca361f7 2c1404ab_bf28_6225_f9a0_b9e29400c66c["language-selector"] 2b11067e_2247_7775_9a4a_87a2ae75b8b6 --> 2c1404ab_bf28_6225_f9a0_b9e29400c66c a20493d4_39f4_bced_97b9_027078a02a91["index.tsx"] a20493d4_39f4_bced_97b9_027078a02a91 --> 2b11067e_2247_7775_9a4a_87a2ae75b8b6 style 2b11067e_2247_7775_9a4a_87a2ae75b8b6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"use client"
import * as React from "react"
import {
InputGroup,
InputGroupAddon,
InputGroupButton,
InputGroupInput,
} from "@/examples/base/ui-rtl/input-group"
import { Label } from "@/examples/base/ui-rtl/label"
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/examples/base/ui-rtl/popover"
import { IconInfoCircle, IconStar } from "@tabler/icons-react"
import { useLanguageContext } from "@/components/language-selector"
const translations = {
ar: {
dir: "rtl" as const,
inputLabel: "السعر",
info: "معلومات",
priceInfo: "أدخل السعر بالريال السعودي.",
priceDescription: "سيتم تحويل السعر تلقائياً.",
favorite: "مفضل",
currency: "ر.س",
},
he: {
dir: "rtl" as const,
inputLabel: "מחיר",
info: "מידע",
priceInfo: "הזן את המחיר בשקלים.",
priceDescription: "המחיר יומר אוטומטית.",
favorite: "מועדף",
currency: "₪",
},
}
export function InputGroupButtonExample() {
const context = useLanguageContext()
const lang = context?.language === "he" ? "he" : "ar"
const t = translations[lang]
const [isFavorite, setIsFavorite] = React.useState(false)
return (
<div dir={t.dir} className="grid w-full max-w-sm gap-6">
<Label htmlFor="input-secure-rtl" className="sr-only">
{t.inputLabel}
</Label>
<InputGroup className="[--radius:9999px]">
<InputGroupInput id="input-secure-rtl" className="!pr-0.5" />
<InputGroupAddon>
<Popover>
<PopoverTrigger
render={
<InputGroupButton
variant="secondary"
size="icon-xs"
aria-label={t.info}
/>
}
>
<IconInfoCircle />
</PopoverTrigger>
<PopoverContent
align="end"
alignOffset={10}
className="flex flex-col gap-1 rounded-xl text-sm"
data-lang={lang}
dir={t.dir}
>
<p className="font-medium">{t.priceInfo}</p>
<p>{t.priceDescription}</p>
</PopoverContent>
</Popover>
</InputGroupAddon>
<InputGroupAddon className="text-muted-foreground">
{t.currency}
</InputGroupAddon>
<InputGroupAddon align="inline-end">
<InputGroupButton
onClick={() => setIsFavorite(!isFavorite)}
size="icon-xs"
aria-label={t.favorite}
>
<IconStar
data-favorite={isFavorite}
className="data-[favorite=true]:fill-primary data-[favorite=true]:stroke-primary"
/>
</InputGroupButton>
</InputGroupAddon>
</InputGroup>
</div>
)
}
Domain
Subdomains
Functions
Dependencies
- icons-react
- input-group
- label
- language-selector
- popover
- react
Source
Frequently Asked Questions
What does input-group-button.tsx do?
input-group-button.tsx is a source file in the ui codebase, written in tsx. It belongs to the Internationalization domain, Dictionary subdomain.
What functions are defined in input-group-button.tsx?
input-group-button.tsx defines 1 function(s): InputGroupButtonExample.
What does input-group-button.tsx depend on?
input-group-button.tsx imports 6 module(s): icons-react, input-group, label, language-selector, popover, react.
What files import input-group-button.tsx?
input-group-button.tsx is imported by 1 file(s): index.tsx.
Where is input-group-button.tsx in the architecture?
input-group-button.tsx is located at apps/v4/app/(app)/examples/rtl/components/input-group-button.tsx (domain: Internationalization, subdomain: Dictionary, directory: apps/v4/app/(app)/examples/rtl/components).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free