Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"use client";
import { DEFAULT_DRAGGABLE_WIDTH } from "@/app/(app)/logs/constants";
import { ResizablePanel } from "@/components/logs/details/resizable-panel";
import { TimestampInfo } from "@/components/timestamp-info";
import type { KeysOverviewLog } from "@unkey/clickhouse/src/keys/keys";
import { TimestampInfo } from "@unkey/ui";
import Link from "next/link";
import { useMemo } from "react";
import { LogHeader } from "./components/log-header";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
"use client";
import { TimestampInfo } from "@/components/timestamp-info";
import { Badge } from "@/components/ui/badge";
import { VirtualTable } from "@/components/virtual-table/index";
import type { Column } from "@/components/virtual-table/types";
import { cn } from "@/lib/utils";
import type { KeysOverviewLog } from "@unkey/clickhouse/src/keys/keys";
import { Ban, BookBookmark } from "@unkey/icons";
import { TimestampInfo } from "@unkey/ui";
import { Button, Empty } from "@unkey/ui";

import { useSort } from "@/components/logs/hooks/use-sort";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { TimestampInfo } from "@/components/timestamp-info";
import { Badge } from "@/components/ui/badge";
import { trpc } from "@/lib/trpc/client";
import { cn } from "@/lib/utils";
import { ChartActivity2 } from "@unkey/icons";
import { TimestampInfo } from "@unkey/ui";
import { useRef, useState } from "react";
import { STATUS_STYLES } from "../utils/get-row-class";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
"use client";

import { RequestResponseDetails } from "@/components/logs/details/request-response-details";
import { TimestampInfo } from "@/components/timestamp-info";
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import type { AuditLog } from "@/lib/trpc/routers/audit/schema";
import { TimestampInfo } from "@unkey/ui";
import { FunctionSquare, KeySquare } from "lucide-react";

type Props = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
"use client";
import { TimestampInfo } from "@/components/timestamp-info";
import { Badge } from "@/components/ui/badge";
import { VirtualTable, type VirtualTableRef } from "@/components/virtual-table";
import type { Column } from "@/components/virtual-table/types";
import type { AuditLog } from "@/lib/trpc/routers/audit/schema";
import { TimestampInfo } from "@unkey/ui";
import { cn } from "@unkey/ui/src/lib/utils";
import { FunctionSquare, KeySquare } from "lucide-react";
import { useEffect, useRef } from "react";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
import { RED_STATES, YELLOW_STATES } from "@/app/(app)/logs/constants";
import { extractResponseField, getRequestHeader } from "@/app/(app)/logs/utils";
import { RequestResponseDetails } from "@/components/logs/details/request-response-details";
import { TimestampInfo } from "@/components/timestamp-info";
import { Badge } from "@/components/ui/badge";
import { cn } from "@/lib/utils";
import type { Log } from "@unkey/clickhouse/src/logs";
import { TimestampInfo } from "@unkey/ui";

type Props = {
log: Log;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
"use client";

import { TimestampInfo } from "@/components/timestamp-info";
import { Badge } from "@/components/ui/badge";
import { VirtualTable } from "@/components/virtual-table/index";
import type { Column } from "@/components/virtual-table/types";
import { cn } from "@/lib/utils";
import type { Log } from "@unkey/clickhouse/src/logs";
import { BookBookmark, TriangleWarning2 } from "@unkey/icons";
import { TimestampInfo } from "@unkey/ui";
import { Button, Empty } from "@unkey/ui";
import { useMemo } from "react";
import { isDisplayProperty, useLogsContext } from "../../context/logs";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
"use client";

import { useSort } from "@/components/logs/hooks/use-sort";
import { TimestampInfo } from "@/components/timestamp-info";
import { Badge } from "@/components/ui/badge";
import { VirtualTable } from "@/components/virtual-table/index";
import type { Column } from "@/components/virtual-table/types";
import { formatNumber } from "@/lib/fmt";
import { cn } from "@/lib/utils";
import type { RatelimitOverviewLog } from "@unkey/clickhouse/src/ratelimits";
import { Ban, BookBookmark } from "@unkey/icons";
import { TimestampInfo } from "@unkey/ui";
import { Button, Empty } from "@unkey/ui";
import { useState } from "react";
import { InlineFilter } from "./components/inline-filter";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
import { RED_STATES, YELLOW_STATES } from "@/app/(app)/logs/constants";
import { extractResponseField, getRequestHeader } from "@/app/(app)/logs/utils";
import { RequestResponseDetails } from "@/components/logs/details/request-response-details";
import { TimestampInfo } from "@/components/timestamp-info";
import { Badge } from "@/components/ui/badge";
import { cn } from "@/lib/utils";
import type { RatelimitLog } from "@unkey/clickhouse/src/ratelimits";
import { TimestampInfo } from "@unkey/ui";

type Props = {
log: RatelimitLog;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
"use client";

import { safeParseJson } from "@/app/(app)/logs/utils";
import { TimestampInfo } from "@/components/timestamp-info";
import { Badge } from "@/components/ui/badge";
import { VirtualTable } from "@/components/virtual-table/index";
import type { Column } from "@/components/virtual-table/types";
import { cn } from "@/lib/utils";
import type { RatelimitLog } from "@unkey/clickhouse/src/ratelimits";
import { BookBookmark } from "@unkey/icons";
import { TimestampInfo } from "@unkey/ui";
import { Button, Empty } from "@unkey/ui";
import { useMemo } from "react";
import { DEFAULT_STATUS_FLAG } from "../../constants";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { TimestampInfo } from "@/components/timestamp-info";
import { cn } from "@/lib/utils";
import { XMark } from "@unkey/icons";
import { TimestampInfo } from "@unkey/ui";
import { Button } from "@unkey/ui";
import { type KeyboardEvent, useEffect, useRef } from "react";
import type { FilterValue } from "../validation/filter.types";
Expand Down
184 changes: 183 additions & 1 deletion apps/engineering/content/design/components/button.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,188 @@ Success variant with ghost style for subtle positive actions.
</div>
</RenderComponentWithSnippet>

### Info - Primary

Info variant with solid background for positive or confirming actions.

<RenderComponentWithSnippet>
<div className="flex flex-col gap-6">
<div>
<h4 className="text-sm font-medium mb-2">Light</h4>
<div className="flex flex-wrap items-center gap-4">
<Button variant="primary" color="info">
Default
</Button>
<Button
variant="primary"
color="info"
className="!bg-info-9/90"
>
Hover
</Button>
<Button
variant="primary"
color="info"
className="!ring-4 !ring-info-6 !border-info-11"
>
Focus
</Button>
<Button variant="primary" color="info" loading>
Loading
</Button>
<Button variant="primary" color="info" disabled>
Disabled
</Button>
</div>
</div>

<div>
<h4 className="text-sm font-medium mb-2">Dark</h4>
<div className="bg-black p-4 rounded-md flex flex-wrap items-center gap-4 dark">
<Button variant="primary" color="info">
Default
</Button>
<Button
variant="primary"
color="info"
className="!bg-info-9/90"
>
Hover
</Button>
<Button
variant="primary"
color="info"
className="!ring-4 !ring-info-6 !border-info-11"
>
Focus
</Button>
<Button variant="primary" color="info" loading>
Loading
</Button>
<Button variant="primary" color="info" disabled>
Disabled
</Button>
</div>
</div>
</div>
</RenderComponentWithSnippet>

### Info - Outline

Info variant with outline style for secondary positive actions.

<RenderComponentWithSnippet>
<div className="flex flex-col gap-6">
<div>
<h4 className="text-sm font-medium mb-2">Light</h4>
<div className="flex flex-wrap items-center gap-4">
<Button variant="outline" color="info">
Default
</Button>
<Button variant="outline" color="info" className="!bg-grayA-2">
Hover
</Button>
<Button
variant="outline"
color="info"
className="!ring-4 !ring-info-6 !border-info-11"
>
Focus
</Button>
<Button variant="outline" color="info" loading>
Loading
</Button>
<Button variant="outline" color="info" disabled>
Disabled
</Button>
</div>
</div>

<div>
<h4 className="text-sm font-medium mb-2">Dark</h4>
<div className="bg-black p-4 rounded-md flex flex-wrap items-center gap-4 dark">
<Button variant="outline" color="info">
Default
</Button>
<Button variant="outline" color="info" className="!bg-grayA-2">
Hover
</Button>
<Button
variant="outline"
color="info"
className="!ring-4 !ring-info-6 !border-info-11"
>
Focus
</Button>
<Button variant="outline" color="info" loading>
Loading
</Button>
<Button variant="outline" color="info" disabled>
Disabled
</Button>
</div>
</div>
</div>
</RenderComponentWithSnippet>

### Info - Ghost

Info variant with ghost style for subtle positive actions.

<RenderComponentWithSnippet>
<div className="flex flex-col gap-6">
<div>
<h4 className="text-sm font-medium mb-2">Light</h4>
<div className="flex flex-wrap items-center gap-4">
<Button variant="ghost" color="info">
Default
</Button>
<Button variant="ghost" color="info" className="!bg-info-3">
Hover
</Button>
<Button
variant="ghost"
color="info"
className="!ring-4 !ring-info-6 !border-info-11"
>
Focus
</Button>
<Button variant="ghost" color="info" loading>
Loading
</Button>
<Button variant="ghost" color="info" disabled>
Disabled
</Button>
</div>
</div>

<div>
<h4 className="text-sm font-medium mb-2">Dark</h4>
<div className="bg-black p-4 rounded-md flex flex-wrap items-center gap-4 dark">
<Button variant="ghost" color="info">
Default
</Button>
<Button variant="ghost" color="info" className="!bg-info-3">
Hover
</Button>
<Button
variant="ghost"
color="info"
className="!ring-4 !ring-info-6 !border-info-11"
>
Focus
</Button>
<Button variant="ghost" color="info" loading>
Loading
</Button>
<Button variant="ghost" color="info" disabled>
Disabled
</Button>
</div>
</div>
</div>
</RenderComponentWithSnippet>

## Size Variants

All button variants and color schemes can be combined with different sizes to fit various UI contexts.
Expand Down Expand Up @@ -872,4 +1054,4 @@ When using the Button component:
- Add appropriate aria attributes for complex button behaviors
- **Responsive behavior**:
- On mobile, ensure buttons are at least 44×44px (touch target size)
- Consider stacking buttons vertically on very small screens
- Consider stacking buttons vertically on very small screens
Loading
Loading