@agroshine/ags-web-ui-kit 1.0.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/README.md +75 -0
- package/dist/atoms/index.cjs +134 -0
- package/dist/atoms/index.cjs.map +1 -0
- package/dist/atoms/index.d.cts +583 -0
- package/dist/atoms/index.d.ts +583 -0
- package/dist/atoms/index.js +9 -0
- package/dist/atoms/index.js.map +1 -0
- package/dist/chunk-2KRMLIJQ.cjs +52 -0
- package/dist/chunk-2KRMLIJQ.cjs.map +1 -0
- package/dist/chunk-2TBYPKQ3.cjs +79 -0
- package/dist/chunk-2TBYPKQ3.cjs.map +1 -0
- package/dist/chunk-5FWELSEZ.js +1296 -0
- package/dist/chunk-5FWELSEZ.js.map +1 -0
- package/dist/chunk-5PEOJVY7.cjs +1502 -0
- package/dist/chunk-5PEOJVY7.cjs.map +1 -0
- package/dist/chunk-6LUGTNMH.js +259 -0
- package/dist/chunk-6LUGTNMH.js.map +1 -0
- package/dist/chunk-6O2IDBTX.js +112 -0
- package/dist/chunk-6O2IDBTX.js.map +1 -0
- package/dist/chunk-6YUNWKT3.js +26 -0
- package/dist/chunk-6YUNWKT3.js.map +1 -0
- package/dist/chunk-7R6OXNES.cjs +321 -0
- package/dist/chunk-7R6OXNES.cjs.map +1 -0
- package/dist/chunk-A3A7PJWG.cjs +13 -0
- package/dist/chunk-A3A7PJWG.cjs.map +1 -0
- package/dist/chunk-A7TDGQAB.js +557 -0
- package/dist/chunk-A7TDGQAB.js.map +1 -0
- package/dist/chunk-C4LX3XTN.cjs +1187 -0
- package/dist/chunk-C4LX3XTN.cjs.map +1 -0
- package/dist/chunk-DZW4GS2T.cjs +1340 -0
- package/dist/chunk-DZW4GS2T.cjs.map +1 -0
- package/dist/chunk-E3BTK736.cjs +174 -0
- package/dist/chunk-E3BTK736.cjs.map +1 -0
- package/dist/chunk-ERGKCXM2.cjs +267 -0
- package/dist/chunk-ERGKCXM2.cjs.map +1 -0
- package/dist/chunk-FOA46NSG.cjs +574 -0
- package/dist/chunk-FOA46NSG.cjs.map +1 -0
- package/dist/chunk-JTFCE6RA.js +1156 -0
- package/dist/chunk-JTFCE6RA.js.map +1 -0
- package/dist/chunk-KINOE57L.js +225 -0
- package/dist/chunk-KINOE57L.js.map +1 -0
- package/dist/chunk-MOED3QPY.js +11 -0
- package/dist/chunk-MOED3QPY.js.map +1 -0
- package/dist/chunk-NVR34DY2.cjs +4 -0
- package/dist/chunk-NVR34DY2.cjs.map +1 -0
- package/dist/chunk-PI3IJWBG.js +79 -0
- package/dist/chunk-PI3IJWBG.js.map +1 -0
- package/dist/chunk-PXAMTGYY.js +3 -0
- package/dist/chunk-PXAMTGYY.js.map +1 -0
- package/dist/chunk-QAZMI5VH.js +151 -0
- package/dist/chunk-QAZMI5VH.js.map +1 -0
- package/dist/chunk-QEG27NX6.js +30 -0
- package/dist/chunk-QEG27NX6.js.map +1 -0
- package/dist/chunk-THTOUSMG.cjs +52 -0
- package/dist/chunk-THTOUSMG.cjs.map +1 -0
- package/dist/chunk-UAXKB6IH.cjs +32 -0
- package/dist/chunk-UAXKB6IH.cjs.map +1 -0
- package/dist/chunk-W5IHWAMM.js +48 -0
- package/dist/chunk-W5IHWAMM.js.map +1 -0
- package/dist/chunk-X2UJQVZJ.cjs +139 -0
- package/dist/chunk-X2UJQVZJ.cjs.map +1 -0
- package/dist/chunk-X43C5OJD.js +1460 -0
- package/dist/chunk-X43C5OJD.js.map +1 -0
- package/dist/chunk-XCYSBWV4.js +56 -0
- package/dist/chunk-XCYSBWV4.js.map +1 -0
- package/dist/chunk-XX4CBCEB.cjs +102 -0
- package/dist/chunk-XX4CBCEB.cjs.map +1 -0
- package/dist/hooks/index.cjs +33 -0
- package/dist/hooks/index.cjs.map +1 -0
- package/dist/hooks/index.d.cts +59 -0
- package/dist/hooks/index.d.ts +59 -0
- package/dist/hooks/index.js +4 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.cjs +366 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +13 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/interface-DnK5S6ww.d.cts +51 -0
- package/dist/interface-DnK5S6ww.d.ts +51 -0
- package/dist/lib/index.cjs +13 -0
- package/dist/lib/index.cjs.map +1 -0
- package/dist/lib/index.d.cts +5 -0
- package/dist/lib/index.d.ts +5 -0
- package/dist/lib/index.js +4 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/molecules/index.cjs +123 -0
- package/dist/molecules/index.cjs.map +1 -0
- package/dist/molecules/index.d.cts +449 -0
- package/dist/molecules/index.d.ts +449 -0
- package/dist/molecules/index.js +10 -0
- package/dist/molecules/index.js.map +1 -0
- package/dist/organisms/index.cjs +102 -0
- package/dist/organisms/index.cjs.map +1 -0
- package/dist/organisms/index.d.cts +396 -0
- package/dist/organisms/index.d.ts +396 -0
- package/dist/organisms/index.js +9 -0
- package/dist/organisms/index.js.map +1 -0
- package/dist/tooltip-Bl2ZTtfg.d.cts +16 -0
- package/dist/tooltip-Bl2ZTtfg.d.ts +16 -0
- package/dist/ui/index.cjs +955 -0
- package/dist/ui/index.cjs.map +1 -0
- package/dist/ui/index.d.cts +252 -0
- package/dist/ui/index.d.ts +252 -0
- package/dist/ui/index.js +642 -0
- package/dist/ui/index.js.map +1 -0
- package/package.json +200 -0
- package/tailwind.preset.cjs +134 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/atoms/Avatar/Avatar.variants.ts","../src/atoms/Avatar/Avatar.tsx","../src/atoms/Checkbox/Checkbox.tsx","../src/atoms/Descriptions/Descriptions.tsx","../src/atoms/Input/Input.tsx","../src/atoms/InputNumber/InputNumber.variants.ts","../src/atoms/InputNumber/InputNumber.tsx","../src/atoms/Progress/Progress.variants.ts","../src/atoms/Progress/Progress.tsx","../src/atoms/Radio/Radio.variants.ts","../src/atoms/Radio/Radio.tsx","../src/atoms/Rate/Rate.variants.ts","../src/atoms/Rate/Rate.tsx","../src/atoms/Select/utils.ts","../src/atoms/Select/Chip.tsx","../src/atoms/Select/EmptyState.tsx","../src/atoms/Select/OptionItem.tsx","../src/atoms/Select/MultiSelect.tsx","../src/atoms/Select/Select.tsx","../src/atoms/Separator/Separator.tsx","../src/atoms/Skeleton/Skeleton.tsx","../src/atoms/Slider/Slider.variants.ts","../src/atoms/Slider/Slider.tsx","../src/atoms/Switch/Switch.variants.ts","../src/atoms/Switch/Switch.tsx","../src/atoms/Tag/Tag.tsx","../src/atoms/Textarea/Textarea.tsx","../src/atoms/Toggle/Toggle.tsx","../src/atoms/ToggleGroup/ToggleGroup.tsx"],"names":["cva","Avatar","React","cn","jsx","AvatarImage","AvatarFallback","Checkbox","jsxs","forwardRef","Descriptions","Fragment","Input","useState","messageColor","FormItem","X","EyeOff","Eye","React2","Plus","Minus","React3","ProgressPrimitive","React4","RadioGroup","RadioGroupItem","React5","StarHalf","Star","sizeClasses","Inbox","Check","useRef","useImperativeHandle","useEffect","useMemo","ChevronDown","Separator","React6","Skeleton","React7","React8","SliderPrimitive","React9","SwitchPrimitives","Badge","statusBorderClasses","Textarea","useCallback","React10","TogglePrimitive","toggleVariants","mapSize","ToggleGroup","React11","ToggleGroupItem"],"mappings":"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","file":"chunk-5PEOJVY7.cjs","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const avatarVariants = cva(\n 'relative flex shrink-0 overflow-hidden bg-default-200 text-default-700',\n {\n variants: {\n size: {\n sm: 'h-8 w-8 text-xs',\n md: 'h-10 w-10 text-sm',\n lg: 'h-12 w-12 text-base',\n xl: 'h-16 w-16 text-lg',\n },\n shape: {\n circle: 'rounded-full',\n square: 'rounded-md',\n },\n },\n defaultVariants: { size: 'md', shape: 'circle' },\n },\n);\n\nexport type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type AvatarShape = 'circle' | 'square';\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport {\n Avatar as UIAvatar,\n AvatarFallback as UIAvatarFallback,\n AvatarImage as UIAvatarImage,\n} from '../../ui/avatar';\n\nimport { type AvatarShape, type AvatarSize, avatarVariants } from './Avatar.variants';\n\nexport interface AvatarProps {\n src?: string;\n alt?: string;\n fallback?: React.ReactNode;\n size?: AvatarSize;\n shape?: AvatarShape;\n className?: string;\n}\n\nexport const Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n ({ src, alt, fallback, size = 'md', shape = 'circle', className }, ref) => (\n <UIAvatar ref={ref} className={cn(avatarVariants({ size, shape }), className)}>\n {src ? <UIAvatarImage src={src} alt={alt} /> : null}\n <UIAvatarFallback\n className={cn(\n 'flex h-full w-full items-center justify-center bg-default-200 text-default-700 font-medium',\n shape === 'circle' ? 'rounded-full' : 'rounded-md',\n )}\n >\n {fallback}\n </UIAvatarFallback>\n </UIAvatar>\n ),\n);\nAvatar.displayName = 'Avatar';\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport { Checkbox as ShadCheckbox } from '../../ui/checkbox';\n\nexport interface CheckboxProps {\n isSelected?: boolean;\n defaultSelected?: boolean;\n isDisabled?: boolean;\n isIndeterminate?: boolean;\n isRequired?: boolean;\n onValueChange?: (selected: boolean) => void;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n children?: React.ReactNode;\n className?: string;\n classNames?: { base?: string; label?: string; wrapper?: string };\n color?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger';\n size?: 'sm' | 'md' | 'lg';\n name?: string;\n value?: string;\n id?: string;\n}\n\nexport const Checkbox: React.FC<CheckboxProps> = ({\n isSelected,\n defaultSelected,\n isDisabled,\n isIndeterminate,\n onValueChange,\n children,\n className,\n classNames,\n name,\n value,\n id,\n}) => {\n const checkedProp =\n isIndeterminate === true ? 'indeterminate' : isSelected !== undefined ? isSelected : undefined;\n\n return (\n <label\n className={cn(\n 'inline-flex items-center gap-2 cursor-pointer select-none',\n isDisabled && 'cursor-not-allowed opacity-60',\n classNames?.base,\n className,\n )}\n >\n <ShadCheckbox\n id={id}\n name={name}\n value={value}\n disabled={isDisabled}\n defaultChecked={defaultSelected}\n checked={checkedProp as boolean | 'indeterminate' | undefined}\n onCheckedChange={(c) => onValueChange?.(Boolean(c))}\n className={classNames?.wrapper}\n />\n {children && <span className={cn('text-sm', classNames?.label)}>{children}</span>}\n </label>\n );\n};\n","import { forwardRef, Fragment, type ReactNode } from 'react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { DescriptionsProps, Layout, Size } from './interface';\n\n/**\n * Canon Components.html § \"Descriptions\" L1844:\n *\n * .descs { display:grid; grid-template-columns:1fr; gap:0; }\n * .desc-row { display:grid; grid-template-columns:140px 1fr; padding:10px 0;\n * border-bottom:1px solid border; font-size:14px; }\n * .desc-row:last-child { border-bottom:0; }\n * .desc-row .dl { color:muted-foreground; font-size:13px; }\n * .desc-row .dv { color:foreground; font-weight:500; }\n */\n\nconst ROW_PADDING: Record<Size, string> = {\n small: 'py-1.5',\n default: 'py-2.5', // canon (10px)\n middle: 'py-2.5', // alias compat\n large: 'py-3.5',\n};\n\nconst LABEL_TEXT: Record<Size, string> = {\n small: 'text-[12px]',\n default: 'text-[13px]', // canon\n middle: 'text-[13px]',\n large: 'text-sm',\n};\n\nconst VALUE_TEXT: Record<Size, string> = {\n small: 'text-[13px]',\n default: 'text-sm', // canon (14px)\n middle: 'text-sm',\n large: 'text-base',\n};\n\ninterface DescRowProps {\n label: ReactNode;\n value: ReactNode;\n size: Size;\n layout: Layout;\n bordered: boolean;\n isLast: boolean;\n}\n\nfunction DescRow({ label, value, size, layout, bordered, isLast }: DescRowProps) {\n const rowBorder = bordered\n ? 'border-b border-border last:border-b-0'\n : cn('border-b border-border', isLast && 'border-b-0');\n\n if (layout === 'vertical') {\n return (\n <div className={cn(ROW_PADDING[size], rowBorder, bordered && 'px-3')}>\n <div className={cn('mb-1 font-normal text-muted-foreground', LABEL_TEXT[size])}>\n {label}\n </div>\n <div className={cn('font-medium text-foreground', VALUE_TEXT[size])}>{value}</div>\n </div>\n );\n }\n\n // horizontal canon: grid 140px / 1fr\n return (\n <div\n className={cn(\n 'grid grid-cols-[140px_1fr] items-baseline gap-3',\n ROW_PADDING[size],\n rowBorder,\n )}\n >\n <span\n className={cn(\n 'font-normal text-muted-foreground',\n LABEL_TEXT[size],\n bordered && '-my-2.5 bg-muted/40 px-3 py-2.5',\n )}\n >\n {label}\n </span>\n <span className={cn('font-medium text-foreground', VALUE_TEXT[size], bordered && 'pr-3')}>\n {value}\n </span>\n </div>\n );\n}\n\nexport const Descriptions = forwardRef<HTMLDivElement, DescriptionsProps>(function Descriptions(\n {\n title,\n column = 1,\n layout = 'horizontal',\n size = 'default',\n bordered = false,\n items,\n className,\n },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn(\n 'w-full',\n bordered && 'overflow-hidden rounded-md border border-border',\n className,\n )}\n >\n {title && (\n <div\n className={cn(\n 'mb-3 text-base font-semibold text-foreground',\n bordered && 'mb-0 border-b border-border bg-muted/40 px-3 py-2.5',\n )}\n >\n {title}\n </div>\n )}\n\n {/* column > 1 → grid externo de N columnas; cada celda renderiza un row K/V */}\n <div\n className={cn(column === 1 ? 'flex flex-col' : 'grid')}\n style={\n column > 1\n ? { gridTemplateColumns: `repeat(${column}, minmax(0, 1fr))`, columnGap: '24px' }\n : undefined\n }\n >\n {items.map((item, idx) => (\n <Fragment key={idx}>\n <DescRow\n label={item.label}\n value={item.children}\n size={size}\n layout={layout}\n bordered={bordered}\n isLast={idx === items.length - 1}\n />\n </Fragment>\n ))}\n </div>\n </div>\n );\n});\n\nDescriptions.displayName = 'Descriptions';\n","import { type ChangeEvent, forwardRef, useState } from 'react';\nimport { Eye, EyeOff, X } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\nimport { Input as UIInput } from '../../ui/input';\n\nimport { FormItem } from '../FormItem';\n\nimport type { InputProps } from './interface';\n\n/**\n * Input AgroShine · canon Components.html\n *\n * - Base: `ui/input` (shadcn) — height 36px, radius 4px, tokens semánticos.\n * - Extras: prefix/suffix posicionados (patrón `.input-wrap` + `.ifix`),\n * `allowClear`, `showPasswordToggle`, `status: error|success|warning|default`,\n * integración con `FormItem`.\n */\nconst sizeClasses = {\n small: 'h-7 text-[13px] px-2.5',\n default: 'h-9 text-sm px-3',\n large: 'h-10 text-[15px] px-4',\n} as const;\n\nconst statusBorderClasses = {\n error: 'border-destructive focus-visible:ring-destructive',\n success: 'border-success-500 focus-visible:ring-success-500',\n warning: 'border-warning-500 focus-visible:ring-warning-500',\n default: '',\n} as const;\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n variant = 'default',\n prefix,\n suffix,\n allowClear = false,\n status = 'default',\n showPasswordToggle = false,\n type = 'text',\n disabled,\n className,\n name,\n touched,\n error,\n externalLabel,\n help,\n errorMessage,\n onChange,\n value,\n defaultValue,\n ...rest\n },\n ref,\n) {\n const [internalValue, setInternalValue] = useState(defaultValue ?? '');\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const [showPassword, setShowPassword] = useState(false);\n const isPasswordType = type === 'password';\n const inputType =\n isPasswordType && showPasswordToggle ? (showPassword ? 'text' : 'password') : type;\n\n const showClearButton = allowClear && !disabled && Boolean(currentValue);\n const showPasswordButton = isPasswordType && showPasswordToggle && !disabled;\n const hasRightAffix = Boolean(suffix) || showClearButton || showPasswordButton;\n const hasLeftAffix = Boolean(prefix);\n\n const messageColor =\n status === 'error' ? 'text-destructive' : status === 'warning' ? 'text-warning-700' : '';\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setInternalValue(e.target.value);\n onChange?.(e);\n };\n\n const handleClear = () => {\n if (!isControlled) setInternalValue('');\n onChange?.({ target: { value: '' } } as ChangeEvent<HTMLInputElement>);\n };\n\n return (\n <FormItem\n help={touched || error ? help : ''}\n validateStatus={touched && error ? 'error' : 'default'}\n label={externalLabel}\n >\n <div className={cn('relative w-full', className)}>\n {hasLeftAffix && (\n <span\n className=\"pointer-events-none absolute inset-y-0 left-0 flex items-center px-2.5 text-muted-foreground\"\n aria-hidden=\"true\"\n >\n {prefix}\n </span>\n )}\n\n <UIInput\n ref={ref}\n name={name}\n type={inputType}\n disabled={disabled}\n value={currentValue}\n onChange={handleChange}\n aria-invalid={status === 'error' || (touched && Boolean(error)) || undefined}\n className={cn(\n sizeClasses[variant],\n statusBorderClasses[status],\n hasLeftAffix && 'pl-9',\n hasRightAffix && 'pr-9',\n )}\n {...rest}\n />\n\n {hasRightAffix && (\n <span className=\"absolute inset-y-0 right-0 flex items-center gap-1 px-2.5 text-muted-foreground\">\n {showClearButton && (\n <button\n type=\"button\"\n onClick={handleClear}\n aria-label=\"Limpiar\"\n className=\"inline-flex items-center justify-center text-muted-foreground hover:text-foreground\"\n >\n <X className=\"h-3.5 w-3.5\" />\n </button>\n )}\n\n {showPasswordButton && (\n <button\n type=\"button\"\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? 'Ocultar contraseña' : 'Mostrar contraseña'}\n aria-pressed={showPassword}\n className=\"inline-flex items-center justify-center text-muted-foreground hover:text-foreground\"\n >\n {showPassword ? <EyeOff className=\"h-4 w-4\" /> : <Eye className=\"h-4 w-4\" />}\n </button>\n )}\n\n {suffix && (\n <span className=\"pointer-events-none flex items-center text-muted-foreground\">\n {suffix}\n </span>\n )}\n </span>\n )}\n </div>\n\n {errorMessage && (\n <p\n className={cn('mt-1 text-xs', messageColor)}\n role={status === 'error' ? 'alert' : undefined}\n >\n {errorMessage}\n </p>\n )}\n </FormItem>\n );\n});\n","import { cva } from 'class-variance-authority';\n\nexport const inputNumberRootVariants = cva(\n 'inline-flex items-center w-full rounded border bg-background text-default-900 transition-colors focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 focus-within:ring-offset-background',\n {\n variants: {\n size: {\n sm: 'text-xs h-8',\n md: 'text-sm h-10',\n lg: 'text-base h-12',\n },\n disabled: {\n true: 'opacity-60 cursor-not-allowed bg-default-100',\n false: '',\n },\n },\n defaultVariants: { size: 'md', disabled: false },\n },\n);\n\nexport const inputNumberButtonVariants = cva(\n 'flex items-center justify-center text-default-700 hover:bg-default-100 disabled:opacity-40 disabled:cursor-not-allowed border-default-200',\n {\n variants: {\n size: {\n sm: 'w-7 h-full',\n md: 'w-8 h-full',\n lg: 'w-10 h-full',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nexport type InputNumberSize = 'sm' | 'md' | 'lg';\n","import * as React from 'react';\nimport { Minus, Plus } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nimport {\n inputNumberButtonVariants,\n inputNumberRootVariants,\n type InputNumberSize,\n} from './InputNumber.variants';\n\nexport interface InputNumberProps {\n value?: number;\n defaultValue?: number;\n onChange?: (value: number) => void;\n min?: number;\n max?: number;\n step?: number;\n size?: InputNumberSize;\n disabled?: boolean;\n precision?: number;\n placeholder?: string;\n name?: string;\n id?: string;\n className?: string;\n}\n\nfunction clamp(v: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, v));\n}\n\nfunction format(v: number, precision?: number): string {\n if (precision === undefined) return String(v);\n return v.toFixed(precision);\n}\n\nexport const InputNumber = React.forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n min = Number.NEGATIVE_INFINITY,\n max = Number.POSITIVE_INFINITY,\n step = 1,\n size = 'md',\n disabled,\n precision,\n placeholder,\n name,\n id,\n className,\n },\n ref,\n ) => {\n const [internal, setInternal] = React.useState<number | undefined>(defaultValue);\n const current = value ?? internal;\n\n const update = (next: number) => {\n const c = clamp(next, min, max);\n if (value === undefined) setInternal(c);\n onChange?.(c);\n };\n\n const increment = () => update((current ?? 0) + step);\n const decrement = () => update((current ?? 0) - step);\n\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value;\n if (raw === '') {\n if (value === undefined) setInternal(undefined);\n return;\n }\n const num = Number(raw);\n if (Number.isNaN(num)) return;\n update(num);\n };\n\n const display = current === undefined ? '' : format(current, precision);\n\n return (\n <div className={cn(inputNumberRootVariants({ size, disabled: !!disabled }), className)}>\n <input\n ref={ref}\n id={id}\n name={name}\n type=\"number\"\n value={display}\n onChange={handleInput}\n disabled={disabled}\n placeholder={placeholder}\n className=\"flex-1 bg-transparent outline-none px-3 disabled:cursor-not-allowed [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\"\n />\n <div className=\"flex flex-col h-full border-l border-default-200\">\n <button\n type=\"button\"\n onClick={increment}\n disabled={disabled || (current !== undefined && current >= max)}\n className={cn(inputNumberButtonVariants({ size }), 'border-b h-1/2')}\n tabIndex={-1}\n >\n <Plus className=\"h-3 w-3\" />\n </button>\n <button\n type=\"button\"\n onClick={decrement}\n disabled={disabled || (current !== undefined && current <= min)}\n className={cn(inputNumberButtonVariants({ size }), 'h-1/2')}\n tabIndex={-1}\n >\n <Minus className=\"h-3 w-3\" />\n </button>\n </div>\n </div>\n );\n },\n);\nInputNumber.displayName = 'InputNumber';\n","import { cva } from 'class-variance-authority';\n\nexport const progressTrackVariants = cva(\n 'relative w-full overflow-hidden rounded-full bg-default-200',\n {\n variants: {\n size: {\n sm: 'h-1',\n md: 'h-2',\n lg: 'h-3',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nexport const progressIndicatorVariants = cva('h-full flex-1 transition-all', {\n variants: {\n color: {\n primary: 'bg-primary',\n success: 'bg-success',\n warning: 'bg-warning',\n danger: 'bg-destructive',\n },\n },\n defaultVariants: { color: 'primary' },\n});\n\nexport type ProgressColor = 'primary' | 'success' | 'warning' | 'danger';\nexport type ProgressSize = 'sm' | 'md' | 'lg';\n","import * as React from 'react';\nimport * as ProgressPrimitive from '@radix-ui/react-progress';\n\nimport { cn } from '../../lib/cn';\n\nimport {\n type ProgressColor,\n progressIndicatorVariants,\n type ProgressSize,\n progressTrackVariants,\n} from './Progress.variants';\n\nexport interface ProgressProps {\n value?: number;\n color?: ProgressColor;\n size?: ProgressSize;\n showLabel?: boolean;\n label?: React.ReactNode;\n className?: string;\n}\n\nexport const Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ value = 0, color = 'primary', size = 'md', showLabel, label, className }, ref) => {\n const clamped = Math.max(0, Math.min(100, value));\n return (\n <div ref={ref} className={cn('w-full', className)}>\n {(label !== undefined || showLabel) && (\n <div className=\"flex items-center justify-between text-xs text-default-500 mb-1\">\n {label !== undefined && <span>{label}</span>}\n {showLabel && <span className=\"ml-auto\">{clamped}%</span>}\n </div>\n )}\n <ProgressPrimitive.Root value={clamped} className={progressTrackVariants({ size })}>\n <ProgressPrimitive.Indicator\n className={progressIndicatorVariants({ color })}\n style={{ transform: `translateX(-${100 - clamped}%)` }}\n />\n </ProgressPrimitive.Root>\n </div>\n );\n },\n);\nProgress.displayName = 'Progress';\n","import { cva } from 'class-variance-authority';\n\nexport const radioItemVariants = cva(\n 'aspect-square h-4 w-4 rounded-full border ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n color: {\n primary: 'border-primary text-primary data-[state=checked]:border-primary',\n secondary: 'border-secondary text-secondary data-[state=checked]:border-secondary',\n success: 'border-success text-success data-[state=checked]:border-success',\n warning: 'border-warning text-warning data-[state=checked]:border-warning',\n danger: 'border-destructive text-destructive data-[state=checked]:border-destructive',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n },\n);\n\nexport type RadioColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger';\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport { RadioGroup, RadioGroupItem } from '../../ui/radio-group';\n\nimport { type RadioColor, radioItemVariants } from './Radio.variants';\n\nexport interface RadioOption {\n value: string;\n label: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface RadioProps {\n value?: string;\n defaultValue?: string;\n options: RadioOption[];\n onChange?: (value: string) => void;\n orientation?: 'horizontal' | 'vertical';\n color?: RadioColor;\n className?: string;\n name?: string;\n disabled?: boolean;\n}\n\nexport const Radio = React.forwardRef<HTMLDivElement, RadioProps>(\n (\n {\n value,\n defaultValue,\n options,\n onChange,\n orientation = 'vertical',\n color = 'primary',\n className,\n name,\n disabled,\n },\n ref,\n ) => (\n <RadioGroup\n ref={ref}\n value={value}\n defaultValue={defaultValue}\n onValueChange={onChange}\n name={name}\n disabled={disabled}\n className={cn(orientation === 'horizontal' ? 'flex flex-row gap-4' : 'grid gap-2', className)}\n >\n {options.map((opt) => (\n <label\n key={opt.value}\n className={cn(\n 'inline-flex items-center gap-2 text-sm cursor-pointer select-none',\n (opt.disabled || disabled) && 'cursor-not-allowed opacity-60',\n )}\n >\n <RadioGroupItem\n value={opt.value}\n disabled={opt.disabled || disabled}\n className={radioItemVariants({ color })}\n />\n <span>{opt.label}</span>\n </label>\n ))}\n </RadioGroup>\n ),\n);\nRadio.displayName = 'Radio';\n","import { cva } from 'class-variance-authority';\n\nexport const rateStarVariants = cva('transition-colors cursor-pointer', {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-7 w-7',\n },\n active: {\n true: 'fill-warning text-warning',\n false: 'fill-transparent text-default-300',\n },\n disabled: {\n true: 'cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: { size: 'md', active: false, disabled: false },\n});\n\nexport type RateSize = 'sm' | 'md' | 'lg';\n","import * as React from 'react';\nimport { Star, StarHalf } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nimport { type RateSize, rateStarVariants } from './Rate.variants';\n\nexport interface RateProps {\n value?: number;\n defaultValue?: number;\n onChange?: (value: number) => void;\n count?: number;\n allowHalf?: boolean;\n disabled?: boolean;\n size?: RateSize;\n className?: string;\n}\n\nexport const Rate = React.forwardRef<HTMLDivElement, RateProps>(\n (\n { value, defaultValue = 0, onChange, count = 5, allowHalf, disabled, size = 'md', className },\n ref,\n ) => {\n const [internal, setInternal] = React.useState<number>(defaultValue);\n const [hover, setHover] = React.useState<number | null>(null);\n const current = value ?? internal;\n const display = hover ?? current;\n\n const setValue = (next: number) => {\n if (disabled) return;\n if (value === undefined) setInternal(next);\n onChange?.(next);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>, index: number) => {\n if (!allowHalf) return setValue(index + 1);\n const rect = e.currentTarget.getBoundingClientRect();\n const isFirstHalf = e.clientX - rect.left < rect.width / 2;\n setValue(index + (isFirstHalf ? 0.5 : 1));\n };\n\n const handleHover = (e: React.MouseEvent<HTMLButtonElement>, index: number) => {\n if (disabled) return;\n if (!allowHalf) return setHover(index + 1);\n const rect = e.currentTarget.getBoundingClientRect();\n const isFirstHalf = e.clientX - rect.left < rect.width / 2;\n setHover(index + (isFirstHalf ? 0.5 : 1));\n };\n\n return (\n <div\n ref={ref}\n className={cn('inline-flex items-center gap-1', className)}\n onMouseLeave={() => setHover(null)}\n >\n {Array.from({ length: count }).map((_, i) => {\n const filled = display >= i + 1;\n const half = !filled && allowHalf && display >= i + 0.5;\n return (\n <button\n key={i}\n type=\"button\"\n disabled={disabled}\n onClick={(e) => handleClick(e, i)}\n onMouseMove={(e) => handleHover(e, i)}\n className={cn(\n 'p-0 bg-transparent border-0 leading-none',\n disabled && 'cursor-not-allowed',\n )}\n aria-label={`Rate ${i + 1}`}\n >\n {half ? (\n <StarHalf className={rateStarVariants({ size, active: true, disabled })} />\n ) : (\n <Star className={rateStarVariants({ size, active: filled, disabled })} />\n )}\n </button>\n );\n })}\n </div>\n );\n },\n);\nRate.displayName = 'Rate';\n","import type { ChipDotColor, SelectSize, SelectStatus } from './interface';\n\nexport const sizeClasses: Record<SelectSize, string> = {\n sm: 'h-8 text-[13.5px] pl-[11px] pr-8',\n default: 'h-10 text-sm pl-[14px] pr-9',\n lg: 'h-[46px] text-[15px] pl-4 pr-10',\n};\n\nexport const statusBorder: Record<SelectStatus, string> = {\n error: 'border-destructive focus:ring-destructive/30',\n warning: 'border-warning-500 focus:ring-warning-500/30',\n success: 'border-success-500 focus:ring-success-500/30',\n '': 'border-input hover:border-primary-200 focus:ring-ring/30',\n};\n\nexport const statusBorderWithin: Record<SelectStatus, string> = {\n error: 'border-destructive focus-within:ring-destructive/30',\n warning: 'border-warning-500 focus-within:ring-warning-500/30',\n success: 'border-success-500 focus-within:ring-success-500/30',\n '': 'border-input hover:border-primary-200 focus-within:ring-ring/30',\n};\n\nexport const messageColor: Record<SelectStatus, string> = {\n error: 'text-destructive',\n warning: 'text-warning-600',\n success: 'text-success-600',\n '': '',\n};\n\nexport const dotColorClass: Record<ChipDotColor, string> = {\n primary: 'bg-primary-700',\n success: 'bg-success-700',\n warning: 'bg-warning-800',\n danger: 'bg-danger-700',\n};\n\nexport const chipColorClass: Record<ChipDotColor, string> = {\n primary: 'bg-primary-50 text-primary-700 border-primary-100',\n success: 'bg-success-50 text-success-700 border-success-200',\n warning: 'bg-warning-50 text-warning-800 border-warning-100',\n danger: 'bg-danger-50 text-danger-700 border-danger-100',\n};\n\nexport const leadingIconBoxClass =\n 'flex h-[22px] w-[22px] flex-shrink-0 items-center justify-center rounded bg-primary-50 text-[11px] font-bold text-primary-700';\n\nexport const richIconBoxClass =\n 'flex h-[26px] w-[26px] flex-shrink-0 items-center justify-center rounded-md text-[11.5px] font-bold';\n\nexport const metaPillClass =\n 'ml-auto flex-shrink-0 rounded-full bg-muted px-2 py-0.5 font-mono text-[11.5px] text-muted-foreground';\n\nexport const dropdownClass =\n 'absolute left-0 right-0 top-[calc(100%+6px)] z-20 max-h-80 overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground';\n","import { X } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { ChipDotColor, Option } from './interface';\nimport { chipColorClass, dotColorClass } from './utils';\n\ninterface ChipProps<V extends string | number> {\n option: Option<V>;\n disabled?: boolean;\n onRemove: (value: V) => void;\n}\n\nexport function Chip<V extends string | number>({ option, disabled, onRemove }: ChipProps<V>) {\n const dot: ChipDotColor = option.dotColor ?? 'primary';\n return (\n <span\n className={cn(\n 'inline-flex h-7 items-center gap-1.5 rounded-full border pl-2.5 pr-1.5 text-[13px] font-medium',\n chipColorClass[dot],\n )}\n >\n <span className={cn('h-1.5 w-1.5 rounded-full', dotColorClass[dot])} />\n <span className=\"truncate max-w-[180px]\">{option.label}</span>\n <button\n type=\"button\"\n aria-label=\"Quitar\"\n onClick={(e) => {\n e.stopPropagation();\n if (!disabled) onRemove(option.value);\n }}\n className=\"ml-0.5 inline-flex h-4 w-4 items-center justify-center rounded-full opacity-70 transition hover:bg-black/10 hover:opacity-100\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n </span>\n );\n}\n","import { Inbox } from 'lucide-react';\n\ninterface EmptyStateProps {\n title?: string;\n subtitle?: string;\n}\n\nexport function EmptyState({\n title = 'Sin resultados',\n subtitle = 'Prueba otro término de búsqueda',\n}: EmptyStateProps) {\n return (\n <div className=\"px-3 py-7 text-center\">\n <Inbox className=\"mx-auto mb-1.5 h-7 w-7 text-muted-foreground/40\" />\n <div className=\"text-[13.5px] font-medium text-foreground\">{title}</div>\n {subtitle && <div className=\"mt-0.5 text-xs text-muted-foreground\">{subtitle}</div>}\n </div>\n );\n}\n","import { Check } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { ChipDotColor, Option } from './interface';\nimport { dotColorClass, leadingIconBoxClass, metaPillClass, richIconBoxClass } from './utils';\n\ninterface OptionItemProps<V extends string | number> {\n option: Option<V>;\n isActive: boolean;\n isHighlighted?: boolean;\n variant?: 'select' | 'multiselect';\n onMouseEnter?: () => void;\n onClick: () => void;\n}\n\nexport function OptionItem<V extends string | number>({\n option,\n isActive,\n isHighlighted = false,\n variant = 'select',\n onMouseEnter,\n onClick,\n}: OptionItemProps<V>) {\n const dot: ChipDotColor = option.dotColor ?? 'primary';\n\n return (\n <li\n role=\"option\"\n aria-selected={isActive}\n onMouseEnter={onMouseEnter}\n onClick={onClick}\n className={cn(\n 'flex cursor-pointer items-center gap-2.5 rounded-sm px-2.5 py-2 text-sm text-foreground',\n variant === 'multiselect' && 'hover:bg-accent',\n isHighlighted && 'bg-accent',\n isActive &&\n (variant === 'select'\n ? 'bg-primary-50 font-semibold text-primary-700'\n : 'bg-primary-50 font-medium text-primary-700'),\n option.disabled && 'cursor-not-allowed text-muted-foreground opacity-60',\n )}\n >\n {option.leadingIcon ? (\n variant === 'select' ? (\n <span\n className={cn(\n richIconBoxClass,\n isActive\n ? 'bg-primary-700 text-white'\n : 'bg-gradient-to-br from-primary-50 to-primary-100 text-primary-700',\n )}\n >\n {option.leadingIcon}\n </span>\n ) : (\n <span className={leadingIconBoxClass}>{option.leadingIcon}</span>\n )\n ) : option.dotColor && variant === 'multiselect' ? (\n <span className={cn('h-2 w-2 rounded-full', dotColorClass[dot])} />\n ) : null}\n <span className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <span className=\"truncate text-sm font-medium\">{option.label}</span>\n {option.description && (\n <span className=\"truncate text-xs font-normal text-muted-foreground\">\n {option.description}\n </span>\n )}\n </span>\n {option.meta && <span className={metaPillClass}>{option.meta}</span>}\n {isActive && variant === 'multiselect' && (\n <Check className=\"ml-auto h-4 w-4 flex-shrink-0 text-primary-700\" />\n )}\n {isActive && variant === 'select' && !option.meta && (\n <span className=\"ml-auto text-primary-700\" aria-hidden>\n ✓\n </span>\n )}\n </li>\n );\n}\n","import { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { ChevronDown } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nimport { FormItem } from '../FormItem';\n\nimport { Chip } from './Chip';\nimport { EmptyState } from './EmptyState';\nimport type { MultiSelectProps, Option, SelectStatus } from './interface';\nimport { OptionItem } from './OptionItem';\nimport { dropdownClass, statusBorderWithin } from './utils';\n\nfunction MultiSelectInner<V extends string | number>(\n props: MultiSelectProps<V>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n options,\n value,\n onChange,\n placeholder = 'Selecciona una opción',\n touched,\n error,\n help,\n externalLabel,\n isSearchable = false,\n searchable = false,\n errorMessage,\n status = '',\n disabled,\n className,\n maxTagCount = 3,\n onBlur,\n } = props;\n\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n const rootRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(ref, () => rootRef.current as HTMLDivElement);\n const enableSearch = searchable || isSearchable;\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) {\n if (open) {\n setOpen(false);\n onBlur?.();\n }\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [open, onBlur]);\n\n const filteredOptions = useMemo(\n () =>\n enableSearch && search\n ? options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()))\n : options,\n [options, search, enableSearch],\n );\n\n const toggleValue = (v: V) => {\n if (value.includes(v)) onChange(value.filter((item) => item !== v));\n else onChange([...value, v]);\n };\n\n const selectedOptions = useMemo(\n () => value.map((v) => options.find((o) => o.value === v)).filter(Boolean) as Option<V>[],\n [value, options],\n );\n\n const visibleChips = selectedOptions.slice(0, maxTagCount);\n const overflowCount = selectedOptions.length - visibleChips.length;\n\n const showError = (touched && error) || status === 'error';\n const effectiveStatus: SelectStatus = showError ? 'error' : status;\n const isEmpty = filteredOptions.length === 0;\n\n return (\n <FormItem\n help={touched || error ? help : ''}\n validateStatus={showError ? 'error' : 'default'}\n label={externalLabel}\n >\n <div ref={rootRef} className={cn('relative w-full', className)}>\n <div\n role=\"combobox\"\n aria-expanded={open}\n aria-disabled={disabled}\n onClick={() => !disabled && setOpen(true)}\n className={cn(\n 'relative flex min-h-[40px] w-full cursor-text flex-wrap items-center gap-1.5 rounded-md border bg-background py-1 pl-2 pr-9 text-sm transition-colors',\n 'focus-within:outline-none focus-within:ring-2 focus-within:ring-offset-2 focus-within:ring-offset-background',\n statusBorderWithin[effectiveStatus],\n open && !disabled && 'border-ring',\n disabled && 'bg-muted text-muted-foreground cursor-not-allowed opacity-70',\n )}\n >\n {visibleChips.map((opt) => (\n <Chip key={String(opt.value)} option={opt} disabled={disabled} onRemove={toggleValue} />\n ))}\n {overflowCount > 0 && (\n <span className=\"inline-flex h-[26px] items-center rounded-full bg-muted px-2 text-[12.5px] font-medium text-muted-foreground\">\n +{overflowCount} más\n </span>\n )}\n {enableSearch ? (\n <input\n className=\"h-7 min-w-[80px] flex-1 border-0 bg-transparent px-1.5 text-sm outline-none placeholder:text-muted-foreground\"\n value={search}\n placeholder={selectedOptions.length === 0 ? placeholder : ''}\n disabled={disabled}\n onChange={(e) => {\n setSearch(e.target.value);\n if (!open) setOpen(true);\n }}\n onFocus={() => setOpen(true)}\n />\n ) : (\n selectedOptions.length === 0 && (\n <span className=\"px-1.5 text-muted-foreground\">{placeholder}</span>\n )\n )}\n <ChevronDown\n className={cn(\n 'pointer-events-none absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground transition-transform',\n open && 'rotate-180 text-primary-700',\n )}\n aria-hidden\n />\n </div>\n\n {open && !disabled && (\n <div role=\"listbox\" className={dropdownClass}>\n {isEmpty ? (\n <EmptyState />\n ) : (\n <ul>\n {filteredOptions.map((option) => (\n <OptionItem\n key={String(option.value)}\n option={option}\n variant=\"multiselect\"\n isActive={value.includes(option.value)}\n onClick={() => {\n if (option.disabled) return;\n toggleValue(option.value);\n }}\n />\n ))}\n </ul>\n )}\n </div>\n )}\n </div>\n {errorMessage && effectiveStatus === 'error' && (\n <p className=\"mt-1 text-xs text-destructive\">{errorMessage}</p>\n )}\n </FormItem>\n );\n}\n\nexport const MultiSelect = forwardRef(MultiSelectInner) as <\n V extends string | number = string | number,\n>(\n props: MultiSelectProps<V> & { ref?: React.Ref<HTMLDivElement> },\n) => ReturnType<typeof MultiSelectInner>;\n","import {\n forwardRef,\n type KeyboardEvent,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ChevronDown } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nimport { FormItem } from '../FormItem';\n\nimport { EmptyState } from './EmptyState';\nimport type { Option, SelectProps, SelectStatus } from './interface';\nimport { OptionItem } from './OptionItem';\nimport {\n dropdownClass,\n leadingIconBoxClass,\n messageColor,\n sizeClasses,\n statusBorder,\n} from './utils';\n\nfunction SelectInner<V extends string | number>(\n props: SelectProps<V>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n options,\n value,\n onChange,\n placeholder = 'Selecciona una opción',\n touched,\n error,\n help,\n externalLabel,\n isSearchable = false,\n errorMessage,\n status = '',\n size = 'default',\n leadingIcon,\n disabled,\n className,\n onBlur,\n } = props;\n\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n const [activeIndex, setActiveIndex] = useState(-1);\n const rootRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(ref, () => rootRef.current as HTMLDivElement);\n\n const selectedOption = options.find((opt) => opt.value === value);\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) {\n if (open) {\n setOpen(false);\n onBlur?.();\n }\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [open, onBlur]);\n\n const filteredOptions = useMemo(\n () =>\n isSearchable && search\n ? options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()))\n : options,\n [options, search, isSearchable],\n );\n\n const commitSelection = (opt: Option<V>) => {\n if (opt.disabled) return;\n onChange(opt.value);\n setOpen(false);\n setSearch('');\n setActiveIndex(-1);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return;\n if (!open && (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown')) {\n e.preventDefault();\n setOpen(true);\n return;\n }\n if (!open) return;\n if (e.key === 'Escape') {\n e.preventDefault();\n setOpen(false);\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n setActiveIndex((i) => Math.min(filteredOptions.length - 1, i + 1));\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n setActiveIndex((i) => Math.max(0, i - 1));\n } else if (e.key === 'Enter') {\n e.preventDefault();\n const opt = filteredOptions[activeIndex];\n if (opt) commitSelection(opt);\n }\n };\n\n const showError = (touched && error) || status === 'error';\n const effectiveStatus: SelectStatus = showError ? 'error' : status;\n const isEmpty = filteredOptions.length === 0;\n\n return (\n <FormItem\n help={touched || error ? help : ''}\n validateStatus={showError ? 'error' : 'default'}\n label={externalLabel}\n >\n <div\n ref={rootRef}\n className={cn('relative w-full', className)}\n onKeyDown={handleKeyDown}\n tabIndex={-1}\n >\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => !disabled && setOpen((o) => !o)}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n className={cn(\n 'w-full flex items-center gap-2 rounded-md border bg-background text-left transition-colors',\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-background',\n sizeClasses[size],\n statusBorder[effectiveStatus],\n open && !disabled && 'border-ring',\n disabled && 'bg-muted text-muted-foreground cursor-not-allowed opacity-70',\n )}\n >\n {leadingIcon && <span className={leadingIconBoxClass}>{leadingIcon}</span>}\n {selectedOption ? (\n <span className=\"flex min-w-0 flex-1 items-center gap-2 truncate font-medium text-foreground\">\n {selectedOption.leadingIcon && !leadingIcon && (\n <span className={leadingIconBoxClass}>{selectedOption.leadingIcon}</span>\n )}\n <span className=\"truncate\">{selectedOption.label}</span>\n {selectedOption.meta && (\n <span className=\"ml-1 text-[12.5px] font-normal text-muted-foreground\">\n · {selectedOption.meta}\n </span>\n )}\n </span>\n ) : (\n <span className=\"flex-1 truncate text-muted-foreground\">{placeholder}</span>\n )}\n <ChevronDown\n className={cn(\n 'absolute right-3 h-4 w-4 text-muted-foreground transition-transform',\n open && 'rotate-180 text-primary-700',\n )}\n aria-hidden\n />\n </button>\n\n {open && !disabled && (\n <div role=\"listbox\" className={dropdownClass}>\n {isSearchable && (\n <div className=\"sticky top-[-4px] z-10 -mx-1 mb-1 border-b border-border bg-popover px-2 py-1.5\">\n <input\n type=\"text\"\n autoFocus\n value={search}\n onChange={(e) => {\n setSearch(e.target.value);\n setActiveIndex(0);\n }}\n className=\"w-full rounded-sm border border-transparent bg-muted px-2.5 py-1.5 text-[13.5px] outline-none focus:border-primary-500 focus:bg-background\"\n placeholder=\"Buscar...\"\n />\n </div>\n )}\n {isEmpty ? (\n <EmptyState />\n ) : (\n <ul>\n {filteredOptions.map((option, idx) => (\n <OptionItem\n key={String(option.value)}\n option={option}\n isActive={option.value === value}\n isHighlighted={idx === activeIndex}\n onMouseEnter={() => setActiveIndex(idx)}\n onClick={() => commitSelection(option)}\n />\n ))}\n </ul>\n )}\n </div>\n )}\n </div>\n {errorMessage && (\n <p className={cn('mt-1 text-xs', messageColor[effectiveStatus])}>{errorMessage}</p>\n )}\n </FormItem>\n );\n}\n\nexport const Select = forwardRef(SelectInner) as <V extends string | number = string | number>(\n props: SelectProps<V> & { ref?: React.Ref<HTMLDivElement> },\n) => ReturnType<typeof SelectInner>;\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport { Separator as UISeparator } from '../../ui/separator';\n\n/**\n * Separator · átomo basado en Radix Separator (`ui/separator`).\n *\n * Canon `Components.html` (línea ~935):\n * - `.sep` → `border-top:1px solid border; margin:14px 0` (horizontal).\n * - `.div-h` → línea horizontal simple para dividir secciones.\n * - `.div-text`→ línea con label centrado (tipo \"OR\" / \"continuar con\").\n *\n * Variantes:\n * - `orientation=\"horizontal\"` (default): línea 1px full-width.\n * - `orientation=\"vertical\"`: línea 1px de alto fijo (h-4) inline.\n * - `text`: cuando se pasa, renderiza el patrón `.div-text` (line-text-line)\n * sólo en horizontal; ignorado en vertical.\n */\nexport interface SeparatorProps {\n orientation?: 'horizontal' | 'vertical';\n text?: React.ReactNode;\n className?: string;\n}\n\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ orientation = 'horizontal', text, className }, ref) => {\n if (text && orientation === 'horizontal') {\n return (\n <div ref={ref} className={cn('relative flex items-center w-full my-2', className)}>\n <UISeparator orientation=\"horizontal\" className=\"flex-1\" />\n <span className=\"px-3 text-xs text-muted-foreground uppercase tracking-wider bg-background\">\n {text}\n </span>\n <UISeparator orientation=\"horizontal\" className=\"flex-1\" />\n </div>\n );\n }\n\n return (\n <UISeparator\n ref={ref}\n orientation={orientation}\n className={cn(orientation === 'vertical' ? 'mx-2 h-4 inline-block' : '', className)}\n />\n );\n },\n);\nSeparator.displayName = 'Separator';\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport { Skeleton as UISkeleton } from '../../ui/skeleton';\n\nexport type SkeletonRounded = 'sm' | 'md' | 'full';\n\nexport interface SkeletonProps {\n width?: number | string;\n height?: number | string;\n rounded?: SkeletonRounded;\n lines?: number;\n className?: string;\n}\n\nfunction roundedClass(r: SkeletonRounded): string {\n if (r === 'sm') return 'rounded-sm';\n if (r === 'full') return 'rounded-full';\n return 'rounded-md';\n}\n\nfunction toCss(v: number | string | undefined): string | number | undefined {\n if (typeof v === 'number') return `${v}px`;\n return v;\n}\n\nexport const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ width, height, rounded = 'md', lines, className }, ref) => {\n if (lines && lines > 1) {\n return (\n <div ref={ref} className={cn('flex flex-col gap-2', className)}>\n {Array.from({ length: lines }).map((_, i) => (\n <UISkeleton\n key={i}\n className={cn(roundedClass(rounded), 'h-3')}\n style={{\n width: i === lines - 1 ? '60%' : (toCss(width) ?? '100%'),\n }}\n />\n ))}\n </div>\n );\n }\n\n return (\n <UISkeleton\n ref={ref}\n className={cn(roundedClass(rounded), className)}\n style={{ width: toCss(width), height: toCss(height) }}\n />\n );\n },\n);\nSkeleton.displayName = 'Skeleton';\n","import { cva } from 'class-variance-authority';\n\nexport const sliderRangeVariants = cva('absolute h-full', {\n variants: {\n color: {\n primary: 'bg-primary',\n secondary: 'bg-secondary',\n success: 'bg-success',\n warning: 'bg-warning',\n danger: 'bg-destructive',\n },\n },\n defaultVariants: { color: 'primary' },\n});\n\nexport const sliderThumbVariants = cva(\n 'block h-3.5 w-3.5 rounded-full border-2 bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n color: {\n primary: 'border-primary',\n secondary: 'border-secondary',\n success: 'border-success',\n warning: 'border-warning',\n danger: 'border-destructive',\n },\n },\n defaultVariants: { color: 'primary' },\n },\n);\n\nexport type SliderColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger';\n","import * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { cn } from '../../lib/cn';\n\nimport { type SliderColor, sliderRangeVariants, sliderThumbVariants } from './Slider.variants';\n\nexport interface SliderProps {\n value?: number | number[];\n defaultValue?: number | number[];\n onChange?: (value: number | number[]) => void;\n min?: number;\n max?: number;\n step?: number;\n color?: SliderColor;\n disabled?: boolean;\n showTooltip?: boolean;\n className?: string;\n}\n\nfunction toArray(v: number | number[] | undefined): number[] | undefined {\n if (v === undefined) return undefined;\n return Array.isArray(v) ? v : [v];\n}\n\nexport const Slider = React.forwardRef<HTMLSpanElement, SliderProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n color = 'primary',\n disabled,\n showTooltip,\n className,\n },\n ref,\n ) => {\n const valueArr = toArray(value);\n const defaultArr = toArray(defaultValue);\n const [internal, setInternal] = React.useState<number[]>(defaultArr ?? [min]);\n const display = valueArr ?? internal;\n\n const handleChange = (next: number[]) => {\n if (valueArr === undefined) setInternal(next);\n if (!onChange) return;\n onChange(next.length === 1 ? next[0] : next);\n };\n\n return (\n <SliderPrimitive.Root\n ref={ref}\n value={valueArr}\n defaultValue={defaultArr}\n onValueChange={handleChange}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n className={cn(\n 'relative flex w-full touch-none select-none items-center',\n disabled && 'opacity-50',\n className,\n )}\n >\n <SliderPrimitive.Track className=\"relative h-1 w-full grow overflow-hidden rounded-full bg-muted\">\n <SliderPrimitive.Range className={sliderRangeVariants({ color })} />\n </SliderPrimitive.Track>\n {display.map((v, i) => (\n <SliderPrimitive.Thumb key={i} className={sliderThumbVariants({ color })}>\n {showTooltip && (\n <span className=\"absolute -top-7 left-1/2 -translate-x-1/2 rounded bg-default-900 text-default-50 px-1.5 py-0.5 text-xs whitespace-nowrap\">\n {v}\n </span>\n )}\n </SliderPrimitive.Thumb>\n ))}\n </SliderPrimitive.Root>\n );\n },\n);\nSlider.displayName = 'Slider';\n","import { cva } from 'class-variance-authority';\n\nexport const switchRootVariants = cva(\n 'peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=unchecked]:bg-default-200',\n {\n variants: {\n color: {\n primary: 'data-[state=checked]:bg-primary',\n secondary: 'data-[state=checked]:bg-secondary',\n success: 'data-[state=checked]:bg-success',\n warning: 'data-[state=checked]:bg-warning',\n danger: 'data-[state=checked]:bg-destructive',\n },\n size: {\n sm: 'h-5 w-9',\n md: 'h-6 w-11',\n lg: 'h-7 w-14',\n },\n },\n defaultVariants: { color: 'primary', size: 'md' },\n },\n);\n\nexport const switchThumbVariants = cva(\n 'pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=unchecked]:translate-x-0',\n {\n variants: {\n size: {\n sm: 'h-4 w-4 data-[state=checked]:translate-x-4',\n md: 'h-5 w-5 data-[state=checked]:translate-x-5',\n lg: 'h-6 w-6 data-[state=checked]:translate-x-7',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nexport type SwitchColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger';\nexport type SwitchSize = 'sm' | 'md' | 'lg';\n","import * as React from 'react';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\n\nimport { cn } from '../../lib/cn';\n\nimport {\n type SwitchColor,\n switchRootVariants,\n type SwitchSize,\n switchThumbVariants,\n} from './Switch.variants';\n\nexport interface SwitchProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?: (checked: boolean) => void;\n color?: SwitchColor;\n size?: SwitchSize;\n label?: React.ReactNode;\n disabled?: boolean;\n className?: string;\n name?: string;\n id?: string;\n}\n\nexport const Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n checked,\n defaultChecked,\n onChange,\n color = 'primary',\n size = 'md',\n label,\n disabled,\n className,\n name,\n id,\n },\n ref,\n ) => {\n const control = (\n <SwitchPrimitives.Root\n ref={ref}\n id={id}\n name={name}\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onChange}\n disabled={disabled}\n className={cn(switchRootVariants({ color, size }), !label && className)}\n >\n <SwitchPrimitives.Thumb className={switchThumbVariants({ size })} />\n </SwitchPrimitives.Root>\n );\n\n if (!label) return control;\n\n return (\n <label\n className={cn(\n 'inline-flex items-center gap-2 text-sm cursor-pointer select-none',\n disabled && 'cursor-not-allowed opacity-60',\n className,\n )}\n >\n {control}\n <span>{label}</span>\n </label>\n );\n },\n);\nSwitch.displayName = 'Switch';\n","import React from 'react';\nimport { X } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\nimport { Badge } from '../../ui/badge';\n\nimport { ITag } from './interface';\n\nconst variantMap: Record<ITag['variant'], string> = {\n default: 'bg-default-100 text-foreground border-default-200',\n success: 'bg-success-50 text-success-800 border-success-200',\n warning: 'bg-warning-50 text-warning-800 border-warning-200',\n danger: 'bg-danger-50 text-danger-800 border-danger-200',\n};\n\nexport const Tag: React.FC<ITag> = ({ icon, onClose, variant, children }) => {\n return (\n <Badge\n variant=\"outline\"\n className={cn('gap-2 px-3 py-1 text-sm rounded-md border', variantMap[variant])}\n >\n {icon}\n {children}\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className=\"ml-1 inline-flex items-center justify-center rounded hover:bg-black/10\"\n aria-label=\"close\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n )}\n </Badge>\n );\n};\n","import { type ChangeEvent, forwardRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { X } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\nimport { Textarea as UITextarea } from '../../ui/textarea';\n\nimport { FormItem } from '../FormItem';\n\nimport type { TextAreaProps } from './interface';\n\n/**\n * Textarea AgroShine · canon Components.html\n *\n * - Base: `ui/textarea` (shadcn) — radius 6px, tokens semánticos.\n * - Extras: `allowClear`, `status: error|success|warning|default`, `autoSize`,\n * integración con `FormItem`.\n */\nconst sizeClasses = {\n small: 'text-[13px] py-1.5 px-2.5',\n default: 'text-sm py-2 px-3',\n large: 'text-[15px] py-2.5 px-4',\n} as const;\n\nconst statusBorderClasses = {\n error: 'border-destructive focus-visible:ring-destructive',\n success: 'border-success-500 focus-visible:ring-success-500',\n warning: 'border-warning-500 focus-visible:ring-warning-500',\n default: '',\n} as const;\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextAreaProps>(function Textarea(\n {\n size = 'default',\n allowClear = false,\n status = 'default',\n autoSize = false,\n disabled,\n className,\n name,\n touched,\n error,\n externalLabel,\n help,\n errorMessage,\n onChange,\n value,\n defaultValue,\n rows = 3,\n ...rest\n },\n ref,\n) {\n const [internalValue, setInternalValue] = useState(defaultValue ?? '');\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const innerRef = useRef<HTMLTextAreaElement | null>(null);\n const setRefs = useCallback(\n (node: HTMLTextAreaElement | null) => {\n innerRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLTextAreaElement | null>).current = node;\n },\n [ref],\n );\n\n useEffect(() => {\n if (autoSize && innerRef.current) {\n innerRef.current.style.height = 'auto';\n innerRef.current.style.height = `${innerRef.current.scrollHeight}px`;\n }\n }, [currentValue, autoSize]);\n\n const showClearButton = allowClear && !disabled && Boolean(currentValue);\n\n const messageColor =\n status === 'error' ? 'text-destructive' : status === 'warning' ? 'text-warning-700' : '';\n\n const handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n if (!isControlled) setInternalValue(e.target.value);\n onChange?.(e);\n };\n\n const handleClear = () => {\n if (!isControlled) setInternalValue('');\n onChange?.({ target: { value: '' } } as ChangeEvent<HTMLTextAreaElement>);\n innerRef.current?.focus();\n };\n\n return (\n <FormItem\n help={touched || error ? help : ''}\n validateStatus={touched && error ? 'error' : 'default'}\n label={externalLabel}\n >\n <div className={cn('relative w-full', className)}>\n <UITextarea\n ref={setRefs}\n name={name}\n disabled={disabled}\n rows={rows}\n value={currentValue}\n onChange={handleChange}\n aria-invalid={status === 'error' || (touched && Boolean(error)) || undefined}\n className={cn(\n sizeClasses[size],\n statusBorderClasses[status],\n autoSize && 'resize-none overflow-hidden',\n showClearButton && 'pr-9',\n )}\n {...rest}\n />\n\n {showClearButton && (\n <button\n type=\"button\"\n onClick={handleClear}\n aria-label=\"Limpiar\"\n className=\"absolute right-2 top-2 inline-flex items-center justify-center text-muted-foreground hover:text-foreground\"\n >\n <X className=\"h-3.5 w-3.5\" />\n </button>\n )}\n </div>\n\n {errorMessage && (\n <p\n className={cn('mt-1 text-xs', messageColor)}\n role={status === 'error' ? 'alert' : undefined}\n >\n {errorMessage}\n </p>\n )}\n </FormItem>\n );\n});\n","import * as React from 'react';\nimport * as TogglePrimitive from '@radix-ui/react-toggle';\n\nimport { cn } from '../../lib/cn';\nimport { toggleVariants } from '../../ui/toggle';\n\nexport type ToggleVariant = 'default' | 'outline';\nexport type ToggleSize = 'sm' | 'md' | 'lg';\n\nexport interface ToggleProps {\n pressed?: boolean;\n defaultPressed?: boolean;\n onChange?: (pressed: boolean) => void;\n variant?: ToggleVariant;\n size?: ToggleSize;\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n 'aria-label'?: string;\n}\n\nfunction mapSize(size: ToggleSize): 'sm' | 'default' | 'lg' {\n if (size === 'sm') return 'sm';\n if (size === 'lg') return 'lg';\n return 'default';\n}\n\nexport const Toggle = React.forwardRef<HTMLButtonElement, ToggleProps>(\n (\n {\n pressed,\n defaultPressed,\n onChange,\n variant = 'default',\n size = 'md',\n disabled,\n className,\n children,\n ...rest\n },\n ref,\n ) => (\n <TogglePrimitive.Root\n ref={ref}\n pressed={pressed}\n defaultPressed={defaultPressed}\n onPressedChange={onChange}\n disabled={disabled}\n className={cn(toggleVariants({ variant, size: mapSize(size) }), className)}\n {...rest}\n >\n {children}\n </TogglePrimitive.Root>\n ),\n);\nToggle.displayName = 'Toggle';\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport { ToggleGroup as UIToggleGroup, ToggleGroupItem } from '../../ui/toggle-group';\n\nexport type ToggleGroupVariant = 'default' | 'outline';\nexport type ToggleGroupSize = 'sm' | 'md' | 'lg';\n\nexport interface ToggleGroupOption {\n value: string;\n label: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ToggleGroupSingleProps {\n type: 'single';\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n}\n\nexport interface ToggleGroupMultipleProps {\n type: 'multiple';\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n}\n\nexport type ToggleGroupProps = (ToggleGroupSingleProps | ToggleGroupMultipleProps) & {\n options: ToggleGroupOption[];\n variant?: ToggleGroupVariant;\n size?: ToggleGroupSize;\n disabled?: boolean;\n className?: string;\n};\n\nfunction mapSize(size: ToggleGroupSize): 'sm' | 'default' | 'lg' {\n if (size === 'sm') return 'sm';\n if (size === 'lg') return 'lg';\n return 'default';\n}\n\nexport const ToggleGroup = React.forwardRef<HTMLDivElement, ToggleGroupProps>((props, ref) => {\n const { options, variant = 'default', size = 'md', disabled, className } = props;\n\n const sharedItems = options.map((opt) => (\n <ToggleGroupItem key={opt.value} value={opt.value} disabled={opt.disabled || disabled}>\n {opt.label}\n </ToggleGroupItem>\n ));\n\n if (props.type === 'single') {\n return (\n <UIToggleGroup\n ref={ref}\n type=\"single\"\n value={props.value}\n defaultValue={props.defaultValue}\n onValueChange={(v: string) => props.onChange?.(v)}\n variant={variant}\n size={mapSize(size)}\n disabled={disabled}\n className={cn(className)}\n >\n {sharedItems}\n </UIToggleGroup>\n );\n }\n\n return (\n <UIToggleGroup\n ref={ref}\n type=\"multiple\"\n value={props.value}\n defaultValue={props.defaultValue}\n onValueChange={(v: string[]) => props.onChange?.(v)}\n variant={variant}\n size={mapSize(size)}\n disabled={disabled}\n className={cn(className)}\n >\n {sharedItems}\n </UIToggleGroup>\n );\n});\nToggleGroup.displayName = 'ToggleGroup';\n"]}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { cn } from './chunk-MOED3QPY.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import * as SheetPrimitive from '@radix-ui/react-dialog';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
|
+
import { X } from 'lucide-react';
|
|
7
|
+
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
|
8
|
+
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
9
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
10
|
+
|
|
11
|
+
var Card = React.forwardRef(
|
|
12
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
13
|
+
"div",
|
|
14
|
+
{
|
|
15
|
+
ref,
|
|
16
|
+
className: cn("rounded-md border bg-card text-card-foreground shadow-sm", className),
|
|
17
|
+
...props
|
|
18
|
+
}
|
|
19
|
+
)
|
|
20
|
+
);
|
|
21
|
+
Card.displayName = "Card";
|
|
22
|
+
var CardHeader = React.forwardRef(
|
|
23
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col gap-1.5 p-6", className), ...props })
|
|
24
|
+
);
|
|
25
|
+
CardHeader.displayName = "CardHeader";
|
|
26
|
+
var CardTitle = React.forwardRef(
|
|
27
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
28
|
+
"h3",
|
|
29
|
+
{
|
|
30
|
+
ref,
|
|
31
|
+
className: cn("text-base font-semibold leading-none tracking-tight", className),
|
|
32
|
+
...props
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
);
|
|
36
|
+
CardTitle.displayName = "CardTitle";
|
|
37
|
+
var CardDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
38
|
+
CardDescription.displayName = "CardDescription";
|
|
39
|
+
var CardContent = React.forwardRef(
|
|
40
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
41
|
+
);
|
|
42
|
+
CardContent.displayName = "CardContent";
|
|
43
|
+
var CardFooter = React.forwardRef(
|
|
44
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2 p-6 pt-0", className), ...props })
|
|
45
|
+
);
|
|
46
|
+
CardFooter.displayName = "CardFooter";
|
|
47
|
+
var Sheet = SheetPrimitive.Root;
|
|
48
|
+
var SheetTrigger = SheetPrimitive.Trigger;
|
|
49
|
+
var SheetClose = SheetPrimitive.Close;
|
|
50
|
+
var SheetPortal = SheetPrimitive.Portal;
|
|
51
|
+
var SheetOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
52
|
+
SheetPrimitive.Overlay,
|
|
53
|
+
{
|
|
54
|
+
className: cn(
|
|
55
|
+
"fixed inset-0 z-50 bg-black/[0.04] backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
56
|
+
className
|
|
57
|
+
),
|
|
58
|
+
...props,
|
|
59
|
+
ref
|
|
60
|
+
}
|
|
61
|
+
));
|
|
62
|
+
SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
|
|
63
|
+
var sheetVariants = cva(
|
|
64
|
+
"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
65
|
+
{
|
|
66
|
+
variants: {
|
|
67
|
+
side: {
|
|
68
|
+
top: "inset-x-0 top-0 border-b border-border data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
69
|
+
bottom: "inset-x-0 bottom-0 border-t border-border data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
70
|
+
left: "inset-y-0 left-0 h-full w-3/4 border-r border-border data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
71
|
+
right: "inset-y-0 right-0 h-full w-3/4 border-l border-border data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
defaultVariants: {
|
|
75
|
+
side: "right"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
var SheetContent = React.forwardRef(({ side = "right", className, children, hideCloseButton, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
|
|
80
|
+
/* @__PURE__ */ jsx(SheetOverlay, {}),
|
|
81
|
+
/* @__PURE__ */ jsxs(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
82
|
+
children,
|
|
83
|
+
!hideCloseButton && /* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [
|
|
84
|
+
/* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
|
|
85
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
86
|
+
] })
|
|
87
|
+
] })
|
|
88
|
+
] }));
|
|
89
|
+
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
90
|
+
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
91
|
+
SheetHeader.displayName = "SheetHeader";
|
|
92
|
+
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
93
|
+
"div",
|
|
94
|
+
{
|
|
95
|
+
className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
|
|
96
|
+
...props
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
SheetFooter.displayName = "SheetFooter";
|
|
100
|
+
var SheetTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
101
|
+
SheetPrimitive.Title,
|
|
102
|
+
{
|
|
103
|
+
ref,
|
|
104
|
+
className: cn("text-foreground text-lg font-semibold", className),
|
|
105
|
+
...props
|
|
106
|
+
}
|
|
107
|
+
));
|
|
108
|
+
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
109
|
+
var SheetDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
110
|
+
SheetPrimitive.Description,
|
|
111
|
+
{
|
|
112
|
+
ref,
|
|
113
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
114
|
+
...props
|
|
115
|
+
}
|
|
116
|
+
));
|
|
117
|
+
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
118
|
+
var HoverCard = HoverCardPrimitive.Root;
|
|
119
|
+
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
120
|
+
var HoverCardContent = React.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
121
|
+
HoverCardPrimitive.Content,
|
|
122
|
+
{
|
|
123
|
+
ref,
|
|
124
|
+
align,
|
|
125
|
+
sideOffset,
|
|
126
|
+
className: cn(
|
|
127
|
+
// Canon Components.html `.hcard`:
|
|
128
|
+
// max-w-[300px] (auto width), rounded-lg (8px), border border-border,
|
|
129
|
+
// bg-popover, p-4 (16px), shadow-lg
|
|
130
|
+
"z-50 w-fit max-w-[300px] rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
131
|
+
className
|
|
132
|
+
),
|
|
133
|
+
...props
|
|
134
|
+
}
|
|
135
|
+
));
|
|
136
|
+
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
137
|
+
var Dialog = SheetPrimitive.Root;
|
|
138
|
+
var DialogTrigger = SheetPrimitive.Trigger;
|
|
139
|
+
var DialogPortal = SheetPrimitive.Portal;
|
|
140
|
+
var DialogClose = SheetPrimitive.Close;
|
|
141
|
+
var DialogOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
142
|
+
SheetPrimitive.Overlay,
|
|
143
|
+
{
|
|
144
|
+
ref,
|
|
145
|
+
className: cn(
|
|
146
|
+
"fixed inset-0 z-50 bg-black/[0.04] backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
147
|
+
className
|
|
148
|
+
),
|
|
149
|
+
...props
|
|
150
|
+
}
|
|
151
|
+
));
|
|
152
|
+
DialogOverlay.displayName = SheetPrimitive.Overlay.displayName;
|
|
153
|
+
var DialogContent = React.forwardRef(({ className, children, hideCloseButton, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
154
|
+
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
155
|
+
/* @__PURE__ */ jsxs(
|
|
156
|
+
SheetPrimitive.Content,
|
|
157
|
+
{
|
|
158
|
+
ref,
|
|
159
|
+
className: cn(
|
|
160
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-lg",
|
|
161
|
+
className
|
|
162
|
+
),
|
|
163
|
+
...props,
|
|
164
|
+
children: [
|
|
165
|
+
children,
|
|
166
|
+
!hideCloseButton && /* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [
|
|
167
|
+
/* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
|
|
168
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
169
|
+
] })
|
|
170
|
+
]
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
] }));
|
|
174
|
+
DialogContent.displayName = SheetPrimitive.Content.displayName;
|
|
175
|
+
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
176
|
+
DialogHeader.displayName = "DialogHeader";
|
|
177
|
+
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
178
|
+
"div",
|
|
179
|
+
{
|
|
180
|
+
className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
|
|
181
|
+
...props
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
DialogFooter.displayName = "DialogFooter";
|
|
185
|
+
var DialogTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
186
|
+
SheetPrimitive.Title,
|
|
187
|
+
{
|
|
188
|
+
ref,
|
|
189
|
+
className: cn("text-lg font-semibold leading-none tracking-tight", className),
|
|
190
|
+
...props
|
|
191
|
+
}
|
|
192
|
+
));
|
|
193
|
+
DialogTitle.displayName = SheetPrimitive.Title.displayName;
|
|
194
|
+
var DialogDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
195
|
+
SheetPrimitive.Description,
|
|
196
|
+
{
|
|
197
|
+
ref,
|
|
198
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
199
|
+
...props
|
|
200
|
+
}
|
|
201
|
+
));
|
|
202
|
+
DialogDescription.displayName = SheetPrimitive.Description.displayName;
|
|
203
|
+
var Tabs = TabsPrimitive.Root;
|
|
204
|
+
var TabsList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
205
|
+
TabsPrimitive.List,
|
|
206
|
+
{
|
|
207
|
+
ref,
|
|
208
|
+
className: cn(
|
|
209
|
+
"inline-flex items-center justify-center gap-[2px] rounded-md bg-muted p-[3px]",
|
|
210
|
+
className
|
|
211
|
+
),
|
|
212
|
+
...props
|
|
213
|
+
}
|
|
214
|
+
));
|
|
215
|
+
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
216
|
+
var TabsTrigger = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
217
|
+
TabsPrimitive.Trigger,
|
|
218
|
+
{
|
|
219
|
+
ref,
|
|
220
|
+
className: cn(
|
|
221
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm px-3.5 py-1.5 text-sm font-medium text-muted-foreground ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:font-semibold data-[state=active]:shadow-sm",
|
|
222
|
+
className
|
|
223
|
+
),
|
|
224
|
+
...props
|
|
225
|
+
}
|
|
226
|
+
));
|
|
227
|
+
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
228
|
+
var TabsContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
229
|
+
TabsPrimitive.Content,
|
|
230
|
+
{
|
|
231
|
+
ref,
|
|
232
|
+
className: cn(
|
|
233
|
+
"px-1 pb-1 pt-[18px] text-sm text-foreground ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
234
|
+
className
|
|
235
|
+
),
|
|
236
|
+
...props
|
|
237
|
+
}
|
|
238
|
+
));
|
|
239
|
+
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
240
|
+
var TooltipProvider = TooltipPrimitive.Provider;
|
|
241
|
+
var Tooltip = TooltipPrimitive.Root;
|
|
242
|
+
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
243
|
+
var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
244
|
+
TooltipPrimitive.Content,
|
|
245
|
+
{
|
|
246
|
+
ref,
|
|
247
|
+
sideOffset,
|
|
248
|
+
className: cn(
|
|
249
|
+
"z-50 overflow-hidden rounded-sm bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
250
|
+
className
|
|
251
|
+
),
|
|
252
|
+
...props
|
|
253
|
+
}
|
|
254
|
+
));
|
|
255
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
256
|
+
|
|
257
|
+
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, HoverCard, HoverCardContent, HoverCardTrigger, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Tabs, TabsContent, TabsList, TabsTrigger, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
258
|
+
//# sourceMappingURL=chunk-6LUGTNMH.js.map
|
|
259
|
+
//# sourceMappingURL=chunk-6LUGTNMH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/card.tsx","../src/ui/sheet.tsx","../src/ui/hover-card.tsx","../src/ui/dialog.tsx","../src/ui/tabs.tsx","../src/ui/tooltip.tsx"],"names":["React2","jsx","React3","DialogPrimitive","React4","jsxs","X","React5","React6"],"mappings":"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","file":"chunk-6LUGTNMH.js","sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../lib/cn';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('rounded-md border bg-card text-card-foreground shadow-sm', className)}\n {...props}\n />\n ),\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col gap-1.5 p-6', className)} {...props} />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref as React.Ref<HTMLHeadingElement>}\n className={cn('text-base font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n ),\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n));\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n ),\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-2 p-6 pt-0', className)} {...props} />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n","import * as React from 'react';\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\n\nimport { cn } from '../lib/cn';\n\nconst Sheet = SheetPrimitive.Root;\nconst SheetTrigger = SheetPrimitive.Trigger;\nconst SheetClose = SheetPrimitive.Close;\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black/[0.04] backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b border-border data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t border-border data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r border-border data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l border-border data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n },\n);\n\ninterface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {\n hideCloseButton?: boolean;\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, hideCloseButton, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>\n {children}\n {!hideCloseButton && (\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\n);\nSheetHeader.displayName = 'SheetHeader';\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n);\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-foreground text-lg font-semibold', className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetOverlay,\n SheetPortal,\n SheetTitle,\n SheetTrigger,\n};\n","import * as React from 'react';\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card';\n\nimport { cn } from '../lib/cn';\n\nconst HoverCard = HoverCardPrimitive.Root;\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger;\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n // Canon Components.html `.hcard`:\n // max-w-[300px] (auto width), rounded-lg (8px), border border-border,\n // bg-popover, p-4 (16px), shadow-lg\n 'z-50 w-fit max-w-[300px] rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n));\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\n\nexport { HoverCard, HoverCardContent, HoverCardTrigger };\n","import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\n\nimport { cn } from '../lib/cn';\n\nconst Dialog = DialogPrimitive.Root;\nconst DialogTrigger = DialogPrimitive.Trigger;\nconst DialogPortal = DialogPrimitive.Portal;\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/[0.04] backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n hideCloseButton?: boolean;\n }\n>(({ className, children, hideCloseButton, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-lg',\n className,\n )}\n {...props}\n >\n {children}\n {!hideCloseButton && (\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '../lib/cn';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'inline-flex items-center justify-center gap-[2px] rounded-md bg-muted p-[3px]',\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm px-3.5 py-1.5 text-sm font-medium text-muted-foreground ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:font-semibold data-[state=active]:shadow-sm',\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'px-1 pb-1 pt-[18px] text-sm text-foreground ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n","import * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\n\nimport { cn } from '../lib/cn';\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 overflow-hidden rounded-sm bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"]}
|