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