summaryrefslogtreecommitdiff
path: root/apps/web/src/components/ui/split-button.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/components/ui/split-button.tsx')
-rw-r--r--apps/web/src/components/ui/split-button.tsx120
1 files changed, 60 insertions, 60 deletions
diff --git a/apps/web/src/components/ui/split-button.tsx b/apps/web/src/components/ui/split-button.tsx
index ca3b518c..26e54cab 100644
--- a/apps/web/src/components/ui/split-button.tsx
+++ b/apps/web/src/components/ui/split-button.tsx
@@ -1,89 +1,89 @@
-import { Button, ButtonProps } from "@/components/ui/button";
+import { Button, type ButtonProps } from "@/components/ui/button";
import { Separator } from "@/components/ui/separator";
-import { ReactNode, forwardRef } from "react";
-import { cn } from "@/lib/utils";
+import { type ReactNode, forwardRef } from "react";
+import { cn } from "@/utils/ui";
interface SplitButtonProps {
- children: ReactNode;
- className?: string;
+ children: ReactNode;
+ className?: string;
}
interface SplitButtonSideProps extends Omit<ButtonProps, "variant" | "size"> {
- children: ReactNode;
+ children: ReactNode;
}
const SplitButton = forwardRef<HTMLDivElement, SplitButtonProps>(
- ({ children, className, ...props }, ref) => {
- return (
- <div
- ref={ref}
- className={cn(
- "inline-flex rounded-full h-7 border border-input bg-panel-accent overflow-hidden",
- className
- )}
- {...props}
- >
- {children}
- </div>
- );
- }
+ ({ children, className, ...props }, ref) => {
+ return (
+ <div
+ ref={ref}
+ className={cn(
+ "border-input bg-panel-accent inline-flex h-7 overflow-hidden rounded-lg border",
+ className,
+ )}
+ {...props}
+ >
+ {children}
+ </div>
+ );
+ },
);
SplitButton.displayName = "SplitButton";
const SplitButtonSide = forwardRef<
- HTMLButtonElement,
- SplitButtonSideProps & { paddingClass: string }
+ HTMLButtonElement,
+ SplitButtonSideProps & { paddingClass: string }
>(({ children, className, paddingClass, onClick, ...props }, ref) => {
- return (
- <Button
- ref={ref}
- variant="text"
- className={cn(
- "h-full rounded-none bg-panel-accent !opacity-100 border-0 gap-0 font-normal transition-colors disabled:text-muted-foreground",
- onClick
- ? "hover:bg-foreground/10 hover:opacity-100 cursor-pointer"
- : "cursor-default select-text",
- paddingClass,
- className
- )}
- onClick={onClick}
- {...props}
- >
- {typeof children === "string" ? (
- <span className="font-normal cursor-text">{children}</span>
- ) : (
- children
- )}
- </Button>
- );
+ return (
+ <Button
+ ref={ref}
+ variant="text"
+ className={cn(
+ "bg-panel-accent disabled:text-muted-foreground h-full gap-0 rounded-none border-0 font-normal !opacity-100",
+ onClick
+ ? "hover:bg-foreground/10 cursor-pointer hover:opacity-100"
+ : "cursor-default select-text",
+ paddingClass,
+ className,
+ )}
+ onClick={onClick}
+ {...props}
+ >
+ {typeof children === "string" ? (
+ <span className="cursor-text font-normal">{children}</span>
+ ) : (
+ children
+ )}
+ </Button>
+ );
});
SplitButtonSide.displayName = "SplitButtonSide";
const SplitButtonLeft = forwardRef<HTMLButtonElement, SplitButtonSideProps>(
- ({ ...props }, ref) => {
- return <SplitButtonSide ref={ref} paddingClass="pl-3 pr-2" {...props} />;
- }
+ ({ ...props }, ref) => {
+ return <SplitButtonSide ref={ref} paddingClass="pl-3 pr-2" {...props} />;
+ },
);
SplitButtonLeft.displayName = "SplitButtonLeft";
const SplitButtonRight = forwardRef<HTMLButtonElement, SplitButtonSideProps>(
- ({ ...props }, ref) => {
- return <SplitButtonSide ref={ref} paddingClass="pl-2 pr-3" {...props} />;
- }
+ ({ ...props }, ref) => {
+ return <SplitButtonSide ref={ref} paddingClass="pl-2 pr-3" {...props} />;
+ },
);
SplitButtonRight.displayName = "SplitButtonRight";
const SplitButtonSeparator = forwardRef<HTMLDivElement, { className?: string }>(
- ({ className, ...props }, ref) => {
- return (
- <Separator
- ref={ref}
- orientation="vertical"
- className={cn("h-full bg-foreground/15", className)}
- {...props}
- />
- );
- }
+ ({ className, ...props }, ref) => {
+ return (
+ <Separator
+ ref={ref}
+ orientation="vertical"
+ className={cn("bg-foreground/15 h-full", className)}
+ {...props}
+ />
+ );
+ },
);
SplitButtonSeparator.displayName = "SplitButtonSeparator";