siesa-ui-kit 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/package.json +2 -9
  2. package/claude/settings.local.json +0 -7
  3. package/docs/border-radius.md +0 -1261
  4. package/docs/colors.md +0 -832
  5. package/docs/dark-mode-guide.md +0 -1426
  6. package/docs/filters.md +0 -1243
  7. package/docs/icons.md +0 -1283
  8. package/docs/shadows.md +0 -1377
  9. package/docs/spacing.md +0 -1684
  10. package/docs/typography.md +0 -1268
  11. package/postcss.config.cjs +0 -6
  12. package/public/,Business Logo.png +0 -0
  13. package/public/.Siesa Logo.png +0 -0
  14. package/public/bg_siesa.png +0 -0
  15. package/public/siesa_logo_mobile.png +0 -0
  16. package/public/vite.svg +0 -1
  17. package/src/App.css +0 -42
  18. package/src/App.tsx +0 -8
  19. package/src/ButtonTest.tsx +0 -147
  20. package/src/assets/fonts/README.md +0 -261
  21. package/src/assets/fonts/SiesaBT/SiesaBT-Bold.otf +0 -0
  22. package/src/assets/fonts/SiesaBT/SiesaBT-Light.otf +0 -0
  23. package/src/assets/fonts/SiesaBT/SiesaBT-Regular.otf +0 -0
  24. package/src/assets/react.svg +0 -1
  25. package/src/components/Alert/Alert.stories.tsx +0 -332
  26. package/src/components/Alert/Alert.tsx +0 -106
  27. package/src/components/Alert/Alert.types.ts +0 -54
  28. package/src/components/Avatar/Avatar.stories.tsx +0 -494
  29. package/src/components/Avatar/Avatar.tsx +0 -143
  30. package/src/components/Avatar/Avatar.types.ts +0 -53
  31. package/src/components/Badge/Badge.stories.tsx +0 -339
  32. package/src/components/Badge/Badge.tsx +0 -278
  33. package/src/components/Badge/Badge.types.ts +0 -58
  34. package/src/components/Button/Button.stories.tsx +0 -950
  35. package/src/components/Button/Button.tsx +0 -337
  36. package/src/components/Button/Button.types.ts +0 -180
  37. package/src/components/Button/icons.tsx +0 -87
  38. package/src/components/Button/index.ts +0 -3
  39. package/src/components/Checkbox/Checkbox.stories.tsx +0 -453
  40. package/src/components/Checkbox/Checkbox.tsx +0 -208
  41. package/src/components/Checkbox/Checkbox.types.ts +0 -61
  42. package/src/components/DescriptionList/DescriptionList.stories.tsx +0 -250
  43. package/src/components/DescriptionList/DescriptionList.tsx +0 -96
  44. package/src/components/DescriptionList/DescriptionList.types.ts +0 -29
  45. package/src/components/Divider/Divider.stories.tsx +0 -263
  46. package/src/components/Divider/Divider.tsx +0 -80
  47. package/src/components/Divider/Divider.types.ts +0 -24
  48. package/src/components/Dropdown/Dropdown.stories.tsx +0 -552
  49. package/src/components/Dropdown/Dropdown.tsx +0 -422
  50. package/src/components/Dropdown/Dropdown.types.ts +0 -146
  51. package/src/components/Dropdown/README.md +0 -266
  52. package/src/components/Dropdown/icons.tsx +0 -72
  53. package/src/components/Dropdown/index.ts +0 -8
  54. package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.stories.tsx +0 -317
  55. package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.tsx +0 -287
  56. package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts +0 -111
  57. package/src/components/DropdownItemCollapsible/README.md +0 -264
  58. package/src/components/DropdownItemCollapsible/icons.tsx +0 -57
  59. package/src/components/DropdownItemCollapsible/index.ts +0 -12
  60. package/src/components/DropdownItemHeading/DropdownItemHeading.stories.tsx +0 -386
  61. package/src/components/DropdownItemHeading/DropdownItemHeading.tsx +0 -216
  62. package/src/components/DropdownItemHeading/DropdownItemHeading.types.ts +0 -93
  63. package/src/components/DropdownItemHeading/README.md +0 -573
  64. package/src/components/DropdownItemHeading/icons.tsx +0 -125
  65. package/src/components/DropdownItemHeading/index.ts +0 -3
  66. package/src/components/Input/Input.stories.tsx +0 -583
  67. package/src/components/Input/Input.tsx +0 -204
  68. package/src/components/Input/Input.types.ts +0 -80
  69. package/src/components/Input/icons.tsx +0 -145
  70. package/src/components/Input/index.ts +0 -2
  71. package/src/components/LoginView/LoginView.stories.tsx +0 -148
  72. package/src/components/LoginView/LoginView.tsx +0 -426
  73. package/src/components/LoginView/LoginView.types.ts +0 -52
  74. package/src/components/LoginView/README.md +0 -396
  75. package/src/components/LoginView/icons.tsx +0 -85
  76. package/src/components/LoginView/index.ts +0 -3
  77. package/src/components/Navbar/Navbar.stories.tsx +0 -810
  78. package/src/components/Navbar/Navbar.tsx +0 -755
  79. package/src/components/Navbar/Navbar.types.ts +0 -219
  80. package/src/components/Navbar/README.md +0 -279
  81. package/src/components/Navbar/icons.tsx +0 -102
  82. package/src/components/Navbar/index.ts +0 -8
  83. package/src/components/NavigationBar/NavigationBar.stories.tsx +0 -406
  84. package/src/components/NavigationBar/NavigationBar.tsx +0 -246
  85. package/src/components/NavigationBar/NavigationBar.types.ts +0 -74
  86. package/src/components/NavigationBar/README.md +0 -469
  87. package/src/components/NavigationBar/index.ts +0 -2
  88. package/src/components/NavigationRail/NavigationRail.stories.tsx +0 -417
  89. package/src/components/NavigationRail/NavigationRail.tsx +0 -418
  90. package/src/components/NavigationRail/NavigationRail.types.ts +0 -109
  91. package/src/components/NavigationRail/README.md +0 -224
  92. package/src/components/NavigationRail/index.ts +0 -2
  93. package/src/components/NavigationRailItem/NavigationRailItem.stories.tsx +0 -667
  94. package/src/components/NavigationRailItem/NavigationRailItem.tsx +0 -313
  95. package/src/components/NavigationRailItem/NavigationRailItem.types.ts +0 -167
  96. package/src/components/NavigationRailItem/README.md +0 -476
  97. package/src/components/NavigationRailItem/index.ts +0 -2
  98. package/src/components/NavigationRailPanel/NavigationRailPanel.stories.tsx +0 -462
  99. package/src/components/NavigationRailPanel/NavigationRailPanel.tsx +0 -332
  100. package/src/components/NavigationRailPanel/NavigationRailPanel.types.ts +0 -178
  101. package/src/components/NavigationRailPanel/README.md +0 -461
  102. package/src/components/NavigationRailPanel/index.ts +0 -6
  103. package/src/components/NavigationRailTypes/NavigationRailTypes.stories.tsx +0 -528
  104. package/src/components/NavigationRailTypes/NavigationRailTypes.tsx +0 -378
  105. package/src/components/NavigationRailTypes/NavigationRailTypes.types.ts +0 -130
  106. package/src/components/NavigationRailTypes/README.md +0 -573
  107. package/src/components/NavigationRailTypes/icons.tsx +0 -141
  108. package/src/components/NavigationRailTypes/index.ts +0 -7
  109. package/src/components/Notification/Notification.stories.tsx +0 -513
  110. package/src/components/Notification/Notification.tsx +0 -145
  111. package/src/components/Notification/Notification.types.ts +0 -142
  112. package/src/components/Notification/README.md +0 -409
  113. package/src/components/Notification/index.ts +0 -3
  114. package/src/components/POSConvention/POSConvention.stories.tsx +0 -235
  115. package/src/components/POSConvention/POSConvention.tsx +0 -129
  116. package/src/components/POSConvention/POSConvention.types.ts +0 -38
  117. package/src/components/POSConvention/README.md +0 -123
  118. package/src/components/POSConvention/icons.tsx +0 -45
  119. package/src/components/POSConvention/index.ts +0 -3
  120. package/src/components/POSLocationButton/POSLocationButton.stories.tsx +0 -531
  121. package/src/components/POSLocationButton/POSLocationButton.tsx +0 -247
  122. package/src/components/POSLocationButton/POSLocationButton.types.ts +0 -87
  123. package/src/components/POSLocationButton/README.md +0 -253
  124. package/src/components/POSLocationButton/icons.tsx +0 -120
  125. package/src/components/POSLocationButton/index.ts +0 -14
  126. package/src/components/POSNumberButton/POSNumberButton.stories.tsx +0 -415
  127. package/src/components/POSNumberButton/POSNumberButton.tsx +0 -179
  128. package/src/components/POSNumberButton/POSNumberButton.types.ts +0 -51
  129. package/src/components/POSNumberButton/README.md +0 -321
  130. package/src/components/POSNumberButton/index.ts +0 -3
  131. package/src/components/POSProductButton/POSProductButton.stories.tsx +0 -318
  132. package/src/components/POSProductButton/POSProductButton.tsx +0 -152
  133. package/src/components/POSProductButton/POSProductButton.types.ts +0 -46
  134. package/src/components/POSProductButton/README.md +0 -269
  135. package/src/components/POSProductButton/index.ts +0 -2
  136. package/src/components/POSProductCard/POSProductCard.stories.tsx +0 -642
  137. package/src/components/POSProductCard/POSProductCard.tsx +0 -208
  138. package/src/components/POSProductCard/POSProductCard.types.ts +0 -76
  139. package/src/components/POSProductCard/README.md +0 -179
  140. package/src/components/POSProductCard/icons.tsx +0 -26
  141. package/src/components/POSProductCard/index.ts +0 -2
  142. package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +0 -753
  143. package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +0 -332
  144. package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +0 -119
  145. package/src/components/POSProductSidebarItems/README.md +0 -198
  146. package/src/components/POSProductSidebarItems/icons.tsx +0 -21
  147. package/src/components/POSProductSidebarItems/index.ts +0 -3
  148. package/src/components/POSTable/POSTable.stories.tsx +0 -737
  149. package/src/components/POSTable/POSTable.tsx +0 -401
  150. package/src/components/POSTable/POSTable.types.ts +0 -83
  151. package/src/components/POSTable/README.md +0 -286
  152. package/src/components/POSTable/index.ts +0 -7
  153. package/src/components/Pagination/Pagination.stories.tsx +0 -555
  154. package/src/components/Pagination/Pagination.tsx +0 -286
  155. package/src/components/Pagination/Pagination.types.ts +0 -93
  156. package/src/components/Pagination/README.md +0 -298
  157. package/src/components/Pagination/icons.tsx +0 -47
  158. package/src/components/Pagination/index.ts +0 -3
  159. package/src/components/Quantity/Quantity.stories.tsx +0 -457
  160. package/src/components/Quantity/Quantity.tsx +0 -289
  161. package/src/components/Quantity/Quantity.types.ts +0 -70
  162. package/src/components/Radio/Radio.stories.tsx +0 -523
  163. package/src/components/Radio/Radio.tsx +0 -170
  164. package/src/components/Radio/Radio.types.ts +0 -122
  165. package/src/components/Select/README.md +0 -299
  166. package/src/components/Select/Select.stories.tsx +0 -673
  167. package/src/components/Select/Select.tsx +0 -454
  168. package/src/components/Select/Select.types.ts +0 -148
  169. package/src/components/Select/icons.tsx +0 -50
  170. package/src/components/Select/index.ts +0 -3
  171. package/src/components/SignUpView/SignUpView.stories.tsx +0 -129
  172. package/src/components/SignUpView/SignUpView.tsx +0 -503
  173. package/src/components/SignUpView/SignUpView.types.ts +0 -58
  174. package/src/components/SignUpView/icons.tsx +0 -71
  175. package/src/components/SignUpView/index.ts +0 -3
  176. package/src/components/Switch/README.md +0 -112
  177. package/src/components/Switch/Switch.stories.tsx +0 -550
  178. package/src/components/Switch/Switch.tsx +0 -246
  179. package/src/components/Switch/Switch.types.ts +0 -67
  180. package/src/components/Table/README.md +0 -369
  181. package/src/components/Table/Table.stories.tsx +0 -805
  182. package/src/components/Table/Table.tsx +0 -688
  183. package/src/components/Table/Table.types.ts +0 -204
  184. package/src/components/Table/index.ts +0 -9
  185. package/src/components/Tabs/README.md +0 -201
  186. package/src/components/Tabs/Tabs.stories.tsx +0 -580
  187. package/src/components/Tabs/Tabs.tsx +0 -356
  188. package/src/components/Tabs/Tabs.types.ts +0 -127
  189. package/src/components/Tabs/icons.tsx +0 -129
  190. package/src/components/Tabs/index.ts +0 -11
  191. package/src/components/Textarea/Textarea.stories.tsx +0 -535
  192. package/src/components/Textarea/Textarea.tsx +0 -188
  193. package/src/components/Textarea/Textarea.types.ts +0 -54
  194. package/src/context/ThemeContext.tsx +0 -99
  195. package/src/context/index.ts +0 -1
  196. package/src/index.css +0 -29
  197. package/src/index.ts +0 -102
  198. package/src/main.tsx +0 -10
  199. package/src/views/ListView/ListView.stories.tsx +0 -329
  200. package/src/views/ListView/ListView.tsx +0 -570
  201. package/src/views/ListView/ListView.types.ts +0 -211
  202. package/src/views/ListView/icons.tsx +0 -282
  203. package/src/views/ListView/index.ts +0 -11
  204. package/src/views/LoginView/LoginView.stories.tsx +0 -148
  205. package/src/views/LoginView/LoginView.tsx +0 -426
  206. package/src/views/LoginView/LoginView.types.ts +0 -52
  207. package/src/views/LoginView/README.md +0 -396
  208. package/src/views/LoginView/icons.tsx +0 -85
  209. package/src/views/LoginView/index.ts +0 -3
  210. package/src/views/ProductsView/ProductsView.stories.tsx +0 -344
  211. package/src/views/ProductsView/ProductsView.tsx +0 -480
  212. package/src/views/ProductsView/ProductsView.types.ts +0 -238
  213. package/src/views/ProductsView/README.md +0 -312
  214. package/src/views/ProductsView/icons.tsx +0 -38
  215. package/src/views/ProductsView/index.ts +0 -8
  216. package/src/views/RecoverPasswordView/README.md +0 -269
  217. package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +0 -131
  218. package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +0 -376
  219. package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +0 -56
  220. package/src/views/RecoverPasswordView/icons.tsx +0 -17
  221. package/src/views/RecoverPasswordView/index.ts +0 -2
  222. package/src/views/SignUpView/SignUpView.stories.tsx +0 -129
  223. package/src/views/SignUpView/SignUpView.tsx +0 -503
  224. package/src/views/SignUpView/SignUpView.types.ts +0 -58
  225. package/src/views/SignUpView/icons.tsx +0 -71
  226. package/src/views/SignUpView/index.ts +0 -3
  227. package/src/views/TableLayoutView/README.md +0 -268
  228. package/src/views/TableLayoutView/TableLayoutView.stories.tsx +0 -235
  229. package/src/views/TableLayoutView/TableLayoutView.tsx +0 -461
  230. package/src/views/TableLayoutView/TableLayoutView.types.ts +0 -209
  231. package/src/views/TableLayoutView/icons.tsx +0 -113
  232. package/src/views/TableLayoutView/index.ts +0 -6
  233. package/storybook/main.ts +0 -20
  234. package/storybook/preview.tsx +0 -84
  235. package/storybook/vitest.setup.ts +0 -7
  236. package/tailwind.config.js +0 -128
@@ -1,461 +0,0 @@
1
- # NavigationRailPanel
2
-
3
- Panel de navegación vertical (rail) que puede contener múltiples secciones de items, búsqueda y encabezados. Se usa típicamente en aplicaciones con navegación compleja que requieren una estructura jerárquica.
4
-
5
- ## 📋 Tabla de Contenidos
6
-
7
- 1. [Descripción](#descripción)
8
- 2. [Características](#características)
9
- 3. [Props](#props)
10
- 4. [Estructura](#estructura)
11
- 5. [Ejemplos de Uso](#ejemplos-de-uso)
12
- 6. [Especificaciones de Figma](#especificaciones-de-figma)
13
- 7. [Colores y Dark Mode](#colores-y-dark-mode)
14
- 8. [Espaciado](#espaciado)
15
- 9. [Accesibilidad](#accesibilidad)
16
- 10. [Referencias](#referencias)
17
-
18
- ---
19
-
20
- ## Descripción
21
-
22
- El componente `NavigationRailPanel` es un contenedor de navegación vertical que organiza elementos en una estructura jerárquica. Está diseñado para uso en aplicaciones complejas que requieren navegación por categorías, búsqueda de items y menús expandibles.
23
-
24
- ### Casos de Uso
25
-
26
- - Aplicaciones con muchas opciones de navegación
27
- - Paneles de administración con menús colapsables
28
- - Sistemas de gestión con categorización
29
- - Aplicaciones POS con categorías de productos
30
- - Navegación de módulos en aplicaciones empresariales
31
-
32
- ---
33
-
34
- ## Características
35
-
36
- ✅ **Estructura Flexible**
37
- - Soporte para secciones con encabezados
38
- - Items simples y colapsables
39
- - Items anidados con indentación automática
40
-
41
- ✅ **Búsqueda Integrada**
42
- - Input de búsqueda con placeholder personalizable
43
- - Callbacks de cambio de valor
44
- - Controlable desde el padre
45
-
46
- ✅ **Encabezado Personalizable**
47
- - DropdownItemHeading reutilizado
48
- - Icono, label, descripción y acción
49
- - Callback para acción
50
-
51
- ✅ **Dark Mode Completo**
52
- - Todos los elementos inversos en dark mode
53
- - Colores adaptativos
54
- - Accesibilidad mantenida
55
-
56
- ✅ **Estados Visuales**
57
- - Hover, focus, active, disabled
58
- - Transiciones suaves
59
- - Focus rings adaptativos
60
-
61
- ✅ **Scroll**
62
- - El body es scrolleable
63
- - Encabezado y búsqueda fijos
64
- - Comportamiento nativo del navegador
65
-
66
- ✅ **Componentes Reutilizados**
67
- - `DropdownItemHeading` - Para el encabezado
68
- - `DropdownItemCollapsible` - Para items colapsables
69
- - `Input` - Para la búsqueda
70
- - `Divider` - Para separadores
71
-
72
- ---
73
-
74
- ## Props
75
-
76
- ### NavigationRailPanelProps
77
-
78
- ```typescript
79
- interface NavigationRailPanelProps {
80
- // Dimensiones
81
- height?: number | string; // Por defecto: 900
82
- width?: number | string; // Por defecto: 248
83
-
84
- // Encabezado
85
- showHeading?: boolean; // Por defecto: true
86
- heading?: {
87
- label: string;
88
- description?: string;
89
- showDescription?: boolean;
90
- iconName?: string;
91
- actionLabel?: string;
92
- showAction?: boolean;
93
- onActionClick?: () => void;
94
- };
95
-
96
- // Búsqueda
97
- showSearch?: boolean; // Por defecto: true
98
- search?: {
99
- placeholder?: string; // Por defecto: "Buscar módulo"
100
- value?: string;
101
- onChange?: (value: string) => void;
102
- showLabel?: boolean; // Por defecto: false
103
- showLink?: boolean; // Por defecto: true
104
- };
105
-
106
- // Contenido
107
- sections?: NavigationRailPanelSectionProps[];
108
- items?: NavigationRailPanelItemProps[];
109
-
110
- // Clases CSS
111
- className?: string;
112
- panelClassName?: string;
113
- }
114
- ```
115
-
116
- ### NavigationRailPanelSectionProps
117
-
118
- ```typescript
119
- interface NavigationRailPanelSectionProps {
120
- heading?: string; // Encabezado de la sección
121
- items: NavigationRailPanelItemProps[];
122
- showDivider?: boolean; // Por defecto: true
123
- className?: string;
124
- }
125
- ```
126
-
127
- ### NavigationRailPanelItemProps
128
-
129
- ```typescript
130
- interface NavigationRailPanelItemProps {
131
- label: string; // Texto del item
132
- icon?: ReactNode; // Icono opcional
133
- isCollapsible?: boolean; // Por defecto: false
134
- children?: DropdownItemCollapsibleChildProps[];
135
- defaultOpen?: boolean; // Por defecto: false
136
- disabled?: boolean; // Por defecto: false
137
- onClick?: (e: React.MouseEvent) => void;
138
- onOpenChange?: (open: boolean) => void;
139
- className?: string;
140
- }
141
- ```
142
-
143
- ---
144
-
145
- ## Estructura
146
-
147
- ### Layout Principal
148
-
149
- ```
150
- ┌─────────────────────────┐
151
- │ Encabezado (Opcional) │ <- DropdownItemHeading
152
- ├─────────────────────────┤
153
- │ Búsqueda (Opcional) │ <- Input
154
- ├─────────────────────────┤
155
- │ Body (Scrolleable) │
156
- │ ┌─────────────────────┐ │
157
- │ │ Section Heading │ │
158
- │ │ Item 1 (Simple) │ │
159
- │ │ Item 2 (Collapsible)│
160
- │ │ ├─ Sub Item 1 │ │
161
- │ │ └─ Sub Item 2 │ │
162
- │ │ --- │ │
163
- │ │ Section Heading │ │
164
- │ │ Item 3 │ │
165
- │ │ Item 4 │ │
166
- │ └─────────────────────┘ │
167
- └─────────────────────────┘
168
- ```
169
-
170
- ### Especificaciones
171
-
172
- | Elemento | Ancho | Altura | Padding | Border Radius |
173
- |----------|-------|--------|---------|---------------|
174
- | Panel | 248px | Variable | 12px | 0px |
175
- | Encabezado | 224px | Auto | 8v, 16h | 8px |
176
- | Búsqueda | 224px | 40px | 8v, 16h | 6px |
177
- | Item | 224px | 32px | 8v, 16p | 8px |
178
- | Section Heading | 224px | Auto | 12t, 4b | 0px |
179
-
180
- ---
181
-
182
- ## Ejemplos de Uso
183
-
184
- ### Ejemplo Simple con Secciones
185
-
186
- ```tsx
187
- import { NavigationRailPanel } from '@/components/NavigationRailPanel';
188
-
189
- export function Dashboard() {
190
- return (
191
- <NavigationRailPanel
192
- height={900}
193
- showHeading={true}
194
- heading={{
195
- label: 'Settings',
196
- description: 'Configure your preferences',
197
- iconName: 'cog-6-tooth',
198
- }}
199
- showSearch={true}
200
- sections={[
201
- {
202
- heading: 'NAVIGATION',
203
- items: [
204
- { label: 'Dashboard', isCollapsible: false },
205
- { label: 'Analytics', isCollapsible: false },
206
- ],
207
- },
208
- {
209
- heading: 'MANAGEMENT',
210
- items: [
211
- {
212
- label: 'Users',
213
- isCollapsible: true,
214
- children: [
215
- { label: 'Active Users' },
216
- { label: 'Inactive Users' },
217
- ],
218
- },
219
- ],
220
- },
221
- ]}
222
- />
223
- );
224
- }
225
- ```
226
-
227
- ### Ejemplo sin Encabezado y Búsqueda
228
-
229
- ```tsx
230
- <NavigationRailPanel
231
- showHeading={false}
232
- showSearch={false}
233
- items={[
234
- { label: 'Dashboard' },
235
- { label: 'Users' },
236
- { label: 'Settings' },
237
- ]}
238
- />
239
- ```
240
-
241
- ### Ejemplo con Callbacks
242
-
243
- ```tsx
244
- <NavigationRailPanel
245
- heading={{
246
- label: 'Menu',
247
- actionLabel: 'Clear',
248
- showAction: true,
249
- onActionClick: () => console.log('Clear clicked'),
250
- }}
251
- search={{
252
- placeholder: 'Search...',
253
- onChange: (value) => console.log('Search:', value),
254
- }}
255
- items={[
256
- {
257
- label: 'Item 1',
258
- onClick: () => console.log('Item 1 clicked'),
259
- },
260
- {
261
- label: 'Category',
262
- isCollapsible: true,
263
- onOpenChange: (open) => console.log('Toggled:', open),
264
- children: [
265
- { label: 'Sub Item' },
266
- ],
267
- },
268
- ]}
269
- />
270
- ```
271
-
272
- ### Ejemplo con Items Deshabilitados
273
-
274
- ```tsx
275
- <NavigationRailPanel
276
- items={[
277
- { label: 'Active', disabled: false },
278
- { label: 'Disabled', disabled: true },
279
- {
280
- label: 'Category',
281
- isCollapsible: true,
282
- disabled: true,
283
- children: [
284
- { label: 'Sub Item 1' },
285
- { label: 'Sub Item 2', disabled: true },
286
- ],
287
- },
288
- ]}
289
- />
290
- ```
291
-
292
- ---
293
-
294
- ## Especificaciones de Figma
295
-
296
- - **Nodo**: 6134-34415
297
- - **URL**: https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6134-34415
298
-
299
- ### Dimensiones
300
-
301
- - Altura: 900px (variable)
302
- - Ancho: 248px (estándar)
303
- - Padding: 12px (todo)
304
- - Border radius: 0px (panel completo)
305
-
306
- ### Tipografía
307
-
308
- | Elemento | Escala | Font Weight | Size | Line Height |
309
- |----------|--------|------------|------|------------|
310
- | Encabezado | Label/Small | 700 (Bold) | 14px | 20px |
311
- | Descripción | Paragraph/Tiny | 400 | 12px | 16px |
312
- | Section Heading | Paragraph/Tiny | 400 | 12px | 16px |
313
- | Item | Paragraph/Small | 400 | 14px | 20px |
314
- | Acción | Paragraph/XXSmall | 400 | 10px | 12px |
315
-
316
- ---
317
-
318
- ## Colores y Dark Mode
319
-
320
- ### Light Mode
321
-
322
- | Elemento | Color | Hex |
323
- |----------|-------|-----|
324
- | Background | bg-primary | #ffffff |
325
- | Border | border-primary | #e4e4e7 |
326
- | Heading text | content-primary | #18181b |
327
- | Section heading | content-tertiary | #71717a |
328
- | Item text | content-primary | #18181b |
329
- | Icon | content-secondary | #a1a1aa |
330
- | Hover bg | background-custom-primary | #dbeefe |
331
-
332
- ### Dark Mode
333
-
334
- | Elemento | Color | Hex |
335
- |----------|-------|-----|
336
- | Background | dark:bg-zinc-900 | #18181b |
337
- | Border | dark:border-zinc-800 | #3f3f46 |
338
- | Heading text | dark:content-primary-dark | #fafafa |
339
- | Section heading | dark:content-tertiary-dark | #a1a1aa |
340
- | Item text | dark:content-primary-dark | #fafafa |
341
- | Icon | dark:content-secondary | #a1a1aa |
342
- | Hover bg | dark:bg-background-custom-primary-dark | #0e5ab0 |
343
-
344
- ### Tokens Utilizados
345
-
346
- - **Colores**: `content-primary`, `content-secondary`, `content-tertiary`, `bg-primary`, `border-primary`, `background-custom-primary`
347
- - **Dark Mode**: Se invierten automáticamente con prefijo `dark:`
348
- - **No hay colores hardcodeados**: Todo usa el sistema de tokens
349
-
350
- ---
351
-
352
- ## Espaciado
353
-
354
- | Elemento | Valor | Px |
355
- |----------|-------|-----|
356
- | Panel padding | 3 | 12px |
357
- | Item padding (h) | 4 | 16px |
358
- | Item padding (v) | 2 | 8px |
359
- | Gap entre items | 0.5 | 2px |
360
- | Gap entre elemento e icono | 3 | 12px |
361
- | Section heading pt | 3 | 12px |
362
- | Section heading pb | 1 | 4px |
363
- | Divider margin top | 3 | 12px |
364
-
365
- ---
366
-
367
- ## Accesibilidad
368
-
369
- ✅ **Focus Management**
370
- - Focus rings adaptativos de 4px
371
- - Offset de 2px en light mode
372
- - Offset transparente en dark mode
373
- - Color focus: primary-custom-400 (#60b6fa)
374
-
375
- ✅ **Keyboard Navigation**
376
- - Tab para navegar entre items
377
- - Enter/Space para activar
378
- - Arrow keys para items colapsables (heredado de DropdownItemCollapsible)
379
-
380
- ✅ **ARIA**
381
- - Roles semánticos (button, heading, menuitem)
382
- - aria-disabled para items deshabilitados
383
- - aria-expanded para items colapsables
384
-
385
- ✅ **Colores**
386
- - Contraste AA/AAA mantenido
387
- - No depender solo de color para indicar estado
388
- - Íconos con suficiente contraste
389
-
390
- ---
391
-
392
- ## Dark Mode
393
-
394
- El componente es **100% compatible con dark mode**:
395
-
396
- ```tsx
397
- // El componente detecta automáticamente el tema
398
- <NavigationRailPanel
399
- // Automáticamente invierte colores en dark mode
400
- showHeading={true}
401
- showSearch={true}
402
- />
403
- ```
404
-
405
- ### Cambios en Dark Mode
406
-
407
- 1. **Background**: white (#ffffff) → zinc-900 (#18181b)
408
- 2. **Border**: border-primary (#e4e4e7) → border-zinc-800 (#3f3f46)
409
- 3. **Text**: content-primary (#18181b) → content-primary-dark (#fafafa)
410
- 4. **Icon hover**: dbeefe (#dbeefe) → 0e5ab0 (#0e5ab0)
411
- 5. **Focus ring offset**: blanco → zinc-900
412
-
413
- ---
414
-
415
- ## Estados Visuales
416
-
417
- ### Default
418
- - Sin interacción
419
- - Colores base
420
-
421
- ### Hover
422
- - Background sutil: `background-custom-primary`
423
- - Cursor pointer
424
- - Transición suave
425
-
426
- ### Focus
427
- - Focus ring de 4px
428
- - Color: `primary-custom-400`
429
- - Offset: 2px (light) / transparent (dark)
430
-
431
- ### Active
432
- - Item colapsable expandido
433
- - Indicado por chevron rotado
434
-
435
- ### Disabled
436
- - Opacidad: 50%
437
- - Cursor: not-allowed
438
- - Sin hover/focus interactivo
439
-
440
- ---
441
-
442
- ## Referencias
443
-
444
- ### Documentación del Sistema
445
-
446
- - [@see docs/colors.md](../../../docs/colors.md) - Sistema de colores
447
- - [@see docs/typography.md](../../../docs/typography.md) - Sistema tipográfico
448
- - [@see docs/spacing.md](../../../docs/spacing.md) - Sistema de espaciado
449
- - [@see docs/shadows.md](../../../docs/shadows.md) - Sistema de sombras
450
-
451
- ### Componentes Relacionados
452
-
453
- - [@see ../DropdownItemHeading](../DropdownItemHeading) - Encabezado reutilizado
454
- - [@see ../DropdownItemCollapsible](../DropdownItemCollapsible) - Items colapsables
455
- - [@see ../Input](../Input) - Búsqueda
456
- - [@see ../Divider](../Divider) - Separadores
457
-
458
- ### Figma
459
-
460
- - [NavigationRailPanel en Figma](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6134-34415)
461
- - [Design System Documentation](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit)
@@ -1,6 +0,0 @@
1
- export { NavigationRailPanel } from './NavigationRailPanel';
2
- export type {
3
- NavigationRailPanelProps,
4
- NavigationRailPanelSectionProps,
5
- NavigationRailPanelItemProps,
6
- } from './NavigationRailPanel.types';