@dilipod/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/components/button.tsx","../src/components/sheet.tsx","../src/components/logo.tsx","../src/components/badge.tsx","../src/components/card.tsx","../src/components/progress.tsx","../src/components/icon-box.tsx","../src/components/tag.tsx","../src/components/stat.tsx"],"names":["React","React2","jsx","cva","jsxs","React3","React5","React6","React7","React8"],"mappings":"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","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-sm font-semibold ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer',\n {\n variants: {\n variant: {\n default:\n 'bg-[var(--black)] text-white border-2 border-[var(--black)] hover:bg-gray-800 hover:border-gray-800 active:scale-95',\n primary:\n 'bg-[var(--cyan)] text-[var(--black)] border-2 border-[var(--cyan)] hover:bg-[var(--cyan-dark)] hover:border-[var(--cyan-dark)] active:scale-95',\n destructive:\n 'bg-red-600 text-white border-2 border-red-600 hover:bg-red-700 hover:border-red-700 active:scale-95',\n outline:\n 'border-2 border-gray-300 bg-transparent hover:bg-gray-100 active:scale-95',\n secondary:\n 'bg-gray-100 text-[var(--black)] border-2 border-gray-100 hover:bg-gray-200 hover:border-gray-200 active:scale-95',\n ghost:\n 'hover:bg-gray-100 border-2 border-transparent',\n link:\n 'text-[var(--cyan)] underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-6 py-2',\n sm: 'h-9 px-4 text-xs',\n lg: 'h-12 px-8 text-base',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n","'use client'\n\nimport * as React from 'react'\nimport * as SheetPrimitive from '@radix-ui/react-dialog'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { X } from '@phosphor-icons/react'\n\nimport { cn } from '../lib/utils'\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-white p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--cyan)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col space-y-2 text-center sm:text-left',\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = 'SheetHeader'\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = 'SheetFooter'\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-[var(--black)]', className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-gray-500', className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface LogoProps {\n variant?: 'dark' | 'light' // dark = black text, light = white text\n size?: 'sm' | 'md' | 'lg'\n href?: string\n className?: string\n}\n\nconst sizes = {\n sm: { width: 100, height: 30 },\n md: { width: 130, height: 40 },\n lg: { width: 160, height: 50 },\n}\n\n/**\n * Logo component that renders the Dilipod logo as inline SVG\n * \n * @param variant - 'dark' for light backgrounds (black text), 'light' for dark backgrounds (white text)\n * @param size - 'sm' | 'md' | 'lg'\n * @param href - Optional link href (wraps logo in anchor tag)\n * @param className - Additional CSS classes\n */\nexport function Logo({\n variant = 'dark',\n size = 'md',\n href,\n className,\n}: LogoProps) {\n const s = sizes[size]\n const textColor = variant === 'light' ? 'white' : '#0A0A0A'\n const iconTextColor = variant === 'light' ? 'white' : '#0A0A0A'\n\n const svgContent = (\n <svg\n width={s.width}\n height={s.height}\n viewBox=\"0 0 130 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <defs>\n <linearGradient id={`gradient-${variant}`} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor=\"#007A70\" />\n <stop offset=\"50%\" stopColor=\"#00B8A9\" />\n <stop offset=\"100%\" stopColor=\"#00E5D4\" />\n </linearGradient>\n </defs>\n {/* Icon */}\n <rect width=\"40\" height=\"40\" rx=\"4\" fill={`url(#gradient-${variant})`} />\n <text\n x=\"20\"\n y=\"29\"\n textAnchor=\"middle\"\n fontFamily=\"system-ui, -apple-system, sans-serif\"\n fontSize=\"24\"\n fontWeight=\"700\"\n fill={iconTextColor}\n >\n D\n </text>\n {/* Text */}\n <text\n x=\"52\"\n y=\"28\"\n fontFamily=\"system-ui, -apple-system, sans-serif\"\n fontSize=\"20\"\n fontWeight=\"700\"\n letterSpacing=\"1\"\n fill={textColor}\n >\n Dilipod\n </text>\n </svg>\n )\n\n if (href) {\n return (\n <a href={href} className=\"inline-flex items-center group\">\n {svgContent}\n </a>\n )\n }\n\n return <div className=\"inline-flex items-center\">{svgContent}</div>\n}\n\nexport type { LogoProps }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst badgeVariants = cva(\n 'inline-flex items-center gap-1.5 rounded-full font-semibold transition-colors',\n {\n variants: {\n variant: {\n default: 'bg-gray-100 text-gray-700',\n primary: 'bg-[var(--cyan)]/10 text-[var(--cyan)]',\n success: 'bg-green-100 text-green-700',\n warning: 'bg-amber-100 text-amber-700',\n error: 'bg-red-100 text-red-700',\n outline: 'border border-gray-200 text-gray-600 bg-white',\n },\n size: {\n sm: 'px-2 py-0.5 text-[10px]',\n default: 'px-2.5 py-1 text-xs',\n lg: 'px-3 py-1.5 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {\n /** Show animated pulse dot */\n pulse?: boolean\n /** Custom pulse color (overrides variant-based color) */\n pulseColor?: 'default' | 'primary' | 'success' | 'warning' | 'error'\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, pulse, pulseColor: pulseColorProp, children, ...props }, ref) => {\n const pulseColorMap = {\n default: 'bg-gray-500',\n primary: 'bg-[var(--cyan)]',\n success: 'bg-green-500',\n warning: 'bg-amber-500',\n error: 'bg-red-500',\n outline: 'bg-gray-400',\n }\n \n // Use custom pulseColor if provided, otherwise derive from variant\n const pulseColor = pulseColorProp \n ? pulseColorMap[pulseColorProp] \n : pulseColorMap[variant || 'default']\n\n return (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n >\n {pulse && (\n <span className=\"relative flex h-1.5 w-1.5\">\n <span\n className={cn(\n 'absolute inline-flex h-full w-full animate-ping rounded-full opacity-75',\n pulseColor\n )}\n />\n <span\n className={cn(\n 'relative inline-flex h-1.5 w-1.5 rounded-full',\n pulseColor\n )}\n />\n </span>\n )}\n {children}\n </span>\n )\n }\n)\nBadge.displayName = 'Badge'\n\nexport { Badge, badgeVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-sm border border-gray-200 bg-white shadow-sm',\n className\n )}\n {...props}\n />\n))\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-6', className)}\n {...props}\n />\n))\nCardHeader.displayName = 'CardHeader'\n\nconst CardTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n 'text-lg font-bold leading-none tracking-tight text-[var(--black)]',\n className\n )}\n {...props}\n />\n))\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm text-gray-500', className)}\n {...props}\n />\n))\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n))\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center p-6 pt-0', className)}\n {...props}\n />\n))\nCardFooter.displayName = 'CardFooter'\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst progressVariants = cva('h-full rounded-full transition-all duration-300', {\n variants: {\n variant: {\n default: 'bg-[var(--cyan)]',\n success: 'bg-green-500',\n warning: 'bg-amber-500',\n error: 'bg-red-500',\n gradient: 'bg-gradient-to-r from-[var(--cyan-dark)] to-[var(--cyan)]',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n})\n\nexport interface ProgressProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof progressVariants> {\n /** Progress value (0-100) */\n value: number\n /** Show percentage label */\n showLabel?: boolean\n /** Custom label text (defaults to \"Progress\") */\n label?: string\n /** Size of the progress bar */\n size?: 'sm' | 'default' | 'lg'\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value, variant, showLabel, label = 'Progress', size = 'default', ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value))\n \n const heightClass = {\n sm: 'h-1',\n default: 'h-1.5',\n lg: 'h-2.5',\n }[size]\n\n return (\n <div className={cn('w-full', className)} ref={ref} {...props}>\n {showLabel && (\n <div className=\"flex justify-between text-xs mb-1\">\n <span className=\"text-gray-500\">{label}</span>\n <span className=\"font-semibold text-[var(--black)]\">{clampedValue}%</span>\n </div>\n )}\n <div\n className={cn(\n 'w-full bg-gray-200 rounded-full overflow-hidden',\n heightClass\n )}\n >\n <div\n className={cn(progressVariants({ variant }))}\n style={{ width: `${clampedValue}%` }}\n />\n </div>\n </div>\n )\n }\n)\nProgress.displayName = 'Progress'\n\nexport { Progress, progressVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst iconBoxVariants = cva(\n 'inline-flex items-center justify-center shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-[var(--black)] text-white',\n primary: 'bg-[var(--cyan)] text-[var(--black)]',\n outline: 'border-2 border-gray-200 bg-white text-[var(--black)]',\n ghost: 'bg-gray-100 text-gray-600',\n gradient: 'bg-gradient-to-br from-[var(--black)] to-[var(--cyan-dark)] text-white',\n },\n size: {\n sm: 'w-8 h-8',\n default: 'w-10 h-10',\n lg: 'w-12 h-12',\n xl: 'w-14 h-14',\n },\n rounded: {\n sm: 'rounded-sm',\n default: 'rounded-md',\n full: 'rounded-full',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n rounded: 'sm',\n },\n }\n)\n\nexport interface IconBoxProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof iconBoxVariants> {}\n\nconst IconBox = React.forwardRef<HTMLDivElement, IconBoxProps>(\n ({ className, variant, size, rounded, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(iconBoxVariants({ variant, size, rounded }), className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nIconBox.displayName = 'IconBox'\n\nexport { IconBox, iconBoxVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst tagVariants = cva(\n 'inline-flex items-center gap-2 font-medium transition-colors cursor-pointer',\n {\n variants: {\n variant: {\n default: 'bg-gray-100 text-[var(--black)]',\n primary: 'bg-[var(--cyan)]/10 text-[var(--cyan)]',\n outline: 'border border-gray-200 bg-white text-gray-700 hover:border-[var(--black)] hover:text-[var(--black)]',\n dark: 'bg-[var(--black)] text-white',\n },\n size: {\n sm: 'px-2 py-1 text-[10px] rounded',\n default: 'px-3 py-1.5 text-xs rounded-full',\n lg: 'px-4 py-2 text-sm rounded-full',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface TagProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof tagVariants> {\n /** Optional icon to display before text */\n icon?: React.ReactNode\n}\n\nconst Tag = React.forwardRef<HTMLSpanElement, TagProps>(\n ({ className, variant, size, icon, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={cn(tagVariants({ variant, size }), className)}\n {...props}\n >\n {icon && <span className=\"shrink-0\">{icon}</span>}\n {children}\n </span>\n )\n }\n)\nTag.displayName = 'Tag'\n\nexport { Tag, tagVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst statVariants = cva('', {\n variants: {\n variant: {\n default: '',\n card: 'p-3 rounded-sm bg-gray-50 text-center',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n variant: 'default',\n align: 'left',\n },\n})\n\nconst valueVariants = cva('font-bold', {\n variants: {\n size: {\n sm: 'text-xl',\n default: 'text-3xl md:text-4xl',\n lg: 'text-4xl md:text-5xl',\n xl: 'text-5xl md:text-6xl',\n },\n color: {\n default: 'text-[var(--black)]',\n primary: 'text-[var(--cyan)]',\n white: 'text-white',\n gradient: 'text-gradient',\n },\n },\n defaultVariants: {\n size: 'default',\n color: 'default',\n },\n})\n\nexport interface StatProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof statVariants> {\n /** The main value to display */\n value: string | number\n /** Label below the value */\n label?: string\n /** Optional suffix after value (e.g., \"faster\", \"cheaper\") */\n suffix?: string\n /** Size of the value text */\n valueSize?: 'sm' | 'default' | 'lg' | 'xl'\n /** Color of the value */\n valueColor?: 'default' | 'primary' | 'white' | 'gradient'\n}\n\nconst Stat = React.forwardRef<HTMLDivElement, StatProps>(\n (\n {\n className,\n variant,\n align,\n value,\n label,\n suffix,\n valueSize = 'default',\n valueColor = 'default',\n ...props\n },\n ref\n ) => {\n const justifyClass = {\n left: 'justify-start',\n center: 'justify-center',\n right: 'justify-end',\n }[align || 'left']\n\n return (\n <div\n ref={ref}\n className={cn(statVariants({ variant, align }), className)}\n {...props}\n >\n <div className={cn('flex items-baseline gap-2', justifyClass)}>\n <span className={cn(valueVariants({ size: valueSize, color: valueColor }))}>\n {value}\n </span>\n {suffix && (\n <span className={cn(\n \"font-medium text-[var(--cyan)]\",\n valueSize === 'lg' || valueSize === 'xl' ? 'text-lg md:text-xl' : 'text-base md:text-lg'\n )}>\n {suffix}\n </span>\n )}\n </div>\n {label && (\n <div className={cn(\n \"font-medium mt-1\",\n valueColor === 'white' ? 'text-white/70 text-sm md:text-base' : 'text-gray-500 text-xs md:text-sm'\n )}>\n {label}\n </div>\n )}\n </div>\n )\n }\n)\nStat.displayName = 'Stat'\n\nexport { Stat, statVariants, valueVariants }\n"]}
package/package.json ADDED
@@ -0,0 +1,89 @@
1
+ {
2
+ "name": "@dilipod/ui",
3
+ "version": "0.1.0",
4
+ "description": "Dilipod Design System - Shared UI components and styles",
5
+ "author": "Dilipod <hello@dilipod.com>",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/Dilipod/package-ui.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/Dilipod/package-ui/issues"
13
+ },
14
+ "homepage": "https://dilipod.com",
15
+ "keywords": [
16
+ "design-system",
17
+ "react",
18
+ "components",
19
+ "ui",
20
+ "dilipod",
21
+ "tailwindcss"
22
+ ],
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "main": "./dist/index.js",
27
+ "module": "./dist/index.mjs",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.mjs",
33
+ "require": "./dist/index.js"
34
+ },
35
+ "./styles": "./src/styles/globals.css",
36
+ "./styles.css": "./src/styles/globals.css"
37
+ },
38
+ "sideEffects": [
39
+ "**/*.css"
40
+ ],
41
+ "files": [
42
+ "dist",
43
+ "src"
44
+ ],
45
+ "scripts": {
46
+ "build": "tsup",
47
+ "dev": "tsup --watch",
48
+ "lint": "eslint src/",
49
+ "storybook": "storybook dev -p 6006",
50
+ "build-storybook": "storybook build",
51
+ "clean": "rm -rf dist",
52
+ "prepublishOnly": "npm run build",
53
+ "release": "npm run build && npm publish",
54
+ "release:patch": "npm version patch && npm run release",
55
+ "release:minor": "npm version minor && npm run release",
56
+ "release:major": "npm version major && npm run release"
57
+ },
58
+ "peerDependencies": {
59
+ "react": "^18.0.0 || ^19.0.0",
60
+ "react-dom": "^18.0.0 || ^19.0.0"
61
+ },
62
+ "dependencies": {
63
+ "@phosphor-icons/react": "^2.1.7",
64
+ "@radix-ui/react-dialog": "^1.1.14",
65
+ "@radix-ui/react-slot": "^1.2.3",
66
+ "class-variance-authority": "^0.7.1",
67
+ "clsx": "^2.1.1",
68
+ "tailwind-merge": "^3.3.0"
69
+ },
70
+ "devDependencies": {
71
+ "@storybook/addon-essentials": "8.6.14",
72
+ "@storybook/addon-interactions": "8.6.14",
73
+ "@storybook/addon-links": "8.6.14",
74
+ "@storybook/blocks": "8.6.14",
75
+ "@storybook/react": "8.6.14",
76
+ "@storybook/react-vite": "8.6.14",
77
+ "@storybook/test": "8.6.14",
78
+ "@types/react": "^19.0.0",
79
+ "@types/react-dom": "^19.0.0",
80
+ "autoprefixer": "^10.4.21",
81
+ "postcss": "^8.5.4",
82
+ "react": "^19.0.0",
83
+ "react-dom": "^19.0.0",
84
+ "storybook": "8.6.14",
85
+ "tailwindcss": "^4.1.8",
86
+ "tsup": "^8.5.0",
87
+ "typescript": "^5.8.3"
88
+ }
89
+ }
@@ -0,0 +1,99 @@
1
+ import type { Meta, StoryObj } from '@storybook/react'
2
+ import { Badge } from './badge'
3
+
4
+ const meta: Meta<typeof Badge> = {
5
+ title: 'Components/Badge',
6
+ component: Badge,
7
+ tags: ['autodocs'],
8
+ argTypes: {
9
+ variant: {
10
+ control: 'select',
11
+ options: ['default', 'primary', 'success', 'warning', 'error', 'outline'],
12
+ },
13
+ size: {
14
+ control: 'select',
15
+ options: ['sm', 'default', 'lg'],
16
+ },
17
+ pulse: {
18
+ control: 'boolean',
19
+ },
20
+ },
21
+ }
22
+
23
+ export default meta
24
+ type Story = StoryObj<typeof Badge>
25
+
26
+ export const Default: Story = {
27
+ args: {
28
+ children: 'Badge',
29
+ variant: 'default',
30
+ },
31
+ }
32
+
33
+ export const Primary: Story = {
34
+ args: {
35
+ children: 'Active',
36
+ variant: 'primary',
37
+ },
38
+ }
39
+
40
+ export const Success: Story = {
41
+ args: {
42
+ children: 'Completed',
43
+ variant: 'success',
44
+ },
45
+ }
46
+
47
+ export const Warning: Story = {
48
+ args: {
49
+ children: 'Pending',
50
+ variant: 'warning',
51
+ },
52
+ }
53
+
54
+ export const Error: Story = {
55
+ args: {
56
+ children: 'Failed',
57
+ variant: 'error',
58
+ },
59
+ }
60
+
61
+ export const Outline: Story = {
62
+ args: {
63
+ children: 'Draft',
64
+ variant: 'outline',
65
+ },
66
+ }
67
+
68
+ export const WithPulse: Story = {
69
+ args: {
70
+ children: 'Active',
71
+ variant: 'primary',
72
+ pulse: true,
73
+ },
74
+ }
75
+
76
+ export const AllVariants: Story = {
77
+ render: () => (
78
+ <div className="flex flex-col gap-4">
79
+ <div className="flex gap-2 items-center flex-wrap">
80
+ <Badge variant="default">Default</Badge>
81
+ <Badge variant="primary">Primary</Badge>
82
+ <Badge variant="success">Success</Badge>
83
+ <Badge variant="warning">Warning</Badge>
84
+ <Badge variant="error">Error</Badge>
85
+ <Badge variant="outline">Outline</Badge>
86
+ </div>
87
+ <div className="flex gap-2 items-center">
88
+ <Badge variant="primary" pulse>Active</Badge>
89
+ <Badge variant="success" pulse>Running</Badge>
90
+ <Badge variant="error" pulse>Error</Badge>
91
+ </div>
92
+ <div className="flex gap-2 items-center">
93
+ <Badge size="sm">Small</Badge>
94
+ <Badge size="default">Default</Badge>
95
+ <Badge size="lg">Large</Badge>
96
+ </div>
97
+ </div>
98
+ ),
99
+ }
@@ -0,0 +1,86 @@
1
+ 'use client'
2
+
3
+ import * as React from 'react'
4
+ import { cva, type VariantProps } from 'class-variance-authority'
5
+ import { cn } from '../lib/utils'
6
+
7
+ const badgeVariants = cva(
8
+ 'inline-flex items-center gap-1.5 rounded-full font-semibold transition-colors',
9
+ {
10
+ variants: {
11
+ variant: {
12
+ default: 'bg-gray-100 text-gray-700',
13
+ primary: 'bg-[var(--cyan)]/10 text-[var(--cyan)]',
14
+ success: 'bg-green-100 text-green-700',
15
+ warning: 'bg-amber-100 text-amber-700',
16
+ error: 'bg-red-100 text-red-700',
17
+ outline: 'border border-gray-200 text-gray-600 bg-white',
18
+ },
19
+ size: {
20
+ sm: 'px-2 py-0.5 text-[10px]',
21
+ default: 'px-2.5 py-1 text-xs',
22
+ lg: 'px-3 py-1.5 text-sm',
23
+ },
24
+ },
25
+ defaultVariants: {
26
+ variant: 'default',
27
+ size: 'default',
28
+ },
29
+ }
30
+ )
31
+
32
+ export interface BadgeProps
33
+ extends React.HTMLAttributes<HTMLSpanElement>,
34
+ VariantProps<typeof badgeVariants> {
35
+ /** Show animated pulse dot */
36
+ pulse?: boolean
37
+ /** Custom pulse color (overrides variant-based color) */
38
+ pulseColor?: 'default' | 'primary' | 'success' | 'warning' | 'error'
39
+ }
40
+
41
+ const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(
42
+ ({ className, variant, size, pulse, pulseColor: pulseColorProp, children, ...props }, ref) => {
43
+ const pulseColorMap = {
44
+ default: 'bg-gray-500',
45
+ primary: 'bg-[var(--cyan)]',
46
+ success: 'bg-green-500',
47
+ warning: 'bg-amber-500',
48
+ error: 'bg-red-500',
49
+ outline: 'bg-gray-400',
50
+ }
51
+
52
+ // Use custom pulseColor if provided, otherwise derive from variant
53
+ const pulseColor = pulseColorProp
54
+ ? pulseColorMap[pulseColorProp]
55
+ : pulseColorMap[variant || 'default']
56
+
57
+ return (
58
+ <span
59
+ ref={ref}
60
+ className={cn(badgeVariants({ variant, size }), className)}
61
+ {...props}
62
+ >
63
+ {pulse && (
64
+ <span className="relative flex h-1.5 w-1.5">
65
+ <span
66
+ className={cn(
67
+ 'absolute inline-flex h-full w-full animate-ping rounded-full opacity-75',
68
+ pulseColor
69
+ )}
70
+ />
71
+ <span
72
+ className={cn(
73
+ 'relative inline-flex h-1.5 w-1.5 rounded-full',
74
+ pulseColor
75
+ )}
76
+ />
77
+ </span>
78
+ )}
79
+ {children}
80
+ </span>
81
+ )
82
+ }
83
+ )
84
+ Badge.displayName = 'Badge'
85
+
86
+ export { Badge, badgeVariants }
@@ -0,0 +1,136 @@
1
+ import type { Meta, StoryObj } from '@storybook/react'
2
+ import { ArrowRight, Plus, Check } from '@phosphor-icons/react'
3
+ import { Button } from './button'
4
+
5
+ const meta: Meta<typeof Button> = {
6
+ title: 'Components/Button',
7
+ component: Button,
8
+ tags: ['autodocs'],
9
+ argTypes: {
10
+ variant: {
11
+ control: 'select',
12
+ options: ['default', 'primary', 'destructive', 'outline', 'secondary', 'ghost', 'link'],
13
+ },
14
+ size: {
15
+ control: 'select',
16
+ options: ['default', 'sm', 'lg', 'icon'],
17
+ },
18
+ disabled: {
19
+ control: 'boolean',
20
+ },
21
+ },
22
+ }
23
+
24
+ export default meta
25
+ type Story = StoryObj<typeof Button>
26
+
27
+ export const Default: Story = {
28
+ args: {
29
+ children: 'Button',
30
+ variant: 'default',
31
+ size: 'default',
32
+ },
33
+ }
34
+
35
+ export const Primary: Story = {
36
+ args: {
37
+ children: 'Primary Button',
38
+ variant: 'primary',
39
+ },
40
+ }
41
+
42
+ export const Outline: Story = {
43
+ args: {
44
+ children: 'Outline Button',
45
+ variant: 'outline',
46
+ },
47
+ }
48
+
49
+ export const Secondary: Story = {
50
+ args: {
51
+ children: 'Secondary Button',
52
+ variant: 'secondary',
53
+ },
54
+ }
55
+
56
+ export const Ghost: Story = {
57
+ args: {
58
+ children: 'Ghost Button',
59
+ variant: 'ghost',
60
+ },
61
+ }
62
+
63
+ export const Destructive: Story = {
64
+ args: {
65
+ children: 'Delete',
66
+ variant: 'destructive',
67
+ },
68
+ }
69
+
70
+ export const Link: Story = {
71
+ args: {
72
+ children: 'Link Button',
73
+ variant: 'link',
74
+ },
75
+ }
76
+
77
+ export const Small: Story = {
78
+ args: {
79
+ children: 'Small Button',
80
+ size: 'sm',
81
+ },
82
+ }
83
+
84
+ export const Large: Story = {
85
+ args: {
86
+ children: 'Large Button',
87
+ size: 'lg',
88
+ },
89
+ }
90
+
91
+ export const WithIcon: Story = {
92
+ args: {
93
+ children: (
94
+ <>
95
+ Continue
96
+ <ArrowRight weight="bold" />
97
+ </>
98
+ ),
99
+ },
100
+ }
101
+
102
+ export const IconOnly: Story = {
103
+ args: {
104
+ children: <Plus weight="bold" />,
105
+ size: 'icon',
106
+ },
107
+ }
108
+
109
+ export const Disabled: Story = {
110
+ args: {
111
+ children: 'Disabled',
112
+ disabled: true,
113
+ },
114
+ }
115
+
116
+ export const AllVariants: Story = {
117
+ render: () => (
118
+ <div className="flex flex-col gap-4">
119
+ <div className="flex gap-4 items-center">
120
+ <Button variant="default">Default</Button>
121
+ <Button variant="primary">Primary</Button>
122
+ <Button variant="outline">Outline</Button>
123
+ <Button variant="secondary">Secondary</Button>
124
+ <Button variant="ghost">Ghost</Button>
125
+ <Button variant="destructive">Destructive</Button>
126
+ <Button variant="link">Link</Button>
127
+ </div>
128
+ <div className="flex gap-4 items-center">
129
+ <Button size="sm">Small</Button>
130
+ <Button size="default">Default</Button>
131
+ <Button size="lg">Large</Button>
132
+ <Button size="icon"><Plus weight="bold" /></Button>
133
+ </div>
134
+ </div>
135
+ ),
136
+ }
@@ -0,0 +1,63 @@
1
+ 'use client'
2
+
3
+ import * as React from 'react'
4
+ import { Slot } from '@radix-ui/react-slot'
5
+ import { cva, type VariantProps } from 'class-variance-authority'
6
+
7
+ import { cn } from '../lib/utils'
8
+
9
+ const buttonVariants = cva(
10
+ 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-sm font-semibold ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer',
11
+ {
12
+ variants: {
13
+ variant: {
14
+ default:
15
+ 'bg-[var(--black)] text-white border-2 border-[var(--black)] hover:bg-gray-800 hover:border-gray-800 active:scale-95',
16
+ primary:
17
+ 'bg-[var(--cyan)] text-[var(--black)] border-2 border-[var(--cyan)] hover:bg-[var(--cyan-dark)] hover:border-[var(--cyan-dark)] active:scale-95',
18
+ destructive:
19
+ 'bg-red-600 text-white border-2 border-red-600 hover:bg-red-700 hover:border-red-700 active:scale-95',
20
+ outline:
21
+ 'border-2 border-gray-300 bg-transparent hover:bg-gray-100 active:scale-95',
22
+ secondary:
23
+ 'bg-gray-100 text-[var(--black)] border-2 border-gray-100 hover:bg-gray-200 hover:border-gray-200 active:scale-95',
24
+ ghost:
25
+ 'hover:bg-gray-100 border-2 border-transparent',
26
+ link:
27
+ 'text-[var(--cyan)] underline-offset-4 hover:underline',
28
+ },
29
+ size: {
30
+ default: 'h-10 px-6 py-2',
31
+ sm: 'h-9 px-4 text-xs',
32
+ lg: 'h-12 px-8 text-base',
33
+ icon: 'h-10 w-10',
34
+ },
35
+ },
36
+ defaultVariants: {
37
+ variant: 'default',
38
+ size: 'default',
39
+ },
40
+ }
41
+ )
42
+
43
+ export interface ButtonProps
44
+ extends React.ButtonHTMLAttributes<HTMLButtonElement>,
45
+ VariantProps<typeof buttonVariants> {
46
+ asChild?: boolean
47
+ }
48
+
49
+ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
50
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
51
+ const Comp = asChild ? Slot : 'button'
52
+ return (
53
+ <Comp
54
+ className={cn(buttonVariants({ variant, size, className }))}
55
+ ref={ref}
56
+ {...props}
57
+ />
58
+ )
59
+ }
60
+ )
61
+ Button.displayName = 'Button'
62
+
63
+ export { Button, buttonVariants }
@@ -0,0 +1,107 @@
1
+ import type { Meta, StoryObj } from '@storybook/react'
2
+ import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from './card'
3
+ import { Button } from './button'
4
+ import { Badge } from './badge'
5
+
6
+ const meta: Meta<typeof Card> = {
7
+ title: 'Components/Card',
8
+ component: Card,
9
+ tags: ['autodocs'],
10
+ }
11
+
12
+ export default meta
13
+ type Story = StoryObj<typeof Card>
14
+
15
+ export const Default: Story = {
16
+ render: () => (
17
+ <Card className="w-[350px]">
18
+ <CardHeader>
19
+ <CardTitle>Card Title</CardTitle>
20
+ <CardDescription>Card description goes here.</CardDescription>
21
+ </CardHeader>
22
+ <CardContent>
23
+ <p className="text-sm text-gray-600">
24
+ This is the card content area where you can add any content.
25
+ </p>
26
+ </CardContent>
27
+ </Card>
28
+ ),
29
+ }
30
+
31
+ export const WithFooter: Story = {
32
+ render: () => (
33
+ <Card className="w-[350px]">
34
+ <CardHeader>
35
+ <CardTitle>Create Agent</CardTitle>
36
+ <CardDescription>Deploy a new AI agent for your workflow.</CardDescription>
37
+ </CardHeader>
38
+ <CardContent>
39
+ <p className="text-sm text-gray-600">
40
+ Configure your agent settings and connect it to your tools.
41
+ </p>
42
+ </CardContent>
43
+ <CardFooter className="gap-2">
44
+ <Button variant="outline" size="sm">Cancel</Button>
45
+ <Button size="sm">Create</Button>
46
+ </CardFooter>
47
+ </Card>
48
+ ),
49
+ }
50
+
51
+ export const WithBadge: Story = {
52
+ render: () => (
53
+ <Card className="w-[350px]">
54
+ <CardHeader>
55
+ <div className="flex items-start justify-between">
56
+ <div className="space-y-1">
57
+ <CardTitle>Compliance Agent</CardTitle>
58
+ <CardDescription>KYC & Document Review</CardDescription>
59
+ </div>
60
+ <Badge variant="primary" pulse>Active</Badge>
61
+ </div>
62
+ </CardHeader>
63
+ <CardContent>
64
+ <div className="space-y-2 text-sm text-gray-600">
65
+ <div>Last run: 5 minutes ago</div>
66
+ <div>Items processed: 1,247</div>
67
+ </div>
68
+ </CardContent>
69
+ </Card>
70
+ ),
71
+ }
72
+
73
+ export const Compact: Story = {
74
+ render: () => (
75
+ <Card className="w-[250px]">
76
+ <CardContent className="p-4">
77
+ <div className="text-2xl font-bold text-[var(--black)]">1,247</div>
78
+ <div className="text-xs text-gray-500 uppercase font-medium">Docs Reviewed</div>
79
+ </CardContent>
80
+ </Card>
81
+ ),
82
+ }
83
+
84
+ export const Grid: Story = {
85
+ render: () => (
86
+ <div className="grid grid-cols-3 gap-4">
87
+ <Card>
88
+ <CardContent className="p-4 text-center">
89
+ <div className="text-2xl font-bold text-[var(--black)]">24</div>
90
+ <div className="text-xs text-gray-500">Active Agents</div>
91
+ </CardContent>
92
+ </Card>
93
+ <Card>
94
+ <CardContent className="p-4 text-center">
95
+ <div className="text-2xl font-bold text-[var(--cyan)]">99.8%</div>
96
+ <div className="text-xs text-gray-500">Accuracy</div>
97
+ </CardContent>
98
+ </Card>
99
+ <Card>
100
+ <CardContent className="p-4 text-center">
101
+ <div className="text-2xl font-bold text-[var(--black)]">12,847</div>
102
+ <div className="text-xs text-gray-500">Tasks Completed</div>
103
+ </CardContent>
104
+ </Card>
105
+ </div>
106
+ ),
107
+ }