From 2b700b7474ffc728f5318c178244e035c93716b5 Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Sun, 31 Aug 2025 23:25:26 +0200 Subject: feat: scenes button to timeline toolbar --- apps/web/src/components/ui/split-button.tsx | 90 +++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 apps/web/src/components/ui/split-button.tsx (limited to 'apps/web/src/components/ui/split-button.tsx') diff --git a/apps/web/src/components/ui/split-button.tsx b/apps/web/src/components/ui/split-button.tsx new file mode 100644 index 00000000..1ef29500 --- /dev/null +++ b/apps/web/src/components/ui/split-button.tsx @@ -0,0 +1,90 @@ +import { Button, ButtonProps } from "@/components/ui/button"; +import { Separator } from "@/components/ui/separator"; +import { ReactNode, forwardRef } from "react"; +import { cn } from "@/lib/utils"; + +interface SplitButtonProps { + children: ReactNode; + className?: string; +} + +interface SplitButtonSideProps extends Omit { + children: ReactNode; +} + +const SplitButton = forwardRef( + ({ children, className, ...props }, ref) => { + return ( +
+ {children} +
+ ); + } +); +SplitButton.displayName = "SplitButton"; + +const SplitButtonSide = forwardRef< + HTMLButtonElement, + SplitButtonSideProps & { paddingClass: string } +>(({ children, className, paddingClass, onClick, ...props }, ref) => { + return ( + + ); +}); +SplitButtonSide.displayName = "SplitButtonSide"; + +const SplitButtonLeft = forwardRef( + ({ ...props }, ref) => { + return ; + } +); +SplitButtonLeft.displayName = "SplitButtonLeft"; + +const SplitButtonRight = forwardRef( + ({ ...props }, ref) => { + return ; + } +); +SplitButtonRight.displayName = "SplitButtonRight"; + +const SplitButtonSeparator = forwardRef( + ({ className, ...props }, ref) => { + return ( + + ); + } +); +SplitButtonSeparator.displayName = "SplitButtonSeparator"; + +export { SplitButton, SplitButtonLeft, SplitButtonRight, SplitButtonSeparator }; -- cgit v1.3.1