Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
62 lines
1.4 KiB
TypeScript
62 lines
1.4 KiB
TypeScript
import * as React from "react";
|
|
import { Button as UISystemButton, buttonVariants } from "@tutti-os/ui-system";
|
|
import { cn } from "../../lib/utils";
|
|
|
|
type UISystemButtonProps = React.ComponentProps<typeof UISystemButton>;
|
|
type LegacyButtonSize =
|
|
| UISystemButtonProps["size"]
|
|
| "mini"
|
|
| "md"
|
|
| "max"
|
|
| "iconClose";
|
|
|
|
export interface ButtonProps extends Omit<UISystemButtonProps, "size"> {
|
|
size?: LegacyButtonSize;
|
|
}
|
|
|
|
function resolveButtonSize(
|
|
size: LegacyButtonSize | undefined
|
|
): UISystemButtonProps["size"] {
|
|
switch (size) {
|
|
case "mini":
|
|
return "xs";
|
|
case "md":
|
|
return "default";
|
|
case "max":
|
|
return "lg";
|
|
case "iconClose":
|
|
return "icon-sm";
|
|
default:
|
|
return size;
|
|
}
|
|
}
|
|
|
|
function resolveButtonClassName(
|
|
size: LegacyButtonSize | undefined,
|
|
className: string | undefined
|
|
): string | undefined {
|
|
if (size !== "iconClose") {
|
|
return className;
|
|
}
|
|
|
|
return cn(
|
|
"h-[28px] w-[28px] min-h-[28px] min-w-[28px] shrink-0 rounded-[4px] p-0 [&_svg]:size-[14px]",
|
|
className
|
|
);
|
|
}
|
|
|
|
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
({ className, size, ...props }, ref) => (
|
|
<UISystemButton
|
|
ref={ref}
|
|
className={resolveButtonClassName(size, className)}
|
|
size={resolveButtonSize(size)}
|
|
{...props}
|
|
/>
|
|
)
|
|
);
|
|
|
|
Button.displayName = "Button";
|
|
|
|
export { Button, buttonVariants };
|