@aleric.dev/ui 0.1.0 → 0.4.1

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.
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export type ButtonVariant = 'primary' | 'secondary' | 'emerald' | 'danger' | 'ghost' | 'outline';
2
+ export type ButtonVariant = 'primary' | 'secondary' | 'emerald' | 'amber' | 'danger' | 'ghost' | 'outline';
3
3
  export type ButtonSize = 'sm' | 'md' | 'lg';
4
4
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
5
5
  variant?: ButtonVariant;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ export interface StepItem {
3
+ id: string | number;
4
+ number: number;
5
+ title: string;
6
+ subtitle?: string;
7
+ badge?: React.ReactNode;
8
+ }
9
+ export interface StepTimelineProps {
10
+ steps: StepItem[];
11
+ currentStep: number;
12
+ completedSteps?: number[];
13
+ onStepClick?: (stepNumber: number) => void;
14
+ allowStepBack?: boolean;
15
+ className?: string;
16
+ }
17
+ export declare const StepTimeline: React.FC<StepTimelineProps>;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ export interface TableProps extends React.HTMLAttributes<HTMLTableElement> {
3
+ containerClassName?: string;
4
+ wrapper?: boolean;
5
+ }
6
+ export declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
7
+ export declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
8
+ export declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
9
+ export declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
10
+ export declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
11
+ export declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
12
+ export declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
13
+ export declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ export interface TabItem<T extends string = string> {
3
+ id: T;
4
+ label: React.ReactNode;
5
+ icon?: React.ReactNode;
6
+ badge?: React.ReactNode;
7
+ disabled?: boolean;
8
+ }
9
+ export type TabsVariant = 'segmented' | 'underline' | 'pills';
10
+ export type TabsSize = 'sm' | 'md' | 'lg';
11
+ export interface TabsProps<T extends string = string> {
12
+ tabs: TabItem<T>[];
13
+ activeTab: T;
14
+ onChange: (tabId: T) => void;
15
+ variant?: TabsVariant;
16
+ size?: TabsSize;
17
+ fullWidth?: boolean;
18
+ className?: string;
19
+ tabClassName?: string;
20
+ }
21
+ export declare function Tabs<T extends string = string>({ tabs, activeTab, onChange, variant, size, fullWidth, className, tabClassName, }: TabsProps<T>): React.JSX.Element;
@@ -9,3 +9,6 @@ export * from './StatusToggle';
9
9
  export * from './Modal';
10
10
  export * from './Spinner';
11
11
  export * from './SocialIcons';
12
+ export * from './StepTimeline';
13
+ export * from './Table';
14
+ export * from './Tabs';
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ export type ModalSplitRatio = '5/7' | '6/6' | '4/8' | '7/5';
3
+ export type ModalSplitMobileMode = 'tabs' | 'stack';
4
+ export interface ModalSplitLayoutProps {
5
+ /** Título de la columna izquierda (o Tab 1 en móvil) */
6
+ leftTitle: React.ReactNode;
7
+ /** Icono opcional para la columna izquierda */
8
+ leftIcon?: React.ReactNode;
9
+ /** Badge o conteo opcional para la columna izquierda */
10
+ leftBadge?: React.ReactNode;
11
+ /** Título de la columna derecha (o Tab 2 en móvil) */
12
+ rightTitle: React.ReactNode;
13
+ /** Icono opcional para la columna derecha */
14
+ rightIcon?: React.ReactNode;
15
+ /** Badge o conteo opcional para la columna derecha */
16
+ rightBadge?: React.ReactNode;
17
+ /** Relación de columnas en Desktop (>= 1024px) */
18
+ ratio?: ModalSplitRatio;
19
+ /** Comportamiento en Mobile (< 1024px): 'tabs' (pestañas segmentadas) o 'stack' (vertical fluido) */
20
+ mobileMode?: ModalSplitMobileMode;
21
+ /** Pestaña activa controlada */
22
+ activeTab?: 'left' | 'right';
23
+ /** Pestaña activa inicial si no es controlada */
24
+ defaultActiveTab?: 'left' | 'right';
25
+ /** Callback al cambiar de pestaña en móvil */
26
+ onTabChange?: (tab: 'left' | 'right') => void;
27
+ /** Contenido de la columna izquierda */
28
+ leftContent: React.ReactNode;
29
+ /** Pie o barra de botones anclada en la columna izquierda */
30
+ leftFooter?: React.ReactNode;
31
+ /** Clases adicionales para la columna izquierda */
32
+ leftClassName?: string;
33
+ /** Cabecera opcional para la columna derecha */
34
+ rightHeader?: React.ReactNode;
35
+ /** Contenido de la columna derecha */
36
+ rightContent: React.ReactNode;
37
+ /** Pie opcional para la columna derecha */
38
+ rightFooter?: React.ReactNode;
39
+ /** Clases adicionales para la columna derecha */
40
+ rightClassName?: string;
41
+ /** Clases adicionales para el contenedor raíz */
42
+ className?: string;
43
+ }
44
+ export declare const ModalSplitLayout: React.FC<ModalSplitLayoutProps>;
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ export type ModalStepRatio = '5/7' | '6/6' | '4/8' | '7/5';
3
+ export interface ModalStepPaneConfig {
4
+ title: string;
5
+ subtitle?: string;
6
+ badge?: React.ReactNode;
7
+ header?: React.ReactNode;
8
+ content: React.ReactNode;
9
+ footer?: React.ReactNode;
10
+ className?: string;
11
+ }
12
+ export interface ModalStepLayoutProps {
13
+ /** Configuración del Paso 1 (Instrucciones / Entrada) */
14
+ step1: ModalStepPaneConfig;
15
+ /** Configuración del Paso 2 (Generación / Resultados) */
16
+ step2: ModalStepPaneConfig;
17
+ /** Paso actual activo (1 o 2) */
18
+ currentStep?: 1 | 2;
19
+ /** Lista de números de pasos completados (ej. [1]) */
20
+ completedSteps?: number[];
21
+ /** Callback al cambiar de paso */
22
+ onStepChange?: (step: 1 | 2) => void;
23
+ /** Relación de columnas en Desktop (>= 1024px) */
24
+ ratio?: ModalStepRatio;
25
+ /** Clases adicionales para el contenedor raíz */
26
+ className?: string;
27
+ }
28
+ export declare const ModalStepLayout: React.FC<ModalStepLayoutProps>;
@@ -7,3 +7,5 @@ export * from './MetricStrip';
7
7
  export * from './StatusBadge';
8
8
  export * from './DatePicker';
9
9
  export * from './MarkdownRenderer';
10
+ export * from './ModalSplitLayout';
11
+ export * from './ModalStepLayout';
@@ -7,11 +7,15 @@ export interface NavItem {
7
7
  badge?: string | number;
8
8
  badgeVariant?: 'default' | 'success' | 'warning' | 'error';
9
9
  href?: string;
10
+ external?: boolean;
11
+ target?: string;
12
+ dataTour?: string;
10
13
  onClick?: () => void;
11
14
  }
12
15
  export interface NavGroup {
13
16
  id?: string;
14
17
  label?: string;
18
+ icon?: React.ReactNode;
15
19
  items: NavItem[];
16
20
  collapsible?: boolean;
17
21
  defaultCollapsed?: boolean;