From cbcc7a17926dddfbfde6265afaae871ec9e117ff Mon Sep 17 00:00:00 2001 From: Greg Date: Tue, 10 Jun 2025 11:25:44 +0200 Subject: [PATCH 01/15] Create some shared components --- .../base/src/shared/components/Button.tsx | 46 ++++++++++++ .../src/shared/components/ToggleGroup.tsx | 75 +++++++++++++++++++ packages/base/src/shared/components/utils.ts | 5 ++ packages/base/style/base.css | 2 + 4 files changed, 128 insertions(+) create mode 100644 packages/base/src/shared/components/Button.tsx create mode 100644 packages/base/src/shared/components/ToggleGroup.tsx create mode 100644 packages/base/src/shared/components/utils.ts diff --git a/packages/base/src/shared/components/Button.tsx b/packages/base/src/shared/components/Button.tsx new file mode 100644 index 000000000..11e912657 --- /dev/null +++ b/packages/base/src/shared/components/Button.tsx @@ -0,0 +1,46 @@ +import { VariantProps, cva } from 'class-variance-authority'; +import * as React from 'react'; +import { cn } from './utils'; + +const buttonVariants = cva('jgis-button-shared', { + variants: { + variant: { + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: + 'bg-destructive text-destructive-foreground hover:bg-destructive/90', + outline: 'jgis-button-variant-outline', + secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'underline-offset-4 hover:underline text-primary', + bubble: 'jgis-button-variant-bubble' + }, + size: { + default: 'jgis-button-size-default', + sm: 'jgis-button-size-sm', + lg: 'h-11 px-8 rounded-md' + } + }, + defaultVariants: { + variant: 'default', + size: 'default' + } +}); + +export interface IButtonProps + extends React.ButtonHTMLAttributes, + VariantProps {} + +const Button = React.forwardRef( + ({ className, variant, size, ...props }, ref) => { + return ( +