Skip to content

Commit fe9be66

Browse files
committed
button + input updates
1 parent 7cccb77 commit fe9be66

File tree

5 files changed

+180
-3
lines changed

5 files changed

+180
-3
lines changed

web/package-lock.json

Lines changed: 93 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"@phosphor-icons/react": "^2.0.8",
1616
"@radix-ui/react-dialog": "^1.0.5",
1717
"@radix-ui/react-popover": "^1.0.7",
18+
"@radix-ui/react-slot": "^1.1.0",
1819
"@radix-ui/react-tooltip": "^1.0.7",
1920
"@sentry/nextjs": "^8.34.0",
2021
"@stripe/stripe-js": "^4.6.0",

web/src/app/admin/indexing/status/page.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ import { NotebookIcon } from "@/components/icons/icons";
55
import { CCPairIndexingStatusTable } from "./CCPairIndexingStatusTable";
66
import { AdminPageTitle } from "@/components/admin/Title";
77
import Link from "next/link";
8-
import { Button, Text } from "@tremor/react";
8+
import { Text } from "@tremor/react";
99
import { useConnectorCredentialIndexingStatus } from "@/lib/hooks";
1010
import { usePopupFromQuery } from "@/components/popup/PopupFromQuery";
11+
import { Button } from "@/components/ui/button";
1112

1213
function Main() {
1314
const {
@@ -91,7 +92,7 @@ export default function Status() {
9192
title="Existing Connectors"
9293
farRightElement={
9394
<Link href="/admin/add-connector">
94-
<Button color="green" size="xs">
95+
<Button size="sm" className="bg-neutral-800">
9596
Add Connector
9697
</Button>
9798
</Link>

web/src/components/ui/button.tsx

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import * as React from "react";
2+
import { Slot } from "@radix-ui/react-slot";
3+
import { cva, type VariantProps } from "class-variance-authority";
4+
5+
import { cn } from "@/lib/utils";
6+
7+
const buttonVariants = cva(
8+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:ring-offset-neutral-950 dark:focus-visible:ring-neutral-300",
9+
{
10+
variants: {
11+
variant: {
12+
default:
13+
"bg-neutral-900 text-neutral-50 hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90",
14+
destructive:
15+
"bg-red-500 text-neutral-50 hover:bg-red-500/90 dark:bg-red-900 dark:text-neutral-50 dark:hover:bg-red-900/90",
16+
outline:
17+
"border border-neutral-200 bg-white hover:bg-neutral-100 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
18+
secondary:
19+
"bg-neutral-100 text-neutral-900 hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",
20+
ghost:
21+
"hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
22+
link: "text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50",
23+
},
24+
size: {
25+
default: "h-10 px-4 py-2",
26+
sm: "h-9 rounded-md px-3",
27+
lg: "h-11 rounded-md px-8",
28+
icon: "h-10 w-10",
29+
},
30+
},
31+
defaultVariants: {
32+
variant: "default",
33+
size: "default",
34+
},
35+
}
36+
);
37+
38+
export interface ButtonProps
39+
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
40+
VariantProps<typeof buttonVariants> {
41+
asChild?: boolean;
42+
}
43+
44+
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
45+
({ className, variant, size, asChild = false, ...props }, ref) => {
46+
const Comp = asChild ? Slot : "button";
47+
return (
48+
<Comp
49+
className={cn(buttonVariants({ variant, size, className }))}
50+
ref={ref}
51+
{...props}
52+
/>
53+
);
54+
}
55+
);
56+
Button.displayName = "Button";
57+
58+
export { Button, buttonVariants };

web/src/components/ui/input.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import * as React from "react";
2+
3+
import { cn } from "@/lib/utils";
4+
5+
export interface InputProps
6+
extends React.InputHTMLAttributes<HTMLInputElement> {}
7+
8+
const Input = React.forwardRef<HTMLInputElement, InputProps>(
9+
({ className, type, ...props }, ref) => {
10+
return (
11+
<input
12+
type={type}
13+
className={cn(
14+
"flex h-10 w-full rounded-md border border-neutral-200 bg-white px-3 py-2 text-sm ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-neutral-950 placeholder:text-neutral-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-950 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:bg-neutral-950 dark:ring-offset-neutral-950 dark:file:text-neutral-50 dark:placeholder:text-neutral-400 dark:focus-visible:ring-neutral-300",
15+
className
16+
)}
17+
ref={ref}
18+
{...props}
19+
/>
20+
);
21+
}
22+
);
23+
Input.displayName = "Input";
24+
25+
export { Input };

0 commit comments

Comments
 (0)