@jjlmoya/utils-babies 1.4.0 → 1.5.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.
@@ -1,403 +0,0 @@
1
- /* PRINCIPAL CONTAINER */
2
- .vc-card {
3
- --primary: #4f46e5;
4
- --primary-soft: #eef2ff;
5
- --success: #10b981;
6
- --warning: #f59e0b;
7
- --text-main: #1e293b;
8
- --text-muted: #64748b;
9
- --bg-card: #fff;
10
- --border: #e2e8f0;
11
- --shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
12
-
13
- max-width: 600px;
14
- margin: 0 auto;
15
- background: var(--bg-card);
16
- border-radius: 28px;
17
- border: 1px solid var(--border);
18
- box-shadow: var(--shadow);
19
- overflow: hidden;
20
- color: var(--text-main);
21
- transition: transform 0.3s ease;
22
- }
23
-
24
- .dark .vc-card {
25
- --bg-card: #1e293b;
26
- --border: rgba(255, 255, 255, 0.1);
27
- --text-main: #f1f5f9;
28
- --text-muted: #94a3b8;
29
- --primary-soft: rgba(79, 70, 229, 0.1);
30
- }
31
-
32
- /* HEADER */
33
- .vc-header {
34
- padding: 2rem 1.5rem;
35
- background: linear-gradient(to bottom, var(--primary-soft), transparent);
36
- border-bottom: 1px solid var(--border);
37
- display: flex;
38
- flex-direction: column;
39
- align-items: center;
40
- gap: 1.5rem;
41
- }
42
-
43
- .vc-inputs {
44
- width: 100%;
45
- display: flex;
46
- justify-content: center;
47
- }
48
-
49
- .vc-field {
50
- display: flex;
51
- flex-direction: column;
52
- align-items: center;
53
- gap: 0.75rem;
54
- width: 100%;
55
- }
56
-
57
- .vc-field label {
58
- font-size: 0.8rem;
59
- font-weight: 800;
60
- text-transform: uppercase;
61
- color: var(--text-muted);
62
- letter-spacing: 0.05em;
63
- }
64
-
65
- .vc-triple-input {
66
- display: flex;
67
- align-items: center;
68
- gap: 0.5rem;
69
- background: var(--bg-card);
70
- border: 2px solid var(--border);
71
- border-radius: 16px;
72
- padding: 0.25rem 1rem;
73
- transition: all 0.2s ease;
74
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
75
- }
76
-
77
- .vc-triple-input:focus-within {
78
- border-color: var(--primary);
79
- box-shadow: 0 0 0 4px var(--primary-soft);
80
- transform: translateY(-1px);
81
- }
82
-
83
- .vc-triple-input.has-error {
84
- border-color: #ef4444;
85
- background: #fef2f2;
86
- }
87
-
88
- .dark .vc-triple-input.has-error {
89
- background: rgba(239, 68, 68, 0.05);
90
- }
91
-
92
- .vc-triple-input.has-error:focus-within {
93
- box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.15);
94
- }
95
-
96
- .vc-segment {
97
- border: none;
98
- padding: 0.8rem 0;
99
- width: 3rem;
100
- text-align: center;
101
- background: transparent;
102
- font-size: 1.1rem;
103
- font-weight: 700;
104
- color: inherit;
105
- outline: none;
106
- }
107
-
108
- .vc-segment-year {
109
- width: 4.5rem;
110
- }
111
-
112
- .vc-sep {
113
- color: var(--text-muted);
114
- font-weight: 700;
115
- font-size: 1.2rem;
116
- opacity: 0.3;
117
- pointer-events: none;
118
- }
119
-
120
- .vc-age-badge {
121
- margin-top: 0.25rem;
122
- font-size: 0.85rem;
123
- font-weight: 700;
124
- color: var(--text-muted);
125
- opacity: 0;
126
- transform: translateY(-5px);
127
- transition: all 0.3s ease;
128
- }
129
-
130
- .vc-age-badge.vc-age-visible {
131
- opacity: 1;
132
- transform: translateY(0);
133
- }
134
-
135
- /* EMPTY STATE */
136
- .vc-empty-state {
137
- padding: 3rem 1.5rem;
138
- text-align: center;
139
- color: var(--text-muted);
140
- }
141
-
142
- /* NEXT APPOINTMENT */
143
- .vc-main-context {
144
- padding: 2rem 1.5rem;
145
- text-align: center;
146
- border-bottom: 1px solid var(--border);
147
- display: none;
148
- }
149
-
150
- .vc-active .vc-main-context {
151
- display: block;
152
- animation: vc-slide-up 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
153
- }
154
-
155
- @keyframes vc-slide-up {
156
- from {
157
- opacity: 0;
158
- transform: translateY(20px);
159
- }
160
-
161
- to {
162
- opacity: 1;
163
- transform: translateY(0);
164
- }
165
- }
166
-
167
- .vc-next-title {
168
- font-size: 0.9rem;
169
- font-weight: 700;
170
- color: var(--primary);
171
- text-transform: uppercase;
172
- margin: 0 0 0.5rem;
173
- }
174
-
175
- .vc-next-date {
176
- font-size: 1.75rem;
177
- font-weight: 900;
178
- margin-bottom: 1.5rem;
179
- }
180
-
181
- .vc-is-today .vc-next-date {
182
- color: #ef4444;
183
- animation: vc-pulse-today 2s infinite;
184
- }
185
-
186
- @keyframes vc-pulse-today {
187
- 0% { transform: scale(1); }
188
- 50% { transform: scale(1.02); }
189
- 100% { transform: scale(1); }
190
- }
191
-
192
- .vc-is-today .vc-btn-primary {
193
- background: #ef4444;
194
- box-shadow: 0 4px 15px rgba(239, 68, 68, 0.4);
195
- }
196
-
197
- .vc-vac-list {
198
- display: flex;
199
- flex-direction: column;
200
- gap: 0.75rem;
201
- margin-bottom: 2rem;
202
- }
203
-
204
- .vc-vac-item {
205
- display: flex;
206
- align-items: center;
207
- gap: 1rem;
208
- padding: 1rem;
209
- background: var(--primary-soft);
210
- border-radius: 16px;
211
- text-align: left;
212
- border: 1px solid transparent;
213
- transition: 0.2s;
214
- }
215
-
216
- .vc-vac-icon {
217
- width: 48px;
218
- height: 48px;
219
- display: flex;
220
- align-items: center;
221
- justify-content: center;
222
- background: #fff;
223
- border-radius: 12px;
224
- font-weight: 700;
225
- color: var(--primary);
226
- border: 1px solid var(--border);
227
- flex-shrink: 0;
228
- }
229
-
230
- .dark .vc-vac-icon {
231
- background: #0f172a;
232
- }
233
-
234
- .vc-vac-info {
235
- flex: 1;
236
- }
237
-
238
- .vc-vac-name {
239
- display: block;
240
- font-weight: 700;
241
- font-size: 1rem;
242
- }
243
-
244
- /* BUTTONS */
245
- .vc-btn-primary {
246
- display: inline-flex;
247
- align-items: center;
248
- gap: 0.5rem;
249
- padding: 0.8rem 1.5rem;
250
- background: var(--primary);
251
- color: #fff;
252
- border-radius: 12px;
253
- font-weight: 700;
254
- border: none;
255
- cursor: pointer;
256
- width: 100%;
257
- justify-content: center;
258
- }
259
-
260
- /* SECTIONS (accordion) */
261
- .vc-sections {
262
- display: none;
263
- }
264
-
265
- .vc-active .vc-sections {
266
- display: block;
267
- }
268
-
269
- .vc-accordion-item {
270
- border-bottom: 1px solid var(--border);
271
- }
272
-
273
- .vc-accordion-item:last-child {
274
- border-bottom: none;
275
- }
276
-
277
- .vc-accordion-trigger {
278
- width: 100%;
279
- padding: 1.25rem 1.5rem;
280
- display: flex;
281
- justify-content: space-between;
282
- align-items: center;
283
- background: none;
284
- border: none;
285
- color: inherit;
286
- font-weight: 700;
287
- cursor: pointer;
288
- font-size: 1rem;
289
- }
290
-
291
- .vc-accordion-trigger:hover {
292
- background: var(--primary-soft);
293
- }
294
-
295
- .vc-accordion-content {
296
- max-height: 0;
297
- overflow: hidden;
298
- transition: max-height 0.3s ease;
299
- }
300
-
301
- .vc-accordion-item.vc-open .vc-accordion-content {
302
- max-height: 800px;
303
- }
304
-
305
- .vc-timeline-compact {
306
- padding: 0 1.5rem 1.5rem;
307
- display: flex;
308
- flex-direction: column;
309
- gap: 0.5rem;
310
- }
311
-
312
- /* TIMELINE ROW */
313
- .vc-timeline-row {
314
- display: flex;
315
- justify-content: space-between;
316
- align-items: center;
317
- padding: 0.6rem 0;
318
- border-bottom: 1px dashed var(--border);
319
- font-size: 0.9rem;
320
- }
321
-
322
- .vc-timeline-row:last-child {
323
- border-bottom: none;
324
- }
325
-
326
- .vc-timeline-age {
327
- font-weight: 800;
328
- color: var(--primary);
329
- width: 6.5rem;
330
- flex-shrink: 0;
331
- font-size: 0.8rem;
332
- text-transform: uppercase;
333
- letter-spacing: 0.02em;
334
- }
335
-
336
- .vc-timeline-vac {
337
- flex: 1;
338
- font-weight: 600;
339
- color: var(--text-main);
340
- display: flex;
341
- flex-wrap: wrap;
342
- gap: 0.4rem;
343
- padding: 0 0.5rem;
344
- }
345
-
346
- .vc-vac-pill {
347
- padding: 0.15rem 0.5rem;
348
- background: var(--primary-soft);
349
- border-radius: 6px;
350
- font-size: 0.8rem;
351
- color: var(--primary);
352
- border: 1px solid rgba(79, 70, 229, 0.1);
353
- }
354
-
355
- .dark .vc-vac-pill {
356
- background: rgba(255, 255, 255, 0.05);
357
- color: var(--text-main);
358
- border-color: rgba(255, 255, 255, 0.1);
359
- }
360
-
361
- .vc-timeline-status {
362
- font-size: 0.65rem;
363
- font-weight: 900;
364
- text-transform: uppercase;
365
- width: 3.5rem;
366
- flex-shrink: 0;
367
- text-align: right;
368
- letter-spacing: 0.05em;
369
- }
370
-
371
- .vc-check {
372
- color: var(--success);
373
- }
374
-
375
- .vc-clock {
376
- color: var(--warning);
377
- }
378
-
379
- /* FOOTER */
380
- .vc-footer {
381
- padding: 1rem;
382
- text-align: center;
383
- font-size: 0.75rem;
384
- color: var(--text-muted);
385
- background: var(--primary-soft);
386
- }
387
-
388
- .vc-share-link {
389
- display: none;
390
- color: var(--primary);
391
- font-weight: 700;
392
- text-decoration: none;
393
- }
394
-
395
- .vc-active .vc-share-link {
396
- display: inline;
397
- }
398
-
399
- @media (max-width: 480px) {
400
- .vc-timeline-age {
401
- width: 5rem;
402
- }
403
- }