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,167 +1,175 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Props para NavigationRailItem
|
|
5
|
-
*
|
|
6
|
-
* Componente independiente para items individuales de NavigationRail.
|
|
7
|
-
* Implementación pixel-perfect según Figma (node 4294-22931).
|
|
8
|
-
*
|
|
9
|
-
* **Estados:**
|
|
10
|
-
* - `Enabled`: Estado normal del item
|
|
11
|
-
* - `Hover`: Overlay de color en el icon container
|
|
12
|
-
* - `Selected`: Background con overlay según Figma
|
|
13
|
-
* - `Focus`: Focus ring de 4px (#60b6fa) con offset de 2px (#dbeefe)
|
|
14
|
-
* - `Disabled`: Opacity 55% con pointer-events-none
|
|
15
|
-
*
|
|
16
|
-
* **Especificaciones de Figma:**
|
|
17
|
-
* - Ancho: 56px (w-14)
|
|
18
|
-
* - Altura: auto (flex-col)
|
|
19
|
-
* - Gap: 4px entre icon y label
|
|
20
|
-
* - Padding: 2px horizontal, 0px vertical (px-0.5)
|
|
21
|
-
* - Border radius: 9999px (rounded-full) en icon container
|
|
22
|
-
* - Tipografía label: Label XXSmall (10px Bold, leading 12px)
|
|
23
|
-
* - Icono: 16x16px
|
|
24
|
-
*
|
|
25
|
-
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4294-22931
|
|
26
|
-
* @see docs/colors.md - Sistema de colores
|
|
27
|
-
* @see docs/typography.md - Sistema tipográfico (Label XXSmall)
|
|
28
|
-
* @see docs/spacing.md - Sistema de espaciado
|
|
29
|
-
* @see docs/shadows.md - Sistema de sombras (focus ring)
|
|
30
|
-
*/
|
|
31
|
-
export interface NavigationRailItemProps {
|
|
32
|
-
/**
|
|
33
|
-
* Icono a mostrar en el item
|
|
34
|
-
* Tamaño recomendado: 16x16px
|
|
35
|
-
* Tipos compatibles: ReactNode, SVG, Heroicons, etc.
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```tsx
|
|
39
|
-
* import { HomeIcon } from '@heroicons/react/24/outline';
|
|
40
|
-
* <NavigationRailItem icon={<HomeIcon />} />
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
icon: ReactNode;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Label/texto del item de navegación
|
|
47
|
-
* Se muestra debajo del icono en tipografía Label XXSmall
|
|
48
|
-
*
|
|
49
|
-
* @example
|
|
50
|
-
* <NavigationRailItem label="Inicio" />
|
|
51
|
-
*/
|
|
52
|
-
label: string;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Si el item está seleccionado actualmente
|
|
56
|
-
*
|
|
57
|
-
* Estado visual:
|
|
58
|
-
* - Background: bg-primary-custom-100 (#dbeefe) con overlay rgba(0,0,0,0.024)
|
|
59
|
-
* - Icono: text-primary-custom-600 (#0e79fd)
|
|
60
|
-
* - Label: text-content-primary
|
|
61
|
-
*
|
|
62
|
-
* @default false
|
|
63
|
-
*/
|
|
64
|
-
selected?: boolean;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Si el item está deshabilitado
|
|
68
|
-
*
|
|
69
|
-
* Estado visual:
|
|
70
|
-
* - Opacity: 55%
|
|
71
|
-
* - Cursor: not-allowed
|
|
72
|
-
* - Pointer-events: none
|
|
73
|
-
*
|
|
74
|
-
* @default false
|
|
75
|
-
*/
|
|
76
|
-
disabled?: boolean;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Mostrar badge de notificación (dot rojo)
|
|
80
|
-
*
|
|
81
|
-
* El badge se posiciona en la esquina superior derecha del icon container.
|
|
82
|
-
* Tamaño: 13x13px
|
|
83
|
-
* Color: #b91c1c (red-700)
|
|
84
|
-
* Posición: left-[34px], top-[-3px]
|
|
85
|
-
*
|
|
86
|
-
* @default false
|
|
87
|
-
*/
|
|
88
|
-
badge?: boolean;
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Número a mostrar en el badge (reemplaza el dot simple)
|
|
92
|
-
*
|
|
93
|
-
* Si el número es mayor a 99, muestra "99+"
|
|
94
|
-
* Tipografía: 10px Bold
|
|
95
|
-
* Color: white (#ffffff)
|
|
96
|
-
*
|
|
97
|
-
* @example
|
|
98
|
-
* <NavigationRailItem badgeCount={5} /> // Muestra: 5
|
|
99
|
-
* <NavigationRailItem badgeCount={150} /> // Muestra: 99+
|
|
100
|
-
*/
|
|
101
|
-
badgeCount?: number;
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Handler para evento click del item
|
|
105
|
-
*
|
|
106
|
-
* Se ejecuta cuando el usuario hace click en el item,
|
|
107
|
-
* incluso si está en estado selected.
|
|
108
|
-
*/
|
|
109
|
-
onClick?: () => void;
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Props para NavigationRailItem
|
|
5
|
+
*
|
|
6
|
+
* Componente independiente para items individuales de NavigationRail.
|
|
7
|
+
* Implementación pixel-perfect según Figma (node 4294-22931).
|
|
8
|
+
*
|
|
9
|
+
* **Estados:**
|
|
10
|
+
* - `Enabled`: Estado normal del item
|
|
11
|
+
* - `Hover`: Overlay de color en el icon container
|
|
12
|
+
* - `Selected`: Background con overlay según Figma
|
|
13
|
+
* - `Focus`: Focus ring de 4px (#60b6fa) con offset de 2px (#dbeefe)
|
|
14
|
+
* - `Disabled`: Opacity 55% con pointer-events-none
|
|
15
|
+
*
|
|
16
|
+
* **Especificaciones de Figma:**
|
|
17
|
+
* - Ancho: 56px (w-14)
|
|
18
|
+
* - Altura: auto (flex-col)
|
|
19
|
+
* - Gap: 4px entre icon y label
|
|
20
|
+
* - Padding: 2px horizontal, 0px vertical (px-0.5)
|
|
21
|
+
* - Border radius: 9999px (rounded-full) en icon container
|
|
22
|
+
* - Tipografía label: Label XXSmall (10px Bold, leading 12px)
|
|
23
|
+
* - Icono: 16x16px
|
|
24
|
+
*
|
|
25
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4294-22931
|
|
26
|
+
* @see docs/colors.md - Sistema de colores
|
|
27
|
+
* @see docs/typography.md - Sistema tipográfico (Label XXSmall)
|
|
28
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
29
|
+
* @see docs/shadows.md - Sistema de sombras (focus ring)
|
|
30
|
+
*/
|
|
31
|
+
export interface NavigationRailItemProps {
|
|
32
|
+
/**
|
|
33
|
+
* Icono a mostrar en el item
|
|
34
|
+
* Tamaño recomendado: 16x16px
|
|
35
|
+
* Tipos compatibles: ReactNode, SVG, Heroicons, etc.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* import { HomeIcon } from '@heroicons/react/24/outline';
|
|
40
|
+
* <NavigationRailItem icon={<HomeIcon />} />
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
icon: ReactNode;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Label/texto del item de navegación
|
|
47
|
+
* Se muestra debajo del icono en tipografía Label XXSmall
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* <NavigationRailItem label="Inicio" />
|
|
51
|
+
*/
|
|
52
|
+
label: string;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Si el item está seleccionado actualmente
|
|
56
|
+
*
|
|
57
|
+
* Estado visual:
|
|
58
|
+
* - Background: bg-primary-custom-100 (#dbeefe) con overlay rgba(0,0,0,0.024)
|
|
59
|
+
* - Icono: text-primary-custom-600 (#0e79fd)
|
|
60
|
+
* - Label: text-content-primary
|
|
61
|
+
*
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
selected?: boolean;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Si el item está deshabilitado
|
|
68
|
+
*
|
|
69
|
+
* Estado visual:
|
|
70
|
+
* - Opacity: 55%
|
|
71
|
+
* - Cursor: not-allowed
|
|
72
|
+
* - Pointer-events: none
|
|
73
|
+
*
|
|
74
|
+
* @default false
|
|
75
|
+
*/
|
|
76
|
+
disabled?: boolean;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Mostrar badge de notificación (dot rojo)
|
|
80
|
+
*
|
|
81
|
+
* El badge se posiciona en la esquina superior derecha del icon container.
|
|
82
|
+
* Tamaño: 13x13px
|
|
83
|
+
* Color: #b91c1c (red-700)
|
|
84
|
+
* Posición: left-[34px], top-[-3px]
|
|
85
|
+
*
|
|
86
|
+
* @default false
|
|
87
|
+
*/
|
|
88
|
+
badge?: boolean;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Número a mostrar en el badge (reemplaza el dot simple)
|
|
92
|
+
*
|
|
93
|
+
* Si el número es mayor a 99, muestra "99+"
|
|
94
|
+
* Tipografía: 10px Bold
|
|
95
|
+
* Color: white (#ffffff)
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* <NavigationRailItem badgeCount={5} /> // Muestra: 5
|
|
99
|
+
* <NavigationRailItem badgeCount={150} /> // Muestra: 99+
|
|
100
|
+
*/
|
|
101
|
+
badgeCount?: number;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Handler para evento click del item
|
|
105
|
+
*
|
|
106
|
+
* Se ejecuta cuando el usuario hace click en el item,
|
|
107
|
+
* incluso si está en estado selected.
|
|
108
|
+
*/
|
|
109
|
+
onClick?: () => void;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Handler para evento mouse enter del item
|
|
113
|
+
*
|
|
114
|
+
* Se ejecuta cuando el cursor entra en el área del item.
|
|
115
|
+
* Útil para mostrar paneles o menús contextuales.
|
|
116
|
+
*/
|
|
117
|
+
onMouseEnter?: () => void;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Label para accesibilidad (ARIA-label)
|
|
121
|
+
*
|
|
122
|
+
* Si no se proporciona, usa el valor de `label`
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* <NavigationRailItem label="Inicio" ariaLabel="Ir a la página de inicio" />
|
|
126
|
+
*/
|
|
127
|
+
ariaLabel?: string;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* ID único del item
|
|
131
|
+
*
|
|
132
|
+
* Usado para identificar el item en callbacks y para navegación.
|
|
133
|
+
* Se añade como atributo data-item-id en el elemento DOM.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* <NavigationRailItem id="home" label="Inicio" />
|
|
137
|
+
*/
|
|
138
|
+
id?: string;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Mostrar el label del texto
|
|
142
|
+
*
|
|
143
|
+
* Si es false, solo se muestra el icono
|
|
144
|
+
*
|
|
145
|
+
* @default true
|
|
146
|
+
*/
|
|
147
|
+
showLabelText?: boolean;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Mostrar icono
|
|
151
|
+
*
|
|
152
|
+
* Si es false, solo se muestra el label
|
|
153
|
+
*
|
|
154
|
+
* @default true
|
|
155
|
+
*/
|
|
156
|
+
showIcon?: boolean;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Clases CSS adicionales personalizadas
|
|
160
|
+
*
|
|
161
|
+
* Se aplican al contenedor principal (button)
|
|
162
|
+
*/
|
|
163
|
+
className?: string;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Estados posibles del componente según Figma
|
|
168
|
+
*
|
|
169
|
+
* - `Enabled`: Estado normal, sin interacción
|
|
170
|
+
* - `Hover`: Mouse over el item
|
|
171
|
+
* - `Selected`: Item actualmente seleccionado
|
|
172
|
+
* - `Focus`: Keyboard focus (accesibilidad)
|
|
173
|
+
* - `Disabled`: Item deshabilitado, no interactivo
|
|
174
|
+
*/
|
|
175
|
+
export type NavigationRailItemState = 'Enabled' | 'Hover' | 'Selected' | 'Focus' | 'Disabled';
|