@iclips/ui 0.0.18 → 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.
@@ -0,0 +1,694 @@
1
+ @custom-variant dark (&:is(.dark *));
2
+
3
+ :root {
4
+ --font-size: 16px;
5
+ --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
6
+
7
+ /* Typography Scale */
8
+ --text-xs: 0.75rem;
9
+ /* 12px */
10
+ --text-sm: 0.875rem;
11
+ /* 14px */
12
+ --text-base: 1rem;
13
+ /* 16px */
14
+ --text-lg: 1.125rem;
15
+ /* 18px */
16
+ --text-xl: 1.25rem;
17
+ /* 20px */
18
+ --text-2xl: 1.5rem;
19
+ /* 24px */
20
+ --text-3xl: 1.875rem;
21
+ /* 30px */
22
+ --text-4xl: 2.25rem;
23
+ /* 36px */
24
+
25
+ /* Custom Color Palette - Base Colors */
26
+ /* Grays */
27
+ --gray-50: #F2F6FA;
28
+ --gray-100: #E9EEF5;
29
+ --gray-200: #DAE1EB;
30
+ --gray-300: #C5CDD9;
31
+ --gray-400: #9BA5B3;
32
+ --gray-500: #697280;
33
+ --gray-600: #464E59;
34
+ --gray-700: #2F3640;
35
+ --gray-800: #1A1F26;
36
+ --gray-900: #000000;
37
+ --white: #FFFFFF;
38
+
39
+ /* Purple (Primary Brand Color) */
40
+ --purple-50: #F6E9FF;
41
+ --purple-100: #DAA6FF;
42
+ --purple-200: #BB6DF2;
43
+ --purple-500: #7F26BF;
44
+ --purple-600: #5B158C;
45
+ --purple-700: #420F66;
46
+
47
+ /* Blue */
48
+ --blue-50: #E2E9FF;
49
+ --blue-100: #AABCF2;
50
+ --blue-200: #667FCC;
51
+ --blue-500: #1C2F8C;
52
+ --blue-600: #0F1E66;
53
+ --blue-700: #061040;
54
+
55
+ /* Cyan */
56
+ --cyan-50: #D8EFFF;
57
+ --cyan-100: #8CCFFF;
58
+ --cyan-200: #3DA7F2;
59
+ --cyan-500: #0086E6;
60
+ --cyan-600: #0053A6;
61
+ --cyan-700: #003066;
62
+
63
+ /* Teal */
64
+ --teal-50: #D4F5F5;
65
+ --teal-100: #9DF2F2;
66
+ --teal-200: #5CE6E6;
67
+ --teal-500: #14CCCC;
68
+ --teal-600: #00A7A7;
69
+ --teal-700: #045659;
70
+
71
+ /* Green */
72
+ --green-50: #D3FBDD;
73
+ --green-100: #91F2AA;
74
+ --green-200: #57D977;
75
+ --green-500: #24B347;
76
+ --green-600: #007F2A;
77
+ --green-700: #004D19;
78
+
79
+ /* Yellow */
80
+ --yellow-50: #FFF7CC;
81
+ --yellow-100: #FFDD99;
82
+ --yellow-200: #FFC859;
83
+ --yellow-500: #FAB325;
84
+ --yellow-600: #E6960B;
85
+ --yellow-700: #CC7C04;
86
+
87
+ /* Orange */
88
+ --orange-50: #FFECE1;
89
+ --orange-100: #FFB68C;
90
+ --orange-200: #FF8E4C;
91
+ --orange-500: #F26924;
92
+ --orange-600: #E64D0B;
93
+ --orange-700: #BF3000;
94
+
95
+ /* Red */
96
+ --red-50: #FFE9EC;
97
+ --red-100: #FFB2B9;
98
+ --red-200: #FF5967;
99
+ --red-500: #F22435;
100
+ --red-600: #CC0A1A;
101
+ --red-700: #99000D;
102
+
103
+ /* Pink */
104
+ --pink-50: #FFECF9;
105
+ --pink-100: #FFB2E8;
106
+ --pink-200: #FF66CC;
107
+ --pink-500: #E62EA8;
108
+ --pink-600: #BF0A89;
109
+ --pink-700: #99086D;
110
+
111
+ /* Semantic Colors - Light Mode */
112
+ --background: var(--white);
113
+ --foreground: var(--gray-800);
114
+ --card: var(--white);
115
+ --card-foreground: var(--gray-800);
116
+ --popover: var(--white);
117
+ --popover-foreground: var(--gray-800);
118
+ --primary: var(--purple-500);
119
+ --primary-foreground: var(--white);
120
+ --secondary: var(--purple-50);
121
+ --secondary-foreground: var(--purple-700);
122
+ --muted: var(--gray-100);
123
+ --muted-foreground: var(--gray-500);
124
+ --accent: var(--purple-50);
125
+ --accent-foreground: var(--purple-600);
126
+ --destructive: var(--red-500);
127
+ --destructive-foreground: var(--white);
128
+ --success: var(--green-500);
129
+ --success-foreground: var(--white);
130
+ --warning: var(--yellow-500);
131
+ --warning-foreground: var(--gray-800);
132
+ --info: var(--cyan-500);
133
+ --info-foreground: var(--white);
134
+ --border: var(--gray-200);
135
+ --input: transparent;
136
+ --input-background: var(--gray-50);
137
+ --switch-background: var(--gray-300);
138
+ --ring: var(--purple-500);
139
+ --font-weight-medium: 500;
140
+ --font-weight-normal: 400;
141
+
142
+ /* Charts - Acessibilidade melhorada com Balanceamento Óptico */
143
+ --chart-1: var(--purple-500);
144
+ /* Brand Color (Vibrante) */
145
+ --chart-2: var(--cyan-600);
146
+ /* Darkened for contrast */
147
+ --chart-3: var(--green-600);
148
+ /* Darkened for contrast */
149
+ --chart-4: var(--orange-600);
150
+ /* Darkened for contrast */
151
+ --chart-5: var(--pink-600);
152
+ /* Darkened for contrast */
153
+
154
+ /* Border Radius */
155
+ --radius: 0.625rem;
156
+
157
+ /* Sidebar */
158
+ --sidebar: var(--white);
159
+ --sidebar-foreground: var(--gray-800);
160
+ --sidebar-primary: var(--purple-500);
161
+ --sidebar-primary-foreground: var(--white);
162
+ --sidebar-accent: var(--purple-50);
163
+ --sidebar-accent-foreground: var(--purple-700);
164
+ --sidebar-border: var(--gray-200);
165
+ --sidebar-ring: var(--purple-500);
166
+ }
167
+
168
+ .dark {
169
+ /* Semantic Colors - Dark Mode */
170
+ --background: var(--gray-800);
171
+ --foreground: var(--gray-50);
172
+ --card: var(--gray-700);
173
+ --card-foreground: var(--gray-50);
174
+ --popover: var(--gray-700);
175
+ --popover-foreground: var(--gray-50);
176
+ --primary: var(--purple-200);
177
+ --primary-foreground: var(--gray-900);
178
+ --secondary: var(--gray-700);
179
+ --secondary-foreground: var(--gray-50);
180
+ --muted: var(--gray-600);
181
+ --muted-foreground: var(--gray-300);
182
+ --accent: var(--purple-700);
183
+ --accent-foreground: var(--purple-100);
184
+ --destructive: var(--red-600);
185
+ --destructive-foreground: var(--white);
186
+ --success: var(--green-600);
187
+ --success-foreground: var(--white);
188
+ --warning: var(--yellow-600);
189
+ --warning-foreground: var(--white);
190
+ --info: var(--cyan-600);
191
+ --info-foreground: var(--white);
192
+ --border: var(--gray-600);
193
+ --input: var(--gray-600);
194
+ --input-background: var(--gray-700);
195
+ --switch-background: var(--gray-600);
196
+ --ring: var(--purple-200);
197
+
198
+ /* Charts - Dark Mode */
199
+ --chart-1: var(--purple-200);
200
+ --chart-2: var(--cyan-200);
201
+ --chart-3: var(--green-200);
202
+ --chart-4: var(--orange-200);
203
+ --chart-5: var(--pink-200);
204
+
205
+ /* Sidebar - Dark Mode */
206
+ --sidebar: var(--gray-800);
207
+ --sidebar-foreground: var(--gray-50);
208
+ --sidebar-primary: var(--purple-200);
209
+ --sidebar-primary-foreground: var(--gray-900);
210
+ --sidebar-accent: var(--gray-700);
211
+ --sidebar-accent-foreground: var(--purple-100);
212
+ --sidebar-border: var(--gray-600);
213
+ --sidebar-ring: var(--purple-200);
214
+ }
215
+
216
+ @theme inline {
217
+ /* Semantic Colors */
218
+ --color-background: var(--background);
219
+ --color-foreground: var(--foreground);
220
+ --color-card: var(--card);
221
+ --color-card-foreground: var(--card-foreground);
222
+ --color-popover: var(--popover);
223
+ --color-popover-foreground: var(--popover-foreground);
224
+ --color-primary: var(--primary);
225
+ --color-primary-foreground: var(--primary-foreground);
226
+ --color-secondary: var(--secondary);
227
+ --color-secondary-foreground: var(--secondary-foreground);
228
+ --color-muted: var(--muted);
229
+ --color-muted-foreground: var(--muted-foreground);
230
+ --color-accent: var(--accent);
231
+ --color-accent-foreground: var(--accent-foreground);
232
+ --color-destructive: var(--destructive);
233
+ --color-destructive-foreground: var(--destructive-foreground);
234
+ --color-success: var(--success);
235
+ --color-success-foreground: var(--success-foreground);
236
+ --color-warning: var(--warning);
237
+ --color-warning-foreground: var(--warning-foreground);
238
+ --color-info: var(--info);
239
+ --color-info-foreground: var(--info-foreground);
240
+ --color-border: var(--border);
241
+ --color-input: var(--input);
242
+ --color-input-background: var(--input-background);
243
+ --color-switch-background: var(--switch-background);
244
+ --color-ring: var(--ring);
245
+
246
+ /* Charts */
247
+ --color-chart-1: var(--chart-1);
248
+ --color-chart-2: var(--chart-2);
249
+ --color-chart-3: var(--chart-3);
250
+ --color-chart-4: var(--chart-4);
251
+ --color-chart-5: var(--chart-5);
252
+
253
+ /* Border Radius */
254
+ --radius-sm: calc(var(--radius) - 4px);
255
+ --radius-md: calc(var(--radius) - 2px);
256
+ --radius-lg: var(--radius);
257
+ --radius-xl: calc(var(--radius) + 4px);
258
+
259
+ /* Sidebar */
260
+ --color-sidebar: var(--sidebar);
261
+ --color-sidebar-foreground: var(--sidebar-foreground);
262
+ --color-sidebar-primary: var(--sidebar-primary);
263
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
264
+ --color-sidebar-accent: var(--sidebar-accent);
265
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
266
+ --color-sidebar-border: var(--sidebar-border);
267
+ --color-sidebar-ring: var(--sidebar-ring);
268
+
269
+ /* Raw Color Palette */
270
+ --color-gray-50: var(--gray-50);
271
+ --color-gray-100: var(--gray-100);
272
+ --color-gray-200: var(--gray-200);
273
+ --color-gray-300: var(--gray-300);
274
+ --color-gray-400: var(--gray-400);
275
+ --color-gray-500: var(--gray-500);
276
+ --color-gray-600: var(--gray-600);
277
+ --color-gray-700: var(--gray-700);
278
+ --color-gray-800: var(--gray-800);
279
+ --color-purple-50: var(--purple-50);
280
+ --color-purple-100: var(--purple-100);
281
+ --color-purple-200: var(--purple-200);
282
+ --color-purple-500: var(--purple-500);
283
+ --color-purple-600: var(--purple-600);
284
+ --color-purple-700: var(--purple-700);
285
+ --color-blue-50: var(--blue-50);
286
+ --color-blue-100: var(--blue-100);
287
+ --color-blue-200: var(--blue-200);
288
+ --color-blue-500: var(--blue-500);
289
+ --color-blue-600: var(--blue-600);
290
+ --color-blue-700: var(--blue-700);
291
+ --color-cyan-50: var(--cyan-50);
292
+ --color-cyan-100: var(--cyan-100);
293
+ --color-cyan-200: var(--cyan-200);
294
+ --color-cyan-500: var(--cyan-500);
295
+ --color-cyan-600: var(--cyan-600);
296
+ --color-cyan-700: var(--cyan-700);
297
+ --color-teal-50: var(--teal-50);
298
+ --color-teal-100: var(--teal-100);
299
+ --color-teal-200: var(--teal-200);
300
+ --color-teal-500: var(--teal-500);
301
+ --color-teal-600: var(--teal-600);
302
+ --color-teal-700: var(--teal-700);
303
+ --color-green-50: var(--green-50);
304
+ --color-green-100: var(--green-100);
305
+ --color-green-200: var(--green-200);
306
+ --color-green-500: var(--green-500);
307
+ --color-green-600: var(--green-600);
308
+ --color-green-700: var(--green-700);
309
+ --color-yellow-50: var(--yellow-50);
310
+ --color-yellow-100: var(--yellow-100);
311
+ --color-yellow-200: var(--yellow-200);
312
+ --color-yellow-500: var(--yellow-500);
313
+ --color-yellow-600: var(--yellow-600);
314
+ --color-yellow-700: var(--yellow-700);
315
+ --color-orange-50: var(--orange-50);
316
+ --color-orange-100: var(--orange-100);
317
+ --color-orange-200: var(--orange-200);
318
+ --color-orange-500: var(--orange-500);
319
+ --color-orange-600: var(--orange-600);
320
+ --color-orange-700: var(--orange-700);
321
+ --color-red-50: var(--red-50);
322
+ --color-red-100: var(--red-100);
323
+ --color-red-200: var(--red-200);
324
+ --color-red-500: var(--red-500);
325
+ --color-red-600: var(--red-600);
326
+ --color-red-700: var(--red-700);
327
+ --color-pink-50: var(--pink-50);
328
+ --color-pink-100: var(--pink-100);
329
+ --color-pink-200: var(--pink-200);
330
+ --color-pink-500: var(--pink-500);
331
+ --color-pink-600: var(--pink-600);
332
+ --color-pink-700: var(--pink-700);
333
+ }
334
+
335
+ @layer base {
336
+ * {
337
+ @apply border-border outline-ring/50;
338
+ }
339
+
340
+ body {
341
+ @apply bg-background text-foreground;
342
+ }
343
+ }
344
+
345
+ /**
346
+ * Base typography. This is not applied to elements which have an ancestor with a Tailwind text class.
347
+ */
348
+ @layer base {
349
+ :where(:not(:has([class*=' text-']), :not(:has([class^='text-'])))) {
350
+ h1 {
351
+ font-size: var(--text-2xl);
352
+ font-weight: var(--font-weight-medium);
353
+ line-height: 1.5;
354
+ }
355
+
356
+ h2 {
357
+ font-size: var(--text-xl);
358
+ font-weight: var(--font-weight-medium);
359
+ line-height: 1.5;
360
+ }
361
+
362
+ h3 {
363
+ font-size: var(--text-lg);
364
+ font-weight: var(--font-weight-medium);
365
+ line-height: 1.5;
366
+ }
367
+
368
+ h4 {
369
+ font-size: var(--text-base);
370
+ font-weight: var(--font-weight-medium);
371
+ line-height: 1.5;
372
+ }
373
+
374
+ p {
375
+ font-size: var(--text-base);
376
+ font-weight: var(--font-weight-normal);
377
+ line-height: 1.5;
378
+ }
379
+
380
+ label {
381
+ font-size: var(--text-base);
382
+ font-weight: var(--font-weight-medium);
383
+ line-height: 1.5;
384
+ }
385
+
386
+ button {
387
+ font-size: var(--text-base);
388
+ font-weight: var(--font-weight-medium);
389
+ line-height: 1.5;
390
+ }
391
+
392
+ input {
393
+ font-size: var(--text-base);
394
+ font-weight: var(--font-weight-normal);
395
+ line-height: 1.5;
396
+ }
397
+ }
398
+ }
399
+
400
+ html {
401
+ font-size: var(--font-size);
402
+ }
403
+
404
+ /* ============================================
405
+ Micro-Animations (Premium)
406
+ ============================================ */
407
+
408
+ /* Keyframes */
409
+ @keyframes shimmer {
410
+ 0% {
411
+ background-position: -200% 0;
412
+ }
413
+
414
+ 100% {
415
+ background-position: 200% 0;
416
+ }
417
+ }
418
+
419
+ @keyframes scale-in {
420
+ 0% {
421
+ transform: scale(0.95);
422
+ opacity: 0;
423
+ }
424
+
425
+ 100% {
426
+ transform: scale(1);
427
+ opacity: 1;
428
+ }
429
+ }
430
+
431
+ @keyframes scale-out {
432
+ 0% {
433
+ transform: scale(1);
434
+ opacity: 1;
435
+ }
436
+
437
+ 100% {
438
+ transform: scale(0.95);
439
+ opacity: 0;
440
+ }
441
+ }
442
+
443
+ @keyframes shake {
444
+
445
+ 0%,
446
+ 100% {
447
+ transform: translateX(0);
448
+ }
449
+
450
+ 10%,
451
+ 30%,
452
+ 50%,
453
+ 70%,
454
+ 90% {
455
+ transform: translateX(-4px);
456
+ }
457
+
458
+ 20%,
459
+ 40%,
460
+ 60%,
461
+ 80% {
462
+ transform: translateX(4px);
463
+ }
464
+ }
465
+
466
+ @keyframes checkmark-draw {
467
+ 0% {
468
+ stroke-dashoffset: 24;
469
+ }
470
+
471
+ 100% {
472
+ stroke-dashoffset: 0;
473
+ }
474
+ }
475
+
476
+ @keyframes success-pop {
477
+ 0% {
478
+ transform: scale(0);
479
+ }
480
+
481
+ 50% {
482
+ transform: scale(1.2);
483
+ }
484
+
485
+ 100% {
486
+ transform: scale(1);
487
+ }
488
+ }
489
+
490
+ @keyframes slide-up-fade {
491
+ 0% {
492
+ transform: translateY(8px);
493
+ opacity: 0;
494
+ }
495
+
496
+ 100% {
497
+ transform: translateY(0);
498
+ opacity: 1;
499
+ }
500
+ }
501
+
502
+ @keyframes slide-down-fade {
503
+ 0% {
504
+ transform: translateY(-8px);
505
+ opacity: 0;
506
+ }
507
+
508
+ 100% {
509
+ transform: translateY(0);
510
+ opacity: 1;
511
+ }
512
+ }
513
+
514
+ /* Animation Utility Classes */
515
+ .animate-shimmer {
516
+ animation: shimmer 2s infinite linear;
517
+ background: linear-gradient(90deg,
518
+ var(--muted) 0%,
519
+ var(--accent) 50%,
520
+ var(--muted) 100%);
521
+ background-size: 200% 100%;
522
+ }
523
+
524
+ .animate-scale-in {
525
+ animation: scale-in 200ms ease-out;
526
+ }
527
+
528
+ .animate-scale-out {
529
+ animation: scale-out 200ms ease-in;
530
+ }
531
+
532
+ .animate-shake {
533
+ animation: shake 500ms ease-in-out;
534
+ }
535
+
536
+ .animate-success-pop {
537
+ animation: success-pop 400ms ease-out;
538
+ }
539
+
540
+ .animate-slide-up {
541
+ animation: slide-up-fade 200ms ease-out;
542
+ }
543
+
544
+ .animate-slide-down {
545
+ animation: slide-down-fade 200ms ease-out;
546
+ }
547
+
548
+ /* Interactive Micro-Animations */
549
+ .interactive-scale {
550
+ transition: transform 150ms ease, box-shadow 150ms ease;
551
+ }
552
+
553
+ .interactive-scale:hover {
554
+ transform: scale(1.02);
555
+ }
556
+
557
+ .interactive-scale:active {
558
+ transform: scale(0.98);
559
+ }
560
+
561
+ /* Button Premium Hover */
562
+ .btn-premium {
563
+ transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
564
+ }
565
+
566
+ .btn-premium:hover {
567
+ transform: translateY(-1px);
568
+ box-shadow: 0 4px 12px rgba(127, 38, 191, 0.25);
569
+ }
570
+
571
+ .btn-premium:active {
572
+ transform: translateY(0);
573
+ box-shadow: 0 2px 4px rgba(127, 38, 191, 0.15);
574
+ }
575
+
576
+ /* Card Premium Hover */
577
+ .card-premium {
578
+ transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
579
+ }
580
+
581
+ .card-premium:hover {
582
+ transform: translateY(-2px);
583
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
584
+ }
585
+
586
+ /* Skeleton Shimmer Effect */
587
+ .skeleton-shimmer {
588
+ background: linear-gradient(90deg,
589
+ var(--accent) 0%,
590
+ var(--muted) 20%,
591
+ var(--accent) 40%,
592
+ var(--accent) 100%);
593
+ background-size: 200% 100%;
594
+ animation: shimmer 1.5s infinite;
595
+ }
596
+
597
+ /* ============================================
598
+ Print Styles
599
+ ============================================ */
600
+
601
+ @media print {
602
+
603
+ /* Ocultar elementos desnecessários na impressão */
604
+ .no-print {
605
+ display: none !important;
606
+ }
607
+
608
+ /* Forçar impressão em cores */
609
+ * {
610
+ -webkit-print-color-adjust: exact !important;
611
+ print-color-adjust: exact !important;
612
+ color-adjust: exact !important;
613
+ }
614
+
615
+ /* Configuração da página */
616
+ @page {
617
+ margin: 2cm;
618
+ size: A4 portrait;
619
+ }
620
+
621
+ /* Evitar quebras de página indesejadas */
622
+ .avoid-break {
623
+ page-break-inside: avoid !important;
624
+ break-inside: avoid !important;
625
+ }
626
+
627
+ /* Quebra de página forçada */
628
+ .page-break {
629
+ page-break-before: always !important;
630
+ break-before: page !important;
631
+ }
632
+
633
+ /* Layout específico para tabelas */
634
+ table {
635
+ page-break-inside: auto !important;
636
+ }
637
+
638
+ tr {
639
+ page-break-inside: avoid !important;
640
+ page-break-after: auto !important;
641
+ }
642
+
643
+ thead {
644
+ display: table-header-group !important;
645
+ }
646
+
647
+ tfoot {
648
+ display: table-footer-group !important;
649
+ }
650
+
651
+ /* Remover sombras e bordas arredondadas para impressão limpa */
652
+ .contract-template,
653
+ .print-template {
654
+ box-shadow: none !important;
655
+ border-radius: 0 !important;
656
+ padding: 0 !important;
657
+ margin: 0 !important;
658
+ }
659
+
660
+ /* Garantir que textos primários sejam visíveis */
661
+ .text-primary {
662
+ color: #7F26BF !important;
663
+ }
664
+
665
+ /* Garantir bordas visíveis */
666
+ .border-primary {
667
+ border-color: #7F26BF !important;
668
+ }
669
+
670
+ /* Ajustar cores de fundo para impressão */
671
+ .bg-gray-50,
672
+ .bg-gray-100 {
673
+ background-color: #F2F6FA !important;
674
+ }
675
+
676
+ /* Ocultar elementos interativos */
677
+ button:not(.print-keep),
678
+ .hover\:opacity-100,
679
+ [role="button"]:not(.print-keep) {
680
+ display: none !important;
681
+ }
682
+
683
+ /* Garantir que cabeçalhos e rodapés sejam impressos */
684
+ .print-header,
685
+ .print-footer {
686
+ display: block !important;
687
+ }
688
+
689
+ /* Ajustar espaçamentos para impressão */
690
+ body {
691
+ background: white !important;
692
+ color: black !important;
693
+ }
694
+ }