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.
Files changed (189) hide show
  1. package/README.md +115 -115
  2. package/bin/install.cjs +502 -502
  3. package/bin/prepare-publish.cjs +28 -28
  4. package/bin/restore-folders.cjs +28 -28
  5. package/claude/agents/siesa-ui-kit-specialist.md +2445 -0
  6. package/claude/prompts/component-template.md +121 -0
  7. package/claude/prompts/siesa-ui-kit.md +28 -0
  8. package/claude/settings.local.json +67 -2
  9. package/dist/components/Button/icons.d.ts +6 -5
  10. package/dist/components/Button/icons.d.ts.map +1 -1
  11. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +1 -1
  12. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +21 -0
  13. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +1 -1
  14. package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts +122 -0
  15. package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts.map +1 -0
  16. package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts +139 -0
  17. package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts.map +1 -0
  18. package/dist/components/NavigationRailCommercial/icons.d.ts +33 -0
  19. package/dist/components/NavigationRailCommercial/icons.d.ts.map +1 -0
  20. package/dist/components/NavigationRailCommercial/index.d.ts +4 -0
  21. package/dist/components/NavigationRailCommercial/index.d.ts.map +1 -0
  22. package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +1 -1
  23. package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +7 -0
  24. package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +1 -1
  25. package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +1 -1
  26. package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +41 -0
  27. package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +1 -1
  28. package/dist/components/NavigationRailTypes/icons.d.ts +15 -29
  29. package/dist/components/NavigationRailTypes/icons.d.ts.map +1 -1
  30. package/dist/components/Select/Select.d.ts.map +1 -1
  31. package/dist/components/Select/icons.d.ts +6 -2
  32. package/dist/components/Select/icons.d.ts.map +1 -1
  33. package/dist/index.d.ts +32 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/siesa-ui-kit.cjs +404 -190
  36. package/dist/siesa-ui-kit.cjs.map +1 -1
  37. package/dist/siesa-ui-kit.mjs +6590 -1506
  38. package/dist/siesa-ui-kit.mjs.map +1 -1
  39. package/dist/views/LayoutCommercial/LayoutCommercial.d.ts +48 -0
  40. package/dist/views/LayoutCommercial/LayoutCommercial.d.ts.map +1 -0
  41. package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts +49 -0
  42. package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts.map +1 -0
  43. package/dist/views/LayoutCommercial/index.d.ts +3 -0
  44. package/dist/views/LayoutCommercial/index.d.ts.map +1 -0
  45. package/docs/icons.md +12 -31
  46. package/package.json +111 -110
  47. package/src/components/Avatar/Avatar.stories.tsx +494 -494
  48. package/src/components/Button/Button.stories.tsx +950 -950
  49. package/src/components/Button/Button.tsx +337 -337
  50. package/src/components/Button/Button.types.ts +180 -180
  51. package/src/components/Button/icons.tsx +23 -62
  52. package/src/components/DescriptionList/DescriptionList.stories.tsx +250 -250
  53. package/src/components/Divider/Divider.stories.tsx +263 -263
  54. package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.stories.tsx +317 -317
  55. package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.tsx +307 -287
  56. package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts +136 -111
  57. package/src/components/DropdownItemCollapsible/README.md +264 -264
  58. package/src/components/DropdownItemCollapsible/icons.tsx +57 -57
  59. package/src/components/DropdownItemCollapsible/index.ts +12 -12
  60. package/src/components/DropdownItemHeading/DropdownItemHeading.stories.tsx +386 -386
  61. package/src/components/DropdownItemHeading/DropdownItemHeading.tsx +216 -216
  62. package/src/components/DropdownItemHeading/DropdownItemHeading.types.ts +93 -93
  63. package/src/components/DropdownItemHeading/README.md +573 -573
  64. package/src/components/DropdownItemHeading/icons.tsx +125 -125
  65. package/src/components/DropdownItemHeading/index.ts +3 -3
  66. package/src/components/Input/Input.stories.tsx +583 -583
  67. package/src/components/LoginView/LoginView.stories.tsx +148 -148
  68. package/src/components/LoginView/LoginView.tsx +426 -426
  69. package/src/components/LoginView/LoginView.types.ts +52 -52
  70. package/src/components/LoginView/README.md +396 -396
  71. package/src/components/LoginView/icons.tsx +85 -85
  72. package/src/components/LoginView/index.ts +3 -3
  73. package/src/components/Navbar/Navbar.stories.tsx +810 -810
  74. package/src/components/Navbar/Navbar.tsx +755 -755
  75. package/src/components/Navbar/Navbar.types.ts +219 -219
  76. package/src/components/Navbar/README.md +279 -279
  77. package/src/components/Navbar/index.ts +8 -8
  78. package/src/components/NavigationRailCommercial/NavigationRailCommercial.stories.tsx +464 -0
  79. package/src/components/NavigationRailCommercial/NavigationRailCommercial.tsx +301 -0
  80. package/src/components/NavigationRailCommercial/NavigationRailCommercial.types.ts +162 -0
  81. package/src/components/NavigationRailCommercial/README.md +251 -0
  82. package/src/components/NavigationRailCommercial/icons.tsx +54 -0
  83. package/src/components/NavigationRailCommercial/index.ts +6 -0
  84. package/src/components/NavigationRailItem/NavigationRailItem.stories.tsx +667 -667
  85. package/src/components/NavigationRailItem/NavigationRailItem.tsx +314 -313
  86. package/src/components/NavigationRailItem/NavigationRailItem.types.ts +175 -167
  87. package/src/components/NavigationRailItem/README.md +476 -476
  88. package/src/components/NavigationRailItem/index.ts +2 -2
  89. package/src/components/NavigationRailPanel/NavigationRailPanel.stories.tsx +462 -462
  90. package/src/components/NavigationRailPanel/NavigationRailPanel.tsx +332 -332
  91. package/src/components/NavigationRailPanel/NavigationRailPanel.types.ts +178 -178
  92. package/src/components/NavigationRailPanel/README.md +461 -461
  93. package/src/components/NavigationRailPanel/index.ts +6 -6
  94. package/src/components/NavigationRailTypes/NavigationRailTypes.stories.tsx +682 -528
  95. package/src/components/NavigationRailTypes/NavigationRailTypes.tsx +363 -378
  96. package/src/components/NavigationRailTypes/NavigationRailTypes.types.ts +178 -130
  97. package/src/components/NavigationRailTypes/README.md +573 -573
  98. package/src/components/NavigationRailTypes/icons.tsx +76 -141
  99. package/src/components/NavigationRailTypes/index.ts +7 -7
  100. package/src/components/Notification/Notification.stories.tsx +513 -513
  101. package/src/components/Notification/Notification.tsx +145 -145
  102. package/src/components/Notification/Notification.types.ts +142 -142
  103. package/src/components/Notification/README.md +409 -409
  104. package/src/components/POSConvention/POSConvention.stories.tsx +235 -235
  105. package/src/components/POSConvention/POSConvention.tsx +129 -129
  106. package/src/components/POSConvention/POSConvention.types.ts +38 -38
  107. package/src/components/POSConvention/README.md +123 -123
  108. package/src/components/POSConvention/icons.tsx +45 -45
  109. package/src/components/POSConvention/index.ts +3 -3
  110. package/src/components/POSLocationButton/POSLocationButton.stories.tsx +531 -531
  111. package/src/components/POSLocationButton/POSLocationButton.tsx +247 -247
  112. package/src/components/POSLocationButton/POSLocationButton.types.ts +87 -87
  113. package/src/components/POSLocationButton/README.md +253 -253
  114. package/src/components/POSLocationButton/icons.tsx +120 -120
  115. package/src/components/POSLocationButton/index.ts +14 -14
  116. package/src/components/POSNumberButton/POSNumberButton.stories.tsx +415 -415
  117. package/src/components/POSNumberButton/POSNumberButton.tsx +179 -179
  118. package/src/components/POSNumberButton/POSNumberButton.types.ts +51 -51
  119. package/src/components/POSNumberButton/README.md +321 -321
  120. package/src/components/POSNumberButton/index.ts +3 -3
  121. package/src/components/POSProductButton/POSProductButton.stories.tsx +318 -318
  122. package/src/components/POSProductCard/POSProductCard.stories.tsx +642 -642
  123. package/src/components/POSProductCard/POSProductCard.tsx +208 -208
  124. package/src/components/POSProductCard/POSProductCard.types.ts +76 -76
  125. package/src/components/POSProductCard/README.md +179 -179
  126. package/src/components/POSProductCard/icons.tsx +26 -26
  127. package/src/components/POSProductCard/index.ts +2 -2
  128. package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +753 -753
  129. package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +332 -332
  130. package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +119 -119
  131. package/src/components/POSProductSidebarItems/README.md +198 -198
  132. package/src/components/POSProductSidebarItems/icons.tsx +21 -21
  133. package/src/components/POSProductSidebarItems/index.ts +3 -3
  134. package/src/components/POSTable/POSTable.stories.tsx +737 -737
  135. package/src/components/POSTable/POSTable.tsx +401 -401
  136. package/src/components/POSTable/README.md +286 -286
  137. package/src/components/Quantity/Quantity.stories.tsx +457 -457
  138. package/src/components/Radio/Radio.stories.tsx +523 -523
  139. package/src/components/Radio/Radio.tsx +1 -1
  140. package/src/components/Select/Select.stories.tsx +32 -0
  141. package/src/components/Select/Select.tsx +457 -454
  142. package/src/components/Select/icons.tsx +16 -41
  143. package/src/components/SignUpView/SignUpView.stories.tsx +129 -129
  144. package/src/components/SignUpView/SignUpView.tsx +503 -503
  145. package/src/components/SignUpView/SignUpView.types.ts +58 -58
  146. package/src/components/SignUpView/icons.tsx +71 -71
  147. package/src/components/SignUpView/index.ts +3 -3
  148. package/src/components/Switch/README.md +112 -112
  149. package/src/components/Switch/Switch.stories.tsx +550 -550
  150. package/src/components/Switch/Switch.tsx +246 -246
  151. package/src/components/Switch/Switch.types.ts +67 -67
  152. package/src/components/Table/Table.stories.tsx +805 -805
  153. package/src/components/Tabs/README.md +201 -201
  154. package/src/components/Tabs/Tabs.stories.tsx +580 -580
  155. package/src/components/Tabs/Tabs.tsx +356 -356
  156. package/src/components/Tabs/Tabs.types.ts +127 -127
  157. package/src/components/Tabs/icons.tsx +129 -129
  158. package/src/components/Tabs/index.ts +11 -11
  159. package/src/components/Textarea/Textarea.stories.tsx +535 -535
  160. package/src/index.ts +133 -102
  161. package/src/views/LayoutCommercial/LayoutCommercial.stories.tsx +374 -0
  162. package/src/views/LayoutCommercial/LayoutCommercial.tsx +125 -0
  163. package/src/views/LayoutCommercial/LayoutCommercial.types.ts +54 -0
  164. package/src/views/LayoutCommercial/README.md +286 -0
  165. package/src/views/LayoutCommercial/index.ts +2 -0
  166. package/src/views/ListView/ListView.stories.tsx +329 -329
  167. package/src/views/ListView/ListView.tsx +570 -570
  168. package/src/views/ListView/ListView.types.ts +211 -211
  169. package/src/views/ListView/icons.tsx +282 -282
  170. package/src/views/ListView/index.ts +11 -11
  171. package/src/views/LoginView/LoginView.tsx +426 -426
  172. package/src/views/ProductsView/ProductsView.stories.tsx +344 -344
  173. package/src/views/ProductsView/ProductsView.tsx +480 -480
  174. package/src/views/ProductsView/ProductsView.types.ts +238 -238
  175. package/src/views/ProductsView/README.md +312 -312
  176. package/src/views/ProductsView/icons.tsx +38 -38
  177. package/src/views/ProductsView/index.ts +8 -8
  178. package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +376 -376
  179. package/src/views/SignUpView/SignUpView.tsx +503 -503
  180. package/src/views/TableLayoutView/README.md +268 -268
  181. package/src/views/TableLayoutView/TableLayoutView.stories.tsx +235 -235
  182. package/src/views/TableLayoutView/TableLayoutView.tsx +461 -461
  183. package/src/views/TableLayoutView/TableLayoutView.types.ts +209 -209
  184. package/src/views/TableLayoutView/icons.tsx +113 -113
  185. package/src/views/TableLayoutView/index.ts +6 -6
  186. package/storybook/main.ts +19 -19
  187. package/storybook/preview.tsx +84 -84
  188. package/storybook/vitest.setup.ts +6 -6
  189. 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
- * Label para accesibilidad (ARIA-label)
113
- *
114
- * Si no se proporciona, usa el valor de `label`
115
- *
116
- * @example
117
- * <NavigationRailItem label="Inicio" ariaLabel="Ir a la página de inicio" />
118
- */
119
- ariaLabel?: string;
120
-
121
- /**
122
- * ID único del item
123
- *
124
- * Usado para identificar el item en callbacks y para navegación.
125
- * Se añade como atributo data-item-id en el elemento DOM.
126
- *
127
- * @example
128
- * <NavigationRailItem id="home" label="Inicio" />
129
- */
130
- id?: string;
131
-
132
- /**
133
- * Mostrar el label del texto
134
- *
135
- * Si es false, solo se muestra el icono
136
- *
137
- * @default true
138
- */
139
- showLabelText?: boolean;
140
-
141
- /**
142
- * Mostrar icono
143
- *
144
- * Si es false, solo se muestra el label
145
- *
146
- * @default true
147
- */
148
- showIcon?: boolean;
149
-
150
- /**
151
- * Clases CSS adicionales personalizadas
152
- *
153
- * Se aplican al contenedor principal (button)
154
- */
155
- className?: string;
156
- }
157
-
158
- /**
159
- * Estados posibles del componente según Figma
160
- *
161
- * - `Enabled`: Estado normal, sin interacción
162
- * - `Hover`: Mouse over el item
163
- * - `Selected`: Item actualmente seleccionado
164
- * - `Focus`: Keyboard focus (accesibilidad)
165
- * - `Disabled`: Item deshabilitado, no interactivo
166
- */
167
- export type NavigationRailItemState = 'Enabled' | 'Hover' | 'Selected' | 'Focus' | 'Disabled';
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';