siesa-ui-kit 1.0.1 → 1.0.3
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/bin/install.cjs +502 -0
- package/bin/prepare-publish.cjs +28 -0
- package/bin/restore-folders.cjs +28 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts +101 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +1 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +95 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +1 -0
- package/dist/components/DropdownItemCollapsible/icons.d.ts +19 -0
- package/dist/components/DropdownItemCollapsible/icons.d.ts.map +1 -0
- package/dist/components/DropdownItemCollapsible/index.d.ts +9 -0
- package/dist/components/DropdownItemCollapsible/index.d.ts.map +1 -0
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts +75 -0
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts.map +1 -0
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts +85 -0
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts.map +1 -0
- package/dist/components/DropdownItemHeading/icons.d.ts +48 -0
- package/dist/components/DropdownItemHeading/icons.d.ts.map +1 -0
- package/dist/components/DropdownItemHeading/index.d.ts +4 -0
- package/dist/components/DropdownItemHeading/index.d.ts.map +1 -0
- package/dist/components/LoginView/LoginView.d.ts +36 -0
- package/dist/components/LoginView/LoginView.d.ts.map +1 -0
- package/dist/components/LoginView/LoginView.types.d.ts +46 -0
- package/dist/components/LoginView/LoginView.types.d.ts.map +1 -0
- package/dist/components/LoginView/icons.d.ts +18 -0
- package/dist/components/LoginView/icons.d.ts.map +1 -0
- package/dist/components/LoginView/index.d.ts +4 -0
- package/dist/components/LoginView/index.d.ts.map +1 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts +90 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +1 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +155 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +1 -0
- package/dist/components/NavigationRailItem/index.d.ts +3 -0
- package/dist/components/NavigationRailItem/index.d.ts.map +1 -0
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts +124 -0
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts.map +1 -0
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts +154 -0
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts.map +1 -0
- package/dist/components/NavigationRailPanel/index.d.ts +3 -0
- package/dist/components/NavigationRailPanel/index.d.ts.map +1 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts +99 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +1 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +111 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +1 -0
- package/dist/components/NavigationRailTypes/icons.d.ts +58 -0
- package/dist/components/NavigationRailTypes/icons.d.ts.map +1 -0
- package/dist/components/NavigationRailTypes/index.d.ts +4 -0
- package/dist/components/NavigationRailTypes/index.d.ts.map +1 -0
- package/dist/components/SignUpView/SignUpView.d.ts +38 -0
- package/dist/components/SignUpView/SignUpView.d.ts.map +1 -0
- package/dist/components/SignUpView/SignUpView.types.d.ts +51 -0
- package/dist/components/SignUpView/SignUpView.types.d.ts.map +1 -0
- package/dist/components/SignUpView/icons.d.ts +18 -0
- package/dist/components/SignUpView/icons.d.ts.map +1 -0
- package/dist/components/SignUpView/index.d.ts +4 -0
- package/dist/components/SignUpView/index.d.ts.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/siesa-ui-kit.cjs +906 -66
- package/dist/siesa-ui-kit.cjs.map +1 -1
- package/dist/siesa-ui-kit.mjs +3547 -411
- package/dist/siesa-ui-kit.mjs.map +1 -1
- package/package.json +14 -3
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props del componente DropdownItemCollapsible
|
|
4
|
+
*
|
|
5
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-34374
|
|
6
|
+
*/
|
|
7
|
+
export interface DropdownItemCollapsibleProps {
|
|
8
|
+
/**
|
|
9
|
+
* Texto o contenido principal del item
|
|
10
|
+
* Ejemplo: "Users", "Customers", "Departments"
|
|
11
|
+
*/
|
|
12
|
+
label: string;
|
|
13
|
+
/**
|
|
14
|
+
* Icono a mostrar antes del texto (izquierda)
|
|
15
|
+
* Recomendado: 16x16px
|
|
16
|
+
*/
|
|
17
|
+
icon?: ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Items anidados que se muestran cuando el item está expandido
|
|
20
|
+
* Cada item anidado tiene label e icono opcional
|
|
21
|
+
*/
|
|
22
|
+
children?: DropdownItemCollapsibleChildProps[];
|
|
23
|
+
/**
|
|
24
|
+
* Si el item está expandido inicialmente
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
defaultOpen?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Si el item está deshabilitado
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
disabled?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Callback cuando el item se expande/contrae
|
|
35
|
+
* @param open - nuevo estado de expansión
|
|
36
|
+
*/
|
|
37
|
+
onOpenChange?: (open: boolean) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Callback cuando se hace click en el item (sin expandir)
|
|
40
|
+
* Útil para items que actúan como botones normales
|
|
41
|
+
*/
|
|
42
|
+
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
43
|
+
/**
|
|
44
|
+
* Si el item debería actuar como un botón normal sin colapsable
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
isCollapsible?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Si mostrar un encabezado de sección antes del item
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
showHeading?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Texto del encabezado de sección
|
|
55
|
+
* Se usa cuando showHeading es true
|
|
56
|
+
* Ejemplo: "Section Title"
|
|
57
|
+
*/
|
|
58
|
+
headingLabel?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Si mostrar divisor después del item/encabezado
|
|
61
|
+
* @default true
|
|
62
|
+
*/
|
|
63
|
+
showDivider?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Clases CSS adicionales
|
|
66
|
+
*/
|
|
67
|
+
className?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Props de items anidados dentro del colapsable
|
|
71
|
+
*/
|
|
72
|
+
export interface DropdownItemCollapsibleChildProps {
|
|
73
|
+
/**
|
|
74
|
+
* Texto del item anidado
|
|
75
|
+
*/
|
|
76
|
+
label: string;
|
|
77
|
+
/**
|
|
78
|
+
* Icono opcional del item anidado
|
|
79
|
+
*/
|
|
80
|
+
icon?: ReactNode;
|
|
81
|
+
/**
|
|
82
|
+
* Si el item anidado está deshabilitado
|
|
83
|
+
* @default false
|
|
84
|
+
*/
|
|
85
|
+
disabled?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Callback cuando se hace click en el item anidado
|
|
88
|
+
*/
|
|
89
|
+
onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
90
|
+
/**
|
|
91
|
+
* Clases CSS adicionales
|
|
92
|
+
*/
|
|
93
|
+
className?: string;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=DropdownItemCollapsible.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownItemCollapsible.types.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,iCAAiC,EAAE,CAAC;IAE/C;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAE3D;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAExD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Icono ChevronDown para el toggle del colapsable
|
|
4
|
+
* Diseño basado en heroicons-micro/chevron-down
|
|
5
|
+
* Tamaño: 16x16px
|
|
6
|
+
*
|
|
7
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-34374
|
|
8
|
+
*/
|
|
9
|
+
export declare const ChevronDownIcon: React.FC<{
|
|
10
|
+
className?: string;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Icono de usuario placeholder para ejemplos en stories
|
|
14
|
+
* Tamaño: 16x16px
|
|
15
|
+
*/
|
|
16
|
+
export declare const UserIcon: React.FC<{
|
|
17
|
+
className?: string;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownItemCollapsible/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAiB5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAwBrD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exportaciones del componente DropdownItemCollapsible
|
|
3
|
+
*
|
|
4
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-34374
|
|
5
|
+
*/
|
|
6
|
+
export { DropdownItemCollapsible } from './DropdownItemCollapsible';
|
|
7
|
+
export type { DropdownItemCollapsibleProps, DropdownItemCollapsibleChildProps, } from './DropdownItemCollapsible.types';
|
|
8
|
+
export { ChevronDownIcon, UserIcon } from './icons';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownItemCollapsible/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EACV,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DropdownItemHeadingProps } from './DropdownItemHeading.types';
|
|
3
|
+
/**
|
|
4
|
+
* Componente DropdownItemHeading del sistema de diseño Siesa
|
|
5
|
+
*
|
|
6
|
+
* Implementación pixel-perfect basada en Figma (node 6135:32539)
|
|
7
|
+
* para encabezados en menús dropdown con icono, label, descripción y acción.
|
|
8
|
+
*
|
|
9
|
+
* **Estructura:**
|
|
10
|
+
* - Icon Wrapper: Opcional, icono de 16x16px
|
|
11
|
+
* - Content Wrapper: Label + Description (flexible)
|
|
12
|
+
* - Action Wrapper: Opcional, texto de acción en la derecha
|
|
13
|
+
*
|
|
14
|
+
* **Dimensiones:**
|
|
15
|
+
* - Altura flexible (contenido vertical)
|
|
16
|
+
* - Width mínimo: 224px
|
|
17
|
+
* - Padding: 8px vertical, 16px horizontal
|
|
18
|
+
* - Border radius: 8px (rounded-lg)
|
|
19
|
+
*
|
|
20
|
+
* **Tipografía:**
|
|
21
|
+
* - Label: Label/Small (14px Bold) - content-primary
|
|
22
|
+
* - Description: Paragraph/Tiny (12px Regular) - content-secondary
|
|
23
|
+
* - Action: Paragraph/XXSmall (10px Regular) - content-secondary
|
|
24
|
+
*
|
|
25
|
+
* **Dark Mode:**
|
|
26
|
+
* - Label: #18181b (light) → #bfe2fe (dark)
|
|
27
|
+
* - Description: #a1a1aa (light) → #93d1fd (dark)
|
|
28
|
+
* - Icon: #0e79fd (light) → #bfe2fe (dark)
|
|
29
|
+
* - Action: #a1a1aa (light) → #93d1fd (dark)
|
|
30
|
+
*
|
|
31
|
+
* **Estados:**
|
|
32
|
+
* - Default: Sin hover/focus
|
|
33
|
+
* - Hover: Overlay sutil (managed by parent Dropdown)
|
|
34
|
+
* - Disabled: Opacity 50% (managed by parent Dropdown)
|
|
35
|
+
*
|
|
36
|
+
* **Especificaciones de Figma:**
|
|
37
|
+
* - Gap entre elementos: 12px
|
|
38
|
+
* - Gap entre label y description: 2px
|
|
39
|
+
* - Rounded: 8px (rounded-lg)
|
|
40
|
+
*
|
|
41
|
+
* @see docs/colors.md - Sistema de colores
|
|
42
|
+
* @see docs/typography.md - Sistema tipográfico (Label/Small, Paragraph/Tiny)
|
|
43
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
44
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-32539 - Diseño Figma
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```tsx
|
|
48
|
+
* // Con icono, label, descripción y acción
|
|
49
|
+
* <DropdownItemHeading
|
|
50
|
+
* label="Settings"
|
|
51
|
+
* description="Configure your preferences"
|
|
52
|
+
* showDescription={true}
|
|
53
|
+
* icon={<SettingsIcon />}
|
|
54
|
+
* showIcon={true}
|
|
55
|
+
* actionLabel="Clear"
|
|
56
|
+
* showAction={true}
|
|
57
|
+
* onActionClick={handleClear}
|
|
58
|
+
* />
|
|
59
|
+
*
|
|
60
|
+
* // Solo label y descripción (sin icono ni acción)
|
|
61
|
+
* <DropdownItemHeading
|
|
62
|
+
* label="My Account"
|
|
63
|
+
* description="user@example.com"
|
|
64
|
+
* showDescription={true}
|
|
65
|
+
* />
|
|
66
|
+
*
|
|
67
|
+
* // Solo label
|
|
68
|
+
* <DropdownItemHeading
|
|
69
|
+
* label="Quick Actions"
|
|
70
|
+
* showDescription={false}
|
|
71
|
+
* />
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare const DropdownItemHeading: React.FC<DropdownItemHeadingProps>;
|
|
75
|
+
//# sourceMappingURL=DropdownItemHeading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownItemHeading.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownItemHeading/DropdownItemHeading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAG5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA0IlE,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props del componente DropdownItemHeading
|
|
3
|
+
*
|
|
4
|
+
* Especificaciones de Figma: node 6135:32539
|
|
5
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-32539&m=dev
|
|
6
|
+
*/
|
|
7
|
+
export interface DropdownItemHeadingProps {
|
|
8
|
+
/**
|
|
9
|
+
* Texto del label principal del heading
|
|
10
|
+
* Tipografía: Label/Small (14px, Bold)
|
|
11
|
+
* Color: content-primary (#18181b light, #bfe2fe dark)
|
|
12
|
+
*
|
|
13
|
+
* @default 'Label'
|
|
14
|
+
*/
|
|
15
|
+
label?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Texto de descripción secundaria bajo el label
|
|
18
|
+
* Tipografía: Paragraph/Tiny (12px, Regular)
|
|
19
|
+
* Color: content-secondary (#a1a1aa light, #93d1fd dark)
|
|
20
|
+
*
|
|
21
|
+
* @default undefined
|
|
22
|
+
*/
|
|
23
|
+
description?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Si se debe mostrar la descripción
|
|
26
|
+
* Cuando es false, solo muestra el label
|
|
27
|
+
*
|
|
28
|
+
* @default true
|
|
29
|
+
*/
|
|
30
|
+
showDescription?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Nombre del icono a mostrar (string)
|
|
33
|
+
* Iconos disponibles:
|
|
34
|
+
* - `'cog-6-tooth'`: Icono de engranaje (por defecto)
|
|
35
|
+
* - `'check'`: Icono de check
|
|
36
|
+
* - `'x'`: Icono de cerrar
|
|
37
|
+
* - `'chevron-down'`: Icono de chevron hacia abajo
|
|
38
|
+
*
|
|
39
|
+
* Tamaño: 16x16px
|
|
40
|
+
* Color: primary-custom-600 (#0e79fd light, #bfe2fe dark)
|
|
41
|
+
*
|
|
42
|
+
* Si no se proporciona, se usa 'cog-6-tooth' por defecto
|
|
43
|
+
*
|
|
44
|
+
* @default 'cog-6-tooth'
|
|
45
|
+
* @see icons.tsx para ver los iconos disponibles
|
|
46
|
+
*/
|
|
47
|
+
iconName?: string | null;
|
|
48
|
+
/**
|
|
49
|
+
* Si se debe mostrar el icono en la izquierda
|
|
50
|
+
*
|
|
51
|
+
* @default true
|
|
52
|
+
*/
|
|
53
|
+
showIcon?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Texto de acción a mostrar en la derecha
|
|
56
|
+
* Tipografía: Paragraph/XXSmall (10px, Regular)
|
|
57
|
+
* Color: content-secondary (#a1a1aa light, #93d1fd dark)
|
|
58
|
+
*
|
|
59
|
+
* Comúnmente usado para "Clear", "Reset", etc.
|
|
60
|
+
*
|
|
61
|
+
* @default undefined
|
|
62
|
+
*/
|
|
63
|
+
actionLabel?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Si se debe mostrar el action label en la derecha
|
|
66
|
+
*
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
showAction?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Callback ejecutado al hacer click en el action label
|
|
72
|
+
*/
|
|
73
|
+
onActionClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
|
|
74
|
+
/**
|
|
75
|
+
* Clases CSS adicionales para personalización
|
|
76
|
+
*
|
|
77
|
+
* @default ''
|
|
78
|
+
*/
|
|
79
|
+
className?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Atributos HTML adicionales
|
|
82
|
+
*/
|
|
83
|
+
[key: string]: unknown;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=DropdownItemHeading.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownItemHeading.types.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownItemHeading/DropdownItemHeading.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAElE;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Iconos para el componente DropdownItemHeading
|
|
3
|
+
* Usando heroicons-micro según especificaciones de Figma
|
|
4
|
+
*
|
|
5
|
+
* Los iconos se pueden pasar como strings al componente:
|
|
6
|
+
* - 'cog-6-tooth': Icono de engranaje
|
|
7
|
+
* - 'check': Icono de check
|
|
8
|
+
* - 'x': Icono de cerrar
|
|
9
|
+
* - 'chevron-down': Icono de chevron hacia abajo
|
|
10
|
+
*
|
|
11
|
+
* @see DropdownItemHeading.tsx para ver cómo se usan
|
|
12
|
+
*/
|
|
13
|
+
import React from 'react';
|
|
14
|
+
interface IconProps {
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Icono Cog (heroicons-micro/cog-6-tooth)
|
|
19
|
+
* Usado como icono por defecto en DropdownItemHeading
|
|
20
|
+
* Tamaño: 16x16px
|
|
21
|
+
*/
|
|
22
|
+
export declare const CogIcon: ({ className }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* Icono Check (heroicons-micro/check)
|
|
25
|
+
*/
|
|
26
|
+
export declare const CheckIcon: ({ className }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* Icono X (heroicons-micro/x-mark)
|
|
29
|
+
*/
|
|
30
|
+
export declare const XIcon: ({ className }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
/**
|
|
32
|
+
* Icono ChevronDown (heroicons-micro/chevron-down)
|
|
33
|
+
*/
|
|
34
|
+
export declare const ChevronDownIcon: ({ className }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
/**
|
|
36
|
+
* Mapeo de nombres de iconos a componentes
|
|
37
|
+
* Permite usar strings para referenciar iconos
|
|
38
|
+
*/
|
|
39
|
+
export declare const iconMap: Record<string, React.FC<IconProps>>;
|
|
40
|
+
/**
|
|
41
|
+
* Obtener un icono por su nombre
|
|
42
|
+
* @param iconName - Nombre del icono (ej: 'cog-6-tooth', 'check', 'x', 'chevron-down')
|
|
43
|
+
* @param className - Clases CSS adicionales
|
|
44
|
+
* @returns Componente del icono o null si no existe
|
|
45
|
+
*/
|
|
46
|
+
export declare const getIcon: (iconName: string | null | undefined, className?: string) => React.ReactNode;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownItemHeading/icons.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,eAA2B,SAAS,4CAa3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,eAA2B,SAAS,4CAkB7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,eAA2B,SAAS,4CASzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,eAA2B,SAAS,4CAanE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAKvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAClB,UAAU,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,YAAY,MAAM,KACjB,KAAK,CAAC,SAUR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownItemHeading/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { LoginViewProps } from './LoginView.types';
|
|
3
|
+
/**
|
|
4
|
+
* LoginView - Vista de inicio de sesión del sistema Siesa
|
|
5
|
+
*
|
|
6
|
+
* Vista completa de login con formulario de autenticación que incluye:
|
|
7
|
+
* - Logo de Siesa
|
|
8
|
+
* - Campos de email y contraseña
|
|
9
|
+
* - Opción de "olvidé mi contraseña"
|
|
10
|
+
* - Link para crear cuenta nueva
|
|
11
|
+
* - Fondo decorativo opcional
|
|
12
|
+
*
|
|
13
|
+
* Mejores prácticas implementadas:
|
|
14
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
15
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
16
|
+
* - Tokens de color consistentes con la documentación
|
|
17
|
+
* - Type safety con TypeScript estricto
|
|
18
|
+
* - Accesibilidad con ARIA labels y manejo de formulario semántico
|
|
19
|
+
* - Validación de email básica
|
|
20
|
+
*
|
|
21
|
+
* @see docs/colors.md - Sistema de colores
|
|
22
|
+
* @see docs/typography.md - Sistema tipográfico
|
|
23
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
24
|
+
* @see docs/shadows.md - Sistema de sombras
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <LoginView
|
|
29
|
+
* onSubmit={(email, password) => console.log('Login', email, password)}
|
|
30
|
+
* onForgotPassword={() => console.log('Forgot password')}
|
|
31
|
+
* onSignUp={() => console.log('Sign up')}
|
|
32
|
+
* />
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const LoginView: React.FC<LoginViewProps>;
|
|
36
|
+
//# sourceMappingURL=LoginView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginView.d.ts","sourceRoot":"","sources":["../../../src/components/LoginView/LoginView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoY9C,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props del componente LoginView
|
|
3
|
+
*/
|
|
4
|
+
export interface LoginViewProps {
|
|
5
|
+
/**
|
|
6
|
+
* Handler para el submit del formulario de login
|
|
7
|
+
* @param email - Email ingresado por el usuario
|
|
8
|
+
* @param password - Contraseña ingresada por el usuario
|
|
9
|
+
*/
|
|
10
|
+
onSubmit?: (email: string, password: string) => void;
|
|
11
|
+
/**
|
|
12
|
+
* Handler para el click en "Olvidé mi Contraseña"
|
|
13
|
+
*/
|
|
14
|
+
onForgotPassword?: () => void;
|
|
15
|
+
/**
|
|
16
|
+
* Handler para el click en "¿No tienes una cuenta?"
|
|
17
|
+
*/
|
|
18
|
+
onSignUp?: () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Estado de carga del botón de submit
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
isLoading?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Mensaje de error general para mostrar en el formulario
|
|
26
|
+
*/
|
|
27
|
+
errorMessage?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Clases CSS adicionales para el contenedor
|
|
30
|
+
*/
|
|
31
|
+
className?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Si se muestra el fondo decorativo con imagen
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
showBackground?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Variante de visualización
|
|
39
|
+
* - 'responsive': Se adapta según el viewport (default)
|
|
40
|
+
* - 'mobile': Siempre se muestra como mobile sin efectos de card
|
|
41
|
+
* - 'desktop': Siempre se muestra como desktop con card
|
|
42
|
+
* @default 'responsive'
|
|
43
|
+
*/
|
|
44
|
+
variant?: 'responsive' | 'mobile' | 'desktop';
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=LoginView.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginView.types.d.ts","sourceRoot":"","sources":["../../../src/components/LoginView/LoginView.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAErD;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC/C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Icono de sobre (envelope) para el input de email
|
|
4
|
+
*/
|
|
5
|
+
export declare const EnvelopeIcon: React.FC<React.SVGProps<SVGSVGElement>>;
|
|
6
|
+
/**
|
|
7
|
+
* Icono de candado cerrado (lock) para el input de contraseña
|
|
8
|
+
*/
|
|
9
|
+
export declare const LockClosedIcon: React.FC<React.SVGProps<SVGSVGElement>>;
|
|
10
|
+
/**
|
|
11
|
+
* Icono de ojo (eye) para mostrar/ocultar contraseña
|
|
12
|
+
*/
|
|
13
|
+
export declare const EyeIcon: React.FC<React.SVGProps<SVGSVGElement>>;
|
|
14
|
+
/**
|
|
15
|
+
* Logo de Siesa
|
|
16
|
+
*/
|
|
17
|
+
export declare const SiesaLogo: React.FC<React.SVGProps<SVGSVGElement>>;
|
|
18
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/LoginView/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAUhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAalE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAc3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CA2B7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/LoginView/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { NavigationRailItemProps } from './NavigationRailItem.types';
|
|
3
|
+
/**
|
|
4
|
+
* NavigationRailItem - Componente independiente para items de NavigationRail
|
|
5
|
+
*
|
|
6
|
+
* Item individual de navegación vertical (rail) para aplicaciones. Proporciona
|
|
7
|
+
* un punto de acceso a destinos mediante un icono, label opcional y badges.
|
|
8
|
+
*
|
|
9
|
+
* **Características principales:**
|
|
10
|
+
* - Ancho fijo de 56px según Figma
|
|
11
|
+
* - Estados completos: normal, hover, selected, focus, disabled
|
|
12
|
+
* - Badges de notificación con contador opcional
|
|
13
|
+
* - Tipografía Label XXSmall (10px Bold) según sistema de diseño
|
|
14
|
+
* - Dark mode completo con estrategia 'class'
|
|
15
|
+
* - Focus rings adaptativos para accesibilidad
|
|
16
|
+
* - Soporte para iconos 16x16px
|
|
17
|
+
*
|
|
18
|
+
* **Especificaciones de Figma (node 4294-22931):**
|
|
19
|
+
* - Ancho: 56px (w-14)
|
|
20
|
+
* - Icon container: 32px altura, px-4 py-1, rounded-full
|
|
21
|
+
* - Label: 10px Bold, leading 12px (Label XXSmall)
|
|
22
|
+
* - Gap: 4px (gap-1)
|
|
23
|
+
* - Badge: 13x13px, posición absolute
|
|
24
|
+
*
|
|
25
|
+
* **Estados visuales (según Figma):**
|
|
26
|
+
* - **Enabled**: Icon transparent, label text-content-primary
|
|
27
|
+
* - **Hover**: Icon container bg-primary-custom-100 (#dbeefe), icon text-primary-custom-600
|
|
28
|
+
* - **Selected**: Icon container bg-primary-custom-100 con overlay, icon text-primary-custom-600
|
|
29
|
+
* - **Focus**: Focus ring 2px (#60b6fa) con offset 2px (#dbeefe), sombras combinadas
|
|
30
|
+
* - **Disabled**: Opacity 55%, no interactivo
|
|
31
|
+
*
|
|
32
|
+
* **Dark Mode:**
|
|
33
|
+
* - Background: dark-bg-primary
|
|
34
|
+
* - Hover icon container: dark-bg-primary/20
|
|
35
|
+
* - Selected icon container: dark-primary-custom-600/30
|
|
36
|
+
* - Icon colors: dark-content-primary, dark-white on selected
|
|
37
|
+
* - Focus ring: dark-border-custom
|
|
38
|
+
*
|
|
39
|
+
* **Mejores prácticas implementadas:**
|
|
40
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
41
|
+
* - Tokens de color consistentes con documentación
|
|
42
|
+
* - Accesibilidad ARIA completa
|
|
43
|
+
* - Focus visible para keyboard navigation
|
|
44
|
+
* - Badge positioning absoluto para no afectar layout
|
|
45
|
+
*
|
|
46
|
+
* @see docs/colors.md - Sistema de colores (primary-custom, dark-*, content-*)
|
|
47
|
+
* @see docs/typography.md - Tipografía (Label XXSmall)
|
|
48
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
49
|
+
* @see docs/shadows.md - Sistema de sombras y focus rings
|
|
50
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4294-22931
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```tsx
|
|
54
|
+
* // Item básico
|
|
55
|
+
* <NavigationRailItem
|
|
56
|
+
* id="home"
|
|
57
|
+
* icon={<HomeIcon />}
|
|
58
|
+
* label="Inicio"
|
|
59
|
+
* selected={true}
|
|
60
|
+
* onClick={() => navigate('/')}
|
|
61
|
+
* />
|
|
62
|
+
*
|
|
63
|
+
* // Con badge de notificación
|
|
64
|
+
* <NavigationRailItem
|
|
65
|
+
* id="notifications"
|
|
66
|
+
* icon={<BellIcon />}
|
|
67
|
+
* label="Notificaciones"
|
|
68
|
+
* badgeCount={5}
|
|
69
|
+
* onClick={() => navigate('/notifications')}
|
|
70
|
+
* />
|
|
71
|
+
*
|
|
72
|
+
* // Item deshabilitado
|
|
73
|
+
* <NavigationRailItem
|
|
74
|
+
* id="premium"
|
|
75
|
+
* icon={<StarIcon />}
|
|
76
|
+
* label="Premium"
|
|
77
|
+
* disabled={true}
|
|
78
|
+
* />
|
|
79
|
+
*
|
|
80
|
+
* // Solo icono (sin label)
|
|
81
|
+
* <NavigationRailItem
|
|
82
|
+
* id="home"
|
|
83
|
+
* icon={<HomeIcon />}
|
|
84
|
+
* label="Inicio"
|
|
85
|
+
* showLabelText={false}
|
|
86
|
+
* />
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export declare const NavigationRailItem: React.FC<NavigationRailItemProps>;
|
|
90
|
+
//# sourceMappingURL=NavigationRailItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavigationRailItem.d.ts","sourceRoot":"","sources":["../../../src/components/NavigationRailItem/NavigationRailItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA6NhE,CAAC"}
|