anima-ds-nucleus 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 (38) hide show
  1. package/dist/anima-ds-nucleus.css +1 -1
  2. package/dist/anima-ds.cjs.js +152 -34
  3. package/dist/anima-ds.esm.js +10124 -7528
  4. package/package.json +10 -2
  5. package/src/assets/nucleus-logo.svg +3 -0
  6. package/src/components/Atoms/LogoHexa/LogoHexa.jsx +34 -0
  7. package/src/components/Atoms/LogoHexa/LogoHexa.stories.jsx +36 -0
  8. package/src/components/Atoms/Typography/Typography.jsx +53 -18
  9. package/src/components/Atoms/Typography/Typography.stories.jsx +40 -4
  10. package/src/components/DataDisplay/Card/Card.jsx +117 -24
  11. package/src/components/DataDisplay/Card/Card.stories.jsx +119 -35
  12. package/src/components/DataDisplay/Card/CardError.jsx +142 -0
  13. package/src/components/DataDisplay/Card/CardSkeleton.jsx +96 -0
  14. package/src/components/DataDisplay/Card/CardTituloCorto.jsx +61 -0
  15. package/src/components/DataDisplay/Card/CardTituloCortoMasEstado.jsx +79 -0
  16. package/src/components/DataDisplay/Card/CardTituloLargo.jsx +61 -0
  17. package/src/components/DataDisplay/Card/CardTituloLargoMasEstado.jsx +77 -0
  18. package/src/components/DataDisplay/Card/CardVacia.jsx +111 -0
  19. package/src/components/Layout/Header/HeaderConBuscador.jsx +136 -0
  20. package/src/components/Layout/Header/HeaderConBuscador.stories.jsx +86 -0
  21. package/src/components/Layout/Header/HeaderCore.jsx +347 -0
  22. package/src/components/Layout/Header/HeaderCore.stories.jsx +59 -0
  23. package/src/components/Layout/Header/HeaderGeneral.jsx +92 -0
  24. package/src/components/Layout/Header/HeaderGeneral.stories.jsx +64 -0
  25. package/src/components/Layout/Header/HeaderPoint.jsx +120 -0
  26. package/src/components/Layout/Header/HeaderPoint.stories.jsx +110 -0
  27. package/src/components/Layout/NavPoint/NavPoint.jsx +64 -0
  28. package/src/components/Layout/NavPoint/NavPoint.stories.jsx +52 -0
  29. package/src/components/Layout/Sidebar/SidebarCore.jsx +779 -0
  30. package/src/components/Layout/Sidebar/SidebarCore.stories.jsx +167 -0
  31. package/src/components/Layout/Sidebar/SidebarPoint.jsx +645 -0
  32. package/src/components/Layout/Sidebar/SidebarPoint.stories.jsx +183 -0
  33. package/src/index.js +15 -2
  34. package/src/style.css +37 -0
  35. package/src/components/Layout/Header/Header.jsx +0 -50
  36. package/src/components/Layout/Header/Header.stories.jsx +0 -36
  37. package/src/components/Layout/Sidebar/Sidebar.jsx +0 -57
  38. package/src/components/Layout/Sidebar/Sidebar.stories.jsx +0 -51
@@ -0,0 +1,167 @@
1
+ import { useState } from 'react';
2
+ import { SidebarCore, SidebarCoreMobile } from './SidebarCore';
3
+
4
+ export default {
5
+ title: 'Layout/SidebarCore',
6
+ component: SidebarCore,
7
+ tags: ['autodocs'],
8
+ };
9
+
10
+ // Mock data con 2 títulos y 2 secciones
11
+ const mockSections = [
12
+ {
13
+ title: 'PERSONAS',
14
+ items: [
15
+ { id: 'empleados', label: 'Empleados', icon: 'UserGroupIcon' },
16
+ { id: 'organizacion', label: 'Organización', icon: 'BuildingOfficeIcon' },
17
+ ],
18
+ },
19
+ {
20
+ title: 'TALENTO',
21
+ items: [
22
+ { id: 'reclutamiento', label: 'Reclutamiento', icon: 'UserPlusIcon' },
23
+ { id: 'desarrollo', label: 'Desarrollo', icon: 'AcademicCapIcon' },
24
+ ],
25
+ },
26
+ ];
27
+
28
+ export const Default = {
29
+ render: () => {
30
+ const [activeItem, setActiveItem] = useState('inicio');
31
+ return (
32
+ <div className="h-screen bg-gray-100">
33
+ <SidebarCore
34
+ sections={mockSections}
35
+ activeItem={activeItem}
36
+ onItemClick={setActiveItem}
37
+ companyName="HEXA Core"
38
+ onCompanyClick={() => console.log('Company clicked')}
39
+ footerText="v1.0 | Powered by Nucleus"
40
+ footerCollapsedContent="v1.0"
41
+ />
42
+ </div>
43
+ );
44
+ },
45
+ };
46
+
47
+ export const Colapsado = {
48
+ render: () => {
49
+ const [activeItem, setActiveItem] = useState('inicio');
50
+ return (
51
+ <div className="h-screen bg-gray-100">
52
+ <SidebarCore
53
+ sections={mockSections}
54
+ activeItem={activeItem}
55
+ onItemClick={setActiveItem}
56
+ defaultCollapsed={true}
57
+ footerText="v1.0 | Powered by Nucleus"
58
+ footerCollapsedContent="v1.0"
59
+ />
60
+ </div>
61
+ );
62
+ },
63
+ };
64
+
65
+ export const ConSeccionesPersonalizadas = {
66
+ render: () => {
67
+ const [activeItem, setActiveItem] = useState('item1');
68
+ const customSections = [
69
+ {
70
+ title: 'ADMINISTRACIÓN',
71
+ items: [
72
+ { id: 'item1', label: 'Usuarios', icon: 'UserIcon' },
73
+ { id: 'item2', label: 'Roles', icon: 'ShieldCheckIcon' },
74
+ ],
75
+ },
76
+ {
77
+ title: 'REPORTES',
78
+ items: [
79
+ { id: 'item3', label: 'Analíticas', icon: 'ChartBarIcon' },
80
+ { id: 'item4', label: 'Exportar', icon: 'ArrowDownTrayIcon' },
81
+ ],
82
+ },
83
+ ];
84
+ return (
85
+ <div className="h-screen bg-gray-100">
86
+ <SidebarCore
87
+ sections={customSections}
88
+ activeItem={activeItem}
89
+ onItemClick={setActiveItem}
90
+ />
91
+ </div>
92
+ );
93
+ },
94
+ };
95
+
96
+ export const ConFooter = {
97
+ render: () => {
98
+ const [activeItem, setActiveItem] = useState('inicio');
99
+ return (
100
+ <div className="h-screen bg-gray-100">
101
+ <SidebarCore
102
+ sections={mockSections}
103
+ activeItem={activeItem}
104
+ onItemClick={setActiveItem}
105
+ companyName="HEXA Core"
106
+ onCompanyClick={() => console.log('Company clicked')}
107
+ footerText="v1.0 | Powered by Nucleus"
108
+ />
109
+ </div>
110
+ );
111
+ },
112
+ };
113
+
114
+ export const ConFooterPersonalizado = {
115
+ render: () => {
116
+ const [activeItem, setActiveItem] = useState('inicio');
117
+ return (
118
+ <div className="h-screen bg-gray-100">
119
+ <SidebarCore
120
+ sections={mockSections}
121
+ activeItem={activeItem}
122
+ onItemClick={setActiveItem}
123
+ companyName="HEXA Core"
124
+ onCompanyClick={() => console.log('Company clicked')}
125
+ footerText={{
126
+ version: 'v2.1',
127
+ poweredBy: 'Powered by',
128
+ brand: 'Nucleus'
129
+ }}
130
+ footerCollapsedContent={{
131
+ icon: 'InformationCircleIcon',
132
+ text: 'v2.1'
133
+ }}
134
+ />
135
+ </div>
136
+ );
137
+ },
138
+ };
139
+
140
+ export const Mobile = {
141
+ render: () => {
142
+ const [activeItem, setActiveItem] = useState('inicio');
143
+ return (
144
+ <div className="h-screen bg-gray-100 relative">
145
+ <SidebarCoreMobile
146
+ sections={mockSections}
147
+ activeItem={activeItem}
148
+ onItemClick={setActiveItem}
149
+ companyName="HEXA Core"
150
+ companyLogo="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5OjcBCgoKDQwNGg8PGjclHyU3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N//AABEIAJQAmAMBIgACEQEDEQH/xAAbAAEBAAMBAQEAAAAAAAAAAAAABQMEBgIBB//EADYQAAICAgECAwQHBwUAAAAAAAABAgMEEQUSIQYxURMUQWEVNXFygZGyIiM2g7HBwjIzQlRz/8QAGQEBAQEBAQEAAAAAAAAAAAAAAAECAwUE/8QAHxEBAQEAAgIDAQEAAAAAAAAAAAECAxEhMQQSQWFR/9oADAMBAAIRAxEAPwD9bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtZn4leT7tZkQjc9Lofn38jZCTUvoBr5WbjYbism6FfV/p6t9zOmmk13T7oEst6fQAFADzZZCquVlklGEVtyfwQHoGHGyqMut2Y1kbIJ6bXqZgkvc7gAAoAAAAAAAAAAOL8QVTu5+dVS3ZJQUVvzfSix4e5Z5MfdMp6yILSb85pevzNHM/jCr79f6UbPiHi5dX0hhbjbD9qxR83r/kvmcJ3LbHm4ms61vP5fLB4z/wBzF+7L+qLt2bj4WNTPJs6IySSem++vkchy/JfSNGNKS1dXGSn6Py7oseK/q3F++v0lmvNsazy+eTeV53VrHd7l+7UOvq+Rjw8yjNrdmNPrgnptJ+ZrWfUDT/6v+JH4a6dHhzOtrepqT0/wS2burK+i81mpP52s5XM4GLY67b05rzUE5a/I8ZeZj5vD5s8axTUapJ9ta7E7wxx+LfiTyciuNs3NxXtF1JaS+Hr3KediUYvFZ/u9Ua1OqTko9lvRJbZ2znfJvH2vpp+D/q63/wBn/RG7k81x+Na67MhOSemoJy1+RG4a2dHhvOsrepqUtP07RMHBuyvHnKHE+9uUmnY9dvlpmZrqSOOOa5xnM/x1WLk0ZdftMe2Nkd63H4GPF5DFy7Z1UW9c4Lclp9u+iPwOPmUctbN4dmPjWpvpemo+hh8L/Wub9j/Uamr4ds8+rcyz3V6/kMWjKhjW2qN09dMdPvt6R8zeRxMHXvVyi35RXdv8CFzf8TYX8r9bPfP4WXXyUeRopV8El+y49Wteq9Bd3z0mufc+3U9VawuSxM5tY1vVKK24taaRtkTg87BzL3KvGjj5fQ1KMeyktrevx0WzWb3Hfi39892gANOgAAIeRxWTZ4hhnRUPYxlBvcu+ku/YufAAkzIxjjznvr9czy/hyy3JdmB7NQn3cJS10v5fIqcvxr5Dj40xlGNsNOLflvWmikDP0jE+Pid+PbnIcfzduG8S66uumMdLT7zXwW/Q3OG4yzG4+/FzVB+1k9qMt9taK4LMRM/Hzm9uaq4rluMtn9HWwnVL4Tet/an8fmjfqxuTtwM2vOnXK26txrjF9o7RWAmOjPBmer4SeE42eLx92NmqElZJ7UZb7NJf2NKnjOW4u2a42yuymT2ozevzXbv9h0YFxC8GepJ+JnH0cm8n2/I319Ci1GmtdvtJ9nE8jh8jZk8ZKDjY22ptdtvbTTOjA+i3glklt8Oalw3JT5KjLvtqtcZQlY+rWtPyS18Fo38+vmI5crcCyuVLS/dzfkVgT6SJPj5kvVvlD4fisqrkLc/OdaslvUK/Lb+JcANSSOnHxzjnUAAVsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/9k="
151
+ onCompanyClick={() => console.log('Company clicked')}
152
+ footerText="v1.0 | Powered by Nucleus"
153
+ />
154
+ <div className="p-4">
155
+ <p className="text-sm text-gray-600">
156
+ Haz clic en el botón hamburguesa (esquina superior izquierda) para abrir el menú mobile.
157
+ </p>
158
+ </div>
159
+ </div>
160
+ );
161
+ },
162
+ };
163
+
164
+
165
+
166
+
167
+