this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

add button

+94
+1
package.json
··· 13 13 "check": "biome check" 14 14 }, 15 15 "dependencies": { 16 + "@radix-ui/react-slot": "^1.2.2", 16 17 "@tailwindcss/vite": "^4.0.6", 17 18 "@tanstack/react-query": "^5.66.5", 18 19 "@tanstack/react-query-devtools": "^5.66.5",
+34
pnpm-lock.yaml
··· 8 8 9 9 .: 10 10 dependencies: 11 + '@radix-ui/react-slot': 12 + specifier: ^1.2.2 13 + version: 1.2.2(@types/react@19.1.2)(react@19.1.0) 11 14 '@tailwindcss/vite': 12 15 specifier: ^4.0.6 13 16 version: 4.1.5(vite@6.3.4(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.4)) ··· 446 449 447 450 '@jridgewell/trace-mapping@0.3.25': 448 451 resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 452 + 453 + '@radix-ui/react-compose-refs@1.1.2': 454 + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} 455 + peerDependencies: 456 + '@types/react': '*' 457 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 458 + peerDependenciesMeta: 459 + '@types/react': 460 + optional: true 461 + 462 + '@radix-ui/react-slot@1.2.2': 463 + resolution: {integrity: sha512-y7TBO4xN4Y94FvcWIOIh18fM4R1A8S4q1jhoz4PNzOoHsFcN8pogcFmZrTYAm4F9VRUrWP/Mw7xSKybIeRI+CQ==} 464 + peerDependencies: 465 + '@types/react': '*' 466 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 467 + peerDependenciesMeta: 468 + '@types/react': 469 + optional: true 449 470 450 471 '@rollup/rollup-android-arm-eabi@4.40.1': 451 472 resolution: {integrity: sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==} ··· 1826 1847 dependencies: 1827 1848 '@jridgewell/resolve-uri': 3.1.2 1828 1849 '@jridgewell/sourcemap-codec': 1.5.0 1850 + 1851 + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.2)(react@19.1.0)': 1852 + dependencies: 1853 + react: 19.1.0 1854 + optionalDependencies: 1855 + '@types/react': 19.1.2 1856 + 1857 + '@radix-ui/react-slot@1.2.2(@types/react@19.1.2)(react@19.1.0)': 1858 + dependencies: 1859 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) 1860 + react: 19.1.0 1861 + optionalDependencies: 1862 + '@types/react': 19.1.2 1829 1863 1830 1864 '@rollup/rollup-android-arm-eabi@4.40.1': 1831 1865 optional: true
+59
src/components/ui/button.tsx
··· 1 + import * as React from "react" 2 + import { Slot } from "@radix-ui/react-slot" 3 + import { cva, type VariantProps } from "class-variance-authority" 4 + 5 + import { cn } from "~/lib/utils" 6 + 7 + const buttonVariants = cva( 8 + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", 9 + { 10 + variants: { 11 + variant: { 12 + default: 13 + "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", 14 + destructive: 15 + "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", 16 + outline: 17 + "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", 18 + secondary: 19 + "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", 20 + ghost: 21 + "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", 22 + link: "text-primary underline-offset-4 hover:underline", 23 + }, 24 + size: { 25 + default: "h-9 px-4 py-2 has-[>svg]:px-3", 26 + sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", 27 + lg: "h-10 rounded-md px-6 has-[>svg]:px-4", 28 + icon: "size-9", 29 + }, 30 + }, 31 + defaultVariants: { 32 + variant: "default", 33 + size: "default", 34 + }, 35 + } 36 + ) 37 + 38 + function Button({ 39 + className, 40 + variant, 41 + size, 42 + asChild = false, 43 + ...props 44 + }: React.ComponentProps<"button"> & 45 + VariantProps<typeof buttonVariants> & { 46 + asChild?: boolean 47 + }) { 48 + const Comp = asChild ? Slot : "button" 49 + 50 + return ( 51 + <Comp 52 + data-slot="button" 53 + className={cn(buttonVariants({ variant, size, className }))} 54 + {...props} 55 + /> 56 + ) 57 + } 58 + 59 + export { Button, buttonVariants }