@matheusrizzati/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.
- package/dist/index.cjs +801 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +142 -0
- package/dist/index.d.ts +142 -0
- package/dist/index.js +735 -0
- package/dist/index.js.map +1 -0
- package/dist/tokens.css +58 -0
- package/dist/tokens.css.map +1 -0
- package/dist/tokens.d.cts +2 -0
- package/dist/tokens.d.ts +2 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/cn.ts","../src/components/button/button.styles.ts","../src/components/button/button.tsx","../src/components/input/input.styles.ts","../src/components/input/input.tsx","../src/components/card/card.styles.ts","../src/components/card/card.tsx","../src/components/modal/modal.styles.ts","../src/components/modal/modal.tsx","../src/components/dropdown/dropdown.styles.ts","../src/components/dropdown/dropdown.tsx","../src/components/badge/badge.styles.ts","../src/components/badge/badge.tsx","../src/components/tabs/tabs.styles.ts","../src/components/tabs/tabs.tsx","../src/components/table/table.styles.ts","../src/components/table/table.tsx","../src/components/sidebar/sidebar.styles.ts","../src/components/sidebar/sidebar.tsx"],"names":["twMerge","clsx","cva","jsxs","jsx","forwardRef","Dialog","DropdownMenu","createContext","useContext","useState","useCallback"],"mappings":"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","file":"index.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\n/**\r\n * Merge class names with Tailwind conflict resolution.\r\n * Combines clsx conditional logic with tailwind-merge deduplication.\r\n */\r\nexport function cn(...inputs: ClassValue[]): string {\r\n return twMerge(clsx(inputs));\r\n}\r\n","import { cva } from \"class-variance-authority\";\r\n\r\nexport const buttonVariants = cva(\r\n [\r\n \"inline-flex items-center justify-center gap-2\",\r\n \"font-medium whitespace-nowrap select-none\",\r\n \"transition-all duration-[var(--transition-fast)]\",\r\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring-color)] focus-visible:ring-offset-[var(--ring-offset)]\",\r\n \"disabled:pointer-events-none disabled:opacity-50\",\r\n \"active:scale-[0.97]\",\r\n \"cursor-pointer\",\r\n ],\r\n {\r\n variants: {\r\n variant: {\r\n primary: [\r\n \"bg-[var(--color-primary)] text-[var(--color-primary-foreground)]\",\r\n \"hover:bg-[var(--color-primary-hover)]\",\r\n \"shadow-[var(--shadow-sm)]\",\r\n ],\r\n secondary: [\r\n \"bg-[var(--color-surface)] text-[var(--color-text-primary)]\",\r\n \"border border-[var(--color-border)]\",\r\n \"hover:bg-[var(--color-surface-hover)] hover:border-[var(--color-border-hover)]\",\r\n ],\r\n ghost: [\r\n \"text-[var(--color-text-secondary)]\",\r\n \"hover:bg-[var(--color-surface)] hover:text-[var(--color-text-primary)]\",\r\n ],\r\n danger: [\r\n \"bg-[var(--color-danger)] text-white\",\r\n \"hover:brightness-110\",\r\n \"shadow-[var(--shadow-sm)]\",\r\n ],\r\n },\r\n size: {\r\n sm: \"h-8 px-3 text-[var(--text-xs)] rounded-[var(--radius-sm)]\",\r\n md: \"h-9 px-4 text-[var(--text-sm)] rounded-[var(--radius)]\",\r\n lg: \"h-11 px-6 text-[var(--text-base)] rounded-[var(--radius-md)]\",\r\n icon: \"h-9 w-9 rounded-[var(--radius)]\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"primary\",\r\n size: \"md\",\r\n },\r\n }\r\n);\r\n","import React, { forwardRef, type ButtonHTMLAttributes } from \"react\";\r\nimport type { VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport { buttonVariants } from \"./button.styles\";\r\n\r\nexport interface ButtonProps\r\n extends ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n /** Show a loading spinner and disable the button */\r\n loading?: boolean;\r\n}\r\n\r\nconst Spinner = () => (\r\n <svg\r\n className=\"animate-spin h-4 w-4\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <circle\r\n className=\"opacity-25\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"4\"\r\n />\r\n <path\r\n className=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ className, variant, size, loading, disabled, children, ...props }, ref) => {\r\n return (\r\n <button\r\n ref={ref}\r\n className={cn(buttonVariants({ variant, size }), className)}\r\n disabled={disabled || loading}\r\n {...props}\r\n >\r\n {loading && <Spinner />}\r\n {children}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nButton.displayName = \"Button\";\r\n","import { cva } from \"class-variance-authority\";\r\n\r\nexport const inputVariants = cva(\r\n [\r\n \"w-full bg-[var(--color-surface)] text-[var(--color-text-primary)]\",\r\n \"border border-[var(--color-border)]\",\r\n \"placeholder:text-[var(--color-text-muted)]\",\r\n \"transition-all duration-[var(--transition-fast)]\",\r\n \"focus:outline-none focus:ring-2 focus:ring-[var(--ring-color)] focus:border-[var(--color-primary)]\",\r\n \"hover:border-[var(--color-border-hover)]\",\r\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\r\n \"font-[var(--font-sans)]\",\r\n ],\r\n {\r\n variants: {\r\n inputSize: {\r\n sm: \"h-8 px-3 text-[var(--text-xs)] rounded-[var(--radius-sm)]\",\r\n md: \"h-9 px-3 text-[var(--text-sm)] rounded-[var(--radius)]\",\r\n lg: \"h-11 px-4 text-[var(--text-base)] rounded-[var(--radius-md)]\",\r\n },\r\n state: {\r\n default: \"\",\r\n error: \"border-[var(--color-danger)] focus:ring-[var(--color-danger)]/30\",\r\n },\r\n },\r\n defaultVariants: {\r\n inputSize: \"md\",\r\n state: \"default\",\r\n },\r\n }\r\n);\r\n\r\nexport const labelStyles =\r\n \"block text-[var(--text-sm)] font-medium text-[var(--color-text-secondary)] mb-1.5\";\r\n\r\nexport const helperStyles =\r\n \"mt-1.5 text-[var(--text-xs)] text-[var(--color-text-muted)]\";\r\n\r\nexport const errorStyles =\r\n \"mt-1.5 text-[var(--text-xs)] text-[var(--color-danger)]\";\r\n","import React, { forwardRef, type InputHTMLAttributes } from \"react\";\r\nimport type { VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport { inputVariants, labelStyles, helperStyles, errorStyles } from \"./input.styles\";\r\n\r\nexport interface InputProps\r\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\">,\r\n VariantProps<typeof inputVariants> {\r\n /** Label text displayed above the input */\r\n label?: string;\r\n /** Helper text displayed below the input */\r\n helperText?: string;\r\n /** Error message — also sets error styling */\r\n error?: string;\r\n /** Content rendered at the start of the input */\r\n startIcon?: React.ReactNode;\r\n /** Content rendered at the end of the input */\r\n endIcon?: React.ReactNode;\r\n}\r\n\r\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\r\n (\r\n {\r\n className,\r\n inputSize,\r\n state,\r\n label,\r\n helperText,\r\n error,\r\n startIcon,\r\n endIcon,\r\n id,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const inputId = id || (label ? label.toLowerCase().replace(/\\s+/g, \"-\") : undefined);\r\n const effectiveState = error ? \"error\" : state;\r\n\r\n return (\r\n <div className=\"w-full\">\r\n {label && (\r\n <label htmlFor={inputId} className={labelStyles}>\r\n {label}\r\n </label>\r\n )}\r\n <div className=\"relative\">\r\n {startIcon && (\r\n <div className=\"absolute left-3 top-1/2 -translate-y-1/2 text-[var(--color-text-muted)]\">\r\n {startIcon}\r\n </div>\r\n )}\r\n <input\r\n ref={ref}\r\n id={inputId}\r\n className={cn(\r\n inputVariants({ inputSize, state: effectiveState }),\r\n startIcon && \"pl-9\",\r\n endIcon && \"pr-9\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n {endIcon && (\r\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--color-text-muted)]\">\r\n {endIcon}\r\n </div>\r\n )}\r\n </div>\r\n {error && <p className={errorStyles}>{error}</p>}\r\n {!error && helperText && <p className={helperStyles}>{helperText}</p>}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nInput.displayName = \"Input\";\r\n","import { cva } from \"class-variance-authority\";\r\n\r\nexport const cardVariants = cva(\r\n [\r\n \"rounded-[var(--radius-lg)]\",\r\n \"transition-all duration-[var(--transition-base)]\",\r\n ],\r\n {\r\n variants: {\r\n variant: {\r\n elevated: [\r\n \"bg-[var(--color-surface)] border border-[var(--color-border)]\",\r\n \"shadow-[var(--shadow-md)]\",\r\n ],\r\n outlined: [\r\n \"bg-transparent border border-[var(--color-border)]\",\r\n ],\r\n ghost: [\r\n \"bg-[var(--color-surface)]/50\",\r\n ],\r\n },\r\n hoverable: {\r\n true: \"hover:border-[var(--color-border-hover)] hover:shadow-[var(--shadow-lg)] cursor-pointer\",\r\n false: \"\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"elevated\",\r\n hoverable: false,\r\n },\r\n }\r\n);\r\n\r\nexport const cardHeaderStyles =\r\n \"px-[var(--space-lg)] pt-[var(--space-lg)] pb-[var(--space-sm)]\";\r\n\r\nexport const cardBodyStyles =\r\n \"px-[var(--space-lg)] py-[var(--space-md)]\";\r\n\r\nexport const cardFooterStyles =\r\n \"px-[var(--space-lg)] pt-[var(--space-sm)] pb-[var(--space-lg)] border-t border-[var(--color-border)]\";\r\n","import React, { forwardRef, type HTMLAttributes } from \"react\";\r\nimport type { VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport {\r\n cardVariants,\r\n cardHeaderStyles,\r\n cardBodyStyles,\r\n cardFooterStyles,\r\n} from \"./card.styles\";\r\n\r\nexport interface CardProps\r\n extends HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof cardVariants> { }\r\n\r\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\r\n ({ className, variant, hoverable, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(cardVariants({ variant, hoverable }), className)}\r\n {...props}\r\n />\r\n )\r\n);\r\nCard.displayName = \"Card\";\r\n\r\nexport const CardHeader = forwardRef<\r\n HTMLDivElement,\r\n HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn(cardHeaderStyles, className)} {...props} />\r\n));\r\nCardHeader.displayName = \"CardHeader\";\r\n\r\nexport const CardBody = forwardRef<\r\n HTMLDivElement,\r\n HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn(cardBodyStyles, className)} {...props} />\r\n));\r\nCardBody.displayName = \"CardBody\";\r\n\r\nexport const CardFooter = forwardRef<\r\n HTMLDivElement,\r\n HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn(cardFooterStyles, className)} {...props} />\r\n));\r\nCardFooter.displayName = \"CardFooter\";\r\n","export const modalOverlayStyles = [\r\n \"fixed inset-0 z-50 bg-black/60 backdrop-blur-sm\",\r\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0\",\r\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0\",\r\n].join(\" \");\r\n\r\nexport const modalContentStyles = [\r\n \"fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2\",\r\n \"w-full max-w-lg\",\r\n \"bg-[var(--color-surface)] border border-[var(--color-border)]\",\r\n \"rounded-[var(--radius-xl)] shadow-[var(--shadow-lg)]\",\r\n \"p-[var(--space-lg)]\",\r\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\",\r\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]\",\r\n \"duration-200\",\r\n].join(\" \");\r\n\r\nexport const modalTitleStyles =\r\n \"text-[var(--text-lg)] font-semibold text-[var(--color-text-primary)]\";\r\n\r\nexport const modalDescriptionStyles =\r\n \"text-[var(--text-sm)] text-[var(--color-text-secondary)] mt-2\";\r\n\r\nexport const modalCloseStyles = [\r\n \"absolute right-4 top-4\",\r\n \"rounded-[var(--radius-sm)] p-1\",\r\n \"text-[var(--color-text-muted)] hover:text-[var(--color-text-primary)]\",\r\n \"hover:bg-[var(--color-surface-hover)]\",\r\n \"transition-colors duration-[var(--transition-fast)]\",\r\n \"focus:outline-none focus:ring-2 focus:ring-[var(--ring-color)]\",\r\n].join(\" \");\r\n","import React, { forwardRef, type HTMLAttributes } from \"react\";\r\nimport * as Dialog from \"@radix-ui/react-dialog\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport {\r\n modalOverlayStyles,\r\n modalContentStyles,\r\n modalTitleStyles,\r\n modalDescriptionStyles,\r\n modalCloseStyles,\r\n} from \"./modal.styles\";\r\n\r\n/* ── Root ── */\r\nexport const Modal = Dialog.Root;\r\nexport const ModalTrigger = Dialog.Trigger;\r\n\r\n/* ── Overlay ── */\r\nconst ModalOverlay = forwardRef<\r\n React.ElementRef<typeof Dialog.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof Dialog.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <Dialog.Overlay ref={ref} className={cn(modalOverlayStyles, className)} {...props} />\r\n));\r\nModalOverlay.displayName = \"ModalOverlay\";\r\n\r\n/* ── Content ── */\r\nexport interface ModalContentProps\r\n extends React.ComponentPropsWithoutRef<typeof Dialog.Content> {\r\n /** Show a close (X) button in the top right */\r\n showClose?: boolean;\r\n}\r\n\r\nexport const ModalContent = forwardRef<\r\n React.ElementRef<typeof Dialog.Content>,\r\n ModalContentProps\r\n>(({ className, children, showClose = true, ...props }, ref) => (\r\n <Dialog.Portal>\r\n <ModalOverlay />\r\n <Dialog.Content ref={ref} className={cn(modalContentStyles, className)} {...props}>\r\n {children}\r\n {showClose && (\r\n <Dialog.Close className={modalCloseStyles}>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\r\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\r\n </svg>\r\n <span className=\"sr-only\">Close</span>\r\n </Dialog.Close>\r\n )}\r\n </Dialog.Content>\r\n </Dialog.Portal>\r\n));\r\nModalContent.displayName = \"ModalContent\";\r\n\r\n/* ── Title ── */\r\nexport const ModalTitle = forwardRef<\r\n React.ElementRef<typeof Dialog.Title>,\r\n React.ComponentPropsWithoutRef<typeof Dialog.Title>\r\n>(({ className, ...props }, ref) => (\r\n <Dialog.Title ref={ref} className={cn(modalTitleStyles, className)} {...props} />\r\n));\r\nModalTitle.displayName = \"ModalTitle\";\r\n\r\n/* ── Description ── */\r\nexport const ModalDescription = forwardRef<\r\n React.ElementRef<typeof Dialog.Description>,\r\n React.ComponentPropsWithoutRef<typeof Dialog.Description>\r\n>(({ className, ...props }, ref) => (\r\n <Dialog.Description\r\n ref={ref}\r\n className={cn(modalDescriptionStyles, className)}\r\n {...props}\r\n />\r\n));\r\nModalDescription.displayName = \"ModalDescription\";\r\n\r\n/* ── Footer ── */\r\nexport const ModalFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"flex justify-end gap-[var(--space-sm)] mt-[var(--space-lg)]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n);\r\nModalFooter.displayName = \"ModalFooter\";\r\n","export const dropdownContentStyles = [\r\n \"z-50 min-w-[180px] overflow-hidden\",\r\n \"bg-[var(--color-surface)] border border-[var(--color-border)]\",\r\n \"rounded-[var(--radius-md)] shadow-[var(--shadow-lg)]\",\r\n \"p-1\",\r\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\r\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\r\n \"data-[side=top]:slide-in-from-bottom-2\",\r\n \"data-[side=bottom]:slide-in-from-top-2\",\r\n \"data-[side=left]:slide-in-from-right-2\",\r\n \"data-[side=right]:slide-in-from-left-2\",\r\n].join(\" \");\r\n\r\nexport const dropdownItemStyles = [\r\n \"relative flex items-center gap-2\",\r\n \"rounded-[var(--radius-sm)] px-2 py-1.5\",\r\n \"text-[var(--text-sm)] text-[var(--color-text-secondary)]\",\r\n \"cursor-pointer select-none outline-none\",\r\n \"transition-colors duration-[var(--transition-fast)]\",\r\n \"data-[highlighted]:bg-[var(--color-surface-hover)] data-[highlighted]:text-[var(--color-text-primary)]\",\r\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n].join(\" \");\r\n\r\nexport const dropdownSeparatorStyles =\r\n \"my-1 h-px bg-[var(--color-border)]\";\r\n\r\nexport const dropdownLabelStyles =\r\n \"px-2 py-1.5 text-[var(--text-xs)] font-semibold text-[var(--color-text-muted)]\";\r\n","import React, { forwardRef } from \"react\";\r\nimport * as DropdownMenu from \"@radix-ui/react-dropdown-menu\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport {\r\n dropdownContentStyles,\r\n dropdownItemStyles,\r\n dropdownSeparatorStyles,\r\n dropdownLabelStyles,\r\n} from \"./dropdown.styles\";\r\n\r\n/* ── Root & Trigger ── */\r\nexport const Dropdown = DropdownMenu.Root;\r\nexport const DropdownTrigger = DropdownMenu.Trigger;\r\nexport const DropdownGroup = DropdownMenu.Group;\r\n\r\n/* ── Content ── */\r\nexport const DropdownContent = forwardRef<\r\n React.ElementRef<typeof DropdownMenu.Content>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.Content\r\n ref={ref}\r\n sideOffset={sideOffset}\r\n className={cn(dropdownContentStyles, className)}\r\n {...props}\r\n />\r\n </DropdownMenu.Portal>\r\n));\r\nDropdownContent.displayName = \"DropdownContent\";\r\n\r\n/* ── Item ── */\r\nexport const DropdownItem = forwardRef<\r\n React.ElementRef<typeof DropdownMenu.Item>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Item>\r\n>(({ className, ...props }, ref) => (\r\n <DropdownMenu.Item\r\n ref={ref}\r\n className={cn(dropdownItemStyles, className)}\r\n {...props}\r\n />\r\n));\r\nDropdownItem.displayName = \"DropdownItem\";\r\n\r\n/* ── Separator ── */\r\nexport const DropdownSeparator = forwardRef<\r\n React.ElementRef<typeof DropdownMenu.Separator>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <DropdownMenu.Separator\r\n ref={ref}\r\n className={cn(dropdownSeparatorStyles, className)}\r\n {...props}\r\n />\r\n));\r\nDropdownSeparator.displayName = \"DropdownSeparator\";\r\n\r\n/* ── Label ── */\r\nexport const DropdownLabel = forwardRef<\r\n React.ElementRef<typeof DropdownMenu.Label>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenu.Label>\r\n>(({ className, ...props }, ref) => (\r\n <DropdownMenu.Label\r\n ref={ref}\r\n className={cn(dropdownLabelStyles, className)}\r\n {...props}\r\n />\r\n));\r\nDropdownLabel.displayName = \"DropdownLabel\";\r\n","import { cva } from \"class-variance-authority\";\r\n\r\nexport const badgeVariants = cva(\r\n [\r\n \"inline-flex items-center font-medium\",\r\n \"rounded-full whitespace-nowrap\",\r\n \"transition-colors duration-[var(--transition-fast)]\",\r\n ],\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-[var(--color-surface-raised)] text-[var(--color-text-secondary)] border border-[var(--color-border)]\",\r\n primary: \"bg-[var(--color-primary)]/15 text-[var(--color-primary-hover)] border border-[var(--color-primary)]/25\",\r\n success: \"bg-[var(--color-success)]/15 text-[var(--color-success)] border border-[var(--color-success)]/25\",\r\n warning: \"bg-[var(--color-warning)]/15 text-[var(--color-warning)] border border-[var(--color-warning)]/25\",\r\n danger: \"bg-[var(--color-danger)]/15 text-[var(--color-danger)] border border-[var(--color-danger)]/25\",\r\n info: \"bg-[var(--color-info)]/15 text-[var(--color-info)] border border-[var(--color-info)]/25\",\r\n },\r\n size: {\r\n sm: \"px-2 py-0.5 text-[10px]\",\r\n md: \"px-2.5 py-0.5 text-[var(--text-xs)]\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"md\",\r\n },\r\n }\r\n);\r\n","import React, { forwardRef, type HTMLAttributes } from \"react\";\r\nimport type { VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport { badgeVariants } from \"./badge.styles\";\r\n\r\nexport interface BadgeProps\r\n extends HTMLAttributes<HTMLSpanElement>,\r\n VariantProps<typeof badgeVariants> { }\r\n\r\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\r\n ({ className, variant, size, ...props }, ref) => (\r\n <span\r\n ref={ref}\r\n className={cn(badgeVariants({ variant, size }), className)}\r\n {...props}\r\n />\r\n )\r\n);\r\n\r\nBadge.displayName = \"Badge\";\r\n","export const tabsListStyles = [\r\n \"inline-flex items-center gap-1\",\r\n \"bg-[var(--color-bg-secondary)] p-1\",\r\n \"rounded-[var(--radius-md)]\",\r\n \"border border-[var(--color-border)]\",\r\n].join(\" \");\r\n\r\nexport const tabsTriggerStyles = [\r\n \"relative inline-flex items-center justify-center\",\r\n \"px-3 py-1.5\",\r\n \"text-[var(--text-sm)] font-medium\",\r\n \"text-[var(--color-text-muted)]\",\r\n \"rounded-[var(--radius)]\",\r\n \"transition-all duration-[var(--transition-fast)]\",\r\n \"cursor-pointer select-none\",\r\n \"hover:text-[var(--color-text-secondary)]\",\r\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring-color)]\",\r\n].join(\" \");\r\n\r\nexport const tabsTriggerActiveStyles = [\r\n \"bg-[var(--color-surface)] text-[var(--color-text-primary)]\",\r\n \"shadow-[var(--shadow-sm)]\",\r\n].join(\" \");\r\n\r\nexport const tabsContentStyles = [\r\n \"mt-[var(--space-md)]\",\r\n \"focus-visible:outline-none\",\r\n].join(\" \");\r\n","import React, {\r\n createContext,\r\n forwardRef,\r\n useCallback,\r\n useContext,\r\n useState,\r\n type HTMLAttributes,\r\n type ReactNode,\r\n} from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport {\r\n tabsListStyles,\r\n tabsTriggerStyles,\r\n tabsTriggerActiveStyles,\r\n tabsContentStyles,\r\n} from \"./tabs.styles\";\r\n\r\n/* ── Context ── */\r\ninterface TabsContextValue {\r\n value: string;\r\n onValueChange: (value: string) => void;\r\n}\r\n\r\nconst TabsContext = createContext<TabsContextValue | null>(null);\r\n\r\nfunction useTabsContext() {\r\n const ctx = useContext(TabsContext);\r\n if (!ctx) throw new Error(\"Tabs compound components must be used within <Tabs>\");\r\n return ctx;\r\n}\r\n\r\n/* ── Root ── */\r\nexport interface TabsProps extends HTMLAttributes<HTMLDivElement> {\r\n /** Controlled value */\r\n value?: string;\r\n /** Default value (uncontrolled) */\r\n defaultValue?: string;\r\n /** Callback when active tab changes */\r\n onValueChange?: (value: string) => void;\r\n}\r\n\r\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(\r\n ({ value: controlledValue, defaultValue = \"\", onValueChange, className, children, ...props }, ref) => {\r\n const [internal, setInternal] = useState(defaultValue);\r\n const value = controlledValue ?? internal;\r\n\r\n const handleChange = useCallback(\r\n (v: string) => {\r\n setInternal(v);\r\n onValueChange?.(v);\r\n },\r\n [onValueChange]\r\n );\r\n\r\n return (\r\n <TabsContext.Provider value={{ value, onValueChange: handleChange }}>\r\n <div ref={ref} className={className} {...props}>\r\n {children}\r\n </div>\r\n </TabsContext.Provider>\r\n );\r\n }\r\n);\r\nTabs.displayName = \"Tabs\";\r\n\r\n/* ── List ── */\r\nexport const TabsList = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} role=\"tablist\" className={cn(tabsListStyles, className)} {...props} />\r\n )\r\n);\r\nTabsList.displayName = \"TabsList\";\r\n\r\n/* ── Trigger ── */\r\nexport interface TabsTriggerProps extends HTMLAttributes<HTMLButtonElement> {\r\n value: string;\r\n}\r\n\r\nexport const TabsTrigger = forwardRef<HTMLButtonElement, TabsTriggerProps>(\r\n ({ value, className, ...props }, ref) => {\r\n const ctx = useTabsContext();\r\n const isActive = ctx.value === value;\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n role=\"tab\"\r\n type=\"button\"\r\n aria-selected={isActive}\r\n data-state={isActive ? \"active\" : \"inactive\"}\r\n className={cn(\r\n tabsTriggerStyles,\r\n isActive && tabsTriggerActiveStyles,\r\n className\r\n )}\r\n onClick={() => ctx.onValueChange(value)}\r\n {...props}\r\n />\r\n );\r\n }\r\n);\r\nTabsTrigger.displayName = \"TabsTrigger\";\r\n\r\n/* ── Content ── */\r\nexport interface TabsContentProps extends HTMLAttributes<HTMLDivElement> {\r\n value: string;\r\n}\r\n\r\nexport const TabsContent = forwardRef<HTMLDivElement, TabsContentProps>(\r\n ({ value, className, children, ...props }, ref) => {\r\n const ctx = useTabsContext();\r\n if (ctx.value !== value) return null;\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"tabpanel\"\r\n data-state=\"active\"\r\n className={cn(tabsContentStyles, className)}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nTabsContent.displayName = \"TabsContent\";\r\n","export const tableWrapperStyles =\r\n \"w-full overflow-auto rounded-[var(--radius-lg)] border border-[var(--color-border)]\";\r\n\r\nexport const tableStyles =\r\n \"w-full caption-bottom text-[var(--text-sm)] border-collapse\";\r\n\r\nexport const theadStyles =\r\n \"bg-[var(--color-bg-secondary)]\";\r\n\r\nexport const tbodyStyles =\r\n \"[&_tr:last-child]:border-0\";\r\n\r\nexport const trStyles = [\r\n \"border-b border-[var(--color-border)]\",\r\n \"transition-colors duration-[var(--transition-fast)]\",\r\n \"hover:bg-[var(--color-surface-hover)]/50\",\r\n \"data-[state=selected]:bg-[var(--color-primary)]/5\",\r\n].join(\" \");\r\n\r\nexport const thStyles = [\r\n \"h-10 px-4 text-left align-middle\",\r\n \"font-medium text-[var(--color-text-muted)] text-[var(--text-xs)] uppercase tracking-wider\",\r\n \"[&:has([role=checkbox])]:pr-0\",\r\n].join(\" \");\r\n\r\nexport const tdStyles = [\r\n \"p-4 align-middle text-[var(--color-text-secondary)]\",\r\n \"[&:has([role=checkbox])]:pr-0\",\r\n].join(\" \");\r\n","import React, { forwardRef, type HTMLAttributes, type TdHTMLAttributes, type ThHTMLAttributes } from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport {\r\n tableWrapperStyles,\r\n tableStyles,\r\n theadStyles,\r\n tbodyStyles,\r\n trStyles,\r\n thStyles,\r\n tdStyles,\r\n} from \"./table.styles\";\r\n\r\n/* ── Wrapper ── */\r\nexport const TableWrapper = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn(tableWrapperStyles, className)} {...props} />\r\n )\r\n);\r\nTableWrapper.displayName = \"TableWrapper\";\r\n\r\n/* ── Table ── */\r\nexport const Table = forwardRef<HTMLTableElement, HTMLAttributes<HTMLTableElement>>(\r\n ({ className, ...props }, ref) => (\r\n <TableWrapper>\r\n <table ref={ref} className={cn(tableStyles, className)} {...props} />\r\n </TableWrapper>\r\n )\r\n);\r\nTable.displayName = \"Table\";\r\n\r\n/* ── Thead ── */\r\nexport const Thead = forwardRef<HTMLTableSectionElement, HTMLAttributes<HTMLTableSectionElement>>(\r\n ({ className, ...props }, ref) => (\r\n <thead ref={ref} className={cn(theadStyles, className)} {...props} />\r\n )\r\n);\r\nThead.displayName = \"Thead\";\r\n\r\n/* ── Tbody ── */\r\nexport const Tbody = forwardRef<HTMLTableSectionElement, HTMLAttributes<HTMLTableSectionElement>>(\r\n ({ className, ...props }, ref) => (\r\n <tbody ref={ref} className={cn(tbodyStyles, className)} {...props} />\r\n )\r\n);\r\nTbody.displayName = \"Tbody\";\r\n\r\n/* ── Tr ── */\r\nexport const Tr = forwardRef<HTMLTableRowElement, HTMLAttributes<HTMLTableRowElement>>(\r\n ({ className, ...props }, ref) => (\r\n <tr ref={ref} className={cn(trStyles, className)} {...props} />\r\n )\r\n);\r\nTr.displayName = \"Tr\";\r\n\r\n/* ── Th ── */\r\nexport const Th = forwardRef<HTMLTableCellElement, ThHTMLAttributes<HTMLTableCellElement>>(\r\n ({ className, ...props }, ref) => (\r\n <th ref={ref} className={cn(thStyles, className)} {...props} />\r\n )\r\n);\r\nTh.displayName = \"Th\";\r\n\r\n/* ── Td ── */\r\nexport const Td = forwardRef<HTMLTableCellElement, TdHTMLAttributes<HTMLTableCellElement>>(\r\n ({ className, ...props }, ref) => (\r\n <td ref={ref} className={cn(tdStyles, className)} {...props} />\r\n )\r\n);\r\nTd.displayName = \"Td\";\r\n","export const sidebarStyles = [\r\n \"flex flex-col h-full\",\r\n \"bg-[var(--color-bg-secondary)] border-r border-[var(--color-border)]\",\r\n \"transition-all duration-[var(--transition-slow)]\",\r\n].join(\" \");\r\n\r\nexport const sidebarExpandedStyles = \"w-[260px]\";\r\nexport const sidebarCollapsedStyles = \"w-[68px]\";\r\n\r\nexport const sidebarHeaderStyles = [\r\n \"flex items-center gap-3\",\r\n \"px-[var(--space-md)] h-14\",\r\n \"border-b border-[var(--color-border)]\",\r\n \"shrink-0\",\r\n].join(\" \");\r\n\r\nexport const sidebarContentStyles =\r\n \"flex-1 overflow-y-auto py-[var(--space-sm)] px-[var(--space-sm)]\";\r\n\r\nexport const sidebarFooterStyles = [\r\n \"shrink-0\",\r\n \"px-[var(--space-md)] py-[var(--space-sm)]\",\r\n \"border-t border-[var(--color-border)]\",\r\n].join(\" \");\r\n\r\nexport const sidebarSectionStyles =\r\n \"py-[var(--space-xs)]\";\r\n\r\nexport const sidebarSectionLabelStyles = [\r\n \"px-3 py-1.5 text-[10px] font-semibold uppercase tracking-wider\",\r\n \"text-[var(--color-text-muted)]\",\r\n].join(\" \");\r\n\r\nexport const sidebarItemStyles = [\r\n \"flex items-center gap-3\",\r\n \"w-full px-3 py-2\",\r\n \"text-[var(--text-sm)] text-[var(--color-text-secondary)]\",\r\n \"rounded-[var(--radius)]\",\r\n \"cursor-pointer select-none\",\r\n \"transition-all duration-[var(--transition-fast)]\",\r\n \"hover:bg-[var(--color-surface)] hover:text-[var(--color-text-primary)]\",\r\n].join(\" \");\r\n\r\nexport const sidebarItemActiveStyles = [\r\n \"bg-[var(--color-primary)]/10 text-[var(--color-primary-hover)]\",\r\n \"hover:bg-[var(--color-primary)]/15\",\r\n].join(\" \");\r\n\r\nexport const sidebarToggleStyles = [\r\n \"flex items-center justify-center\",\r\n \"h-7 w-7 rounded-[var(--radius)]\",\r\n \"text-[var(--color-text-muted)]\",\r\n \"hover:bg-[var(--color-surface)] hover:text-[var(--color-text-primary)]\",\r\n \"transition-colors duration-[var(--transition-fast)]\",\r\n \"cursor-pointer\",\r\n].join(\" \");\r\n","import React, {\r\n createContext,\r\n forwardRef,\r\n useCallback,\r\n useContext,\r\n useState,\r\n type HTMLAttributes,\r\n type ReactNode,\r\n} from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport {\r\n sidebarStyles,\r\n sidebarExpandedStyles,\r\n sidebarCollapsedStyles,\r\n sidebarHeaderStyles,\r\n sidebarContentStyles,\r\n sidebarFooterStyles,\r\n sidebarSectionStyles,\r\n sidebarSectionLabelStyles,\r\n sidebarItemStyles,\r\n sidebarItemActiveStyles,\r\n sidebarToggleStyles,\r\n} from \"./sidebar.styles\";\r\n\r\n/* ── Context ── */\r\ninterface SidebarContextValue {\r\n collapsed: boolean;\r\n toggle: () => void;\r\n}\r\n\r\nconst SidebarContext = createContext<SidebarContextValue>({\r\n collapsed: false,\r\n toggle: () => { },\r\n});\r\n\r\nexport function useSidebar() {\r\n return useContext(SidebarContext);\r\n}\r\n\r\n/* ── Root ── */\r\nexport interface SidebarProps extends HTMLAttributes<HTMLElement> {\r\n /** Controlled collapsed state */\r\n collapsed?: boolean;\r\n /** Default collapsed state (uncontrolled) */\r\n defaultCollapsed?: boolean;\r\n /** Callback on toggle */\r\n onCollapsedChange?: (collapsed: boolean) => void;\r\n}\r\n\r\nexport const Sidebar = forwardRef<HTMLElement, SidebarProps>(\r\n (\r\n {\r\n collapsed: controlledCollapsed,\r\n defaultCollapsed = false,\r\n onCollapsedChange,\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [internal, setInternal] = useState(defaultCollapsed);\r\n const collapsed = controlledCollapsed ?? internal;\r\n\r\n const toggle = useCallback(() => {\r\n const next = !collapsed;\r\n setInternal(next);\r\n onCollapsedChange?.(next);\r\n }, [collapsed, onCollapsedChange]);\r\n\r\n return (\r\n <SidebarContext.Provider value={{ collapsed, toggle }}>\r\n <aside\r\n ref={ref}\r\n className={cn(\r\n sidebarStyles,\r\n collapsed ? sidebarCollapsedStyles : sidebarExpandedStyles,\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </aside>\r\n </SidebarContext.Provider>\r\n );\r\n }\r\n);\r\nSidebar.displayName = \"Sidebar\";\r\n\r\n/* ── Header ── */\r\nexport interface SidebarHeaderProps extends HTMLAttributes<HTMLDivElement> {\r\n logo?: ReactNode;\r\n}\r\n\r\nexport const SidebarHeader = forwardRef<HTMLDivElement, SidebarHeaderProps>(\r\n ({ className, logo, children, ...props }, ref) => {\r\n const { collapsed } = useSidebar();\r\n return (\r\n <div ref={ref} className={cn(sidebarHeaderStyles, className)} {...props}>\r\n {logo}\r\n {!collapsed && children}\r\n </div>\r\n );\r\n }\r\n);\r\nSidebarHeader.displayName = \"SidebarHeader\";\r\n\r\n/* ── Content ── */\r\nexport const SidebarContent = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn(sidebarContentStyles, className)} {...props} />\r\n )\r\n);\r\nSidebarContent.displayName = \"SidebarContent\";\r\n\r\n/* ── Footer ── */\r\nexport const SidebarFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\r\n ({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn(sidebarFooterStyles, className)} {...props} />\r\n )\r\n);\r\nSidebarFooter.displayName = \"SidebarFooter\";\r\n\r\n/* ── Section ── */\r\nexport interface SidebarSectionProps extends HTMLAttributes<HTMLDivElement> {\r\n label?: string;\r\n}\r\n\r\nexport const SidebarSection = forwardRef<HTMLDivElement, SidebarSectionProps>(\r\n ({ className, label, children, ...props }, ref) => {\r\n const { collapsed } = useSidebar();\r\n return (\r\n <div ref={ref} className={cn(sidebarSectionStyles, className)} {...props}>\r\n {label && !collapsed && (\r\n <div className={sidebarSectionLabelStyles}>{label}</div>\r\n )}\r\n {children}\r\n </div>\r\n );\r\n }\r\n);\r\nSidebarSection.displayName = \"SidebarSection\";\r\n\r\n/* ── Item ── */\r\nexport interface SidebarItemProps extends HTMLAttributes<HTMLButtonElement> {\r\n icon?: ReactNode;\r\n active?: boolean;\r\n}\r\n\r\nexport const SidebarItem = forwardRef<HTMLButtonElement, SidebarItemProps>(\r\n ({ className, icon, active, children, ...props }, ref) => {\r\n const { collapsed } = useSidebar();\r\n return (\r\n <button\r\n ref={ref}\r\n type=\"button\"\r\n className={cn(\r\n sidebarItemStyles,\r\n active && sidebarItemActiveStyles,\r\n collapsed && \"justify-center px-0\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {icon}\r\n {!collapsed && <span className=\"truncate\">{children}</span>}\r\n </button>\r\n );\r\n }\r\n);\r\nSidebarItem.displayName = \"SidebarItem\";\r\n\r\n/* ── Toggle Button ── */\r\nexport const SidebarToggle = forwardRef<HTMLButtonElement, HTMLAttributes<HTMLButtonElement>>(\r\n ({ className, ...props }, ref) => {\r\n const { collapsed, toggle } = useSidebar();\r\n return (\r\n <button\r\n ref={ref}\r\n type=\"button\"\r\n onClick={toggle}\r\n className={cn(sidebarToggleStyles, className)}\r\n aria-label={collapsed ? \"Expand sidebar\" : \"Collapse sidebar\"}\r\n {...props}\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n className={cn(\"transition-transform\", collapsed && \"rotate-180\")}\r\n >\r\n <polyline points=\"15 18 9 12 15 6\" />\r\n </svg>\r\n </button>\r\n );\r\n }\r\n);\r\nSidebarToggle.displayName = \"SidebarToggle\";\r\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import React, { ButtonHTMLAttributes, InputHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
5
|
+
import * as Dialog from '@radix-ui/react-dialog';
|
|
6
|
+
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Merge class names with Tailwind conflict resolution.
|
|
10
|
+
* Combines clsx conditional logic with tailwind-merge deduplication.
|
|
11
|
+
*/
|
|
12
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
13
|
+
|
|
14
|
+
declare const buttonVariants: (props?: ({
|
|
15
|
+
variant?: "primary" | "secondary" | "ghost" | "danger" | null | undefined;
|
|
16
|
+
size?: "sm" | "md" | "lg" | "icon" | null | undefined;
|
|
17
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
18
|
+
|
|
19
|
+
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
20
|
+
/** Show a loading spinner and disable the button */
|
|
21
|
+
loading?: boolean;
|
|
22
|
+
}
|
|
23
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
|
|
25
|
+
declare const inputVariants: (props?: ({
|
|
26
|
+
inputSize?: "sm" | "md" | "lg" | null | undefined;
|
|
27
|
+
state?: "default" | "error" | null | undefined;
|
|
28
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
29
|
+
|
|
30
|
+
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
|
|
31
|
+
/** Label text displayed above the input */
|
|
32
|
+
label?: string;
|
|
33
|
+
/** Helper text displayed below the input */
|
|
34
|
+
helperText?: string;
|
|
35
|
+
/** Error message — also sets error styling */
|
|
36
|
+
error?: string;
|
|
37
|
+
/** Content rendered at the start of the input */
|
|
38
|
+
startIcon?: React.ReactNode;
|
|
39
|
+
/** Content rendered at the end of the input */
|
|
40
|
+
endIcon?: React.ReactNode;
|
|
41
|
+
}
|
|
42
|
+
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
43
|
+
|
|
44
|
+
declare const cardVariants: (props?: ({
|
|
45
|
+
variant?: "ghost" | "elevated" | "outlined" | null | undefined;
|
|
46
|
+
hoverable?: boolean | null | undefined;
|
|
47
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
48
|
+
|
|
49
|
+
interface CardProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
|
|
50
|
+
}
|
|
51
|
+
declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
|
|
52
|
+
declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
53
|
+
declare const CardBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
54
|
+
declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
55
|
+
|
|
56
|
+
declare const Modal: React.FC<Dialog.DialogProps>;
|
|
57
|
+
declare const ModalTrigger: React.ForwardRefExoticComponent<Dialog.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
58
|
+
interface ModalContentProps extends React.ComponentPropsWithoutRef<typeof Dialog.Content> {
|
|
59
|
+
/** Show a close (X) button in the top right */
|
|
60
|
+
showClose?: boolean;
|
|
61
|
+
}
|
|
62
|
+
declare const ModalContent: React.ForwardRefExoticComponent<ModalContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
63
|
+
declare const ModalTitle: React.ForwardRefExoticComponent<Omit<Dialog.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
64
|
+
declare const ModalDescription: React.ForwardRefExoticComponent<Omit<Dialog.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
65
|
+
declare const ModalFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
66
|
+
|
|
67
|
+
declare const Dropdown: React.FC<DropdownMenu.DropdownMenuProps>;
|
|
68
|
+
declare const DropdownTrigger: React.ForwardRefExoticComponent<DropdownMenu.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
69
|
+
declare const DropdownGroup: React.ForwardRefExoticComponent<DropdownMenu.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
70
|
+
declare const DropdownContent: React.ForwardRefExoticComponent<Omit<DropdownMenu.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
71
|
+
declare const DropdownItem: React.ForwardRefExoticComponent<Omit<DropdownMenu.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
72
|
+
declare const DropdownSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenu.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
73
|
+
declare const DropdownLabel: React.ForwardRefExoticComponent<Omit<DropdownMenu.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
74
|
+
|
|
75
|
+
declare const badgeVariants: (props?: ({
|
|
76
|
+
variant?: "primary" | "danger" | "default" | "success" | "warning" | "info" | null | undefined;
|
|
77
|
+
size?: "sm" | "md" | null | undefined;
|
|
78
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
79
|
+
|
|
80
|
+
interface BadgeProps extends HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
|
|
81
|
+
}
|
|
82
|
+
declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
83
|
+
|
|
84
|
+
interface TabsProps extends HTMLAttributes<HTMLDivElement> {
|
|
85
|
+
/** Controlled value */
|
|
86
|
+
value?: string;
|
|
87
|
+
/** Default value (uncontrolled) */
|
|
88
|
+
defaultValue?: string;
|
|
89
|
+
/** Callback when active tab changes */
|
|
90
|
+
onValueChange?: (value: string) => void;
|
|
91
|
+
}
|
|
92
|
+
declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
|
|
93
|
+
declare const TabsList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
94
|
+
interface TabsTriggerProps extends HTMLAttributes<HTMLButtonElement> {
|
|
95
|
+
value: string;
|
|
96
|
+
}
|
|
97
|
+
declare const TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
98
|
+
interface TabsContentProps extends HTMLAttributes<HTMLDivElement> {
|
|
99
|
+
value: string;
|
|
100
|
+
}
|
|
101
|
+
declare const TabsContent: React.ForwardRefExoticComponent<TabsContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
102
|
+
|
|
103
|
+
declare const TableWrapper: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
104
|
+
declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
|
|
105
|
+
declare const Thead: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
|
|
106
|
+
declare const Tbody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
|
|
107
|
+
declare const Tr: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
|
|
108
|
+
declare const Th: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
|
|
109
|
+
declare const Td: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
|
|
110
|
+
|
|
111
|
+
interface SidebarContextValue {
|
|
112
|
+
collapsed: boolean;
|
|
113
|
+
toggle: () => void;
|
|
114
|
+
}
|
|
115
|
+
declare function useSidebar(): SidebarContextValue;
|
|
116
|
+
interface SidebarProps extends HTMLAttributes<HTMLElement> {
|
|
117
|
+
/** Controlled collapsed state */
|
|
118
|
+
collapsed?: boolean;
|
|
119
|
+
/** Default collapsed state (uncontrolled) */
|
|
120
|
+
defaultCollapsed?: boolean;
|
|
121
|
+
/** Callback on toggle */
|
|
122
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
123
|
+
}
|
|
124
|
+
declare const Sidebar: React.ForwardRefExoticComponent<SidebarProps & React.RefAttributes<HTMLElement>>;
|
|
125
|
+
interface SidebarHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
126
|
+
logo?: ReactNode;
|
|
127
|
+
}
|
|
128
|
+
declare const SidebarHeader: React.ForwardRefExoticComponent<SidebarHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
129
|
+
declare const SidebarContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
130
|
+
declare const SidebarFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
131
|
+
interface SidebarSectionProps extends HTMLAttributes<HTMLDivElement> {
|
|
132
|
+
label?: string;
|
|
133
|
+
}
|
|
134
|
+
declare const SidebarSection: React.ForwardRefExoticComponent<SidebarSectionProps & React.RefAttributes<HTMLDivElement>>;
|
|
135
|
+
interface SidebarItemProps extends HTMLAttributes<HTMLButtonElement> {
|
|
136
|
+
icon?: ReactNode;
|
|
137
|
+
active?: boolean;
|
|
138
|
+
}
|
|
139
|
+
declare const SidebarItem: React.ForwardRefExoticComponent<SidebarItemProps & React.RefAttributes<HTMLButtonElement>>;
|
|
140
|
+
declare const SidebarToggle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
|
|
141
|
+
|
|
142
|
+
export { Badge, type BadgeProps, Button, type ButtonProps, Card, CardBody, CardFooter, CardHeader, type CardProps, Dropdown, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownSeparator, DropdownTrigger, Input, type InputProps, Modal, ModalContent, type ModalContentProps, ModalDescription, ModalFooter, ModalTitle, ModalTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarHeader, type SidebarHeaderProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SidebarToggle, Table, TableWrapper, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsProps, TabsTrigger, type TabsTriggerProps, Tbody, Td, Th, Thead, Tr, badgeVariants, buttonVariants, cardVariants, cn, inputVariants, useSidebar };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import React, { ButtonHTMLAttributes, InputHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
5
|
+
import * as Dialog from '@radix-ui/react-dialog';
|
|
6
|
+
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Merge class names with Tailwind conflict resolution.
|
|
10
|
+
* Combines clsx conditional logic with tailwind-merge deduplication.
|
|
11
|
+
*/
|
|
12
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
13
|
+
|
|
14
|
+
declare const buttonVariants: (props?: ({
|
|
15
|
+
variant?: "primary" | "secondary" | "ghost" | "danger" | null | undefined;
|
|
16
|
+
size?: "sm" | "md" | "lg" | "icon" | null | undefined;
|
|
17
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
18
|
+
|
|
19
|
+
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
20
|
+
/** Show a loading spinner and disable the button */
|
|
21
|
+
loading?: boolean;
|
|
22
|
+
}
|
|
23
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
|
|
25
|
+
declare const inputVariants: (props?: ({
|
|
26
|
+
inputSize?: "sm" | "md" | "lg" | null | undefined;
|
|
27
|
+
state?: "default" | "error" | null | undefined;
|
|
28
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
29
|
+
|
|
30
|
+
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
|
|
31
|
+
/** Label text displayed above the input */
|
|
32
|
+
label?: string;
|
|
33
|
+
/** Helper text displayed below the input */
|
|
34
|
+
helperText?: string;
|
|
35
|
+
/** Error message — also sets error styling */
|
|
36
|
+
error?: string;
|
|
37
|
+
/** Content rendered at the start of the input */
|
|
38
|
+
startIcon?: React.ReactNode;
|
|
39
|
+
/** Content rendered at the end of the input */
|
|
40
|
+
endIcon?: React.ReactNode;
|
|
41
|
+
}
|
|
42
|
+
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
43
|
+
|
|
44
|
+
declare const cardVariants: (props?: ({
|
|
45
|
+
variant?: "ghost" | "elevated" | "outlined" | null | undefined;
|
|
46
|
+
hoverable?: boolean | null | undefined;
|
|
47
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
48
|
+
|
|
49
|
+
interface CardProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
|
|
50
|
+
}
|
|
51
|
+
declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
|
|
52
|
+
declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
53
|
+
declare const CardBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
54
|
+
declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
55
|
+
|
|
56
|
+
declare const Modal: React.FC<Dialog.DialogProps>;
|
|
57
|
+
declare const ModalTrigger: React.ForwardRefExoticComponent<Dialog.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
58
|
+
interface ModalContentProps extends React.ComponentPropsWithoutRef<typeof Dialog.Content> {
|
|
59
|
+
/** Show a close (X) button in the top right */
|
|
60
|
+
showClose?: boolean;
|
|
61
|
+
}
|
|
62
|
+
declare const ModalContent: React.ForwardRefExoticComponent<ModalContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
63
|
+
declare const ModalTitle: React.ForwardRefExoticComponent<Omit<Dialog.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
64
|
+
declare const ModalDescription: React.ForwardRefExoticComponent<Omit<Dialog.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
65
|
+
declare const ModalFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
66
|
+
|
|
67
|
+
declare const Dropdown: React.FC<DropdownMenu.DropdownMenuProps>;
|
|
68
|
+
declare const DropdownTrigger: React.ForwardRefExoticComponent<DropdownMenu.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
69
|
+
declare const DropdownGroup: React.ForwardRefExoticComponent<DropdownMenu.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
70
|
+
declare const DropdownContent: React.ForwardRefExoticComponent<Omit<DropdownMenu.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
71
|
+
declare const DropdownItem: React.ForwardRefExoticComponent<Omit<DropdownMenu.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
72
|
+
declare const DropdownSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenu.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
73
|
+
declare const DropdownLabel: React.ForwardRefExoticComponent<Omit<DropdownMenu.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
74
|
+
|
|
75
|
+
declare const badgeVariants: (props?: ({
|
|
76
|
+
variant?: "primary" | "danger" | "default" | "success" | "warning" | "info" | null | undefined;
|
|
77
|
+
size?: "sm" | "md" | null | undefined;
|
|
78
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
79
|
+
|
|
80
|
+
interface BadgeProps extends HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
|
|
81
|
+
}
|
|
82
|
+
declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
83
|
+
|
|
84
|
+
interface TabsProps extends HTMLAttributes<HTMLDivElement> {
|
|
85
|
+
/** Controlled value */
|
|
86
|
+
value?: string;
|
|
87
|
+
/** Default value (uncontrolled) */
|
|
88
|
+
defaultValue?: string;
|
|
89
|
+
/** Callback when active tab changes */
|
|
90
|
+
onValueChange?: (value: string) => void;
|
|
91
|
+
}
|
|
92
|
+
declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
|
|
93
|
+
declare const TabsList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
94
|
+
interface TabsTriggerProps extends HTMLAttributes<HTMLButtonElement> {
|
|
95
|
+
value: string;
|
|
96
|
+
}
|
|
97
|
+
declare const TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
98
|
+
interface TabsContentProps extends HTMLAttributes<HTMLDivElement> {
|
|
99
|
+
value: string;
|
|
100
|
+
}
|
|
101
|
+
declare const TabsContent: React.ForwardRefExoticComponent<TabsContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
102
|
+
|
|
103
|
+
declare const TableWrapper: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
104
|
+
declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
|
|
105
|
+
declare const Thead: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
|
|
106
|
+
declare const Tbody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
|
|
107
|
+
declare const Tr: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
|
|
108
|
+
declare const Th: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
|
|
109
|
+
declare const Td: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
|
|
110
|
+
|
|
111
|
+
interface SidebarContextValue {
|
|
112
|
+
collapsed: boolean;
|
|
113
|
+
toggle: () => void;
|
|
114
|
+
}
|
|
115
|
+
declare function useSidebar(): SidebarContextValue;
|
|
116
|
+
interface SidebarProps extends HTMLAttributes<HTMLElement> {
|
|
117
|
+
/** Controlled collapsed state */
|
|
118
|
+
collapsed?: boolean;
|
|
119
|
+
/** Default collapsed state (uncontrolled) */
|
|
120
|
+
defaultCollapsed?: boolean;
|
|
121
|
+
/** Callback on toggle */
|
|
122
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
123
|
+
}
|
|
124
|
+
declare const Sidebar: React.ForwardRefExoticComponent<SidebarProps & React.RefAttributes<HTMLElement>>;
|
|
125
|
+
interface SidebarHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
126
|
+
logo?: ReactNode;
|
|
127
|
+
}
|
|
128
|
+
declare const SidebarHeader: React.ForwardRefExoticComponent<SidebarHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
129
|
+
declare const SidebarContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
130
|
+
declare const SidebarFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
131
|
+
interface SidebarSectionProps extends HTMLAttributes<HTMLDivElement> {
|
|
132
|
+
label?: string;
|
|
133
|
+
}
|
|
134
|
+
declare const SidebarSection: React.ForwardRefExoticComponent<SidebarSectionProps & React.RefAttributes<HTMLDivElement>>;
|
|
135
|
+
interface SidebarItemProps extends HTMLAttributes<HTMLButtonElement> {
|
|
136
|
+
icon?: ReactNode;
|
|
137
|
+
active?: boolean;
|
|
138
|
+
}
|
|
139
|
+
declare const SidebarItem: React.ForwardRefExoticComponent<SidebarItemProps & React.RefAttributes<HTMLButtonElement>>;
|
|
140
|
+
declare const SidebarToggle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
|
|
141
|
+
|
|
142
|
+
export { Badge, type BadgeProps, Button, type ButtonProps, Card, CardBody, CardFooter, CardHeader, type CardProps, Dropdown, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownSeparator, DropdownTrigger, Input, type InputProps, Modal, ModalContent, type ModalContentProps, ModalDescription, ModalFooter, ModalTitle, ModalTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarHeader, type SidebarHeaderProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SidebarToggle, Table, TableWrapper, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsProps, TabsTrigger, type TabsTriggerProps, Tbody, Td, Th, Thead, Tr, badgeVariants, buttonVariants, cardVariants, cn, inputVariants, useSidebar };
|