siesa-ui-kit 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +115 -115
- package/bin/install.cjs +502 -502
- package/bin/prepare-publish.cjs +28 -28
- package/bin/restore-folders.cjs +28 -28
- package/claude/agents/siesa-ui-kit-specialist.md +2445 -0
- package/claude/prompts/component-template.md +121 -0
- package/claude/prompts/siesa-ui-kit.md +28 -0
- package/claude/settings.local.json +67 -2
- package/dist/components/Button/icons.d.ts +6 -5
- package/dist/components/Button/icons.d.ts.map +1 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +1 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +21 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +1 -1
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts +122 -0
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts.map +1 -0
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts +139 -0
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts.map +1 -0
- package/dist/components/NavigationRailCommercial/icons.d.ts +33 -0
- package/dist/components/NavigationRailCommercial/icons.d.ts.map +1 -0
- package/dist/components/NavigationRailCommercial/index.d.ts +4 -0
- package/dist/components/NavigationRailCommercial/index.d.ts.map +1 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +1 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +7 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +1 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +1 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +41 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +1 -1
- package/dist/components/NavigationRailTypes/icons.d.ts +15 -29
- package/dist/components/NavigationRailTypes/icons.d.ts.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/icons.d.ts +6 -2
- package/dist/components/Select/icons.d.ts.map +1 -1
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/siesa-ui-kit.cjs +404 -190
- package/dist/siesa-ui-kit.cjs.map +1 -1
- package/dist/siesa-ui-kit.mjs +6590 -1506
- package/dist/siesa-ui-kit.mjs.map +1 -1
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts +48 -0
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts.map +1 -0
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts +49 -0
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts.map +1 -0
- package/dist/views/LayoutCommercial/index.d.ts +3 -0
- package/dist/views/LayoutCommercial/index.d.ts.map +1 -0
- package/docs/icons.md +12 -31
- package/package.json +111 -110
- package/src/components/Avatar/Avatar.stories.tsx +494 -494
- package/src/components/Button/Button.stories.tsx +950 -950
- package/src/components/Button/Button.tsx +337 -337
- package/src/components/Button/Button.types.ts +180 -180
- package/src/components/Button/icons.tsx +23 -62
- package/src/components/DescriptionList/DescriptionList.stories.tsx +250 -250
- package/src/components/Divider/Divider.stories.tsx +263 -263
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.stories.tsx +317 -317
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.tsx +307 -287
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts +136 -111
- package/src/components/DropdownItemCollapsible/README.md +264 -264
- package/src/components/DropdownItemCollapsible/icons.tsx +57 -57
- package/src/components/DropdownItemCollapsible/index.ts +12 -12
- package/src/components/DropdownItemHeading/DropdownItemHeading.stories.tsx +386 -386
- package/src/components/DropdownItemHeading/DropdownItemHeading.tsx +216 -216
- package/src/components/DropdownItemHeading/DropdownItemHeading.types.ts +93 -93
- package/src/components/DropdownItemHeading/README.md +573 -573
- package/src/components/DropdownItemHeading/icons.tsx +125 -125
- package/src/components/DropdownItemHeading/index.ts +3 -3
- package/src/components/Input/Input.stories.tsx +583 -583
- package/src/components/LoginView/LoginView.stories.tsx +148 -148
- package/src/components/LoginView/LoginView.tsx +426 -426
- package/src/components/LoginView/LoginView.types.ts +52 -52
- package/src/components/LoginView/README.md +396 -396
- package/src/components/LoginView/icons.tsx +85 -85
- package/src/components/LoginView/index.ts +3 -3
- package/src/components/Navbar/Navbar.stories.tsx +810 -810
- package/src/components/Navbar/Navbar.tsx +755 -755
- package/src/components/Navbar/Navbar.types.ts +219 -219
- package/src/components/Navbar/README.md +279 -279
- package/src/components/Navbar/index.ts +8 -8
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.stories.tsx +464 -0
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.tsx +301 -0
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.types.ts +162 -0
- package/src/components/NavigationRailCommercial/README.md +251 -0
- package/src/components/NavigationRailCommercial/icons.tsx +54 -0
- package/src/components/NavigationRailCommercial/index.ts +6 -0
- package/src/components/NavigationRailItem/NavigationRailItem.stories.tsx +667 -667
- package/src/components/NavigationRailItem/NavigationRailItem.tsx +314 -313
- package/src/components/NavigationRailItem/NavigationRailItem.types.ts +175 -167
- package/src/components/NavigationRailItem/README.md +476 -476
- package/src/components/NavigationRailItem/index.ts +2 -2
- package/src/components/NavigationRailPanel/NavigationRailPanel.stories.tsx +462 -462
- package/src/components/NavigationRailPanel/NavigationRailPanel.tsx +332 -332
- package/src/components/NavigationRailPanel/NavigationRailPanel.types.ts +178 -178
- package/src/components/NavigationRailPanel/README.md +461 -461
- package/src/components/NavigationRailPanel/index.ts +6 -6
- package/src/components/NavigationRailTypes/NavigationRailTypes.stories.tsx +682 -528
- package/src/components/NavigationRailTypes/NavigationRailTypes.tsx +363 -378
- package/src/components/NavigationRailTypes/NavigationRailTypes.types.ts +178 -130
- package/src/components/NavigationRailTypes/README.md +573 -573
- package/src/components/NavigationRailTypes/icons.tsx +76 -141
- package/src/components/NavigationRailTypes/index.ts +7 -7
- package/src/components/Notification/Notification.stories.tsx +513 -513
- package/src/components/Notification/Notification.tsx +145 -145
- package/src/components/Notification/Notification.types.ts +142 -142
- package/src/components/Notification/README.md +409 -409
- package/src/components/POSConvention/POSConvention.stories.tsx +235 -235
- package/src/components/POSConvention/POSConvention.tsx +129 -129
- package/src/components/POSConvention/POSConvention.types.ts +38 -38
- package/src/components/POSConvention/README.md +123 -123
- package/src/components/POSConvention/icons.tsx +45 -45
- package/src/components/POSConvention/index.ts +3 -3
- package/src/components/POSLocationButton/POSLocationButton.stories.tsx +531 -531
- package/src/components/POSLocationButton/POSLocationButton.tsx +247 -247
- package/src/components/POSLocationButton/POSLocationButton.types.ts +87 -87
- package/src/components/POSLocationButton/README.md +253 -253
- package/src/components/POSLocationButton/icons.tsx +120 -120
- package/src/components/POSLocationButton/index.ts +14 -14
- package/src/components/POSNumberButton/POSNumberButton.stories.tsx +415 -415
- package/src/components/POSNumberButton/POSNumberButton.tsx +179 -179
- package/src/components/POSNumberButton/POSNumberButton.types.ts +51 -51
- package/src/components/POSNumberButton/README.md +321 -321
- package/src/components/POSNumberButton/index.ts +3 -3
- package/src/components/POSProductButton/POSProductButton.stories.tsx +318 -318
- package/src/components/POSProductCard/POSProductCard.stories.tsx +642 -642
- package/src/components/POSProductCard/POSProductCard.tsx +208 -208
- package/src/components/POSProductCard/POSProductCard.types.ts +76 -76
- package/src/components/POSProductCard/README.md +179 -179
- package/src/components/POSProductCard/icons.tsx +26 -26
- package/src/components/POSProductCard/index.ts +2 -2
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +753 -753
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +332 -332
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +119 -119
- package/src/components/POSProductSidebarItems/README.md +198 -198
- package/src/components/POSProductSidebarItems/icons.tsx +21 -21
- package/src/components/POSProductSidebarItems/index.ts +3 -3
- package/src/components/POSTable/POSTable.stories.tsx +737 -737
- package/src/components/POSTable/POSTable.tsx +401 -401
- package/src/components/POSTable/README.md +286 -286
- package/src/components/Quantity/Quantity.stories.tsx +457 -457
- package/src/components/Radio/Radio.stories.tsx +523 -523
- package/src/components/Radio/Radio.tsx +1 -1
- package/src/components/Select/Select.stories.tsx +32 -0
- package/src/components/Select/Select.tsx +457 -454
- package/src/components/Select/icons.tsx +16 -41
- package/src/components/SignUpView/SignUpView.stories.tsx +129 -129
- package/src/components/SignUpView/SignUpView.tsx +503 -503
- package/src/components/SignUpView/SignUpView.types.ts +58 -58
- package/src/components/SignUpView/icons.tsx +71 -71
- package/src/components/SignUpView/index.ts +3 -3
- package/src/components/Switch/README.md +112 -112
- package/src/components/Switch/Switch.stories.tsx +550 -550
- package/src/components/Switch/Switch.tsx +246 -246
- package/src/components/Switch/Switch.types.ts +67 -67
- package/src/components/Table/Table.stories.tsx +805 -805
- package/src/components/Tabs/README.md +201 -201
- package/src/components/Tabs/Tabs.stories.tsx +580 -580
- package/src/components/Tabs/Tabs.tsx +356 -356
- package/src/components/Tabs/Tabs.types.ts +127 -127
- package/src/components/Tabs/icons.tsx +129 -129
- package/src/components/Tabs/index.ts +11 -11
- package/src/components/Textarea/Textarea.stories.tsx +535 -535
- package/src/index.ts +133 -102
- package/src/views/LayoutCommercial/LayoutCommercial.stories.tsx +374 -0
- package/src/views/LayoutCommercial/LayoutCommercial.tsx +125 -0
- package/src/views/LayoutCommercial/LayoutCommercial.types.ts +54 -0
- package/src/views/LayoutCommercial/README.md +286 -0
- package/src/views/LayoutCommercial/index.ts +2 -0
- package/src/views/ListView/ListView.stories.tsx +329 -329
- package/src/views/ListView/ListView.tsx +570 -570
- package/src/views/ListView/ListView.types.ts +211 -211
- package/src/views/ListView/icons.tsx +282 -282
- package/src/views/ListView/index.ts +11 -11
- package/src/views/LoginView/LoginView.tsx +426 -426
- package/src/views/ProductsView/ProductsView.stories.tsx +344 -344
- package/src/views/ProductsView/ProductsView.tsx +480 -480
- package/src/views/ProductsView/ProductsView.types.ts +238 -238
- package/src/views/ProductsView/README.md +312 -312
- package/src/views/ProductsView/icons.tsx +38 -38
- package/src/views/ProductsView/index.ts +8 -8
- package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +376 -376
- package/src/views/SignUpView/SignUpView.tsx +503 -503
- package/src/views/TableLayoutView/README.md +268 -268
- package/src/views/TableLayoutView/TableLayoutView.stories.tsx +235 -235
- package/src/views/TableLayoutView/TableLayoutView.tsx +461 -461
- package/src/views/TableLayoutView/TableLayoutView.types.ts +209 -209
- package/src/views/TableLayoutView/icons.tsx +113 -113
- package/src/views/TableLayoutView/index.ts +6 -6
- package/storybook/main.ts +19 -19
- package/storybook/preview.tsx +84 -84
- package/storybook/vitest.setup.ts +6 -6
- package/tailwind.config.js +128 -128
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Props del componente SignUpView
|
|
3
|
-
*/
|
|
4
|
-
export interface SignUpViewProps {
|
|
5
|
-
/**
|
|
6
|
-
* Handler para el submit del formulario de registro
|
|
7
|
-
* @param name - Nombre ingresado por el usuario
|
|
8
|
-
* @param email - Email ingresado por el usuario
|
|
9
|
-
* @param password - Contraseña ingresada por el usuario
|
|
10
|
-
*/
|
|
11
|
-
onSubmit?: (name: string, email: string, password: string) => void;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Handler para el click en "Ya tengo una cuenta"
|
|
15
|
-
*/
|
|
16
|
-
onSignIn?: () => void;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Handler para el click en "Condiciones de Uso"
|
|
20
|
-
*/
|
|
21
|
-
onTermsClick?: () => void;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Handler para el click en "Políticas de Privacidad"
|
|
25
|
-
*/
|
|
26
|
-
onPrivacyClick?: () => void;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Estado de carga del botón de submit
|
|
30
|
-
* @default false
|
|
31
|
-
*/
|
|
32
|
-
isLoading?: boolean;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Mensaje de error general para mostrar en el formulario
|
|
36
|
-
*/
|
|
37
|
-
errorMessage?: string;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Clases CSS adicionales para el contenedor
|
|
41
|
-
*/
|
|
42
|
-
className?: string;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Si se muestra el fondo decorativo con imagen
|
|
46
|
-
* @default true
|
|
47
|
-
*/
|
|
48
|
-
showBackground?: boolean;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Variante de visualización
|
|
52
|
-
* - 'responsive': Se adapta según el viewport (default)
|
|
53
|
-
* - 'mobile': Siempre se muestra como mobile sin efectos de card
|
|
54
|
-
* - 'desktop': Siempre se muestra como desktop con card
|
|
55
|
-
* @default 'responsive'
|
|
56
|
-
*/
|
|
57
|
-
variant?: 'responsive' | 'mobile' | 'desktop';
|
|
58
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Props del componente SignUpView
|
|
3
|
+
*/
|
|
4
|
+
export interface SignUpViewProps {
|
|
5
|
+
/**
|
|
6
|
+
* Handler para el submit del formulario de registro
|
|
7
|
+
* @param name - Nombre ingresado por el usuario
|
|
8
|
+
* @param email - Email ingresado por el usuario
|
|
9
|
+
* @param password - Contraseña ingresada por el usuario
|
|
10
|
+
*/
|
|
11
|
+
onSubmit?: (name: string, email: string, password: string) => void;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Handler para el click en "Ya tengo una cuenta"
|
|
15
|
+
*/
|
|
16
|
+
onSignIn?: () => void;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Handler para el click en "Condiciones de Uso"
|
|
20
|
+
*/
|
|
21
|
+
onTermsClick?: () => void;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Handler para el click en "Políticas de Privacidad"
|
|
25
|
+
*/
|
|
26
|
+
onPrivacyClick?: () => void;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Estado de carga del botón de submit
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
isLoading?: boolean;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Mensaje de error general para mostrar en el formulario
|
|
36
|
+
*/
|
|
37
|
+
errorMessage?: string;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Clases CSS adicionales para el contenedor
|
|
41
|
+
*/
|
|
42
|
+
className?: string;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Si se muestra el fondo decorativo con imagen
|
|
46
|
+
* @default true
|
|
47
|
+
*/
|
|
48
|
+
showBackground?: boolean;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Variante de visualización
|
|
52
|
+
* - 'responsive': Se adapta según el viewport (default)
|
|
53
|
+
* - 'mobile': Siempre se muestra como mobile sin efectos de card
|
|
54
|
+
* - 'desktop': Siempre se muestra como desktop con card
|
|
55
|
+
* @default 'responsive'
|
|
56
|
+
*/
|
|
57
|
+
variant?: 'responsive' | 'mobile' | 'desktop';
|
|
58
|
+
}
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Icono de círculo de usuario para el input de nombre
|
|
5
|
-
*/
|
|
6
|
-
export const UserCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
7
|
-
<svg
|
|
8
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
-
viewBox="0 0 16 16"
|
|
10
|
-
fill="currentColor"
|
|
11
|
-
{...props}
|
|
12
|
-
>
|
|
13
|
-
<path
|
|
14
|
-
fillRule="evenodd"
|
|
15
|
-
d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0Zm-5-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM8 9c-1.825 0-3.422.977-4.295 2.437A5.49 5.49 0 0 0 8 13.5a5.49 5.49 0 0 0 4.294-2.063A4.997 4.997 0 0 0 8 9Z"
|
|
16
|
-
clipRule="evenodd"
|
|
17
|
-
/>
|
|
18
|
-
</svg>
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Icono de sobre (envelope) para el input de email
|
|
23
|
-
*/
|
|
24
|
-
export const EnvelopeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
25
|
-
<svg
|
|
26
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
27
|
-
viewBox="0 0 16 16"
|
|
28
|
-
fill="currentColor"
|
|
29
|
-
{...props}
|
|
30
|
-
>
|
|
31
|
-
<path d="M2.5 3A1.5 1.5 0 0 0 1 4.5v.793c.026.009.051.02.076.032L7.674 8.51c.206.1.446.1.652 0l6.598-3.185A.755.755 0 0 1 15 5.293V4.5A1.5 1.5 0 0 0 13.5 3h-11Z" />
|
|
32
|
-
<path d="M15 6.954 8.978 9.86a2.25 2.25 0 0 1-1.956 0L1 6.954V11.5A1.5 1.5 0 0 0 2.5 13h11a1.5 1.5 0 0 0 1.5-1.5V6.954Z" />
|
|
33
|
-
</svg>
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Icono de candado cerrado (lock) para el input de contraseña
|
|
38
|
-
*/
|
|
39
|
-
export const LockClosedIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
40
|
-
<svg
|
|
41
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
42
|
-
viewBox="0 0 16 16"
|
|
43
|
-
fill="currentColor"
|
|
44
|
-
{...props}
|
|
45
|
-
>
|
|
46
|
-
<path
|
|
47
|
-
fillRule="evenodd"
|
|
48
|
-
d="M8 1a3.5 3.5 0 0 0-3.5 3.5V7A1.5 1.5 0 0 0 3 8.5v5A1.5 1.5 0 0 0 4.5 15h7a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 11.5 7V4.5A3.5 3.5 0 0 0 8 1Zm2 6V4.5a2 2 0 1 0-4 0V7h4Z"
|
|
49
|
-
clipRule="evenodd"
|
|
50
|
-
/>
|
|
51
|
-
</svg>
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Icono de ojo (eye) para mostrar/ocultar contraseña
|
|
56
|
-
*/
|
|
57
|
-
export const EyeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
58
|
-
<svg
|
|
59
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
60
|
-
viewBox="0 0 16 16"
|
|
61
|
-
fill="currentColor"
|
|
62
|
-
{...props}
|
|
63
|
-
>
|
|
64
|
-
<path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" />
|
|
65
|
-
<path
|
|
66
|
-
fillRule="evenodd"
|
|
67
|
-
d="M1.38 8.28a.87.87 0 0 1 0-.566 7.003 7.003 0 0 1 13.238.006.87.87 0 0 1 0 .56A7.003 7.003 0 0 1 1.379 8.28ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"
|
|
68
|
-
clipRule="evenodd"
|
|
69
|
-
/>
|
|
70
|
-
</svg>
|
|
71
|
-
);
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Icono de círculo de usuario para el input de nombre
|
|
5
|
+
*/
|
|
6
|
+
export const UserCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 16 16"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
{...props}
|
|
12
|
+
>
|
|
13
|
+
<path
|
|
14
|
+
fillRule="evenodd"
|
|
15
|
+
d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0Zm-5-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM8 9c-1.825 0-3.422.977-4.295 2.437A5.49 5.49 0 0 0 8 13.5a5.49 5.49 0 0 0 4.294-2.063A4.997 4.997 0 0 0 8 9Z"
|
|
16
|
+
clipRule="evenodd"
|
|
17
|
+
/>
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Icono de sobre (envelope) para el input de email
|
|
23
|
+
*/
|
|
24
|
+
export const EnvelopeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
25
|
+
<svg
|
|
26
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
27
|
+
viewBox="0 0 16 16"
|
|
28
|
+
fill="currentColor"
|
|
29
|
+
{...props}
|
|
30
|
+
>
|
|
31
|
+
<path d="M2.5 3A1.5 1.5 0 0 0 1 4.5v.793c.026.009.051.02.076.032L7.674 8.51c.206.1.446.1.652 0l6.598-3.185A.755.755 0 0 1 15 5.293V4.5A1.5 1.5 0 0 0 13.5 3h-11Z" />
|
|
32
|
+
<path d="M15 6.954 8.978 9.86a2.25 2.25 0 0 1-1.956 0L1 6.954V11.5A1.5 1.5 0 0 0 2.5 13h11a1.5 1.5 0 0 0 1.5-1.5V6.954Z" />
|
|
33
|
+
</svg>
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Icono de candado cerrado (lock) para el input de contraseña
|
|
38
|
+
*/
|
|
39
|
+
export const LockClosedIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
40
|
+
<svg
|
|
41
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
42
|
+
viewBox="0 0 16 16"
|
|
43
|
+
fill="currentColor"
|
|
44
|
+
{...props}
|
|
45
|
+
>
|
|
46
|
+
<path
|
|
47
|
+
fillRule="evenodd"
|
|
48
|
+
d="M8 1a3.5 3.5 0 0 0-3.5 3.5V7A1.5 1.5 0 0 0 3 8.5v5A1.5 1.5 0 0 0 4.5 15h7a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 11.5 7V4.5A3.5 3.5 0 0 0 8 1Zm2 6V4.5a2 2 0 1 0-4 0V7h4Z"
|
|
49
|
+
clipRule="evenodd"
|
|
50
|
+
/>
|
|
51
|
+
</svg>
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Icono de ojo (eye) para mostrar/ocultar contraseña
|
|
56
|
+
*/
|
|
57
|
+
export const EyeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
58
|
+
<svg
|
|
59
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
60
|
+
viewBox="0 0 16 16"
|
|
61
|
+
fill="currentColor"
|
|
62
|
+
{...props}
|
|
63
|
+
>
|
|
64
|
+
<path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" />
|
|
65
|
+
<path
|
|
66
|
+
fillRule="evenodd"
|
|
67
|
+
d="M1.38 8.28a.87.87 0 0 1 0-.566 7.003 7.003 0 0 1 13.238.006.87.87 0 0 1 0 .56A7.003 7.003 0 0 1 1.379 8.28ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"
|
|
68
|
+
clipRule="evenodd"
|
|
69
|
+
/>
|
|
70
|
+
</svg>
|
|
71
|
+
);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { SignUpView } from './SignUpView';
|
|
2
|
-
export type { SignUpViewProps } from './SignUpView.types';
|
|
3
|
-
export { UserCircleIcon, EnvelopeIcon, LockClosedIcon, EyeIcon } from './icons';
|
|
1
|
+
export { SignUpView } from './SignUpView';
|
|
2
|
+
export type { SignUpViewProps } from './SignUpView.types';
|
|
3
|
+
export { UserCircleIcon, EnvelopeIcon, LockClosedIcon, EyeIcon } from './icons';
|
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
# Switch
|
|
2
|
-
|
|
3
|
-
Componente de switch del sistema de diseño Siesa para activación/desactivación de opciones.
|
|
4
|
-
|
|
5
|
-
## Uso Básico
|
|
6
|
-
|
|
7
|
-
```tsx
|
|
8
|
-
import { Switch } from './Switch';
|
|
9
|
-
|
|
10
|
-
// Switch simple (label a la izquierda - default)
|
|
11
|
-
<Switch
|
|
12
|
-
label="Activar notificaciones"
|
|
13
|
-
checked={isEnabled}
|
|
14
|
-
onChange={(e) => setIsEnabled(e.target.checked)}
|
|
15
|
-
/>
|
|
16
|
-
|
|
17
|
-
// Con descripción
|
|
18
|
-
<Switch
|
|
19
|
-
label="Permitir inserción"
|
|
20
|
-
description="Permite que otros inserten los detalles de tu evento en su propio sitio."
|
|
21
|
-
checked={isEnabled}
|
|
22
|
-
onChange={(e) => setIsEnabled(e.target.checked)}
|
|
23
|
-
/>
|
|
24
|
-
|
|
25
|
-
// Label a la derecha (trailing)
|
|
26
|
-
<Switch
|
|
27
|
-
label="Activar notificaciones"
|
|
28
|
-
labelPosition="trailing"
|
|
29
|
-
checked={isEnabled}
|
|
30
|
-
onChange={(e) => setIsEnabled(e.target.checked)}
|
|
31
|
-
/>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Props
|
|
35
|
-
|
|
36
|
-
| Prop | Tipo | Default | Descripción |
|
|
37
|
-
|------|------|---------|-------------|
|
|
38
|
-
| `label` | `string` | - | Etiqueta del switch |
|
|
39
|
-
| `description` | `string` | - | Descripción debajo del label |
|
|
40
|
-
| `labelPosition` | `'leading' \| 'trailing'` | `'leading'` | Posición del label respecto al switch |
|
|
41
|
-
| `checked` | `boolean` | `false` | Si el switch está activado |
|
|
42
|
-
| `disabled` | `boolean` | `false` | Si el switch está deshabilitado |
|
|
43
|
-
| `onChange` | `(e: ChangeEvent) => void` | - | Callback cuando cambia el estado |
|
|
44
|
-
| `ariaLabel` | `string` | - | Label para accesibilidad (ARIA) |
|
|
45
|
-
| `className` | `string` | `''` | Clases CSS adicionales |
|
|
46
|
-
|
|
47
|
-
## Posición del Label
|
|
48
|
-
|
|
49
|
-
El componente soporta dos posiciones para el label:
|
|
50
|
-
|
|
51
|
-
- **leading** (default): Label a la izquierda, switch a la derecha
|
|
52
|
-
- **trailing**: Switch a la izquierda, label a la derecha
|
|
53
|
-
|
|
54
|
-
```tsx
|
|
55
|
-
// Leading (default)
|
|
56
|
-
<Switch label="Opción" labelPosition="leading" />
|
|
57
|
-
// Resultado: [Label] [Switch]
|
|
58
|
-
|
|
59
|
-
// Trailing
|
|
60
|
-
<Switch label="Opción" labelPosition="trailing" />
|
|
61
|
-
// Resultado: [Switch] [Label]
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Estados
|
|
65
|
-
|
|
66
|
-
El switch soporta los siguientes estados:
|
|
67
|
-
|
|
68
|
-
- **Default OFF**: Fondo `#fafafa`, borde `#e4e4e7`
|
|
69
|
-
- **Default ON**: Fondo `#0e79fd`, borde `#3c9bf6`
|
|
70
|
-
- **Hover OFF**: Borde cambia a `#b6b6b9`
|
|
71
|
-
- **Hover ON**: Borde cambia a `#307cc5`
|
|
72
|
-
- **Focus**: Shadow ring con `#60b6fa` (4px) + `#dbeefe` (2px)
|
|
73
|
-
- **Disabled**: Opacidad 50%
|
|
74
|
-
|
|
75
|
-
## Dark Mode
|
|
76
|
-
|
|
77
|
-
El componente tiene soporte completo para dark mode:
|
|
78
|
-
|
|
79
|
-
- **Track OFF Dark**: Fondo `#18181b`, borde `#71717a`
|
|
80
|
-
- **Track ON Dark**: Fondo `#0e79fd`, borde `#3c9bf6`
|
|
81
|
-
- **Focus Dark**: Mismo shadow ring que light mode
|
|
82
|
-
|
|
83
|
-
## Dimensiones
|
|
84
|
-
|
|
85
|
-
- **Track**: 32x20px
|
|
86
|
-
- **Button**: 16x16px
|
|
87
|
-
- **Border radius**: 12px (rounded-xl)
|
|
88
|
-
- **Posición OFF**: left 1px
|
|
89
|
-
- **Posición ON**: left 13px
|
|
90
|
-
|
|
91
|
-
## Accesibilidad
|
|
92
|
-
|
|
93
|
-
- Usa un `<input type="checkbox">` nativo oculto para accesibilidad
|
|
94
|
-
- Soporte completo de teclado (Tab, Space)
|
|
95
|
-
- `aria-label` configurable
|
|
96
|
-
- Labels clicables para mejor UX
|
|
97
|
-
|
|
98
|
-
## Archivos
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
Switch/
|
|
102
|
-
├── Switch.tsx # Componente principal
|
|
103
|
-
├── Switch.types.ts # TypeScript types
|
|
104
|
-
├── Switch.stories.tsx # Storybook stories
|
|
105
|
-
├── index.ts # Exports
|
|
106
|
-
└── README.md # Documentación
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## Referencias
|
|
110
|
-
|
|
111
|
-
- **Figma**: [Switch Component](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4028-7829)
|
|
112
|
-
- **Docs**: `docs/colors.md`, `docs/typography.md`
|
|
1
|
+
# Switch
|
|
2
|
+
|
|
3
|
+
Componente de switch del sistema de diseño Siesa para activación/desactivación de opciones.
|
|
4
|
+
|
|
5
|
+
## Uso Básico
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Switch } from './Switch';
|
|
9
|
+
|
|
10
|
+
// Switch simple (label a la izquierda - default)
|
|
11
|
+
<Switch
|
|
12
|
+
label="Activar notificaciones"
|
|
13
|
+
checked={isEnabled}
|
|
14
|
+
onChange={(e) => setIsEnabled(e.target.checked)}
|
|
15
|
+
/>
|
|
16
|
+
|
|
17
|
+
// Con descripción
|
|
18
|
+
<Switch
|
|
19
|
+
label="Permitir inserción"
|
|
20
|
+
description="Permite que otros inserten los detalles de tu evento en su propio sitio."
|
|
21
|
+
checked={isEnabled}
|
|
22
|
+
onChange={(e) => setIsEnabled(e.target.checked)}
|
|
23
|
+
/>
|
|
24
|
+
|
|
25
|
+
// Label a la derecha (trailing)
|
|
26
|
+
<Switch
|
|
27
|
+
label="Activar notificaciones"
|
|
28
|
+
labelPosition="trailing"
|
|
29
|
+
checked={isEnabled}
|
|
30
|
+
onChange={(e) => setIsEnabled(e.target.checked)}
|
|
31
|
+
/>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Props
|
|
35
|
+
|
|
36
|
+
| Prop | Tipo | Default | Descripción |
|
|
37
|
+
|------|------|---------|-------------|
|
|
38
|
+
| `label` | `string` | - | Etiqueta del switch |
|
|
39
|
+
| `description` | `string` | - | Descripción debajo del label |
|
|
40
|
+
| `labelPosition` | `'leading' \| 'trailing'` | `'leading'` | Posición del label respecto al switch |
|
|
41
|
+
| `checked` | `boolean` | `false` | Si el switch está activado |
|
|
42
|
+
| `disabled` | `boolean` | `false` | Si el switch está deshabilitado |
|
|
43
|
+
| `onChange` | `(e: ChangeEvent) => void` | - | Callback cuando cambia el estado |
|
|
44
|
+
| `ariaLabel` | `string` | - | Label para accesibilidad (ARIA) |
|
|
45
|
+
| `className` | `string` | `''` | Clases CSS adicionales |
|
|
46
|
+
|
|
47
|
+
## Posición del Label
|
|
48
|
+
|
|
49
|
+
El componente soporta dos posiciones para el label:
|
|
50
|
+
|
|
51
|
+
- **leading** (default): Label a la izquierda, switch a la derecha
|
|
52
|
+
- **trailing**: Switch a la izquierda, label a la derecha
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
// Leading (default)
|
|
56
|
+
<Switch label="Opción" labelPosition="leading" />
|
|
57
|
+
// Resultado: [Label] [Switch]
|
|
58
|
+
|
|
59
|
+
// Trailing
|
|
60
|
+
<Switch label="Opción" labelPosition="trailing" />
|
|
61
|
+
// Resultado: [Switch] [Label]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Estados
|
|
65
|
+
|
|
66
|
+
El switch soporta los siguientes estados:
|
|
67
|
+
|
|
68
|
+
- **Default OFF**: Fondo `#fafafa`, borde `#e4e4e7`
|
|
69
|
+
- **Default ON**: Fondo `#0e79fd`, borde `#3c9bf6`
|
|
70
|
+
- **Hover OFF**: Borde cambia a `#b6b6b9`
|
|
71
|
+
- **Hover ON**: Borde cambia a `#307cc5`
|
|
72
|
+
- **Focus**: Shadow ring con `#60b6fa` (4px) + `#dbeefe` (2px)
|
|
73
|
+
- **Disabled**: Opacidad 50%
|
|
74
|
+
|
|
75
|
+
## Dark Mode
|
|
76
|
+
|
|
77
|
+
El componente tiene soporte completo para dark mode:
|
|
78
|
+
|
|
79
|
+
- **Track OFF Dark**: Fondo `#18181b`, borde `#71717a`
|
|
80
|
+
- **Track ON Dark**: Fondo `#0e79fd`, borde `#3c9bf6`
|
|
81
|
+
- **Focus Dark**: Mismo shadow ring que light mode
|
|
82
|
+
|
|
83
|
+
## Dimensiones
|
|
84
|
+
|
|
85
|
+
- **Track**: 32x20px
|
|
86
|
+
- **Button**: 16x16px
|
|
87
|
+
- **Border radius**: 12px (rounded-xl)
|
|
88
|
+
- **Posición OFF**: left 1px
|
|
89
|
+
- **Posición ON**: left 13px
|
|
90
|
+
|
|
91
|
+
## Accesibilidad
|
|
92
|
+
|
|
93
|
+
- Usa un `<input type="checkbox">` nativo oculto para accesibilidad
|
|
94
|
+
- Soporte completo de teclado (Tab, Space)
|
|
95
|
+
- `aria-label` configurable
|
|
96
|
+
- Labels clicables para mejor UX
|
|
97
|
+
|
|
98
|
+
## Archivos
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Switch/
|
|
102
|
+
├── Switch.tsx # Componente principal
|
|
103
|
+
├── Switch.types.ts # TypeScript types
|
|
104
|
+
├── Switch.stories.tsx # Storybook stories
|
|
105
|
+
├── index.ts # Exports
|
|
106
|
+
└── README.md # Documentación
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Referencias
|
|
110
|
+
|
|
111
|
+
- **Figma**: [Switch Component](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4028-7829)
|
|
112
|
+
- **Docs**: `docs/colors.md`, `docs/typography.md`
|