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

button-group-demo.tsx — ui Source File

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

File tsx DocumentationAtlas Changelog 5 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  2d3dc754_5c8f_7355_d3f7_8890873ee0f7["button-group-demo.tsx"]
  1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"]
  2d3dc754_5c8f_7355_d3f7_8890873ee0f7 --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2
  4b1d2128_46d9_46f0_b915_b6e1925b7876["button"]
  2d3dc754_5c8f_7355_d3f7_8890873ee0f7 --> 4b1d2128_46d9_46f0_b915_b6e1925b7876
  18f6542f_51e6_ba81_129a_f0eef8a35168["button-group"]
  2d3dc754_5c8f_7355_d3f7_8890873ee0f7 --> 18f6542f_51e6_ba81_129a_f0eef8a35168
  c4660ec2_c67c_8de8_aea3_ab3bf7989b6f["dropdown-menu"]
  2d3dc754_5c8f_7355_d3f7_8890873ee0f7 --> c4660ec2_c67c_8de8_aea3_ab3bf7989b6f
  d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3["lucide-react"]
  2d3dc754_5c8f_7355_d3f7_8890873ee0f7 --> d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3
  53860de0_4d86_dc1d_c85a_07c01f0d1a07["index.tsx"]
  53860de0_4d86_dc1d_c85a_07c01f0d1a07 --> 2d3dc754_5c8f_7355_d3f7_8890873ee0f7
  style 2d3dc754_5c8f_7355_d3f7_8890873ee0f7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"use client"

import * as React from "react"
import { Button } from "@/examples/radix/ui/button"
import { ButtonGroup } from "@/examples/radix/ui/button-group"
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuGroup,
  DropdownMenuItem,
  DropdownMenuRadioGroup,
  DropdownMenuRadioItem,
  DropdownMenuSeparator,
  DropdownMenuSub,
  DropdownMenuSubContent,
  DropdownMenuSubTrigger,
  DropdownMenuTrigger,
} from "@/examples/radix/ui/dropdown-menu"
import {
  ArchiveIcon,
  ArrowLeftIcon,
  CalendarPlusIcon,
  ClockIcon,
  ListFilterIcon,
  MailCheckIcon,
  MoreHorizontalIcon,
  TagIcon,
  Trash2Icon,
} from "lucide-react"

export function ButtonGroupDemo() {
  const [label, setLabel] = React.useState("personal")

  return (
    <ButtonGroup>
      <ButtonGroup className="hidden sm:flex">
        <Button variant="outline" size="icon-sm" aria-label="Go Back">
          <ArrowLeftIcon />
        </Button>
      </ButtonGroup>
      <ButtonGroup>
        <Button variant="outline" size="sm">
          Archive
        </Button>
        <Button variant="outline" size="sm">
          Report
        </Button>
      </ButtonGroup>
      <ButtonGroup>
        <Button variant="outline" size="sm">
          Snooze
        </Button>
        <DropdownMenu>
          <DropdownMenuTrigger asChild>
            <Button variant="outline" size="icon-sm" aria-label="More Options">
              <MoreHorizontalIcon />
            </Button>
          </DropdownMenuTrigger>
          <DropdownMenuContent align="end" className="w-48">
            <DropdownMenuGroup>
              <DropdownMenuItem>
                <MailCheckIcon />
                Mark as Read
              </DropdownMenuItem>
              <DropdownMenuItem>
                <ArchiveIcon />
                Archive
              </DropdownMenuItem>
            </DropdownMenuGroup>
            <DropdownMenuSeparator />
            <DropdownMenuGroup>
              <DropdownMenuItem>
                <ClockIcon />
                Snooze
              </DropdownMenuItem>
              <DropdownMenuItem>
                <CalendarPlusIcon />
                Add to Calendar
              </DropdownMenuItem>
              <DropdownMenuItem>
                <ListFilterIcon />
                Add to List
              </DropdownMenuItem>
              <DropdownMenuSub>
                <DropdownMenuSubTrigger>
                  <TagIcon />
                  Label As...
                </DropdownMenuSubTrigger>
                <DropdownMenuSubContent>
                  <DropdownMenuRadioGroup
                    value={label}
                    onValueChange={setLabel}
                  >
                    <DropdownMenuRadioItem value="personal">
                      Personal
                    </DropdownMenuRadioItem>
                    <DropdownMenuRadioItem value="work">
                      Work
                    </DropdownMenuRadioItem>
                    <DropdownMenuRadioItem value="other">
                      Other
                    </DropdownMenuRadioItem>
                  </DropdownMenuRadioGroup>
                </DropdownMenuSubContent>
              </DropdownMenuSub>
            </DropdownMenuGroup>
            <DropdownMenuSeparator />
            <DropdownMenuGroup>
              <DropdownMenuItem variant="destructive">
                <Trash2Icon />
                Trash
              </DropdownMenuItem>
            </DropdownMenuGroup>
          </DropdownMenuContent>
        </DropdownMenu>
      </ButtonGroup>
    </ButtonGroup>
  )
}

Subdomains

Functions

Dependencies

  • button
  • button-group
  • dropdown-menu
  • lucide-react
  • react

Frequently Asked Questions

What does button-group-demo.tsx do?
button-group-demo.tsx is a source file in the ui codebase, written in tsx. It belongs to the DocumentationAtlas domain, Changelog subdomain.
What functions are defined in button-group-demo.tsx?
button-group-demo.tsx defines 1 function(s): ButtonGroupDemo.
What does button-group-demo.tsx depend on?
button-group-demo.tsx imports 5 module(s): button, button-group, dropdown-menu, lucide-react, react.
What files import button-group-demo.tsx?
button-group-demo.tsx is imported by 1 file(s): index.tsx.
Where is button-group-demo.tsx in the architecture?
button-group-demo.tsx is located at apps/v4/app/(app)/(root)/components/button-group-demo.tsx (domain: DocumentationAtlas, subdomain: Changelog, directory: apps/v4/app/(app)/(root)/components).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free