@cnc-ti/layout-basic 8.4.0 → 8.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.
package/README.md ADDED
@@ -0,0 +1,59 @@
1
+ # @cnc-ti/layout-basic
2
+
3
+ Biblioteca de componentes React da CNC. Reúne o cabeçalho, a navegação e os
4
+ controles de formulário compartilhados pelos sistemas internos — GEV, RENAR,
5
+ GDS, Gestão de Câmaras, Gestão de Demandas, OráculoS e afins — para que todos
6
+ tenham a mesma identidade visual sem reimplementar a mesma tela em cada projeto.
7
+
8
+ Construída sobre Radix UI e Tailwind CSS, com classes prefixadas por `cnc-`
9
+ para não colidir com os estilos da aplicação que a consome.
10
+
11
+ ## Instalação
12
+
13
+ ```bash
14
+ npm install @cnc-ti/layout-basic
15
+ ```
16
+
17
+ ## Uso
18
+
19
+ Importe o CSS uma vez, no ponto de entrada da aplicação:
20
+
21
+ ```ts
22
+ import "@cnc-ti/layout-basic/styles";
23
+ ```
24
+
25
+ E use os componentes:
26
+
27
+ ```tsx
28
+ import { HeaderContainer, HeaderNotifications, Button } from "@cnc-ti/layout-basic";
29
+
30
+ export function Layout() {
31
+ return (
32
+ <HeaderContainer
33
+ logo="/images/logo.svg"
34
+ notifications={<HeaderNotifications email={usuario.email} sistema="gev" baseUrl={API_NOTIFICACOES} />}
35
+ >
36
+ <Button>Entrar</Button>
37
+ </HeaderContainer>
38
+ );
39
+ }
40
+ ```
41
+
42
+ ## O que vem na caixa
43
+
44
+ - **Layout** — `HeaderContainer`, `AplicationsHeader`, `Sidebar`, `AppsMenu`, `HeaderNotifications`
45
+ - **Formulários** — `Input`, `Select`, `Combobox`, `Checkbox`, `Switch`, `Filter`
46
+ - **Exibição** — `Card`, `CardList`, `Badge`, `Tabs`, `Collapsible`
47
+ - **Sobreposição** — `Modal`, `Dialog`, `Popover`, `DropdownMenu`, `Command`
48
+
49
+ A referência completa de props fica nos tipos do próprio pacote e no Storybook interno.
50
+
51
+ ## Requisitos
52
+
53
+ - React >= 18
54
+ - `react-hook-form` >= 7 — peer opcional, necessária para o `Filter`
55
+ - Font Awesome carregado na aplicação — usado pelos ícones do `AppsMenu`
56
+
57
+ ## Licença
58
+
59
+ MIT
package/dist/index.css CHANGED
@@ -447,6 +447,12 @@ input[type=date]::-webkit-calendar-picker-indicator {
447
447
  .cnc-inset-0 {
448
448
  inset: 0px;
449
449
  }
450
+ .-cnc-right-0\.5 {
451
+ right: -0.125rem;
452
+ }
453
+ .-cnc-top-0\.5 {
454
+ top: -0.125rem;
455
+ }
450
456
  .cnc-left-2 {
451
457
  left: 0.5rem;
452
458
  }
@@ -477,6 +483,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
477
483
  .cnc-z-\[51\] {
478
484
  z-index: 51;
479
485
  }
486
+ .cnc-m-0 {
487
+ margin: 0px;
488
+ }
480
489
  .-cnc-mx-1 {
481
490
  margin-left: -0.25rem;
482
491
  margin-right: -0.25rem;
@@ -555,6 +564,12 @@ input[type=date]::-webkit-calendar-picker-indicator {
555
564
  .cnc-mt-\[9px\] {
556
565
  margin-top: 9px;
557
566
  }
567
+ .cnc-line-clamp-2 {
568
+ overflow: hidden;
569
+ display: -webkit-box;
570
+ -webkit-box-orient: vertical;
571
+ -webkit-line-clamp: 2;
572
+ }
558
573
  .cnc-block {
559
574
  display: block;
560
575
  }
@@ -595,12 +610,18 @@ input[type=date]::-webkit-calendar-picker-indicator {
595
610
  .cnc-h-6 {
596
611
  height: 1.5rem;
597
612
  }
613
+ .cnc-h-7 {
614
+ height: 1.75rem;
615
+ }
598
616
  .cnc-h-8 {
599
617
  height: 2rem;
600
618
  }
601
619
  .cnc-h-9 {
602
620
  height: 2.25rem;
603
621
  }
622
+ .cnc-h-\[18px\] {
623
+ height: 18px;
624
+ }
604
625
  .cnc-h-\[28px\] {
605
626
  height: 28px;
606
627
  }
@@ -631,6 +652,12 @@ input[type=date]::-webkit-calendar-picker-indicator {
631
652
  .cnc-max-h-\[300px\] {
632
653
  max-height: 300px;
633
654
  }
655
+ .cnc-max-h-\[320px\] {
656
+ max-height: 320px;
657
+ }
658
+ .cnc-max-h-\[360px\] {
659
+ max-height: 360px;
660
+ }
634
661
  .cnc-max-h-\[70px\] {
635
662
  max-height: 70px;
636
663
  }
@@ -661,27 +688,42 @@ input[type=date]::-webkit-calendar-picker-indicator {
661
688
  .cnc-w-6 {
662
689
  width: 1.5rem;
663
690
  }
691
+ .cnc-w-7 {
692
+ width: 1.75rem;
693
+ }
664
694
  .cnc-w-72 {
665
695
  width: 18rem;
666
696
  }
667
697
  .cnc-w-8 {
668
698
  width: 2rem;
669
699
  }
700
+ .cnc-w-9 {
701
+ width: 2.25rem;
702
+ }
670
703
  .cnc-w-\[--radix-popover-trigger-width\] {
671
704
  width: var(--radix-popover-trigger-width);
672
705
  }
673
706
  .cnc-w-\[159px\] {
674
707
  width: 159px;
675
708
  }
709
+ .cnc-w-\[18px\] {
710
+ width: 18px;
711
+ }
676
712
  .cnc-w-\[38px\] {
677
713
  width: 38px;
678
714
  }
679
715
  .cnc-w-full {
680
716
  width: 100%;
681
717
  }
718
+ .cnc-min-w-0 {
719
+ min-width: 0px;
720
+ }
682
721
  .cnc-min-w-\[12rem\] {
683
722
  min-width: 12rem;
684
723
  }
724
+ .cnc-min-w-\[18px\] {
725
+ min-width: 18px;
726
+ }
685
727
  .cnc-min-w-\[8rem\] {
686
728
  min-width: 8rem;
687
729
  }
@@ -691,6 +733,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
691
733
  .cnc-max-w-\[42rem\] {
692
734
  max-width: 42rem;
693
735
  }
736
+ .cnc-max-w-\[440px\] {
737
+ max-width: 440px;
738
+ }
694
739
  .cnc-max-w-\[513px\] {
695
740
  max-width: 513px;
696
741
  }
@@ -744,6 +789,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
744
789
  -moz-user-select: none;
745
790
  user-select: none;
746
791
  }
792
+ .cnc-list-none {
793
+ list-style-type: none;
794
+ }
747
795
  .cnc-grid-cols-3 {
748
796
  grid-template-columns: repeat(3, minmax(0, 1fr));
749
797
  }
@@ -759,12 +807,18 @@ input[type=date]::-webkit-calendar-picker-indicator {
759
807
  .cnc-flex-wrap {
760
808
  flex-wrap: wrap;
761
809
  }
810
+ .cnc-items-start {
811
+ align-items: flex-start;
812
+ }
762
813
  .cnc-items-end {
763
814
  align-items: flex-end;
764
815
  }
765
816
  .cnc-items-center {
766
817
  align-items: center;
767
818
  }
819
+ .cnc-items-baseline {
820
+ align-items: baseline;
821
+ }
768
822
  .cnc-justify-end {
769
823
  justify-content: flex-end;
770
824
  }
@@ -774,6 +828,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
774
828
  .cnc-justify-between {
775
829
  justify-content: space-between;
776
830
  }
831
+ .cnc-gap-0\.5 {
832
+ gap: 0.125rem;
833
+ }
777
834
  .cnc-gap-1 {
778
835
  gap: 0.25rem;
779
836
  }
@@ -783,6 +840,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
783
840
  .cnc-gap-2 {
784
841
  gap: 0.5rem;
785
842
  }
843
+ .cnc-gap-3 {
844
+ gap: 0.75rem;
845
+ }
786
846
  .cnc-gap-4 {
787
847
  gap: 1rem;
788
848
  }
@@ -849,6 +909,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
849
909
  .cnc-border {
850
910
  border-width: 1px;
851
911
  }
912
+ .cnc-border-0 {
913
+ border-width: 0px;
914
+ }
852
915
  .cnc-border-2 {
853
916
  border-width: 2px;
854
917
  }
@@ -864,6 +927,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
864
927
  .cnc-border-l-2 {
865
928
  border-left-width: 2px;
866
929
  }
930
+ .cnc-border-l-\[3px\] {
931
+ border-left-width: 3px;
932
+ }
867
933
  .cnc-border-r {
868
934
  border-right-width: 1px;
869
935
  }
@@ -911,6 +977,17 @@ input[type=date]::-webkit-calendar-picker-indicator {
911
977
  --tw-border-opacity: 1;
912
978
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
913
979
  }
980
+ .cnc-border-white {
981
+ --tw-border-opacity: 1;
982
+ border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
983
+ }
984
+ .cnc-border-l-brand-blue-400 {
985
+ --tw-border-opacity: 1;
986
+ border-left-color: rgb(1 48 164 / var(--tw-border-opacity, 1));
987
+ }
988
+ .cnc-border-l-transparent {
989
+ border-left-color: transparent;
990
+ }
914
991
  .cnc-bg-\[\#00000005\] {
915
992
  background-color: #00000005;
916
993
  }
@@ -1014,6 +1091,10 @@ input[type=date]::-webkit-calendar-picker-indicator {
1014
1091
  .cnc-p-6 {
1015
1092
  padding: 1.5rem;
1016
1093
  }
1094
+ .cnc-px-1 {
1095
+ padding-left: 0.25rem;
1096
+ padding-right: 0.25rem;
1097
+ }
1017
1098
  .cnc-px-2 {
1018
1099
  padding-left: 0.5rem;
1019
1100
  padding-right: 0.5rem;
@@ -1050,6 +1131,10 @@ input[type=date]::-webkit-calendar-picker-indicator {
1050
1131
  padding-top: 0.375rem;
1051
1132
  padding-bottom: 0.375rem;
1052
1133
  }
1134
+ .cnc-py-12 {
1135
+ padding-top: 3rem;
1136
+ padding-bottom: 3rem;
1137
+ }
1053
1138
  .cnc-py-16 {
1054
1139
  padding-top: 4rem;
1055
1140
  padding-bottom: 4rem;
@@ -1081,12 +1166,21 @@ input[type=date]::-webkit-calendar-picker-indicator {
1081
1166
  .cnc-pb-4 {
1082
1167
  padding-bottom: 1rem;
1083
1168
  }
1169
+ .cnc-pl-3 {
1170
+ padding-left: 0.75rem;
1171
+ }
1084
1172
  .cnc-pl-8 {
1085
1173
  padding-left: 2rem;
1086
1174
  }
1087
1175
  .cnc-pr-2 {
1088
1176
  padding-right: 0.5rem;
1089
1177
  }
1178
+ .cnc-pr-3 {
1179
+ padding-right: 0.75rem;
1180
+ }
1181
+ .cnc-pr-4 {
1182
+ padding-right: 1rem;
1183
+ }
1090
1184
  .cnc-pr-8 {
1091
1185
  padding-right: 2rem;
1092
1186
  }
@@ -1099,6 +1193,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
1099
1193
  .cnc-pt-6 {
1100
1194
  padding-top: 1.5rem;
1101
1195
  }
1196
+ .cnc-text-left {
1197
+ text-align: left;
1198
+ }
1102
1199
  .cnc-text-center {
1103
1200
  text-align: center;
1104
1201
  }
@@ -1112,6 +1209,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
1112
1209
  font-size: 1.5rem;
1113
1210
  line-height: 2rem;
1114
1211
  }
1212
+ .cnc-text-\[10px\] {
1213
+ font-size: 10px;
1214
+ }
1115
1215
  .cnc-text-\[11px\] {
1116
1216
  font-size: 11px;
1117
1217
  }
@@ -1161,6 +1261,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
1161
1261
  .cnc-leading-none {
1162
1262
  line-height: 1;
1163
1263
  }
1264
+ .cnc-leading-relaxed {
1265
+ line-height: 1.625;
1266
+ }
1164
1267
  .cnc-leading-tight {
1165
1268
  line-height: 1.25;
1166
1269
  }
@@ -1178,6 +1281,10 @@ input[type=date]::-webkit-calendar-picker-indicator {
1178
1281
  --tw-text-opacity: 1;
1179
1282
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
1180
1283
  }
1284
+ .cnc-text-brand-blue-100 {
1285
+ --tw-text-opacity: 1;
1286
+ color: rgb(0 76 153 / var(--tw-text-opacity, 1));
1287
+ }
1181
1288
  .cnc-text-brand-blue-400 {
1182
1289
  --tw-text-opacity: 1;
1183
1290
  color: rgb(1 48 164 / var(--tw-text-opacity, 1));
@@ -1224,6 +1331,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
1224
1331
  --tw-text-opacity: 1;
1225
1332
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1226
1333
  }
1334
+ .cnc-no-underline {
1335
+ text-decoration-line: none;
1336
+ }
1227
1337
  .cnc-opacity-0 {
1228
1338
  opacity: 0;
1229
1339
  }
@@ -1255,6 +1365,14 @@ input[type=date]::-webkit-calendar-picker-indicator {
1255
1365
  var(--tw-ring-shadow, 0 0 #0000),
1256
1366
  var(--tw-shadow);
1257
1367
  }
1368
+ .cnc-shadow-custom {
1369
+ --tw-shadow: 0px 2px 8px 0px rgba(99, 99, 99, 0.2);
1370
+ --tw-shadow-colored: 0px 2px 8px 0px var(--tw-shadow-color);
1371
+ box-shadow:
1372
+ var(--tw-ring-offset-shadow, 0 0 #0000),
1373
+ var(--tw-ring-shadow, 0 0 #0000),
1374
+ var(--tw-shadow);
1375
+ }
1258
1376
  .cnc-shadow-lg {
1259
1377
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1260
1378
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@@ -1439,6 +1557,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
1439
1557
  .placeholder\:cnc-text-muted-foreground::placeholder {
1440
1558
  color: hsl(var(--muted-foreground));
1441
1559
  }
1560
+ .last\:cnc-border-b-0:last-child {
1561
+ border-bottom-width: 0px;
1562
+ }
1442
1563
  .hover\:cnc-bg-brand-blue-400\/90:hover {
1443
1564
  background-color: rgb(1 48 164 / 0.9);
1444
1565
  }
@@ -1446,6 +1567,10 @@ input[type=date]::-webkit-calendar-picker-indicator {
1446
1567
  --tw-bg-opacity: 1;
1447
1568
  background-color: rgb(247 250 255 / var(--tw-bg-opacity, 1));
1448
1569
  }
1570
+ .hover\:cnc-bg-brand-blue-60:hover {
1571
+ --tw-bg-opacity: 1;
1572
+ background-color: rgb(229 237 255 / var(--tw-bg-opacity, 1));
1573
+ }
1449
1574
  .hover\:cnc-bg-brand-gray-10:hover {
1450
1575
  --tw-bg-opacity: 1;
1451
1576
  background-color: rgb(245 245 245 / var(--tw-bg-opacity, 1));
@@ -1467,6 +1592,10 @@ input[type=date]::-webkit-calendar-picker-indicator {
1467
1592
  --tw-bg-opacity: 1;
1468
1593
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
1469
1594
  }
1595
+ .hover\:cnc-bg-white:hover {
1596
+ --tw-bg-opacity: 1;
1597
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1598
+ }
1470
1599
  .hover\:cnc-text-accent-foreground:hover {
1471
1600
  color: hsl(var(--accent-foreground));
1472
1601
  }
@@ -1474,14 +1603,25 @@ input[type=date]::-webkit-calendar-picker-indicator {
1474
1603
  --tw-text-opacity: 1;
1475
1604
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
1476
1605
  }
1606
+ .hover\:cnc-text-brand-blue-400:hover {
1607
+ --tw-text-opacity: 1;
1608
+ color: rgb(1 48 164 / var(--tw-text-opacity, 1));
1609
+ }
1477
1610
  .hover\:cnc-text-brand-blue-600:hover {
1478
1611
  --tw-text-opacity: 1;
1479
1612
  color: rgb(31 44 77 / var(--tw-text-opacity, 1));
1480
1613
  }
1614
+ .hover\:cnc-text-brand-red-600:hover {
1615
+ --tw-text-opacity: 1;
1616
+ color: rgb(207 66 66 / var(--tw-text-opacity, 1));
1617
+ }
1481
1618
  .hover\:cnc-text-white:hover {
1482
1619
  --tw-text-opacity: 1;
1483
1620
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1484
1621
  }
1622
+ .hover\:cnc-underline:hover {
1623
+ text-decoration-line: underline;
1624
+ }
1485
1625
  .hover\:cnc-opacity-100:hover {
1486
1626
  opacity: 1;
1487
1627
  }
@@ -1529,6 +1669,9 @@ input[type=date]::-webkit-calendar-picker-indicator {
1529
1669
  var(--tw-ring-shadow),
1530
1670
  var(--tw-shadow, 0 0 #0000);
1531
1671
  }
1672
+ .focus-visible\:cnc-ring-inset:focus-visible {
1673
+ --tw-ring-inset: inset;
1674
+ }
1532
1675
  .focus-visible\:cnc-ring-brand-gray-500\/50:focus-visible {
1533
1676
  --tw-ring-color: rgb(3 40 132 / 0.5);
1534
1677
  }
@@ -1589,6 +1732,10 @@ input[type=date]::-webkit-calendar-picker-indicator {
1589
1732
  .data-\[state\=open\]\:cnc-bg-accent[data-state=open] {
1590
1733
  background-color: hsl(var(--accent));
1591
1734
  }
1735
+ .data-\[state\=open\]\:cnc-bg-brand-blue-60[data-state=open] {
1736
+ --tw-bg-opacity: 1;
1737
+ background-color: rgb(229 237 255 / var(--tw-bg-opacity, 1));
1738
+ }
1592
1739
  .data-\[type\=secondary\]\:cnc-py-0[data-type=secondary] {
1593
1740
  padding-top: 0px;
1594
1741
  padding-bottom: 0px;