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
package/storybook/main.ts CHANGED
@@ -1,20 +1,20 @@
1
- import type { StorybookConfig } from '@storybook/react-vite';
2
-
3
- const config: StorybookConfig = {
4
- "stories": [
5
- "../src/**/*.mdx",
6
- "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"
7
- ],
8
- "addons": [
9
- "@chromatic-com/storybook",
10
- "@storybook/addon-docs",
11
- "@storybook/addon-onboarding",
12
- "@storybook/addon-a11y",
13
- "@storybook/addon-vitest"
14
- ],
15
- "framework": {
16
- "name": "@storybook/react-vite",
17
- "options": {}
18
- }
19
- };
1
+ import type { StorybookConfig } from '@storybook/react-vite';
2
+
3
+ const config: StorybookConfig = {
4
+ "stories": [
5
+ "../src/**/*.mdx",
6
+ "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"
7
+ ],
8
+ "addons": [
9
+ "@chromatic-com/storybook",
10
+ "@storybook/addon-docs",
11
+ "@storybook/addon-onboarding",
12
+ "@storybook/addon-a11y",
13
+ "@storybook/addon-vitest"
14
+ ],
15
+ "framework": {
16
+ "name": "@storybook/react-vite",
17
+ "options": {}
18
+ }
19
+ };
20
20
  export default config;
@@ -1,84 +1,84 @@
1
- import type { Preview } from '@storybook/react-vite';
2
- import React, { useEffect } from 'react';
3
- import '../src/index.css';
4
-
5
- // Decorador global para manejar el tema en Storybook
6
- const withTheme = (Story: any, context: any) => {
7
- const { theme } = context.globals;
8
-
9
- useEffect(() => {
10
- const htmlElement = document.documentElement;
11
-
12
- if (theme === 'dark') {
13
- htmlElement.classList.add('dark');
14
- } else {
15
- htmlElement.classList.remove('dark');
16
- }
17
- }, [theme]);
18
-
19
- return (
20
- <div className="bg-white dark:bg-dark-bg-primary text-content-primary dark:text-dark-content-primary p-6">
21
- <Story />
22
- </div>
23
- );
24
- };
25
-
26
- const preview: Preview = {
27
- parameters: {
28
- controls: {
29
- matchers: {
30
- color: /(background|color)$/i,
31
- date: /Date$/i,
32
- },
33
- },
34
-
35
- a11y: {
36
- // 'todo' - show a11y violations in the test UI only
37
- // 'error' - fail CI on a11y violations
38
- // 'off' - skip a11y checks entirely
39
- test: 'todo'
40
- },
41
-
42
- // Configuración de fondos para las historias
43
- backgrounds: {
44
- default: 'light',
45
- values: [
46
- {
47
- name: 'light',
48
- value: '#ffffff',
49
- },
50
- {
51
- name: 'dark',
52
- value: '#000000',
53
- },
54
- ],
55
- },
56
-
57
- // Deshabilitar la cuadrícula de fondo
58
- grid: {
59
- disable: true,
60
- },
61
- },
62
-
63
- // Control global de tema
64
- globalTypes: {
65
- theme: {
66
- name: 'Theme',
67
- description: 'Global theme for components',
68
- defaultValue: 'light',
69
- toolbar: {
70
- title: 'Theme',
71
- icon: 'circlehollow',
72
- items: [
73
- { value: 'light', icon: 'sun', title: 'Light' },
74
- { value: 'dark', icon: 'moon', title: 'Dark' },
75
- ],
76
- dynamicTitle: true,
77
- },
78
- },
79
- },
80
-
81
- decorators: [withTheme],
82
- };
83
-
84
- export default preview;
1
+ import type { Preview } from '@storybook/react-vite';
2
+ import React, { useEffect } from 'react';
3
+ import '../src/index.css';
4
+
5
+ // Decorador global para manejar el tema en Storybook
6
+ const withTheme = (Story: any, context: any) => {
7
+ const { theme } = context.globals;
8
+
9
+ useEffect(() => {
10
+ const htmlElement = document.documentElement;
11
+
12
+ if (theme === 'dark') {
13
+ htmlElement.classList.add('dark');
14
+ } else {
15
+ htmlElement.classList.remove('dark');
16
+ }
17
+ }, [theme]);
18
+
19
+ return (
20
+ <div className="bg-white dark:bg-dark-bg-primary text-content-primary dark:text-dark-content-primary p-6">
21
+ <Story />
22
+ </div>
23
+ );
24
+ };
25
+
26
+ const preview: Preview = {
27
+ parameters: {
28
+ controls: {
29
+ matchers: {
30
+ color: /(background|color)$/i,
31
+ date: /Date$/i,
32
+ },
33
+ },
34
+
35
+ a11y: {
36
+ // 'todo' - show a11y violations in the test UI only
37
+ // 'error' - fail CI on a11y violations
38
+ // 'off' - skip a11y checks entirely
39
+ test: 'todo'
40
+ },
41
+
42
+ // Configuración de fondos para las historias
43
+ backgrounds: {
44
+ default: 'light',
45
+ values: [
46
+ {
47
+ name: 'light',
48
+ value: '#ffffff',
49
+ },
50
+ {
51
+ name: 'dark',
52
+ value: '#000000',
53
+ },
54
+ ],
55
+ },
56
+
57
+ // Deshabilitar la cuadrícula de fondo
58
+ grid: {
59
+ disable: true,
60
+ },
61
+ },
62
+
63
+ // Control global de tema
64
+ globalTypes: {
65
+ theme: {
66
+ name: 'Theme',
67
+ description: 'Global theme for components',
68
+ defaultValue: 'light',
69
+ toolbar: {
70
+ title: 'Theme',
71
+ icon: 'circlehollow',
72
+ items: [
73
+ { value: 'light', icon: 'sun', title: 'Light' },
74
+ { value: 'dark', icon: 'moon', title: 'Dark' },
75
+ ],
76
+ dynamicTitle: true,
77
+ },
78
+ },
79
+ },
80
+
81
+ decorators: [withTheme],
82
+ };
83
+
84
+ export default preview;
@@ -1,7 +1,7 @@
1
- import * as a11yAddonAnnotations from "@storybook/addon-a11y/preview";
2
- import { setProjectAnnotations } from '@storybook/react-vite';
3
- import * as projectAnnotations from './preview';
4
-
5
- // This is an important step to apply the right configuration when testing your stories.
6
- // More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
1
+ import * as a11yAddonAnnotations from "@storybook/addon-a11y/preview";
2
+ import { setProjectAnnotations } from '@storybook/react-vite';
3
+ import * as projectAnnotations from './preview';
4
+
5
+ // This is an important step to apply the right configuration when testing your stories.
6
+ // More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
7
7
  setProjectAnnotations([a11yAddonAnnotations, projectAnnotations]);
@@ -1,128 +1,128 @@
1
- /** @type {import('tailwindcss').Config} */
2
- module.exports = {
3
- darkMode: 'class', // Habilita dark mode con clase 'dark' en el elemento raíz
4
- content: [
5
- "./index.html",
6
- "./src/**/*.{js,ts,jsx,tsx}",
7
- ],
8
- theme: {
9
- extend: {
10
- // Fuentes
11
- fontFamily: {
12
- sans: ['SiesaBT', 'Inter', 'sans-serif'],
13
- },
14
-
15
- // Colores del Sistema de Diseño Siesa
16
- colors: {
17
- // Primary Custom Colors (extraído de Figma)
18
- 'primary-custom': {
19
- 100: '#dbeefe', // backgroundCustomPrimary - Hover para outline
20
- 300: '#93d1fd', // borderCustomPrimary - Bordes
21
- 400: '#60b6fa', // PrimaryCustom/400 - Focus ring
22
- 500: '#3c9bf6', // PrimaryCustom/500 - Hover para botón default
23
- 600: '#0e79fd', // contentCustomPrimary - Color principal
24
- 700: '#0c6ade', // variante más oscura - Active/pressed
25
- },
26
-
27
- // Primary Inverse (para usar con bg-, text-, border-)
28
- 'primary-inverse-content': '#eff8ff', // contentInverseCustomPrimary
29
- 'primary-inverse-background': '#0e79fd', // backgroundInverseCustomPrimary
30
- 'primary-inverse-border': '#3c9bf6', // borderInverseCustomPrimary
31
-
32
- // System Colors (Light Mode)
33
- 'content-primary': '#18181b', // contentPrimary
34
- 'content-secondary': '#a1a1aa', // contentSecondary - Description text
35
- 'content-tertiary': '#71717a', // contentTertiary - Texto secundario/placeholder
36
- 'bg-primary': '#ffffff', // backgroundPrimary
37
- 'background-secondary': '#f4f4f5', // backgroundSecondary - Fondos disabled
38
- 'border-primary': '#e4e4e7', // borderPrimary
39
- 'border-secondary': '#f4f4f5', // borderSecondary - Divider soft
40
-
41
- // Error Colors
42
- 'error-border': '#ef4444', // Error border - Red 500
43
- 'error-content': '#dc2626', // Error text - Red 600
44
- 'error-bg': '#fef2f2', // Error background - Red 50
45
-
46
- // Extensions Colors (para badges, notificaciones, etc)
47
- 'content-extensions-red': '#b91c1c', // contentRed - Red 700 para notificaciones
48
-
49
- // Dark Mode Colors (extraído de Figma node 4001-17241)
50
- 'dark-bg-primary': '#18181b', // backgroundPrimary - Fondo principal oscuro (zinc-900)
51
- 'dark-bg-custom': '#112d57', // backgroundCustomPrimary - Fondo activo en dark mode
52
- 'dark-content-primary': '#f4f4f5', // contentPrimary - Texto principal en dark mode (zinc-100)
53
- 'dark-content-custom': '#93d1fd', // contentCustomPrimary - Texto activo en dark mode
54
- 'dark-border-primary': '#71717a', // borderPrimary - Bordes en dark
55
- 'dark-border-custom': '#0f6ae3', // borderCustomPrimary - Bordes de componentes
56
- 'dark-bg-inverse': '#bfe2fe', // backgroundInverseCustomPrimary - Fondos inversos (botón dark)
57
- 'dark-content-inverse': '#0e79fd', // contentInverseCustomPrimary - Texto inverso (botón dark)
58
- 'dark-border-inverse': '#93d1fd', // borderInverseCustomPrimary - Borde botón en dark
59
- },
60
-
61
- // Background colors adicionales para hover
62
- backgroundColor: {
63
- 'hover-overlay': 'rgba(0, 0, 0, 0.1)', // Light mode hover overlay
64
- 'hover-overlay-inverse': 'rgba(255, 255, 255, 0.2)', // Inverse hover
65
- 'hover-overlay-dark': 'rgba(255, 255, 255, 0.2)', // Dark mode hover overlay (20% white)
66
- },
67
-
68
- // Text colors adicionales
69
- textColor: {
70
- 'primary-inverse-content': '#eff8ff',
71
- 'primary-custom-600': '#0e79fd',
72
- },
73
-
74
- // Border colors adicionales
75
- borderColor: {
76
- 'primary-inverse-border': '#3c9bf6',
77
- 'primary-custom-300': '#93d1fd',
78
- },
79
-
80
- // Tipografía completa del sistema de diseño (typography.md)
81
- fontSize: {
82
- // Display - Para heros y títulos muy grandes
83
- '9xl': ['8rem', { lineHeight: '8rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 128px
84
- '8xl': ['6rem', { lineHeight: '6rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 96px
85
- '7xl': ['4.5rem', { lineHeight: '4.5rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 72px
86
- '6xl': ['3.75rem', { lineHeight: '3.75rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 60px
87
- '5xl': ['3rem', { lineHeight: '3rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 48px
88
-
89
- // Heading - Para títulos de secciones
90
- '4xl': ['2.25rem', { lineHeight: '2.5rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 36px
91
- '3xl': ['1.875rem', { lineHeight: '2.25rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 30px
92
- '2xl': ['1.5rem', { lineHeight: '2rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 24px
93
- 'xl': ['1.25rem', { lineHeight: '1.75rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 20px
94
-
95
- // Label & Paragraph - Para contenido y labels
96
- 'lg': ['1.125rem', { lineHeight: '1.75rem' }], // 18px
97
- 'base': ['1rem', { lineHeight: '1.5rem' }], // 16px (default)
98
- 'sm': ['0.875rem', { lineHeight: '1.25rem' }], // 14px
99
- 'xs': ['0.75rem', { lineHeight: '1rem' }], // 12px
100
- },
101
-
102
- // Border Radius (valores exactos de Figma)
103
- borderRadius: {
104
- 'md': '6px', // rounded-md de Figma
105
- '2xl': '16px', // rounded-2xl de Figma
106
- '3xl': '24px', // rounded-3xl de Figma
107
- },
108
-
109
- // Letter Spacing (typography.md)
110
- letterSpacing: {
111
- 'tighter': '-0.025em', // -2.5% usado en Display y Heading
112
- },
113
-
114
- // Espaciado personalizado (alineado con Figma)
115
- spacing: {
116
- '1.5': '6px', // spacing/1.5
117
- '2.5': '10px', // spacing/2.5
118
- },
119
-
120
- // Sombras personalizadas
121
- boxShadow: {
122
- 'button-inset': '0px 2px 0px 0px inset rgba(255,255,255,0.15)',
123
- 'menu': '0px 4px 4px -1px rgba(12, 12, 13, 0.05), 0px 4px 4px -1px rgba(12, 12, 13, 0.1)',
124
- },
125
- },
126
- },
127
- plugins: [],
128
- }
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ darkMode: 'class', // Habilita dark mode con clase 'dark' en el elemento raíz
4
+ content: [
5
+ "./index.html",
6
+ "./src/**/*.{js,ts,jsx,tsx}",
7
+ ],
8
+ theme: {
9
+ extend: {
10
+ // Fuentes
11
+ fontFamily: {
12
+ sans: ['SiesaBT', 'Inter', 'sans-serif'],
13
+ },
14
+
15
+ // Colores del Sistema de Diseño Siesa
16
+ colors: {
17
+ // Primary Custom Colors (extraído de Figma)
18
+ 'primary-custom': {
19
+ 100: '#dbeefe', // backgroundCustomPrimary - Hover para outline
20
+ 300: '#93d1fd', // borderCustomPrimary - Bordes
21
+ 400: '#60b6fa', // PrimaryCustom/400 - Focus ring
22
+ 500: '#3c9bf6', // PrimaryCustom/500 - Hover para botón default
23
+ 600: '#0e79fd', // contentCustomPrimary - Color principal
24
+ 700: '#0c6ade', // variante más oscura - Active/pressed
25
+ },
26
+
27
+ // Primary Inverse (para usar con bg-, text-, border-)
28
+ 'primary-inverse-content': '#eff8ff', // contentInverseCustomPrimary
29
+ 'primary-inverse-background': '#0e79fd', // backgroundInverseCustomPrimary
30
+ 'primary-inverse-border': '#3c9bf6', // borderInverseCustomPrimary
31
+
32
+ // System Colors (Light Mode)
33
+ 'content-primary': '#18181b', // contentPrimary
34
+ 'content-secondary': '#a1a1aa', // contentSecondary - Description text
35
+ 'content-tertiary': '#71717a', // contentTertiary - Texto secundario/placeholder
36
+ 'bg-primary': '#ffffff', // backgroundPrimary
37
+ 'background-secondary': '#f4f4f5', // backgroundSecondary - Fondos disabled
38
+ 'border-primary': '#e4e4e7', // borderPrimary
39
+ 'border-secondary': '#f4f4f5', // borderSecondary - Divider soft
40
+
41
+ // Error Colors
42
+ 'error-border': '#ef4444', // Error border - Red 500
43
+ 'error-content': '#dc2626', // Error text - Red 600
44
+ 'error-bg': '#fef2f2', // Error background - Red 50
45
+
46
+ // Extensions Colors (para badges, notificaciones, etc)
47
+ 'content-extensions-red': '#b91c1c', // contentRed - Red 700 para notificaciones
48
+
49
+ // Dark Mode Colors (extraído de Figma node 4001-17241)
50
+ 'dark-bg-primary': '#18181b', // backgroundPrimary - Fondo principal oscuro (zinc-900)
51
+ 'dark-bg-custom': '#112d57', // backgroundCustomPrimary - Fondo activo en dark mode
52
+ 'dark-content-primary': '#f4f4f5', // contentPrimary - Texto principal en dark mode (zinc-100)
53
+ 'dark-content-custom': '#93d1fd', // contentCustomPrimary - Texto activo en dark mode
54
+ 'dark-border-primary': '#71717a', // borderPrimary - Bordes en dark
55
+ 'dark-border-custom': '#0f6ae3', // borderCustomPrimary - Bordes de componentes
56
+ 'dark-bg-inverse': '#bfe2fe', // backgroundInverseCustomPrimary - Fondos inversos (botón dark)
57
+ 'dark-content-inverse': '#0e79fd', // contentInverseCustomPrimary - Texto inverso (botón dark)
58
+ 'dark-border-inverse': '#93d1fd', // borderInverseCustomPrimary - Borde botón en dark
59
+ },
60
+
61
+ // Background colors adicionales para hover
62
+ backgroundColor: {
63
+ 'hover-overlay': 'rgba(0, 0, 0, 0.1)', // Light mode hover overlay
64
+ 'hover-overlay-inverse': 'rgba(255, 255, 255, 0.2)', // Inverse hover
65
+ 'hover-overlay-dark': 'rgba(255, 255, 255, 0.2)', // Dark mode hover overlay (20% white)
66
+ },
67
+
68
+ // Text colors adicionales
69
+ textColor: {
70
+ 'primary-inverse-content': '#eff8ff',
71
+ 'primary-custom-600': '#0e79fd',
72
+ },
73
+
74
+ // Border colors adicionales
75
+ borderColor: {
76
+ 'primary-inverse-border': '#3c9bf6',
77
+ 'primary-custom-300': '#93d1fd',
78
+ },
79
+
80
+ // Tipografía completa del sistema de diseño (typography.md)
81
+ fontSize: {
82
+ // Display - Para heros y títulos muy grandes
83
+ '9xl': ['8rem', { lineHeight: '8rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 128px
84
+ '8xl': ['6rem', { lineHeight: '6rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 96px
85
+ '7xl': ['4.5rem', { lineHeight: '4.5rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 72px
86
+ '6xl': ['3.75rem', { lineHeight: '3.75rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 60px
87
+ '5xl': ['3rem', { lineHeight: '3rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 48px
88
+
89
+ // Heading - Para títulos de secciones
90
+ '4xl': ['2.25rem', { lineHeight: '2.5rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 36px
91
+ '3xl': ['1.875rem', { lineHeight: '2.25rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 30px
92
+ '2xl': ['1.5rem', { lineHeight: '2rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 24px
93
+ 'xl': ['1.25rem', { lineHeight: '1.75rem', letterSpacing: '-0.025em', fontWeight: '700' }], // 20px
94
+
95
+ // Label & Paragraph - Para contenido y labels
96
+ 'lg': ['1.125rem', { lineHeight: '1.75rem' }], // 18px
97
+ 'base': ['1rem', { lineHeight: '1.5rem' }], // 16px (default)
98
+ 'sm': ['0.875rem', { lineHeight: '1.25rem' }], // 14px
99
+ 'xs': ['0.75rem', { lineHeight: '1rem' }], // 12px
100
+ },
101
+
102
+ // Border Radius (valores exactos de Figma)
103
+ borderRadius: {
104
+ 'md': '6px', // rounded-md de Figma
105
+ '2xl': '16px', // rounded-2xl de Figma
106
+ '3xl': '24px', // rounded-3xl de Figma
107
+ },
108
+
109
+ // Letter Spacing (typography.md)
110
+ letterSpacing: {
111
+ 'tighter': '-0.025em', // -2.5% usado en Display y Heading
112
+ },
113
+
114
+ // Espaciado personalizado (alineado con Figma)
115
+ spacing: {
116
+ '1.5': '6px', // spacing/1.5
117
+ '2.5': '10px', // spacing/2.5
118
+ },
119
+
120
+ // Sombras personalizadas
121
+ boxShadow: {
122
+ 'button-inset': '0px 2px 0px 0px inset rgba(255,255,255,0.15)',
123
+ 'menu': '0px 4px 4px -1px rgba(12, 12, 13, 0.05), 0px 4px 4px -1px rgba(12, 12, 13, 0.1)',
124
+ },
125
+ },
126
+ },
127
+ plugins: [],
128
+ }