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,250 +1,250 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { DescriptionList } from './DescriptionList';
3
-
4
- /**
5
- * DescriptionList - Componente de lista de descripción del sistema de diseño Siesa
6
- *
7
- * Sistema completo para mostrar pares clave-valor con soporte para:
8
- * - **Layout de dos columnas**: Term a la izquierda, Details a la derecha
9
- * - **Separador**: Línea inferior sutil entre items
10
- * - **Dark mode**: Adaptación completa al tema oscuro
11
- * - **Responsive**: Se adapta al contenedor
12
- */
13
- const meta = {
14
- title: 'Siesa UI Kit/DescriptionList',
15
- component: DescriptionList,
16
- parameters: {
17
- layout: 'centered',
18
- docs: {
19
- description: {
20
- component:
21
- 'Componente para mostrar información estructurada en formato clave-valor. Ideal para detalles de productos, información de usuarios, datos de eventos, etc.',
22
- },
23
- },
24
- backgrounds: {
25
- default: 'light',
26
- values: [
27
- { name: 'light', value: '#ffffff' },
28
- { name: 'gray', value: '#f3f4f6' },
29
- { name: 'dark', value: '#1f2937' },
30
- ],
31
- },
32
- },
33
- tags: ['autodocs'],
34
- argTypes: {
35
- term: {
36
- control: 'text',
37
- description: 'Término o etiqueta (columna izquierda)',
38
- table: {
39
- type: { summary: 'string' },
40
- category: 'Content',
41
- },
42
- },
43
- details: {
44
- control: 'text',
45
- description: 'Detalles o valor (columna derecha)',
46
- table: {
47
- type: { summary: 'string' },
48
- category: 'Content',
49
- },
50
- },
51
- },
52
- } satisfies Meta<typeof DescriptionList>;
53
-
54
- export default meta;
55
- type Story = StoryObj<typeof meta>;
56
-
57
- // ============================================
58
- // 1. PLAYGROUND INTERACTIVO
59
- // ============================================
60
-
61
- /**
62
- * Playground Interactivo
63
- *
64
- * Usa los controles para experimentar con el DescriptionList en tiempo real.
65
- */
66
- export const Playground: Story = {
67
- name: 'Playground',
68
- args: {
69
- term: 'Cliente',
70
- details: 'Jhonatan Díaz',
71
- },
72
- render: (args) => (
73
- <div className="w-[583px]">
74
- <DescriptionList {...args} />
75
- </div>
76
- ),
77
- };
78
-
79
- // ============================================
80
- // 2. LISTA SIMPLE
81
- // ============================================
82
-
83
- /**
84
- * Lista Simple
85
- *
86
- * Ejemplo de varios items en una lista de descripción.
87
- */
88
- export const SimpleList: Story = {
89
- name: 'Lista Simple',
90
- args: {
91
- term: '',
92
- details: '',
93
- },
94
- render: () => (
95
- <div className="w-[583px]">
96
- <DescriptionList term="Cliente" details="Jhonatan Díaz" />
97
- <DescriptionList term="Evento" details="Bear Hug: Concierto en Vivo" />
98
- <DescriptionList term="Monto" details="$120,000 COP" />
99
- <DescriptionList term="Tarifa" details="$20,000 COP" />
100
- </div>
101
- ),
102
- };
103
-
104
- // ============================================
105
- // 3. CASOS DE USO REALES
106
- // ============================================
107
-
108
- /**
109
- * Casos de Uso Reales
110
- *
111
- * Ejemplos prácticos de cómo usar DescriptionList en situaciones reales.
112
- */
113
- export const UseCases: Story = {
114
- name: 'Casos de Uso Reales',
115
- args: {
116
- term: '',
117
- details: '',
118
- },
119
- render: () => (
120
- <div className="space-y-6">
121
- {/* Detalles de pedido */}
122
- <div>
123
- <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Detalles de Pedido</h3>
124
- <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
125
- <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Orden #12345</h4>
126
- <div>
127
- <DescriptionList term="Cliente" details="Juan Pérez" />
128
- <DescriptionList term="Fecha" details="15 de Enero, 2024" />
129
- <DescriptionList term="Estado" details="Entregado" />
130
- <DescriptionList term="Total" details="$250.00 USD" />
131
- <DescriptionList term="Método de Pago" details="Tarjeta de Crédito" />
132
- </div>
133
- </div>
134
- </div>
135
-
136
- {/* Información de evento */}
137
- <div>
138
- <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Información de Evento</h3>
139
- <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
140
- <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Detalles del Concierto</h4>
141
- <div>
142
- <DescriptionList term="Evento" details="Bear Hug: Concierto en Vivo" />
143
- <DescriptionList term="Lugar" details="Madison Square Garden" />
144
- <DescriptionList term="Fecha" details="20 de Marzo, 2024" />
145
- <DescriptionList term="Hora" details="8:00 PM" />
146
- <DescriptionList term="Precio del Boleto" details="$120,000 COP" />
147
- <DescriptionList term="Tarifa de Servicio" details="$20,000 COP" />
148
- </div>
149
- </div>
150
- </div>
151
-
152
- {/* Perfil de usuario */}
153
- <div>
154
- <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Perfil de Usuario</h3>
155
- <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
156
- <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Información de Usuario</h4>
157
- <div>
158
- <DescriptionList term="Nombre" details="Jhonatan Díaz" />
159
- <DescriptionList term="Correo Electrónico" details="jhonatan.diaz@ejemplo.com" />
160
- <DescriptionList term="Teléfono" details="+57 312 345 6789" />
161
- <DescriptionList term="Ubicación" details="Bogotá, Colombia" />
162
- <DescriptionList term="Miembro Desde" details="Enero 2023" />
163
- </div>
164
- </div>
165
- </div>
166
-
167
- {/* Detalles de producto */}
168
- <div>
169
- <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Detalles de Producto</h3>
170
- <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
171
- <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Especificaciones del Producto</h4>
172
- <div>
173
- <DescriptionList term="Marca" details="Apple" />
174
- <DescriptionList term="Modelo" details="iPhone 15 Pro" />
175
- <DescriptionList term="Color" details="Titanio Natural" />
176
- <DescriptionList term="Almacenamiento" details="256GB" />
177
- <DescriptionList term="Condición" details="Nuevo" />
178
- <DescriptionList term="Garantía" details="1 Año" />
179
- </div>
180
- </div>
181
- </div>
182
-
183
- {/* Información de factura */}
184
- <div>
185
- <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Información de Factura</h3>
186
- <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
187
- <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Factura #INV-2024-001</h4>
188
- <div>
189
- <DescriptionList term="Fecha de Factura" details="15 de Enero, 2024" />
190
- <DescriptionList term="Fecha de Vencimiento" details="15 de Febrero, 2024" />
191
- <DescriptionList term="Subtotal" details="$200.00" />
192
- <DescriptionList term="Impuesto (19%)" details="$38.00" />
193
- <DescriptionList term="Total" details="$238.00" />
194
- <DescriptionList term="Estado" details="Pagado" />
195
- </div>
196
- </div>
197
- </div>
198
-
199
- {/* Detalles de propiedad */}
200
- <div>
201
- <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Detalles de Propiedad</h3>
202
- <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
203
- <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Listado de Propiedad</h4>
204
- <div>
205
- <DescriptionList term="Dirección" details="Calle Principal 123" />
206
- <DescriptionList term="Ciudad" details="Medellín" />
207
- <DescriptionList term="Precio" details="$450,000,000 COP" />
208
- <DescriptionList term="Habitaciones" details="3" />
209
- <DescriptionList term="Baños" details="2" />
210
- <DescriptionList term="Área" details="120 m²" />
211
- <DescriptionList term="Año de Construcción" details="2020" />
212
- </div>
213
- </div>
214
- </div>
215
- </div>
216
- ),
217
- };
218
-
219
- // ============================================
220
- // 4. LAYOUT COMPACTO
221
- // ============================================
222
-
223
- /**
224
- * Layout Compacto
225
- *
226
- * Ejemplo con layout más compacto para espacios reducidos.
227
- */
228
- export const CompactLayout: Story = {
229
- name: 'Diseño Compacto',
230
- args: {
231
- term: '',
232
- details: '',
233
- },
234
- render: () => (
235
- <div className="space-y-6">
236
- <div>
237
- <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Vista Compacta</h3>
238
- <div className="p-4 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[266px]">
239
- <h4 className="font-bold text-sm mb-3 text-gray-900 dark:text-white">Resumen</h4>
240
- <div>
241
- <DescriptionList term="Cliente" details="Jhonatan Díaz" />
242
- <DescriptionList term="Evento" details="Bear Hug: Concierto en Vivo" />
243
- <DescriptionList term="Monto" details="$120,000 COP" />
244
- <DescriptionList term="Tarifa" details="$20,000 COP" />
245
- </div>
246
- </div>
247
- </div>
248
- </div>
249
- ),
250
- };
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { DescriptionList } from './DescriptionList';
3
+
4
+ /**
5
+ * DescriptionList - Componente de lista de descripción del sistema de diseño Siesa
6
+ *
7
+ * Sistema completo para mostrar pares clave-valor con soporte para:
8
+ * - **Layout de dos columnas**: Term a la izquierda, Details a la derecha
9
+ * - **Separador**: Línea inferior sutil entre items
10
+ * - **Dark mode**: Adaptación completa al tema oscuro
11
+ * - **Responsive**: Se adapta al contenedor
12
+ */
13
+ const meta = {
14
+ title: 'Siesa UI Kit/DescriptionList',
15
+ component: DescriptionList,
16
+ parameters: {
17
+ layout: 'centered',
18
+ docs: {
19
+ description: {
20
+ component:
21
+ 'Componente para mostrar información estructurada en formato clave-valor. Ideal para detalles de productos, información de usuarios, datos de eventos, etc.',
22
+ },
23
+ },
24
+ backgrounds: {
25
+ default: 'light',
26
+ values: [
27
+ { name: 'light', value: '#ffffff' },
28
+ { name: 'gray', value: '#f3f4f6' },
29
+ { name: 'dark', value: '#1f2937' },
30
+ ],
31
+ },
32
+ },
33
+ tags: ['autodocs'],
34
+ argTypes: {
35
+ term: {
36
+ control: 'text',
37
+ description: 'Término o etiqueta (columna izquierda)',
38
+ table: {
39
+ type: { summary: 'string' },
40
+ category: 'Content',
41
+ },
42
+ },
43
+ details: {
44
+ control: 'text',
45
+ description: 'Detalles o valor (columna derecha)',
46
+ table: {
47
+ type: { summary: 'string' },
48
+ category: 'Content',
49
+ },
50
+ },
51
+ },
52
+ } satisfies Meta<typeof DescriptionList>;
53
+
54
+ export default meta;
55
+ type Story = StoryObj<typeof meta>;
56
+
57
+ // ============================================
58
+ // 1. PLAYGROUND INTERACTIVO
59
+ // ============================================
60
+
61
+ /**
62
+ * Playground Interactivo
63
+ *
64
+ * Usa los controles para experimentar con el DescriptionList en tiempo real.
65
+ */
66
+ export const Playground: Story = {
67
+ name: 'Playground',
68
+ args: {
69
+ term: 'Cliente',
70
+ details: 'Jhonatan Díaz',
71
+ },
72
+ render: (args) => (
73
+ <div className="w-[583px]">
74
+ <DescriptionList {...args} />
75
+ </div>
76
+ ),
77
+ };
78
+
79
+ // ============================================
80
+ // 2. LISTA SIMPLE
81
+ // ============================================
82
+
83
+ /**
84
+ * Lista Simple
85
+ *
86
+ * Ejemplo de varios items en una lista de descripción.
87
+ */
88
+ export const SimpleList: Story = {
89
+ name: 'Lista Simple',
90
+ args: {
91
+ term: '',
92
+ details: '',
93
+ },
94
+ render: () => (
95
+ <div className="w-[583px]">
96
+ <DescriptionList term="Cliente" details="Jhonatan Díaz" />
97
+ <DescriptionList term="Evento" details="Bear Hug: Concierto en Vivo" />
98
+ <DescriptionList term="Monto" details="$120,000 COP" />
99
+ <DescriptionList term="Tarifa" details="$20,000 COP" />
100
+ </div>
101
+ ),
102
+ };
103
+
104
+ // ============================================
105
+ // 3. CASOS DE USO REALES
106
+ // ============================================
107
+
108
+ /**
109
+ * Casos de Uso Reales
110
+ *
111
+ * Ejemplos prácticos de cómo usar DescriptionList en situaciones reales.
112
+ */
113
+ export const UseCases: Story = {
114
+ name: 'Casos de Uso Reales',
115
+ args: {
116
+ term: '',
117
+ details: '',
118
+ },
119
+ render: () => (
120
+ <div className="space-y-6">
121
+ {/* Detalles de pedido */}
122
+ <div>
123
+ <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Detalles de Pedido</h3>
124
+ <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
125
+ <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Orden #12345</h4>
126
+ <div>
127
+ <DescriptionList term="Cliente" details="Juan Pérez" />
128
+ <DescriptionList term="Fecha" details="15 de Enero, 2024" />
129
+ <DescriptionList term="Estado" details="Entregado" />
130
+ <DescriptionList term="Total" details="$250.00 USD" />
131
+ <DescriptionList term="Método de Pago" details="Tarjeta de Crédito" />
132
+ </div>
133
+ </div>
134
+ </div>
135
+
136
+ {/* Información de evento */}
137
+ <div>
138
+ <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Información de Evento</h3>
139
+ <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
140
+ <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Detalles del Concierto</h4>
141
+ <div>
142
+ <DescriptionList term="Evento" details="Bear Hug: Concierto en Vivo" />
143
+ <DescriptionList term="Lugar" details="Madison Square Garden" />
144
+ <DescriptionList term="Fecha" details="20 de Marzo, 2024" />
145
+ <DescriptionList term="Hora" details="8:00 PM" />
146
+ <DescriptionList term="Precio del Boleto" details="$120,000 COP" />
147
+ <DescriptionList term="Tarifa de Servicio" details="$20,000 COP" />
148
+ </div>
149
+ </div>
150
+ </div>
151
+
152
+ {/* Perfil de usuario */}
153
+ <div>
154
+ <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Perfil de Usuario</h3>
155
+ <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
156
+ <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Información de Usuario</h4>
157
+ <div>
158
+ <DescriptionList term="Nombre" details="Jhonatan Díaz" />
159
+ <DescriptionList term="Correo Electrónico" details="jhonatan.diaz@ejemplo.com" />
160
+ <DescriptionList term="Teléfono" details="+57 312 345 6789" />
161
+ <DescriptionList term="Ubicación" details="Bogotá, Colombia" />
162
+ <DescriptionList term="Miembro Desde" details="Enero 2023" />
163
+ </div>
164
+ </div>
165
+ </div>
166
+
167
+ {/* Detalles de producto */}
168
+ <div>
169
+ <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Detalles de Producto</h3>
170
+ <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
171
+ <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Especificaciones del Producto</h4>
172
+ <div>
173
+ <DescriptionList term="Marca" details="Apple" />
174
+ <DescriptionList term="Modelo" details="iPhone 15 Pro" />
175
+ <DescriptionList term="Color" details="Titanio Natural" />
176
+ <DescriptionList term="Almacenamiento" details="256GB" />
177
+ <DescriptionList term="Condición" details="Nuevo" />
178
+ <DescriptionList term="Garantía" details="1 Año" />
179
+ </div>
180
+ </div>
181
+ </div>
182
+
183
+ {/* Información de factura */}
184
+ <div>
185
+ <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Información de Factura</h3>
186
+ <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
187
+ <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Factura #INV-2024-001</h4>
188
+ <div>
189
+ <DescriptionList term="Fecha de Factura" details="15 de Enero, 2024" />
190
+ <DescriptionList term="Fecha de Vencimiento" details="15 de Febrero, 2024" />
191
+ <DescriptionList term="Subtotal" details="$200.00" />
192
+ <DescriptionList term="Impuesto (19%)" details="$38.00" />
193
+ <DescriptionList term="Total" details="$238.00" />
194
+ <DescriptionList term="Estado" details="Pagado" />
195
+ </div>
196
+ </div>
197
+ </div>
198
+
199
+ {/* Detalles de propiedad */}
200
+ <div>
201
+ <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Detalles de Propiedad</h3>
202
+ <div className="p-6 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[583px]">
203
+ <h4 className="font-bold text-base mb-4 text-gray-900 dark:text-white">Listado de Propiedad</h4>
204
+ <div>
205
+ <DescriptionList term="Dirección" details="Calle Principal 123" />
206
+ <DescriptionList term="Ciudad" details="Medellín" />
207
+ <DescriptionList term="Precio" details="$450,000,000 COP" />
208
+ <DescriptionList term="Habitaciones" details="3" />
209
+ <DescriptionList term="Baños" details="2" />
210
+ <DescriptionList term="Área" details="120 m²" />
211
+ <DescriptionList term="Año de Construcción" details="2020" />
212
+ </div>
213
+ </div>
214
+ </div>
215
+ </div>
216
+ ),
217
+ };
218
+
219
+ // ============================================
220
+ // 4. LAYOUT COMPACTO
221
+ // ============================================
222
+
223
+ /**
224
+ * Layout Compacto
225
+ *
226
+ * Ejemplo con layout más compacto para espacios reducidos.
227
+ */
228
+ export const CompactLayout: Story = {
229
+ name: 'Diseño Compacto',
230
+ args: {
231
+ term: '',
232
+ details: '',
233
+ },
234
+ render: () => (
235
+ <div className="space-y-6">
236
+ <div>
237
+ <h3 className="text-sm font-bold mb-4 text-gray-700 dark:text-white">Vista Compacta</h3>
238
+ <div className="p-4 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg w-[266px]">
239
+ <h4 className="font-bold text-sm mb-3 text-gray-900 dark:text-white">Resumen</h4>
240
+ <div>
241
+ <DescriptionList term="Cliente" details="Jhonatan Díaz" />
242
+ <DescriptionList term="Evento" details="Bear Hug: Concierto en Vivo" />
243
+ <DescriptionList term="Monto" details="$120,000 COP" />
244
+ <DescriptionList term="Tarifa" details="$20,000 COP" />
245
+ </div>
246
+ </div>
247
+ </div>
248
+ </div>
249
+ ),
250
+ };