Home / File/ button-group-popover.tsx — ui Source File

button-group-popover.tsx — ui Source File

Architecture documentation for button-group-popover.tsx, a tsx file in the ui codebase. 7 imports, 1 dependents.

File tsx Internationalization Dictionary 7 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  f6b5f5f6_8680_a6a4_a596_4e9d358dde68["button-group-popover.tsx"]
  43bb9fc1_6eab_13df_a99b_981eb13b9ec1["button"]
  f6b5f5f6_8680_a6a4_a596_4e9d358dde68 --> 43bb9fc1_6eab_13df_a99b_981eb13b9ec1
  fd230760_a26a_f030_5144_d7a206420114["button-group"]
  f6b5f5f6_8680_a6a4_a596_4e9d358dde68 --> fd230760_a26a_f030_5144_d7a206420114
  4e2008eb_827c_ac2f_bc4f_01dc295f094e["popover"]
  f6b5f5f6_8680_a6a4_a596_4e9d358dde68 --> 4e2008eb_827c_ac2f_bc4f_01dc295f094e
  d91f2d92_028d_f8a9_3acf_7be6f2a34921["separator"]
  f6b5f5f6_8680_a6a4_a596_4e9d358dde68 --> d91f2d92_028d_f8a9_3acf_7be6f2a34921
  0eff32f6_d3b5_8091_7623_497e677665f0["textarea"]
  f6b5f5f6_8680_a6a4_a596_4e9d358dde68 --> 0eff32f6_d3b5_8091_7623_497e677665f0
  d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3["lucide-react"]
  f6b5f5f6_8680_a6a4_a596_4e9d358dde68 --> d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3
  2c1404ab_bf28_6225_f9a0_b9e29400c66c["language-selector"]
  f6b5f5f6_8680_a6a4_a596_4e9d358dde68 --> 2c1404ab_bf28_6225_f9a0_b9e29400c66c
  a20493d4_39f4_bced_97b9_027078a02a91["index.tsx"]
  a20493d4_39f4_bced_97b9_027078a02a91 --> f6b5f5f6_8680_a6a4_a596_4e9d358dde68
  style f6b5f5f6_8680_a6a4_a596_4e9d358dde68 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"use client"

import { Button } from "@/examples/base/ui-rtl/button"
import { ButtonGroup } from "@/examples/base/ui-rtl/button-group"
import {
  Popover,
  PopoverContent,
  PopoverTrigger,
} from "@/examples/base/ui-rtl/popover"
import { Separator } from "@/examples/base/ui-rtl/separator"
import { Textarea } from "@/examples/base/ui-rtl/textarea"
import { BotIcon, ChevronDownIcon } from "lucide-react"

import { useLanguageContext } from "@/components/language-selector"

const translations = {
  ar: {
    dir: "rtl" as const,
    copilot: "المساعد",
    openPopover: "فتح القائمة",
    agentTasks: "مهام الوكيل",
    placeholder: "صف مهمتك بلغة طبيعية.",
    startTask: "ابدأ مهمة جديدة مع المساعد",
    description:
      "صف مهمتك بلغة طبيعية. سيعمل المساعد في الخلفية ويفتح طلب سحب لمراجعتك.",
  },
  he: {
    dir: "rtl" as const,
    copilot: "עוזר",
    openPopover: "פתח תפריט",
    agentTasks: "משימות סוכן",
    placeholder: "תאר את המשימה שלך בשפה טבעית.",
    startTask: "התחל משימה חדשה עם העוזר",
    description:
      "תאר את המשימה שלך בשפה טבעית. העוזר יעבוד ברקע ויפתח בקשת משיכה לבדיקתך.",
  },
}

export function ButtonGroupPopover() {
  const context = useLanguageContext()
  const lang = context?.language === "he" ? "he" : "ar"
  const t = translations[lang]

  return (
    <ButtonGroup dir={t.dir}>
      <Button variant="outline" size="sm">
        <BotIcon /> {t.copilot}
      </Button>
      <Popover>
        <PopoverTrigger
          render={
            <Button
              variant="outline"
              size="icon-sm"
              aria-label={t.openPopover}
            />
          }
        >
          <ChevronDownIcon />
        </PopoverTrigger>
        <PopoverContent
          align="start"
          dir={t.dir}
          data-lang={lang}
          className="p-0"
        >
          <div className="px-4 py-3">
            <div className="text-sm font-medium">{t.agentTasks}</div>
          </div>
          <Separator />
          <div className="p-4 text-sm *:[p:not(:last-child)]:mb-2">
            <Textarea
              placeholder={t.placeholder}
              className="mb-4 resize-none"
            />
            <p className="font-medium">{t.startTask}</p>
            <p className="text-muted-foreground">{t.description}</p>
          </div>
        </PopoverContent>
      </Popover>
    </ButtonGroup>
  )
}

Subdomains

Dependencies

  • button
  • button-group
  • language-selector
  • lucide-react
  • popover
  • separator
  • textarea

Frequently Asked Questions

What does button-group-popover.tsx do?
button-group-popover.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 button-group-popover.tsx?
button-group-popover.tsx defines 1 function(s): ButtonGroupPopover.
What does button-group-popover.tsx depend on?
button-group-popover.tsx imports 7 module(s): button, button-group, language-selector, lucide-react, popover, separator, textarea.
What files import button-group-popover.tsx?
button-group-popover.tsx is imported by 1 file(s): index.tsx.
Where is button-group-popover.tsx in the architecture?
button-group-popover.tsx is located at apps/v4/app/(app)/examples/rtl/components/button-group-popover.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