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,219 +1,219 @@
1
- import type { ReactNode } from 'react';
2
-
3
- /**
4
- * Variante de dispositivo del Navbar
5
- * - `responsive`: Se adapta automáticamente al viewport (por defecto)
6
- * - `desktop`: Versión completa (≥1024px) con todos los elementos
7
- * - `tablet`: Versión tablet (≥768px) con elementos reducidos
8
- * - `mobile`: Versión simplificada (<768px) con logo icono y avatar circular
9
- *
10
- * @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4278-18626
11
- */
12
- export type NavbarVariant = 'responsive' | 'desktop' | 'tablet' | 'mobile';
13
-
14
- /**
15
- * Datos del dropdown de usuario
16
- *
17
- * @example
18
- * ```tsx
19
- * const userDropdown: UserDropdownProps = {
20
- * avatar: '/path/to/avatar.jpg',
21
- * name: 'Juan Pérez',
22
- * email: 'juan@ejemplo.com',
23
- * onMenuClick: () => setMenuOpen(true),
24
- * };
25
- * ```
26
- */
27
- export interface UserDropdownProps {
28
- /**
29
- * URL del avatar del usuario
30
- * Recomendado: mínimo 80x80px para retina
31
- */
32
- avatar: string;
33
-
34
- /**
35
- * Nombre del usuario (se muestra en desktop/tablet)
36
- */
37
- name: string;
38
-
39
- /**
40
- * Email del usuario (se muestra en desktop/tablet)
41
- */
42
- email?: string;
43
-
44
- /**
45
- * Rol del usuario (alternativa a email, ej: "Administrador")
46
- */
47
- role?: string;
48
-
49
- /**
50
- * Handler para click en el dropdown de usuario
51
- */
52
- onMenuClick?: () => void;
53
- }
54
-
55
- /**
56
- * Configuración de badges de notificación
57
- *
58
- * @example
59
- * ```tsx
60
- * const notifications: NotificationsProps = {
61
- * cart: 15, // Muestra badge con "15"
62
- * bell: true, // Muestra dot de notificación
63
- * };
64
- * ```
65
- */
66
- export interface NotificationsProps {
67
- /**
68
- * Número de items en el carrito
69
- * Si es > 99, muestra "+99"
70
- */
71
- cart?: number;
72
-
73
- /**
74
- * Muestra dot de notificación en la campana
75
- */
76
- bell?: boolean;
77
- }
78
-
79
- /**
80
- * Props del componente Navbar
81
- *
82
- * Barra de navegación principal con soporte completo para responsive design y dark mode.
83
- * Incluye logo, nombre de producto, badge de ambiente, botones de acción y dropdown de usuario.
84
- *
85
- * **Mejores prácticas implementadas:**
86
- * - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
87
- * - Dark mode con estrategia 'class' (darkMode: 'class')
88
- * - Tokens de color consistentes con la documentación
89
- * - Focus rings adaptativos para light y dark mode
90
- * - Tipografía del sistema: Heading/Tiny (20px Bold), Paragraph/Small (14px), Paragraph/Tiny (12px)
91
- * - Spacing del sistema: 4px, 8px, 12px, 16px, 32px
92
- *
93
- * @see docs/colors.md - Sistema de colores y tokens dark mode
94
- * @see docs/typography.md - Sistema tipográfico (Heading, Paragraph)
95
- * @see docs/spacing.md - Sistema de espaciado
96
- * @see docs/shadows.md - Sistema de sombras (button-inset)
97
- */
98
- export interface NavbarProps {
99
- /**
100
- * Logo del negocio/cliente (componente o imagen)
101
- * Solo visible en desktop/tablet
102
- *
103
- * @default Logo por defecto de la carpeta public
104
- */
105
- logo?: ReactNode;
106
-
107
- /**
108
- * Logo de Siesa personalizado
109
- * Si no se proporciona, usa el logo por defecto según variante
110
- *
111
- * @default Logo Siesa de la carpeta public
112
- */
113
- siesaLogo?: ReactNode;
114
-
115
- /**
116
- * Nombre del producto que aparece después del logo
117
- * Solo visible en desktop/tablet (se oculta en mobile)
118
- *
119
- * @default 'Nombre Producto'
120
- */
121
- productName?: string;
122
-
123
- /**
124
- * Badge de ambiente/entorno (ej: "Ambiente de Pruebas")
125
- * En mobile muestra versión corta ("Pruebas")
126
- */
127
- environmentBadge?: string;
128
-
129
- /**
130
- * Contenido del dropdown de usuario
131
- */
132
- userDropdown?: UserDropdownProps;
133
-
134
- /**
135
- * Elementos de acción adicionales en la barra (botones, iconos, etc.)
136
- * Se muestran a la derecha después del dropdown de usuario
137
- */
138
- actions?: ReactNode;
139
-
140
- /**
141
- * Configuración de badges de notificación para los botones
142
- */
143
- notifications?: NotificationsProps;
144
-
145
- /**
146
- * Clases CSS adicionales para el contenedor del navbar
147
- */
148
- className?: string;
149
-
150
- /**
151
- * Modo de visualización del navbar
152
- * - `responsive`: Se adapta automáticamente al viewport
153
- * - `desktop`: Versión completa (1360x64px)
154
- * - `tablet`: Versión tablet (1024x64px)
155
- * - `mobile`: Versión compacta (428x40px)
156
- *
157
- * @default 'responsive'
158
- */
159
- variant?: NavbarVariant;
160
-
161
- /**
162
- * Ocultar botones de acción (carrito, notificaciones, búsqueda)
163
- *
164
- * @default false
165
- */
166
- hideActionButtons?: boolean;
167
-
168
- /**
169
- * Elemento leading personalizado (reemplaza el botón de navegación por defecto)
170
- * Solo visible en desktop/tablet
171
- */
172
- leadingAction?: ReactNode;
173
-
174
- /**
175
- * Mostrar Business Logo en el leading (lado izquierdo)
176
- * Solo visible en desktop/tablet
177
- *
178
- * @default false
179
- */
180
- showBusinessLogo?: boolean;
181
-
182
- /**
183
- * Mostrar Logo de Siesa en el leading (lado izquierdo)
184
- * Solo visible en desktop/tablet (en mobile siempre muestra el icono)
185
- *
186
- * @default true
187
- */
188
- showSiesaLogoLeading?: boolean;
189
-
190
- /**
191
- * Mostrar Logo de Siesa en el trailing (lado derecho)
192
- * Solo visible en desktop/tablet
193
- *
194
- * @default false
195
- */
196
- showSiesaLogoTrailing?: boolean;
197
-
198
- /**
199
- * Handler para click en el botón de navegación (flecha izquierda)
200
- * Solo visible en desktop/tablet cuando no hay leadingAction
201
- */
202
- onNavigationClick?: () => void;
203
-
204
- /**
205
- * Handler para click en el botón de búsqueda
206
- * Solo visible en mobile
207
- */
208
- onSearchClick?: () => void;
209
-
210
- /**
211
- * Handler para click en el botón de carrito
212
- */
213
- onCartClick?: () => void;
214
-
215
- /**
216
- * Handler para click en el botón de notificaciones
217
- */
218
- onNotificationsClick?: () => void;
219
- }
1
+ import type { ReactNode } from 'react';
2
+
3
+ /**
4
+ * Variante de dispositivo del Navbar
5
+ * - `responsive`: Se adapta automáticamente al viewport (por defecto)
6
+ * - `desktop`: Versión completa (≥1024px) con todos los elementos
7
+ * - `tablet`: Versión tablet (≥768px) con elementos reducidos
8
+ * - `mobile`: Versión simplificada (<768px) con logo icono y avatar circular
9
+ *
10
+ * @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4278-18626
11
+ */
12
+ export type NavbarVariant = 'responsive' | 'desktop' | 'tablet' | 'mobile';
13
+
14
+ /**
15
+ * Datos del dropdown de usuario
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * const userDropdown: UserDropdownProps = {
20
+ * avatar: '/path/to/avatar.jpg',
21
+ * name: 'Juan Pérez',
22
+ * email: 'juan@ejemplo.com',
23
+ * onMenuClick: () => setMenuOpen(true),
24
+ * };
25
+ * ```
26
+ */
27
+ export interface UserDropdownProps {
28
+ /**
29
+ * URL del avatar del usuario
30
+ * Recomendado: mínimo 80x80px para retina
31
+ */
32
+ avatar: string;
33
+
34
+ /**
35
+ * Nombre del usuario (se muestra en desktop/tablet)
36
+ */
37
+ name: string;
38
+
39
+ /**
40
+ * Email del usuario (se muestra en desktop/tablet)
41
+ */
42
+ email?: string;
43
+
44
+ /**
45
+ * Rol del usuario (alternativa a email, ej: "Administrador")
46
+ */
47
+ role?: string;
48
+
49
+ /**
50
+ * Handler para click en el dropdown de usuario
51
+ */
52
+ onMenuClick?: () => void;
53
+ }
54
+
55
+ /**
56
+ * Configuración de badges de notificación
57
+ *
58
+ * @example
59
+ * ```tsx
60
+ * const notifications: NotificationsProps = {
61
+ * cart: 15, // Muestra badge con "15"
62
+ * bell: true, // Muestra dot de notificación
63
+ * };
64
+ * ```
65
+ */
66
+ export interface NotificationsProps {
67
+ /**
68
+ * Número de items en el carrito
69
+ * Si es > 99, muestra "+99"
70
+ */
71
+ cart?: number;
72
+
73
+ /**
74
+ * Muestra dot de notificación en la campana
75
+ */
76
+ bell?: boolean;
77
+ }
78
+
79
+ /**
80
+ * Props del componente Navbar
81
+ *
82
+ * Barra de navegación principal con soporte completo para responsive design y dark mode.
83
+ * Incluye logo, nombre de producto, badge de ambiente, botones de acción y dropdown de usuario.
84
+ *
85
+ * **Mejores prácticas implementadas:**
86
+ * - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
87
+ * - Dark mode con estrategia 'class' (darkMode: 'class')
88
+ * - Tokens de color consistentes con la documentación
89
+ * - Focus rings adaptativos para light y dark mode
90
+ * - Tipografía del sistema: Heading/Tiny (20px Bold), Paragraph/Small (14px), Paragraph/Tiny (12px)
91
+ * - Spacing del sistema: 4px, 8px, 12px, 16px, 32px
92
+ *
93
+ * @see docs/colors.md - Sistema de colores y tokens dark mode
94
+ * @see docs/typography.md - Sistema tipográfico (Heading, Paragraph)
95
+ * @see docs/spacing.md - Sistema de espaciado
96
+ * @see docs/shadows.md - Sistema de sombras (button-inset)
97
+ */
98
+ export interface NavbarProps {
99
+ /**
100
+ * Logo del negocio/cliente (componente o imagen)
101
+ * Solo visible en desktop/tablet
102
+ *
103
+ * @default Logo por defecto de la carpeta public
104
+ */
105
+ logo?: ReactNode;
106
+
107
+ /**
108
+ * Logo de Siesa personalizado
109
+ * Si no se proporciona, usa el logo por defecto según variante
110
+ *
111
+ * @default Logo Siesa de la carpeta public
112
+ */
113
+ siesaLogo?: ReactNode;
114
+
115
+ /**
116
+ * Nombre del producto que aparece después del logo
117
+ * Solo visible en desktop/tablet (se oculta en mobile)
118
+ *
119
+ * @default 'Nombre Producto'
120
+ */
121
+ productName?: string;
122
+
123
+ /**
124
+ * Badge de ambiente/entorno (ej: "Ambiente de Pruebas")
125
+ * En mobile muestra versión corta ("Pruebas")
126
+ */
127
+ environmentBadge?: string;
128
+
129
+ /**
130
+ * Contenido del dropdown de usuario
131
+ */
132
+ userDropdown?: UserDropdownProps;
133
+
134
+ /**
135
+ * Elementos de acción adicionales en la barra (botones, iconos, etc.)
136
+ * Se muestran a la derecha después del dropdown de usuario
137
+ */
138
+ actions?: ReactNode;
139
+
140
+ /**
141
+ * Configuración de badges de notificación para los botones
142
+ */
143
+ notifications?: NotificationsProps;
144
+
145
+ /**
146
+ * Clases CSS adicionales para el contenedor del navbar
147
+ */
148
+ className?: string;
149
+
150
+ /**
151
+ * Modo de visualización del navbar
152
+ * - `responsive`: Se adapta automáticamente al viewport
153
+ * - `desktop`: Versión completa (1360x64px)
154
+ * - `tablet`: Versión tablet (1024x64px)
155
+ * - `mobile`: Versión compacta (428x40px)
156
+ *
157
+ * @default 'responsive'
158
+ */
159
+ variant?: NavbarVariant;
160
+
161
+ /**
162
+ * Ocultar botones de acción (carrito, notificaciones, búsqueda)
163
+ *
164
+ * @default false
165
+ */
166
+ hideActionButtons?: boolean;
167
+
168
+ /**
169
+ * Elemento leading personalizado (reemplaza el botón de navegación por defecto)
170
+ * Solo visible en desktop/tablet
171
+ */
172
+ leadingAction?: ReactNode;
173
+
174
+ /**
175
+ * Mostrar Business Logo en el leading (lado izquierdo)
176
+ * Solo visible en desktop/tablet
177
+ *
178
+ * @default false
179
+ */
180
+ showBusinessLogo?: boolean;
181
+
182
+ /**
183
+ * Mostrar Logo de Siesa en el leading (lado izquierdo)
184
+ * Solo visible en desktop/tablet (en mobile siempre muestra el icono)
185
+ *
186
+ * @default true
187
+ */
188
+ showSiesaLogoLeading?: boolean;
189
+
190
+ /**
191
+ * Mostrar Logo de Siesa en el trailing (lado derecho)
192
+ * Solo visible en desktop/tablet
193
+ *
194
+ * @default false
195
+ */
196
+ showSiesaLogoTrailing?: boolean;
197
+
198
+ /**
199
+ * Handler para click en el botón de navegación (flecha izquierda)
200
+ * Solo visible en desktop/tablet cuando no hay leadingAction
201
+ */
202
+ onNavigationClick?: () => void;
203
+
204
+ /**
205
+ * Handler para click en el botón de búsqueda
206
+ * Solo visible en mobile
207
+ */
208
+ onSearchClick?: () => void;
209
+
210
+ /**
211
+ * Handler para click en el botón de carrito
212
+ */
213
+ onCartClick?: () => void;
214
+
215
+ /**
216
+ * Handler para click en el botón de notificaciones
217
+ */
218
+ onNotificationsClick?: () => void;
219
+ }