Documentation
Entity

Entity

The Entity component serves as a comprehensive container designed to display various elements like thumbnails, actions, menus, and checkboxes in a structured format. It is highly customizable, supporting placeholders for loading states and responsive layouts.

Usage

First of all, you need to import the Entity component along with its related subcomponents from the kitchn package.

import { Entity, EntityField, EntityFieldTitle, EntityFieldDescription } from "kitchn"

Fields

GitHubJĂ©remy Baudrin
InactiveThis field is inactive
Fixed WidthOpen docs
LabelEncrypted
Right Aligned
Code Editor
<Entity>
  <EntityField title={"GitHub"} description={"JĂ©remy Baudrin"} />
  <EntityField
    active={false}
    title={"Inactive"}
    description={"This field is inactive"}
  />
  <EntityField
    width={"20%"}
    title={"Fixed Width"}
    description={<Link href={"/"}>{"Open docs"}</Link>}
  />
  <EntityField
    label
    width={100}
    title={"Label"}
    description={"Encrypted"}
  />
  <EntityField
    justify={"flex-end"}
    description={"Right Aligned"}
    avatar={<Avatar size={24} text={"Younès Bessa"} />}
  />
</Entity>

Thumbnails

Twitter XLucas Bodin (@imazyx)
Connected 1h ago
Younès BessaThumbnail size and wrap options
Connected 1h ago
Code Editor
<Container>
  <Entity thumbnail={<Icon icon={RiGithubFill} size={24} />}>
    <EntityField
      title={"Twitter X"}
      description={
        <>
          {"Lucas Bodin ("}
          <Link href={"https://x.com/imazyx"} variant={"highlight"}>
            {"@imazyx"}
          </Link>
          {")"}
        </>
      }
    />
    <EntityField justify={"flex-end"} description={"Connected 1h ago"} />
  </Entity>

  <Spacer y={"small"} />

  <Entity thumbnail={<Avatar size={36} text={"Younès Bessa"} />}>
    <EntityField
      title={"Younès Bessa"}
      description={"Thumbnail size and wrap options"}
    />
    <EntityField justify={"flex-end"} description={"Connected 1h ago"} />
  </Entity>
</Container>

Menu

PUBLIC_KEYProduction
VALUE6863EFA205B4680BE7928E
Added 1h ago
Code Editor
<Entity
  thumbnail={<Icon icon={RiGithubFill} size={24} />}
  menuContent={
    <>
      <Menu.Item onClick={() => alert("clicked")}>{"Inspect"}</Menu.Item>
      <Menu.Item onClick={() => alert("clicked")}>
        <Text size={"inherit"} accent={"danger"}>
          {"Remove"}
        </Text>
      </Menu.Item>
    </>
  }
>
  <EntityField title={"PUBLIC_KEY"} description={"Production"} />
  <EntityField
    label
    title={"VALUE"}
    description={"6863EFA205B4680BE7928E"}
  />
  <EntityField
    justify={"flex-end"}
    width={200}
    description={"Added 1h ago"}
    avatar={<Avatar size={24} text={"Younès Bessa"} />}
  />
</Entity>

Actions

Younès Bessayounes
Code Editor
<Entity
  thumbnail={<Avatar size={32} text={"Younès Bessa"} />}
  menuContent={
    <>
      <Menu.Item onClick={() => alert("clicked")}>
        {"Inspect"}
      </Menu.Item>
      <Menu.Item onClick={() => alert("clicked")}>
        <Text size={"inherit"} accent={"danger"}>
          {"Remove"}
        </Text>
      </Menu.Item>
    </>
  }
  actions={
    <Container row gap={"tiny"}>
      <Button type={"dark"} size={"small"}>
        {"Decline"}
      </Button>
      <Container>
        <Button type={"light"} size={"small"}>
          {"Accept"}
        </Button>
      </Container>
    </Container>
  }
>
  <EntityField title={"Younès Bessa"} description={"younes"} />
</Entity>

Checkbox

Tonight PassLast used just now
Code Editor
<Entity
  checkbox={<Checkbox onChange={() => alert("clicked")} />}
  actions={
    <Button size={"small"} type={"dark"}>
      {"Revoke"}
    </Button>
  }
>
  <EntityField
    title={"Tonight Pass"}
    description={"Last used just now"}
  />
</Entity>

Mixed

GitHubEvil Rabbit
Hello6863EFA205B4680BE7928E
Connected 1h ago
GitHubEvil Rabbit
VALUE6863EFA205B4680BE7928E
Connected 1h ago
Code Editor
<Container>
  <Entity
    thumbnail={<Avatar size={32} text={"Younès Bessa"} />}
    checkbox={<Checkbox onChange={() => alert("clicked")} checked />}
    menuContent={<Menu.Item>{"Foo"}</Menu.Item>}
    actions={
      <Container row gap={"small"}>
        <Button size={"small"} type={"light"}>
          {"Accept"}
        </Button>
      </Container>
    }
  >
    <EntityField
      flex={0}
      width={160}
      title={"GitHub"}
      description={"Evil Rabbit"}
    />
    <EntityField
      label
      width={"20%"}
      title={"Hello"}
      description={"6863EFA205B4680BE7928E"}
    />
    <EntityField description={"Connected 1h ago"} />
  </Entity>
  <Entity
    thumbnail={<Avatar size={32} text={"Younès Bessa"} />}
    menuContent={<Menu.Item>{"Foo"}</Menu.Item>}
    actions={
      <>
        <Container row gap={"small"}>
          <Button size={"small"} type={"dark"}>
            {"Decline"}
          </Button>
          <Container>
            <Button size={"small"} type={"light"}>
              {"Accept"}
            </Button>
          </Container>
        </Container>
      </>
    }
  >
    <EntityField
      width={120}
      title={"GitHub"}
      description={"Evil Rabbit"}
    />
    <EntityField
      label
      title={"VALUE"}
      description={"6863EFA205B4680BE7928E"}
    />
    <EntityField width={"50%"} description={"Connected 1h ago"} />
  </Entity>
</Container>

Skeleton

GitHubEvil Rabbit
VALUE6863EFA205B4680BE7928E
Connected 1h ago
GitHubEvil Rabbit
VALUE6863EFA205B4680BE7928E
Connected 1h ago
Code Editor
<Container>
  <Entity
    placeholder
    thumbnail={<Avatar size={32} text={"Younès Bessa"} />}
    checkbox={<Checkbox onChange={() => alert("clicked")} checked />}
    menuContent={<Menu.Item>{"Foo"}</Menu.Item>}
    actions={
      <>
        <Button size={"small"}>{"Accept"}</Button>
      </>
    }
  >
    <EntityField
      width={160}
      title={"GitHub"}
      description={"Evil Rabbit"}
    />
    <EntityField
      label
      width={"20%"}
      title={"VALUE"}
      description={"6863EFA205B4680BE7928E"}
    />
    <EntityField description={"Connected 1h ago"} />
  </Entity>
  <Entity
    placeholder
    thumbnail={<Avatar size={32} text={"Younès Bessa"} />}
    menuContent={<Menu.Item>{"Foo"}</Menu.Item>}
    actions={
      <Container row gap={0.5}>
        <Container>
          <Button size={"small"} type={"secondary"}>
            {"Decline"}
          </Button>
        </Container>
        <Container>
          <Button size={"small"}>{"Accept"}</Button>
        </Container>
      </Container>
    }
  >
    <EntityField
      width={120}
      title={"GitHub"}
      description={"Evil Rabbit"}
    />
    <EntityField
      label
      title={"VALUE"}
      description={"6863EFA205B4680BE7928E"}
    />
    <EntityField width={"50%"} description={"Connected 1h ago"} />
  </Entity>
</Container>

Props

NameTypeDefaultRequiredDescription
thumbnailReact.ReactNodeundefinedNoThumbnail to be displayed on the left side of the entity.
menuContentReact.ReactNodeundefinedNoContent for the dropdown menu associated with the entity.
actionsReact.ReactNodeundefinedNoActions (e.g., buttons) to be displayed on the right side of the entity.
checkboxReact.ReactNodeundefinedNoCheckbox element to be displayed on the left side of the entity.
placeholderbooleanfalseNoIf true, displays placeholder skeletons for all content.

EntityField Props

NameTypeDefaultRequiredDescription
titlestringundefinedYesTitle text to be displayed in the field.
descriptionReact.ReactNodeundefinedNoDescription text to be displayed below the title.
activebooleantrueNoIf false, dims the title and description to indicate inactive state.
labelbooleanfalseNoIf true, applies a label style to the title, including uppercase transformation.
placeholderbooleanfalseNoIf true, displays a skeleton placeholder for the field.
avatarReact.ReactNodeundefinedNoAvatar or any additional element to be displayed on the right side of the field.

EntityFieldTitle Props

NameTypeDefaultRequiredDescription
activebooleantrueNoIf false, dims the title text.
labelbooleanfalseNoIf true, applies a label style (uppercase, lighter color) to the title.

EntityFieldDescription Props

All props from TextProps are supported.

Last updated on
  • Inspect
  • Remove

  • Inspect
  • Remove

  • Foo
  • Foo
  • Foo
  • Foo