@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.
Files changed (109) hide show
  1. package/README.md +75 -0
  2. package/dist/atoms/index.cjs +134 -0
  3. package/dist/atoms/index.cjs.map +1 -0
  4. package/dist/atoms/index.d.cts +583 -0
  5. package/dist/atoms/index.d.ts +583 -0
  6. package/dist/atoms/index.js +9 -0
  7. package/dist/atoms/index.js.map +1 -0
  8. package/dist/chunk-2KRMLIJQ.cjs +52 -0
  9. package/dist/chunk-2KRMLIJQ.cjs.map +1 -0
  10. package/dist/chunk-2TBYPKQ3.cjs +79 -0
  11. package/dist/chunk-2TBYPKQ3.cjs.map +1 -0
  12. package/dist/chunk-5FWELSEZ.js +1296 -0
  13. package/dist/chunk-5FWELSEZ.js.map +1 -0
  14. package/dist/chunk-5PEOJVY7.cjs +1502 -0
  15. package/dist/chunk-5PEOJVY7.cjs.map +1 -0
  16. package/dist/chunk-6LUGTNMH.js +259 -0
  17. package/dist/chunk-6LUGTNMH.js.map +1 -0
  18. package/dist/chunk-6O2IDBTX.js +112 -0
  19. package/dist/chunk-6O2IDBTX.js.map +1 -0
  20. package/dist/chunk-6YUNWKT3.js +26 -0
  21. package/dist/chunk-6YUNWKT3.js.map +1 -0
  22. package/dist/chunk-7R6OXNES.cjs +321 -0
  23. package/dist/chunk-7R6OXNES.cjs.map +1 -0
  24. package/dist/chunk-A3A7PJWG.cjs +13 -0
  25. package/dist/chunk-A3A7PJWG.cjs.map +1 -0
  26. package/dist/chunk-A7TDGQAB.js +557 -0
  27. package/dist/chunk-A7TDGQAB.js.map +1 -0
  28. package/dist/chunk-C4LX3XTN.cjs +1187 -0
  29. package/dist/chunk-C4LX3XTN.cjs.map +1 -0
  30. package/dist/chunk-DZW4GS2T.cjs +1340 -0
  31. package/dist/chunk-DZW4GS2T.cjs.map +1 -0
  32. package/dist/chunk-E3BTK736.cjs +174 -0
  33. package/dist/chunk-E3BTK736.cjs.map +1 -0
  34. package/dist/chunk-ERGKCXM2.cjs +267 -0
  35. package/dist/chunk-ERGKCXM2.cjs.map +1 -0
  36. package/dist/chunk-FOA46NSG.cjs +574 -0
  37. package/dist/chunk-FOA46NSG.cjs.map +1 -0
  38. package/dist/chunk-JTFCE6RA.js +1156 -0
  39. package/dist/chunk-JTFCE6RA.js.map +1 -0
  40. package/dist/chunk-KINOE57L.js +225 -0
  41. package/dist/chunk-KINOE57L.js.map +1 -0
  42. package/dist/chunk-MOED3QPY.js +11 -0
  43. package/dist/chunk-MOED3QPY.js.map +1 -0
  44. package/dist/chunk-NVR34DY2.cjs +4 -0
  45. package/dist/chunk-NVR34DY2.cjs.map +1 -0
  46. package/dist/chunk-PI3IJWBG.js +79 -0
  47. package/dist/chunk-PI3IJWBG.js.map +1 -0
  48. package/dist/chunk-PXAMTGYY.js +3 -0
  49. package/dist/chunk-PXAMTGYY.js.map +1 -0
  50. package/dist/chunk-QAZMI5VH.js +151 -0
  51. package/dist/chunk-QAZMI5VH.js.map +1 -0
  52. package/dist/chunk-QEG27NX6.js +30 -0
  53. package/dist/chunk-QEG27NX6.js.map +1 -0
  54. package/dist/chunk-THTOUSMG.cjs +52 -0
  55. package/dist/chunk-THTOUSMG.cjs.map +1 -0
  56. package/dist/chunk-UAXKB6IH.cjs +32 -0
  57. package/dist/chunk-UAXKB6IH.cjs.map +1 -0
  58. package/dist/chunk-W5IHWAMM.js +48 -0
  59. package/dist/chunk-W5IHWAMM.js.map +1 -0
  60. package/dist/chunk-X2UJQVZJ.cjs +139 -0
  61. package/dist/chunk-X2UJQVZJ.cjs.map +1 -0
  62. package/dist/chunk-X43C5OJD.js +1460 -0
  63. package/dist/chunk-X43C5OJD.js.map +1 -0
  64. package/dist/chunk-XCYSBWV4.js +56 -0
  65. package/dist/chunk-XCYSBWV4.js.map +1 -0
  66. package/dist/chunk-XX4CBCEB.cjs +102 -0
  67. package/dist/chunk-XX4CBCEB.cjs.map +1 -0
  68. package/dist/hooks/index.cjs +33 -0
  69. package/dist/hooks/index.cjs.map +1 -0
  70. package/dist/hooks/index.d.cts +59 -0
  71. package/dist/hooks/index.d.ts +59 -0
  72. package/dist/hooks/index.js +4 -0
  73. package/dist/hooks/index.js.map +1 -0
  74. package/dist/index.cjs +366 -0
  75. package/dist/index.cjs.map +1 -0
  76. package/dist/index.d.cts +13 -0
  77. package/dist/index.d.ts +13 -0
  78. package/dist/index.js +17 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/interface-DnK5S6ww.d.cts +51 -0
  81. package/dist/interface-DnK5S6ww.d.ts +51 -0
  82. package/dist/lib/index.cjs +13 -0
  83. package/dist/lib/index.cjs.map +1 -0
  84. package/dist/lib/index.d.cts +5 -0
  85. package/dist/lib/index.d.ts +5 -0
  86. package/dist/lib/index.js +4 -0
  87. package/dist/lib/index.js.map +1 -0
  88. package/dist/molecules/index.cjs +123 -0
  89. package/dist/molecules/index.cjs.map +1 -0
  90. package/dist/molecules/index.d.cts +449 -0
  91. package/dist/molecules/index.d.ts +449 -0
  92. package/dist/molecules/index.js +10 -0
  93. package/dist/molecules/index.js.map +1 -0
  94. package/dist/organisms/index.cjs +102 -0
  95. package/dist/organisms/index.cjs.map +1 -0
  96. package/dist/organisms/index.d.cts +396 -0
  97. package/dist/organisms/index.d.ts +396 -0
  98. package/dist/organisms/index.js +9 -0
  99. package/dist/organisms/index.js.map +1 -0
  100. package/dist/tooltip-Bl2ZTtfg.d.cts +16 -0
  101. package/dist/tooltip-Bl2ZTtfg.d.ts +16 -0
  102. package/dist/ui/index.cjs +955 -0
  103. package/dist/ui/index.cjs.map +1 -0
  104. package/dist/ui/index.d.cts +252 -0
  105. package/dist/ui/index.d.ts +252 -0
  106. package/dist/ui/index.js +642 -0
  107. package/dist/ui/index.js.map +1 -0
  108. package/package.json +200 -0
  109. package/tailwind.preset.cjs +134 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/Alert/Alert.variants.ts","../src/molecules/Alert/Alert.tsx","../src/molecules/Breadcrumb/Breadcrumb.tsx","../src/molecules/Card/Card.tsx","../src/molecules/Drawer/Drawer.tsx","../src/molecules/Empty/Empty.tsx","../src/molecules/HoverCard/HoverCard.tsx","../src/molecules/List/ListItem.tsx","../src/molecules/List/List.tsx","../src/molecules/Modal/DeleteModal.tsx","../src/molecules/Modal/Modal.tsx","../src/molecules/Popconfirm/Popconfirm.tsx","../src/molecules/Popover/Popover.tsx","../src/molecules/Segmented/Segmented.variants.ts","../src/molecules/Segmented/Segmented.tsx","../src/molecules/Statistic/Statistic.tsx","../src/molecules/Steps/variantsTailwind.tsx","../src/molecules/Steps/Step.tsx","../src/molecules/Steps/Steps.tsx","../src/molecules/Table/Column.tsx","../src/molecules/Table/Pagination.tsx","../src/molecules/Table/MobileCards.tsx","../src/molecules/Table/utils.ts","../src/molecules/Table/TableParts.tsx","../src/molecules/Table/Table.tsx","../src/molecules/Tabs/Tabs.variants.ts","../src/molecules/Tabs/Tabs.tsx","../src/molecules/Timeline/Timeline.variants.ts","../src/molecules/Timeline/Timeline.tsx","../src/molecules/Tooltip/Tooltip.tsx"],"names":["React","React2","jsx","jsxs","Card","forwardRef","React3","HoverCard","React4","ListItem","List","Button","sizeMap","AlertCircle","Popover","React6","cva","React7","React8","React9","clsx","useState","Fragment","Tabs","React11","React12","Tooltip","React13"],"mappings":"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","file":"chunk-5FWELSEZ.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\n/**\n * Canon Components.html § \"Alert\" L1149 / CSS L264-274:\n * .alert { padding:14px 16px; rounded-md; border 1px solid border;\n * bg-background; grid 18px/1fr gap-12; }\n * .alert .at { font:14px/600 mb-1; }\n * .alert .ad { font:13px/normal color:muted-foreground; line-height:1.5; }\n * .alert-destructive { border-destructive; bg-destructive/0.05; text-destructive }\n * .alert-success { border #bedccb (≈success-200); bg-success-50; text-success-700 }\n * .alert-warning { border warning-100; bg-warning-50; text-warning-800 }\n */\nexport const alertVariants = cva(\n 'relative grid w-full grid-cols-[18px_1fr] items-start gap-3 rounded-md border px-4 py-3.5',\n {\n variants: {\n variant: {\n // Canon default: neutral, sin tinte.\n default: 'border-border bg-background text-foreground',\n // Canon extra (compat AgroShine — primary-tinted).\n info: 'border-primary-200 bg-primary-50 text-primary-700',\n success: 'border-success-200 bg-success-50 text-success-700',\n warning: 'border-warning-100 bg-warning-50 text-warning-800',\n destructive: 'border-destructive bg-destructive/[0.05] text-destructive',\n // Alias compat.\n danger: 'border-destructive bg-destructive/[0.05] text-destructive',\n },\n },\n defaultVariants: { variant: 'default' },\n },\n);\n\n/** Icono `.alert .ic` — color inherits del container salvo overrides. */\nexport const alertIconVariants = cva(\n 'flex h-[18px] w-[18px] shrink-0 items-center justify-center text-[16px] leading-none [&_svg]:h-[18px] [&_svg]:w-[18px]',\n {\n variants: {\n variant: {\n default: 'text-foreground',\n info: 'text-primary-700',\n success: 'text-success-700',\n warning: 'text-warning-800',\n destructive: 'text-destructive',\n danger: 'text-destructive',\n },\n },\n defaultVariants: { variant: 'default' },\n },\n);\n","import * as React from 'react';\nimport { AlertCircle, CheckCircle2, Info, X, XCircle } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { AlertProps, AlertVariant } from './Alert.types';\nimport { alertIconVariants, alertVariants } from './Alert.variants';\n\n/**\n * Icono default por variante (canon HTML usa caracteres unicode `ⓘ ✓ ⚠ ✕`;\n * usamos lucide para tener proporciones consistentes con el resto de la lib).\n */\nconst ICON_MAP: Record<AlertVariant, React.ComponentType<{ className?: string }>> = {\n default: Info,\n info: Info,\n success: CheckCircle2,\n warning: AlertCircle,\n destructive: XCircle,\n danger: XCircle,\n};\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n variant = 'default',\n title,\n description,\n icon = true,\n closable,\n onClose,\n className,\n children,\n },\n ref,\n ) => {\n const renderIcon = (): React.ReactNode => {\n if (icon === false) return null;\n if (icon === true) {\n const IconComponent = ICON_MAP[variant];\n return <IconComponent />;\n }\n return icon;\n };\n\n const iconNode = renderIcon();\n\n return (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)}>\n {iconNode !== null && <span className={alertIconVariants({ variant })}>{iconNode}</span>}\n <div className=\"min-w-0\">\n {title && (\n // .at: font-weight 600, font-size 14px, margin 0 0 4px\n <h4 className=\"m-0 mb-1 text-sm font-semibold leading-tight\">{title}</h4>\n )}\n {description && (\n // .ad: font-size 13px, color muted-foreground, line-height 1.5\n <p className=\"m-0 text-[13px] leading-normal text-muted-foreground\">{description}</p>\n )}\n {children}\n </div>\n {closable && (\n <button\n type=\"button\"\n aria-label=\"Cerrar\"\n onClick={onClose}\n className=\"-mr-1 -mt-1 shrink-0 rounded-sm p-1 opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n )}\n </div>\n );\n },\n);\nAlert.displayName = 'Alert';\n\nexport default Alert;\n","import * as React from 'react';\nimport { ChevronRight } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { BreadcrumbItem, BreadcrumbProps } from './Breadcrumb.types';\n\nconst ELLIPSIS_KEY = '__ellipsis__';\n\nfunction collapseItems(items: BreadcrumbItem[], maxItems?: number): (BreadcrumbItem | null)[] {\n if (!maxItems || items.length <= maxItems) return items;\n const first = items[0];\n const lastTwo = items.slice(-2);\n return [first, null, ...lastTwo];\n}\n\nexport const Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n ({ items, separator, maxItems, className, onItemClick }, ref) => {\n const sep = separator ?? <ChevronRight className=\"h-3.5 w-3.5 text-default-500\" />;\n const visible = collapseItems(items, maxItems);\n\n return (\n <nav ref={ref} aria-label=\"Breadcrumb\" className={cn('w-full', className)}>\n <ol className=\"flex flex-wrap items-center gap-1.5 text-sm\">\n {visible.map((item, idx) => {\n const isLast = idx === visible.length - 1;\n const key = item === null ? `${ELLIPSIS_KEY}-${idx}` : `${idx}-${String(item.label)}`;\n\n return (\n <li key={key} className=\"flex items-center gap-1.5\">\n {item === null ? (\n <span className=\"text-default-500 px-1\">…</span>\n ) : isLast ? (\n <span\n aria-current=\"page\"\n className=\"flex items-center gap-1 font-medium text-default-900\"\n >\n {item.icon}\n {item.label}\n </span>\n ) : item.href ? (\n <a\n href={item.href}\n onClick={onItemClick ? () => onItemClick(item, idx) : undefined}\n className=\"flex items-center gap-1 text-default-700 hover:text-primary transition-colors\"\n >\n {item.icon}\n {item.label}\n </a>\n ) : (\n <button\n type=\"button\"\n onClick={onItemClick ? () => onItemClick(item, idx) : undefined}\n className=\"flex items-center gap-1 text-default-700 hover:text-primary transition-colors\"\n >\n {item.icon}\n {item.label}\n </button>\n )}\n {!isLast && <span className=\"text-default-400\">{sep}</span>}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n },\n);\nBreadcrumb.displayName = 'Breadcrumb';\n\nexport default Breadcrumb;\n","import { forwardRef } from 'react';\n\nimport { cn } from '../../lib/cn';\nimport {\n Card as UICard,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from '../../ui/card';\n\nimport type { CardProps } from './Card.types';\n\nconst variantClasses = {\n default: '',\n flush: 'overflow-hidden',\n interactive:\n 'cursor-pointer transition-shadow hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n} as const;\n\n/**\n * Card AgroShine — wrapper sobre `ui/card` (shadcn primitive).\n *\n * Re-exporta los sub-componentes (`CardHeader`, `CardTitle`, `CardDescription`,\n * `CardContent`, `CardFooter`) para una API completa:\n *\n * <Card variant=\"interactive\" onClick={...}>\n * <CardHeader>\n * <CardTitle>Aspersión 19-001</CardTitle>\n * <CardDescription>FOC · Mancozeb 80 %</CardDescription>\n * </CardHeader>\n * <CardContent>...</CardContent>\n * <CardFooter>...</CardFooter>\n * </Card>\n */\nexport const Card = forwardRef<HTMLDivElement, CardProps>(function Card(\n { variant = 'default', className, onClick, children, ...rest },\n ref,\n) {\n const isInteractive = variant === 'interactive' || Boolean(onClick);\n\n return (\n <UICard\n ref={ref}\n onClick={onClick}\n role={isInteractive ? 'button' : undefined}\n tabIndex={isInteractive ? 0 : undefined}\n className={cn(variantClasses[variant], className)}\n {...rest}\n >\n {children}\n </UICard>\n );\n});\n\nexport { CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n","import { FC, ReactNode } from 'react';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { cn } from '../../lib/cn';\nimport { Sheet, SheetContent } from '../../ui/sheet';\n\ninterface DrawerProps {\n visible: boolean;\n onClose: () => void;\n title?: string;\n description?: string;\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n placement?: 'left' | 'right' | 'top' | 'bottom';\n children?: ReactNode;\n footer?: ReactNode;\n extra?: React.ReactNode | React.ReactNode[];\n}\n\nconst sizeMap: Record<NonNullable<DrawerProps['size']>, string> = {\n xs: 'sm:max-w-xs',\n sm: 'sm:max-w-sm',\n md: 'sm:max-w-md',\n lg: 'sm:max-w-lg',\n xl: 'sm:max-w-xl',\n};\n\nconst Drawer: FC<DrawerProps> = ({\n visible,\n onClose,\n title,\n description,\n children,\n size = 'xl',\n placement = 'right',\n footer,\n extra,\n}) => {\n const isHorizontal = placement === 'left' || placement === 'right';\n return (\n <Sheet open={visible} onOpenChange={(open) => !open && onClose()}>\n <SheetContent\n side={placement}\n hideCloseButton\n className={cn(\n 'p-0 flex flex-col rounded-none',\n isHorizontal ? sizeMap[size] : '',\n isHorizontal ? 'w-full' : 'h-auto',\n )}\n >\n <div className=\"flex items-center justify-between px-8 py-8 border-b\">\n <div className=\"flex flex-col\">\n <span className=\"text-[20px] font-bold\">{title}</span>\n {description && (\n <h2 className=\"text-[14px] font-medium text-[#00000080]\">{description}</h2>\n )}\n </div>\n\n <div className=\"flex items-center\">\n {extra && Array.isArray(extra) ? (\n <div className=\"shrink-0\">\n {extra.map((item, index) => (\n <div key={index}>{item}</div>\n ))}\n </div>\n ) : (\n <div className=\"shrink-0\">{extra}</div>\n )}\n <div\n className=\"flex p-[10px] rounded-[6px] hover:cursor-pointer hover:bg-primary-50\"\n onClick={onClose}\n >\n <FontAwesomeIcon size=\"xl\" icon={faTimes} />\n </div>\n </div>\n </div>\n <div className=\"flex-1 overflow-auto px-8 py-8\">{children}</div>\n {footer && <div className=\"flex justify-end px-8 py-[15px] border-t\">{footer}</div>}\n </SheetContent>\n </Sheet>\n );\n};\n\nexport default Drawer;\n","import * as React from 'react';\nimport { Inbox } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nexport interface EmptyProps {\n title?: React.ReactNode;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n action?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Canon Components.html § \"Empty\" L1747 / CSS L464-468:\n * .empty { padding:48px 20px; text-align:center; color:muted-foreground; }\n * .empty .ic { font-size:48px; opacity:0.4; margin-bottom:8px; }\n * .empty .t { font-size:14px; font-weight:500; color:foreground; }\n * .empty .s { font-size:13px; margin-top:4px; }\n * .empty .acts { margin-top:14px; gap:8px; justify-content:center; }\n */\nexport const Empty = React.forwardRef<HTMLDivElement, EmptyProps>(\n ({ title = 'Sin datos', description, icon, action, className }, ref) => {\n const iconNode = icon ?? <Inbox className=\"h-12 w-12\" />;\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-col items-center justify-center px-5 py-12 text-center text-muted-foreground',\n className,\n )}\n >\n <div className=\"mb-2 flex items-center justify-center text-muted-foreground opacity-40\">\n {iconNode}\n </div>\n <div className=\"text-sm font-medium text-foreground\">{title}</div>\n {description && (\n <p className=\"mt-1 max-w-sm text-[13px] text-muted-foreground\">{description}</p>\n )}\n {action && <div className=\"mt-3.5 flex items-center justify-center gap-2\">{action}</div>}\n </div>\n );\n },\n);\nEmpty.displayName = 'Empty';\n\nexport default Empty;\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport { HoverCard as UIHoverCard, HoverCardContent, HoverCardTrigger } from '../../ui/hover-card';\n\nexport interface HoverCardProps {\n trigger: React.ReactNode;\n children: React.ReactNode;\n side?: 'top' | 'right' | 'bottom' | 'left';\n align?: 'start' | 'center' | 'end';\n openDelay?: number;\n closeDelay?: number;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n asChild?: boolean;\n}\n\nexport const HoverCard = React.forwardRef<HTMLDivElement, HoverCardProps>(\n (\n {\n trigger,\n children,\n side = 'bottom',\n align = 'center',\n openDelay = 200,\n closeDelay = 150,\n open,\n defaultOpen,\n onOpenChange,\n className,\n asChild = true,\n },\n ref,\n ) => {\n return (\n <UIHoverCard\n openDelay={openDelay}\n closeDelay={closeDelay}\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n <HoverCardTrigger asChild={asChild}>{trigger}</HoverCardTrigger>\n <HoverCardContent ref={ref} side={side} align={align} className={cn(className)}>\n {children}\n </HoverCardContent>\n </UIHoverCard>\n );\n },\n);\nHoverCard.displayName = 'HoverCard';\n\nexport default HoverCard;\n","import { createContext, forwardRef, useContext } from 'react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { ListItemProps, ListSize } from './interface';\n\n/**\n * Context que `List` provee para propagar `size` a cada `ListItem`.\n * Si un `ListItem` se usa fuera de `List`, recibe `'default'`.\n */\nexport const ListSizeContext = createContext<ListSize>('default');\n\n/** Canon Components.html `.list-item` + modificadores `.list-sm` / `.list-lg`. */\nconst SIZE_CLASSES: Record<ListSize, string> = {\n // .list-sm .list-item { padding:8px 12px; gap:10px; }\n small: 'gap-2.5 px-3 py-2 [&_.li-title]:text-[13px]',\n // canon default: padding 14px 16px; gap 14px\n default: 'gap-3.5 px-4 py-3.5',\n // .list-lg .list-item { padding:18px 18px; }\n large: 'gap-4 px-4 py-4',\n};\n\n/**\n * Canon `.list-item` (Components.html L570):\n * display:flex; align-items:center; gap:14px; padding:14px 16px;\n * border-bottom:1px solid border; hover:bg-muted/40\n *\n * Estructura: [list-meta (avatar + body[title/desc])] [list-extra] [list-actions]\n */\nexport const ListItem = forwardRef<HTMLDivElement, ListItemProps>(function ListItem(\n { avatar, title, description, extra, actions, children, className, ...rest },\n ref,\n) {\n const hasSlots = Boolean(avatar || title || description || extra || actions);\n const size = useContext(ListSizeContext);\n\n return (\n <div\n ref={ref}\n data-list-item\n className={cn(\n 'flex items-center border-b border-border transition-colors last:border-b-0 hover:bg-muted/40',\n SIZE_CLASSES[size],\n className,\n )}\n {...rest}\n >\n {hasSlots ? (\n <>\n {/* .list-meta */}\n <div className=\"flex min-w-0 flex-1 items-center gap-3\">\n {avatar && <div className=\"shrink-0\">{avatar}</div>}\n {(title || description) && (\n <div className=\"min-w-0 flex-1\">\n {title && (\n <h4 className=\"li-title m-0 truncate text-sm font-semibold text-foreground\">\n {title}\n </h4>\n )}\n {description && (\n <p className=\"m-0 mt-0.5 text-[12.5px] leading-snug text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n )}\n </div>\n\n {/* .list-extra */}\n {extra !== undefined && extra !== null && (\n <div className=\"shrink-0 text-[13px] text-muted-foreground\">{extra}</div>\n )}\n\n {/* .list-actions */}\n {actions !== undefined && actions !== null && (\n <div className=\"flex shrink-0 items-center gap-1.5\">{actions}</div>\n )}\n </>\n ) : (\n // Modo libre: el consumer renderiza lo que quiera\n children\n )}\n </div>\n );\n});\n\nListItem.displayName = 'List.Item';\n","import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { ListProps } from './interface';\nimport { ListItem, ListSizeContext } from './ListItem';\n\n/**\n * Canon `.list` (Components.html § \"List\" L2007):\n * display:flex; flex-direction:column;\n * .bordered → border + rounded-md (6 px) + overflow-hidden\n * .list-header/.list-footer → padding 12px 16px text-[13px] muted-foreground bg-muted/40\n *\n * Sizes: propagados a cada `ListItem` vía `ListSizeContext` (no via CSS descendiente,\n * evita conflictos de especificidad).\n */\n\nconst ListBase = forwardRef<HTMLDivElement, ListProps>(function List(\n {\n data,\n renderItem,\n children,\n header,\n footer,\n bordered = false,\n size = 'default',\n maxVisibleItems,\n readMoreLabel = '',\n onReadMoreClick,\n className,\n ...rest\n },\n ref,\n) {\n // Modo legacy: data + renderItem (admin).\n const visibleItems = data && maxVisibleItems ? data.slice(0, maxVisibleItems) : data;\n const hiddenCount =\n data && maxVisibleItems && data.length > maxVisibleItems ? data.length - maxVisibleItems : 0;\n\n return (\n <ListSizeContext.Provider value={size}>\n <div\n ref={ref}\n className={cn(\n 'flex w-full flex-col bg-card text-card-foreground',\n bordered && 'overflow-hidden rounded-md border border-border',\n className,\n )}\n {...rest}\n >\n {header !== undefined && header !== null && (\n <div className=\"border-b border-border bg-muted/40 px-4 py-3 text-[13px] text-muted-foreground\">\n {header}\n </div>\n )}\n\n {/* Modo declarativo: children = <List.Item /> */}\n {children}\n\n {/* Modo legacy: data + renderItem */}\n {visibleItems?.map((item, index) => (\n <ListItem key={item.key ?? index}>\n {renderItem ? renderItem(item, index) : (item.label ?? item.name ?? item.value)}\n </ListItem>\n ))}\n\n {hiddenCount > 0 && (\n <button\n type=\"button\"\n onClick={onReadMoreClick}\n className=\"border-b border-border px-4 py-3 text-left text-[13px] text-muted-foreground transition-colors last:border-b-0 hover:bg-muted/40 hover:text-foreground\"\n >\n +{hiddenCount}\n {readMoreLabel ? `, ${readMoreLabel}` : ''}\n </button>\n )}\n\n {footer !== undefined && footer !== null && (\n <div className=\"border-t border-border bg-muted/40 px-4 py-3 text-[13px] text-muted-foreground\">\n {footer}\n </div>\n )}\n </div>\n </ListSizeContext.Provider>\n );\n});\n\nListBase.displayName = 'List';\n\ntype ListComponent = ForwardRefExoticComponent<ListProps & RefAttributes<HTMLDivElement>> & {\n Item: typeof ListItem;\n};\n\nexport const List = ListBase as ListComponent;\nList.Item = ListItem;\n","import { Button } from '../../atoms/Button';\nimport { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '../../ui/dialog';\n\ninterface ModalProps {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n deleteData: () => void;\n}\n\nconst DeleteModal: React.FC<ModalProps> = ({ isOpen, setIsOpen, deleteData }) => {\n return (\n <Dialog open={isOpen} onOpenChange={setIsOpen}>\n <DialogContent className=\"bg-white rounded-md\">\n <DialogHeader>\n <DialogTitle>Eliminar</DialogTitle>\n </DialogHeader>\n <div className=\"py-2\">\n <p>Esta seguro que desea eliminar ese registro?</p>\n </div>\n <DialogFooter>\n <Button variant=\"light\" onPress={() => setIsOpen(false)}>\n Cancelar\n </Button>\n <Button color=\"primary\" onPress={deleteData}>\n Eliminar\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default DeleteModal;\n","import { ReactNode } from 'react';\n\nimport { Button } from '../../atoms/Button';\nimport { cn } from '../../lib/cn';\nimport { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '../../ui/dialog';\n\ninterface ModalProps {\n visible: boolean;\n onClose: () => void;\n title?: string;\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '5xl';\n children?: ReactNode;\n footer?: ReactNode;\n}\n\nconst sizeMap: Record<NonNullable<ModalProps['size']>, string> = {\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 '5xl': 'max-w-5xl',\n};\n\nconst Modal: React.FC<ModalProps> = ({\n visible,\n onClose,\n title,\n children,\n size = 'xl',\n footer,\n}) => {\n return (\n <Dialog open={visible} onOpenChange={(open) => !open && onClose()}>\n <DialogContent hideCloseButton className={cn('w-full', sizeMap[size])}>\n {title && (\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n </DialogHeader>\n )}\n <div className=\"py-2\">{children}</div>\n <DialogFooter>\n {footer}\n <Button color=\"danger\" variant=\"light\" onPress={onClose}>\n Cerrar\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default Modal;\n","import * as React from 'react';\nimport { AlertCircle } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\nimport { Button } from '../../ui/button';\nimport { Popover as UIPopover, PopoverContent, PopoverTrigger } from '../../ui/popover';\n\nexport interface PopconfirmProps {\n title: React.ReactNode;\n description?: React.ReactNode;\n okText?: string;\n cancelText?: string;\n okVariant?: 'primary' | 'danger';\n onConfirm: () => void | Promise<void>;\n onCancel?: () => void;\n icon?: React.ReactNode;\n children: React.ReactNode;\n side?: 'top' | 'right' | 'bottom' | 'left';\n align?: 'start' | 'center' | 'end';\n className?: string;\n asChild?: boolean;\n disabled?: boolean;\n}\n\nexport const Popconfirm = React.forwardRef<HTMLDivElement, PopconfirmProps>(\n (\n {\n title,\n description,\n okText = 'Confirmar',\n cancelText = 'Cancelar',\n okVariant = 'primary',\n onConfirm,\n onCancel,\n icon,\n children,\n side = 'top',\n align = 'center',\n className,\n asChild = true,\n disabled,\n },\n ref,\n ) => {\n const [open, setOpen] = React.useState(false);\n const iconNode = icon ?? <AlertCircle className=\"h-4 w-4 text-warning-600 shrink-0 mt-0.5\" />;\n\n const handleConfirm = async (): Promise<void> => {\n await onConfirm();\n setOpen(false);\n };\n\n const handleCancel = (): void => {\n onCancel?.();\n setOpen(false);\n };\n\n return (\n <UIPopover open={open} onOpenChange={disabled ? undefined : setOpen}>\n <PopoverTrigger asChild={asChild}>{children}</PopoverTrigger>\n <PopoverContent ref={ref} side={side} align={align} className={cn('w-72 p-3', className)}>\n <div className=\"flex gap-2 mb-3\">\n {iconNode}\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm font-medium text-default-900\">{title}</div>\n {description && <p className=\"text-xs text-default-700 mt-1\">{description}</p>}\n </div>\n </div>\n <div className=\"flex justify-end gap-2\">\n <Button variant=\"ghost\" size=\"sm\" onClick={handleCancel}>\n {cancelText}\n </Button>\n <Button\n variant={okVariant === 'danger' ? 'destructive' : 'default'}\n size=\"sm\"\n onClick={() => {\n void handleConfirm();\n }}\n >\n {okText}\n </Button>\n </div>\n </PopoverContent>\n </UIPopover>\n );\n },\n);\nPopconfirm.displayName = 'Popconfirm';\n\nexport default Popconfirm;\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport { Popover as UIPopover, PopoverContent, PopoverTrigger } from '../../ui/popover';\n\nexport interface PopoverProps {\n trigger: React.ReactNode;\n children: React.ReactNode;\n side?: 'top' | 'right' | 'bottom' | 'left';\n align?: 'start' | 'center' | 'end';\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n sideOffset?: number;\n asChild?: boolean;\n}\n\nexport const Popover = React.forwardRef<HTMLDivElement, PopoverProps>(\n (\n {\n trigger,\n children,\n side = 'bottom',\n align = 'center',\n open,\n defaultOpen,\n onOpenChange,\n className,\n sideOffset = 4,\n asChild = true,\n },\n ref,\n ) => {\n return (\n <UIPopover open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n <PopoverTrigger asChild={asChild}>{trigger}</PopoverTrigger>\n <PopoverContent\n ref={ref}\n side={side}\n align={align}\n sideOffset={sideOffset}\n className={cn(className)}\n >\n {children}\n </PopoverContent>\n </UIPopover>\n );\n },\n);\nPopover.displayName = 'Popover';\n\nexport default Popover;\n","import { cva } from 'class-variance-authority';\n\n/**\n * Segmented — control tipo \"tabs pill\" inspirado en `.segmented*` del canon\n * `Components.html` (línea ~1498).\n *\n * Estructura visual:\n * - Shell: `bg-muted rounded-md p-1` (track suave + padding del thumb).\n * - Item activo: `bg-background text-foreground shadow-sm` (thumb blanco\n * que flota sobre el track).\n * - Item inactivo: `text-muted-foreground` con hover a `text-foreground`.\n *\n * Sizes (alto del shell incluye p-1 = 8px; alto del item = shell - 8px):\n * - sm: shell h-8 / item h-6 / text-xs.\n * - md: shell h-10 / item h-8 / text-sm.\n * - lg: shell h-12 / item h-10 / text-base.\n */\nexport const segmentedRootVariants = cva(\n 'inline-flex items-center bg-muted rounded-md p-1 gap-0.5',\n {\n variants: {\n size: { sm: 'h-8', md: 'h-10', lg: 'h-12' },\n fullWidth: { true: 'flex w-full', false: '' },\n },\n defaultVariants: { size: 'md', fullWidth: false },\n },\n);\n\nexport const segmentedItemVariants = cva(\n 'inline-flex items-center justify-center gap-1.5 rounded-sm font-medium transition-all whitespace-nowrap focus:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50 disabled:cursor-not-allowed',\n {\n variants: {\n size: {\n sm: 'h-6 px-2.5 text-xs',\n md: 'h-8 px-3 text-sm',\n lg: 'h-10 px-4 text-base',\n },\n active: {\n true: 'bg-background text-foreground shadow-sm',\n false: 'text-muted-foreground hover:text-foreground',\n },\n fullWidth: { true: 'flex-1', false: '' },\n },\n defaultVariants: { size: 'md', active: false, fullWidth: false },\n },\n);\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { SegmentedProps } from './Segmented.types';\nimport { segmentedItemVariants, segmentedRootVariants } from './Segmented.variants';\n\nfunction SegmentedInner<T extends string>(\n {\n value,\n onChange,\n options,\n size = 'md',\n disabled,\n fullWidth = false,\n className,\n }: SegmentedProps<T>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <div\n ref={ref}\n role=\"radiogroup\"\n className={cn(segmentedRootVariants({ size, fullWidth }), className)}\n >\n {options.map((option) => {\n const isActive = option.value === value;\n const isDisabled = disabled || option.disabled;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n aria-checked={isActive}\n disabled={isDisabled}\n onClick={() => onChange(option.value)}\n className={segmentedItemVariants({ size, active: isActive, fullWidth })}\n >\n {option.icon}\n {option.label}\n </button>\n );\n })}\n </div>\n );\n}\n\nexport const Segmented = React.forwardRef(SegmentedInner) as <T extends string = string>(\n props: SegmentedProps<T> & { ref?: React.ForwardedRef<HTMLDivElement> },\n) => React.ReactElement;\n\n(Segmented as unknown as { displayName: string }).displayName = 'Segmented';\n\nexport default Segmented;\n","import * as React from 'react';\nimport { TrendingDown, TrendingUp } from 'lucide-react';\n\nimport { cn } from '../../lib/cn';\n\nexport interface StatisticProps {\n title: React.ReactNode;\n value: number | string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n precision?: number;\n trend?: 'up' | 'down';\n trendValue?: React.ReactNode;\n loading?: boolean;\n formatter?: (value: number | string) => string;\n className?: string;\n valueClassName?: string;\n}\n\nfunction formatValue(\n value: number | string,\n precision?: number,\n formatter?: (v: number | string) => string,\n): string {\n if (formatter) return formatter(value);\n if (typeof value === 'number' && precision !== undefined) {\n return value.toFixed(precision);\n }\n return String(value);\n}\n\nexport const Statistic = React.forwardRef<HTMLDivElement, StatisticProps>(\n (\n {\n title,\n value,\n prefix,\n suffix,\n precision,\n trend,\n trendValue,\n loading,\n formatter,\n className,\n valueClassName,\n },\n ref,\n ) => {\n const formatted = formatValue(value, precision, formatter);\n const trendColor =\n trend === 'up' ? 'text-success-600' : trend === 'down' ? 'text-danger-600' : '';\n const TrendIcon = trend === 'up' ? TrendingUp : trend === 'down' ? TrendingDown : null;\n\n return (\n <div ref={ref} className={cn('flex flex-col gap-1', className)}>\n <div className=\"text-sm text-default-700\">{title}</div>\n {loading ? (\n <div className=\"h-8 w-24 rounded bg-default-100 animate-pulse\" />\n ) : (\n <div\n className={cn(\n 'text-3xl font-bold text-default-900 flex items-baseline gap-1',\n valueClassName,\n )}\n >\n {prefix && <span className=\"text-xl text-default-700\">{prefix}</span>}\n <span>{formatted}</span>\n {suffix && <span className=\"text-base text-default-700 font-normal\">{suffix}</span>}\n </div>\n )}\n {trend && trendValue && (\n <div className={cn('flex items-center gap-1 text-xs font-medium', trendColor)}>\n {TrendIcon && <TrendIcon className=\"h-3 w-3\" />}\n <span>{trendValue}</span>\n </div>\n )}\n </div>\n );\n },\n);\nStatistic.displayName = 'Statistic';\n\nexport default Statistic;\n","// variantsTailwind.tsx · Steps tokens semánticos, alineados a Components.html canon\n// Estados: wait | process | finish | error. Colores primary (verde bosque), default y destructive.\n\nimport { cva } from 'class-variance-authority';\n\n/** Tamaños del círculo (snum). md = 28px = canon HTML. */\nexport const snumVariants = cva(\n 'inline-flex items-center justify-center rounded-full border-2 font-semibold shrink-0 transition-colors',\n {\n variants: {\n size: {\n sm: 'w-6 h-6 text-[11px]',\n md: 'w-7 h-7 text-[13px]',\n lg: 'w-9 h-9 text-[14px]',\n },\n status: {\n wait: 'border-default-300 bg-white text-default-500',\n process: 'border-primary-500 bg-white text-primary-500',\n finish: 'border-primary-500 bg-primary-500 text-white',\n error: 'border-destructive bg-white text-destructive',\n },\n },\n defaultVariants: { size: 'md', status: 'wait' },\n },\n);\n\n/** Label (sttl). */\nexport const sttlVariants = cva('text-sm font-medium leading-tight', {\n variants: {\n status: {\n wait: 'text-default-500',\n process: 'text-foreground font-semibold',\n finish: 'text-foreground',\n error: 'text-destructive',\n },\n },\n defaultVariants: { status: 'wait' },\n});\n\n/** Línea conectora entre pasos. */\nexport const connectorVariants = cva('shrink-0 transition-colors', {\n variants: {\n direction: {\n horizontal: 'flex-1 h-px mx-3',\n vertical: 'w-px self-stretch mx-auto my-1',\n },\n /** El connector toma color del paso *anterior*: si está finish, va en primary. */\n active: {\n true: 'bg-primary-500',\n false: 'bg-default-300',\n },\n },\n defaultVariants: { direction: 'horizontal', active: false },\n});\n\n/** Tamaño del icono de check / error embebido en el círculo. */\nexport const stepIconSize: Record<'sm' | 'md' | 'lg', string> = {\n sm: 'w-3 h-3',\n md: 'w-3.5 h-3.5',\n lg: 'w-4 h-4',\n};\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { StepInterface, StepsSize, StepStatus } from './interfaces';\nimport { snumVariants, stepIconSize, sttlVariants } from './variantsTailwind';\n\nexport interface StepProps {\n item: StepInterface;\n index: number;\n status: StepStatus;\n size: StepsSize;\n clickable: boolean;\n onSelect?: (index: number) => void;\n}\n\nconst CheckIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg\n className={className}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M3.5 8.5l3 3 6-6\" />\n </svg>\n);\n\nconst ErrorIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg\n className={className}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M8 4v5\" />\n <circle cx=\"8\" cy=\"12\" r=\"0.6\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n);\n\nexport const Step: React.FC<StepProps> = ({ item, index, status, size, clickable, onSelect }) => {\n const disabled = item.disabled === true;\n const interactive = clickable && !disabled;\n\n const renderSnumContent = () => {\n if (item.icon) return item.icon;\n if (status === 'finish') return <CheckIcon className={stepIconSize[size]} />;\n if (status === 'error') return <ErrorIcon className={stepIconSize[size]} />;\n return <span>{index + 1}</span>;\n };\n\n const handleClick = () => {\n if (interactive) onSelect?.(index);\n };\n\n return (\n <div\n role={interactive ? 'button' : undefined}\n tabIndex={interactive ? 0 : undefined}\n onClick={interactive ? handleClick : undefined}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleClick();\n }\n }\n : undefined\n }\n aria-current={status === 'process' ? 'step' : undefined}\n aria-disabled={disabled || undefined}\n className={cn(\n 'flex items-center gap-2.5 min-w-0',\n interactive &&\n 'cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 rounded-md',\n disabled && 'opacity-50 pointer-events-none',\n )}\n >\n <span className={snumVariants({ size, status })}>{renderSnumContent()}</span>\n <div className=\"min-w-0 flex flex-col\">\n <span className={sttlVariants({ status })}>{item.title}</span>\n {item.description && (\n <span className=\"text-xs text-default-500 mt-0.5 leading-tight\">{item.description}</span>\n )}\n </div>\n </div>\n );\n};\n\nexport default Step;\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { StepInterface, StepsProps, StepStatus } from './interfaces';\nimport { Step } from './Step';\nimport { connectorVariants } from './variantsTailwind';\n\nfunction resolveStatus(item: StepInterface, index: number, current: number): StepStatus {\n if (item.status) return item.status;\n if (index < current) return 'finish';\n if (index === current) return 'process';\n return 'wait';\n}\n\nexport const Steps = React.forwardRef<HTMLDivElement, StepsProps>(\n ({ items, current = 0, onChange, direction = 'horizontal', size = 'md', className }, ref) => {\n const isHorizontal = direction === 'horizontal';\n const clickable = typeof onChange === 'function';\n\n return (\n <div\n ref={ref}\n role=\"list\"\n aria-label=\"Progress steps\"\n className={cn(\n 'flex w-full',\n isHorizontal ? 'items-center' : 'flex-col items-stretch',\n className,\n )}\n >\n {items.map((item, idx) => {\n const status = resolveStatus(item, idx, current);\n const isLast = idx === items.length - 1;\n // Conector entre este paso y el siguiente:\n // activo (primary) si el paso actual ya está finish.\n const connectorActive = status === 'finish';\n\n return (\n <React.Fragment key={item.key}>\n <div\n role=\"listitem\"\n className={cn(\n 'min-w-0',\n isHorizontal ? 'flex items-center shrink-0' : 'flex flex-row items-start',\n )}\n >\n <Step\n item={item}\n index={idx}\n status={status}\n size={size}\n clickable={clickable}\n onSelect={onChange}\n />\n </div>\n\n {!isLast && (\n <span\n aria-hidden=\"true\"\n className={connectorVariants({\n direction,\n active: connectorActive,\n })}\n />\n )}\n </React.Fragment>\n );\n })}\n </div>\n );\n },\n);\n\nSteps.displayName = 'Steps';\n\nexport default Steps;\n","import React from 'react';\n\nexport type ColumnProps = {\n title: React.ReactNode;\n dataIndex?: string;\n key: string;\n render?: (value: unknown, record: unknown, rowIndex: number) => React.ReactNode;\n width?: number | string;\n ellipsis?: boolean;\n align?: 'left' | 'center' | 'right';\n /** Enables click-to-sort on this column header. Cycles null → asc → desc → null. */\n sortable?: boolean;\n};\n\nconst Column: React.FC<ColumnProps> = () => null;\n\nexport default Column;\n","import { FC } from 'react';\n\nimport { Pagination } from '../../atoms/Pagination';\n\nexport interface PaginationTableProps {\n pageSize?: number;\n pageSizeOptions?: number[];\n initialPage?: number;\n totalItems?: number;\n totalPages?: number;\n onPageChange?: (page: number) => void;\n onPageSizeChange?: (page: number, pageSize: number) => void;\n paginatedData: unknown[];\n currentPage?: number;\n}\n\nexport const TablePagination: FC<PaginationTableProps> = (props) => {\n const {\n totalItems = 0,\n currentPage = 1,\n onPageChange,\n onPageSizeChange,\n pageSize = 10,\n pageSizeOptions = [10, 15, 20],\n } = props;\n\n const hasSizeOptions = pageSizeOptions && pageSizeOptions.length > 1;\n\n return (\n <div className=\"bg-content1 flex justify-between items-center min-h-[48px] rounded-lg py-3 px-4\">\n <Pagination\n total={totalItems}\n current={currentPage}\n defaultCurrent={1}\n pageSize={pageSize}\n defaultPageSize={pageSize}\n pageSizeOptions={pageSizeOptions ?? [10, 15, 20]}\n showSizeChanger={Boolean(hasSizeOptions && onPageSizeChange)}\n showTotal={(total, [from, to]) => `Mostrando ${from}-${to} de ${total}`}\n onChange={(page, size) => {\n onPageChange?.(page);\n if (size !== pageSize) onPageSizeChange?.(page, size);\n }}\n onShowSizeChange={onPageSizeChange}\n responsive\n size=\"small\"\n />\n </div>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport type { ColumnProps } from './Column';\n\nexport interface MobileCardsProps<T> {\n data: T[];\n columns: ColumnProps[];\n rowKey: (record: T) => string | number;\n onRow?: (record: T, rowIndex: number) => { onClick?: () => void; [key: string]: unknown };\n selectedRowKeys?: Array<string | number>;\n}\n\nexport function MobileCards<T extends Record<string, unknown>>({\n data,\n columns,\n rowKey,\n onRow,\n selectedRowKeys = [],\n}: MobileCardsProps<T>): React.ReactElement {\n const visibleColumns = columns.filter((col) => col.dataIndex !== 'expanden');\n\n return (\n <div className=\"flex flex-col gap-3\">\n {data.map((record, rowIndex) => {\n const rawKey = rowKey(record);\n const key = rawKey === undefined || rawKey === null || rawKey === '' ? rowIndex : rawKey;\n const rowProps = onRow?.(record, rowIndex) || {};\n const isSelected = selectedRowKeys.includes(rawKey);\n\n return (\n <div\n key={key}\n role={rowProps.onClick ? 'button' : undefined}\n tabIndex={rowProps.onClick ? 0 : undefined}\n onClick={() => rowProps.onClick?.()}\n onKeyDown={(e) => {\n if (!rowProps.onClick) return;\n if (e.key === 'Enter' || e.key === ' ') rowProps.onClick();\n }}\n className={clsx(\n 'w-full border border-border bg-background p-4 transition-colors',\n isSelected && 'bg-primary-50',\n rowProps.onClick && 'hover:bg-default-100/60 cursor-pointer',\n )}\n >\n <div className=\"flex flex-col gap-2\">\n {visibleColumns.map((col, colIndex) => {\n const value = col.dataIndex ? record[col.dataIndex] : undefined;\n const content = col.render?.(value, record, rowIndex) ?? value;\n return (\n <div\n key={`${key}-${col.key}-${colIndex}`}\n className={clsx(\n 'flex gap-4',\n !col.title && (col.align === 'center' ? 'justify-center' : 'justify-end'),\n )}\n >\n {col.title && (\n <div className=\"min-w-[110px] text-xs font-semibold text-muted-foreground\">\n {col.title}\n </div>\n )}\n <div\n className={clsx(\n 'text-xs text-foreground break-words',\n col.align === 'center' && 'text-center',\n col.align === 'right' && 'text-right',\n )}\n >\n {content as React.ReactNode}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n\nexport default MobileCards;\n","import type { ColumnProps } from './Column';\n\nexport type SortDirection = 'asc' | 'desc' | null;\n\nexport interface SortState {\n key: string | null;\n direction: SortDirection;\n}\n\nexport const NEXT_SORT: Record<Exclude<SortDirection, null> | 'null', SortDirection> = {\n null: 'asc',\n asc: 'desc',\n desc: null,\n};\n\nexport function cycleSort(current: SortDirection): SortDirection {\n if (current === null) return 'asc';\n if (current === 'asc') return 'desc';\n return null;\n}\n\ntype RecordValue = string | number | boolean | null | undefined | Date;\n\nfunction compareValues(a: RecordValue, b: RecordValue): number {\n if (a === b) return 0;\n if (a === null || a === undefined) return -1;\n if (b === null || b === undefined) return 1;\n if (typeof a === 'number' && typeof b === 'number') return a - b;\n if (a instanceof Date && b instanceof Date) return a.getTime() - b.getTime();\n return String(a).localeCompare(String(b));\n}\n\nexport function sortData<T extends Record<string, unknown>>(\n data: T[],\n sortState: SortState,\n columns: ColumnProps[],\n): T[] {\n if (!sortState.key || !sortState.direction) return data;\n const column = columns.find((c) => c.key === sortState.key);\n if (!column?.dataIndex) return data;\n const dataIndex = column.dataIndex;\n const factor = sortState.direction === 'asc' ? 1 : -1;\n return [...data].sort((a, b) => {\n const va = a[dataIndex] as RecordValue;\n const vb = b[dataIndex] as RecordValue;\n return compareValues(va, vb) * factor;\n });\n}\n\nexport type Density = 'compact' | 'default' | 'comfortable';\n\nexport const DENSITY_TH: Record<Density, string> = {\n compact: 'px-3 py-1.5',\n default: 'px-4 py-3',\n comfortable: 'px-4 py-4',\n};\n\nexport const DENSITY_TD: Record<Density, string> = {\n compact: 'px-3 py-1.5',\n default: 'px-4 py-3',\n comfortable: 'px-4 py-4',\n};\n","import React, { ReactNode } from 'react';\nimport clsx from 'clsx';\nimport { ArrowDown, ArrowUp, ArrowUpDown } from 'lucide-react';\n\nimport type { ColumnProps } from './Column';\nimport { Density, DENSITY_TD, DENSITY_TH, SortState } from './utils';\n\ntype RecordType = Record<string, unknown>;\ntype RowKey = string | number;\n\nfunction alignClass(align: ColumnProps['align']): string {\n return align === 'center' ? 'text-center' : align === 'right' ? 'text-right' : 'text-left';\n}\n\ninterface TableHeadProps {\n columns: ColumnProps[];\n density: Density;\n sortState: SortState;\n onSort: (key: string) => void;\n}\n\nexport const TableHead: React.FC<TableHeadProps> = ({ columns, density, sortState, onSort }) => (\n <thead>\n <tr>\n {columns.map((col) => {\n const isSorted = sortState.key === col.key;\n const dir = isSorted ? sortState.direction : null;\n const SortIcon = dir === 'asc' ? ArrowUp : dir === 'desc' ? ArrowDown : ArrowUpDown;\n return (\n <th\n key={col.key}\n scope=\"col\"\n style={{ width: col.width }}\n className={clsx(\n DENSITY_TH[density],\n 'bg-muted text-foreground border-b border-border whitespace-nowrap',\n 'text-[12.5px] font-semibold tracking-wide',\n alignClass(col.align),\n col.sortable && 'cursor-pointer select-none group',\n )}\n onClick={col.sortable ? () => onSort(col.key) : undefined}\n aria-sort={isSorted && dir ? (dir === 'asc' ? 'ascending' : 'descending') : undefined}\n >\n <span className=\"inline-flex items-center gap-1.5 align-middle\">\n {col.title}\n {col.sortable && (\n <SortIcon\n className={clsx(\n 'h-3.5 w-3.5',\n isSorted\n ? 'text-foreground opacity-100'\n : 'text-muted-foreground opacity-0 group-hover:opacity-100',\n )}\n aria-hidden\n />\n )}\n </span>\n </th>\n );\n })}\n </tr>\n </thead>\n);\n\ninterface TableBodyProps<T extends RecordType> {\n data: T[];\n columns: ColumnProps[];\n density: Density;\n variant?: 'default' | 'striped';\n rowKey: (record: T) => RowKey;\n selectedRowKeys: RowKey[];\n onRow?: (record: T, rowIndex: number) => { onClick?: () => void; [key: string]: unknown };\n}\n\nexport function TableBody<T extends RecordType>({\n data,\n columns,\n density,\n variant,\n rowKey,\n selectedRowKeys,\n onRow,\n}: TableBodyProps<T>): React.ReactElement {\n return (\n <tbody>\n {data.map((record, rowIndex) => {\n const k = rowKey(record);\n const rowProps = onRow?.(record, rowIndex) ?? {};\n const isSelected = selectedRowKeys.includes(k);\n const striped =\n variant === 'striped' && rowIndex % 2 === 0 ? 'bg-default-50' : 'bg-background';\n return (\n <tr\n key={k}\n onClick={() => rowProps.onClick?.()}\n className={clsx(\n 'transition-colors border-b border-border last:border-b-0',\n isSelected ? 'bg-primary-50' : striped,\n 'hover:bg-default-100/60',\n rowProps.onClick && 'cursor-pointer',\n )}\n >\n {columns.map((col) => {\n const value = col.dataIndex ? record[col.dataIndex] : undefined;\n const content = col.render?.(value, record, rowIndex) ?? value;\n return (\n <td\n key={`${k}-${col.key}`}\n style={{ width: col.width }}\n className={clsx(\n DENSITY_TD[density],\n 'text-foreground align-middle',\n alignClass(col.align),\n col.ellipsis && 'truncate max-w-0',\n )}\n >\n {content as ReactNode}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n );\n}\n","import React, { ReactElement, ReactNode, useMemo, useState } from 'react';\n\nimport { Spinner } from '../../atoms/Spinners';\nimport { usePagination } from '../../hooks/usePagination';\nimport { useResponsive } from '../../hooks/useResponsive';\nimport { cn } from '../../lib/cn';\n\nimport { Empty } from '../Empty';\n\nimport Column, { ColumnProps } from './Column';\nimport MobileCards from './MobileCards';\nimport { PaginationTableProps, TablePagination } from './Pagination';\nimport { TableBody, TableHead } from './TableParts';\nimport { cycleSort, Density, sortData, SortState } from './utils';\n\ntype RecordType = Record<string, unknown>;\ntype RowKey = string | number;\n\ninterface TableUIProps<T extends RecordType = RecordType> {\n dataSource: T[];\n children: ReactNode;\n variant?: 'default' | 'striped';\n density?: Density;\n pagination?: PaginationTableProps;\n loading?: boolean;\n emptyText?: ReactNode;\n rowKey?: (record: T) => RowKey;\n ariaLabel?: string;\n selectedRowKeys?: RowKey[];\n onRow?: (record: T, rowIndex: number) => { onClick?: () => void; [key: string]: unknown };\n expandedRowRender?: (record: T) => ReactNode;\n bordered?: boolean;\n}\n\nfunction TableUI<T extends RecordType = RecordType>({\n dataSource,\n children,\n pagination,\n loading,\n variant,\n density = 'default',\n emptyText = 'No hay registros',\n rowKey = (record) => record.key as RowKey,\n ariaLabel = 'Table',\n selectedRowKeys = [],\n onRow,\n bordered = false,\n}: TableUIProps<T>): React.ReactElement {\n const { isMobile, isTablet } = useResponsive();\n const [sortState, setSortState] = useState<SortState>({ key: null, direction: null });\n\n const columns: ColumnProps[] = React.Children.toArray(children)\n .filter((child): child is ReactElement<ColumnProps> => {\n return React.isValidElement(child) && child.type === Column;\n })\n .map((child) => child.props)\n .filter((c) => c.dataIndex !== 'expanden');\n\n const sortedData = useMemo(\n () => sortData(dataSource, sortState, columns),\n [dataSource, sortState, columns],\n );\n\n const pageSizeProp = pagination?.pageSize || sortedData.length || 1;\n const { currentPage, paginatedData, total, totalPages, pageSize, onPageChange } = usePagination({\n data: sortedData,\n pageSize: pageSizeProp,\n initialPage: 1,\n });\n\n const handleSort = (key: string): void => {\n setSortState((prev) => ({\n key,\n direction: prev.key === key ? cycleSort(prev.direction) : 'asc',\n }));\n };\n\n const emptyNode = <Empty title={typeof emptyText === 'string' ? emptyText : 'Sin datos'} />;\n const isEmpty = sortedData.length === 0 && !loading;\n\n if (isMobile || isTablet) {\n return (\n <>\n {loading ? (\n <Spinner label=\"Cargando...\" />\n ) : isEmpty ? (\n emptyNode\n ) : (\n <MobileCards<T>\n data={paginatedData as T[]}\n columns={columns}\n rowKey={rowKey}\n onRow={onRow}\n selectedRowKeys={selectedRowKeys}\n />\n )}\n {pagination && (\n <TablePagination\n totalItems={total}\n totalPages={totalPages}\n paginatedData={paginatedData}\n currentPage={currentPage}\n pageSize={pageSize}\n pageSizeOptions={pagination.pageSizeOptions}\n onPageChange={onPageChange}\n />\n )}\n </>\n );\n }\n\n return (\n <>\n <div\n className={cn(\n 'w-full overflow-x-auto relative',\n bordered && 'border border-border rounded-lg overflow-hidden',\n )}\n aria-label={ariaLabel}\n >\n <table className=\"w-full border-collapse text-sm\">\n <TableHead\n columns={columns}\n density={density}\n sortState={sortState}\n onSort={handleSort}\n />\n {isEmpty ? (\n <tbody>\n <tr>\n <td colSpan={columns.length} className=\"p-0\">\n {emptyNode}\n </td>\n </tr>\n </tbody>\n ) : (\n <TableBody<T>\n data={paginatedData as T[]}\n columns={columns}\n density={density}\n variant={variant}\n rowKey={rowKey}\n selectedRowKeys={selectedRowKeys}\n onRow={onRow}\n />\n )}\n </table>\n {loading && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-background/60 backdrop-blur-[1px]\">\n <Spinner label=\"Cargando...\" />\n </div>\n )}\n </div>\n {pagination && (\n <TablePagination\n totalItems={total}\n totalPages={totalPages}\n paginatedData={paginatedData}\n currentPage={currentPage}\n pageSize={pageSize}\n pageSizeOptions={pagination.pageSizeOptions}\n onPageChange={onPageChange}\n />\n )}\n </>\n );\n}\n\nexport default TableUI;\n","import { cva } from 'class-variance-authority';\n\n/**\n * Variantes Tabs:\n * - `card` (default · canon Components.html) — pill list `bg-muted` con item\n * activo `bg-background text-foreground font-semibold shadow-sm`.\n * - `line` (extensión) — bottom-border subrayado tipo nav-tabs.\n * - `pill` (extensión) — versión pill-full para filtros.\n */\nexport const tabsListVariants = cva('inline-flex items-center', {\n variants: {\n variant: {\n line: 'border-b border-default-200 bg-transparent rounded-none p-0 gap-1',\n card: 'bg-muted rounded-md p-[3px] gap-[2px]',\n pill: 'bg-muted rounded-full p-[3px] gap-[2px]',\n },\n size: {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: { variant: 'card', size: 'md' },\n});\n\nexport const tabsTriggerVariants = cva(\n 'inline-flex items-center gap-2 whitespace-nowrap font-medium 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',\n {\n variants: {\n variant: {\n line: 'rounded-none border-b-2 border-transparent px-3 py-2 text-muted-foreground hover:text-foreground data-[state=active]:border-primary data-[state=active]:text-primary data-[state=active]:font-semibold',\n card: 'rounded-sm px-3.5 py-1.5 text-muted-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:font-semibold data-[state=active]:shadow-sm',\n pill: 'rounded-full px-4 py-1.5 text-muted-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:font-semibold',\n },\n size: {\n sm: 'text-xs px-2.5 py-1',\n md: 'text-sm',\n lg: 'text-base px-4 py-2',\n },\n },\n defaultVariants: { variant: 'card', size: 'md' },\n },\n);\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport { Tabs as UITabs, TabsContent, TabsList, TabsTrigger } from '../../ui/tabs';\n\nimport type { TabsProps } from './Tabs.types';\nimport { tabsListVariants, tabsTriggerVariants } from './Tabs.variants';\n\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (\n {\n items,\n defaultValue,\n value,\n onChange,\n variant = 'card',\n size = 'md',\n className,\n listClassName,\n contentClassName,\n },\n ref,\n ) => {\n const initialValue = defaultValue ?? items[0]?.key;\n const rootProps =\n value !== undefined\n ? { value, onValueChange: onChange }\n : { defaultValue: initialValue, onValueChange: onChange };\n\n return (\n <UITabs ref={ref} className={cn('w-full', className)} {...rootProps}>\n <TabsList className={cn(tabsListVariants({ variant, size }), listClassName)}>\n {items.map((item) => (\n <TabsTrigger\n key={item.key}\n value={item.key}\n disabled={item.disabled}\n className={tabsTriggerVariants({ variant, size })}\n >\n {item.icon}\n {item.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {items.map((item) => (\n <TabsContent\n key={item.key}\n value={item.key}\n className={cn('text-default-700', contentClassName)}\n >\n {item.content}\n </TabsContent>\n ))}\n </UITabs>\n );\n },\n);\nTabs.displayName = 'Tabs';\n\nexport default Tabs;\n","import { cva } from 'class-variance-authority';\n\nexport const timelineDotVariants = cva(\n 'relative z-10 h-3 w-3 rounded-full border-2 bg-white shrink-0',\n {\n variants: {\n status: {\n pending: 'border-primary-500',\n 'in-progress': 'border-primary',\n done: 'border-primary-500 bg-primary-500',\n error: 'border-danger-600 bg-danger-600',\n },\n },\n defaultVariants: { status: 'pending' },\n },\n);\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\n\nimport type { TimelineItem, TimelineMode, TimelineProps } from './Timeline.types';\nimport { timelineDotVariants } from './Timeline.variants';\n\nfunction getAlignment(mode: TimelineMode, index: number): 'left' | 'right' {\n if (mode === 'left') return 'left';\n if (mode === 'right') return 'right';\n return index % 2 === 0 ? 'left' : 'right';\n}\n\ninterface TimelineItemRowProps {\n item: TimelineItem;\n isLast: boolean;\n mode: TimelineMode;\n index: number;\n}\n\nconst TimelineItemRow: React.FC<TimelineItemRowProps> = ({ item, isLast, mode, index }) => {\n const align = getAlignment(mode, index);\n const isAlternate = mode === 'alternate';\n\n return (\n <li className=\"relative flex gap-3 pb-5 last:pb-0\">\n <div className=\"relative flex flex-col items-center\">\n {item.icon ? (\n <div className=\"relative z-10 shrink-0\">{item.icon}</div>\n ) : (\n <span className={timelineDotVariants({ status: item.status ?? 'pending' })} />\n )}\n {!isLast && (\n <span className=\"absolute top-3 left-1/2 -translate-x-1/2 h-full w-0.5 bg-default-200\" />\n )}\n </div>\n <div\n className={cn('flex-1 min-w-0 -mt-0.5', isAlternate && align === 'right' && 'text-right')}\n >\n {item.time && <div className=\"text-xs text-default-700 mb-0.5\">{item.time}</div>}\n <div className=\"text-sm text-default-900\">{item.content}</div>\n </div>\n </li>\n );\n};\n\nexport const Timeline = React.forwardRef<HTMLUListElement, TimelineProps>(\n ({ items, mode = 'left', className }, ref) => {\n return (\n <ul ref={ref} className={cn('flex flex-col w-full', className)}>\n {items.map((item, idx) => (\n <TimelineItemRow\n key={item.key}\n item={item}\n isLast={idx === items.length - 1}\n mode={mode}\n index={idx}\n />\n ))}\n </ul>\n );\n },\n);\nTimeline.displayName = 'Timeline';\n\nexport default Timeline;\n","import * as React from 'react';\n\nimport { cn } from '../../lib/cn';\nimport {\n Tooltip as UITooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '../../ui/tooltip';\n\nexport interface TooltipProps {\n /** Contenido renderizado dentro del bubble flotante. */\n content: React.ReactNode;\n /** Elemento que dispara el tooltip al hover/focus. */\n children: React.ReactNode;\n side?: 'top' | 'right' | 'bottom' | 'left';\n align?: 'start' | 'center' | 'end';\n /** Delay en ms antes de abrir. Default 200ms (canon Components.html). */\n delayDuration?: number;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Clases extra sobre el `TooltipContent`. */\n className?: string;\n /**\n * Si `true` (default) el trigger usa `asChild` y NO añade un `<button>` extra,\n * delegando el evento al `children`. Pónlo a `false` sólo si el children\n * no acepta refs o handlers (texto plano, fragments, etc.).\n */\n asChild?: boolean;\n /**\n * Si la app ya monta un `<TooltipProvider>` global (recomendado para apps\n * con muchos tooltips) pasa `withProvider={false}` para evitar montar uno\n * adicional por instancia. Por defecto `true` para uso \"drop-in\" cómodo.\n *\n * NOTA: cada provider tiene su propio estado de delay/skip-delay. Sin\n * provider global, el \"skip delay\" de Radix (segundo tooltip abre sin\n * espera) no funciona entre instancias.\n */\n withProvider?: boolean;\n}\n\n/**\n * Tooltip · wrapper de conveniencia sobre `ui/tooltip` (Radix).\n *\n * Canon: `Components.html` línea ~1124, CSS `.tooltip*` / `.hcard*`.\n *\n * - Para casos puntuales: usa este wrapper tal cual.\n * - Para apps con MUCHOS tooltips: monta un `<TooltipProvider>` global en el\n * root y usa `<Tooltip withProvider={false}>` (o importa primitives desde\n * `ui/tooltip` directamente). Eso habilita el comportamiento de skip-delay\n * y evita providers redundantes.\n */\nexport const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n content,\n children,\n side = 'top',\n align = 'center',\n delayDuration = 200,\n open,\n defaultOpen,\n onOpenChange,\n className,\n asChild = true,\n withProvider = true,\n },\n ref,\n ) => {\n const tooltip = (\n <UITooltip\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n delayDuration={delayDuration}\n >\n <TooltipTrigger asChild={asChild}>{children}</TooltipTrigger>\n <TooltipContent ref={ref} side={side} align={align} className={cn(className)}>\n {content}\n </TooltipContent>\n </UITooltip>\n );\n\n if (!withProvider) return tooltip;\n\n return <TooltipProvider delayDuration={delayDuration}>{tooltip}</TooltipProvider>;\n },\n);\nTooltip.displayName = 'Tooltip';\n\nexport default Tooltip;\n"]}