@pk-design/react-tailwind 1.1.7 → 1.2.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/react-tailwind.cjs.js +37 -44
- package/dist/react-tailwind.cjs.js.map +1 -1
- package/dist/react-tailwind.css +1 -1
- package/dist/react-tailwind.css.map +1 -1
- package/dist/react-tailwind.es.js +37 -44
- package/dist/react-tailwind.es.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-tailwind.es.js","sources":["../src/utils/build-classname.ts","../src/components/Icons/BadgeCheck.svg","../src/components/Icons/CircleX.svg","../src/components/Icons/CircleAlert.svg","../src/components/Icons/Info.svg","../src/components/Icons/X.svg","../src/components/Loader/index.tsx","../src/components/TextContent/TextContent.tsx","../src/components/Button/Button.tsx","../src/components/Alert/Alert.tsx","../src/components/Badge/Badge.tsx","../src/components/Icons/TriangleAlert.svg","../src/components/Icons/CircleCheck.svg","../src/components/Banner/Banner.tsx","../src/components/BodyText/BodyText.tsx","../src/components/Icons/Slash.svg","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Card/Card.tsx","../src/components/Label/Label.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/CheckboxGroup/CheckboxGroup.tsx","../src/components/Table/Table.tsx","../src/components/Pagination/usePagination.tsx","../src/components/Icons/ChevronLeft.svg","../src/components/Icons/ChevronRight.svg","../src/components/Pagination/Pagination.tsx","../src/utils/get.ts","../src/components/DataTable/DataTable.utils.ts","../src/components/Icons/ArrowDownWideNarrow.svg","../src/components/Icons/ArrowDownNarrowWide.svg","../src/components/Icons/ArrowDownAZ.svg","../src/components/Icons/ArrowDownZA.svg","../src/components/Icons/ArrowUpDown.svg","../src/components/DataTable/DataTable.icons.tsx","../src/components/DataTable/DataTable.tsx","../src/components/HeadingText/HeadingText.tsx","../src/components/DetailedInformation/DetailedInformation.tsx","../src/components/Dot/index.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Dropdown/Dropdown.tsx","../src/components/Icons/FolderPlus.svg","../src/components/EmptyState/index.tsx","../src/components/Input/Input.tsx","../src/components/PasswordInput/PasswordInput.tsx","../src/components/Radio/Radio.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/RadioSwitch/RadioSwitch.tsx","../src/utils/is-array.ts","../src/utils/is-empty.ts","../src/components/RangeInput/RangeInput.tsx","../src/components/RangeSlider/RangeSlider.tsx","../src/hooks/use-debounce.tsx","../src/components/Icons/Check.svg","../src/components/Icons/ChevronDown.svg","../src/components/Icons/CirclePlus.svg","../src/components/SelectBox/SelectBox.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastProvider.tsx","../src/components/VirtualizedDataTable/VirtualizedRow.tsx","../src/components/VirtualizedDataTable/VirtualizedDataTable.tsx","../src/hooks/use-is-mobile.tsx","../src/hooks/use-is-tablet.tsx","../src/hooks/use-is-tablet-or-mobile.tsx"],"sourcesContent":["import { twMerge } from 'tailwind-merge'\n\nexport const buildClassName = (...classes: any[]) => twMerge(classes.filter(Boolean))\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-badge-check-icon lucide-badge-check\"><path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"/><path d=\"m9 12 2 2 4-4\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-x-icon lucide-circle-x\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m15 9-6 6\"/><path d=\"m9 9 6 6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-alert-icon lucide-circle-alert\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"/><line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-info-icon lucide-info\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-x-icon lucide-x\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\nimport './loader.css'\n\nexport type LoaderSize = 'xs' | 'sm' | 'md' | 'lg'\n\ntype LoaderSizeMap = {\n [k in LoaderSize]: string\n}\n\ninterface LoaderProps {\n size?: LoaderSize\n className?: string\n}\n\nconst loaderSizeMap: LoaderSizeMap = {\n xs: 'size-4',\n sm: 'size-6',\n md: 'size-8',\n lg: 'size-10',\n}\n\nexport const Loader: React.FC<LoaderProps> = ({\n className = 'text-blue-600 dark:text-white',\n size = 'md',\n ...props\n}) => {\n return (\n <svg\n className={buildClassName(loaderSizeMap[size], className, 'spinner')}\n viewBox=\"0 0 50 50\"\n {...props}\n >\n <circle\n className=\"path\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeWidth=\"5\"\n />\n </svg>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContentProps } from './TextContent.types'\n\nexport const TextContent = forwardRef<HTMLSpanElement, TextContentProps>((props, ref) => {\n const {\n xsmall = false,\n small = false,\n strong = false,\n muted = false,\n error = false,\n className,\n ...rest\n } = props\n return React.createElement('span', {\n ...rest,\n ref,\n className: buildClassName(\n xsmall && 'text-xs/5',\n small && 'text-sm/6',\n strong && 'font-semibold',\n muted && 'text-gray-500',\n error && 'text-red-500 dark:text-red-500',\n className,\n ),\n })\n})\n\nTextContent.displayName = 'TextContent'\n","import React, { ElementType, forwardRef, useMemo } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Loader } from '../Loader'\nimport { TextContent } from '../TextContent'\nimport type { ButtonProps, ButtonSize, ThemedButtonClass, ButtonComponent } from './Button.types'\nimport type { PolymorphicRef } from '../common-type'\n\n/**\n * Tailwind CSS classes for theme + variant combinations.\n */\nconst THEMED_BTN_CLASS: ThemedButtonClass = {\n primary: {\n default:\n 'text-white bg-blue-600 hover:bg-blue-700 dark:bg-blue-600 dark:hover:bg-blue-700 focus:outline-blue-600 disabled:bg-blue-400 dark:disabled:bg-blue-500',\n outlined:\n 'text-blue-600 hover:text-white border border-blue-600 hover:bg-blue-600 dark:border-blue-500 dark:text-blue-500 dark:hover:text-white dark:hover:bg-blue-500 focus:outline-blue-600 disabled:text-blue-400 disabled:border-blue-400',\n plain:\n 'text-blue-600 hover:bg-black/5 dark:text-blue-400 dark:hover:bg-gray-700 focus:outline-blue-600 disabled:text-blue-400',\n },\n danger: {\n default:\n 'text-white bg-red-600 hover:bg-red-700 dark:bg-red-600 dark:hover:bg-red-700 focus:outline-red-600 disabled:bg-red-400 dark:disabled:bg-red-500',\n outlined:\n 'text-red-600 hover:text-white border border-red-600 hover:bg-red-600 dark:border-red-500 dark:text-red-500 dark:hover:text-white dark:hover:bg-red-500 focus:outline-red-600 disabled:text-red-400 disabled:border-red-400',\n plain:\n 'text-red-600 hover:bg-black/5 dark:text-red-400 dark:hover:bg-gray-700 focus:outline-red-600 disabled:text-red-400',\n },\n secondary: {\n default:\n 'text-gray-700 bg-white border border-gray-300 hover:bg-gray-100 dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 focus:outline-blue-600 disabled:bg-gray-200 dark:disabled:bg-gray-700',\n outlined:\n 'text-gray-700 hover:text-white border border-gray-500 hover:bg-gray-700 dark:border-gray-500 dark:text-gray-200 dark:hover:text-white dark:hover:bg-gray-600 focus:outline-blue-600 disabled:text-gray-400 disabled:border-gray-400',\n plain:\n 'text-gray-700 hover:bg-black/5 dark:text-gray-200 dark:hover:bg-gray-700 focus:outline-blue-600 disabled:text-gray-400',\n },\n}\n\n/**\n * Generate size classes.\n */\nconst getBtnSizeClasses = (size: ButtonSize, iconOnly = false) => {\n switch (size) {\n case 'xs':\n return iconOnly ? 'p-1 rounded-sm text-xs' : 'px-2 py-1 rounded-sm gap-1 text-xs'\n\n case 'sm':\n return iconOnly ? 'p-1.5 rounded text-sm' : 'px-3 py-1.5 rounded gap-1.5 text-sm'\n\n case 'md':\n return iconOnly ? 'p-2 rounded-md text-sm' : 'px-4 py-2 rounded-md gap-2 text-sm'\n\n case 'lg':\n return iconOnly ? 'p-2.5 rounded-lg text-base' : 'px-5 py-2.5 rounded-lg gap-2 text-base'\n }\n}\n\n/**\n * Base shared tailwind classes.\n */\nconst BASE_BTN_CLASS =\n 'font-medium flex items-center justify-center shrink-0 cursor-pointer ' +\n 'disabled:cursor-not-allowed disabled:pointer-events-none disabled:opacity-75 ' +\n 'transition duration-200 ease-in-out'\n\nexport const Button = forwardRef(\n <C extends ElementType = 'button'>(\n { as, type, ...props }: ButtonProps<C>,\n ref: PolymorphicRef<C>,\n ) => {\n const {\n className = '',\n children,\n theme = 'primary',\n variant = 'default',\n size = 'md',\n loading = false,\n loadingText = '',\n rounded = false,\n disabled,\n iconOnly = false,\n noOutlineOnFocus = false,\n ...restProps\n } = props\n\n const Component = as || 'button'\n\n // Accessibility guard for icon-only buttons\n if (iconOnly && !(restProps as Record<string, unknown>)['aria-label']) {\n console.warn('[ui] <Button iconOnly> requires aria-label for accessibility.')\n }\n\n // Disable interaction when loading\n const resolvedDisabled = disabled || loading\n\n // Clean invalid props when not rendering a real button\n const { type: _ignoreType, disabled: _ignoreDisabled, ...cleanRest } = restProps\n\n const buttonSpecificProps =\n Component === 'button'\n ? {\n type: type ?? 'button',\n disabled: resolvedDisabled,\n }\n : {}\n\n /**\n * Memoized className for perf & stability.\n */\n const classes = useMemo(\n () =>\n buildClassName(\n BASE_BTN_CLASS,\n THEMED_BTN_CLASS[theme][variant],\n getBtnSizeClasses(size, iconOnly),\n !noOutlineOnFocus && 'focus:outline focus:outline-2 focus:outline-offset-2',\n rounded && 'rounded-full',\n variant === 'default' && 'shadow-xs hover:shadow-none disabled:shadow-none',\n className,\n ),\n [theme, variant, size, iconOnly, rounded, noOutlineOnFocus, className],\n )\n\n /**\n * SPECIAL CASE:\n * iconOnly + loading → show spinner only\n */\n if (loading && iconOnly) {\n return (\n <Component ref={ref} className={classes} {...buttonSpecificProps} {...cleanRest}>\n <Loader data-testid=\"btn-loader-icon\" size=\"xs\" />\n </Component>\n )\n }\n\n return (\n <Component ref={ref} className={classes} {...buttonSpecificProps} {...cleanRest}>\n {loading ? (\n <span className=\"flex items-center gap-2\" aria-live=\"polite\">\n <Loader data-testid=\"btn-loader-icon\" size=\"xs\" />\n {loadingText && <TextContent>{loadingText}</TextContent>}\n </span>\n ) : (\n children\n )}\n </Component>\n )\n },\n) as ButtonComponent\n\nButton.displayName = 'Button'\n","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport BadgeCheckIcon from '../Icons/BadgeCheck.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleAlertIcon from '../Icons/CircleAlert.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport XIcon from '../Icons/X.svg'\nimport { Button } from '../Button'\nimport type { AlertProps } from './Alert.types'\n\nconst AlertTypeIconMap = {\n success: BadgeCheckIcon,\n danger: CircleXIcon,\n warning: CircleAlertIcon,\n info: InfoIcon,\n}\n\nconst TypeClassMap = {\n success: 'bg-green-50 ring-green-600/20 text-green-700',\n danger: 'bg-red-50 ring-red-600/20 text-red-700',\n warning: 'bg-orange-50 ring-orange-600/20 text-orange-700',\n info: 'bg-blue-50 ring-blue-600/20 text-blue-700',\n}\n\nexport const Alert: React.FC<AlertProps> = (props) => {\n const {\n type = 'info',\n className = '',\n message,\n children,\n removable = false,\n onRemove = () => {},\n ...restProps\n } = props\n\n const Icon = AlertTypeIconMap[type] || InfoIcon\n\n return (\n <div\n className={buildClassName(\n className,\n 'flex items-center justify-between rounded-md p-3 text-sm ring-1 ring-inset gap-2',\n TypeClassMap[type],\n )}\n {...restProps}\n >\n <span className=\"inline-flex items-center gap-2\">\n <Icon className=\"size-5\" data-testid={`alert-${type}-icon`} />\n <span className=\"pr-2 inline-flex items-center\">{message || children}</span>\n </span>\n {removable && (\n <Button\n iconOnly\n aria-label=\"Dismiss alert\"\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n className=\"hover:bg-black/5 text-gray-600 dark:hover:bg-black/5 dark:text-gray-600\"\n onClick={() => onRemove()}\n data-testid=\"alert-remove-btn\"\n >\n <XIcon className=\"size-4.5\" data-testid=\"alert-remove-icon\" />\n </Button>\n )}\n </div>\n )\n}\n\nAlert.displayName = 'Alert'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport XIcon from '../Icons/X.svg'\nimport { BadgeProps } from './Badge.types'\nimport { TextContent } from '../TextContent'\n\nconst ThemeClassMap = {\n success:\n 'bg-green-50 ring-green-600/20 text-green-700 dark:bg-green-600 dark:text-green-50 dark:ring-green-400/20',\n danger:\n 'bg-red-50 dark:bg-red-600 text-red-700 dark:text-red-50 ring-red-600/20 dark:ring-red-400/20',\n warning:\n 'bg-yellow-50 dark:bg-yellow-600 text-yellow-700 dark:text-yellow-50 ring-yellow-600/20 dark:ring-yellow-400/20',\n info: 'bg-blue-50 dark:bg-blue-600 text-blue-700 dark:text-blue-50 ring-blue-600/20 dark:ring-blue-400/20',\n secondary:\n 'bg-gray-50 dark:bg-gray-600 text-gray-700 dark:text-gray-50 ring-gray-600/20 dark:ring-gray-400/20',\n}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n const {\n theme = 'info',\n className = '',\n children,\n removable = false,\n rounded = false,\n onRemove = () => {},\n ...restProps\n } = props\n\n return (\n <TextContent\n ref={ref}\n className={buildClassName(\n className,\n 'inline-flex items-center pl-3 py-1 text-xs font-medium ring-1 ring-inset',\n ThemeClassMap[theme],\n rounded ? 'rounded-full' : 'rounded-md',\n )}\n data-testid={`badge-${theme}`}\n {...restProps}\n >\n <TextContent className=\"pr-3 inline-flex items-center\">{children}</TextContent>\n {removable ? (\n <XIcon\n className=\"size-5 px-0.5 mr-1 hover:bg-slate-200 dark:hover:bg-white/10 rounded-sm cursor-pointer text-gray-600 dark:text-gray-300\"\n role=\"button\"\n tabIndex={0}\n aria-label=\"Remove\"\n onClick={() => onRemove()}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onRemove()\n }\n }}\n />\n ) : null}\n </TextContent>\n )\n})\n\nBadge.displayName = 'Badge'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-triangle-alert-icon lucide-triangle-alert\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-check-icon lucide-circle-check\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12 2 2 4-4\"/></svg>","import React, { forwardRef } from 'react'\nimport TriangleAlertIcon from '../Icons/TriangleAlert.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleCheckIcon from '../Icons/CircleCheck.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport { buildClassName } from '../../utils/build-classname'\nimport { BannerProps } from './Banner.types'\n\nconst sizeMap = {\n 4: `size-4`,\n 5: `size-5`,\n 6: `size-6`,\n 7: `size-7`,\n 8: `size-8`,\n 9: `size-9`,\n 10: `size-10`,\n}\n\nconst IconMap = {\n info: InfoIcon,\n error: CircleXIcon,\n success: CircleCheckIcon,\n warning: TriangleAlertIcon,\n}\n\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>((props, ref) => {\n const { type = 'info', iconSize = 5, children, ...restProps } = props\n const className = buildClassName(\n 'text-sm banner rounded-md flex w-full p-3 items-center',\n type === 'info' ? 'bg-blue-50 text-blue-700' : '',\n type === 'error' ? 'bg-red-50 text-red-700' : '',\n type === 'success' ? 'bg-green-50 text-green-700' : '',\n type === 'warning' ? 'bg-orange-50 text-orange-700' : '',\n )\n\n const renderIcon = () => {\n const Icon = IconMap[type]\n return (\n <Icon\n data-testid={`banner-${type}-icon`}\n className={buildClassName('ml-1 mr-3', sizeMap[iconSize])}\n />\n )\n }\n\n return (\n <div ref={ref} className={className} data-testid={`banner-${type}`} {...restProps}>\n {renderIcon()}\n <div className=\"flex items-center w-full justify-between\">{children}</div>\n </div>\n )\n})\n\nBanner.displayName = 'Banner'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { BodyTextProps } from './BodyText.types'\n\nexport const BodyText = forwardRef<HTMLParagraphElement, BodyTextProps>((props, ref) => {\n const {\n as = 'p',\n small = false,\n strong = false,\n muted = false,\n error = false,\n inline = false,\n className,\n ...rest\n } = props\n return React.createElement(as, {\n ref: ref,\n className: buildClassName(\n small && 'text-sm/6',\n strong && 'font-semibold',\n muted && 'text-gray-500',\n error && 'text-red-500',\n inline && 'inline-flex items-center gap-2',\n className,\n ),\n ...rest,\n })\n})\n\nBodyText.displayName = 'BodyText'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-slash-icon lucide-slash\"><path d=\"M22 2 2 22\"/></svg>","import React from 'react'\nimport SlashIcon from '../Icons/Slash.svg'\nimport { BreadcrumbProps } from './Breadcrumb.types'\n\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({ items, render }) => {\n const count = items.length\n const isLast = (index: number) => index === count - 1\n\n return (\n <nav\n aria-label=\"Breadcrumb\"\n className=\"flex flex-wrap items-center gap-2\"\n data-testid=\"breadcrumb-container\"\n >\n {items.map((item, index) => (\n <span\n className=\"inline-flex gap-2 items-center dark:text-white\"\n key={item.key}\n data-testid={`breadcrumb-item-${item.key}`}\n >\n <span\n className=\"font-medium\"\n {...(isLast(index) ? { 'aria-current': 'page' as const } : {})}\n >\n {isLast(index) ? item.text : render(item)}\n </span>\n {!isLast(index) && (\n <SlashIcon data-testid={`breadcrumb-divider-${index}`} className=\"size-4\" />\n )}\n </span>\n ))}\n </nav>\n )\n}\n\nBreadcrumb.displayName = 'Breadcrumb'\n","import { ElementType, forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CardComponent, CardProps } from './Card.types'\nimport type { PolymorphicRef } from '../common-type'\n\nconst BASE_CARD_CLASS = 'bg-white rounded-md dark:bg-gray-900 block'\n\nexport const Card = forwardRef(\n <C extends ElementType = 'div'>({ as, ...props }: CardProps<C>, ref: PolymorphicRef<C>) => {\n // Remove Card-only props from rest (avoid leaking to DOM)\n const {\n hoverable = false,\n bordered = true,\n compact = false,\n zeroPadding = false,\n ...rest\n } = props\n\n const Component = as || 'div'\n\n // Extract className safely from rest\n const { className, ...cleanRest } = rest as { className?: string }\n\n const classes = buildClassName(\n BASE_CARD_CLASS,\n zeroPadding ? '' : compact ? 'p-2' : 'p-6',\n hoverable && 'transition-background duration-200 hover:bg-gray-100 dark:hover:bg-gray-800',\n bordered && 'border border-gray-200 dark:border-gray-800',\n className,\n )\n\n return <Component ref={ref} className={classes} {...cleanRest} />\n },\n) as CardComponent\n\nCard.displayName = 'Card'\n","import React, { forwardRef, type LabelHTMLAttributes } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\ninterface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n htmlFor?: string\n}\n\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>((props, ref) => {\n const { className, children, ...labelProps } = props\n return (\n <label\n ref={ref}\n {...labelProps}\n className={buildClassName(\n 'block text-sm font-medium text-gray-600 dark:text-gray-300',\n className,\n )}\n >\n {children}\n </label>\n )\n})\n\nLabel.displayName = 'Label'\n","import { forwardRef, useId } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CheckboxProps } from './Checkbox.types'\nimport { TextContent } from '../TextContent'\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {\n const {\n id,\n name,\n label,\n labelClass = '',\n wrapperClass = '',\n containerClass = '',\n error,\n disabled = false,\n className = '',\n // Checkbox-only props removed from rest\n ...rest\n } = props\n\n const generatedId = useId()\n const checkboxId = id ?? name ?? generatedId\n\n return (\n <div className={buildClassName(wrapperClass)}>\n <div className={buildClassName('flex items-center', containerClass)}>\n <label\n htmlFor={checkboxId}\n className={buildClassName(\n 'inline-flex items-center relative select-none',\n disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer',\n )}\n >\n <input\n ref={ref}\n {...rest}\n id={checkboxId}\n name={name}\n type=\"checkbox\"\n disabled={disabled}\n aria-checked={rest.checked}\n className={buildClassName(\n 'peer size-4.5 cursor-pointer transition-all appearance-none rounded',\n 'border focus:ring-2 focus:ring-offset-2',\n 'checked:bg-blue-600 checked:border-blue-600',\n 'focus:ring-blue-500 dark:focus:ring-offset-gray-900',\n disabled\n ? 'border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 pointer-events-none'\n : 'bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md',\n className,\n )}\n />\n\n <span\n className=\"absolute text-white opacity-0 peer-checked:opacity-100 \n top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3.25 w-3.25\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </span>\n </label>\n\n {label && (\n <Label\n htmlFor={checkboxId}\n className={buildClassName(\n disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500'\n : 'cursor-pointer text-gray-600 dark:text-gray-300',\n 'ml-2 font-normal',\n labelClass,\n )}\n >\n {label}\n </Label>\n )}\n </div>\n\n {error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n\nCheckbox.displayName = 'Checkbox'\n","import { useId, useMemo, type ChangeEvent } from 'react'\nimport { Checkbox } from '../Checkbox'\nimport { Label } from '../Label'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CheckboxGroupItem, CheckboxGroupProps } from './CheckboxGroup.types'\n\nexport const CheckboxGroup = <T,>(props: CheckboxGroupProps<T>) => {\n const {\n name,\n options,\n label,\n labelClass = '',\n labelWrapperClass = '',\n labelHint,\n containerClass = '',\n value = [],\n onChange,\n inline = false,\n } = props\n\n const groupId = useId()\n\n const items = useMemo(\n () =>\n options.map((opt) =>\n typeof opt === 'string' ? ({ label: opt, value: opt } as CheckboxGroupItem<T>) : opt,\n ),\n [options],\n )\n\n /**\n * Group-level change handler. Converts raw checkbox change events\n * into a typed updated values array.\n */\n const handleGroupChange = (e: ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n const checked = e.target.checked\n\n // Convert HTML string value → typed T value\n // Locate in normalized items\n const matched = items.find((i) => String(i.value) === raw)\n const itemValue = matched?.value as T\n\n let updated: T[]\n\n if (checked) {\n updated = [...value, itemValue]\n } else {\n updated = value.filter((v) => v !== itemValue)\n }\n\n onChange?.(updated, e)\n }\n\n return (\n <div className={buildClassName('mb-3 space-y-3', containerClass)}>\n {label && (\n <div className={buildClassName('flex items-center justify-between', labelWrapperClass)}>\n <Label className={labelClass}>{label}</Label>\n <BodyText muted small>\n {labelHint}\n </BodyText>\n </div>\n )}\n\n <div className={buildClassName('flex gap-3', inline ? 'flex-wrap' : 'flex-col')}>\n {items.map((item, index) => {\n const key =\n typeof item.value === 'string' || typeof item.value === 'number' ? item.value : index\n\n return (\n <Checkbox\n key={key}\n name={name}\n id={`${groupId}-${String(item.value)}`}\n label={item.label}\n value={String(item.value)}\n checked={value.includes(item.value)}\n onChange={handleGroupChange}\n />\n )\n })}\n </div>\n </div>\n )\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup'\n","import React from 'react'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\nimport type {\n EmptyTableRowProps,\n TableProps,\n TableBodyProps,\n TableCellProps,\n TableFootProps,\n TableHeaderCellProps,\n TableHeadProps,\n TableRowLoaderProps,\n TableRowProps,\n} from './Table.types'\n\nconst TEXT_ALIGN = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n}\n\nconst TABLE_LAYOUT = {\n fixed: 'table-fixed',\n auto: 'table-auto',\n}\n\n/* ----------------------------------------------\n * Loader Rows\n * ---------------------------------------------- */\nconst TableRowLoader: React.FC<TableRowLoaderProps> = ({ colSize, rowSize }) => (\n <>\n {Array.from({ length: rowSize }).map((_, rowIdx) => (\n <TableRow key={rowIdx} className=\"animate-pulse\">\n {Array.from({ length: colSize }).map((_, colIdx) => (\n <TableCell key={colIdx}>\n <div className=\"flex items-center h-6\">\n <div className=\"h-4 bg-gray-300 dark:bg-gray-700 shimmer rounded w-full\" />\n </div>\n </TableCell>\n ))}\n </TableRow>\n ))}\n </>\n)\n\n/* ----------------------------------------------\n * Table\n * ---------------------------------------------- */\nexport const Table: React.FC<TableProps> = ({ children, layout = 'auto', className = '' }) => {\n return (\n <table\n className={buildClassName(\n 'border-collapse w-full divide-y divide-gray-200 dark:divide-gray-700',\n TABLE_LAYOUT[layout],\n className,\n )}\n >\n {children}\n </table>\n )\n}\n\n/* ----------------------------------------------\n * Head\n * ---------------------------------------------- */\nexport const TableHead: React.FC<TableHeadProps> = ({ children, className = '' }) => (\n <thead\n className={buildClassName(\n 'text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-800 dark:text-gray-300',\n className,\n )}\n >\n <tr>{children}</tr>\n </thead>\n)\n\n/* ----------------------------------------------\n * Body\n * ---------------------------------------------- */\nexport const TableBody: React.FC<TableBodyProps> = ({\n children,\n loading,\n colSize,\n rowSize = 5,\n className,\n}) => (\n <tbody\n className={buildClassName(\n 'text-sm text-gray-700 dark:text-white divide-y divide-gray-200 dark:divide-gray-700',\n className,\n )}\n >\n {loading ? <TableRowLoader colSize={colSize} rowSize={rowSize} /> : children}\n </tbody>\n)\n\n/* ----------------------------------------------\n * Foot\n * ---------------------------------------------- */\nexport const TableFoot: React.FC<TableFootProps> = ({ children }) => (\n <tfoot>\n <tr>{children}</tr>\n </tfoot>\n)\n\n/* ----------------------------------------------\n * Rows\n * ---------------------------------------------- */\nexport const TableRow: React.FC<TableRowProps> = ({\n children,\n hoverable = false,\n className,\n ...props\n}) => (\n <tr\n {...props}\n className={buildClassName(\n 'last:border-b border-gray-200 dark:border-gray-700',\n hoverable && 'group',\n className,\n )}\n >\n {children}\n </tr>\n)\n\n/* ----------------------------------------------\n * Cells\n * ---------------------------------------------- */\nexport const TableCell: React.FC<TableCellProps> = ({\n children,\n align = 'left',\n className,\n ...props\n}) => (\n <td\n {...props}\n className={buildClassName(\n 'px-3 py-3 first:pl-4 last:pr-4 bg-white dark:bg-gray-900 group-hover:bg-gray-50 group-hover:dark:bg-gray-800',\n TEXT_ALIGN[align],\n className,\n )}\n >\n <div className=\"leading-normal\">{children}</div>\n </td>\n)\n\nexport const TableHeaderCell: React.FC<TableHeaderCellProps> = ({\n children,\n align = 'left',\n className,\n ...props\n}) => (\n <th\n {...props}\n className={buildClassName(\n 'px-3 py-3 first:pl-4 last:pr-4 tracking-wider whitespace-nowrap text-gray-800 dark:text-gray-300',\n TEXT_ALIGN[align],\n className,\n )}\n >\n <BodyText as=\"span\" className=\"leading-none\">\n {children}\n </BodyText>\n </th>\n)\n\n/* ----------------------------------------------\n * Empty Row\n * ---------------------------------------------- */\nexport const EmptyTableRow: React.FC<EmptyTableRowProps> = ({\n children,\n colSpan = 1,\n contentClass,\n}) => (\n <tr className=\"bg-white dark:bg-gray-900\">\n <td colSpan={colSpan} className=\"px-4 py-8\">\n <div\n className={buildClassName(\n 'p-6 text-center space-y-3 flex flex-col items-center justify-center',\n contentClass,\n )}\n >\n {children}\n </div>\n </td>\n </tr>\n)\n","import { UsePaginationProps } from './Pagination.types'\n\nexport const DOTS = '...'\n\nexport const usePagination = ({\n totalPages,\n currentPage,\n siblingCount = 1, // number of pages to show around currentPage\n}: UsePaginationProps): (number | string)[] => {\n const totalPageNumbers = siblingCount * 2 + 5\n\n if (totalPageNumbers >= totalPages) {\n return Array.from({ length: totalPages }, (_, i) => i + 1)\n }\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1)\n const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages)\n\n const shouldShowLeftDots = leftSiblingIndex > 2\n const shouldShowRightDots = rightSiblingIndex < totalPages - 1\n\n const firstPageIndex = 1\n const lastPageIndex = totalPages\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftRange = Array.from({ length: 3 + 2 * siblingCount }, (_, i) => i + 1)\n return [...leftRange, DOTS, totalPages]\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightRange = Array.from(\n { length: 3 + 2 * siblingCount },\n (_, i) => totalPages - (3 + 2 * siblingCount) + 1 + i,\n )\n return [firstPageIndex, DOTS, ...rightRange]\n }\n\n if (shouldShowLeftDots && shouldShowRightDots) {\n const middleRange = Array.from({ length: 2 * siblingCount + 1 }, (_, i) => leftSiblingIndex + i)\n return [firstPageIndex, DOTS, ...middleRange, DOTS, lastPageIndex]\n }\n\n return []\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-left-icon lucide-chevron-left\"><path d=\"m15 18-6-6 6-6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-right-icon lucide-chevron-right\"><path d=\"m9 18 6-6-6-6\"/></svg>","import React from 'react'\nimport { Button } from '../Button'\nimport { usePagination, DOTS } from './usePagination'\nimport { buildClassName } from '../../utils/build-classname'\nimport ChevronLeftIcon from '../Icons/ChevronLeft.svg'\nimport ChevronRightIcon from '../Icons/ChevronRight.svg'\nimport type { PaginationProps } from './Pagination.types'\n\nexport const Pagination: React.FC<PaginationProps> = ({\n page: currentPage,\n limit,\n total,\n onChange,\n className,\n ellipsis = true, // Default to showing ellipsis\n}) => {\n const pages = new Array(Math.ceil(total / limit)).fill(null).map((_, i) => i + 1)\n const isFirstPage = currentPage === 1\n const isLastPage = total === 0 || pages.length === currentPage\n\n const range = usePagination({ totalPages: pages.length, currentPage })\n\n const handlePageChange = (nextVal: number) => {\n if (nextVal === currentPage) return\n\n onChange({ page: nextVal })\n }\n\n if (ellipsis) {\n return (\n <div\n data-testid=\"pagination-container\"\n className={buildClassName(\n 'flex items-center justify-between bg-white dark:bg-gray-800 px-4 py-3 sm:px-6',\n className,\n )}\n >\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"ellipsis-mobile-prev-btn\"\n >\n <span>Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"ellipsis-mobile-next-btn\"\n >\n <span>Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n <div className=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\n <p\n data-testid=\"pagination-summary\"\n className=\"text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1\"\n >\n Showing\n <span className=\"font-medium\">\n {total === 0 ? 0 : Math.max(currentPage * limit - limit + 1, 1)}\n </span>\n to\n <span className=\"font-medium\">{Math.min(currentPage * limit, total)}</span>\n of\n <span className=\"font-medium\">{total}</span>\n results\n </p>\n <ul className=\"flex items-center space-x-2 text-sm\">\n <li>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"ellipsis-prev-btn\"\n >\n Prev\n </Button>\n </li>\n {range.map((page, idx) => {\n if (page === DOTS) {\n return (\n <li\n key={`${page}-${idx}`}\n data-testid={`page-${page}`}\n className=\"px-2 py-1 text-gray-400\"\n >\n …\n </li>\n )\n }\n return (\n <li key={`${page}-${idx}`}>\n <Button\n size=\"xs\"\n theme={page === currentPage ? 'primary' : 'secondary'}\n variant={page === currentPage ? 'default' : 'plain'}\n aria-current={page === currentPage ? 'page' : undefined}\n onClick={() => handlePageChange(page as number)}\n >\n {page}\n </Button>\n </li>\n )\n })}\n <li>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"ellipsis-next-btn\"\n >\n Next\n </Button>\n </li>\n </ul>\n </div>\n </div>\n )\n }\n\n return (\n <div\n data-testid=\"pagination-container\"\n className={buildClassName(\n 'flex items-center justify-between bg-white dark:bg-gray-800 px-4 py-3 sm:px-6',\n className,\n )}\n >\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"mobile-prev-btn\"\n >\n <span>Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"mobile-next-btn\"\n >\n <span>Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n <div className=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\n <p\n data-testid=\"pagination-summary\"\n className=\"text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1\"\n >\n Showing\n <span className=\"font-medium\">\n {total === 0 ? 0 : Math.max(currentPage * limit - limit + 1, 1)}\n </span>\n to\n <span className=\"font-medium\">{Math.min(currentPage * limit, total)}</span>\n of\n <span className=\"font-medium\">{total}</span>\n results\n </p>\n <nav className=\"isolate inline-flex items-center rounded-md\" aria-label=\"Pagination\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"prev-btn\"\n >\n <span className=\"sr-only\">Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n {pages.map((page) => (\n <Button\n key={page}\n size=\"xs\"\n theme={page === currentPage ? 'primary' : 'secondary'}\n variant={page === currentPage ? 'default' : 'plain'}\n aria-current={page === currentPage ? 'page' : undefined}\n onClick={() => handlePageChange(page)}\n >\n <span className=\"size-4 block\">{page}</span>\n </Button>\n ))}\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"next-btn\"\n >\n <span className=\"sr-only\">Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </nav>\n </div>\n </div>\n )\n}\n","export function get<T = any, R = any>(obj: T, path: string, defaultValue?: R): R {\n if (!path) return defaultValue as R\n\n const keys = path\n .replace(/\\[(\\d+)]/g, '.$1') // convert [0] to .0\n .split('.')\n .filter(Boolean) // remove empty parts\n\n return (\n keys.reduce<any>((acc, key) => {\n if (acc !== null && acc !== undefined && Object.prototype.hasOwnProperty.call(acc, key)) {\n return acc[key]\n }\n return undefined\n }, obj) ?? defaultValue\n )\n}\n","import type { DataValueType, Sorting, SortQuery } from './DataTable.types'\n\n/**\n * Compute the next sorting direction for a column.\n * - string: undefined → asc → desc → undefined\n * - number/date: undefined → 1 → -1 → undefined\n */\nexport const nextSortDirection = (\n prev: Sorting | undefined,\n type: 'string' | 'number' | 'date' = 'string',\n): Sorting | undefined => {\n if (type === 'string') {\n if (!prev) return 'asc'\n if (prev === 'asc') return 'desc'\n return undefined\n }\n\n // number / date\n if (!prev) return '1'\n if (prev === '1') return '-1'\n return undefined\n}\n\n/**\n * Update the sort query object for a table column.\n * Toggles sort direction, removing key when reset.\n */\nexport const updateSortQuery = (\n sortQuery: SortQuery,\n name: string,\n type: DataValueType = 'string',\n): SortQuery => {\n const next = nextSortDirection(sortQuery[name], type)\n\n // Shallow clone once\n const updated = { ...sortQuery }\n\n if (next == null) {\n delete updated[name]\n } else {\n updated[name] = next\n }\n\n return updated\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-wide-narrow-icon lucide-arrow-down-wide-narrow\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M11 4h10\"/><path d=\"M11 8h7\"/><path d=\"M11 12h4\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-narrow-wide-icon lucide-arrow-down-narrow-wide\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M11 4h4\"/><path d=\"M11 8h7\"/><path d=\"M11 12h10\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-az-icon lucide-arrow-down-a-z\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M20 8h-5\"/><path d=\"M15 10V6.5a2.5 2.5 0 0 1 5 0V10\"/><path d=\"M15 14h5l-5 6h5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-za-icon lucide-arrow-down-z-a\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 4v16\"/><path d=\"M15 4h5l-5 6h5\"/><path d=\"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20\"/><path d=\"M20 18h-5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-down-icon lucide-arrow-up-down\"><path d=\"m21 16-4 4-4-4\"/><path d=\"M17 20V4\"/><path d=\"m3 8 4-4 4 4\"/><path d=\"M7 4v16\"/></svg>","import type { SortIconKey, Sorting } from './DataTable.types'\nimport type { ReactNode } from 'react'\n/* Icons */\nimport ArrowDownWideNarrow from '../Icons/ArrowDownWideNarrow.svg'\nimport ArrowDownNarrowWide from '../Icons/ArrowDownNarrowWide.svg'\nimport ArrowDownAZ from '../Icons/ArrowDownAZ.svg'\nimport ArrowDownZA from '../Icons/ArrowDownZA.svg'\nimport ArrowUpDown from '../Icons/ArrowUpDown.svg'\n\nexport const SortIconMap: Record<SortIconKey, ReactNode> = {\n '1': (\n <ArrowDownNarrowWide className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n asc: (\n <ArrowDownAZ className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n '-1': (\n <ArrowDownWideNarrow className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n desc: (\n <ArrowDownZA className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n}\n\nexport const getSortIcon = (sort?: Sorting) =>\n sort ? (\n SortIconMap[sort as SortIconKey]\n ) : (\n <ArrowUpDown className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n )\n","import { useEffect, useRef, useState } from 'react'\nimport {\n EmptyTableRow,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeaderCell,\n TableRow,\n} from '../Table'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { DataTableProps, DataTableColumn, Sorting, SortQuery } from './DataTable.types'\nimport { TextContent } from '../TextContent'\nimport { Pagination } from '../Pagination'\nimport { get } from '../../utils/get'\nimport { updateSortQuery } from './DataTable.utils'\nimport { getSortIcon } from './DataTable.icons'\n\n/**\n * Smart auto-sort helper (optional usage)\n */\nconst autoSortItems = (items: any[], column: DataTableColumn, sort: Sorting) => {\n const path = column.name\n return [...items].sort((a, b) => {\n const valueA = get(a, path)\n const valueB = get(b, path)\n\n if (column.type === 'number') {\n const nA = Number(valueA)\n const nB = Number(valueB)\n return sort === 'asc' || sort === '1' ? nA - nB : nB - nA\n }\n\n if (column.type === 'date') {\n const dA = new Date(valueA).getTime()\n const dB = new Date(valueB).getTime()\n return sort === 'asc' || sort === '1' ? dA - dB : dB - dA\n }\n\n // String fallback\n const sA = String(valueA).toLowerCase()\n const sB = String(valueB).toLowerCase()\n if (sA < sB) return sort === 'asc' || sort === '1' ? -1 : 1\n if (sA > sB) return sort === 'asc' || sort === '1' ? 1 : -1\n return 0\n })\n}\n\nexport const DataTable: React.FC<DataTableProps> = ({\n items,\n columns,\n sorting = {},\n onSort,\n loading,\n pagination = null,\n setPagination = () => {},\n emptyMessage = 'No data found',\n containerClass = '',\n wrapperClass = '',\n layout = 'auto',\n}) => {\n const internalSorting = useRef<SortQuery>({})\n const [sortedItems, setSortedItems] = useState(items)\n\n useEffect(() => {\n setSortedItems(items)\n }, [items])\n\n const doAutoSort = (column: DataTableColumn) => {\n internalSorting.current = updateSortQuery(internalSorting.current, column.name, column.type)\n setSortedItems(autoSortItems(items, column, internalSorting.current[column.name]))\n }\n\n const handleSort = (column: DataTableColumn) => {\n if (!column.sortable) return\n onSort ? onSort(column) : doAutoSort(column)\n }\n\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'overflow-x-auto overflow-y-hidden rounded-lg border border-gray-200 dark:border-gray-800',\n wrapperClass,\n pagination && 'rounded-b-none border-b-0',\n )}\n >\n <Table className=\"relative w-full max-w-full h-fit\" layout={layout}>\n {/* Header */}\n <TableHead>\n {columns.map((column) => (\n <TableHeaderCell\n key={column.name}\n align={column.headerAlign}\n style={{ width: column.width || 'auto' }}\n className={buildClassName(\n 'bg-gray-50 dark:bg-gray-800',\n column.sticky === 'left' &&\n 'sticky left-0 z-10 shadow-[2px_0_6px_rgba(0,0,0,0.06)]',\n column.sticky === 'right' &&\n 'sticky right-0 z-10 shadow-[-2px_0_6px_rgba(0,0,0,0.06)]',\n )}\n >\n <TextContent\n role={column.sortable ? 'button' : undefined}\n className={buildClassName(\n 'group',\n column.sortable && 'inline-flex items-center gap-2 cursor-pointer select-none',\n )}\n onClick={() => handleSort(column)}\n >\n <TextContent className=\"shrink-0\">{column.label}</TextContent>\n {column.sortable ? getSortIcon(sorting[column.name]) : null}\n </TextContent>\n </TableHeaderCell>\n ))}\n </TableHead>\n\n {/* Body */}\n <TableBody loading={loading} colSize={columns.length} rowSize={pagination?.limit || 5}>\n {!loading && sortedItems.length === 0 ? (\n <EmptyTableRow colSpan={columns.length}>{emptyMessage}</EmptyTableRow>\n ) : (\n sortedItems.map((item) => (\n <TableRow key={item.id} className=\"group\">\n {columns.map((column) => (\n <TableCell\n key={column.name}\n align={column.align}\n className={buildClassName(\n column.sticky === 'left' &&\n 'sticky left-0 z-10 shadow-[2px_0_6px_rgba(0,0,0,0.06)]',\n column.sticky === 'right' &&\n 'sticky right-0 z-10 shadow-[-2px_0_6px_rgba(0,0,0,0.06)]',\n )}\n >\n {column.render\n ? column.render(item)\n : ((get(item, column.name) as any) ?? 'Not set')}\n </TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n </Table>\n </div>\n\n {/* Pagination */}\n {pagination && (\n <Pagination\n {...pagination}\n className=\"rounded-b-lg border border-t-0 border-gray-200 dark:border-gray-800\"\n onChange={setPagination}\n />\n )}\n </div>\n )\n}\n\nDataTable.displayName = 'DataTable'\n","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { HeadingTextProps } from './HeadingText.types'\n\nconst Title: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h1 className={buildClassName('text-3xl font-bold', className)}>{children}</h1>\n)\n\nconst SubTitle: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h2 className={buildClassName('text-2xl font-semibold', className)}>{children}</h2>\n)\n\nconst SubTitle2: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h3 className={buildClassName('text-xl font-semibold', className)}>{children}</h3>\n)\n\nconst SubTitle3: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h4 className={buildClassName('text-lg font-medium', className)}>{children}</h4>\n)\n\nconst SubTitle4: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h5 className={buildClassName('text-base font-medium', className)}>{children}</h5>\n)\n\nexport const HeadingText = {\n Title,\n SubTitle,\n SubTitle2,\n SubTitle3,\n SubTitle4,\n}\n","import { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { HeadingText } from '../HeadingText'\nimport { DetailedInformationProps } from './DetailedInformation.types'\n\nexport const DetailedInformation = forwardRef<HTMLDivElement, DetailedInformationProps>(\n (props, ref) => {\n const {\n className,\n title,\n subTitle,\n details,\n compact = false,\n divider = true,\n titleClass,\n detailsClass,\n ...divProps\n } = props\n\n const hasTitles = title || subTitle\n const filteredDetails = details.filter((detail) => !detail.hidden)\n return (\n <div\n className={buildClassName('p-2 md:p-4', compact ? 'md:p-2' : '', className)}\n ref={ref}\n {...divProps}\n >\n {hasTitles && (\n <div className=\"px-4 sm:px-0 pt-2 sm:pt-0 mb-2\">\n {title && (\n <HeadingText.SubTitle2 className={buildClassName(titleClass)}>\n {title}\n </HeadingText.SubTitle2>\n )}\n {subTitle && (\n <p className=\"mt-1 max-w-2xl text-sm/6 text-gray-500 dark:text-gray-300\">\n {subTitle}\n </p>\n )}\n </div>\n )}\n {filteredDetails.length ? (\n <div\n className={buildClassName(\n 'border-gray-100 dark:border-gray-700',\n hasTitles && 'border-t',\n detailsClass,\n )}\n >\n <dl\n className={buildClassName(divider && 'divide-y divide-gray-100 dark:divide-gray-700')}\n >\n {filteredDetails.map((detail) => (\n <div\n key={detail.label}\n className={buildClassName(\n 'px-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 items-center',\n compact ? 'py-1.5' : 'py-2.5',\n )}\n >\n <dt className=\"text-sm/6 font-medium text-gray-900 dark:text-gray-100\">\n {detail.label}\n </dt>\n <dd\n className={buildClassName(\n 'mt-1 text-sm/6 text-gray-700 dark:text-gray-300 sm:col-span-2 sm:mt-0',\n detail.contentClass,\n )}\n >\n {detail.value || '- -'}\n </dd>\n </div>\n ))}\n </dl>\n </div>\n ) : null}\n </div>\n )\n },\n)\n\nDetailedInformation.displayName = 'DetailedInformation'\n","import React, { type HTMLAttributes, type JSX, type JSXElementConstructor } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\nexport const Dot: React.FC<\n HTMLAttributes<HTMLElement> & {\n as?: keyof JSX.IntrinsicElements | JSXElementConstructor<any>\n }\n> = ({ as = 'span', className, ...props }) =>\n React.createElement(as, {\n className: buildClassName(\n 'inline-block rounded-full bg-gray-500 dark:bg-gray-300',\n 'w-1 h-1',\n className,\n ),\n ...props,\n })\n","import React from 'react'\nimport { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Button } from '../Button'\nimport ChevronLeftIcon from '../Icons/ChevronLeft.svg'\nimport type { DrawerProps, AlignmentMap, SizeMap } from './Drawer.types'\n\nconst alignmentMap: AlignmentMap = {\n center: 'items-center justify-center h-full',\n start: 'justify-start h-full',\n end: 'justify-end h-full',\n top: 'items-center justify-center',\n bottom: 'items-end justify-center h-full',\n}\n\nconst panelAlignmentMap: AlignmentMap = {\n center: 'data-[closed]:scale-95 rounded-lg',\n start: 'data-[closed]:-translate-x-1/2 rounded-r-lg',\n end: 'data-[closed]:translate-x-1/2 rounded-l-lg',\n top: 'data-[closed]:-translate-y-1/2 rounded-b-lg',\n bottom: 'data-[closed]:translate-y-1/2 rounded-t-lg',\n}\n\nconst panelSizeMap: SizeMap = {\n xs: 'max-w-xs',\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n '2xl': 'max-w-2xl',\n full: 'w-full',\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n isOpen,\n onClose = () => {},\n align = 'end',\n size = 'md',\n backdrop = true,\n title,\n description,\n children,\n panelClass = '',\n contentClass = '',\n titleClass = '',\n descriptionClass = '',\n titleSticky = false,\n showBackButton = false,\n}) => {\n const showTitleSection = Boolean(title || description)\n\n return (\n <Dialog\n open={isOpen}\n as=\"div\"\n className=\"relative z-50 focus:outline-none\"\n onClose={onClose}\n transition\n >\n {backdrop && <DialogBackdrop className=\"fixed inset-0 bg-black/20 transition-opacity\" />}\n\n <div className=\"fixed inset-0 w-screen h-screen\">\n <div className={buildClassName('flex', alignmentMap[align])}>\n <DialogPanel\n transition\n className={buildClassName(\n 'w-full bg-white dark:bg-gray-800 backdrop-blur-2xl shadow-sm',\n 'overflow-y-auto space-y-4 duration-200 ease-out data-[closed]:opacity-0',\n panelAlignmentMap[align],\n panelSizeMap[size],\n panelClass,\n )}\n >\n {showTitleSection && (\n <div\n className={buildClassName(\n 'space-y-2 pt-2 md:pt-4 px-4 md:px-6',\n titleSticky && 'sticky top-0 bg-white dark:bg-gray-800 z-10',\n )}\n >\n <DialogTitle\n as=\"h3\"\n className={buildClassName(\n 'text-lg font-medium dark:text-white flex items-center gap-2',\n titleClass,\n )}\n >\n {showBackButton && (\n <Button\n iconOnly\n aria-label=\"Close drawer\"\n variant=\"plain\"\n theme=\"secondary\"\n size=\"sm\"\n onClick={onClose}\n >\n <ChevronLeftIcon className=\"size-5\" />\n </Button>\n )}\n {title}\n </DialogTitle>\n\n {description && (\n <p className={buildClassName('text-sm dark:text-white/60', descriptionClass)}>\n {description}\n </p>\n )}\n </div>\n )}\n\n <div className={contentClass}>{children}</div>\n </DialogPanel>\n </div>\n </div>\n </Dialog>\n )\n}\n\nDrawer.displayName = 'Drawer'\n","import React, { Fragment } from 'react'\nimport { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { DropdownProps, DropdownItem } from './Dropdown.types'\n\nconst BASE_ITEM_CLASS =\n 'flex w-full px-3 py-2 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700 rounded-lg'\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n triggerButton,\n renderTriggerButton,\n items,\n renderItem,\n itemsContainerClass,\n transition = true,\n anchor = 'bottom start',\n menuItemClass,\n onMenuClick,\n}) => {\n return (\n <Menu as=\"div\" className=\"relative inline-block\">\n {/* Trigger */}\n {renderTriggerButton ? (\n <MenuButton as={Fragment}>\n {(state) => renderTriggerButton(state) as React.ReactElement}\n </MenuButton>\n ) : (\n <MenuButton as={Fragment}>{triggerButton}</MenuButton>\n )}\n\n {/* Dropdown Panel */}\n <MenuItems\n transition={transition}\n anchor={anchor}\n className={buildClassName(\n 'w-52 origin-top-right rounded-xl shadow-sm p-1 text-sm transition duration-100 ease-out',\n 'border border-gray-100 bg-white text-gray-800',\n 'dark:border-gray-700 dark:bg-gray-800 dark:text-gray-200',\n 'focus:outline-none data-[closed]:scale-95 data-[closed]:opacity-0',\n '[--anchor-gap:--spacing(1)]',\n itemsContainerClass,\n )}\n data-testid=\"dropdown-items\"\n as=\"ul\"\n >\n {items.map((item: DropdownItem, idx: number) => (\n <Fragment key={item.id}>\n <MenuItem as=\"li\" disabled={item.disabled}>\n {({ disabled }) => (\n <div\n onClick={() => !disabled && onMenuClick?.(item, idx)}\n className={buildClassName(\n BASE_ITEM_CLASS,\n menuItemClass,\n disabled && 'cursor-not-allowed opacity-70',\n )}\n data-testid={`dropdown-item-${item.id}`}\n >\n {renderItem ? renderItem(item) : item.label}\n </div>\n )}\n </MenuItem>\n {item.divider && (\n <li\n key={item.id}\n className=\"my-1 h-px bg-gray-200 dark:bg-white/5\"\n data-testid=\"dropdown-divider\"\n />\n )}\n </Fragment>\n ))}\n </MenuItems>\n </Menu>\n )\n}\n\nDropdown.displayName = 'Dropdown'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-folder-plus-icon lucide-folder-plus\"><path d=\"M12 10v6\"/><path d=\"M9 13h6\"/><path d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"/></svg>","import React, { type ReactNode } from 'react'\nimport FolderPlusIcon from '../Icons/FolderPlus.svg'\nimport { HeadingText } from '../HeadingText'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\n\nexport interface EmptyStateProps {\n title: string\n description?: string\n action?: ReactNode\n className?: string\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = ({\n title,\n description,\n className,\n action = null,\n}) => {\n return (\n <div className={buildClassName('w-full flex justify-center px-4 pt-16', className)}>\n <div className=\"max-w-md flex flex-col items-center gap-4\">\n <FolderPlusIcon className=\"size-8\" />\n <HeadingText.SubTitle>{title}</HeadingText.SubTitle>\n {description && (\n <BodyText as=\"p\" className=\"text-center\" muted small>\n {description}\n </BodyText>\n )}\n {action}\n </div>\n </div>\n )\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { InputProps } from './Input.types'\nimport { TextContent } from '../TextContent'\n\nexport function buildInputClass(\n className?: string,\n { isFocusWithin = false, disabled = false }: { isFocusWithin?: boolean; disabled?: boolean } = {},\n) {\n return buildClassName(\n 'transition-all',\n 'block w-full rounded-lg bg-white px-3.5 py-2 text-base sm:text-sm/6',\n 'text-gray-900 outline outline-1 -outline-offset-1',\n 'outline-gray-300 dark:outline-gray-600',\n 'invalid:group-[.has-error]:outline-red-500',\n disabled\n ? 'pointer-events-none bg-gray-100 dark:bg-gray-800 dark:text-gray-600 dark:placeholder-gray-600 placeholder-gray-400 outline-gray-200 dark:outline-gray-700'\n : 'bg-white dark:bg-gray-700 dark:text-white outline-gray-300 dark:outline-gray-600 dark:placeholder-gray-400 placeholder-gray-400',\n isFocusWithin\n ? 'focus-within:outline-blue-600 dark:focus-within:outline-blue-600 focus-within:outline-2 focus-within:-outline-offset-2'\n : 'focus:outline-blue-600 dark:focus:outline-blue-600 focus:outline-2 focus:-outline-offset-2',\n className,\n )\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const {\n name,\n id = name,\n type,\n label,\n labelHint,\n className,\n labelClass,\n labelWrapperClass,\n containerClass,\n error,\n showErrorMessage = true,\n rightGroup,\n leftGroup,\n ...inputProps\n } = props\n const hasError = Boolean(error)\n const hasRightGroup = rightGroup !== null && rightGroup !== undefined\n const hasLeftGroup = leftGroup != null && leftGroup !== undefined\n\n return (\n <div className={buildClassName('group', hasError && 'has-error', containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-2', labelWrapperClass)}\n >\n <Label className={labelClass} htmlFor={id}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n <div className=\"relative\">\n {hasLeftGroup && (\n <span className=\"absolute top-0 h-full flex items-center justify-center w-10\">\n {leftGroup}\n </span>\n )}\n <input\n ref={ref}\n autoComplete=\"off\"\n {...inputProps}\n name={name}\n id={id}\n type={type}\n className={buildClassName(\n buildInputClass(className, { disabled: inputProps.disabled }),\n hasRightGroup ? 'pe-10' : '',\n hasLeftGroup ? 'ps-10' : '',\n )}\n />\n {hasRightGroup && (\n <span className=\"absolute end-0.75 top-0 h-full flex items-center justify-center w-10\">\n {rightGroup}\n </span>\n )}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n\nInput.displayName = 'Input'\n","import { useState } from 'react'\nimport { Input, type InputProps } from '../Input'\nimport { Button } from '../Button'\n\nexport interface PasswordInputProps\n extends Omit<InputProps, 'rightGroup' | 'type' | 'placeholder'> {}\nexport const PASSWORD_TYPE = 'password'\nexport const PASSWORD_PLACEHOLDER = '••••••••••'\n\nexport const PasswordInput: React.FC<PasswordInputProps> = (props) => {\n const { ...inputProps } = props\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <Input\n {...inputProps}\n type={showPassword ? 'text' : PASSWORD_TYPE}\n placeholder={PASSWORD_PLACEHOLDER}\n rightGroup={\n <Button\n theme=\"secondary\"\n variant=\"plain\"\n size=\"xs\"\n className=\"px-1 mr-1\"\n type=\"button\"\n onClick={() => setShowPassword(() => !showPassword)}\n tabIndex={-1}\n >\n {showPassword ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n className=\"size-4\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"\n />\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n className=\"size-4\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z\"\n />\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n />\n </svg>\n )}\n </Button>\n }\n />\n )\n}\n","import { forwardRef, useId } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { RadioProps } from './Radio.types'\nimport { TextContent } from '../TextContent'\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>((props, ref) => {\n const {\n id,\n name,\n label,\n labelClass = '',\n wrapperClass = '',\n containerClass = '',\n error,\n disabled = false,\n className = '',\n // RadioButton-only props removed from rest\n ...rest\n } = props\n\n const generatedId = useId()\n const radioId = id ?? name ?? generatedId\n\n return (\n <div className={buildClassName(wrapperClass)}>\n <div className={buildClassName('flex items-center gap-2', containerClass)}>\n <div className=\"grid place-items-center\">\n <input\n ref={ref}\n {...rest}\n id={radioId}\n name={name}\n type=\"radio\"\n disabled={disabled}\n aria-checked={rest.checked}\n className={buildClassName(\n 'peer transition-all col-start-1 row-start-1 appearance-none shrink-0 size-4.5 rounded-full',\n 'border focus:ring-2 focus:ring-offset-2',\n 'checked:border-5 checked:bg-white',\n 'focus:ring-blue-500 checked:focus:ring-blue-600 dark:focus:ring-offset-gray-800',\n disabled\n ? 'border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 pointer-events-none'\n : buildClassName(\n 'bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500',\n 'checked:border-blue-600 checked:hover:border-blue-600 dark:checked:border-blue-600 dark:checked:hover:border-blue-600',\n ),\n className,\n )}\n />\n </div>\n {label && (\n <Label\n htmlFor={radioId}\n className={buildClassName(\n disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500'\n : 'cursor-pointer text-gray-600 dark:text-gray-300',\n labelClass,\n )}\n >\n {label}\n </Label>\n )}\n </div>\n {error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React, { useMemo } from 'react'\nimport { Radio } from '../Radio'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport { RadioGroupProps, RadionGroupItem } from './RadioGroup.types'\n\nexport const RadioGroup: React.FC<RadioGroupProps> = (props) => {\n const {\n name,\n label,\n labelClass,\n labelWrapperClass,\n labelHint,\n containerClass,\n options,\n value,\n row,\n error,\n showErrorMessage,\n onChange,\n } = props\n const items = useMemo(\n () =>\n options?.map((option) =>\n typeof option === 'string' ? { label: option, value: option } : option,\n ) ?? [],\n [options],\n )\n\n return (\n <div className={buildClassName(containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-4', labelWrapperClass)}\n >\n <Label className={labelClass}>{label}</Label>\n {labelHint}\n </div>\n )}\n <div\n className={buildClassName(\n 'flex gap-4',\n row ? 'flex-row items-center' : 'flex-col items-start',\n )}\n >\n {items.map((item) => (\n <Radio\n key={item.value}\n name={name}\n id={`${name}-${item.value}`}\n label={item.label}\n value={item.value}\n checked={value === item.value}\n onChange={onChange}\n />\n ))}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Radio, RadioGroup } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { RadioSwitchItem, RadioSwitchProps } from './RadioSwitch.types'\nimport { BodyText } from '../BodyText'\n\n/**\n * GPU-accelerated Radio Switch with perfect highlight alignment.\n * Supports wrapping, icons, descriptions, and dark mode.\n */\nexport const RadioSwitch: React.FC<RadioSwitchProps> = ({\n label,\n items,\n selected,\n onChange,\n wrapperClass,\n switchClass,\n contentClass,\n descriptionClass,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const [style, setStyle] = useState({ left: 0, top: 0, width: 0, height: 0 })\n\n const getLabel = (i: RadioSwitchItem) => (typeof i === 'string' ? i : i.label)\n\n const getValue = (i: RadioSwitchItem) => (typeof i === 'string' ? i : i.value)\n\n const getDescription = (i: RadioSwitchItem) =>\n typeof i === 'string' ? '' : (i.description ?? '')\n\n /** ---------------------------------------------\n * Update highlight when selected changes\n * ----------------------------------------------*/\n useEffect(() => {\n if (!containerRef.current) return\n\n const buttons = Array.from(\n containerRef.current.querySelectorAll('[data-radio-item]'),\n ) as HTMLElement[]\n\n const el = buttons.find((b) => b.dataset.value === selected)\n if (!el) return\n\n const rect = el.getBoundingClientRect()\n const parentRect = containerRef.current.getBoundingClientRect()\n\n const left = rect.left - parentRect.left\n const top = rect.top - parentRect.top\n\n setStyle({\n left,\n top,\n width: rect.width,\n height: rect.height,\n })\n }, [selected, items])\n\n return (\n <RadioGroup\n value={selected}\n onChange={onChange}\n aria-label={label}\n ref={containerRef}\n className={buildClassName(\n 'relative flex flex-wrap gap-1',\n 'transition-colors duration-200 overflow-hidden',\n wrapperClass,\n )}\n >\n {/* Sliding highlight — GPU optimized */}\n <div\n className={buildClassName(\n 'absolute rounded-md bg-blue-600 dark:bg-blue-500',\n 'transition-transform transition-size duration-300 ease-[cubic-bezier(.25,.8,.25,1)]',\n switchClass,\n )}\n style={{\n transform: `translate(${style.left}px, ${style.top}px)`,\n width: style.width,\n height: style.height,\n }}\n />\n\n {/* Items */}\n {items.map((item) => (\n <Radio\n key={getValue(item)}\n value={getValue(item)}\n data-radio-item\n data-value={getValue(item)}\n className={buildClassName(\n 'relative z-10 cursor-pointer select-none group',\n 'px-4 py-2 rounded-md transition-colors',\n 'text-gray-700 dark:text-gray-300 data-checked:text-white',\n )}\n >\n <div\n className={buildClassName(\n 'flex flex-col items-center justify-center gap-1',\n contentClass,\n )}\n >\n <BodyText className=\"font-semibold\">{getLabel(item)}</BodyText>\n\n {getDescription(item) && (\n <BodyText className={buildClassName('text-xs opacity-80', descriptionClass)}>\n {getDescription(item)}\n </BodyText>\n )}\n </div>\n </Radio>\n ))}\n </RadioGroup>\n )\n}\n","/**\n * Checks if a value is an array.\n * Equivalent to lodash's _.isArray.\n */\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value)\n}\n","import { isArray } from './is-array'\n\n/**\n * Checks if a value is empty.\n * Works for arrays, objects, strings, Maps, and Sets.\n * Equivalent to lodash's _.isEmpty.\n */\nexport function isEmpty(value: any): boolean {\n if (value == null) return true // null or undefined\n\n if (typeof value === 'string' || isArray(value)) {\n return value.length === 0\n }\n\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0\n }\n\n if (typeof value === 'object') {\n return Object.keys(value).length === 0\n }\n\n return false // for numbers, booleans, functions, etc.\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { TextContent } from '../TextContent'\nimport { RangeInputProps } from './RangeInput.types'\n\n// export interface RangeInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {\n// label?: string\n// labelClass?: string\n// labelHint?: React.ReactNode\n// containerClass?: string\n// showValue?: boolean\n// valueSuffix?: string\n// error?: string | null\n// showErrorMessage?: boolean\n// }\n\nexport const RangeInput = forwardRef<HTMLInputElement, RangeInputProps>((props, ref) => {\n const {\n label,\n labelClass = '',\n labelHint = null,\n containerClass = '',\n className = '',\n showValue = true,\n valueSuffix = '',\n error = null,\n showErrorMessage = true,\n id,\n min = 0,\n max = 100,\n value,\n ...inputProps\n } = props\n\n const hasError = !isEmpty(error)\n\n return (\n <div className={buildClassName('group space-y-2', containerClass)}>\n {label && (\n <div className=\"flex items-center justify-between\">\n <Label htmlFor={id} className={labelClass}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n\n <div className=\"flex items-center gap-3\">\n <input\n ref={ref}\n type=\"range\"\n id={id}\n min={min}\n max={max}\n value={value}\n {...inputProps}\n className={buildClassName(\n 'w-full h-2 rounded-lg appearance-none cursor-pointer',\n 'bg-gray-200 dark:bg-gray-700',\n 'accent-blue-600', // for WebKit\n '[&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4',\n '[&::-webkit-slider-thumb]:rounded-full',\n '[&::-webkit-slider-thumb]:bg-blue-600',\n '[&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4',\n '[&::-moz-range-thumb]:rounded-full',\n '[&::-moz-range-thumb]:bg-blue-600',\n hasError && 'accent-red-600',\n className,\n )}\n />\n\n {showValue && (\n <span className=\"text-sm text-gray-600 dark:text-gray-300 min-w-[3rem] text-right\">\n {value}\n {valueSuffix}\n </span>\n )}\n </div>\n\n {showErrorMessage && hasError && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { RangeSliderProps } from './RangeSlider.types'\nimport { TextContent } from '../TextContent'\n\nexport const RangeSlider: React.FC<RangeSliderProps> = ({\n label,\n labelHint,\n labelClass = '',\n containerClass = '',\n className = '',\n min,\n max,\n valueMin,\n valueMax,\n onChange,\n valueSuffix = '',\n error = null,\n showErrorMessage = true,\n}) => {\n const trackRef = useRef<HTMLDivElement | null>(null)\n\n // Refs for drag logic\n const activeThumbRef = useRef<'min' | 'max' | null>(null)\n\n // State for UI styling\n const [activeThumbState, setActiveThumbState] = useState<'min' | 'max' | null>(null)\n\n // Keep prop values in refs so drag handlers always use latest values (no stale closure)\n const valueMinRef = useRef(valueMin)\n const valueMaxRef = useRef(valueMax)\n const onChangeRef = useRef(onChange)\n valueMinRef.current = valueMin\n valueMaxRef.current = valueMax\n onChangeRef.current = onChange\n\n const hasError = !isEmpty(error)\n const percent = (v: number) => ((v - min) / (max - min)) * 100\n\n // Stable handler references registered on window — these never change identity\n // so removeEventListener always finds the right listener to remove.\n const stablePointerMoveRef = useRef((e: PointerEvent) => {\n if (!trackRef.current || !activeThumbRef.current) return\n const rect = trackRef.current.getBoundingClientRect()\n const x = Math.min(Math.max(e.clientX - rect.left, 0), rect.width)\n const rawVal = min + (x / rect.width) * (max - min)\n if (activeThumbRef.current === 'min') {\n onChangeRef.current(Math.min(rawVal, valueMaxRef.current - 1), valueMaxRef.current)\n } else {\n onChangeRef.current(valueMinRef.current, Math.max(rawVal, valueMinRef.current + 1))\n }\n })\n\n const stablePointerUpRef = useRef(() => {\n activeThumbRef.current = null\n setActiveThumbState(null)\n window.removeEventListener('pointermove', stablePointerMoveRef.current)\n window.removeEventListener('pointerup', stablePointerUpRef.current)\n })\n\n // Remove listeners on unmount in case a drag is in progress\n useEffect(() => {\n const move = stablePointerMoveRef.current\n const up = stablePointerUpRef.current\n return () => {\n window.removeEventListener('pointermove', move)\n window.removeEventListener('pointerup', up)\n }\n }, [])\n\n // ---------------------------------------------\n // Pointer Move (drag)\n // ---------------------------------------------\n const startDrag = (thumb: 'min' | 'max') => (_e: React.PointerEvent) => {\n activeThumbRef.current = thumb\n setActiveThumbState(thumb)\n window.addEventListener('pointermove', stablePointerMoveRef.current)\n window.addEventListener('pointerup', stablePointerUpRef.current)\n }\n\n // ---------------------------------------------\n // Click Track to move closest thumb\n // ---------------------------------------------\n const handleTrackClick = (e: React.MouseEvent) => {\n if (!trackRef.current) return\n\n const rect = trackRef.current.getBoundingClientRect()\n const x = Math.min(Math.max(e.clientX - rect.left, 0), rect.width)\n const rawVal = min + (x / rect.width) * (max - min)\n const pxMin = (percent(valueMin) / 100) * rect.width\n const pxMax = (percent(valueMax) / 100) * rect.width\n\n // If click is left of min thumb → move min thumb\n if (x <= pxMin) {\n onChange(rawVal, valueMax)\n return\n }\n\n // If click is right of max thumb → move max thumb\n if (x >= pxMax) {\n onChange(valueMin, rawVal)\n return\n }\n\n // Else click is between → move closest thumb\n const distMin = Math.abs(rawVal - valueMin)\n const distMax = Math.abs(rawVal - valueMax)\n\n if (distMin < distMax) {\n onChange(rawVal, valueMax)\n } else {\n onChange(valueMin, rawVal)\n }\n }\n\n return (\n <div className={buildClassName('group space-y-2', hasError && 'has-error', containerClass)}>\n {/* Label */}\n {label && (\n <div className=\"flex items-center justify-between mb-1\">\n <Label className={labelClass}>{label}</Label>\n {labelHint}\n </div>\n )}\n\n {/* TRACK */}\n <div\n ref={trackRef}\n onMouseDown={handleTrackClick}\n className=\"relative h-8 select-none w-full\"\n data-testid=\"range-track\"\n >\n {/* Track background */}\n <div className=\"absolute top-1/2 left-0 right-0 h-2 rounded-full bg-gray-200 dark:bg-gray-700 -translate-y-1/2\" />\n\n {/* Highlight active section */}\n <div\n className=\"absolute top-1/2 h-2 bg-blue-600 dark:bg-blue-500 -translate-y-1/2 rounded-full \n transition-all duration-150 ease-out\"\n style={{\n left: `${percent(valueMin)}%`,\n width: `${percent(valueMax) - percent(valueMin)}%`,\n }}\n />\n\n {/* MIN THUMB */}\n <div\n onPointerDown={startDrag('min')}\n className={buildClassName(\n 'absolute top-1/2 -translate-y-1/2 h-5 w-5 rounded-full',\n 'bg-white border-2 border-blue-600 shadow-md cursor-pointer touch-none',\n 'transition-all duration-150 ease-out', // animation\n activeThumbState === 'min' && 'ring-4 ring-blue-200',\n className,\n )}\n style={{\n left: `calc(${percent(valueMin)}% - 10px)`,\n zIndex: activeThumbState === 'min' ? 50 : 30,\n }}\n data-testid=\"thumb-min\"\n />\n\n {/* MAX THUMB */}\n <div\n onPointerDown={startDrag('max')}\n className={buildClassName(\n 'absolute top-1/2 -translate-y-1/2 h-5 w-5 rounded-full',\n 'bg-white border-2 border-blue-600 shadow-md cursor-pointer touch-none',\n 'transition-all duration-150 ease-out', // animation\n activeThumbState === 'max' && 'ring-4 ring-blue-200',\n className,\n )}\n style={{\n left: `calc(${percent(valueMax)}% - 10px)`,\n zIndex: activeThumbState === 'max' ? 50 : 40,\n }}\n data-testid=\"thumb-max\"\n />\n </div>\n\n {/* Numbers */}\n <div className=\"flex justify-between text-sm text-gray-700 dark:text-gray-300\">\n <span>\n {Math.round(valueMin)}\n {valueSuffix}\n </span>\n <span>\n {Math.round(valueMax)}\n {valueSuffix}\n </span>\n </div>\n\n {/* Error message */}\n {showErrorMessage && hasError && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n}\n","import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport const useDebounce = <T,>(value: T, delay: number): T => {\n const [debouncedValue, setDebouncedValue] = useState<T>(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n // Cancel the timeout if value or delay changes\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n\nexport const useDebounceFn = (fn: (...args: any[]) => void, ms: number) => {\n const timeout = useRef<any>(null)\n\n useEffect(() => {\n return () => clearTimeout(timeout.current)\n }, [])\n\n return useCallback(\n (...args: any[]) => {\n clearTimeout(timeout.current)\n timeout.current = setTimeout(() => fn(...args), ms)\n },\n [fn, ms],\n )\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-check-icon lucide-check\"><path d=\"M20 6 9 17l-5-5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-down-icon lucide-chevron-down\"><path d=\"m6 9 6 6 6-6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-plus-icon lucide-circle-plus\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M8 12h8\"/><path d=\"M12 8v8\"/></svg>","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n Combobox,\n ComboboxButton,\n ComboboxInput,\n ComboboxOption,\n ComboboxOptions,\n} from '@headlessui/react'\n\nimport { Label } from '../Label'\nimport { Badge } from '../Badge'\nimport { Loader } from '../Loader'\nimport { TextContent } from '../TextContent'\nimport { Button } from '../Button'\n\nimport { isArray } from '../../utils/is-array'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { useDebounce } from '../../hooks/use-debounce'\n\nimport CheckIcon from '../Icons/Check.svg'\nimport ChevronDownIcon from '../Icons/ChevronDown.svg'\nimport XIcon from '../Icons/X.svg'\nimport CirclePlusIcon from '../Icons/CirclePlus.svg'\nimport type { BaseOption, SelectBoxProps } from './SelectBox.types'\nimport { buildInputClass } from '../Input'\n\nconst constructInputClass = (disabled: boolean) => buildInputClass('', { disabled })\n\nexport const SelectBox = forwardRef(\n <T extends BaseOption | string = BaseOption>(\n props: SelectBoxProps<T>,\n forwardedRef: React.Ref<HTMLInputElement | HTMLDivElement | null>,\n ) => {\n const {\n labelKey = 'label',\n valueKey = 'value',\n name,\n id = name,\n options,\n selected,\n label = null,\n labelWrapperClass = '',\n labelClass = '',\n labelHint = null,\n disabled = false,\n containerClass = '',\n onChange = () => {},\n placeholder,\n dropdownContainerClass = 'z-20',\n multiple = false,\n maxSelection,\n immediate = true,\n showErrorMessage = true,\n error = null,\n async = false,\n searchable = true,\n required = false,\n allowAdd = false,\n addNewText = 'Create',\n onAdd = () => {},\n allowClear = false,\n } = props\n\n const hasError = Boolean(error)\n const [query, setQuery] = useState('')\n const debouncedQuery = useDebounce(query, 500)\n const [optionsLoading, setOptionsLoading] = useState(false)\n const shouldShowTypeToSearch = async && !query && !optionsLoading && options.length === 0\n const inputClass = useMemo(() => constructInputClass(disabled), [disabled])\n const chevronIconClass = buildClassName(\n 'size-4',\n 'stroke-gray-500 group-data-[hover]:stroke-gray-800',\n 'dark:stroke-gray-300 dark:group-data-[hover]:stroke-gray-100',\n disabled && 'dark:stroke-gray-600 stroke-gray-400',\n )\n\n const inputRef = useRef<HTMLInputElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n\n // Expose the input element to parent\n useImperativeHandle(forwardedRef, () => inputRef.current!, [inputRef])\n\n const filteredOptions = useMemo(() => {\n if (query === '' || async) return options\n return options.filter((opt) => {\n const label = typeof opt === 'string' ? opt : (opt as BaseOption)[labelKey]\n return label?.toLowerCase().includes(query.toLowerCase())\n })\n }, [options, query, async, labelKey])\n\n const getDisplayValue = useCallback(\n (opt: T) => {\n return typeof opt === 'string' ? opt : opt[labelKey]\n },\n [labelKey],\n )\n\n const getValue = useCallback(\n (opt: T) => {\n return typeof opt === 'string' ? opt : opt[valueKey]\n },\n [valueKey],\n )\n\n const removeSelection = (idx: number) => {\n if (!isArray(selected)) return\n const next = [...selected]\n next.splice(idx, 1)\n onChange(next)\n inputRef.current?.focus()\n }\n\n // A strongly-typed internal handler (what you expect callers to receive)\n const handleOnChangeInternal = useCallback(\n (value: T | T[] | null) => {\n // normal empty value\n if (value === null) {\n onChange(multiple ? ([] as T[]) : null)\n setQuery('')\n return\n }\n\n // enforce maxSelection\n if (multiple && Array.isArray(value) && maxSelection && value.length > maxSelection) {\n // ignore the change\n return\n }\n\n onChange(value as T | T[])\n setQuery('')\n },\n [onChange, multiple, maxSelection],\n )\n\n /**\n * Headless UI typings are overly broad (they include null[] and EnsureArray<T> etc).\n * We therefore pass a wrapper to the Combobox with a cast (only at the call site),\n * while keeping our internal logic strongly typed.\n */\n const comboboxOnChangeWrapper = useCallback(\n (raw: unknown) => {\n // normalize actual runtime shapes Headless UI uses: T | T[] | null\n if (raw === null || raw === undefined) {\n handleOnChangeInternal(null)\n return\n }\n\n if (Array.isArray(raw)) {\n // sometimes union typing suggests arrays of nulls — guard it\n const allNulls = raw.length > 0 && raw.every((v) => v === null)\n if (allNulls) {\n handleOnChangeInternal([] as unknown as T[])\n return\n }\n // cast array to T[]\n handleOnChangeInternal(raw as unknown as T[])\n return\n }\n\n // single value\n handleOnChangeInternal(raw as unknown as T)\n },\n [handleOnChangeInternal],\n )\n\n // support create (allowAdd) as a real ComboboxOption\n const handleAddAndSelect = useCallback(\n async (valueToAdd: string) => {\n try {\n const result = await onAdd(valueToAdd)\n // if the parent returned a new option (string or object), select it\n if (result) {\n // If parent returned raw string or object, call onChange with that\n handleOnChangeInternal(result as unknown as T)\n } else {\n // if parent didn't return anything, select the raw string value\n handleOnChangeInternal(valueToAdd as unknown as T)\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('onAdd handler error', err)\n }\n },\n [onAdd, handleOnChangeInternal],\n )\n\n const handleSearch = useCallback(\n async (searchString: string) => {\n try {\n setOptionsLoading(true)\n await props.onSearch?.(searchString)\n } catch (err) {\n console.error('Error loading options:', err)\n } finally {\n setOptionsLoading(false)\n }\n },\n [props.onSearch],\n )\n\n useEffect(() => {\n if (async && debouncedQuery) handleSearch(debouncedQuery)\n }, [debouncedQuery, async, handleSearch])\n\n return (\n <div\n className={buildClassName('group space-y-2', hasError && 'has-error', containerClass)}\n ref={containerRef}\n >\n {label && (\n <div className={buildClassName('flex items-center justify-between', labelWrapperClass)}>\n <Label className={labelClass} htmlFor={id} aria-required={required}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n\n <Combobox\n multiple={multiple}\n immediate={immediate}\n name={name}\n value={selected}\n onChange={comboboxOnChangeWrapper as any}\n onClose={() => setQuery('')}\n disabled={disabled}\n >\n {multiple ? (\n <div\n className={buildClassName(inputClass, 'flex flex-wrap gap-2 peer relative')}\n ref={forwardedRef as any} // ensure parent ref hits a real DOM node\n >\n {isArray(selected) &&\n selected?.length > 0 &&\n selected.map((option, idx) => (\n <Badge\n key={`${getValue(option)}-${idx}`}\n theme=\"secondary\"\n removable={!disabled}\n onRemove={() => removeSelection(idx)}\n >\n {getDisplayValue(option)}\n </Badge>\n ))}\n\n <ComboboxInput\n className=\"outline-none flex-1 dark:placeholder-gray-400 placeholder-gray-400\"\n aria-label={name}\n value={query}\n autoComplete=\"off\"\n placeholder={selected?.length ? '' : placeholder}\n onChange={(e) => setQuery(e.target.value)}\n id={id}\n ref={inputRef}\n onKeyDown={(e) => {\n if (multiple && e.key === 'Backspace' && !query) {\n if (Array.isArray(selected) && selected.length > 0) {\n removeSelection(selected.length - 1)\n }\n }\n }}\n data-testid=\"combobox-input\"\n />\n\n <ComboboxButton\n className=\"group absolute inset-y-0 right-0 px-2.5\"\n data-testid=\"combobox-button\"\n >\n <ChevronDownIcon className={chevronIconClass} />\n </ComboboxButton>\n </div>\n ) : (\n <div className=\"relative\" ref={forwardedRef as any}>\n <ComboboxInput\n aria-label={name}\n displayValue={(option: any) => (option ? getDisplayValue(option) : null)}\n autoComplete=\"off\"\n placeholder={placeholder}\n onChange={(event) => setQuery(event.target.value)}\n className={inputClass}\n disabled={disabled}\n id={id}\n readOnly={!searchable}\n ref={inputRef}\n data-testid=\"combobox-input\"\n />\n\n {allowClear && !isEmpty(selected) && (\n <Button\n size=\"xs\"\n iconOnly\n aria-label=\"Clear selection\"\n theme=\"secondary\"\n variant=\"plain\"\n className=\"group absolute inset-y-0 right-8 h-6 top-2\"\n onClick={() => handleOnChangeInternal(multiple ? ([] as T[]) : null)}\n disabled={disabled}\n data-testid=\"combobox-clear-button\"\n noOutlineOnFocus\n >\n <XIcon className=\"size-4 stroke-gray-500\" />\n </Button>\n )}\n\n <ComboboxButton\n className=\"group absolute inset-y-0 right-0 px-2.5\"\n data-testid=\"combobox-button\"\n >\n <ChevronDownIcon className={chevronIconClass} />\n </ComboboxButton>\n </div>\n )}\n\n <ComboboxOptions\n anchor={{ to: 'bottom', gap: 5 }}\n as=\"div\"\n className={buildClassName(\n 'w-[var(--input-width)] rounded-lg border border-gray-200 dark:border-white/5 bg-white dark:bg-gray-800 p-1 [--anchor-gap:var(--spacing-1)]',\n '[--anchor-max-height:20rem]',\n 'origin-top border transition duration-200 ease-[cubic-bezier(0.4, 0.0, 0.2, 1)] data-[closed]:translate-y-[-15%] data-[closed]:opacity-0',\n dropdownContainerClass,\n )}\n transition\n data-testid=\"combobox-options\"\n >\n {optionsLoading ? (\n <div\n data-testid=\"options-loading\"\n className=\"flex items-center justify-center py-2 px-3 select-none\"\n >\n <Loader size=\"sm\" />\n </div>\n ) : shouldShowTypeToSearch ? (\n <div className=\"flex items-center justify-between py-2 px-3 select-none\">\n Type to search...\n </div>\n ) : (\n <div>\n {filteredOptions.map((option) => (\n <ComboboxOption\n key={getValue(option)}\n disabled={(option as BaseOption).disabled}\n value={option}\n className=\"group rounded-lg py-1.5 px-3 select-none data-[focus]:bg-black/3 dark:data-[focus]:bg-white/10 data-disabled:opacity-50 cursor-pointer data-disabled:pointer-events-none\"\n >\n {/* Wrap the option content in a single element to avoid Fragment ref errors */}\n <div className=\"flex items-center justify-between gap-2 dark:text-white group-data-[selected]:text-blue-600\">\n <span className=\"text-sm/6\">{getDisplayValue(option)}</span>\n <CheckIcon className=\"invisible size-5 dark:stroke-gray-300 group-data-[selected]:visible\" />\n </div>\n </ComboboxOption>\n ))}\n\n {filteredOptions.length === 0 && query && !optionsLoading && (\n <div\n data-testid=\"no-result-found\"\n className=\"flex items-center gap-2 py-1.5 px-3 select-none text-gray-500 dark:text-gray-400\"\n >\n No results found for <span className=\"font-semibold\">{query}</span>\n </div>\n )}\n\n {allowAdd && (\n <ComboboxOption\n value={query}\n className=\"group rounded-lg py-1.5 px-3 cursor-pointer text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700\"\n onClick={() => void handleAddAndSelect(query)}\n >\n {/* Single wrapper here too */}\n <div className=\"flex items-center gap-2\">\n <CirclePlusIcon className=\"size-4.5\" />\n <TextContent>\n {addNewText} \"{query}\"\n </TextContent>\n </div>\n </ComboboxOption>\n )}\n </div>\n )}\n </ComboboxOptions>\n </Combobox>\n\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n },\n)\n","import React, { Fragment, type ReactNode } from 'react'\nimport { Tab, TabGroup, TabList, TabPanels, TabPanel } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TabsProps } from './Tabs.types'\n\nexport const Tabs: React.FC<TabsProps> = ({\n tabs,\n defaultIndex = 0,\n variant = 'underline',\n className = '',\n listClass = '',\n panelClass = '',\n}) => {\n return (\n <TabGroup defaultIndex={defaultIndex} className={className}>\n <TabList className={buildClassName('flex gap-2', listClass)}>\n {tabs.map((tab, idx) => (\n <Tab key={idx} as={Fragment}>\n {({ selected }) => (\n <button className={buildTabClass({ selected, variant })}>{tab.label}</button>\n )}\n </Tab>\n ))}\n </TabList>\n\n <TabPanels className={buildClassName('mt-3', panelClass)}>\n {tabs.map((tab, idx) => (\n <TabPanel key={idx} className=\"rounded-lg bg-white dark:bg-gray-800 p-4 shadow-sm\">\n {tab.content}\n </TabPanel>\n ))}\n </TabPanels>\n </TabGroup>\n )\n}\n\n/**\n * Build tab styles based on variant + active state\n */\nfunction buildTabClass({\n selected,\n variant,\n}: {\n selected: boolean\n variant: 'underline' | 'segmented' | 'solid'\n}) {\n switch (variant) {\n /**\n * UNDERLINE (Default)\n */\n case 'underline':\n return buildClassName(\n 'px-3 py-1.5 text-sm font-medium transition relative',\n 'text-gray-600 dark:text-gray-300',\n 'hover:text-gray-900 dark:hover:text-white',\n selected &&\n 'text-gray-900 dark:text-white after:absolute after:left-0 after:right-0 after:-bottom-1 after:h-0.5 after:bg-blue-600',\n )\n\n /**\n * SEGMENTED\n */\n case 'segmented':\n return buildClassName(\n 'px-3 py-1.5 text-sm font-medium rounded-lg transition',\n selected\n ? 'bg-blue-600 text-white'\n : 'text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700',\n )\n\n /**\n * SOLID\n */\n case 'solid':\n return buildClassName(\n 'px-3 py-1.5 text-sm font-medium rounded-md transition',\n selected\n ? 'bg-gray-900 dark:bg-gray-700 text-white'\n : 'bg-gray-200 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-700',\n )\n }\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { isEmpty } from '../../utils/is-empty'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport type { TextareaProps } from './Textarea.types'\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>((props, ref) => {\n const {\n name,\n id = name,\n label = null,\n labelHint = null,\n className = '',\n labelClass = '',\n labelWrapperClass = '',\n containerClass = '',\n error,\n showErrorMessage = true,\n rightGroup = null,\n leftGroup = null,\n ...inputProps\n } = props\n const hasError = !isEmpty(error)\n const hasRightGroup = rightGroup != null && rightGroup !== undefined\n const hasLeftGroup = leftGroup != null && leftGroup !== undefined\n\n return (\n <div className={buildClassName('group', hasError && 'has-error', containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-2', labelWrapperClass)}\n >\n <Label className={labelClass} htmlFor={id}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n <div className=\"relative\">\n {hasLeftGroup && (\n <span className=\"absolute top-0 h-full flex items-center justify-center w-10\">\n {leftGroup}\n </span>\n )}\n <textarea\n ref={ref}\n autoComplete=\"off\"\n {...inputProps}\n name={name}\n id={id}\n className={buildClassName(\n 'transition-all',\n 'block w-full rounded-lg bg-white px-3.5 py-2 text-base sm:text-sm/6',\n 'text-gray-900 outline dark:outline outline-1 -outline-offset-1',\n 'outline-gray-300 dark:outline-gray-600',\n 'focus:outline-blue-600 dark:focus:outline-blue-600 focus:outline-2 focus:-outline-offset-2',\n 'dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-500 placeholder:text-gray-400 dark:text-white',\n 'invalid:group-[.has-error]:outline-red-500',\n 'disabled:pointer-events-none disabled:bg-gray-100',\n 'dark:disabled:bg-gray-500',\n hasRightGroup ? 'pe-10' : '',\n hasLeftGroup ? 'ps-10' : '',\n className,\n )}\n />\n {hasRightGroup && (\n <span className=\"absolute end-0.75 top-0 h-full flex items-center justify-center\">\n {rightGroup}\n </span>\n )}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React from 'react'\nimport { Transition } from '@headlessui/react'\nimport XIcon from '../Icons/X.svg'\nimport CheckCircle from '../Icons/CircleCheck.svg'\nimport AlertCircle from '../Icons/CircleAlert.svg'\nimport Info from '../Icons/Info.svg'\nimport AlertTriangle from '../Icons/TriangleAlert.svg'\n\nimport { Button } from '../Button'\nimport { TextContent } from '../TextContent'\nimport { buildClassName } from '../../utils/build-classname'\n\nimport { ToastProps } from './Toast.types'\n\n/**\n * Icons for each toast type\n */\nconst iconMap = {\n success: <CheckCircle className=\"size-5 text-green-600 dark:text-green-400\" />,\n error: <AlertCircle className=\"size-5 text-red-600 dark:text-red-400\" />,\n info: <Info className=\"size-5 text-blue-600 dark:text-blue-400\" />,\n warning: <AlertTriangle className=\"size-5 text-yellow-600 dark:text-yellow-400\" />,\n}\n\n/**\n * Subtle icon + text color adjustments\n */\nconst textColorMap = {\n success: 'text-green-900 dark:text-green-200',\n error: 'text-red-900 dark:text-red-200',\n info: 'text-blue-900 dark:text-blue-200',\n warning: 'text-yellow-900 dark:text-yellow-200',\n}\n\n/**\n * Pleasant colored *top border only*\n * No background color — soft neutral surface\n */\nconst borderStyle = {\n success: 'border-t-4 border-green-600 dark:border-green-400',\n error: 'border-t-4 border-red-600 dark:border-red-400',\n info: 'border-t-4 border-blue-600 dark:border-blue-400',\n warning: 'border-t-4 border-yellow-600 dark:border-yellow-400',\n}\n\nexport const Toast: React.FC<ToastProps & { isTop?: boolean }> = ({\n message,\n type,\n onClose,\n className,\n id,\n isTop = true,\n}) => {\n const enterFrom = isTop ? 'opacity-0 -translate-y-3 scale-95' : 'opacity-0 translate-y-3 scale-95'\n const leaveTo = isTop ? 'opacity-0 -translate-y-2 scale-95' : 'opacity-0 translate-y-2 scale-95'\n return (\n <Transition\n appear\n show\n enter=\"transform transition duration-300\"\n enterFrom={enterFrom}\n enterTo=\"opacity-100 translate-y-0 scale-100\"\n leave=\"transition duration-200\"\n leaveFrom=\"opacity-100 translate-y-0 scale-100\"\n leaveTo={leaveTo}\n >\n <div\n role=\"status\"\n className={buildClassName(\n 'flex items-center gap-3 rounded-lg px-4 py-3 shadow-lg min-w-[260px] max-w-sm',\n 'bg-white dark:bg-gray-900 dark:border-gray-700',\n borderStyle[type],\n className,\n )}\n id={id.toString()}\n >\n {/* Icon */}\n <TextContent className={buildClassName(textColorMap[type])}>{iconMap[type]}</TextContent>\n\n {/* Message */}\n <TextContent className=\"flex-1 text-sm font-medium\">{message}</TextContent>\n\n {/* Close button */}\n <Button\n onClick={onClose}\n aria-label=\"Close toast\"\n className=\"opacity-60 hover:opacity-100 transition\"\n iconOnly\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n noOutlineOnFocus\n >\n <XIcon className=\"size-4\" />\n </Button>\n </div>\n </Transition>\n )\n}\n","import React, {\n createContext,\n useContext,\n useEffect,\n useState,\n type ReactNode,\n useRef,\n useCallback,\n} from 'react'\nimport { Toast } from './Toast'\nimport type { IToast, ToastContextType, ToastOptions, ToastPlacement } from './Toast.types'\nimport { buildClassName } from '../../utils/build-classname'\n\nconst ToastContext = createContext<ToastContextType | undefined>(undefined)\nlet toastCounter = 0\n\nexport const useToast = (): ToastContextType => {\n const context = useContext(ToastContext)\n if (!context) throw new Error('useToast must be used within ToastProvider')\n return context\n}\n\n// Maximum visible toasts at once\nconst MAX_TOASTS = 5\n\nconst placementClass: Record<ToastPlacement, string> = {\n 'top-right': 'top-10 right-4 items-end',\n 'top-left': 'top-10 left-4 items-start',\n 'top-center': 'top-10 left-1/2 -translate-x-1/2 items-center',\n\n 'bottom-right': 'bottom-10 right-4 items-end',\n 'bottom-left': 'bottom-10 left-4 items-start',\n 'bottom-center': 'bottom-10 left-1/2 -translate-x-1/2 items-center',\n}\n\nexport const ToastProvider: React.FC<{\n children: ReactNode\n placement?: ToastPlacement\n}> = ({ children, placement = 'top-center' }) => {\n const [toasts, setToasts] = useState<IToast[]>([])\n const timeoutRefs = useRef<Map<number, any>>(new Map())\n\n const clearTimer = (id: number) => {\n const timeout = timeoutRefs.current.get(id)\n if (timeout) {\n clearTimeout(timeout)\n timeoutRefs.current.delete(id)\n }\n }\n\n const closeToast = useCallback((id: number) => {\n clearTimer(id)\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const scheduleClose = useCallback(\n (toast: IToast) => {\n if (!toast.autoClose) return\n\n clearTimer(toast.id)\n\n const timeout = setTimeout(() => {\n closeToast(toast.id)\n }, toast.duration)\n\n timeoutRefs.current.set(toast.id, timeout)\n },\n [closeToast],\n )\n\n useEffect(() => {\n const refs = timeoutRefs.current\n return () => refs.forEach((id) => clearTimeout(id))\n }, [])\n\n const showToast = useCallback(\n (message: string, options?: ToastOptions) => {\n const id = ++toastCounter\n\n const newToast: IToast = {\n id,\n message,\n type: options?.type ?? 'info',\n duration: options?.duration ?? 3000,\n autoClose: options?.autoClose ?? true,\n pauseOnHover: options?.pauseOnHover ?? true,\n }\n\n setToasts((prev) => {\n const updated = [...prev, newToast]\n if (updated.length > MAX_TOASTS) updated.shift()\n return updated\n })\n\n scheduleClose(newToast)\n },\n [scheduleClose],\n )\n\n return (\n <ToastContext.Provider value={{ showToast, closeToast }}>\n {children}\n\n {/* Toast Container */}\n <div\n className={buildClassName(\n 'fixed z-50 flex flex-col gap-3 pointer-events-none',\n placementClass[placement],\n )}\n >\n {toasts.map((toast, index) => (\n <div\n key={toast.id}\n className=\"pointer-events-auto\"\n onMouseEnter={() => toast.pauseOnHover && clearTimer(toast.id)}\n onMouseLeave={() => toast.pauseOnHover && scheduleClose(toast)}\n >\n <Toast\n {...toast}\n isTop={placement.startsWith('top')}\n onClose={() => closeToast(toast.id)}\n />\n </div>\n ))}\n </div>\n </ToastContext.Provider>\n )\n}\n","import React from 'react'\nimport { ListChildComponentProps } from 'react-window'\nimport { buildClassName } from '../../utils/build-classname'\nimport { get } from '../../utils/get'\nimport { VirtualizedRowProps } from './VirtualizedDataTable.types'\nimport { DataTableColumn } from '../DataTable'\n\ninterface RowData extends VirtualizedRowProps {\n gridTemplate: string\n}\n\nexport const VirtualizedRow = ({ index, style, data }: ListChildComponentProps<RowData>) => {\n const { items, columns, gridTemplate } = data\n const item = items[index]\n\n return (\n <div\n role=\"row\"\n className=\"grid border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 group\"\n style={{\n ...style,\n display: 'grid',\n gridTemplateColumns: gridTemplate,\n minWidth: 'fit-content',\n }}\n >\n {columns.map((col: DataTableColumn) => {\n const content = col.render ? col.render(item) : (get(item, col.name) ?? 'Not set')\n\n return (\n <div\n key={col.name}\n role=\"cell\"\n className={buildClassName(\n 'px-3 py-3 whitespace-nowrap border-r last:border-r-0 border-gray-200 dark:border-gray-700',\n col.align === 'center' && 'text-center',\n col.align === 'right' && 'text-right',\n col.sticky === 'left' &&\n 'sticky left-0 z-10 bg-white dark:bg-gray-900 shadow-[2px_0_4px_rgba(0,0,0,0.05)]',\n col.sticky === 'right' &&\n 'sticky right-0 z-10 bg-white dark:bg-gray-900 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]',\n )}\n >\n {content}\n </div>\n )\n })}\n </div>\n )\n}\n","import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeList as List } from 'react-window'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport { VirtualizedRow } from './VirtualizedRow'\nimport { type DataTableColumn, getSortIcon } from '../DataTable'\nimport { VirtualizedDataTableProps } from './VirtualizedDataTable.types'\n\n/* -------------------------------------------------------\n * Convert column definitions into CSS grid template\n * ------------------------------------------------------- */\nconst useGridTemplate = (columns: DataTableColumn[]) =>\n useMemo(() => columns.map((col) => (col.width ? `${col.width}px` : '1fr')).join(' '), [columns])\n\nexport const VirtualizedDataTable: React.FC<VirtualizedDataTableProps> = ({\n items,\n columns,\n sorting = {},\n onSort,\n loading = false,\n emptyMessage = 'No data available',\n\n containerClass = '',\n wrapperClass = '',\n\n rowHeight = 48,\n maxHeight = 400,\n}) => {\n const scrollRef = useRef<any>(null)\n const outerRef = useRef<HTMLDivElement>(null)\n const headerRef = useRef<HTMLDivElement | null>(null)\n\n const gridTemplate = useGridTemplate(columns)\n\n /** Sync horizontal scroll of the virtualized body → header */\n useEffect(() => {\n const el = outerRef.current\n if (!el) return\n const handler = () => {\n if (headerRef.current) headerRef.current.scrollLeft = el.scrollLeft\n }\n el.addEventListener('scroll', handler)\n return () => el.removeEventListener('scroll', handler)\n }, [])\n\n const handleSort = useCallback(\n (column: DataTableColumn) => {\n if (column.sortable) onSort?.(column)\n },\n [onSort],\n )\n\n /* -------------------------------------------------------\n * RENDER: Header row (real DOM for accessibility)\n * ------------------------------------------------------- */\n const Header = (\n <div ref={headerRef} className=\"overflow-hidden w-full\">\n <div\n className=\"grid bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700\"\n style={{\n gridTemplateColumns: gridTemplate,\n minWidth: 'fit-content',\n }}\n >\n {columns.map((col) => (\n <div\n key={col.name}\n role=\"columnheader\"\n className={buildClassName(\n 'px-3 py-3 font-semibold text-sm whitespace-nowrap flex items-center',\n 'border-r last:border-r-0 border-gray-200 dark:border-gray-700',\n\n col.sticky === 'left' &&\n 'sticky left-0 z-20 bg-gray-50 dark:bg-gray-800 shadow-[2px_0_4px_rgba(0,0,0,0.05)]',\n\n col.sticky === 'right' &&\n 'sticky right-0 z-20 bg-gray-50 dark:bg-gray-800 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]',\n )}\n >\n <TextContent\n role={col.sortable ? 'button' : undefined}\n className={buildClassName(\n col.sortable && 'inline-flex items-center gap-2 cursor-pointer select-none',\n )}\n onClick={() => handleSort(col)}\n >\n {col.label}\n {col.sortable ? getSortIcon(sorting[col.name]) : null}\n </TextContent>\n </div>\n ))}\n </div>\n </div>\n )\n\n /* -------------------------------------------------------\n * LOADING STATE (non-virtualized placeholder)\n * ------------------------------------------------------- */\n if (loading) {\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'rounded-lg border border-gray-200 dark:border-gray-800 overflow-hidden',\n wrapperClass,\n )}\n >\n {Header}\n\n <div style={{ height: maxHeight }} className=\"flex flex-col\">\n {[...Array(6)].map((_, idx) => (\n <div\n key={idx}\n data-testid=\"skeleton-row\"\n className=\"grid animate-pulse bg-white dark:bg-gray-900 border-b border-gray-100 dark:border-gray-800\"\n style={{\n gridTemplateColumns: gridTemplate,\n height: rowHeight,\n }}\n >\n {columns.map((col) => (\n <div key={col.name} className=\"px-3 py-3\">\n <div className=\"h-4 w-3/4 bg-gray-300 dark:bg-gray-700 rounded\" />\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n }\n\n /* -------------------------------------------------------\n * EMPTY STATE (non-virtualized → single row)\n * ------------------------------------------------------- */\n if (!loading && items.length === 0) {\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'rounded-lg border border-gray-200 dark:border-gray-800 overflow-hidden',\n wrapperClass,\n )}\n >\n {Header}\n\n <div\n className=\"flex items-center justify-center text-gray-500 dark:text-gray-300\"\n style={{ height: maxHeight }}\n >\n {emptyMessage}\n </div>\n </div>\n </div>\n )\n }\n\n /* -------------------------------------------------------\n * MAIN (virtualized body)\n * ------------------------------------------------------- */\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'rounded-lg border border-gray-200 dark:border-gray-800 overflow-hidden',\n wrapperClass,\n )}\n >\n {Header}\n\n <List\n ref={scrollRef}\n outerRef={outerRef}\n height={maxHeight}\n width=\"100%\"\n itemCount={items.length}\n itemSize={rowHeight}\n itemData={{ items, columns, gridTemplate }}\n >\n {VirtualizedRow}\n </List>\n </div>\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\n\nexport const useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches\n\n setIsMobile(width < 600 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isMobile\n}\n","import { useEffect, useState } from 'react'\n\nexport const useIsTablet = () => {\n const [isTablet, setIsTablet] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches\n\n setIsTablet(width >= 600 && width <= 1024 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isTablet\n}\n","import { useIsMobile } from './use-is-mobile'\nimport { useIsTablet } from './use-is-tablet'\n\nexport const useIsTabletOrMobile = () => {\n const isMobile = useIsMobile()\n const isTablet = useIsTablet()\n\n return isMobile || isTablet\n}\n"],"names":["_path","_extends","_circle","_jsx","React","_jsxs","BadgeCheckIcon","CircleXIcon","CircleAlertIcon","InfoIcon","XIcon","CircleCheckIcon","TriangleAlertIcon","SlashIcon","ChevronLeftIcon","ChevronRightIcon","ArrowDownNarrowWide","ArrowDownAZ","ArrowDownWideNarrow","ArrowDownZA","ArrowUpDown","Fragment","FolderPlusIcon","RadioGroup","Radio","ChevronDownIcon","CheckIcon","CirclePlusIcon","CheckCircle","AlertCircle","Info","AlertTriangle","List"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-tailwind.es.js","sources":["../src/utils/build-classname.ts","../src/components/Icons/BadgeCheck.svg","../src/components/Icons/CircleX.svg","../src/components/Icons/CircleAlert.svg","../src/components/Icons/Info.svg","../src/components/Icons/X.svg","../src/components/Loader/index.tsx","../src/components/TextContent/TextContent.tsx","../src/components/Button/Button.tsx","../src/components/Alert/Alert.tsx","../src/components/Badge/Badge.tsx","../src/components/Icons/TriangleAlert.svg","../src/components/Icons/CircleCheck.svg","../src/components/Banner/Banner.tsx","../src/components/BodyText/BodyText.tsx","../src/components/Icons/Slash.svg","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Card/Card.tsx","../src/components/Label/Label.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/CheckboxGroup/CheckboxGroup.tsx","../src/components/Table/Table.tsx","../src/components/Pagination/usePagination.tsx","../src/components/Icons/ChevronLeft.svg","../src/components/Icons/ChevronRight.svg","../src/components/Pagination/Pagination.tsx","../src/utils/get.ts","../src/components/DataTable/DataTable.utils.ts","../src/components/Icons/ArrowDownWideNarrow.svg","../src/components/Icons/ArrowDownNarrowWide.svg","../src/components/Icons/ArrowDownAZ.svg","../src/components/Icons/ArrowDownZA.svg","../src/components/Icons/ArrowUpDown.svg","../src/components/DataTable/DataTable.icons.tsx","../src/components/DataTable/DataTable.tsx","../src/components/HeadingText/HeadingText.tsx","../src/components/DetailedInformation/DetailedInformation.tsx","../src/components/Dot/index.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Dropdown/Dropdown.tsx","../src/components/Icons/FolderPlus.svg","../src/components/EmptyState/index.tsx","../src/components/Input/Input.tsx","../src/components/PasswordInput/PasswordInput.tsx","../src/components/Radio/Radio.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/RadioSwitch/RadioSwitch.tsx","../src/utils/is-array.ts","../src/utils/is-empty.ts","../src/components/RangeInput/RangeInput.tsx","../src/components/RangeSlider/RangeSlider.tsx","../src/hooks/use-debounce.tsx","../src/components/Icons/Check.svg","../src/components/Icons/ChevronDown.svg","../src/components/Icons/CirclePlus.svg","../src/components/SelectBox/SelectBox.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastProvider.tsx","../src/components/VirtualizedDataTable/VirtualizedRow.tsx","../src/components/VirtualizedDataTable/VirtualizedDataTable.tsx","../src/hooks/use-is-mobile.tsx","../src/hooks/use-is-tablet.tsx","../src/hooks/use-is-tablet-or-mobile.tsx"],"sourcesContent":["import { twMerge } from 'tailwind-merge'\n\nexport const buildClassName = (...classes: any[]) => twMerge(classes.filter(Boolean))\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-badge-check-icon lucide-badge-check\"><path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"/><path d=\"m9 12 2 2 4-4\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-x-icon lucide-circle-x\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m15 9-6 6\"/><path d=\"m9 9 6 6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-alert-icon lucide-circle-alert\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"/><line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-info-icon lucide-info\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-x-icon lucide-x\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\nimport './loader.css'\n\nexport type LoaderSize = 'xs' | 'sm' | 'md' | 'lg'\n\ntype LoaderSizeMap = {\n [k in LoaderSize]: string\n}\n\ninterface LoaderProps {\n size?: LoaderSize\n className?: string\n}\n\nconst loaderSizeMap: LoaderSizeMap = {\n xs: 'size-4',\n sm: 'size-6',\n md: 'size-8',\n lg: 'size-10',\n}\n\nexport const Loader: React.FC<LoaderProps> = ({\n className = 'text-blue-600 dark:text-white',\n size = 'md',\n ...props\n}) => {\n return (\n <svg\n className={buildClassName(loaderSizeMap[size], className, 'spinner')}\n viewBox=\"0 0 50 50\"\n {...props}\n >\n <circle\n className=\"path\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeWidth=\"5\"\n />\n </svg>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContentProps } from './TextContent.types'\n\nexport const TextContent = forwardRef<HTMLSpanElement, TextContentProps>((props, ref) => {\n const {\n xsmall = false,\n small = false,\n strong = false,\n muted = false,\n error = false,\n className,\n ...rest\n } = props\n return React.createElement('span', {\n ...rest,\n ref,\n className: buildClassName(\n xsmall && 'text-xs/5',\n small && 'text-sm/6',\n strong && 'font-semibold',\n muted && 'text-gray-500',\n error && 'text-red-500 dark:text-red-500',\n className,\n ),\n })\n})\n\nTextContent.displayName = 'TextContent'\n","import React, { ElementType, forwardRef, useMemo } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Loader } from '../Loader'\nimport { TextContent } from '../TextContent'\nimport type { ButtonProps, ButtonSize, ThemedButtonClass, ButtonComponent } from './Button.types'\nimport type { PolymorphicRef } from '../common-type'\n\n/**\n * Tailwind CSS classes for theme + variant combinations.\n */\nconst THEMED_BTN_CLASS: ThemedButtonClass = {\n primary: {\n default:\n 'text-white bg-[var(--ui-primary)] hover:bg-[var(--ui-primary-hover)] focus:outline-[var(--ui-primary-ring)] disabled:bg-[var(--ui-primary-disabled)]',\n outlined:\n 'text-[var(--ui-primary-text)] hover:text-white border border-[var(--ui-primary)] hover:bg-[var(--ui-primary)] focus:outline-[var(--ui-primary-ring)] disabled:text-[var(--ui-primary-disabled)] disabled:border-[var(--ui-primary-disabled)]',\n plain:\n 'text-[var(--ui-primary-text)] hover:bg-black/5 dark:hover:bg-gray-700 focus:outline-[var(--ui-primary-ring)] disabled:text-[var(--ui-primary-disabled)]',\n },\n danger: {\n default:\n 'text-white bg-[var(--ui-danger)] hover:bg-[var(--ui-danger-hover)] focus:outline-[var(--ui-danger-ring)] disabled:bg-[var(--ui-danger-disabled)]',\n outlined:\n 'text-[var(--ui-danger-text)] hover:text-white border border-[var(--ui-danger)] hover:bg-[var(--ui-danger)] focus:outline-[var(--ui-danger-ring)] disabled:text-[var(--ui-danger-disabled)] disabled:border-[var(--ui-danger-disabled)]',\n plain:\n 'text-[var(--ui-danger-text)] hover:bg-black/5 dark:hover:bg-gray-700 focus:outline-[var(--ui-danger-ring)] disabled:text-[var(--ui-danger-disabled)]',\n },\n secondary: {\n default:\n 'text-gray-700 bg-white border border-gray-300 hover:bg-gray-100 dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 focus:outline-[var(--ui-focus-ring)] disabled:bg-gray-200 dark:disabled:bg-gray-700',\n outlined:\n 'text-gray-700 hover:text-white border border-gray-500 hover:bg-gray-700 dark:border-gray-500 dark:text-gray-200 dark:hover:text-white dark:hover:bg-gray-600 focus:outline-[var(--ui-focus-ring)] disabled:text-gray-400 disabled:border-gray-400',\n plain:\n 'text-gray-700 hover:bg-black/5 dark:text-gray-200 dark:hover:bg-gray-700 focus:outline-[var(--ui-focus-ring)] disabled:text-gray-400',\n },\n}\n\n/**\n * Generate size classes.\n */\nconst getBtnSizeClasses = (size: ButtonSize, iconOnly = false) => {\n switch (size) {\n case 'xs':\n return iconOnly ? 'p-1 rounded-sm text-xs' : 'px-2 py-1 rounded-sm gap-1 text-xs'\n\n case 'sm':\n return iconOnly ? 'p-1.5 rounded text-sm' : 'px-3 py-1.5 rounded gap-1.5 text-sm'\n\n case 'md':\n return iconOnly ? 'p-2 rounded-md text-sm' : 'px-4 py-2 rounded-md gap-2 text-sm'\n\n case 'lg':\n return iconOnly ? 'p-2.5 rounded-lg text-base' : 'px-5 py-2.5 rounded-lg gap-2 text-base'\n }\n}\n\n/**\n * Base shared tailwind classes.\n */\nconst BASE_BTN_CLASS =\n 'font-medium flex items-center justify-center shrink-0 cursor-pointer ' +\n 'disabled:cursor-not-allowed disabled:pointer-events-none disabled:opacity-75 ' +\n 'transition duration-200 ease-in-out'\n\nexport const Button = forwardRef(\n <C extends ElementType = 'button'>(\n { as, type, ...props }: ButtonProps<C>,\n ref: PolymorphicRef<C>,\n ) => {\n const {\n className = '',\n children,\n theme = 'primary',\n variant = 'default',\n size = 'md',\n loading = false,\n loadingText = '',\n rounded = false,\n disabled,\n iconOnly = false,\n noOutlineOnFocus = false,\n ...restProps\n } = props\n\n const Component = as || 'button'\n\n // Accessibility guard for icon-only buttons\n if (iconOnly && !(restProps as Record<string, unknown>)['aria-label']) {\n console.warn('[ui] <Button iconOnly> requires aria-label for accessibility.')\n }\n\n // Disable interaction when loading\n const resolvedDisabled = disabled || loading\n\n // Clean invalid props when not rendering a real button\n const { type: _ignoreType, disabled: _ignoreDisabled, ...cleanRest } = restProps\n\n const buttonSpecificProps =\n Component === 'button'\n ? {\n type: type ?? 'button',\n disabled: resolvedDisabled,\n }\n : {}\n\n /**\n * Memoized className for perf & stability.\n */\n const classes = useMemo(\n () =>\n buildClassName(\n BASE_BTN_CLASS,\n THEMED_BTN_CLASS[theme][variant],\n getBtnSizeClasses(size, iconOnly),\n !noOutlineOnFocus && 'focus:outline focus:outline-2 focus:outline-offset-2',\n rounded && 'rounded-full',\n variant === 'default' && 'shadow-xs hover:shadow-none disabled:shadow-none',\n className,\n ),\n [theme, variant, size, iconOnly, rounded, noOutlineOnFocus, className],\n )\n\n /**\n * SPECIAL CASE:\n * iconOnly + loading → show spinner only\n */\n if (loading && iconOnly) {\n return (\n <Component ref={ref} className={classes} {...buttonSpecificProps} {...cleanRest}>\n <Loader data-testid=\"btn-loader-icon\" size=\"xs\" />\n </Component>\n )\n }\n\n return (\n <Component ref={ref} className={classes} {...buttonSpecificProps} {...cleanRest}>\n {loading ? (\n <span className=\"flex items-center gap-2\" aria-live=\"polite\">\n <Loader data-testid=\"btn-loader-icon\" size=\"xs\" />\n {loadingText && <TextContent>{loadingText}</TextContent>}\n </span>\n ) : (\n children\n )}\n </Component>\n )\n },\n) as ButtonComponent\n\nButton.displayName = 'Button'\n","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport BadgeCheckIcon from '../Icons/BadgeCheck.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleAlertIcon from '../Icons/CircleAlert.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport XIcon from '../Icons/X.svg'\nimport { Button } from '../Button'\nimport type { AlertProps } from './Alert.types'\n\nconst AlertTypeIconMap = {\n success: BadgeCheckIcon,\n danger: CircleXIcon,\n warning: CircleAlertIcon,\n info: InfoIcon,\n}\n\nconst TypeClassMap = {\n success:\n 'bg-[var(--ui-success-light)] ring-[var(--ui-success-ring-subtle)] text-[var(--ui-success-text)]',\n danger:\n 'bg-[var(--ui-danger-light)] ring-[var(--ui-danger-ring-subtle)] text-[var(--ui-danger-text)]',\n warning:\n 'bg-[var(--ui-warning-light)] ring-[var(--ui-warning-ring-subtle)] text-[var(--ui-warning-text)]',\n info: 'bg-[var(--ui-info-light)] ring-[var(--ui-info-ring-subtle)] text-[var(--ui-info-text)]',\n}\n\nexport const Alert: React.FC<AlertProps> = (props) => {\n const {\n type = 'info',\n className = '',\n message,\n children,\n removable = false,\n onRemove = () => {},\n ...restProps\n } = props\n\n const Icon = AlertTypeIconMap[type] || InfoIcon\n\n return (\n <div\n className={buildClassName(\n className,\n 'flex items-center justify-between rounded-md p-3 text-sm ring-1 ring-inset gap-2',\n TypeClassMap[type],\n )}\n {...restProps}\n >\n <span className=\"inline-flex items-center gap-2\">\n <Icon className=\"size-5\" data-testid={`alert-${type}-icon`} />\n <span className=\"pr-2 inline-flex items-center\">{message || children}</span>\n </span>\n {removable && (\n <Button\n iconOnly\n aria-label=\"Dismiss alert\"\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n className=\"hover:bg-black/5 text-gray-600 dark:hover:bg-black/5 dark:text-gray-600\"\n onClick={() => onRemove()}\n data-testid=\"alert-remove-btn\"\n >\n <XIcon className=\"size-4.5\" data-testid=\"alert-remove-icon\" />\n </Button>\n )}\n </div>\n )\n}\n\nAlert.displayName = 'Alert'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport XIcon from '../Icons/X.svg'\nimport { BadgeProps } from './Badge.types'\nimport { TextContent } from '../TextContent'\n\nconst ThemeClassMap = {\n success:\n 'bg-[var(--ui-success-light)] text-[var(--ui-success-text)] ring-[var(--ui-success-ring-subtle)]',\n danger:\n 'bg-[var(--ui-danger-light)] text-[var(--ui-danger-text)] ring-[var(--ui-danger-ring-subtle)]',\n warning:\n 'bg-[var(--ui-warning-light)] text-[var(--ui-warning-text)] ring-[var(--ui-warning-ring-subtle)]',\n info: 'bg-[var(--ui-info-light)] text-[var(--ui-info-text)] ring-[var(--ui-info-ring-subtle)]',\n secondary:\n 'bg-gray-50 dark:bg-gray-700 text-gray-700 dark:text-gray-200 ring-[var(--ui-secondary-ring-subtle)]',\n}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n const {\n theme = 'info',\n className = '',\n children,\n removable = false,\n rounded = false,\n onRemove = () => {},\n ...restProps\n } = props\n\n return (\n <TextContent\n ref={ref}\n className={buildClassName(\n className,\n 'inline-flex items-center pl-3 py-1 text-xs font-medium ring-1 ring-inset',\n ThemeClassMap[theme],\n rounded ? 'rounded-full' : 'rounded-md',\n )}\n data-testid={`badge-${theme}`}\n {...restProps}\n >\n <TextContent className=\"pr-3 inline-flex items-center\">{children}</TextContent>\n {removable ? (\n <XIcon\n className=\"size-5 px-0.5 mr-1 hover:bg-slate-200 dark:hover:bg-white/10 rounded-sm cursor-pointer text-gray-600 dark:text-gray-300\"\n role=\"button\"\n tabIndex={0}\n aria-label=\"Remove\"\n onClick={() => onRemove()}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onRemove()\n }\n }}\n />\n ) : null}\n </TextContent>\n )\n})\n\nBadge.displayName = 'Badge'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-triangle-alert-icon lucide-triangle-alert\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-check-icon lucide-circle-check\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12 2 2 4-4\"/></svg>","import React, { forwardRef } from 'react'\nimport TriangleAlertIcon from '../Icons/TriangleAlert.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleCheckIcon from '../Icons/CircleCheck.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport { buildClassName } from '../../utils/build-classname'\nimport { BannerProps } from './Banner.types'\n\nconst sizeMap = {\n 4: `size-4`,\n 5: `size-5`,\n 6: `size-6`,\n 7: `size-7`,\n 8: `size-8`,\n 9: `size-9`,\n 10: `size-10`,\n}\n\nconst IconMap = {\n info: InfoIcon,\n error: CircleXIcon,\n success: CircleCheckIcon,\n warning: TriangleAlertIcon,\n}\n\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>((props, ref) => {\n const { type = 'info', iconSize = 5, children, ...restProps } = props\n const className = buildClassName(\n 'text-sm banner rounded-md flex w-full p-3 items-center',\n type === 'info' ? 'bg-blue-50 text-blue-700' : '',\n type === 'error' ? 'bg-red-50 text-red-700' : '',\n type === 'success' ? 'bg-green-50 text-green-700' : '',\n type === 'warning' ? 'bg-orange-50 text-orange-700' : '',\n )\n\n const renderIcon = () => {\n const Icon = IconMap[type]\n return (\n <Icon\n data-testid={`banner-${type}-icon`}\n className={buildClassName('ml-1 mr-3', sizeMap[iconSize])}\n />\n )\n }\n\n return (\n <div ref={ref} className={className} data-testid={`banner-${type}`} {...restProps}>\n {renderIcon()}\n <div className=\"flex items-center w-full justify-between\">{children}</div>\n </div>\n )\n})\n\nBanner.displayName = 'Banner'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { BodyTextProps } from './BodyText.types'\n\nexport const BodyText = forwardRef<HTMLParagraphElement, BodyTextProps>((props, ref) => {\n const {\n as = 'p',\n small = false,\n strong = false,\n muted = false,\n error = false,\n inline = false,\n className,\n ...rest\n } = props\n return React.createElement(as, {\n ref: ref,\n className: buildClassName(\n small && 'text-sm/6',\n strong && 'font-semibold',\n muted && 'text-gray-500',\n error && 'text-red-500',\n inline && 'inline-flex items-center gap-2',\n className,\n ),\n ...rest,\n })\n})\n\nBodyText.displayName = 'BodyText'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-slash-icon lucide-slash\"><path d=\"M22 2 2 22\"/></svg>","import React from 'react'\nimport SlashIcon from '../Icons/Slash.svg'\nimport { BreadcrumbProps } from './Breadcrumb.types'\n\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({ items, render }) => {\n const count = items.length\n const isLast = (index: number) => index === count - 1\n\n return (\n <nav\n aria-label=\"Breadcrumb\"\n className=\"flex flex-wrap items-center gap-2\"\n data-testid=\"breadcrumb-container\"\n >\n {items.map((item, index) => (\n <span\n className=\"inline-flex gap-2 items-center dark:text-white\"\n key={item.key}\n data-testid={`breadcrumb-item-${item.key}`}\n >\n <span\n className=\"font-medium\"\n {...(isLast(index) ? { 'aria-current': 'page' as const } : {})}\n >\n {isLast(index) ? item.text : render(item)}\n </span>\n {!isLast(index) && (\n <SlashIcon data-testid={`breadcrumb-divider-${index}`} className=\"size-4\" />\n )}\n </span>\n ))}\n </nav>\n )\n}\n\nBreadcrumb.displayName = 'Breadcrumb'\n","import { ElementType, forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CardComponent, CardProps } from './Card.types'\nimport type { PolymorphicRef } from '../common-type'\n\nconst BASE_CARD_CLASS = 'bg-white rounded-md dark:bg-gray-900 block'\n\nexport const Card = forwardRef(\n <C extends ElementType = 'div'>({ as, ...props }: CardProps<C>, ref: PolymorphicRef<C>) => {\n // Remove Card-only props from rest (avoid leaking to DOM)\n const {\n hoverable = false,\n bordered = true,\n compact = false,\n zeroPadding = false,\n ...rest\n } = props\n\n const Component = as || 'div'\n\n // Extract className safely from rest\n const { className, ...cleanRest } = rest as { className?: string }\n\n const classes = buildClassName(\n BASE_CARD_CLASS,\n zeroPadding ? '' : compact ? 'p-2' : 'p-6',\n hoverable && 'transition-background duration-200 hover:bg-gray-100 dark:hover:bg-gray-800',\n bordered && 'border border-gray-200 dark:border-gray-800',\n className,\n )\n\n return <Component ref={ref} className={classes} {...cleanRest} />\n },\n) as CardComponent\n\nCard.displayName = 'Card'\n","import React, { forwardRef, type LabelHTMLAttributes } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\ninterface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n htmlFor?: string\n}\n\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>((props, ref) => {\n const { className, children, ...labelProps } = props\n return (\n <label\n ref={ref}\n {...labelProps}\n className={buildClassName(\n 'block text-sm font-medium text-gray-600 dark:text-gray-300',\n className,\n )}\n >\n {children}\n </label>\n )\n})\n\nLabel.displayName = 'Label'\n","import { forwardRef, useId } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CheckboxProps } from './Checkbox.types'\nimport { TextContent } from '../TextContent'\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {\n const {\n id,\n name,\n label,\n labelClass = '',\n wrapperClass = '',\n containerClass = '',\n error,\n disabled = false,\n className = '',\n // Checkbox-only props removed from rest\n ...rest\n } = props\n\n const generatedId = useId()\n const checkboxId = id ?? name ?? generatedId\n\n return (\n <div className={buildClassName(wrapperClass)}>\n <div className={buildClassName('flex items-center', containerClass)}>\n <label\n htmlFor={checkboxId}\n className={buildClassName(\n 'inline-flex items-center relative select-none',\n disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer',\n )}\n >\n <input\n ref={ref}\n {...rest}\n id={checkboxId}\n name={name}\n type=\"checkbox\"\n disabled={disabled}\n aria-checked={rest.checked}\n className={buildClassName(\n 'peer size-4.5 cursor-pointer transition-all appearance-none rounded',\n 'border focus:ring-2 focus:ring-offset-2',\n 'checked:bg-[var(--ui-primary)] checked:border-[var(--ui-primary)]',\n 'focus:ring-[var(--ui-focus-ring)] dark:focus:ring-offset-gray-900',\n disabled\n ? 'border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 pointer-events-none'\n : 'bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md',\n className,\n )}\n />\n\n <span\n className=\"absolute text-white opacity-0 peer-checked:opacity-100 \n top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3.25 w-3.25\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </span>\n </label>\n\n {label && (\n <Label\n htmlFor={checkboxId}\n className={buildClassName(\n disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500'\n : 'cursor-pointer text-gray-600 dark:text-gray-300',\n 'ml-2 font-normal',\n labelClass,\n )}\n >\n {label}\n </Label>\n )}\n </div>\n\n {error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n\nCheckbox.displayName = 'Checkbox'\n","import { useId, useMemo, type ChangeEvent } from 'react'\nimport { Checkbox } from '../Checkbox'\nimport { Label } from '../Label'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CheckboxGroupItem, CheckboxGroupProps } from './CheckboxGroup.types'\n\nexport const CheckboxGroup = <T,>(props: CheckboxGroupProps<T>) => {\n const {\n name,\n options,\n label,\n labelClass = '',\n labelWrapperClass = '',\n labelHint,\n containerClass = '',\n value = [],\n onChange,\n inline = false,\n } = props\n\n const groupId = useId()\n\n const items = useMemo(\n () =>\n options.map((opt) =>\n typeof opt === 'string' ? ({ label: opt, value: opt } as CheckboxGroupItem<T>) : opt,\n ),\n [options],\n )\n\n /**\n * Group-level change handler. Converts raw checkbox change events\n * into a typed updated values array.\n */\n const handleGroupChange = (e: ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n const checked = e.target.checked\n\n // Convert HTML string value → typed T value\n // Locate in normalized items\n const matched = items.find((i) => String(i.value) === raw)\n const itemValue = matched?.value as T\n\n let updated: T[]\n\n if (checked) {\n updated = [...value, itemValue]\n } else {\n updated = value.filter((v) => v !== itemValue)\n }\n\n onChange?.(updated, e)\n }\n\n return (\n <div className={buildClassName('mb-3 space-y-3', containerClass)}>\n {label && (\n <div className={buildClassName('flex items-center justify-between', labelWrapperClass)}>\n <Label className={labelClass}>{label}</Label>\n <BodyText muted small>\n {labelHint}\n </BodyText>\n </div>\n )}\n\n <div className={buildClassName('flex gap-3', inline ? 'flex-wrap' : 'flex-col')}>\n {items.map((item, index) => {\n const key =\n typeof item.value === 'string' || typeof item.value === 'number' ? item.value : index\n\n return (\n <Checkbox\n key={key}\n name={name}\n id={`${groupId}-${String(item.value)}`}\n label={item.label}\n value={String(item.value)}\n checked={value.includes(item.value)}\n onChange={handleGroupChange}\n />\n )\n })}\n </div>\n </div>\n )\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup'\n","import React from 'react'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\nimport type {\n EmptyTableRowProps,\n TableProps,\n TableBodyProps,\n TableCellProps,\n TableFootProps,\n TableHeaderCellProps,\n TableHeadProps,\n TableRowLoaderProps,\n TableRowProps,\n} from './Table.types'\n\nconst TEXT_ALIGN = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n}\n\nconst TABLE_LAYOUT = {\n fixed: 'table-fixed',\n auto: 'table-auto',\n}\n\n/* ----------------------------------------------\n * Loader Rows\n * ---------------------------------------------- */\nconst TableRowLoader: React.FC<TableRowLoaderProps> = ({ colSize, rowSize }) => (\n <>\n {Array.from({ length: rowSize }).map((_, rowIdx) => (\n <TableRow key={rowIdx} className=\"animate-pulse\">\n {Array.from({ length: colSize }).map((_, colIdx) => (\n <TableCell key={colIdx}>\n <div className=\"flex items-center h-6\">\n <div className=\"h-4 bg-gray-300 dark:bg-gray-700 shimmer rounded w-full\" />\n </div>\n </TableCell>\n ))}\n </TableRow>\n ))}\n </>\n)\n\n/* ----------------------------------------------\n * Table\n * ---------------------------------------------- */\nexport const Table: React.FC<TableProps> = ({ children, layout = 'auto', className = '' }) => {\n return (\n <table\n className={buildClassName(\n 'border-collapse w-full divide-y divide-gray-200 dark:divide-gray-700',\n TABLE_LAYOUT[layout],\n className,\n )}\n >\n {children}\n </table>\n )\n}\n\n/* ----------------------------------------------\n * Head\n * ---------------------------------------------- */\nexport const TableHead: React.FC<TableHeadProps> = ({ children, className = '' }) => (\n <thead\n className={buildClassName(\n 'text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-800 dark:text-gray-300',\n className,\n )}\n >\n <tr>{children}</tr>\n </thead>\n)\n\n/* ----------------------------------------------\n * Body\n * ---------------------------------------------- */\nexport const TableBody: React.FC<TableBodyProps> = ({\n children,\n loading,\n colSize,\n rowSize = 5,\n className,\n}) => (\n <tbody\n className={buildClassName(\n 'text-sm text-gray-700 dark:text-white divide-y divide-gray-200 dark:divide-gray-700',\n className,\n )}\n >\n {loading ? <TableRowLoader colSize={colSize} rowSize={rowSize} /> : children}\n </tbody>\n)\n\n/* ----------------------------------------------\n * Foot\n * ---------------------------------------------- */\nexport const TableFoot: React.FC<TableFootProps> = ({ children }) => (\n <tfoot>\n <tr>{children}</tr>\n </tfoot>\n)\n\n/* ----------------------------------------------\n * Rows\n * ---------------------------------------------- */\nexport const TableRow: React.FC<TableRowProps> = ({\n children,\n hoverable = false,\n className,\n ...props\n}) => (\n <tr\n {...props}\n className={buildClassName(\n 'last:border-b border-gray-200 dark:border-gray-700',\n hoverable && 'group',\n className,\n )}\n >\n {children}\n </tr>\n)\n\n/* ----------------------------------------------\n * Cells\n * ---------------------------------------------- */\nexport const TableCell: React.FC<TableCellProps> = ({\n children,\n align = 'left',\n className,\n ...props\n}) => (\n <td\n {...props}\n className={buildClassName(\n 'px-3 py-3 first:pl-4 last:pr-4 bg-white dark:bg-gray-900 group-hover:bg-gray-50 group-hover:dark:bg-gray-800',\n TEXT_ALIGN[align],\n className,\n )}\n >\n <div className=\"leading-normal\">{children}</div>\n </td>\n)\n\nexport const TableHeaderCell: React.FC<TableHeaderCellProps> = ({\n children,\n align = 'left',\n className,\n ...props\n}) => (\n <th\n {...props}\n className={buildClassName(\n 'px-3 py-3 first:pl-4 last:pr-4 tracking-wider whitespace-nowrap text-gray-800 dark:text-gray-300',\n TEXT_ALIGN[align],\n className,\n )}\n >\n <BodyText as=\"span\" className=\"leading-none\">\n {children}\n </BodyText>\n </th>\n)\n\n/* ----------------------------------------------\n * Empty Row\n * ---------------------------------------------- */\nexport const EmptyTableRow: React.FC<EmptyTableRowProps> = ({\n children,\n colSpan = 1,\n contentClass,\n}) => (\n <tr className=\"bg-white dark:bg-gray-900\">\n <td colSpan={colSpan} className=\"px-4 py-8\">\n <div\n className={buildClassName(\n 'p-6 text-center space-y-3 flex flex-col items-center justify-center',\n contentClass,\n )}\n >\n {children}\n </div>\n </td>\n </tr>\n)\n","import { UsePaginationProps } from './Pagination.types'\n\nexport const DOTS = '...'\n\nexport const usePagination = ({\n totalPages,\n currentPage,\n siblingCount = 1, // number of pages to show around currentPage\n}: UsePaginationProps): (number | string)[] => {\n const totalPageNumbers = siblingCount * 2 + 5\n\n if (totalPageNumbers >= totalPages) {\n return Array.from({ length: totalPages }, (_, i) => i + 1)\n }\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1)\n const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages)\n\n const shouldShowLeftDots = leftSiblingIndex > 2\n const shouldShowRightDots = rightSiblingIndex < totalPages - 1\n\n const firstPageIndex = 1\n const lastPageIndex = totalPages\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftRange = Array.from({ length: 3 + 2 * siblingCount }, (_, i) => i + 1)\n return [...leftRange, DOTS, totalPages]\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightRange = Array.from(\n { length: 3 + 2 * siblingCount },\n (_, i) => totalPages - (3 + 2 * siblingCount) + 1 + i,\n )\n return [firstPageIndex, DOTS, ...rightRange]\n }\n\n if (shouldShowLeftDots && shouldShowRightDots) {\n const middleRange = Array.from({ length: 2 * siblingCount + 1 }, (_, i) => leftSiblingIndex + i)\n return [firstPageIndex, DOTS, ...middleRange, DOTS, lastPageIndex]\n }\n\n return []\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-left-icon lucide-chevron-left\"><path d=\"m15 18-6-6 6-6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-right-icon lucide-chevron-right\"><path d=\"m9 18 6-6-6-6\"/></svg>","import React from 'react'\nimport { Button } from '../Button'\nimport { usePagination, DOTS } from './usePagination'\nimport { buildClassName } from '../../utils/build-classname'\nimport ChevronLeftIcon from '../Icons/ChevronLeft.svg'\nimport ChevronRightIcon from '../Icons/ChevronRight.svg'\nimport type { PaginationProps } from './Pagination.types'\n\nexport const Pagination: React.FC<PaginationProps> = ({\n page: currentPage,\n limit,\n total,\n onChange,\n className,\n ellipsis = true, // Default to showing ellipsis\n}) => {\n const pages = new Array(Math.ceil(total / limit)).fill(null).map((_, i) => i + 1)\n const isFirstPage = currentPage === 1\n const isLastPage = total === 0 || pages.length === currentPage\n\n const range = usePagination({ totalPages: pages.length, currentPage })\n\n const handlePageChange = (nextVal: number) => {\n if (nextVal === currentPage) return\n\n onChange({ page: nextVal })\n }\n\n if (ellipsis) {\n return (\n <div\n data-testid=\"pagination-container\"\n className={buildClassName(\n 'flex items-center justify-between bg-white dark:bg-gray-800 px-4 py-3 sm:px-6',\n className,\n )}\n >\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"ellipsis-mobile-prev-btn\"\n >\n <span>Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"ellipsis-mobile-next-btn\"\n >\n <span>Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n <div className=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\n <p\n data-testid=\"pagination-summary\"\n className=\"text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1\"\n >\n Showing\n <span className=\"font-medium\">\n {total === 0 ? 0 : Math.max(currentPage * limit - limit + 1, 1)}\n </span>\n to\n <span className=\"font-medium\">{Math.min(currentPage * limit, total)}</span>\n of\n <span className=\"font-medium\">{total}</span>\n results\n </p>\n <ul className=\"flex items-center space-x-2 text-sm\">\n <li>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"ellipsis-prev-btn\"\n >\n Prev\n </Button>\n </li>\n {range.map((page, idx) => {\n if (page === DOTS) {\n return (\n <li\n key={`${page}-${idx}`}\n data-testid={`page-${page}`}\n className=\"px-2 py-1 text-gray-400\"\n >\n …\n </li>\n )\n }\n return (\n <li key={`${page}-${idx}`}>\n <Button\n size=\"xs\"\n theme={page === currentPage ? 'primary' : 'secondary'}\n variant={page === currentPage ? 'default' : 'plain'}\n aria-current={page === currentPage ? 'page' : undefined}\n onClick={() => handlePageChange(page as number)}\n >\n {page}\n </Button>\n </li>\n )\n })}\n <li>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"ellipsis-next-btn\"\n >\n Next\n </Button>\n </li>\n </ul>\n </div>\n </div>\n )\n }\n\n return (\n <div\n data-testid=\"pagination-container\"\n className={buildClassName(\n 'flex items-center justify-between bg-white dark:bg-gray-800 px-4 py-3 sm:px-6',\n className,\n )}\n >\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"mobile-prev-btn\"\n >\n <span>Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"mobile-next-btn\"\n >\n <span>Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n <div className=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\n <p\n data-testid=\"pagination-summary\"\n className=\"text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1\"\n >\n Showing\n <span className=\"font-medium\">\n {total === 0 ? 0 : Math.max(currentPage * limit - limit + 1, 1)}\n </span>\n to\n <span className=\"font-medium\">{Math.min(currentPage * limit, total)}</span>\n of\n <span className=\"font-medium\">{total}</span>\n results\n </p>\n <nav className=\"isolate inline-flex items-center rounded-md\" aria-label=\"Pagination\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"prev-btn\"\n >\n <span className=\"sr-only\">Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n {pages.map((page) => (\n <Button\n key={page}\n size=\"xs\"\n theme={page === currentPage ? 'primary' : 'secondary'}\n variant={page === currentPage ? 'default' : 'plain'}\n aria-current={page === currentPage ? 'page' : undefined}\n onClick={() => handlePageChange(page)}\n >\n <span className=\"size-4 block\">{page}</span>\n </Button>\n ))}\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"next-btn\"\n >\n <span className=\"sr-only\">Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </nav>\n </div>\n </div>\n )\n}\n","export function get<T = any, R = any>(obj: T, path: string, defaultValue?: R): R {\n if (!path) return defaultValue as R\n\n const keys = path\n .replace(/\\[(\\d+)]/g, '.$1') // convert [0] to .0\n .split('.')\n .filter(Boolean) // remove empty parts\n\n return (\n keys.reduce<any>((acc, key) => {\n if (acc !== null && acc !== undefined && Object.prototype.hasOwnProperty.call(acc, key)) {\n return acc[key]\n }\n return undefined\n }, obj) ?? defaultValue\n )\n}\n","import type { DataValueType, Sorting, SortQuery } from './DataTable.types'\n\n/**\n * Compute the next sorting direction for a column.\n * - string: undefined → asc → desc → undefined\n * - number/date: undefined → 1 → -1 → undefined\n */\nexport const nextSortDirection = (\n prev: Sorting | undefined,\n type: 'string' | 'number' | 'date' = 'string',\n): Sorting | undefined => {\n if (type === 'string') {\n if (!prev) return 'asc'\n if (prev === 'asc') return 'desc'\n return undefined\n }\n\n // number / date\n if (!prev) return '1'\n if (prev === '1') return '-1'\n return undefined\n}\n\n/**\n * Update the sort query object for a table column.\n * Toggles sort direction, removing key when reset.\n */\nexport const updateSortQuery = (\n sortQuery: SortQuery,\n name: string,\n type: DataValueType = 'string',\n): SortQuery => {\n const next = nextSortDirection(sortQuery[name], type)\n\n // Shallow clone once\n const updated = { ...sortQuery }\n\n if (next == null) {\n delete updated[name]\n } else {\n updated[name] = next\n }\n\n return updated\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-wide-narrow-icon lucide-arrow-down-wide-narrow\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M11 4h10\"/><path d=\"M11 8h7\"/><path d=\"M11 12h4\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-narrow-wide-icon lucide-arrow-down-narrow-wide\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M11 4h4\"/><path d=\"M11 8h7\"/><path d=\"M11 12h10\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-az-icon lucide-arrow-down-a-z\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M20 8h-5\"/><path d=\"M15 10V6.5a2.5 2.5 0 0 1 5 0V10\"/><path d=\"M15 14h5l-5 6h5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-za-icon lucide-arrow-down-z-a\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 4v16\"/><path d=\"M15 4h5l-5 6h5\"/><path d=\"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20\"/><path d=\"M20 18h-5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-down-icon lucide-arrow-up-down\"><path d=\"m21 16-4 4-4-4\"/><path d=\"M17 20V4\"/><path d=\"m3 8 4-4 4 4\"/><path d=\"M7 4v16\"/></svg>","import type { SortIconKey, Sorting } from './DataTable.types'\nimport type { ReactNode } from 'react'\n/* Icons */\nimport ArrowDownWideNarrow from '../Icons/ArrowDownWideNarrow.svg'\nimport ArrowDownNarrowWide from '../Icons/ArrowDownNarrowWide.svg'\nimport ArrowDownAZ from '../Icons/ArrowDownAZ.svg'\nimport ArrowDownZA from '../Icons/ArrowDownZA.svg'\nimport ArrowUpDown from '../Icons/ArrowUpDown.svg'\n\nexport const SortIconMap: Record<SortIconKey, ReactNode> = {\n '1': (\n <ArrowDownNarrowWide className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n asc: (\n <ArrowDownAZ className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n '-1': (\n <ArrowDownWideNarrow className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n desc: (\n <ArrowDownZA className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n}\n\nexport const getSortIcon = (sort?: Sorting) =>\n sort ? (\n SortIconMap[sort as SortIconKey]\n ) : (\n <ArrowUpDown className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n )\n","import { useEffect, useRef, useState } from 'react'\nimport {\n EmptyTableRow,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeaderCell,\n TableRow,\n} from '../Table'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { DataTableProps, DataTableColumn, Sorting, SortQuery } from './DataTable.types'\nimport { TextContent } from '../TextContent'\nimport { Pagination } from '../Pagination'\nimport { get } from '../../utils/get'\nimport { updateSortQuery } from './DataTable.utils'\nimport { getSortIcon } from './DataTable.icons'\n\n/**\n * Smart auto-sort helper (optional usage)\n */\nconst autoSortItems = (items: any[], column: DataTableColumn, sort: Sorting) => {\n const path = column.name\n return [...items].sort((a, b) => {\n const valueA = get(a, path)\n const valueB = get(b, path)\n\n if (column.type === 'number') {\n const nA = Number(valueA)\n const nB = Number(valueB)\n return sort === 'asc' || sort === '1' ? nA - nB : nB - nA\n }\n\n if (column.type === 'date') {\n const dA = new Date(valueA).getTime()\n const dB = new Date(valueB).getTime()\n return sort === 'asc' || sort === '1' ? dA - dB : dB - dA\n }\n\n // String fallback\n const sA = String(valueA).toLowerCase()\n const sB = String(valueB).toLowerCase()\n if (sA < sB) return sort === 'asc' || sort === '1' ? -1 : 1\n if (sA > sB) return sort === 'asc' || sort === '1' ? 1 : -1\n return 0\n })\n}\n\nexport const DataTable: React.FC<DataTableProps> = ({\n items,\n columns,\n sorting = {},\n onSort,\n loading,\n pagination = null,\n setPagination = () => {},\n emptyMessage = 'No data found',\n containerClass = '',\n wrapperClass = '',\n layout = 'auto',\n}) => {\n const internalSorting = useRef<SortQuery>({})\n const [sortedItems, setSortedItems] = useState(items)\n\n useEffect(() => {\n setSortedItems(items)\n }, [items])\n\n const doAutoSort = (column: DataTableColumn) => {\n internalSorting.current = updateSortQuery(internalSorting.current, column.name, column.type)\n setSortedItems(autoSortItems(items, column, internalSorting.current[column.name]))\n }\n\n const handleSort = (column: DataTableColumn) => {\n if (!column.sortable) return\n onSort ? onSort(column) : doAutoSort(column)\n }\n\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'overflow-x-auto overflow-y-hidden rounded-lg border border-gray-200 dark:border-gray-800',\n wrapperClass,\n pagination && 'rounded-b-none border-b-0',\n )}\n >\n <Table className=\"relative w-full max-w-full h-fit\" layout={layout}>\n {/* Header */}\n <TableHead>\n {columns.map((column) => (\n <TableHeaderCell\n key={column.name}\n align={column.headerAlign}\n style={{ width: column.width || 'auto' }}\n className={buildClassName(\n 'bg-gray-50 dark:bg-gray-800',\n column.sticky === 'left' &&\n 'sticky left-0 z-10 shadow-[2px_0_6px_rgba(0,0,0,0.06)]',\n column.sticky === 'right' &&\n 'sticky right-0 z-10 shadow-[-2px_0_6px_rgba(0,0,0,0.06)]',\n )}\n >\n <TextContent\n role={column.sortable ? 'button' : undefined}\n className={buildClassName(\n 'group',\n column.sortable && 'inline-flex items-center gap-2 cursor-pointer select-none',\n )}\n onClick={() => handleSort(column)}\n >\n <TextContent className=\"shrink-0\">{column.label}</TextContent>\n {column.sortable ? getSortIcon(sorting[column.name]) : null}\n </TextContent>\n </TableHeaderCell>\n ))}\n </TableHead>\n\n {/* Body */}\n <TableBody loading={loading} colSize={columns.length} rowSize={pagination?.limit || 5}>\n {!loading && sortedItems.length === 0 ? (\n <EmptyTableRow colSpan={columns.length}>{emptyMessage}</EmptyTableRow>\n ) : (\n sortedItems.map((item) => (\n <TableRow key={item.id} className=\"group\">\n {columns.map((column) => (\n <TableCell\n key={column.name}\n align={column.align}\n className={buildClassName(\n column.sticky === 'left' &&\n 'sticky left-0 z-10 shadow-[2px_0_6px_rgba(0,0,0,0.06)]',\n column.sticky === 'right' &&\n 'sticky right-0 z-10 shadow-[-2px_0_6px_rgba(0,0,0,0.06)]',\n )}\n >\n {column.render\n ? column.render(item)\n : ((get(item, column.name) as any) ?? 'Not set')}\n </TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n </Table>\n </div>\n\n {/* Pagination */}\n {pagination && (\n <Pagination\n {...pagination}\n className=\"rounded-b-lg border border-t-0 border-gray-200 dark:border-gray-800\"\n onChange={setPagination}\n />\n )}\n </div>\n )\n}\n\nDataTable.displayName = 'DataTable'\n","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { HeadingTextProps } from './HeadingText.types'\n\nconst Title: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h1 className={buildClassName('text-3xl font-bold', className)}>{children}</h1>\n)\n\nconst SubTitle: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h2 className={buildClassName('text-2xl font-semibold', className)}>{children}</h2>\n)\n\nconst SubTitle2: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h3 className={buildClassName('text-xl font-semibold', className)}>{children}</h3>\n)\n\nconst SubTitle3: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h4 className={buildClassName('text-lg font-medium', className)}>{children}</h4>\n)\n\nconst SubTitle4: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h5 className={buildClassName('text-base font-medium', className)}>{children}</h5>\n)\n\nexport const HeadingText = {\n Title,\n SubTitle,\n SubTitle2,\n SubTitle3,\n SubTitle4,\n}\n","import { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { HeadingText } from '../HeadingText'\nimport { DetailedInformationProps } from './DetailedInformation.types'\n\nexport const DetailedInformation = forwardRef<HTMLDivElement, DetailedInformationProps>(\n (props, ref) => {\n const {\n className,\n title,\n subTitle,\n details,\n compact = false,\n divider = true,\n titleClass,\n detailsClass,\n ...divProps\n } = props\n\n const hasTitles = title || subTitle\n const filteredDetails = details.filter((detail) => !detail.hidden)\n return (\n <div\n className={buildClassName('p-2 md:p-4', compact ? 'md:p-2' : '', className)}\n ref={ref}\n {...divProps}\n >\n {hasTitles && (\n <div className=\"px-4 sm:px-0 pt-2 sm:pt-0 mb-2\">\n {title && (\n <HeadingText.SubTitle2 className={buildClassName(titleClass)}>\n {title}\n </HeadingText.SubTitle2>\n )}\n {subTitle && (\n <p className=\"mt-1 max-w-2xl text-sm/6 text-gray-500 dark:text-gray-300\">\n {subTitle}\n </p>\n )}\n </div>\n )}\n {filteredDetails.length ? (\n <div\n className={buildClassName(\n 'border-gray-100 dark:border-gray-700',\n hasTitles && 'border-t',\n detailsClass,\n )}\n >\n <dl\n className={buildClassName(divider && 'divide-y divide-gray-100 dark:divide-gray-700')}\n >\n {filteredDetails.map((detail) => (\n <div\n key={detail.label}\n className={buildClassName(\n 'px-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 items-center',\n compact ? 'py-1.5' : 'py-2.5',\n )}\n >\n <dt className=\"text-sm/6 font-medium text-gray-900 dark:text-gray-100\">\n {detail.label}\n </dt>\n <dd\n className={buildClassName(\n 'mt-1 text-sm/6 text-gray-700 dark:text-gray-300 sm:col-span-2 sm:mt-0',\n detail.contentClass,\n )}\n >\n {detail.value || '- -'}\n </dd>\n </div>\n ))}\n </dl>\n </div>\n ) : null}\n </div>\n )\n },\n)\n\nDetailedInformation.displayName = 'DetailedInformation'\n","import React, { type HTMLAttributes, type JSX, type JSXElementConstructor } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\nexport const Dot: React.FC<\n HTMLAttributes<HTMLElement> & {\n as?: keyof JSX.IntrinsicElements | JSXElementConstructor<any>\n }\n> = ({ as = 'span', className, ...props }) =>\n React.createElement(as, {\n className: buildClassName(\n 'inline-block rounded-full bg-gray-500 dark:bg-gray-300',\n 'w-1 h-1',\n className,\n ),\n ...props,\n })\n","import React from 'react'\nimport { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Button } from '../Button'\nimport ChevronLeftIcon from '../Icons/ChevronLeft.svg'\nimport type { DrawerProps, AlignmentMap, SizeMap } from './Drawer.types'\n\nconst alignmentMap: AlignmentMap = {\n center: 'items-center justify-center h-full',\n start: 'justify-start h-full',\n end: 'justify-end h-full',\n top: 'items-center justify-center',\n bottom: 'items-end justify-center h-full',\n}\n\nconst panelAlignmentMap: AlignmentMap = {\n center: 'data-[closed]:scale-95 rounded-lg',\n start: 'data-[closed]:-translate-x-1/2 rounded-r-lg',\n end: 'data-[closed]:translate-x-1/2 rounded-l-lg',\n top: 'data-[closed]:-translate-y-1/2 rounded-b-lg',\n bottom: 'data-[closed]:translate-y-1/2 rounded-t-lg',\n}\n\nconst panelSizeMap: SizeMap = {\n xs: 'max-w-xs',\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n '2xl': 'max-w-2xl',\n full: 'w-full',\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n isOpen,\n onClose = () => {},\n align = 'end',\n size = 'md',\n backdrop = true,\n title,\n description,\n children,\n panelClass = '',\n contentClass = '',\n titleClass = '',\n descriptionClass = '',\n titleSticky = false,\n showBackButton = false,\n}) => {\n const showTitleSection = Boolean(title || description)\n\n return (\n <Dialog\n open={isOpen}\n as=\"div\"\n className=\"relative z-50 focus:outline-none\"\n onClose={onClose}\n transition\n >\n {backdrop && <DialogBackdrop className=\"fixed inset-0 bg-black/20 transition-opacity\" />}\n\n <div className=\"fixed inset-0 w-screen h-screen\">\n <div className={buildClassName('flex', alignmentMap[align])}>\n <DialogPanel\n transition\n className={buildClassName(\n 'w-full bg-white dark:bg-gray-800 backdrop-blur-2xl shadow-sm',\n 'overflow-y-auto space-y-4 duration-200 ease-out data-[closed]:opacity-0',\n panelAlignmentMap[align],\n panelSizeMap[size],\n panelClass,\n )}\n >\n {showTitleSection && (\n <div\n className={buildClassName(\n 'space-y-2 pt-2 md:pt-4 px-4 md:px-6',\n titleSticky && 'sticky top-0 bg-white dark:bg-gray-800 z-10',\n )}\n >\n <DialogTitle\n as=\"h3\"\n className={buildClassName(\n 'text-lg font-medium dark:text-white flex items-center gap-2',\n titleClass,\n )}\n >\n {showBackButton && (\n <Button\n iconOnly\n aria-label=\"Close drawer\"\n variant=\"plain\"\n theme=\"secondary\"\n size=\"sm\"\n onClick={onClose}\n >\n <ChevronLeftIcon className=\"size-5\" />\n </Button>\n )}\n {title}\n </DialogTitle>\n\n {description && (\n <p className={buildClassName('text-sm dark:text-white/60', descriptionClass)}>\n {description}\n </p>\n )}\n </div>\n )}\n\n <div className={contentClass}>{children}</div>\n </DialogPanel>\n </div>\n </div>\n </Dialog>\n )\n}\n\nDrawer.displayName = 'Drawer'\n","import React, { Fragment } from 'react'\nimport { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { DropdownProps, DropdownItem } from './Dropdown.types'\n\nconst BASE_ITEM_CLASS =\n 'flex w-full px-3 py-2 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700 rounded-lg'\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n triggerButton,\n renderTriggerButton,\n items,\n renderItem,\n itemsContainerClass,\n transition = true,\n anchor = 'bottom start',\n menuItemClass,\n onMenuClick,\n}) => {\n return (\n <Menu as=\"div\" className=\"relative inline-block\">\n {/* Trigger */}\n {renderTriggerButton ? (\n <MenuButton as={Fragment}>\n {(state) => renderTriggerButton(state) as React.ReactElement}\n </MenuButton>\n ) : (\n <MenuButton as={Fragment}>{triggerButton}</MenuButton>\n )}\n\n {/* Dropdown Panel */}\n <MenuItems\n transition={transition}\n anchor={anchor}\n className={buildClassName(\n 'w-52 origin-top-right rounded-xl shadow-sm p-1 text-sm transition duration-100 ease-out',\n 'border border-gray-100 bg-white text-gray-800',\n 'dark:border-gray-700 dark:bg-gray-800 dark:text-gray-200',\n 'focus:outline-none data-[closed]:scale-95 data-[closed]:opacity-0',\n '[--anchor-gap:--spacing(1)]',\n itemsContainerClass,\n )}\n data-testid=\"dropdown-items\"\n as=\"ul\"\n >\n {items.map((item: DropdownItem, idx: number) => (\n <Fragment key={item.id}>\n <MenuItem as=\"li\" disabled={item.disabled}>\n {({ disabled }) => (\n <div\n onClick={() => !disabled && onMenuClick?.(item, idx)}\n className={buildClassName(\n BASE_ITEM_CLASS,\n menuItemClass,\n disabled && 'cursor-not-allowed opacity-70',\n )}\n data-testid={`dropdown-item-${item.id}`}\n >\n {renderItem ? renderItem(item) : item.label}\n </div>\n )}\n </MenuItem>\n {item.divider && (\n <li\n key={item.id}\n className=\"my-1 h-px bg-gray-200 dark:bg-white/5\"\n data-testid=\"dropdown-divider\"\n />\n )}\n </Fragment>\n ))}\n </MenuItems>\n </Menu>\n )\n}\n\nDropdown.displayName = 'Dropdown'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-folder-plus-icon lucide-folder-plus\"><path d=\"M12 10v6\"/><path d=\"M9 13h6\"/><path d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"/></svg>","import React, { type ReactNode } from 'react'\nimport FolderPlusIcon from '../Icons/FolderPlus.svg'\nimport { HeadingText } from '../HeadingText'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\n\nexport interface EmptyStateProps {\n title: string\n description?: string\n action?: ReactNode\n className?: string\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = ({\n title,\n description,\n className,\n action = null,\n}) => {\n return (\n <div className={buildClassName('w-full flex justify-center px-4 pt-16', className)}>\n <div className=\"max-w-md flex flex-col items-center gap-4\">\n <FolderPlusIcon className=\"size-8\" />\n <HeadingText.SubTitle>{title}</HeadingText.SubTitle>\n {description && (\n <BodyText as=\"p\" className=\"text-center\" muted small>\n {description}\n </BodyText>\n )}\n {action}\n </div>\n </div>\n )\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { InputProps } from './Input.types'\nimport { TextContent } from '../TextContent'\n\nexport function buildInputClass(\n className?: string,\n { isFocusWithin = false, disabled = false }: { isFocusWithin?: boolean; disabled?: boolean } = {},\n) {\n return buildClassName(\n 'transition-all',\n 'block w-full rounded-lg bg-white px-3.5 py-2 text-base sm:text-sm/6',\n 'text-gray-900 outline outline-1 -outline-offset-1',\n 'outline-gray-300 dark:outline-gray-600',\n 'invalid:group-[.has-error]:outline-red-500',\n disabled\n ? 'pointer-events-none bg-gray-100 dark:bg-gray-800 dark:text-gray-600 dark:placeholder-gray-600 placeholder-gray-400 outline-gray-200 dark:outline-gray-700'\n : 'bg-white dark:bg-gray-700 dark:text-white outline-gray-300 dark:outline-gray-600 dark:placeholder-gray-400 placeholder-gray-400',\n isFocusWithin\n ? 'focus-within:outline-[var(--ui-focus-ring)] focus-within:outline-2 focus-within:-outline-offset-2'\n : 'focus:outline-[var(--ui-focus-ring)] focus:outline-2 focus:-outline-offset-2',\n className,\n )\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const {\n name,\n id = name,\n type,\n label,\n labelHint,\n className,\n labelClass,\n labelWrapperClass,\n containerClass,\n error,\n showErrorMessage = true,\n rightGroup,\n leftGroup,\n ...inputProps\n } = props\n const hasError = Boolean(error)\n const hasRightGroup = rightGroup !== null && rightGroup !== undefined\n const hasLeftGroup = leftGroup != null && leftGroup !== undefined\n\n return (\n <div className={buildClassName('group', hasError && 'has-error', containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-2', labelWrapperClass)}\n >\n <Label className={labelClass} htmlFor={id}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n <div className=\"relative\">\n {hasLeftGroup && (\n <span className=\"absolute top-0 h-full flex items-center justify-center w-10\">\n {leftGroup}\n </span>\n )}\n <input\n ref={ref}\n autoComplete=\"off\"\n {...inputProps}\n name={name}\n id={id}\n type={type}\n className={buildClassName(\n buildInputClass(className, { disabled: inputProps.disabled }),\n hasRightGroup ? 'pe-10' : '',\n hasLeftGroup ? 'ps-10' : '',\n )}\n />\n {hasRightGroup && (\n <span className=\"absolute end-0.75 top-0 h-full flex items-center justify-center w-10\">\n {rightGroup}\n </span>\n )}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n\nInput.displayName = 'Input'\n","import { useState } from 'react'\nimport { Input, type InputProps } from '../Input'\nimport { Button } from '../Button'\n\nexport interface PasswordInputProps\n extends Omit<InputProps, 'rightGroup' | 'type' | 'placeholder'> {}\nexport const PASSWORD_TYPE = 'password'\nexport const PASSWORD_PLACEHOLDER = '••••••••••'\n\nexport const PasswordInput: React.FC<PasswordInputProps> = (props) => {\n const { ...inputProps } = props\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <Input\n {...inputProps}\n type={showPassword ? 'text' : PASSWORD_TYPE}\n placeholder={PASSWORD_PLACEHOLDER}\n rightGroup={\n <Button\n theme=\"secondary\"\n variant=\"plain\"\n size=\"xs\"\n className=\"px-1 mr-1\"\n type=\"button\"\n onClick={() => setShowPassword(() => !showPassword)}\n tabIndex={-1}\n >\n {showPassword ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n className=\"size-4\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"\n />\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n className=\"size-4\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z\"\n />\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n />\n </svg>\n )}\n </Button>\n }\n />\n )\n}\n","import { forwardRef, useId } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { RadioProps } from './Radio.types'\nimport { TextContent } from '../TextContent'\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>((props, ref) => {\n const {\n id,\n name,\n label,\n labelClass = '',\n wrapperClass = '',\n containerClass = '',\n error,\n disabled = false,\n className = '',\n // RadioButton-only props removed from rest\n ...rest\n } = props\n\n const generatedId = useId()\n const radioId = id ?? name ?? generatedId\n\n return (\n <div className={buildClassName(wrapperClass)}>\n <div className={buildClassName('flex items-center gap-2', containerClass)}>\n <div className=\"grid place-items-center\">\n <input\n ref={ref}\n {...rest}\n id={radioId}\n name={name}\n type=\"radio\"\n disabled={disabled}\n aria-checked={rest.checked}\n className={buildClassName(\n 'peer transition-all col-start-1 row-start-1 appearance-none shrink-0 size-4.5 rounded-full',\n 'border focus:ring-2 focus:ring-offset-2',\n 'checked:border-5 checked:bg-white',\n 'focus:ring-[var(--ui-focus-ring)] dark:focus:ring-offset-gray-800',\n disabled\n ? 'border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 pointer-events-none'\n : buildClassName(\n 'bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500',\n 'checked:border-[var(--ui-primary)] checked:hover:border-[var(--ui-primary)]',\n ),\n className,\n )}\n />\n </div>\n {label && (\n <Label\n htmlFor={radioId}\n className={buildClassName(\n disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500'\n : 'cursor-pointer text-gray-600 dark:text-gray-300',\n labelClass,\n )}\n >\n {label}\n </Label>\n )}\n </div>\n {error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React, { useMemo } from 'react'\nimport { Radio } from '../Radio'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport { RadioGroupProps, RadionGroupItem } from './RadioGroup.types'\n\nexport const RadioGroup: React.FC<RadioGroupProps> = (props) => {\n const {\n name,\n label,\n labelClass,\n labelWrapperClass,\n labelHint,\n containerClass,\n options,\n value,\n row,\n error,\n showErrorMessage,\n onChange,\n } = props\n const items = useMemo(\n () =>\n options?.map((option) =>\n typeof option === 'string' ? { label: option, value: option } : option,\n ) ?? [],\n [options],\n )\n\n return (\n <div className={buildClassName(containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-4', labelWrapperClass)}\n >\n <Label className={labelClass}>{label}</Label>\n {labelHint}\n </div>\n )}\n <div\n className={buildClassName(\n 'flex gap-4',\n row ? 'flex-row items-center' : 'flex-col items-start',\n )}\n >\n {items.map((item) => (\n <Radio\n key={item.value}\n name={name}\n id={`${name}-${item.value}`}\n label={item.label}\n value={item.value}\n checked={value === item.value}\n onChange={onChange}\n />\n ))}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Radio, RadioGroup } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { RadioSwitchItem, RadioSwitchProps } from './RadioSwitch.types'\nimport { BodyText } from '../BodyText'\n\n/**\n * GPU-accelerated Radio Switch with perfect highlight alignment.\n * Supports wrapping, icons, descriptions, and dark mode.\n */\nexport const RadioSwitch: React.FC<RadioSwitchProps> = ({\n label,\n items,\n selected,\n onChange,\n wrapperClass,\n switchClass,\n contentClass,\n descriptionClass,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const [style, setStyle] = useState({ left: 0, top: 0, width: 0, height: 0 })\n\n const getLabel = (i: RadioSwitchItem) => (typeof i === 'string' ? i : i.label)\n\n const getValue = (i: RadioSwitchItem) => (typeof i === 'string' ? i : i.value)\n\n const getDescription = (i: RadioSwitchItem) =>\n typeof i === 'string' ? '' : (i.description ?? '')\n\n /** ---------------------------------------------\n * Update highlight when selected changes\n * ----------------------------------------------*/\n useEffect(() => {\n if (!containerRef.current) return\n\n const buttons = Array.from(\n containerRef.current.querySelectorAll('[data-radio-item]'),\n ) as HTMLElement[]\n\n const el = buttons.find((b) => b.dataset.value === selected)\n if (!el) return\n\n const rect = el.getBoundingClientRect()\n const parentRect = containerRef.current.getBoundingClientRect()\n\n const left = rect.left - parentRect.left\n const top = rect.top - parentRect.top\n\n setStyle({\n left,\n top,\n width: rect.width,\n height: rect.height,\n })\n }, [selected, items])\n\n return (\n <RadioGroup\n value={selected}\n onChange={onChange}\n aria-label={label}\n ref={containerRef}\n className={buildClassName(\n 'relative flex flex-wrap gap-1',\n 'transition-colors duration-200 overflow-hidden',\n wrapperClass,\n )}\n >\n {/* Sliding highlight — GPU optimized */}\n <div\n className={buildClassName(\n 'absolute rounded-md bg-blue-600 dark:bg-blue-500',\n 'transition-transform transition-size duration-300 ease-[cubic-bezier(.25,.8,.25,1)]',\n switchClass,\n )}\n style={{\n transform: `translate(${style.left}px, ${style.top}px)`,\n width: style.width,\n height: style.height,\n }}\n />\n\n {/* Items */}\n {items.map((item) => (\n <Radio\n key={getValue(item)}\n value={getValue(item)}\n data-radio-item\n data-value={getValue(item)}\n className={buildClassName(\n 'relative z-10 cursor-pointer select-none group',\n 'px-4 py-2 rounded-md transition-colors',\n 'text-gray-700 dark:text-gray-300 data-checked:text-white',\n )}\n >\n <div\n className={buildClassName(\n 'flex flex-col items-center justify-center gap-1',\n contentClass,\n )}\n >\n <BodyText className=\"font-semibold\">{getLabel(item)}</BodyText>\n\n {getDescription(item) && (\n <BodyText className={buildClassName('text-xs opacity-80', descriptionClass)}>\n {getDescription(item)}\n </BodyText>\n )}\n </div>\n </Radio>\n ))}\n </RadioGroup>\n )\n}\n","/**\n * Checks if a value is an array.\n * Equivalent to lodash's _.isArray.\n */\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value)\n}\n","import { isArray } from './is-array'\n\n/**\n * Checks if a value is empty.\n * Works for arrays, objects, strings, Maps, and Sets.\n * Equivalent to lodash's _.isEmpty.\n */\nexport function isEmpty(value: any): boolean {\n if (value == null) return true // null or undefined\n\n if (typeof value === 'string' || isArray(value)) {\n return value.length === 0\n }\n\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0\n }\n\n if (typeof value === 'object') {\n return Object.keys(value).length === 0\n }\n\n return false // for numbers, booleans, functions, etc.\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { TextContent } from '../TextContent'\nimport { RangeInputProps } from './RangeInput.types'\n\n// export interface RangeInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {\n// label?: string\n// labelClass?: string\n// labelHint?: React.ReactNode\n// containerClass?: string\n// showValue?: boolean\n// valueSuffix?: string\n// error?: string | null\n// showErrorMessage?: boolean\n// }\n\nexport const RangeInput = forwardRef<HTMLInputElement, RangeInputProps>((props, ref) => {\n const {\n label,\n labelClass = '',\n labelHint = null,\n containerClass = '',\n className = '',\n showValue = true,\n valueSuffix = '',\n error = null,\n showErrorMessage = true,\n id,\n min = 0,\n max = 100,\n value,\n ...inputProps\n } = props\n\n const hasError = !isEmpty(error)\n\n return (\n <div className={buildClassName('group space-y-2', containerClass)}>\n {label && (\n <div className=\"flex items-center justify-between\">\n <Label htmlFor={id} className={labelClass}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n\n <div className=\"flex items-center gap-3\">\n <input\n ref={ref}\n type=\"range\"\n id={id}\n min={min}\n max={max}\n value={value}\n {...inputProps}\n className={buildClassName(\n 'w-full h-2 rounded-lg appearance-none cursor-pointer',\n 'bg-gray-200 dark:bg-gray-700',\n 'accent-blue-600', // for WebKit\n '[&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4',\n '[&::-webkit-slider-thumb]:rounded-full',\n '[&::-webkit-slider-thumb]:bg-blue-600',\n '[&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4',\n '[&::-moz-range-thumb]:rounded-full',\n '[&::-moz-range-thumb]:bg-blue-600',\n hasError && 'accent-red-600',\n className,\n )}\n />\n\n {showValue && (\n <span className=\"text-sm text-gray-600 dark:text-gray-300 min-w-[3rem] text-right\">\n {value}\n {valueSuffix}\n </span>\n )}\n </div>\n\n {showErrorMessage && hasError && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { RangeSliderProps } from './RangeSlider.types'\nimport { TextContent } from '../TextContent'\n\nexport const RangeSlider: React.FC<RangeSliderProps> = ({\n label,\n labelHint,\n labelClass = '',\n containerClass = '',\n className = '',\n min,\n max,\n valueMin,\n valueMax,\n onChange,\n valueSuffix = '',\n error = null,\n showErrorMessage = true,\n}) => {\n const trackRef = useRef<HTMLDivElement | null>(null)\n\n // Refs for drag logic\n const activeThumbRef = useRef<'min' | 'max' | null>(null)\n\n // State for UI styling\n const [activeThumbState, setActiveThumbState] = useState<'min' | 'max' | null>(null)\n\n // Keep prop values in refs so drag handlers always use latest values (no stale closure)\n const valueMinRef = useRef(valueMin)\n const valueMaxRef = useRef(valueMax)\n const onChangeRef = useRef(onChange)\n valueMinRef.current = valueMin\n valueMaxRef.current = valueMax\n onChangeRef.current = onChange\n\n const hasError = !isEmpty(error)\n const percent = (v: number) => ((v - min) / (max - min)) * 100\n\n // Stable handler references registered on window — these never change identity\n // so removeEventListener always finds the right listener to remove.\n const stablePointerMoveRef = useRef((e: PointerEvent) => {\n if (!trackRef.current || !activeThumbRef.current) return\n const rect = trackRef.current.getBoundingClientRect()\n const x = Math.min(Math.max(e.clientX - rect.left, 0), rect.width)\n const rawVal = min + (x / rect.width) * (max - min)\n if (activeThumbRef.current === 'min') {\n onChangeRef.current(Math.min(rawVal, valueMaxRef.current - 1), valueMaxRef.current)\n } else {\n onChangeRef.current(valueMinRef.current, Math.max(rawVal, valueMinRef.current + 1))\n }\n })\n\n const stablePointerUpRef = useRef(() => {\n activeThumbRef.current = null\n setActiveThumbState(null)\n window.removeEventListener('pointermove', stablePointerMoveRef.current)\n window.removeEventListener('pointerup', stablePointerUpRef.current)\n })\n\n // Remove listeners on unmount in case a drag is in progress\n useEffect(() => {\n const move = stablePointerMoveRef.current\n const up = stablePointerUpRef.current\n return () => {\n window.removeEventListener('pointermove', move)\n window.removeEventListener('pointerup', up)\n }\n }, [])\n\n // ---------------------------------------------\n // Pointer Move (drag)\n // ---------------------------------------------\n const startDrag = (thumb: 'min' | 'max') => (_e: React.PointerEvent) => {\n activeThumbRef.current = thumb\n setActiveThumbState(thumb)\n window.addEventListener('pointermove', stablePointerMoveRef.current)\n window.addEventListener('pointerup', stablePointerUpRef.current)\n }\n\n // ---------------------------------------------\n // Click Track to move closest thumb\n // ---------------------------------------------\n const handleTrackClick = (e: React.MouseEvent) => {\n if (!trackRef.current) return\n\n const rect = trackRef.current.getBoundingClientRect()\n const x = Math.min(Math.max(e.clientX - rect.left, 0), rect.width)\n const rawVal = min + (x / rect.width) * (max - min)\n const pxMin = (percent(valueMin) / 100) * rect.width\n const pxMax = (percent(valueMax) / 100) * rect.width\n\n // If click is left of min thumb → move min thumb\n if (x <= pxMin) {\n onChange(rawVal, valueMax)\n return\n }\n\n // If click is right of max thumb → move max thumb\n if (x >= pxMax) {\n onChange(valueMin, rawVal)\n return\n }\n\n // Else click is between → move closest thumb\n const distMin = Math.abs(rawVal - valueMin)\n const distMax = Math.abs(rawVal - valueMax)\n\n if (distMin < distMax) {\n onChange(rawVal, valueMax)\n } else {\n onChange(valueMin, rawVal)\n }\n }\n\n return (\n <div className={buildClassName('group space-y-2', hasError && 'has-error', containerClass)}>\n {/* Label */}\n {label && (\n <div className=\"flex items-center justify-between mb-1\">\n <Label className={labelClass}>{label}</Label>\n {labelHint}\n </div>\n )}\n\n {/* TRACK */}\n <div\n ref={trackRef}\n onMouseDown={handleTrackClick}\n className=\"relative h-8 select-none w-full\"\n data-testid=\"range-track\"\n >\n {/* Track background */}\n <div className=\"absolute top-1/2 left-0 right-0 h-2 rounded-full bg-gray-200 dark:bg-gray-700 -translate-y-1/2\" />\n\n {/* Highlight active section */}\n <div\n className=\"absolute top-1/2 h-2 bg-blue-600 dark:bg-blue-500 -translate-y-1/2 rounded-full \n transition-all duration-150 ease-out\"\n style={{\n left: `${percent(valueMin)}%`,\n width: `${percent(valueMax) - percent(valueMin)}%`,\n }}\n />\n\n {/* MIN THUMB */}\n <div\n onPointerDown={startDrag('min')}\n className={buildClassName(\n 'absolute top-1/2 -translate-y-1/2 h-5 w-5 rounded-full',\n 'bg-white border-2 border-blue-600 shadow-md cursor-pointer touch-none',\n 'transition-all duration-150 ease-out', // animation\n activeThumbState === 'min' && 'ring-4 ring-blue-200',\n className,\n )}\n style={{\n left: `calc(${percent(valueMin)}% - 10px)`,\n zIndex: activeThumbState === 'min' ? 50 : 30,\n }}\n data-testid=\"thumb-min\"\n />\n\n {/* MAX THUMB */}\n <div\n onPointerDown={startDrag('max')}\n className={buildClassName(\n 'absolute top-1/2 -translate-y-1/2 h-5 w-5 rounded-full',\n 'bg-white border-2 border-blue-600 shadow-md cursor-pointer touch-none',\n 'transition-all duration-150 ease-out', // animation\n activeThumbState === 'max' && 'ring-4 ring-blue-200',\n className,\n )}\n style={{\n left: `calc(${percent(valueMax)}% - 10px)`,\n zIndex: activeThumbState === 'max' ? 50 : 40,\n }}\n data-testid=\"thumb-max\"\n />\n </div>\n\n {/* Numbers */}\n <div className=\"flex justify-between text-sm text-gray-700 dark:text-gray-300\">\n <span>\n {Math.round(valueMin)}\n {valueSuffix}\n </span>\n <span>\n {Math.round(valueMax)}\n {valueSuffix}\n </span>\n </div>\n\n {/* Error message */}\n {showErrorMessage && hasError && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n}\n","import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport const useDebounce = <T,>(value: T, delay: number): T => {\n const [debouncedValue, setDebouncedValue] = useState<T>(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n // Cancel the timeout if value or delay changes\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n\nexport const useDebounceFn = (fn: (...args: any[]) => void, ms: number) => {\n const timeout = useRef<any>(null)\n\n useEffect(() => {\n return () => clearTimeout(timeout.current)\n }, [])\n\n return useCallback(\n (...args: any[]) => {\n clearTimeout(timeout.current)\n timeout.current = setTimeout(() => fn(...args), ms)\n },\n [fn, ms],\n )\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-check-icon lucide-check\"><path d=\"M20 6 9 17l-5-5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-down-icon lucide-chevron-down\"><path d=\"m6 9 6 6 6-6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-plus-icon lucide-circle-plus\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M8 12h8\"/><path d=\"M12 8v8\"/></svg>","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n Combobox,\n ComboboxButton,\n ComboboxInput,\n ComboboxOption,\n ComboboxOptions,\n} from '@headlessui/react'\n\nimport { Label } from '../Label'\nimport { Badge } from '../Badge'\nimport { Loader } from '../Loader'\nimport { TextContent } from '../TextContent'\nimport { Button } from '../Button'\n\nimport { isArray } from '../../utils/is-array'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { useDebounce } from '../../hooks/use-debounce'\n\nimport CheckIcon from '../Icons/Check.svg'\nimport ChevronDownIcon from '../Icons/ChevronDown.svg'\nimport XIcon from '../Icons/X.svg'\nimport CirclePlusIcon from '../Icons/CirclePlus.svg'\nimport type { BaseOption, SelectBoxProps } from './SelectBox.types'\nimport { buildInputClass } from '../Input'\n\nconst constructInputClass = (disabled: boolean) => buildInputClass('', { disabled })\n\nexport const SelectBox = forwardRef(\n <T extends BaseOption | string = BaseOption>(\n props: SelectBoxProps<T>,\n forwardedRef: React.Ref<HTMLInputElement | HTMLDivElement | null>,\n ) => {\n const {\n labelKey = 'label',\n valueKey = 'value',\n name,\n id = name,\n options,\n selected,\n label = null,\n labelWrapperClass = '',\n labelClass = '',\n labelHint = null,\n disabled = false,\n containerClass = '',\n onChange = () => {},\n placeholder,\n dropdownContainerClass = 'z-20',\n multiple = false,\n maxSelection,\n immediate = true,\n showErrorMessage = true,\n error = null,\n async = false,\n searchable = true,\n required = false,\n allowAdd = false,\n addNewText = 'Create',\n onAdd = () => {},\n allowClear = false,\n } = props\n\n const hasError = Boolean(error)\n const [query, setQuery] = useState('')\n const debouncedQuery = useDebounce(query, 500)\n const [optionsLoading, setOptionsLoading] = useState(false)\n const shouldShowTypeToSearch = async && !query && !optionsLoading && options.length === 0\n const inputClass = useMemo(() => constructInputClass(disabled), [disabled])\n const chevronIconClass = buildClassName(\n 'size-4',\n 'stroke-gray-500 group-data-[hover]:stroke-gray-800',\n 'dark:stroke-gray-300 dark:group-data-[hover]:stroke-gray-100',\n disabled && 'dark:stroke-gray-600 stroke-gray-400',\n )\n\n const inputRef = useRef<HTMLInputElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n\n // Expose the input element to parent\n useImperativeHandle(forwardedRef, () => inputRef.current!, [inputRef])\n\n const filteredOptions = useMemo(() => {\n if (query === '' || async) return options\n return options.filter((opt) => {\n const label = typeof opt === 'string' ? opt : (opt as BaseOption)[labelKey]\n return label?.toLowerCase().includes(query.toLowerCase())\n })\n }, [options, query, async, labelKey])\n\n const getDisplayValue = useCallback(\n (opt: T) => {\n return typeof opt === 'string' ? opt : opt[labelKey]\n },\n [labelKey],\n )\n\n const getValue = useCallback(\n (opt: T) => {\n return typeof opt === 'string' ? opt : opt[valueKey]\n },\n [valueKey],\n )\n\n const removeSelection = (idx: number) => {\n if (!isArray(selected)) return\n const next = [...selected]\n next.splice(idx, 1)\n onChange(next)\n inputRef.current?.focus()\n }\n\n // A strongly-typed internal handler (what you expect callers to receive)\n const handleOnChangeInternal = useCallback(\n (value: T | T[] | null) => {\n // normal empty value\n if (value === null) {\n onChange(multiple ? ([] as T[]) : null)\n setQuery('')\n return\n }\n\n // enforce maxSelection\n if (multiple && Array.isArray(value) && maxSelection && value.length > maxSelection) {\n // ignore the change\n return\n }\n\n onChange(value as T | T[])\n setQuery('')\n },\n [onChange, multiple, maxSelection],\n )\n\n /**\n * Headless UI typings are overly broad (they include null[] and EnsureArray<T> etc).\n * We therefore pass a wrapper to the Combobox with a cast (only at the call site),\n * while keeping our internal logic strongly typed.\n */\n const comboboxOnChangeWrapper = useCallback(\n (raw: unknown) => {\n // normalize actual runtime shapes Headless UI uses: T | T[] | null\n if (raw === null || raw === undefined) {\n handleOnChangeInternal(null)\n return\n }\n\n if (Array.isArray(raw)) {\n // sometimes union typing suggests arrays of nulls — guard it\n const allNulls = raw.length > 0 && raw.every((v) => v === null)\n if (allNulls) {\n handleOnChangeInternal([] as unknown as T[])\n return\n }\n // cast array to T[]\n handleOnChangeInternal(raw as unknown as T[])\n return\n }\n\n // single value\n handleOnChangeInternal(raw as unknown as T)\n },\n [handleOnChangeInternal],\n )\n\n // support create (allowAdd) as a real ComboboxOption\n const handleAddAndSelect = useCallback(\n async (valueToAdd: string) => {\n try {\n const result = await onAdd(valueToAdd)\n // if the parent returned a new option (string or object), select it\n if (result) {\n // If parent returned raw string or object, call onChange with that\n handleOnChangeInternal(result as unknown as T)\n } else {\n // if parent didn't return anything, select the raw string value\n handleOnChangeInternal(valueToAdd as unknown as T)\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('onAdd handler error', err)\n }\n },\n [onAdd, handleOnChangeInternal],\n )\n\n const handleSearch = useCallback(\n async (searchString: string) => {\n try {\n setOptionsLoading(true)\n await props.onSearch?.(searchString)\n } catch (err) {\n console.error('Error loading options:', err)\n } finally {\n setOptionsLoading(false)\n }\n },\n [props.onSearch],\n )\n\n useEffect(() => {\n if (async && debouncedQuery) handleSearch(debouncedQuery)\n }, [debouncedQuery, async, handleSearch])\n\n return (\n <div\n className={buildClassName('group space-y-2', hasError && 'has-error', containerClass)}\n ref={containerRef}\n >\n {label && (\n <div className={buildClassName('flex items-center justify-between', labelWrapperClass)}>\n <Label className={labelClass} htmlFor={id} aria-required={required}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n\n <Combobox\n multiple={multiple}\n immediate={immediate}\n name={name}\n value={selected}\n onChange={comboboxOnChangeWrapper as any}\n onClose={() => setQuery('')}\n disabled={disabled}\n >\n {multiple ? (\n <div\n className={buildClassName(inputClass, 'flex flex-wrap gap-2 peer relative')}\n ref={forwardedRef as any} // ensure parent ref hits a real DOM node\n >\n {isArray(selected) &&\n selected?.length > 0 &&\n selected.map((option, idx) => (\n <Badge\n key={`${getValue(option)}-${idx}`}\n theme=\"secondary\"\n removable={!disabled}\n onRemove={() => removeSelection(idx)}\n >\n {getDisplayValue(option)}\n </Badge>\n ))}\n\n <ComboboxInput\n className=\"outline-none flex-1 dark:placeholder-gray-400 placeholder-gray-400\"\n aria-label={name}\n value={query}\n autoComplete=\"off\"\n placeholder={selected?.length ? '' : placeholder}\n onChange={(e) => setQuery(e.target.value)}\n id={id}\n ref={inputRef}\n onKeyDown={(e) => {\n if (multiple && e.key === 'Backspace' && !query) {\n if (Array.isArray(selected) && selected.length > 0) {\n removeSelection(selected.length - 1)\n }\n }\n }}\n data-testid=\"combobox-input\"\n />\n\n <ComboboxButton\n className=\"group absolute inset-y-0 right-0 px-2.5\"\n data-testid=\"combobox-button\"\n >\n <ChevronDownIcon className={chevronIconClass} />\n </ComboboxButton>\n </div>\n ) : (\n <div className=\"relative\" ref={forwardedRef as any}>\n <ComboboxInput\n aria-label={name}\n displayValue={(option: any) => (option ? getDisplayValue(option) : null)}\n autoComplete=\"off\"\n placeholder={placeholder}\n onChange={(event) => setQuery(event.target.value)}\n className={inputClass}\n disabled={disabled}\n id={id}\n readOnly={!searchable}\n ref={inputRef}\n data-testid=\"combobox-input\"\n />\n\n {allowClear && !isEmpty(selected) && (\n <Button\n size=\"xs\"\n iconOnly\n aria-label=\"Clear selection\"\n theme=\"secondary\"\n variant=\"plain\"\n className=\"group absolute inset-y-0 right-8 h-6 top-2\"\n onClick={() => handleOnChangeInternal(multiple ? ([] as T[]) : null)}\n disabled={disabled}\n data-testid=\"combobox-clear-button\"\n noOutlineOnFocus\n >\n <XIcon className=\"size-4 stroke-gray-500\" />\n </Button>\n )}\n\n <ComboboxButton\n className=\"group absolute inset-y-0 right-0 px-2.5\"\n data-testid=\"combobox-button\"\n >\n <ChevronDownIcon className={chevronIconClass} />\n </ComboboxButton>\n </div>\n )}\n\n <ComboboxOptions\n anchor={{ to: 'bottom', gap: 5 }}\n as=\"div\"\n className={buildClassName(\n 'w-[var(--input-width)] rounded-lg border border-gray-200 dark:border-white/5 bg-white dark:bg-gray-800 p-1 [--anchor-gap:var(--spacing-1)]',\n '[--anchor-max-height:20rem]',\n 'origin-top border transition duration-200 ease-[cubic-bezier(0.4, 0.0, 0.2, 1)] data-[closed]:translate-y-[-15%] data-[closed]:opacity-0',\n dropdownContainerClass,\n )}\n transition\n data-testid=\"combobox-options\"\n >\n {optionsLoading ? (\n <div\n data-testid=\"options-loading\"\n className=\"flex items-center justify-center py-2 px-3 select-none\"\n >\n <Loader size=\"sm\" />\n </div>\n ) : shouldShowTypeToSearch ? (\n <div className=\"flex items-center justify-between py-2 px-3 select-none\">\n Type to search...\n </div>\n ) : (\n <div>\n {filteredOptions.map((option) => (\n <ComboboxOption\n key={getValue(option)}\n disabled={(option as BaseOption).disabled}\n value={option}\n className=\"group rounded-lg py-1.5 px-3 select-none data-[focus]:bg-black/3 dark:data-[focus]:bg-white/10 data-disabled:opacity-50 cursor-pointer data-disabled:pointer-events-none\"\n >\n {/* Wrap the option content in a single element to avoid Fragment ref errors */}\n <div className=\"flex items-center justify-between gap-2 dark:text-white group-data-[selected]:text-blue-600\">\n <span className=\"text-sm/6\">{getDisplayValue(option)}</span>\n <CheckIcon className=\"invisible size-5 dark:stroke-gray-300 group-data-[selected]:visible\" />\n </div>\n </ComboboxOption>\n ))}\n\n {filteredOptions.length === 0 && query && !optionsLoading && (\n <div\n data-testid=\"no-result-found\"\n className=\"flex items-center gap-2 py-1.5 px-3 select-none text-gray-500 dark:text-gray-400\"\n >\n No results found for <span className=\"font-semibold\">{query}</span>\n </div>\n )}\n\n {allowAdd && (\n <ComboboxOption\n value={query}\n className=\"group rounded-lg py-1.5 px-3 cursor-pointer text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700\"\n onClick={() => void handleAddAndSelect(query)}\n >\n {/* Single wrapper here too */}\n <div className=\"flex items-center gap-2\">\n <CirclePlusIcon className=\"size-4.5\" />\n <TextContent>\n {addNewText} \"{query}\"\n </TextContent>\n </div>\n </ComboboxOption>\n )}\n </div>\n )}\n </ComboboxOptions>\n </Combobox>\n\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n },\n)\n","import React, { Fragment, type ReactNode } from 'react'\nimport { Tab, TabGroup, TabList, TabPanels, TabPanel } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TabsProps } from './Tabs.types'\n\nexport const Tabs: React.FC<TabsProps> = ({\n tabs,\n defaultIndex = 0,\n variant = 'underline',\n className = '',\n listClass = '',\n panelClass = '',\n}) => {\n return (\n <TabGroup defaultIndex={defaultIndex} className={className}>\n <TabList className={buildClassName('flex gap-2', listClass)}>\n {tabs.map((tab, idx) => (\n <Tab key={idx} as={Fragment}>\n {({ selected }) => (\n <button className={buildTabClass({ selected, variant })}>{tab.label}</button>\n )}\n </Tab>\n ))}\n </TabList>\n\n <TabPanels className={buildClassName('mt-3', panelClass)}>\n {tabs.map((tab, idx) => (\n <TabPanel key={idx} className=\"rounded-lg bg-white dark:bg-gray-800 p-4 shadow-sm\">\n {tab.content}\n </TabPanel>\n ))}\n </TabPanels>\n </TabGroup>\n )\n}\n\n/**\n * Build tab styles based on variant + active state\n */\nfunction buildTabClass({\n selected,\n variant,\n}: {\n selected: boolean\n variant: 'underline' | 'segmented' | 'solid'\n}) {\n switch (variant) {\n /**\n * UNDERLINE (Default)\n */\n case 'underline':\n return buildClassName(\n 'px-3 py-1.5 text-sm font-medium transition relative',\n 'text-gray-600 dark:text-gray-300',\n 'hover:text-gray-900 dark:hover:text-white',\n selected &&\n 'text-gray-900 dark:text-white after:absolute after:left-0 after:right-0 after:-bottom-1 after:h-0.5 after:bg-[var(--ui-primary)]',\n )\n\n /**\n * SEGMENTED\n */\n case 'segmented':\n return buildClassName(\n 'px-3 py-1.5 text-sm font-medium rounded-lg transition',\n selected\n ? 'bg-[var(--ui-primary)] text-white'\n : 'text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700',\n )\n\n /**\n * SOLID\n */\n case 'solid':\n return buildClassName(\n 'px-3 py-1.5 text-sm font-medium rounded-md transition',\n selected\n ? 'bg-gray-900 dark:bg-gray-700 text-white'\n : 'bg-gray-200 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-700',\n )\n }\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { isEmpty } from '../../utils/is-empty'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport type { TextareaProps } from './Textarea.types'\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>((props, ref) => {\n const {\n name,\n id = name,\n label = null,\n labelHint = null,\n className = '',\n labelClass = '',\n labelWrapperClass = '',\n containerClass = '',\n error,\n showErrorMessage = true,\n rightGroup = null,\n leftGroup = null,\n ...inputProps\n } = props\n const hasError = !isEmpty(error)\n const hasRightGroup = rightGroup != null && rightGroup !== undefined\n const hasLeftGroup = leftGroup != null && leftGroup !== undefined\n\n return (\n <div className={buildClassName('group', hasError && 'has-error', containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-2', labelWrapperClass)}\n >\n <Label className={labelClass} htmlFor={id}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n <div className=\"relative\">\n {hasLeftGroup && (\n <span className=\"absolute top-0 h-full flex items-center justify-center w-10\">\n {leftGroup}\n </span>\n )}\n <textarea\n ref={ref}\n autoComplete=\"off\"\n {...inputProps}\n name={name}\n id={id}\n className={buildClassName(\n 'transition-all',\n 'block w-full rounded-lg bg-white px-3.5 py-2 text-base sm:text-sm/6',\n 'text-gray-900 outline dark:outline outline-1 -outline-offset-1',\n 'outline-gray-300 dark:outline-gray-600',\n 'focus:outline-blue-600 dark:focus:outline-blue-600 focus:outline-2 focus:-outline-offset-2',\n 'dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-500 placeholder:text-gray-400 dark:text-white',\n 'invalid:group-[.has-error]:outline-red-500',\n 'disabled:pointer-events-none disabled:bg-gray-100',\n 'dark:disabled:bg-gray-500',\n hasRightGroup ? 'pe-10' : '',\n hasLeftGroup ? 'ps-10' : '',\n className,\n )}\n />\n {hasRightGroup && (\n <span className=\"absolute end-0.75 top-0 h-full flex items-center justify-center\">\n {rightGroup}\n </span>\n )}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React from 'react'\nimport { Transition } from '@headlessui/react'\nimport XIcon from '../Icons/X.svg'\nimport CheckCircle from '../Icons/CircleCheck.svg'\nimport AlertCircle from '../Icons/CircleAlert.svg'\nimport Info from '../Icons/Info.svg'\nimport AlertTriangle from '../Icons/TriangleAlert.svg'\n\nimport { Button } from '../Button'\nimport { TextContent } from '../TextContent'\nimport { buildClassName } from '../../utils/build-classname'\n\nimport { ToastProps } from './Toast.types'\n\n/**\n * Icons for each toast type\n */\nconst iconMap = {\n success: <CheckCircle className=\"size-5 text-[var(--ui-success)]\" />,\n error: <AlertCircle className=\"size-5 text-[var(--ui-danger)]\" />,\n info: <Info className=\"size-5 text-[var(--ui-info)]\" />,\n warning: <AlertTriangle className=\"size-5 text-[var(--ui-warning)]\" />,\n}\n\nconst textColorMap = {\n success: 'text-[var(--ui-success-text)]',\n error: 'text-[var(--ui-danger-text)]',\n info: 'text-[var(--ui-info-text)]',\n warning: 'text-[var(--ui-warning-text)]',\n}\n\nconst borderStyle = {\n success: 'border-t-4 border-[var(--ui-success)]',\n error: 'border-t-4 border-[var(--ui-danger)]',\n info: 'border-t-4 border-[var(--ui-info)]',\n warning: 'border-t-4 border-[var(--ui-warning)]',\n}\n\nexport const Toast: React.FC<ToastProps & { isTop?: boolean }> = ({\n message,\n type,\n onClose,\n className,\n id,\n isTop = true,\n}) => {\n const enterFrom = isTop ? 'opacity-0 -translate-y-3 scale-95' : 'opacity-0 translate-y-3 scale-95'\n const leaveTo = isTop ? 'opacity-0 -translate-y-2 scale-95' : 'opacity-0 translate-y-2 scale-95'\n return (\n <Transition\n appear\n show\n enter=\"transform transition duration-300\"\n enterFrom={enterFrom}\n enterTo=\"opacity-100 translate-y-0 scale-100\"\n leave=\"transition duration-200\"\n leaveFrom=\"opacity-100 translate-y-0 scale-100\"\n leaveTo={leaveTo}\n >\n <div\n role=\"status\"\n className={buildClassName(\n 'flex items-center gap-3 rounded-lg px-4 py-3 shadow-lg min-w-[260px] max-w-sm',\n 'bg-white dark:bg-gray-900 dark:border-gray-700',\n borderStyle[type],\n className,\n )}\n id={id.toString()}\n >\n {/* Icon */}\n <TextContent className={buildClassName(textColorMap[type])}>{iconMap[type]}</TextContent>\n\n {/* Message */}\n <TextContent className=\"flex-1 text-sm font-medium\">{message}</TextContent>\n\n {/* Close button */}\n <Button\n onClick={onClose}\n aria-label=\"Close toast\"\n className=\"opacity-60 hover:opacity-100 transition\"\n iconOnly\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n noOutlineOnFocus\n >\n <XIcon className=\"size-4\" />\n </Button>\n </div>\n </Transition>\n )\n}\n","import React, {\n createContext,\n useContext,\n useEffect,\n useState,\n type ReactNode,\n useRef,\n useCallback,\n} from 'react'\nimport { Toast } from './Toast'\nimport type { IToast, ToastContextType, ToastOptions, ToastPlacement } from './Toast.types'\nimport { buildClassName } from '../../utils/build-classname'\n\nconst ToastContext = createContext<ToastContextType | undefined>(undefined)\nlet toastCounter = 0\n\nexport const useToast = (): ToastContextType => {\n const context = useContext(ToastContext)\n if (!context) throw new Error('useToast must be used within ToastProvider')\n return context\n}\n\n// Maximum visible toasts at once\nconst MAX_TOASTS = 5\n\nconst placementClass: Record<ToastPlacement, string> = {\n 'top-right': 'top-10 right-4 items-end',\n 'top-left': 'top-10 left-4 items-start',\n 'top-center': 'top-10 left-1/2 -translate-x-1/2 items-center',\n\n 'bottom-right': 'bottom-10 right-4 items-end',\n 'bottom-left': 'bottom-10 left-4 items-start',\n 'bottom-center': 'bottom-10 left-1/2 -translate-x-1/2 items-center',\n}\n\nexport const ToastProvider: React.FC<{\n children: ReactNode\n placement?: ToastPlacement\n}> = ({ children, placement = 'top-center' }) => {\n const [toasts, setToasts] = useState<IToast[]>([])\n const timeoutRefs = useRef<Map<number, any>>(new Map())\n\n const clearTimer = (id: number) => {\n const timeout = timeoutRefs.current.get(id)\n if (timeout) {\n clearTimeout(timeout)\n timeoutRefs.current.delete(id)\n }\n }\n\n const closeToast = useCallback((id: number) => {\n clearTimer(id)\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const scheduleClose = useCallback(\n (toast: IToast) => {\n if (!toast.autoClose) return\n\n clearTimer(toast.id)\n\n const timeout = setTimeout(() => {\n closeToast(toast.id)\n }, toast.duration)\n\n timeoutRefs.current.set(toast.id, timeout)\n },\n [closeToast],\n )\n\n useEffect(() => {\n const refs = timeoutRefs.current\n return () => refs.forEach((id) => clearTimeout(id))\n }, [])\n\n const showToast = useCallback(\n (message: string, options?: ToastOptions) => {\n const id = ++toastCounter\n\n const newToast: IToast = {\n id,\n message,\n type: options?.type ?? 'info',\n duration: options?.duration ?? 3000,\n autoClose: options?.autoClose ?? true,\n pauseOnHover: options?.pauseOnHover ?? true,\n }\n\n setToasts((prev) => {\n const updated = [...prev, newToast]\n if (updated.length > MAX_TOASTS) updated.shift()\n return updated\n })\n\n scheduleClose(newToast)\n },\n [scheduleClose],\n )\n\n return (\n <ToastContext.Provider value={{ showToast, closeToast }}>\n {children}\n\n {/* Toast Container */}\n <div\n className={buildClassName(\n 'fixed z-50 flex flex-col gap-3 pointer-events-none',\n placementClass[placement],\n )}\n >\n {toasts.map((toast, index) => (\n <div\n key={toast.id}\n className=\"pointer-events-auto\"\n onMouseEnter={() => toast.pauseOnHover && clearTimer(toast.id)}\n onMouseLeave={() => toast.pauseOnHover && scheduleClose(toast)}\n >\n <Toast\n {...toast}\n isTop={placement.startsWith('top')}\n onClose={() => closeToast(toast.id)}\n />\n </div>\n ))}\n </div>\n </ToastContext.Provider>\n )\n}\n","import React from 'react'\nimport { ListChildComponentProps } from 'react-window'\nimport { buildClassName } from '../../utils/build-classname'\nimport { get } from '../../utils/get'\nimport { VirtualizedRowProps } from './VirtualizedDataTable.types'\nimport { DataTableColumn } from '../DataTable'\n\ninterface RowData extends VirtualizedRowProps {\n gridTemplate: string\n}\n\nexport const VirtualizedRow = ({ index, style, data }: ListChildComponentProps<RowData>) => {\n const { items, columns, gridTemplate } = data\n const item = items[index]\n\n return (\n <div\n role=\"row\"\n className=\"grid border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 group\"\n style={{\n ...style,\n display: 'grid',\n gridTemplateColumns: gridTemplate,\n minWidth: 'fit-content',\n }}\n >\n {columns.map((col: DataTableColumn) => {\n const content = col.render ? col.render(item) : (get(item, col.name) ?? 'Not set')\n\n return (\n <div\n key={col.name}\n role=\"cell\"\n className={buildClassName(\n 'px-3 py-3 whitespace-nowrap border-r last:border-r-0 border-gray-200 dark:border-gray-700',\n col.align === 'center' && 'text-center',\n col.align === 'right' && 'text-right',\n col.sticky === 'left' &&\n 'sticky left-0 z-10 bg-white dark:bg-gray-900 shadow-[2px_0_4px_rgba(0,0,0,0.05)]',\n col.sticky === 'right' &&\n 'sticky right-0 z-10 bg-white dark:bg-gray-900 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]',\n )}\n >\n {content}\n </div>\n )\n })}\n </div>\n )\n}\n","import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeList as List } from 'react-window'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport { VirtualizedRow } from './VirtualizedRow'\nimport { type DataTableColumn, getSortIcon } from '../DataTable'\nimport { VirtualizedDataTableProps } from './VirtualizedDataTable.types'\n\n/* -------------------------------------------------------\n * Convert column definitions into CSS grid template\n * ------------------------------------------------------- */\nconst useGridTemplate = (columns: DataTableColumn[]) =>\n useMemo(() => columns.map((col) => (col.width ? `${col.width}px` : '1fr')).join(' '), [columns])\n\nexport const VirtualizedDataTable: React.FC<VirtualizedDataTableProps> = ({\n items,\n columns,\n sorting = {},\n onSort,\n loading = false,\n emptyMessage = 'No data available',\n\n containerClass = '',\n wrapperClass = '',\n\n rowHeight = 48,\n maxHeight = 400,\n}) => {\n const scrollRef = useRef<any>(null)\n const outerRef = useRef<HTMLDivElement>(null)\n const headerRef = useRef<HTMLDivElement | null>(null)\n\n const gridTemplate = useGridTemplate(columns)\n\n /** Sync horizontal scroll of the virtualized body → header */\n useEffect(() => {\n const el = outerRef.current\n if (!el) return\n const handler = () => {\n if (headerRef.current) headerRef.current.scrollLeft = el.scrollLeft\n }\n el.addEventListener('scroll', handler)\n return () => el.removeEventListener('scroll', handler)\n }, [])\n\n const handleSort = useCallback(\n (column: DataTableColumn) => {\n if (column.sortable) onSort?.(column)\n },\n [onSort],\n )\n\n /* -------------------------------------------------------\n * RENDER: Header row (real DOM for accessibility)\n * ------------------------------------------------------- */\n const Header = (\n <div ref={headerRef} className=\"overflow-hidden w-full\">\n <div\n className=\"grid bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700\"\n style={{\n gridTemplateColumns: gridTemplate,\n minWidth: 'fit-content',\n }}\n >\n {columns.map((col) => (\n <div\n key={col.name}\n role=\"columnheader\"\n className={buildClassName(\n 'px-3 py-3 font-semibold text-sm whitespace-nowrap flex items-center',\n 'border-r last:border-r-0 border-gray-200 dark:border-gray-700',\n\n col.sticky === 'left' &&\n 'sticky left-0 z-20 bg-gray-50 dark:bg-gray-800 shadow-[2px_0_4px_rgba(0,0,0,0.05)]',\n\n col.sticky === 'right' &&\n 'sticky right-0 z-20 bg-gray-50 dark:bg-gray-800 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]',\n )}\n >\n <TextContent\n role={col.sortable ? 'button' : undefined}\n className={buildClassName(\n col.sortable && 'inline-flex items-center gap-2 cursor-pointer select-none',\n )}\n onClick={() => handleSort(col)}\n >\n {col.label}\n {col.sortable ? getSortIcon(sorting[col.name]) : null}\n </TextContent>\n </div>\n ))}\n </div>\n </div>\n )\n\n /* -------------------------------------------------------\n * LOADING STATE (non-virtualized placeholder)\n * ------------------------------------------------------- */\n if (loading) {\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'rounded-lg border border-gray-200 dark:border-gray-800 overflow-hidden',\n wrapperClass,\n )}\n >\n {Header}\n\n <div style={{ height: maxHeight }} className=\"flex flex-col\">\n {[...Array(6)].map((_, idx) => (\n <div\n key={idx}\n data-testid=\"skeleton-row\"\n className=\"grid animate-pulse bg-white dark:bg-gray-900 border-b border-gray-100 dark:border-gray-800\"\n style={{\n gridTemplateColumns: gridTemplate,\n height: rowHeight,\n }}\n >\n {columns.map((col) => (\n <div key={col.name} className=\"px-3 py-3\">\n <div className=\"h-4 w-3/4 bg-gray-300 dark:bg-gray-700 rounded\" />\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n }\n\n /* -------------------------------------------------------\n * EMPTY STATE (non-virtualized → single row)\n * ------------------------------------------------------- */\n if (!loading && items.length === 0) {\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'rounded-lg border border-gray-200 dark:border-gray-800 overflow-hidden',\n wrapperClass,\n )}\n >\n {Header}\n\n <div\n className=\"flex items-center justify-center text-gray-500 dark:text-gray-300\"\n style={{ height: maxHeight }}\n >\n {emptyMessage}\n </div>\n </div>\n </div>\n )\n }\n\n /* -------------------------------------------------------\n * MAIN (virtualized body)\n * ------------------------------------------------------- */\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'rounded-lg border border-gray-200 dark:border-gray-800 overflow-hidden',\n wrapperClass,\n )}\n >\n {Header}\n\n <List\n ref={scrollRef}\n outerRef={outerRef}\n height={maxHeight}\n width=\"100%\"\n itemCount={items.length}\n itemSize={rowHeight}\n itemData={{ items, columns, gridTemplate }}\n >\n {VirtualizedRow}\n </List>\n </div>\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\n\nexport const useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches\n\n setIsMobile(width < 600 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isMobile\n}\n","import { useEffect, useState } from 'react'\n\nexport const useIsTablet = () => {\n const [isTablet, setIsTablet] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches\n\n setIsTablet(width >= 600 && width <= 1024 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isTablet\n}\n","import { useIsMobile } from './use-is-mobile'\nimport { useIsTablet } from './use-is-tablet'\n\nexport const useIsTabletOrMobile = () => {\n const isMobile = useIsMobile()\n const isTablet = useIsTablet()\n\n return isMobile || isTablet\n}\n"],"names":["_path","_extends","_circle","_jsx","React","_jsxs","BadgeCheckIcon","CircleXIcon","CircleAlertIcon","InfoIcon","XIcon","CircleCheckIcon","TriangleAlertIcon","SlashIcon","ChevronLeftIcon","ChevronRightIcon","ArrowDownNarrowWide","ArrowDownAZ","ArrowDownWideNarrow","ArrowDownZA","ArrowUpDown","Fragment","FolderPlusIcon","RadioGroup","Radio","ChevronDownIcon","CheckIcon","CirclePlusIcon","CheckCircle","AlertCircle","Info","AlertTriangle","List"],"mappings":"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"}
|