* feat: adding create bot functionality Signed-off-by: James <james@jan.ai> * update the temperature progress bar Signed-off-by: James <james@jan.ai> * WIP baselayout * Mapping plugins with available preferences * Added loader component * WIP working another screen * Cleanup types and avoid import one by one * Prepare bottom bar * Add css variables colors to enable user select the accent * Enable change accent color * Seperate css variable * Fix conflict * Add blank state of my model empty * Restyle explore models page * Enable user config left sidebar * Restyle my models page * WIP styling chat page * Restyling chat message * Fix conflict * Adde form preferences setting plugins * Fixed form bot info * Sidebar bot chat * Showing rightbar for both setting when user created bot * Fix style bot info * Using overflow auto intead of scroll * Remove script built UI from root package * Fix missig import * Resolve error linter * fix e2e tests Signed-off-by: James <james@jan.ai> --------- Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai>
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import * as React from 'react'
|
|
import { Slot } from '@radix-ui/react-slot'
|
|
import { cva, type VariantProps } from 'class-variance-authority'
|
|
|
|
import { twMerge } from 'tailwind-merge'
|
|
|
|
const buttonVariants = cva(
|
|
'cursor-pointer inline-flex items-center justify-center whitespace-nowrap rounded-md font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:bg-background-reverse disabled:text-background/50 disabled:pointer-events-none disabled:opacity-50',
|
|
{
|
|
variants: {
|
|
themes: {
|
|
default:
|
|
'hover:bg-background-reverse/90 bg-background-reverse text-background',
|
|
accent: 'hover:bg-accent/90 bg-accent text-white',
|
|
outline: 'border border-border bg-background/50 hover:bg-accent/20',
|
|
},
|
|
size: {
|
|
sm: 'h-6 px-2 text-xs rounded-md',
|
|
default: 'h-8 px-3',
|
|
},
|
|
},
|
|
defaultVariants: {
|
|
themes: 'default',
|
|
size: 'default',
|
|
},
|
|
}
|
|
)
|
|
|
|
export interface ButtonProps
|
|
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
VariantProps<typeof buttonVariants> {
|
|
asChild?: boolean
|
|
}
|
|
|
|
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
({ className, themes, size, asChild = false, ...props }, ref) => {
|
|
const Comp = asChild ? Slot : 'button'
|
|
return (
|
|
<Comp
|
|
className={twMerge(buttonVariants({ themes, size, className }))}
|
|
ref={ref}
|
|
{...props}
|
|
/>
|
|
)
|
|
}
|
|
)
|
|
Button.displayName = 'Button'
|
|
|
|
export { Button, buttonVariants }
|