@gyramais/gyra-design 0.2.50 → 0.2.53
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 +4 -0
- package/dist/components/Card/Card.d.ts +7 -1
- package/dist/components/Card/index.js +6 -6
- package/dist/components/Card/index.js.map +1 -1
- package/dist/components/ContextMenu/index.js +1 -1
- package/dist/components/ContextMenu/index.js.map +1 -1
- package/dist/components/DropdownMenu/index.js +1 -1
- package/dist/components/DropdownMenu/index.js.map +1 -1
- package/dist/components/Empty/Empty.d.ts +18 -1
- package/dist/components/Empty/index.js +2 -40
- package/dist/components/Empty/index.js.map +1 -1
- package/dist/components/FloatingCard/index.js +7 -7
- package/dist/components/FloatingCard/index.js.map +1 -1
- package/dist/components/List/index.js +2 -40
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/MultiSelectPicker/index.js +7 -7
- package/dist/components/MultiSelectPicker/index.js.map +1 -1
- package/dist/components/OperatorPicker/index.js +1 -1
- package/dist/components/OperatorPicker/index.js.map +1 -1
- package/dist/components/Rail/Rail.d.ts +6 -1
- package/dist/components/Rail/index.js +6 -6
- package/dist/components/Rail/index.js.map +1 -1
- package/dist/components/Rail/types.d.ts +12 -2
- package/dist/components/RuleSearchPicker/index.js +1 -1
- package/dist/components/RuleSearchPicker/index.js.map +1 -1
- package/dist/components/SegmentedPicker/index.js +1 -1
- package/dist/components/SegmentedPicker/index.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +50 -0
- package/dist/components/Skeleton/index.d.ts +1 -0
- package/dist/components/Skeleton/index.js +7 -0
- package/dist/components/Skeleton/index.js.map +1 -0
- package/dist/components/Table/Table.d.ts +14 -1
- package/dist/components/Table/index.js +2 -40
- package/dist/components/Table/index.js.map +1 -1
- package/dist/emails/balance-sheet-finalized/components/Card/Card.d.ts +7 -1
- package/dist/emails/balance-sheet-finalized/components/Empty/Empty.d.ts +18 -1
- package/dist/emails/balance-sheet-finalized/components/Rail/Rail.d.ts +6 -1
- package/dist/emails/balance-sheet-finalized/components/Rail/types.d.ts +12 -2
- package/dist/emails/balance-sheet-finalized/components/Skeleton/Skeleton.d.ts +50 -0
- package/dist/emails/balance-sheet-finalized/components/Skeleton/index.d.ts +1 -0
- package/dist/emails/balance-sheet-finalized/components/Table/Table.d.ts +14 -1
- package/dist/emails/balance-sheet-finalized/index.d.ts +1 -0
- package/dist/emails/email/components/Card/Card.d.ts +7 -1
- package/dist/emails/email/components/Empty/Empty.d.ts +18 -1
- package/dist/emails/email/components/Rail/Rail.d.ts +6 -1
- package/dist/emails/email/components/Rail/types.d.ts +12 -2
- package/dist/emails/email/components/Skeleton/Skeleton.d.ts +50 -0
- package/dist/emails/email/components/Skeleton/index.d.ts +1 -0
- package/dist/emails/email/components/Table/Table.d.ts +14 -1
- package/dist/emails/email/index.d.ts +1 -0
- package/dist/index.css +353 -42
- package/package.json +2 -2
package/dist/index.css
CHANGED
|
@@ -696,6 +696,12 @@ video {
|
|
|
696
696
|
.w-\[360px\] {
|
|
697
697
|
width: 360px;
|
|
698
698
|
}
|
|
699
|
+
.w-\[420px\] {
|
|
700
|
+
width: 420px;
|
|
701
|
+
}
|
|
702
|
+
.w-\[560px\] {
|
|
703
|
+
width: 560px;
|
|
704
|
+
}
|
|
699
705
|
.w-\[800px\] {
|
|
700
706
|
width: 800px;
|
|
701
707
|
}
|
|
@@ -779,6 +785,9 @@ video {
|
|
|
779
785
|
.gap-4 {
|
|
780
786
|
gap: 1rem;
|
|
781
787
|
}
|
|
788
|
+
.gap-6 {
|
|
789
|
+
gap: 1.5rem;
|
|
790
|
+
}
|
|
782
791
|
.gap-x-1 {
|
|
783
792
|
-moz-column-gap: 0.25rem;
|
|
784
793
|
column-gap: 0.25rem;
|
|
@@ -813,6 +822,9 @@ video {
|
|
|
813
822
|
.rounded-\[6px\] {
|
|
814
823
|
border-radius: 6px;
|
|
815
824
|
}
|
|
825
|
+
.rounded-\[var\(--radius-lg\)\] {
|
|
826
|
+
border-radius: var(--radius-lg);
|
|
827
|
+
}
|
|
816
828
|
.rounded-full {
|
|
817
829
|
border-radius: 9999px;
|
|
818
830
|
}
|
|
@@ -825,6 +837,9 @@ video {
|
|
|
825
837
|
.border {
|
|
826
838
|
border-width: 1px;
|
|
827
839
|
}
|
|
840
|
+
.border-\[var\(--color-border-secondary\)\] {
|
|
841
|
+
border-color: var(--color-border-secondary);
|
|
842
|
+
}
|
|
828
843
|
.bg-\[var\(--background-color\)\] {
|
|
829
844
|
background-color: var(--background-color);
|
|
830
845
|
}
|
|
@@ -849,6 +864,10 @@ video {
|
|
|
849
864
|
--tw-bg-opacity: 1;
|
|
850
865
|
background-color: rgb(254 202 202 / var(--tw-bg-opacity, 1));
|
|
851
866
|
}
|
|
867
|
+
.bg-white {
|
|
868
|
+
--tw-bg-opacity: 1;
|
|
869
|
+
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
|
|
870
|
+
}
|
|
852
871
|
.fill-current {
|
|
853
872
|
fill: currentColor;
|
|
854
873
|
}
|
|
@@ -948,6 +967,9 @@ video {
|
|
|
948
967
|
.text-\[var\(--color-text-secondary\)\] {
|
|
949
968
|
color: var(--color-text-secondary);
|
|
950
969
|
}
|
|
970
|
+
.text-\[var\(--color-text-tertiary\)\] {
|
|
971
|
+
color: var(--color-text-tertiary);
|
|
972
|
+
}
|
|
951
973
|
.text-\[var\(--primary-button-color\)\] {
|
|
952
974
|
color: var(--primary-button-color);
|
|
953
975
|
}
|
|
@@ -1149,6 +1171,11 @@ video {
|
|
|
1149
1171
|
--gyra-blue-subtle: #F5F8FF;
|
|
1150
1172
|
--gyra-teal: #1FB58A;
|
|
1151
1173
|
--gyra-teal-light: #E6F7F1;
|
|
1174
|
+
/* Teal escurecido para texto/glifo sobre --gyra-teal-light (o brand teal
|
|
1175
|
+
puro da 2,36:1 ali e reprova em AA). Par medido: 4,77:1 sobre
|
|
1176
|
+
--gyra-teal-light e 5,29:1 sobre branco, na mesma faixa dos
|
|
1177
|
+
--status-*-text. */
|
|
1178
|
+
--gyra-teal-text: #0F7A60;
|
|
1152
1179
|
--gyra-black: #1D1D1F;
|
|
1153
1180
|
|
|
1154
1181
|
/* ---- Neutrals (Apple gray scale) ----------------------------------- */
|
|
@@ -4401,25 +4428,40 @@ h6 {
|
|
|
4401
4428
|
padding-top: 1rem;
|
|
4402
4429
|
}
|
|
4403
4430
|
.gyramais-card.gyramais-card-loading .gyramais-card-content {
|
|
4404
|
-
min-height:
|
|
4431
|
+
min-height: 6rem;
|
|
4432
|
+
/* A regra de esconder abaixo usa `> *`, que casa so ELEMENTO. Um children
|
|
4433
|
+
que seja string/numero solto (ou vindo de fragmento) escaparia e
|
|
4434
|
+
apareceria ao lado do skeleton. Zerar a tipografia aqui colapsa esse texto;
|
|
4435
|
+
o placeholder restaura a sua logo em seguida. */
|
|
4436
|
+
font-size: 0;
|
|
4437
|
+
line-height: 0;
|
|
4405
4438
|
}
|
|
4406
4439
|
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
|
|
4440
|
+
/* `gyramais-card-loading` (modificador da RAIZ) e `gyramais-card-placeholder`
|
|
4441
|
+
(o bloco desenhado) sao nomes distintos de proposito. Quando os dois eram a
|
|
4442
|
+
mesma classe, o seletor de descendente abaixo casava tambem a raiz de um
|
|
4443
|
+
<Card loading> ANINHADO dentro de outro Card, e aplicava o layout do
|
|
4444
|
+
placeholder no card inteiro.
|
|
4445
|
+
|
|
4446
|
+
Estado de carregando: o skeleton entra NO FLUXO, nao sobreposto. Assim ele
|
|
4447
|
+
e' quem dita a altura do card, e um `loadingContent` alto (grafico, tabela)
|
|
4448
|
+
nao fica cortado pela altura do conteudo vazio que ele esta substituindo.
|
|
4449
|
+
O conteudo real continua montado, so escondido pela regra abaixo, para nao
|
|
4450
|
+
perder estado no meio do carregamento. */
|
|
4451
|
+
.gyramais-card .gyramais-card-placeholder {
|
|
4412
4452
|
display: flex;
|
|
4413
|
-
height: 100%;
|
|
4414
4453
|
width: 100%;
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4454
|
+
flex-direction: column;
|
|
4455
|
+
align-items: stretch;
|
|
4456
|
+
background-color: var(--color-surface-primary);
|
|
4457
|
+
font-size: var(--fs-body);
|
|
4458
|
+
line-height: var(--lh-normal);
|
|
4459
|
+
}
|
|
4460
|
+
|
|
4461
|
+
.gyramais-card.gyramais-card-loading
|
|
4462
|
+
.gyramais-card-content
|
|
4463
|
+
> *:not(.gyramais-card-placeholder) {
|
|
4464
|
+
display: none;
|
|
4423
4465
|
}
|
|
4424
4466
|
|
|
4425
4467
|
.gyramais-chart .recharts-legend-item {
|
|
@@ -5775,30 +5817,39 @@ h6 {
|
|
|
5775
5817
|
}
|
|
5776
5818
|
|
|
5777
5819
|
.gyramais-empty {
|
|
5778
|
-
|
|
5779
|
-
|
|
5820
|
+
display: flex;
|
|
5821
|
+
flex-direction: column;
|
|
5822
|
+
align-items: center;
|
|
5823
|
+
justify-content: center;
|
|
5824
|
+
gap: 0.75rem;
|
|
5825
|
+
padding-left: 1rem;
|
|
5826
|
+
padding-right: 1rem;
|
|
5827
|
+
padding-top: 1.5rem;
|
|
5828
|
+
padding-bottom: 1.5rem
|
|
5780
5829
|
}
|
|
5830
|
+
|
|
5781
5831
|
.gyramais-empty .gyramais-empty-icon {
|
|
5782
|
-
|
|
5783
|
-
|
|
5832
|
+
display: flex;
|
|
5833
|
+
justify-content: center
|
|
5784
5834
|
}
|
|
5835
|
+
|
|
5836
|
+
/* O tamanho vai no SVG, nao no wrapper: icone do MUI declara o proprio
|
|
5837
|
+
`font-size`, entao `text-[40px]` no pai nao chega nele e ele encolhe para o
|
|
5838
|
+
padrao do MUI. */
|
|
5785
5839
|
.gyramais-empty .gyramais-empty-icon svg {
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
color: rgb(184 184 184 / var(--tw-text-opacity, 1))
|
|
5840
|
+
font-size: 40px;
|
|
5841
|
+
color: var(--color-text-quaternary)
|
|
5789
5842
|
}
|
|
5843
|
+
|
|
5844
|
+
/* Texto secundario, nao preto: lista vazia informa, nao anuncia. Em preto ela
|
|
5845
|
+
pesava igual ao dado de verdade da tabela ao lado. */
|
|
5790
5846
|
.gyramais-empty .gyramais-empty-text {
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5794
|
-
|
|
5795
|
-
font-size: 0.875rem;
|
|
5796
|
-
line-height: 1.25rem;
|
|
5797
|
-
font-weight: 400;
|
|
5798
|
-
line-height: 22px;
|
|
5799
|
-
--tw-text-opacity: 1;
|
|
5800
|
-
color: rgb(0 0 0 / var(--tw-text-opacity, 1))
|
|
5847
|
+
text-align: center;
|
|
5848
|
+
font-size: var(--fs-subheadline);
|
|
5849
|
+
line-height: var(--lh-normal);
|
|
5850
|
+
color: var(--color-text-tertiary)
|
|
5801
5851
|
}
|
|
5852
|
+
|
|
5802
5853
|
.gyramais-filter .gyramais-filter-button-container {
|
|
5803
5854
|
position: relative;
|
|
5804
5855
|
width: -moz-fit-content;
|
|
@@ -6329,6 +6380,17 @@ h6 {
|
|
|
6329
6380
|
0;
|
|
6330
6381
|
}
|
|
6331
6382
|
|
|
6383
|
+
/*
|
|
6384
|
+
* Text-area nao tem onde flutuar o rotulo: o placeholder subia para top-0 e
|
|
6385
|
+
* ficava em cima da primeira linha digitada. Com valor, some, como o
|
|
6386
|
+
* placeholder nativo.
|
|
6387
|
+
*/
|
|
6388
|
+
.gyramais-input-controller.gyramais-input-text-area
|
|
6389
|
+
.gyramais-input-placeholder.gyramais-input-with-value {
|
|
6390
|
+
opacity:
|
|
6391
|
+
0;
|
|
6392
|
+
}
|
|
6393
|
+
|
|
6332
6394
|
.gyramais-input {
|
|
6333
6395
|
min-height:
|
|
6334
6396
|
40px;
|
|
@@ -7377,7 +7439,7 @@ h6 {
|
|
|
7377
7439
|
|
|
7378
7440
|
Escala: tipografia 15 (nome) / 13 (linha 2) / 12 (estado, conector, motivo);
|
|
7379
7441
|
espacamento em multiplos de 4: padding do cartao 12, gap entre linhas 2,
|
|
7380
|
-
gap entre cartoes
|
|
7442
|
+
gap entre cartoes 20 (via o conector de 44px: 24 de pilula + 10 + 10).
|
|
7381
7443
|
|
|
7382
7444
|
Armadilha do repositorio: o index.css global tem `* { outline: none
|
|
7383
7445
|
!important }` e `*:focus { box-shadow: none !important }`. Anel de foco
|
|
@@ -7432,16 +7494,38 @@ h6 {
|
|
|
7432
7494
|
display: none;
|
|
7433
7495
|
}
|
|
7434
7496
|
|
|
7497
|
+
/* Linha do tempo (modo run): o trilho fica preenchido ate a etapa atual e
|
|
7498
|
+
apagado depois. E a mesma linha de 1px, so que agora ela diz onde a
|
|
7499
|
+
execucao esta sem precisar de mais nada na tela. */
|
|
7500
|
+
.gyramais-rail-run .gyramais-rail-item.is-tracked .gyramais-rail-connector::before,
|
|
7501
|
+
.gyramais-rail-run .gyramais-rail-item.is-tracked .gyramais-rail-step::before {
|
|
7502
|
+
background: var(--gyra-blue);
|
|
7503
|
+
}
|
|
7504
|
+
/* Na etapa atual o preenchimento para no marcador (23px, a mesma altura em
|
|
7505
|
+
que a primeira etapa comeca a desenhar o trilho). */
|
|
7506
|
+
.gyramais-rail-run .gyramais-rail-item.is-current .gyramais-rail-step::before {
|
|
7507
|
+
background: linear-gradient(
|
|
7508
|
+
to bottom,
|
|
7509
|
+
var(--gyra-blue) 23px,
|
|
7510
|
+
var(--color-border-secondary) 23px
|
|
7511
|
+
);
|
|
7512
|
+
}
|
|
7513
|
+
/* A primeira etapa ja desenha a partir do marcador: se ela e a atual, nao
|
|
7514
|
+
sobra nada preenchido abaixo dele. */
|
|
7515
|
+
.gyramais-rail-run .gyramais-rail-item:first-child.is-current .gyramais-rail-step::before {
|
|
7516
|
+
background: var(--color-border-secondary);
|
|
7517
|
+
}
|
|
7518
|
+
|
|
7435
7519
|
/* ---- Conector (pilula de 24px alinhada ao trilho) ----------------------- */
|
|
7436
7520
|
|
|
7437
7521
|
.gyramais-rail-connector {
|
|
7438
7522
|
position: relative;
|
|
7439
7523
|
display: flex;
|
|
7440
|
-
min-height:
|
|
7524
|
+
min-height: 44px;
|
|
7441
7525
|
align-items: center;
|
|
7442
7526
|
gap: 6px;
|
|
7443
|
-
padding-top:
|
|
7444
|
-
padding-bottom:
|
|
7527
|
+
padding-top: 10px;
|
|
7528
|
+
padding-bottom: 10px;
|
|
7445
7529
|
}
|
|
7446
7530
|
|
|
7447
7531
|
.gyramais-rail-gate-editor {
|
|
@@ -7698,10 +7782,36 @@ h6 {
|
|
|
7698
7782
|
background-color: var(--gyra-blue-subtle);
|
|
7699
7783
|
}
|
|
7700
7784
|
|
|
7701
|
-
/*
|
|
7702
|
-
|
|
7785
|
+
/* Elevacao SO na etapa atual do modo run: sombra sutil e borda um tom mais
|
|
7786
|
+
forte. Todo o resto da esteira continua plano, senao a elevacao deixa de
|
|
7787
|
+
apontar para onde a execucao esta. */
|
|
7788
|
+
.gyramais-rail-run .gyramais-rail-step.is-active .gyramais-rail-step-card.gyramais-card {
|
|
7789
|
+
border-color: var(--color-border-strong);
|
|
7790
|
+
box-shadow: var(--shadow-dropdown);
|
|
7791
|
+
}
|
|
7792
|
+
|
|
7793
|
+
/* O unico cartao que pede acao humana: acento ambar na borda esquerda. Sem
|
|
7794
|
+
piscar e sem animacao; o botao primario "Decidir" vem do consumer. O
|
|
7795
|
+
padding esquerdo cai 2px para compensar os 2px extras da borda e o
|
|
7796
|
+
conteudo nao andar. */
|
|
7797
|
+
.gyramais-rail-run .gyramais-rail-step.is-waiting .gyramais-rail-step-card.gyramais-card {
|
|
7798
|
+
border-left-width: 3px;
|
|
7799
|
+
border-left-color: var(--color-warning);
|
|
7800
|
+
padding-left: 10px;
|
|
7801
|
+
}
|
|
7802
|
+
|
|
7803
|
+
/* Etapa que nao disparou: cartao apagado. A opacidade fica no CONTEUDO, nao no
|
|
7804
|
+
cartao inteiro: no cartao ela tambem apagava o glifo, e o #8E8E93 que vale
|
|
7805
|
+
3,26:1 sobre o branco chegava a tela como #C7C7C9, 1,69:1. Medir o token nao
|
|
7806
|
+
e medir o pixel. Borda e conteudo recebem o apagamento explicito; o glifo
|
|
7807
|
+
fica de fora e chega inteiro. */
|
|
7703
7808
|
.gyramais-rail-step.is-skipped .gyramais-rail-step-card.gyramais-card {
|
|
7704
7809
|
border-style: dashed;
|
|
7810
|
+
border-color: var(--color-border-secondary);
|
|
7811
|
+
}
|
|
7812
|
+
.gyramais-rail-step.is-skipped .gyramais-rail-step-main,
|
|
7813
|
+
.gyramais-rail-step.is-skipped .gyramais-rail-step-side,
|
|
7814
|
+
.gyramais-rail-step.is-skipped .gyramais-rail-step-content {
|
|
7705
7815
|
opacity: 0.5;
|
|
7706
7816
|
}
|
|
7707
7817
|
.gyramais-rail-step.is-disabled .gyramais-rail-step-card.gyramais-card {
|
|
@@ -7714,8 +7824,9 @@ h6 {
|
|
|
7714
7824
|
gap: 10px;
|
|
7715
7825
|
}
|
|
7716
7826
|
|
|
7717
|
-
/* Glifo do tipo: chip
|
|
7718
|
-
|
|
7827
|
+
/* Glifo do tipo: chip de 24px. O tipo vive aqui e no tooltip, nunca como
|
|
7828
|
+
texto no cartao. O fundo neutro e o fallback; cada tipo pinta o seu logo
|
|
7829
|
+
abaixo. */
|
|
7719
7830
|
.gyramais-rail-step-glyph {
|
|
7720
7831
|
display: inline-flex;
|
|
7721
7832
|
height: 24px;
|
|
@@ -7728,10 +7839,75 @@ h6 {
|
|
|
7728
7839
|
color: var(--color-text-secondary);
|
|
7729
7840
|
margin-top: -2px;
|
|
7730
7841
|
}
|
|
7731
|
-
|
|
7842
|
+
|
|
7843
|
+
/* Cor semantica por FAMILIA de consulta, nao por tipo. Duas cores, e as duas
|
|
7844
|
+
se distinguem de verdade:
|
|
7845
|
+
azul = analise (Analise e Aprofundar consultam o mesmo relatorio),
|
|
7846
|
+
teal = vinculos (consulta OUTROS documentos).
|
|
7847
|
+
A cor e REDUNDANTE de proposito: o glifo e o tooltip continuam carregando o
|
|
7848
|
+
tipo, entao quem nao distingue as cores nao perde informacao nenhuma.
|
|
7849
|
+
|
|
7850
|
+
Por que Aprofundar NAO ganha uma cor propria (intencional, medido): o par
|
|
7851
|
+
#EEF1FB x #EBF4FF tinha dE2000 = 2,7, no limiar de percepcao (JND ~2,3), ou
|
|
7852
|
+
seja, prometia quatro sinais e entregava tres. Nao ha no design system um
|
|
7853
|
+
quarto fundo diluido que fique a dE >= 8 dos outros dois sem roubar a cor de
|
|
7854
|
+
um estado (verde/vermelho). Entre inventar um sinal que ninguem enxerga e
|
|
7855
|
+
assumir a familia, assumimos a familia: uma camada E uma analise a mais
|
|
7856
|
+
sobre o mesmo relatorio, e o glifo (camadas x alvo) separa as duas.
|
|
7857
|
+
Medido (dE2000 entre os fundos): azul x teal 10,7; azul x neutro 3,8 (o
|
|
7858
|
+
neutro nao e um sinal, e a ausencia dele).
|
|
7859
|
+
|
|
7860
|
+
Por que o Checkpoint perdeu o ambar: no resto do produto ambar significa
|
|
7861
|
+
ESTADO ("aguardando"). Um checkpoint parado ficava ambar por dois motivos
|
|
7862
|
+
diferentes (tipo e estado) no mesmo cartao, sem como saber qual. O
|
|
7863
|
+
checkpoint tambem nao consulta fonte nenhuma, entao nao pertence a familia
|
|
7864
|
+
nenhuma: chip neutro, e o ambar volta a significar so estado.
|
|
7865
|
+
Contraste medido do glifo sobre o proprio chip: azul 4,90:1, teal 4,77:1,
|
|
7866
|
+
neutro 5,50:1 (todos acima de 4,5:1). */
|
|
7867
|
+
.gyramais-rail-step.is-analysis .gyramais-rail-step-glyph,
|
|
7868
|
+
.gyramais-rail-step.is-deepen .gyramais-rail-step-glyph {
|
|
7869
|
+
background-color: var(--gyra-blue-light);
|
|
7870
|
+
color: var(--gyra-blue);
|
|
7871
|
+
}
|
|
7872
|
+
/* O chip neutro do Checkpoint ganha CONTORNO, nao outra cor: sobre o cartao
|
|
7873
|
+
branco o fundo #F5F5F7 esta a dE2000 2,25 (no limiar de percepcao) e quase
|
|
7874
|
+
nao lia como chip. A borda #E8E8ED e uma aresta, nao um pigmento: resolve a
|
|
7875
|
+
leitura sem mexer nas distancias medidas entre os fundos (azul x neutro
|
|
7876
|
+
3,8) nem no contraste do glifo (5,50:1). */
|
|
7877
|
+
.gyramais-rail-step.is-checkpoint .gyramais-rail-step-glyph {
|
|
7878
|
+
border-width: 1px;
|
|
7879
|
+
border-color: var(--color-border-secondary);
|
|
7880
|
+
background-color: var(--color-gray-50);
|
|
7881
|
+
color: var(--color-text-secondary);
|
|
7882
|
+
}
|
|
7883
|
+
.gyramais-rail-step.is-relationships .gyramais-rail-step-glyph {
|
|
7884
|
+
background-color: var(--gyra-teal-light);
|
|
7885
|
+
color: var(--gyra-teal-text);
|
|
7886
|
+
}
|
|
7887
|
+
.gyramais-rail-step.is-result .gyramais-rail-step-glyph,
|
|
7888
|
+
.gyramais-rail-step.is-offer_review .gyramais-rail-step-glyph,
|
|
7889
|
+
.gyramais-rail-step.is-authority .gyramais-rail-step-glyph {
|
|
7732
7890
|
background-color: var(--gyra-blue-light);
|
|
7733
7891
|
color: var(--gyra-blue);
|
|
7734
7892
|
}
|
|
7893
|
+
.gyramais-rail-step.is-committee .gyramais-rail-step-glyph {
|
|
7894
|
+
color: #5945b8;
|
|
7895
|
+
background: #f0edff;
|
|
7896
|
+
}
|
|
7897
|
+
/* Etapa que nao rodou nao merece o pigmento do tipo: o cartao inteiro ja
|
|
7898
|
+
esta translucido e a cor cheia so competiria com quem rodou.
|
|
7899
|
+
|
|
7900
|
+
E ela tambem nao herda o chip NEUTRO: o neutro e o tipo Checkpoint, e o
|
|
7901
|
+
mesmo fundo em dois papeis fazia o cinza significar duas coisas. Aqui o chip
|
|
7902
|
+
simplesmente nao existe (sem fundo, sem contorno), que e o que a etapa pulada
|
|
7903
|
+
e: ausencia. O glifo assenta no branco do cartao e, com a opacidade fora do
|
|
7904
|
+
cartao (acima), o #8E8E93 chega a tela inteiro: 3,26:1 medido no pixel
|
|
7905
|
+
renderizado, e nao no token (WCAG 1.4.11 pede 3:1). */
|
|
7906
|
+
.gyramais-rail-step.is-skipped .gyramais-rail-step-glyph {
|
|
7907
|
+
border-width: 0px;
|
|
7908
|
+
background-color: transparent;
|
|
7909
|
+
color: var(--color-text-tertiary);
|
|
7910
|
+
}
|
|
7735
7911
|
|
|
7736
7912
|
.gyramais-rail-step-main {
|
|
7737
7913
|
display: flex;
|
|
@@ -7848,7 +8024,7 @@ h6 {
|
|
|
7848
8024
|
padding-left: 6px;
|
|
7849
8025
|
padding-right: 4px;
|
|
7850
8026
|
font-size: var(--fs-subheadline);
|
|
7851
|
-
font-weight:
|
|
8027
|
+
font-weight: 400;
|
|
7852
8028
|
line-height: 18px;
|
|
7853
8029
|
color: var(--color-text-primary);
|
|
7854
8030
|
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
|
|
@@ -7857,6 +8033,20 @@ h6 {
|
|
|
7857
8033
|
animation-duration: 150ms;
|
|
7858
8034
|
font-family: inherit;
|
|
7859
8035
|
}
|
|
8036
|
+
/* Mesmo papel, mesmo peso nos dois modos: a linha da politica e 13/400 no
|
|
8037
|
+
edit (aqui) e 13/400 no run (`.gyramais-rail-step-text`). O que diz que
|
|
8038
|
+
este e clicavel e o chevron e o hover, nao meio grau de peso. */
|
|
8039
|
+
|
|
8040
|
+
/* Quando o nome da etapa E a politica, o seletor sobe para a linha 1 e passa
|
|
8041
|
+
a ser o titulo: 15/600, a mesma tipografia de `.gyramais-rail-step-name`.
|
|
8042
|
+
Nao ha dois textos, ha um so, e ele e clicavel. */
|
|
8043
|
+
.gyramais-rail-step-line1.is-policy-title .gyramais-rail-inline-select {
|
|
8044
|
+
height: 20px;
|
|
8045
|
+
font-size: var(--fs-body);
|
|
8046
|
+
font-weight: 600;
|
|
8047
|
+
line-height: 20px;
|
|
8048
|
+
letter-spacing: var(--tracking-normal);
|
|
8049
|
+
}
|
|
7860
8050
|
.gyramais-rail-inline-select:hover:not(:disabled) {
|
|
7861
8051
|
background-color: var(--color-surface-active);
|
|
7862
8052
|
}
|
|
@@ -9926,6 +10116,68 @@ h6 {
|
|
|
9926
10116
|
left: 0.5rem !important
|
|
9927
10117
|
}
|
|
9928
10118
|
|
|
10119
|
+
.gyramais-skeleton {
|
|
10120
|
+
position: relative;
|
|
10121
|
+
display: block;
|
|
10122
|
+
overflow: hidden;
|
|
10123
|
+
background-color: var(--color-gray-100);
|
|
10124
|
+
border-radius: var(--radius-sm);
|
|
10125
|
+
}
|
|
10126
|
+
|
|
10127
|
+
/* O brilho que varre o bloco. Pseudo-elemento para nao exigir um filho no DOM. */
|
|
10128
|
+
.gyramais-skeleton::after {
|
|
10129
|
+
position: absolute;
|
|
10130
|
+
inset: 0px;
|
|
10131
|
+
content: "";
|
|
10132
|
+
transform: translateX(-100%);
|
|
10133
|
+
background-image: linear-gradient(
|
|
10134
|
+
90deg,
|
|
10135
|
+
rgba(255, 255, 255, 0) 0%,
|
|
10136
|
+
rgba(255, 255, 255, 0.7) 50%,
|
|
10137
|
+
rgba(255, 255, 255, 0) 100%
|
|
10138
|
+
);
|
|
10139
|
+
animation: gyramais-skeleton-shimmer 1.6s ease-in-out infinite;
|
|
10140
|
+
}
|
|
10141
|
+
|
|
10142
|
+
/* Parado de proposito: item na fila, nao em processamento. */
|
|
10143
|
+
.gyramais-skeleton.gyramais-skeleton-static::after {
|
|
10144
|
+
animation: none;
|
|
10145
|
+
}
|
|
10146
|
+
|
|
10147
|
+
.gyramais-skeleton.gyramais-skeleton-circle {
|
|
10148
|
+
flex-shrink: 0;
|
|
10149
|
+
border-radius: var(--radius-full);
|
|
10150
|
+
}
|
|
10151
|
+
|
|
10152
|
+
.gyramais-skeleton.gyramais-skeleton-block {
|
|
10153
|
+
border-radius: var(--radius-md);
|
|
10154
|
+
}
|
|
10155
|
+
|
|
10156
|
+
.gyramais-skeleton-lines {
|
|
10157
|
+
display: flex;
|
|
10158
|
+
width: 100%;
|
|
10159
|
+
flex-direction: column;
|
|
10160
|
+
gap: 0.75rem;
|
|
10161
|
+
}
|
|
10162
|
+
|
|
10163
|
+
.gyramais-skeleton-lines .gyramais-skeleton-line {
|
|
10164
|
+
height: 0.75rem;
|
|
10165
|
+
}
|
|
10166
|
+
|
|
10167
|
+
@keyframes gyramais-skeleton-shimmer {
|
|
10168
|
+
100% {
|
|
10169
|
+
transform: translateX(100%);
|
|
10170
|
+
}
|
|
10171
|
+
}
|
|
10172
|
+
|
|
10173
|
+
/* Sem animacao para quem pediu menos movimento: o bloco continua marcando o
|
|
10174
|
+
espaco, so nao pulsa. */
|
|
10175
|
+
@media (prefers-reduced-motion: reduce) {
|
|
10176
|
+
.gyramais-skeleton::after {
|
|
10177
|
+
animation: none;
|
|
10178
|
+
}
|
|
10179
|
+
}
|
|
10180
|
+
|
|
9929
10181
|
/* PickerPopover — shell base de popovers tipo command-palette / tag-picker. */
|
|
9930
10182
|
|
|
9931
10183
|
/* Container override do Popover base — chrome flat com elevação de dropdown */
|
|
@@ -11362,6 +11614,65 @@ h6 {
|
|
|
11362
11614
|
}
|
|
11363
11615
|
}
|
|
11364
11616
|
|
|
11617
|
+
/* GYR-1646: refetch (troca de filtro, busca, acao de linha) NAO apaga as
|
|
11618
|
+
linhas. Elas ficam esmaecidas enquanto a barra fina no topo indica que algo
|
|
11619
|
+
esta vindo. Trocar dado visivel por placeholder e' regressao de UX: o
|
|
11620
|
+
usuario perde o que estava lendo por causa de uma acao dele mesmo. */
|
|
11621
|
+
.gyramais-table-container .gyramais-table-refetching {
|
|
11622
|
+
opacity: 0.45;
|
|
11623
|
+
transition: opacity 150ms ease-out;
|
|
11624
|
+
pointer-events: none;
|
|
11625
|
+
}
|
|
11626
|
+
|
|
11627
|
+
.gyramais-table-container .gyramais-table-refetching-bar {
|
|
11628
|
+
position: relative;
|
|
11629
|
+
height: 2px;
|
|
11630
|
+
overflow: hidden;
|
|
11631
|
+
background-color: var(--color-gray-100);
|
|
11632
|
+
}
|
|
11633
|
+
|
|
11634
|
+
.gyramais-table-container .gyramais-table-refetching-bar::after {
|
|
11635
|
+
content: "";
|
|
11636
|
+
position: absolute;
|
|
11637
|
+
top: 0;
|
|
11638
|
+
bottom: 0;
|
|
11639
|
+
width: 35%;
|
|
11640
|
+
background-color: var(--gyra-blue);
|
|
11641
|
+
animation: gyramais-table-refetching-slide 1.1s ease-in-out infinite;
|
|
11642
|
+
}
|
|
11643
|
+
|
|
11644
|
+
@keyframes gyramais-table-refetching-slide {
|
|
11645
|
+
0% {
|
|
11646
|
+
left: -35%;
|
|
11647
|
+
}
|
|
11648
|
+
100% {
|
|
11649
|
+
left: 100%;
|
|
11650
|
+
}
|
|
11651
|
+
}
|
|
11652
|
+
|
|
11653
|
+
/* Sem movimento para quem pediu menos: a barra continua marcando o estado. */
|
|
11654
|
+
@media (prefers-reduced-motion: reduce) {
|
|
11655
|
+
.gyramais-table-container .gyramais-table-refetching-bar::after {
|
|
11656
|
+
animation: none;
|
|
11657
|
+
width: 100%;
|
|
11658
|
+
opacity: 0.4;
|
|
11659
|
+
}
|
|
11660
|
+
}
|
|
11661
|
+
|
|
11662
|
+
/* Estado anunciado uma vez para leitor de tela, invisivel na tela. As celulas
|
|
11663
|
+
de skeleton sao decorativas (`aria-hidden`), entao nao repetem o anuncio. */
|
|
11664
|
+
.gyramais-table-container .gyramais-table-status {
|
|
11665
|
+
position: absolute;
|
|
11666
|
+
width: 1px;
|
|
11667
|
+
height: 1px;
|
|
11668
|
+
padding: 0;
|
|
11669
|
+
margin: -1px;
|
|
11670
|
+
overflow: hidden;
|
|
11671
|
+
clip: rect(0, 0, 0, 0);
|
|
11672
|
+
white-space: nowrap;
|
|
11673
|
+
border-width: 0;
|
|
11674
|
+
}
|
|
11675
|
+
|
|
11365
11676
|
.gyramais-tabs {
|
|
11366
11677
|
|
|
11367
11678
|
width: 100%
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gyramais/gyra-design",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.53",
|
|
4
4
|
"description": "Gyramais Design System",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
11
11
|
"scripts": {
|
|
12
|
-
"test": "
|
|
12
|
+
"test": "echo \"gyra-design ainda nao tem suite de testes — nada foi executado\" && exit 1",
|
|
13
13
|
"build-rollup": "node --max-old-space-size=8192 node_modules/rollup/dist/bin/rollup -c rollup.config.js",
|
|
14
14
|
"build": "node ./scripts/build-prod.js",
|
|
15
15
|
"storybook": "storybook dev -p 6006",
|