siesa-ui-kit 1.0.0

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 (198) hide show
  1. package/README.md +89 -0
  2. package/bin/install.cjs +502 -0
  3. package/bin/prepare-publish.cjs +28 -0
  4. package/bin/restore-folders.cjs +28 -0
  5. package/claude/agents/siesa-ui-kit-specialist.md +2401 -0
  6. package/claude/prompts/component-template.md +121 -0
  7. package/claude/settings.local.json +61 -0
  8. package/docs/border-radius.md +1261 -0
  9. package/docs/colors.md +832 -0
  10. package/docs/dark-mode-guide.md +1426 -0
  11. package/docs/filters.md +1243 -0
  12. package/docs/icons.md +1283 -0
  13. package/docs/shadows.md +1377 -0
  14. package/docs/spacing.md +1684 -0
  15. package/docs/typography.md +1268 -0
  16. package/package.json +83 -0
  17. package/postcss.config.cjs +6 -0
  18. package/public/,Business Logo.png +0 -0
  19. package/public/.Siesa Logo.png +0 -0
  20. package/public/bg_siesa.png +0 -0
  21. package/public/siesa_logo_mobile.png +0 -0
  22. package/public/vite.svg +1 -0
  23. package/src/App.css +42 -0
  24. package/src/App.tsx +8 -0
  25. package/src/ButtonTest.tsx +147 -0
  26. package/src/assets/fonts/README.md +261 -0
  27. package/src/assets/fonts/SiesaBT/SiesaBT-Bold.otf +0 -0
  28. package/src/assets/fonts/SiesaBT/SiesaBT-Light.otf +0 -0
  29. package/src/assets/fonts/SiesaBT/SiesaBT-Regular.otf +0 -0
  30. package/src/assets/react.svg +1 -0
  31. package/src/components/Alert/Alert.stories.tsx +332 -0
  32. package/src/components/Alert/Alert.tsx +106 -0
  33. package/src/components/Alert/Alert.types.ts +54 -0
  34. package/src/components/Avatar/Avatar.stories.tsx +494 -0
  35. package/src/components/Avatar/Avatar.tsx +143 -0
  36. package/src/components/Avatar/Avatar.types.ts +53 -0
  37. package/src/components/Badge/Badge.stories.tsx +339 -0
  38. package/src/components/Badge/Badge.tsx +278 -0
  39. package/src/components/Badge/Badge.types.ts +58 -0
  40. package/src/components/Button/Button.stories.tsx +950 -0
  41. package/src/components/Button/Button.tsx +337 -0
  42. package/src/components/Button/Button.types.ts +180 -0
  43. package/src/components/Button/icons.tsx +87 -0
  44. package/src/components/Button/index.ts +3 -0
  45. package/src/components/Checkbox/Checkbox.stories.tsx +453 -0
  46. package/src/components/Checkbox/Checkbox.tsx +208 -0
  47. package/src/components/Checkbox/Checkbox.types.ts +61 -0
  48. package/src/components/DescriptionList/DescriptionList.stories.tsx +250 -0
  49. package/src/components/DescriptionList/DescriptionList.tsx +96 -0
  50. package/src/components/DescriptionList/DescriptionList.types.ts +29 -0
  51. package/src/components/Divider/Divider.stories.tsx +263 -0
  52. package/src/components/Divider/Divider.tsx +80 -0
  53. package/src/components/Divider/Divider.types.ts +24 -0
  54. package/src/components/Dropdown/Dropdown.stories.tsx +552 -0
  55. package/src/components/Dropdown/Dropdown.tsx +422 -0
  56. package/src/components/Dropdown/Dropdown.types.ts +146 -0
  57. package/src/components/Dropdown/README.md +266 -0
  58. package/src/components/Dropdown/icons.tsx +72 -0
  59. package/src/components/Dropdown/index.ts +8 -0
  60. package/src/components/Input/Input.stories.tsx +583 -0
  61. package/src/components/Input/Input.tsx +204 -0
  62. package/src/components/Input/Input.types.ts +80 -0
  63. package/src/components/Input/icons.tsx +145 -0
  64. package/src/components/Input/index.ts +2 -0
  65. package/src/components/LoginView/LoginView.stories.tsx +148 -0
  66. package/src/components/LoginView/LoginView.tsx +426 -0
  67. package/src/components/LoginView/LoginView.types.ts +52 -0
  68. package/src/components/LoginView/README.md +396 -0
  69. package/src/components/LoginView/icons.tsx +85 -0
  70. package/src/components/LoginView/index.ts +3 -0
  71. package/src/components/Navbar/Navbar.stories.tsx +810 -0
  72. package/src/components/Navbar/Navbar.tsx +755 -0
  73. package/src/components/Navbar/Navbar.types.ts +219 -0
  74. package/src/components/Navbar/README.md +279 -0
  75. package/src/components/Navbar/icons.tsx +102 -0
  76. package/src/components/Navbar/index.ts +8 -0
  77. package/src/components/NavigationBar/NavigationBar.stories.tsx +406 -0
  78. package/src/components/NavigationBar/NavigationBar.tsx +246 -0
  79. package/src/components/NavigationBar/NavigationBar.types.ts +74 -0
  80. package/src/components/NavigationBar/README.md +469 -0
  81. package/src/components/NavigationBar/index.ts +2 -0
  82. package/src/components/NavigationRail/NavigationRail.stories.tsx +417 -0
  83. package/src/components/NavigationRail/NavigationRail.tsx +418 -0
  84. package/src/components/NavigationRail/NavigationRail.types.ts +109 -0
  85. package/src/components/NavigationRail/README.md +224 -0
  86. package/src/components/NavigationRail/index.ts +2 -0
  87. package/src/components/Notification/Notification.stories.tsx +513 -0
  88. package/src/components/Notification/Notification.tsx +145 -0
  89. package/src/components/Notification/Notification.types.ts +142 -0
  90. package/src/components/Notification/README.md +409 -0
  91. package/src/components/Notification/index.ts +3 -0
  92. package/src/components/POSConvention/POSConvention.stories.tsx +235 -0
  93. package/src/components/POSConvention/POSConvention.tsx +129 -0
  94. package/src/components/POSConvention/POSConvention.types.ts +38 -0
  95. package/src/components/POSConvention/README.md +123 -0
  96. package/src/components/POSConvention/icons.tsx +45 -0
  97. package/src/components/POSConvention/index.ts +3 -0
  98. package/src/components/POSLocationButton/POSLocationButton.stories.tsx +531 -0
  99. package/src/components/POSLocationButton/POSLocationButton.tsx +247 -0
  100. package/src/components/POSLocationButton/POSLocationButton.types.ts +87 -0
  101. package/src/components/POSLocationButton/README.md +253 -0
  102. package/src/components/POSLocationButton/icons.tsx +120 -0
  103. package/src/components/POSLocationButton/index.ts +14 -0
  104. package/src/components/POSNumberButton/POSNumberButton.stories.tsx +415 -0
  105. package/src/components/POSNumberButton/POSNumberButton.tsx +179 -0
  106. package/src/components/POSNumberButton/POSNumberButton.types.ts +51 -0
  107. package/src/components/POSNumberButton/README.md +321 -0
  108. package/src/components/POSNumberButton/index.ts +3 -0
  109. package/src/components/POSProductButton/POSProductButton.stories.tsx +318 -0
  110. package/src/components/POSProductButton/POSProductButton.tsx +152 -0
  111. package/src/components/POSProductButton/POSProductButton.types.ts +46 -0
  112. package/src/components/POSProductButton/README.md +269 -0
  113. package/src/components/POSProductButton/index.ts +2 -0
  114. package/src/components/POSProductCard/POSProductCard.stories.tsx +642 -0
  115. package/src/components/POSProductCard/POSProductCard.tsx +208 -0
  116. package/src/components/POSProductCard/POSProductCard.types.ts +76 -0
  117. package/src/components/POSProductCard/README.md +179 -0
  118. package/src/components/POSProductCard/icons.tsx +26 -0
  119. package/src/components/POSProductCard/index.ts +2 -0
  120. package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +753 -0
  121. package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +332 -0
  122. package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +119 -0
  123. package/src/components/POSProductSidebarItems/README.md +198 -0
  124. package/src/components/POSProductSidebarItems/icons.tsx +21 -0
  125. package/src/components/POSProductSidebarItems/index.ts +3 -0
  126. package/src/components/POSTable/POSTable.stories.tsx +737 -0
  127. package/src/components/POSTable/POSTable.tsx +401 -0
  128. package/src/components/POSTable/POSTable.types.ts +83 -0
  129. package/src/components/POSTable/README.md +286 -0
  130. package/src/components/POSTable/index.ts +7 -0
  131. package/src/components/Pagination/Pagination.stories.tsx +555 -0
  132. package/src/components/Pagination/Pagination.tsx +286 -0
  133. package/src/components/Pagination/Pagination.types.ts +93 -0
  134. package/src/components/Pagination/README.md +298 -0
  135. package/src/components/Pagination/icons.tsx +47 -0
  136. package/src/components/Pagination/index.ts +3 -0
  137. package/src/components/Quantity/Quantity.stories.tsx +457 -0
  138. package/src/components/Quantity/Quantity.tsx +289 -0
  139. package/src/components/Quantity/Quantity.types.ts +70 -0
  140. package/src/components/Radio/Radio.stories.tsx +523 -0
  141. package/src/components/Radio/Radio.tsx +170 -0
  142. package/src/components/Radio/Radio.types.ts +122 -0
  143. package/src/components/Select/README.md +299 -0
  144. package/src/components/Select/Select.stories.tsx +673 -0
  145. package/src/components/Select/Select.tsx +454 -0
  146. package/src/components/Select/Select.types.ts +148 -0
  147. package/src/components/Select/icons.tsx +50 -0
  148. package/src/components/Select/index.ts +3 -0
  149. package/src/components/SignUpView/SignUpView.stories.tsx +129 -0
  150. package/src/components/SignUpView/SignUpView.tsx +503 -0
  151. package/src/components/SignUpView/SignUpView.types.ts +58 -0
  152. package/src/components/SignUpView/icons.tsx +71 -0
  153. package/src/components/SignUpView/index.ts +3 -0
  154. package/src/components/Switch/README.md +112 -0
  155. package/src/components/Switch/Switch.stories.tsx +550 -0
  156. package/src/components/Switch/Switch.tsx +246 -0
  157. package/src/components/Switch/Switch.types.ts +67 -0
  158. package/src/components/Table/README.md +369 -0
  159. package/src/components/Table/Table.stories.tsx +805 -0
  160. package/src/components/Table/Table.tsx +688 -0
  161. package/src/components/Table/Table.types.ts +204 -0
  162. package/src/components/Table/index.ts +9 -0
  163. package/src/components/Tabs/README.md +201 -0
  164. package/src/components/Tabs/Tabs.stories.tsx +580 -0
  165. package/src/components/Tabs/Tabs.tsx +356 -0
  166. package/src/components/Tabs/Tabs.types.ts +127 -0
  167. package/src/components/Tabs/icons.tsx +129 -0
  168. package/src/components/Tabs/index.ts +11 -0
  169. package/src/components/Textarea/Textarea.stories.tsx +535 -0
  170. package/src/components/Textarea/Textarea.tsx +188 -0
  171. package/src/components/Textarea/Textarea.types.ts +54 -0
  172. package/src/context/ThemeContext.tsx +99 -0
  173. package/src/context/index.ts +1 -0
  174. package/src/index.css +29 -0
  175. package/src/index.ts +39 -0
  176. package/src/main.tsx +10 -0
  177. package/src/views/ProductsView/ProductsView.stories.tsx +344 -0
  178. package/src/views/ProductsView/ProductsView.tsx +480 -0
  179. package/src/views/ProductsView/ProductsView.types.ts +238 -0
  180. package/src/views/ProductsView/README.md +312 -0
  181. package/src/views/ProductsView/icons.tsx +38 -0
  182. package/src/views/ProductsView/index.ts +8 -0
  183. package/src/views/RecoverPasswordView/README.md +269 -0
  184. package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +131 -0
  185. package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +376 -0
  186. package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +56 -0
  187. package/src/views/RecoverPasswordView/icons.tsx +17 -0
  188. package/src/views/RecoverPasswordView/index.ts +2 -0
  189. package/src/views/TableLayoutView/README.md +268 -0
  190. package/src/views/TableLayoutView/TableLayoutView.stories.tsx +235 -0
  191. package/src/views/TableLayoutView/TableLayoutView.tsx +461 -0
  192. package/src/views/TableLayoutView/TableLayoutView.types.ts +209 -0
  193. package/src/views/TableLayoutView/icons.tsx +113 -0
  194. package/src/views/TableLayoutView/index.ts +6 -0
  195. package/storybook/main.ts +20 -0
  196. package/storybook/preview.tsx +84 -0
  197. package/storybook/vitest.setup.ts +7 -0
  198. package/tailwind.config.js +128 -0
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+
3
+ /**
4
+ * Icono de círculo de usuario para el input de nombre
5
+ */
6
+ export const UserCircleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
7
+ <svg
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ viewBox="0 0 16 16"
10
+ fill="currentColor"
11
+ {...props}
12
+ >
13
+ <path
14
+ fillRule="evenodd"
15
+ d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0Zm-5-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM8 9c-1.825 0-3.422.977-4.295 2.437A5.49 5.49 0 0 0 8 13.5a5.49 5.49 0 0 0 4.294-2.063A4.997 4.997 0 0 0 8 9Z"
16
+ clipRule="evenodd"
17
+ />
18
+ </svg>
19
+ );
20
+
21
+ /**
22
+ * Icono de sobre (envelope) para el input de email
23
+ */
24
+ export const EnvelopeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
25
+ <svg
26
+ xmlns="http://www.w3.org/2000/svg"
27
+ viewBox="0 0 16 16"
28
+ fill="currentColor"
29
+ {...props}
30
+ >
31
+ <path d="M2.5 3A1.5 1.5 0 0 0 1 4.5v.793c.026.009.051.02.076.032L7.674 8.51c.206.1.446.1.652 0l6.598-3.185A.755.755 0 0 1 15 5.293V4.5A1.5 1.5 0 0 0 13.5 3h-11Z" />
32
+ <path d="M15 6.954 8.978 9.86a2.25 2.25 0 0 1-1.956 0L1 6.954V11.5A1.5 1.5 0 0 0 2.5 13h11a1.5 1.5 0 0 0 1.5-1.5V6.954Z" />
33
+ </svg>
34
+ );
35
+
36
+ /**
37
+ * Icono de candado cerrado (lock) para el input de contraseña
38
+ */
39
+ export const LockClosedIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
40
+ <svg
41
+ xmlns="http://www.w3.org/2000/svg"
42
+ viewBox="0 0 16 16"
43
+ fill="currentColor"
44
+ {...props}
45
+ >
46
+ <path
47
+ fillRule="evenodd"
48
+ d="M8 1a3.5 3.5 0 0 0-3.5 3.5V7A1.5 1.5 0 0 0 3 8.5v5A1.5 1.5 0 0 0 4.5 15h7a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 11.5 7V4.5A3.5 3.5 0 0 0 8 1Zm2 6V4.5a2 2 0 1 0-4 0V7h4Z"
49
+ clipRule="evenodd"
50
+ />
51
+ </svg>
52
+ );
53
+
54
+ /**
55
+ * Icono de ojo (eye) para mostrar/ocultar contraseña
56
+ */
57
+ export const EyeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
58
+ <svg
59
+ xmlns="http://www.w3.org/2000/svg"
60
+ viewBox="0 0 16 16"
61
+ fill="currentColor"
62
+ {...props}
63
+ >
64
+ <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" />
65
+ <path
66
+ fillRule="evenodd"
67
+ d="M1.38 8.28a.87.87 0 0 1 0-.566 7.003 7.003 0 0 1 13.238.006.87.87 0 0 1 0 .56A7.003 7.003 0 0 1 1.379 8.28ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"
68
+ clipRule="evenodd"
69
+ />
70
+ </svg>
71
+ );
@@ -0,0 +1,3 @@
1
+ export { SignUpView } from './SignUpView';
2
+ export type { SignUpViewProps } from './SignUpView.types';
3
+ export { UserCircleIcon, EnvelopeIcon, LockClosedIcon, EyeIcon } from './icons';
@@ -0,0 +1,112 @@
1
+ # Switch
2
+
3
+ Componente de switch del sistema de diseño Siesa para activación/desactivación de opciones.
4
+
5
+ ## Uso Básico
6
+
7
+ ```tsx
8
+ import { Switch } from './Switch';
9
+
10
+ // Switch simple (label a la izquierda - default)
11
+ <Switch
12
+ label="Activar notificaciones"
13
+ checked={isEnabled}
14
+ onChange={(e) => setIsEnabled(e.target.checked)}
15
+ />
16
+
17
+ // Con descripción
18
+ <Switch
19
+ label="Permitir inserción"
20
+ description="Permite que otros inserten los detalles de tu evento en su propio sitio."
21
+ checked={isEnabled}
22
+ onChange={(e) => setIsEnabled(e.target.checked)}
23
+ />
24
+
25
+ // Label a la derecha (trailing)
26
+ <Switch
27
+ label="Activar notificaciones"
28
+ labelPosition="trailing"
29
+ checked={isEnabled}
30
+ onChange={(e) => setIsEnabled(e.target.checked)}
31
+ />
32
+ ```
33
+
34
+ ## Props
35
+
36
+ | Prop | Tipo | Default | Descripción |
37
+ |------|------|---------|-------------|
38
+ | `label` | `string` | - | Etiqueta del switch |
39
+ | `description` | `string` | - | Descripción debajo del label |
40
+ | `labelPosition` | `'leading' \| 'trailing'` | `'leading'` | Posición del label respecto al switch |
41
+ | `checked` | `boolean` | `false` | Si el switch está activado |
42
+ | `disabled` | `boolean` | `false` | Si el switch está deshabilitado |
43
+ | `onChange` | `(e: ChangeEvent) => void` | - | Callback cuando cambia el estado |
44
+ | `ariaLabel` | `string` | - | Label para accesibilidad (ARIA) |
45
+ | `className` | `string` | `''` | Clases CSS adicionales |
46
+
47
+ ## Posición del Label
48
+
49
+ El componente soporta dos posiciones para el label:
50
+
51
+ - **leading** (default): Label a la izquierda, switch a la derecha
52
+ - **trailing**: Switch a la izquierda, label a la derecha
53
+
54
+ ```tsx
55
+ // Leading (default)
56
+ <Switch label="Opción" labelPosition="leading" />
57
+ // Resultado: [Label] [Switch]
58
+
59
+ // Trailing
60
+ <Switch label="Opción" labelPosition="trailing" />
61
+ // Resultado: [Switch] [Label]
62
+ ```
63
+
64
+ ## Estados
65
+
66
+ El switch soporta los siguientes estados:
67
+
68
+ - **Default OFF**: Fondo `#fafafa`, borde `#e4e4e7`
69
+ - **Default ON**: Fondo `#0e79fd`, borde `#3c9bf6`
70
+ - **Hover OFF**: Borde cambia a `#b6b6b9`
71
+ - **Hover ON**: Borde cambia a `#307cc5`
72
+ - **Focus**: Shadow ring con `#60b6fa` (4px) + `#dbeefe` (2px)
73
+ - **Disabled**: Opacidad 50%
74
+
75
+ ## Dark Mode
76
+
77
+ El componente tiene soporte completo para dark mode:
78
+
79
+ - **Track OFF Dark**: Fondo `#18181b`, borde `#71717a`
80
+ - **Track ON Dark**: Fondo `#0e79fd`, borde `#3c9bf6`
81
+ - **Focus Dark**: Mismo shadow ring que light mode
82
+
83
+ ## Dimensiones
84
+
85
+ - **Track**: 32x20px
86
+ - **Button**: 16x16px
87
+ - **Border radius**: 12px (rounded-xl)
88
+ - **Posición OFF**: left 1px
89
+ - **Posición ON**: left 13px
90
+
91
+ ## Accesibilidad
92
+
93
+ - Usa un `<input type="checkbox">` nativo oculto para accesibilidad
94
+ - Soporte completo de teclado (Tab, Space)
95
+ - `aria-label` configurable
96
+ - Labels clicables para mejor UX
97
+
98
+ ## Archivos
99
+
100
+ ```
101
+ Switch/
102
+ ├── Switch.tsx # Componente principal
103
+ ├── Switch.types.ts # TypeScript types
104
+ ├── Switch.stories.tsx # Storybook stories
105
+ ├── index.ts # Exports
106
+ └── README.md # Documentación
107
+ ```
108
+
109
+ ## Referencias
110
+
111
+ - **Figma**: [Switch Component](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4028-7829)
112
+ - **Docs**: `docs/colors.md`, `docs/typography.md`