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,528 +0,0 @@
1
- import type { StoryObj } from '@storybook/react';
2
- import { NavigationRailTypes } from './NavigationRailTypes';
3
- import {
4
- HomeIcon,
5
- UsersIcon,
6
- SettingsIcon,
7
- ClockIcon,
8
- } from './icons';
9
-
10
- const meta = {
11
- title: 'Navigation/NavigationRailTypes',
12
- component: NavigationRailTypes,
13
- parameters: {
14
- layout: 'fullscreen',
15
- docs: {
16
- description: {
17
- component:
18
- 'Barra de navegación lateral que permite dos modos visuales: collapsed (solo iconos) y expanded (con labels). Soporta items con badges, colapsables y búsqueda integrada.',
19
- },
20
- },
21
- },
22
- tags: ['autodocs'],
23
- };
24
-
25
- export default meta;
26
-
27
- type Story = StoryObj<typeof NavigationRailTypes>;
28
-
29
- /**
30
- * Estado por defecto: NavigationRailTypes en modo collapsed
31
- * Muestra solo iconos de navegación con botón de búsqueda
32
- */
33
- export const Collapsed: Story = {
34
- args: {
35
- collapsed: true,
36
- showRecentButton: true,
37
- items: [
38
- {
39
- id: 'home',
40
- label: 'Home',
41
- icon: <HomeIcon className="size-4" />,
42
- active: true,
43
- },
44
- {
45
- id: 'users',
46
- label: 'Users',
47
- icon: <UsersIcon className="size-4" />,
48
- badge: true,
49
- },
50
- {
51
- id: 'settings',
52
- label: 'Settings',
53
- icon: <SettingsIcon className="size-4" />,
54
- },
55
- {
56
- id: 'analytics',
57
- label: 'Analytics',
58
- icon: <HomeIcon className="size-4" />,
59
- },
60
- ],
61
- },
62
- render: (args) => {
63
- const [collapsed, setCollapsed] = React.useState(args.collapsed);
64
- return (
65
- <div className="flex h-screen bg-background-primary dark:bg-background-primary">
66
- <NavigationRailTypes
67
- {...args}
68
- collapsed={collapsed}
69
- onCollapsedChange={setCollapsed}
70
- />
71
- <div className="flex-1 p-6 overflow-auto">
72
- <h1 className="text-2xl font-bold text-content-primary dark:text-content-primary mb-4">
73
- NavigationRailTypes - Collapsed Mode
74
- </h1>
75
- <p className="text-content-secondary dark:text-content-secondary">
76
- Modo collapsed: Ancho 80px, solo iconos. Haz click en el botón de chevron para expandir.
77
- </p>
78
- </div>
79
- </div>
80
- );
81
- },
82
- };
83
-
84
- /**
85
- * Estado expandido: NavigationRailTypes en modo expanded
86
- * Muestra labels y búsqueda integrada
87
- */
88
- export const Expanded: Story = {
89
- args: {
90
- collapsed: false,
91
- showRecentButton: true,
92
- items: [
93
- {
94
- id: 'home',
95
- label: 'Home',
96
- icon: <HomeIcon className="size-4" />,
97
- active: true,
98
- },
99
- {
100
- id: 'users',
101
- label: 'Users',
102
- icon: <UsersIcon className="size-4" />,
103
- badgeCount: 5,
104
- badgeColor: 'red',
105
- },
106
- {
107
- id: 'settings',
108
- label: 'Settings',
109
- icon: <SettingsIcon className="size-4" />,
110
- },
111
- {
112
- id: 'analytics',
113
- label: 'Analytics',
114
- icon: <HomeIcon className="size-4" />,
115
- badge: true,
116
- },
117
- {
118
- id: 'reports',
119
- label: 'Reports',
120
- icon: <UsersIcon className="size-4" />,
121
- },
122
- {
123
- id: 'dashboard',
124
- label: 'Dashboard',
125
- icon: <SettingsIcon className="size-4" />,
126
- },
127
- ],
128
- },
129
- render: (args) => {
130
- const [collapsed, setCollapsed] = React.useState(args.collapsed);
131
- return (
132
- <div className="flex h-screen bg-background-primary dark:bg-background-primary">
133
- <NavigationRailTypes
134
- {...args}
135
- collapsed={collapsed}
136
- onCollapsedChange={setCollapsed}
137
- />
138
- <div className="flex-1 p-6 overflow-auto">
139
- <h1 className="text-2xl font-bold text-content-primary dark:text-content-primary mb-4">
140
- NavigationRailTypes - Expanded Mode
141
- </h1>
142
- <p className="text-content-secondary dark:text-content-secondary">
143
- Modo expandido: Ancho 215px, con labels y búsqueda. Haz click en el botón "Colapsar" para contraer.
144
- </p>
145
- </div>
146
- </div>
147
- );
148
- },
149
- };
150
-
151
- /**
152
- * Items con badges de notificación
153
- * Muestra el dot rojo de notificación en items
154
- */
155
- export const WithBadges: Story = {
156
- args: {
157
- collapsed: true,
158
- showRecentButton: true,
159
- items: [
160
- {
161
- id: 'messages',
162
- label: 'Messages',
163
- icon: <HomeIcon className="size-4" />,
164
- badge: true,
165
- },
166
- {
167
- id: 'notifications',
168
- label: 'Notifications',
169
- icon: <UsersIcon className="size-4" />,
170
- badgeCount: 12,
171
- badgeColor: 'red',
172
- },
173
- {
174
- id: 'alerts',
175
- label: 'Alerts',
176
- icon: <SettingsIcon className="size-4" />,
177
- badgeCount: 99,
178
- badgeColor: 'blue',
179
- },
180
- {
181
- id: 'clean',
182
- label: 'Clean',
183
- icon: <ClockIcon className="size-4" />,
184
- },
185
- ],
186
- },
187
- render: (args) => {
188
- const [collapsed, setCollapsed] = React.useState(args.collapsed);
189
- return (
190
- <div className="flex h-screen bg-background-primary dark:bg-background-primary">
191
- <NavigationRailTypes
192
- {...args}
193
- collapsed={collapsed}
194
- onCollapsedChange={setCollapsed}
195
- />
196
- <div className="flex-1 p-6 overflow-auto">
197
- <h1 className="text-2xl font-bold text-content-primary dark:text-content-primary mb-4">
198
- NavigationRailTypes - With Badges
199
- </h1>
200
- <p className="text-content-secondary dark:text-content-secondary">
201
- Items con badges de notificación: dot rojo para badge simple, número para contador (máximo 99+)
202
- </p>
203
- </div>
204
- </div>
205
- );
206
- },
207
- };
208
-
209
- /**
210
- * Sin botón "Recientes"
211
- * Muestra NavigationRailTypes sin el botón de recientes en footer
212
- */
213
- export const WithoutRecentButton: Story = {
214
- args: {
215
- collapsed: true,
216
- showRecentButton: false,
217
- items: [
218
- {
219
- id: 'home',
220
- label: 'Home',
221
- icon: <HomeIcon className="size-4" />,
222
- },
223
- {
224
- id: 'users',
225
- label: 'Users',
226
- icon: <UsersIcon className="size-4" />,
227
- },
228
- {
229
- id: 'settings',
230
- label: 'Settings',
231
- icon: <SettingsIcon className="size-4" />,
232
- },
233
- ],
234
- },
235
- render: (args) => {
236
- const [collapsed, setCollapsed] = React.useState(args.collapsed);
237
- return (
238
- <div className="flex h-screen bg-background-primary dark:bg-background-primary">
239
- <NavigationRailTypes
240
- {...args}
241
- collapsed={collapsed}
242
- onCollapsedChange={setCollapsed}
243
- />
244
- <div className="flex-1 p-6 overflow-auto">
245
- <h1 className="text-2xl font-bold text-content-primary dark:text-content-primary mb-4">
246
- NavigationRailTypes - Without Recent Button
247
- </h1>
248
- <p className="text-content-secondary dark:text-content-secondary">
249
- Sin el botón "Recientes" en el footer
250
- </p>
251
- </div>
252
- </div>
253
- );
254
- },
255
- };
256
-
257
- /**
258
- * Items deshabilitados
259
- * Muestra items en estado disabled
260
- */
261
- export const WithDisabledItems: Story = {
262
- args: {
263
- collapsed: true,
264
- showRecentButton: true,
265
- items: [
266
- {
267
- id: 'home',
268
- label: 'Home',
269
- icon: <HomeIcon className="size-4" />,
270
- active: true,
271
- },
272
- {
273
- id: 'users',
274
- label: 'Users',
275
- icon: <UsersIcon className="size-4" />,
276
- disabled: true,
277
- },
278
- {
279
- id: 'settings',
280
- label: 'Settings',
281
- icon: <SettingsIcon className="size-4" />,
282
- },
283
- {
284
- id: 'analytics',
285
- label: 'Analytics (Disabled)',
286
- icon: <HomeIcon className="size-4" />,
287
- disabled: true,
288
- },
289
- ],
290
- },
291
- render: (args) => {
292
- const [collapsed, setCollapsed] = React.useState(args.collapsed);
293
- return (
294
- <div className="flex h-screen bg-background-primary dark:bg-background-primary">
295
- <NavigationRailTypes
296
- {...args}
297
- collapsed={collapsed}
298
- onCollapsedChange={setCollapsed}
299
- />
300
- <div className="flex-1 p-6 overflow-auto">
301
- <h1 className="text-2xl font-bold text-content-primary dark:text-content-primary mb-4">
302
- NavigationRailTypes - With Disabled Items
303
- </h1>
304
- <p className="text-content-secondary dark:text-content-secondary">
305
- Items deshabilitados con opacidad 50% sin interacción
306
- </p>
307
- </div>
308
- </div>
309
- );
310
- },
311
- };
312
-
313
- /**
314
- * Muchos items (scroll)
315
- * Muestra NavigationRailTypes con muchos items para demostrar scroll
316
- */
317
- export const ManyItems: Story = {
318
- args: {
319
- collapsed: false,
320
- showRecentButton: true,
321
- items: Array.from({ length: 16 }, (_, i) => ({
322
- id: `item-${i}`,
323
- label: `Item ${i + 1}`,
324
- icon: i % 3 === 0 ? <HomeIcon className="size-4" /> : i % 3 === 1 ? <UsersIcon className="size-4" /> : <SettingsIcon className="size-4" />,
325
- active: i === 0,
326
- })),
327
- },
328
- render: (args) => {
329
- const [collapsed, setCollapsed] = React.useState(args.collapsed);
330
- return (
331
- <div className="flex h-screen bg-background-primary dark:bg-background-primary">
332
- <NavigationRailTypes
333
- {...args}
334
- collapsed={collapsed}
335
- onCollapsedChange={setCollapsed}
336
- />
337
- <div className="flex-1 p-6 overflow-auto">
338
- <h1 className="text-2xl font-bold text-content-primary dark:text-content-primary mb-4">
339
- NavigationRailTypes - Many Items (Scrollable)
340
- </h1>
341
- <p className="text-content-secondary dark:text-content-secondary">
342
- Con muchos items, el rail es scrollable para mantener la altura consistente (900px)
343
- </p>
344
- </div>
345
- </div>
346
- );
347
- },
348
- };
349
-
350
- /**
351
- * Con callbacks
352
- * Muestra NavigationRailTypes con manejo de eventos
353
- */
354
- export const WithCallbacks: Story = {
355
- args: {
356
- collapsed: true,
357
- showRecentButton: true,
358
- items: [
359
- {
360
- id: 'home',
361
- label: 'Home',
362
- icon: <HomeIcon className="size-4" />,
363
- },
364
- {
365
- id: 'users',
366
- label: 'Users',
367
- icon: <UsersIcon className="size-4" />,
368
- },
369
- {
370
- id: 'settings',
371
- label: 'Settings',
372
- icon: <SettingsIcon className="size-4" />,
373
- },
374
- ],
375
- },
376
- render: (args) => {
377
- const [collapsed, setCollapsed] = React.useState(args.collapsed);
378
- const [selectedItem, setSelectedItem] = React.useState<string | null>(null);
379
-
380
- return (
381
- <div className="flex h-screen bg-background-primary dark:bg-background-primary">
382
- <NavigationRailTypes
383
- {...args}
384
- collapsed={collapsed}
385
- onCollapsedChange={(newCollapsed) => {
386
- setCollapsed(newCollapsed);
387
- console.log('Collapsed changed to:', newCollapsed);
388
- }}
389
- onItemClick={(_, item) => {
390
- setSelectedItem(item.id);
391
- console.log('Item clicked:', item.id, item.label);
392
- }}
393
- />
394
- <div className="flex-1 p-6 overflow-auto">
395
- <h1 className="text-2xl font-bold text-content-primary dark:text-content-primary mb-4">
396
- NavigationRailTypes - With Callbacks
397
- </h1>
398
- <div className="space-y-4">
399
- <div className="p-4 bg-background-secondary dark:bg-background-secondary rounded-lg border border-border-primary dark:border-border-primary">
400
- <p className="text-sm font-semibold text-content-primary dark:text-content-primary">
401
- Estado:
402
- </p>
403
- <p className="text-content-secondary dark:text-content-secondary">
404
- Collapsed: {collapsed ? 'Sí' : 'No'}
405
- </p>
406
- <p className="text-content-secondary dark:text-content-secondary">
407
- Item seleccionado: {selectedItem || 'Ninguno'}
408
- </p>
409
- </div>
410
- <p className="text-xs text-content-tertiary dark:text-content-tertiary">
411
- Abre la consola (F12) para ver los logs de los eventos
412
- </p>
413
- </div>
414
- </div>
415
- </div>
416
- );
417
- },
418
- };
419
-
420
- // Importar React para las historias
421
- import React from 'react';
422
-
423
- /**
424
- * Ejemplo con muchos items para vista expandida
425
- * Demuestra cómo se vería con una navegación completa
426
- */
427
- export const ExpandedWithManyItems: Story = {
428
- args: {
429
- collapsed: false,
430
- showRecentButton: true,
431
- items: [
432
- {
433
- id: 'dashboard',
434
- label: 'Dashboard',
435
- icon: <HomeIcon className="size-4" />,
436
- active: true,
437
- },
438
- {
439
- id: 'users',
440
- label: 'Usuarios',
441
- icon: <UsersIcon className="size-4" />,
442
- badgeCount: 3,
443
- badgeColor: 'blue',
444
- },
445
- {
446
- id: 'products',
447
- label: 'Productos',
448
- icon: <HomeIcon className="size-4" />,
449
- },
450
- {
451
- id: 'orders',
452
- label: 'Pedidos',
453
- icon: <UsersIcon className="size-4" />,
454
- badge: true,
455
- },
456
- {
457
- id: 'analytics',
458
- label: 'Analítica',
459
- icon: <SettingsIcon className="size-4" />,
460
- },
461
- {
462
- id: 'reports',
463
- label: 'Reportes',
464
- icon: <HomeIcon className="size-4" />,
465
- },
466
- {
467
- id: 'settings',
468
- label: 'Configuración',
469
- icon: <SettingsIcon className="size-4" />,
470
- },
471
- {
472
- id: 'team',
473
- label: 'Equipo',
474
- icon: <UsersIcon className="size-4" />,
475
- },
476
- ],
477
- },
478
- render: (args) => {
479
- const [collapsed, setCollapsed] = React.useState(args.collapsed);
480
-
481
- return (
482
- <div className="flex h-screen bg-background-primary dark:bg-background-primary">
483
- <NavigationRailTypes
484
- {...args}
485
- collapsed={collapsed}
486
- onCollapsedChange={setCollapsed}
487
- />
488
- <div className="flex-1 p-6 overflow-auto">
489
- <h1 className="text-2xl font-bold text-content-primary dark:text-content-primary mb-4">
490
- NavigationRailTypes - Expanded with Many Items
491
- </h1>
492
- <p className="text-content-secondary dark:text-content-secondary mb-6">
493
- Vista expandida (215px) con múltiples items de navegación. Los items se scrollean manteniéndose dentro de los 900px de altura total.
494
- </p>
495
-
496
- <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
497
- <div className="p-4 bg-background-secondary dark:bg-background-secondary rounded-lg border border-border-primary dark:border-border-primary">
498
- <h3 className="font-semibold text-content-primary dark:text-content-primary mb-2">
499
- Características
500
- </h3>
501
- <ul className="space-y-2 text-sm text-content-secondary dark:text-content-secondary">
502
- <li>✓ Items con etiquetas completas</li>
503
- <li>✓ Búsqueda integrada en header</li>
504
- <li>✓ Botón "Recientes" full-width</li>
505
- <li>✓ Botón "Colapsar" con chevron</li>
506
- <li>✓ Scroll para muchos items</li>
507
- <li>✓ Badges de notificación</li>
508
- </ul>
509
- </div>
510
-
511
- <div className="p-4 bg-background-secondary dark:bg-background-secondary rounded-lg border border-border-primary dark:border-border-primary">
512
- <h3 className="font-semibold text-content-primary dark:text-content-primary mb-2">
513
- Dimensiones
514
- </h3>
515
- <ul className="space-y-2 text-sm text-content-secondary dark:text-content-secondary font-mono">
516
- <li>Ancho: <span className="text-content-primary dark:text-content-primary">215px</span></li>
517
- <li>Alto: <span className="text-content-primary dark:text-content-primary">900px</span></li>
518
- <li>Padding items: <span className="text-content-primary dark:text-content-primary">12px</span></li>
519
- <li>Gap items: <span className="text-content-primary dark:text-content-primary">2px</span></li>
520
- </ul>
521
- </div>
522
- </div>
523
- </div>
524
- </div>
525
- );
526
- },
527
- };
528
-