chore: import upstream snapshot with attribution
CI / Deep Native Runtime Cases (1/6) (push) Has been skipped
CI / Native Preflight (push) Failing after 1s
CI / Native Runtime Cases (1/2) (push) Failing after 0s
CI / Native Runtime Cases (2/2) (push) Failing after 1s
CI / Native Metadata Reports (push) Failing after 0s
CI / Native Direct Backend Artifacts (push) Failing after 0s
CI / Native Sanitizer Smoke (push) Failing after 1s
CI / Command Contract Snapshots (push) Failing after 1s
CI / Deep Conformance Suite (push) Has been skipped
CI / Graph Build Perf (push) Failing after 1s
CI / Deep Native Preflight (push) Has been skipped
CI / Deep Native Runtime Cases (2/6) (push) Has been skipped
CI / Deep Native Runtime Cases (3/6) (push) Has been skipped
CI / Conformance Suite (push) Failing after 1s
CI / Workspace Checks (push) Failing after 0s
CI / Deep Native Runtime Cases (5/6) (push) Has been skipped
CI / Deep Native Runtime Cases (6/6) (push) Has been skipped
CI / Deep Native Runtime Cases (4/6) (push) Has been skipped
CI / Deep Graph Build Perf (push) Has been skipped
CI / Deep Native Runtime Cases (1/6) (push) Has been skipped
CI / Native Preflight (push) Failing after 1s
CI / Native Runtime Cases (1/2) (push) Failing after 0s
CI / Native Runtime Cases (2/2) (push) Failing after 1s
CI / Native Metadata Reports (push) Failing after 0s
CI / Native Direct Backend Artifacts (push) Failing after 0s
CI / Native Sanitizer Smoke (push) Failing after 1s
CI / Command Contract Snapshots (push) Failing after 1s
CI / Deep Conformance Suite (push) Has been skipped
CI / Graph Build Perf (push) Failing after 1s
CI / Deep Native Preflight (push) Has been skipped
CI / Deep Native Runtime Cases (2/6) (push) Has been skipped
CI / Deep Native Runtime Cases (3/6) (push) Has been skipped
CI / Conformance Suite (push) Failing after 1s
CI / Workspace Checks (push) Failing after 0s
CI / Deep Native Runtime Cases (5/6) (push) Has been skipped
CI / Deep Native Runtime Cases (6/6) (push) Has been skipped
CI / Deep Native Runtime Cases (4/6) (push) Has been skipped
CI / Deep Graph Build Perf (push) Has been skipped
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
import Link from "next/link";
|
||||
import type { ButtonHTMLAttributes, ComponentProps } from "react";
|
||||
|
||||
const SIZES = {
|
||||
sm: "h-8 px-4 text-[0.8125rem]",
|
||||
md: "h-10 px-6 text-sm",
|
||||
lg: "h-11 gap-2 px-8 text-[0.9375rem]",
|
||||
};
|
||||
|
||||
const VARIANTS = {
|
||||
default: "border-border bg-bg text-fg hover:border-fg",
|
||||
primary:
|
||||
"border-accent bg-accent text-accent-fg hover:bg-transparent hover:text-accent",
|
||||
};
|
||||
|
||||
type ButtonVariant = keyof typeof VARIANTS;
|
||||
type ButtonSize = keyof typeof SIZES;
|
||||
|
||||
type ButtonStyleProps = {
|
||||
variant?: ButtonVariant;
|
||||
size?: ButtonSize;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
function classes({ variant = "default", size = "md", className = "" }: ButtonStyleProps): string {
|
||||
return [
|
||||
"inline-flex items-center justify-center rounded-md border font-medium no-underline transition",
|
||||
VARIANTS[variant],
|
||||
SIZES[size],
|
||||
className,
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(" ");
|
||||
}
|
||||
|
||||
type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & ButtonStyleProps;
|
||||
|
||||
export function Button({ variant, size, className, ...rest }: ButtonProps) {
|
||||
return <button className={classes({ variant, size, className })} {...rest} />;
|
||||
}
|
||||
|
||||
type ButtonLinkProps = ComponentProps<typeof Link> & ButtonStyleProps;
|
||||
|
||||
export function ButtonLink({ variant, size, className, ...rest }: ButtonLinkProps) {
|
||||
return <Link className={classes({ variant, size, className })} {...rest} />;
|
||||
}
|
||||
Reference in New Issue
Block a user