@gyramais/gyra-design 0.2.47 → 0.2.49

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.
Files changed (87) hide show
  1. package/dist/components/Button/Button.d.ts +7 -0
  2. package/dist/components/Button/index.js.map +1 -1
  3. package/dist/components/Card/Card.d.ts +1 -7
  4. package/dist/components/Card/index.js +6 -6
  5. package/dist/components/Card/index.js.map +1 -1
  6. package/dist/components/ContextMenu/index.js +1 -1
  7. package/dist/components/ContextMenu/index.js.map +1 -1
  8. package/dist/components/DropdownMenu/index.js +1 -1
  9. package/dist/components/DropdownMenu/index.js.map +1 -1
  10. package/dist/components/Empty/Empty.d.ts +1 -18
  11. package/dist/components/Empty/index.js +40 -2
  12. package/dist/components/Empty/index.js.map +1 -1
  13. package/dist/components/Filter/index.js.map +1 -1
  14. package/dist/components/FloatingCard/index.js +7 -7
  15. package/dist/components/FloatingCard/index.js.map +1 -1
  16. package/dist/components/List/index.js +40 -2
  17. package/dist/components/List/index.js.map +1 -1
  18. package/dist/components/Modal/index.js.map +1 -1
  19. package/dist/components/MultiSelectPicker/index.js +1 -1
  20. package/dist/components/MultiSelectPicker/index.js.map +1 -1
  21. package/dist/components/OperatorPicker/index.js +1 -1
  22. package/dist/components/OperatorPicker/index.js.map +1 -1
  23. package/dist/components/PickerPopover/index.js +1 -1
  24. package/dist/components/PickerPopover/index.js.map +1 -1
  25. package/dist/components/Popover/Popover.d.ts +3 -1
  26. package/dist/components/Popover/index.js +1 -1
  27. package/dist/components/Popover/index.js.map +1 -1
  28. package/dist/components/Rail/Rail.d.ts +59 -0
  29. package/dist/components/Rail/RailGate.d.ts +22 -0
  30. package/dist/components/Rail/RailMini.d.ts +25 -0
  31. package/dist/components/Rail/RailStep.d.ts +45 -0
  32. package/dist/components/Rail/index.d.ts +6 -0
  33. package/dist/components/Rail/index.js +45 -0
  34. package/dist/components/Rail/index.js.map +1 -0
  35. package/dist/components/Rail/labels.d.ts +25 -0
  36. package/dist/components/Rail/types.d.ts +75 -0
  37. package/dist/components/RuleSearchPicker/index.js +1 -1
  38. package/dist/components/RuleSearchPicker/index.js.map +1 -1
  39. package/dist/components/SegmentedPicker/SegmentedPicker.d.ts +7 -1
  40. package/dist/components/SegmentedPicker/index.js +2 -2
  41. package/dist/components/SegmentedPicker/index.js.map +1 -1
  42. package/dist/components/Switch/Switch.d.ts +7 -1
  43. package/dist/components/Switch/index.js +1 -1
  44. package/dist/components/Switch/index.js.map +1 -1
  45. package/dist/components/Table/Table.d.ts +1 -14
  46. package/dist/components/Table/index.js +40 -2
  47. package/dist/components/Table/index.js.map +1 -1
  48. package/dist/emails/balance-sheet-finalized/components/Button/Button.d.ts +7 -0
  49. package/dist/emails/balance-sheet-finalized/components/Card/Card.d.ts +1 -7
  50. package/dist/emails/balance-sheet-finalized/components/Empty/Empty.d.ts +1 -18
  51. package/dist/emails/balance-sheet-finalized/components/Popover/Popover.d.ts +3 -1
  52. package/dist/emails/balance-sheet-finalized/components/Rail/Rail.d.ts +59 -0
  53. package/dist/emails/balance-sheet-finalized/components/Rail/RailGate.d.ts +22 -0
  54. package/dist/emails/balance-sheet-finalized/components/Rail/RailMini.d.ts +25 -0
  55. package/dist/emails/balance-sheet-finalized/components/Rail/RailStep.d.ts +45 -0
  56. package/dist/emails/balance-sheet-finalized/components/Rail/index.d.ts +6 -0
  57. package/dist/emails/balance-sheet-finalized/components/Rail/labels.d.ts +25 -0
  58. package/dist/emails/balance-sheet-finalized/components/Rail/types.d.ts +75 -0
  59. package/dist/emails/balance-sheet-finalized/components/SegmentedPicker/SegmentedPicker.d.ts +7 -1
  60. package/dist/emails/balance-sheet-finalized/components/Switch/Switch.d.ts +7 -1
  61. package/dist/emails/balance-sheet-finalized/components/Table/Table.d.ts +1 -14
  62. package/dist/emails/balance-sheet-finalized/index.d.ts +1 -1
  63. package/dist/emails/email/components/Button/Button.d.ts +7 -0
  64. package/dist/emails/email/components/Card/Card.d.ts +1 -7
  65. package/dist/emails/email/components/Empty/Empty.d.ts +1 -18
  66. package/dist/emails/email/components/Popover/Popover.d.ts +3 -1
  67. package/dist/emails/email/components/Rail/Rail.d.ts +59 -0
  68. package/dist/emails/email/components/Rail/RailGate.d.ts +22 -0
  69. package/dist/emails/email/components/Rail/RailMini.d.ts +25 -0
  70. package/dist/emails/email/components/Rail/RailStep.d.ts +45 -0
  71. package/dist/emails/email/components/Rail/index.d.ts +6 -0
  72. package/dist/emails/email/components/Rail/labels.d.ts +25 -0
  73. package/dist/emails/email/components/Rail/types.d.ts +75 -0
  74. package/dist/emails/email/components/SegmentedPicker/SegmentedPicker.d.ts +7 -1
  75. package/dist/emails/email/components/Switch/Switch.d.ts +7 -1
  76. package/dist/emails/email/components/Table/Table.d.ts +1 -14
  77. package/dist/emails/email/index.d.ts +1 -1
  78. package/dist/index.css +830 -315
  79. package/package.json +1 -1
  80. package/dist/components/Skeleton/Skeleton.d.ts +0 -40
  81. package/dist/components/Skeleton/index.d.ts +0 -1
  82. package/dist/components/Skeleton/index.js +0 -7
  83. package/dist/components/Skeleton/index.js.map +0 -1
  84. package/dist/emails/balance-sheet-finalized/components/Skeleton/Skeleton.d.ts +0 -40
  85. package/dist/emails/balance-sheet-finalized/components/Skeleton/index.d.ts +0 -1
  86. package/dist/emails/email/components/Skeleton/Skeleton.d.ts +0 -40
  87. package/dist/emails/email/components/Skeleton/index.d.ts +0 -1
package/dist/index.css CHANGED
@@ -696,12 +696,6 @@ 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
- }
705
699
  .w-\[800px\] {
706
700
  width: 800px;
707
701
  }
@@ -761,6 +755,9 @@ video {
761
755
  .flex-col {
762
756
  flex-direction: column;
763
757
  }
758
+ .flex-wrap {
759
+ flex-wrap: wrap;
760
+ }
764
761
  .items-center {
765
762
  align-items: center;
766
763
  }
@@ -779,12 +776,6 @@ video {
779
776
  .gap-3 {
780
777
  gap: 0.75rem;
781
778
  }
782
- .gap-4 {
783
- gap: 1rem;
784
- }
785
- .gap-6 {
786
- gap: 1.5rem;
787
- }
788
779
  .gap-x-1 {
789
780
  -moz-column-gap: 0.25rem;
790
781
  column-gap: 0.25rem;
@@ -819,9 +810,6 @@ video {
819
810
  .rounded-\[6px\] {
820
811
  border-radius: 6px;
821
812
  }
822
- .rounded-\[var\(--radius-lg\)\] {
823
- border-radius: var(--radius-lg);
824
- }
825
813
  .rounded-full {
826
814
  border-radius: 9999px;
827
815
  }
@@ -834,9 +822,6 @@ video {
834
822
  .border {
835
823
  border-width: 1px;
836
824
  }
837
- .border-\[var\(--color-border-secondary\)\] {
838
- border-color: var(--color-border-secondary);
839
- }
840
825
  .bg-\[var\(--background-color\)\] {
841
826
  background-color: var(--background-color);
842
827
  }
@@ -861,10 +846,6 @@ video {
861
846
  --tw-bg-opacity: 1;
862
847
  background-color: rgb(254 202 202 / var(--tw-bg-opacity, 1));
863
848
  }
864
- .bg-white {
865
- --tw-bg-opacity: 1;
866
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
867
- }
868
849
  .fill-current {
869
850
  fill: currentColor;
870
851
  }
@@ -954,9 +935,6 @@ video {
954
935
  .text-\[var\(--color-text-secondary\)\] {
955
936
  color: var(--color-text-secondary);
956
937
  }
957
- .text-\[var\(--color-text-tertiary\)\] {
958
- color: var(--color-text-tertiary);
959
- }
960
938
  .text-\[var\(--primary-button-color\)\] {
961
939
  color: var(--primary-button-color);
962
940
  }
@@ -4410,32 +4388,25 @@ h6 {
4410
4388
  padding-top: 1rem;
4411
4389
  }
4412
4390
  .gyramais-card.gyramais-card-loading .gyramais-card-content {
4413
- min-height: 6rem;
4391
+ min-height: 4rem;
4414
4392
  }
4415
4393
 
4416
- /* `gyramais-card-loading` (modificador da RAIZ) e `gyramais-card-placeholder`
4417
- (o bloco desenhado) sao nomes distintos de proposito. Quando os dois eram a
4418
- mesma classe, o seletor de descendente abaixo casava tambem a raiz de um
4419
- <Card loading> ANINHADO dentro de outro Card, e aplicava o layout do
4420
- placeholder no card inteiro.
4421
-
4422
- Estado de carregando: o skeleton entra NO FLUXO, nao sobreposto. Assim ele
4423
- e' quem dita a altura do card, e um `loadingContent` alto (grafico, tabela)
4424
- nao fica cortado pela altura do conteudo vazio que ele esta substituindo.
4425
- O conteudo real continua montado, so escondido pela regra abaixo, para nao
4426
- perder estado no meio do carregamento. */
4427
- .gyramais-card .gyramais-card-placeholder {
4394
+ .gyramais-card .gyramais-card-loading {
4395
+ position: absolute;
4396
+ top: 0px;
4397
+ left: 0px;
4398
+ z-index: 10;
4428
4399
  display: flex;
4400
+ height: 100%;
4429
4401
  width: 100%;
4430
- flex-direction: column;
4431
- align-items: stretch;
4432
- background-color: var(--color-surface-primary);
4433
- }
4434
-
4435
- .gyramais-card.gyramais-card-loading
4436
- .gyramais-card-content
4437
- > *:not(.gyramais-card-placeholder) {
4438
- display: none;
4402
+ --tw-scale-x: 102%;
4403
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
4404
+ align-items: center;
4405
+ justify-content: center;
4406
+ background-color: #ffffff80;
4407
+ padding-top: 1rem;
4408
+ --tw-backdrop-blur: blur(4px);
4409
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
4439
4410
  }
4440
4411
 
4441
4412
  .gyramais-chart .recharts-legend-item {
@@ -5759,33 +5730,30 @@ h6 {
5759
5730
  }
5760
5731
 
5761
5732
  .gyramais-empty {
5762
- display: flex;
5763
- flex-direction: column;
5764
- align-items: center;
5765
- justify-content: center;
5766
- gap: 0.75rem;
5767
- padding-left: 1rem;
5768
- padding-right: 1rem;
5769
- padding-top: 1.5rem;
5770
- padding-bottom: 1.5rem
5733
+ padding-top: 1rem;
5734
+ padding-bottom: 1rem
5771
5735
  }
5772
-
5773
5736
  .gyramais-empty .gyramais-empty-icon {
5774
- display: flex;
5775
- justify-content: center;
5776
- font-size: 40px;
5777
- color: var(--color-text-quaternary)
5737
+ display: flex;
5738
+ justify-content: center
5739
+ }
5740
+ .gyramais-empty .gyramais-empty-icon svg {
5741
+ font-size: 40px;
5742
+ --tw-text-opacity: 1;
5743
+ color: rgb(184 184 184 / var(--tw-text-opacity, 1))
5778
5744
  }
5779
-
5780
- /* Texto secundario, nao preto: lista vazia informa, nao anuncia. Em preto ela
5781
- pesava igual ao dado de verdade da tabela ao lado. */
5782
5745
  .gyramais-empty .gyramais-empty-text {
5783
- text-align: center;
5784
- font-size: var(--fs-subheadline);
5785
- line-height: var(--lh-normal);
5786
- color: var(--color-text-tertiary)
5746
+ display: flex;
5747
+ justify-content: center;
5748
+ padding-top: 0.5rem;
5749
+ padding-bottom: 0.5rem;
5750
+ font-size: 0.875rem;
5751
+ line-height: 1.25rem;
5752
+ font-weight: 400;
5753
+ line-height: 22px;
5754
+ --tw-text-opacity: 1;
5755
+ color: rgb(0 0 0 / var(--tw-text-opacity, 1))
5787
5756
  }
5788
-
5789
5757
  .gyramais-filter .gyramais-filter-button-container {
5790
5758
  position: relative;
5791
5759
  width: -moz-fit-content;
@@ -7045,7 +7013,25 @@ h6 {
7045
7013
  }
7046
7014
  }
7047
7015
 
7016
+ /* CAMADA DO POPOVER.
7017
+ *
7018
+ * O conteudo do popover e portalado para o `body` pelo Radix, mas portal nao
7019
+ * decide pintura: z-index decide. O `PopoverContent` do shadcn nasce com o
7020
+ * `z-50` do template, e as camadas flutuantes desta casa vivem MUITO acima
7021
+ * disso: Drawer (react-modern-drawer) em 101, Modal em 200, menu do Select
7022
+ * em 210, Tooltip em 300.
7023
+ *
7024
+ * Resultado, ate GYR-1623: qualquer popover aberto de dentro de uma gaveta
7025
+ * (o conector da esteira, por exemplo) era pintado ATRAS do painel e parava
7026
+ * de receber clique — `elementFromPoint` no meio do menu devolvia o que
7027
+ * estava na gaveta.
7028
+ *
7029
+ * 210 e o mesmo degrau do menu do Select (`Select.tsx`, `menuPortal`): os
7030
+ * dois sao a mesma coisa (lista flutuante disparada por um controle) e
7031
+ * precisam ficar acima de gaveta e de modal, e abaixo do tooltip.
7032
+ */
7048
7033
  .gyramais-popover-content {
7034
+ z-index: 210 !important;
7049
7035
  width: -moz-fit-content;
7050
7036
  width: fit-content;
7051
7037
  border-radius: 8px;
@@ -7056,6 +7042,7 @@ h6 {
7056
7042
  --tw-shadow-colored: 0 5px 5px 0 var(--tw-shadow-color), 0 8px 10px 0 var(--tw-shadow-color) !important;
7057
7043
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important
7058
7044
  }
7045
+
7059
7046
  .gyramais-processing-chip {
7060
7047
  position: relative;
7061
7048
  display: inline-flex;
@@ -7281,144 +7268,752 @@ h6 {
7281
7268
  --tw-text-opacity: 1;
7282
7269
  color: rgb(98 105 118 / var(--tw-text-opacity, 1))
7283
7270
  }
7284
- .gyramais-rich-input-controller {
7285
- position: relative;
7286
- transition-duration: 300ms;
7287
- animation-duration: 300ms
7288
- }
7289
- .gyramais-rich-input-controller.gyramais-rich-input-disabled {
7290
- opacity: 0.5;
7291
- --tw-grayscale: grayscale(100%);
7292
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
7293
- }
7294
- .gyramais-rich-input-controller.gyramais-rich-input-disabled * {
7295
- cursor: not-allowed
7296
- }
7271
+ /* Rail — a esteira Gyra+ (lista vertical de etapas + conector condicional).
7272
+ Todas as cores saem dos tokens do design system: nada de hex solto aqui.
7297
7273
 
7298
- .gyramais-rich-input-wrapper {
7299
- border-radius: 20px;
7300
- border-color: var(--border-color);
7301
- --tw-bg-opacity: 1;
7302
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
7303
- --tw-shadow: 0px 14px 64px -4px #18274b1f, 0px 8px 22px -6px #18274b1f;
7304
- --tw-shadow-colored: 0px 14px 64px -4px var(--tw-shadow-color), 0px 8px 22px -6px var(--tw-shadow-color);
7305
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
7306
- }
7274
+ Armadilha do repositorio: o index.css global tem `* { outline: none
7275
+ !important }` e `*:focus { box-shadow: none !important }`. Anel de foco
7276
+ desenhado no proprio elemento morre em silencio. Por isso o foco visivel
7277
+ aqui e um ::after (o seletor universal nao casa com pseudo-elemento). */
7307
7278
 
7308
- .gyramais-rich-input-placeholder {
7309
- position: absolute;
7310
- top: -10px;
7311
- left: 22px;
7312
- animation: fade-in .3s 1;
7313
- font-size: 0.875rem;
7314
- line-height: 1.25rem;
7315
- font-weight: 500;
7316
- color: var(--primary-button-color)
7279
+ .gyramais-rail-wrapper {
7280
+ display: flex;
7281
+ width: 100%;
7282
+ flex-direction: column;
7317
7283
  }
7318
7284
 
7319
- .gyramais-rich-input-toolbar {
7320
- margin-bottom: 0px;
7321
- min-height: 54px;
7322
- border-top-left-radius: 20px;
7323
- border-top-right-radius: 20px;
7324
- border-bottom-color: var(--border-color);
7325
- padding: 0.75rem;
7326
- padding-bottom: 0.5rem
7285
+ .gyramais-rail {
7286
+ margin: 0px;
7287
+ display: flex;
7288
+ width: 100%;
7289
+ list-style-type: none;
7290
+ flex-direction: column;
7291
+ padding: 0px;
7327
7292
  }
7328
- .gyramais-rich-input-toolbar div {
7329
- margin-bottom: 0px;
7330
- min-height: 22px;
7331
- padding-left: 1rem;
7332
- padding-right: 1rem
7293
+
7294
+ .gyramais-rail-item {
7295
+ position: relative;
7296
+ display: flex;
7297
+ flex-direction: column;
7298
+ padding-left: 30px;
7333
7299
  }
7334
- .gyramais-rich-input-toolbar div:first-child {
7335
- padding-left: 0px
7300
+
7301
+ /* O trilho: uma linha continua atras de todas as etapas. */
7302
+ .gyramais-rail-item::before {
7303
+ content: "";
7304
+ position: absolute;
7305
+ left: 11px;
7306
+ top: 0px;
7307
+ bottom: 0px;
7308
+ width: 2px;
7309
+ background-color: var(--color-border-secondary);
7336
7310
  }
7337
- .gyramais-rich-input-toolbar div:last-child {
7338
- padding-right: 0px
7311
+ .gyramais-rail-item:first-child::before {
7312
+ top: 26px;
7339
7313
  }
7340
- .gyramais-rich-input-toolbar div + div {
7341
- border-left-width: 1px;
7342
- border-color: var(--border-color)
7314
+ .gyramais-rail-item:last-child::before {
7315
+ bottom: auto;
7316
+ height: 26px;
7343
7317
  }
7344
- .gyramais-rich-input-toolbar .rdw-link-modal {
7345
- top: -260px;
7346
- left: -160px;
7347
- height: -moz-fit-content;
7348
- height: fit-content;
7349
- width: -moz-fit-content;
7350
- width: fit-content;
7351
- border-radius: 20px;
7352
- padding: 1rem !important
7318
+
7319
+ /* ---- Conector ---------------------------------------------------------- */
7320
+
7321
+ .gyramais-rail-connector {
7322
+ display: flex;
7323
+ min-height: 12px;
7324
+ align-items: center;
7325
+ gap: 8px;
7326
+ padding-top: 6px;
7327
+ padding-bottom: 6px;
7353
7328
  }
7354
- .gyramais-rich-input-toolbar .rdw-option-wrapper {
7355
- min-width: 22px;
7356
- max-width: 22px;
7357
- border-radius: 4px;
7358
- border-style: none;
7359
- padding: 0px;
7360
- --tw-shadow: 0 0 #0000;
7361
- --tw-shadow-colored: 0 0 #0000;
7362
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
7363
- transition-duration: 300ms;
7364
- animation-duration: 300ms
7329
+ .gyramais-rail-item:first-child .gyramais-rail-connector:empty {
7330
+ display: none;
7365
7331
  }
7366
- .gyramais-rich-input-toolbar .rdw-option-wrapper:hover {
7367
- --tw-bg-opacity: 1;
7368
- background-color: rgb(237 240 238 / var(--tw-bg-opacity, 1))
7332
+
7333
+ .gyramais-rail-gate-editor {
7334
+ display: inline-flex;
7369
7335
  }
7370
- .gyramais-rich-input-toolbar .rdw-option-wrapper.rdw-option-active {
7371
- background-color: var(--dark-button-color)
7336
+
7337
+ .gyramais-rail-gate.gyramais-segmented-picker {
7338
+ padding-top: 4px;
7339
+ padding-bottom: 4px;
7340
+ padding-left: 10px;
7341
+ padding-right: 10px;
7342
+ font-size: 12.5px;
7343
+ font-weight: 500;
7372
7344
  }
7373
7345
 
7374
- .gyramais-rich-input-editor {
7375
- padding-left: 1.5rem;
7376
- padding-right: 1.5rem;
7377
- padding-top: 1rem;
7378
- padding-bottom: 1rem
7346
+ .gyramais-rail-gate-static {
7347
+ display: inline-flex;
7348
+ align-items: center;
7349
+ gap: 6px;
7350
+ border-radius: 9999px;
7351
+ border-width: 1px;
7352
+ border-color: var(--color-border-secondary);
7353
+ background-color: var(--color-surface-secondary);
7354
+ padding-left: 10px;
7355
+ padding-right: 10px;
7356
+ padding-top: 3px;
7357
+ padding-bottom: 3px;
7358
+ font-size: 12.5px;
7359
+ font-weight: 500;
7360
+ color: var(--color-text-secondary);
7379
7361
  }
7380
- .gyramais-rich-input-editor .public-DraftEditorPlaceholder-inner {
7381
- --tw-translate-y: -2px;
7382
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
7362
+ .gyramais-rail-gate-static.is-passed {
7363
+ border-color: var(--color-success);
7364
+ background-color: var(--color-success-light);
7365
+ color: var(--status-success-text);
7383
7366
  }
7384
- .gyramais-rich-input-editor .public-DraftEditor-content {
7385
- max-height: 300px;
7386
- overflow-y: auto;
7387
- line-height: 20px
7367
+ .gyramais-rail-gate-static.is-blocked {
7368
+ border-color: var(--color-border-primary);
7369
+ background-color: var(--color-surface-secondary);
7370
+ color: var(--color-text-tertiary);
7388
7371
  }
7389
- .gyramais-rich-input-editor .public-DraftStyleDefault-ltr {
7390
- margin: 0px;
7391
- margin-bottom: 0.25rem;
7392
- margin-bottom: 0px
7372
+
7373
+ .gyramais-rail-gate-icon {
7374
+ display: inline-flex;
7375
+ align-items: center;
7376
+ color: var(--color-text-tertiary);
7393
7377
  }
7394
- .gyramais-rich-input-editor .public-DraftStyleDefault-ul {
7395
- margin-top: 0.5rem;
7396
- margin-bottom: 0.5rem
7378
+ .gyramais-rail-gate-static.is-passed .gyramais-rail-gate-icon {
7379
+ color: var(--status-success-text);
7397
7380
  }
7398
- .gyramais-rich-input-editor .public-DraftStyleDefault-ol {
7399
- margin-top: 0.5rem;
7400
- margin-bottom: 0.5rem
7381
+
7382
+ /* Acento por condicao, valendo tanto na pilula editavel quanto na estatica. */
7383
+ .gyramais-rail-gate.is-approved .gyramais-segmented-picker-icon,
7384
+ .gyramais-rail-gate.is-approved.gyramais-rail-gate-static .gyramais-rail-gate-icon {
7385
+ color: var(--color-success);
7401
7386
  }
7402
- .gyramais-rich-input-editor .rdw-link-decorator-icon {
7403
- --tw-translate-y: -0.75rem;
7404
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
7387
+ .gyramais-rail-gate.is-alert .gyramais-segmented-picker-icon,
7388
+ .gyramais-rail-gate.is-alert.gyramais-rail-gate-static .gyramais-rail-gate-icon {
7389
+ color: var(--color-warning);
7390
+ }
7391
+ .gyramais-rail-gate.is-reproved .gyramais-segmented-picker-icon,
7392
+ .gyramais-rail-gate.is-reproved.gyramais-rail-gate-static .gyramais-rail-gate-icon {
7393
+ color: var(--color-danger);
7405
7394
  }
7406
- .gyramais-row {
7407
7395
 
7408
- display: grid;
7396
+ /* ---- Inserir / adicionar etapa ----------------------------------------- */
7409
7397
 
7410
- width: 100%
7398
+ .gyramais-rail-insert,
7399
+ .gyramais-rail-add {
7400
+ position: relative;
7401
+ display: inline-flex;
7402
+ cursor: pointer;
7403
+ align-items: center;
7404
+ justify-content: center;
7405
+ gap: 6px;
7406
+ border-width: 1px;
7407
+ border-style: dashed;
7408
+ border-color: var(--color-border-primary);
7409
+ background-color: var(--color-surface-primary);
7410
+ color: var(--color-text-tertiary);
7411
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
7412
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
7413
+ transition-duration: 200ms;
7414
+ animation-duration: 200ms;
7411
7415
  }
7412
7416
 
7413
- .gyramais-row.gyramais-row-mobile-gap-0 {
7414
-
7415
- gap: 0px
7417
+ .gyramais-rail-insert {
7418
+ height: 22px;
7419
+ width: 22px;
7420
+ flex-shrink: 0;
7421
+ border-radius: 9999px;
7416
7422
  }
7417
- .gyramais-row.gyramais-row-mobile-gap-4 {
7418
7423
 
7419
- gap: 4px
7424
+ .gyramais-rail-add {
7425
+ margin-left: 30px;
7426
+ margin-top: 10px;
7427
+ align-self: flex-start;
7428
+ border-radius: var(--radius-md);
7429
+ padding-left: 14px;
7430
+ padding-right: 14px;
7431
+ padding-top: 7px;
7432
+ padding-bottom: 7px;
7433
+ font-size: 13px;
7434
+ font-weight: 500;
7435
+ color: var(--color-text-secondary);
7420
7436
  }
7421
- .gyramais-row.gyramais-row-mobile-gap-8 {
7437
+
7438
+ .gyramais-rail-insert:hover,
7439
+ .gyramais-rail-add:hover {
7440
+ border-color: var(--gyra-blue);
7441
+ background-color: var(--gyra-blue-subtle);
7442
+ color: var(--gyra-blue);
7443
+ }
7444
+
7445
+ .gyramais-rail-insert:focus-visible::after,
7446
+ .gyramais-rail-add:focus-visible::after,
7447
+ .gyramais-rail-step:focus-visible::after,
7448
+ .gyramais-rail-leaf:focus-visible::after,
7449
+ .gyramais-rail-step-open:focus-visible::after,
7450
+ .gyramais-rail-step-action:focus-visible::after {
7451
+ content: "";
7452
+ pointer-events: none;
7453
+ position: absolute;
7454
+ inset: -3px;
7455
+ border-radius: var(--radius-md);
7456
+ border-width: 2px;
7457
+ border-color: var(--gyra-blue);
7458
+ }
7459
+ .gyramais-rail-insert:focus-visible::after,
7460
+ .gyramais-rail-step-action:focus-visible::after {
7461
+ border-radius: 9999px;
7462
+ }
7463
+
7464
+ /* ---- Etapa ------------------------------------------------------------- */
7465
+
7466
+ .gyramais-rail-step {
7467
+ position: relative;
7468
+ padding-bottom: 6px;
7469
+ }
7470
+
7471
+ .gyramais-rail-node {
7472
+ position: absolute;
7473
+ left: -26px;
7474
+ top: 20px;
7475
+ height: 16px;
7476
+ width: 16px;
7477
+ border-radius: 9999px;
7478
+ border-width: 2px;
7479
+ border-color: var(--color-border-strong);
7480
+ background-color: var(--color-surface-primary);
7481
+ }
7482
+ .gyramais-rail-node.is-running {
7483
+ border-color: var(--gyra-blue);
7484
+ background-color: var(--gyra-blue-light);
7485
+ }
7486
+ .gyramais-rail-node.is-done {
7487
+ border-color: var(--color-success);
7488
+ background-color: var(--color-success-light);
7489
+ }
7490
+ .gyramais-rail-node.is-waiting {
7491
+ border-color: var(--color-warning);
7492
+ background-color: var(--color-warning-light);
7493
+ }
7494
+ .gyramais-rail-node.is-error {
7495
+ border-color: var(--color-danger);
7496
+ background-color: var(--color-danger-light);
7497
+ }
7498
+ .gyramais-rail-node.is-skipped {
7499
+ border-color: var(--color-border-primary);
7500
+ background-color: var(--color-surface-secondary);
7501
+ }
7502
+
7503
+ .gyramais-rail-step .gyramais-rail-step-card {
7504
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
7505
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
7506
+ transition-duration: 200ms;
7507
+ animation-duration: 200ms;
7508
+ }
7509
+ .gyramais-rail-step.is-active .gyramais-rail-step-card,
7510
+ .gyramais-rail-step.is-selected .gyramais-rail-step-card {
7511
+ border-color: var(--gyra-blue);
7512
+ background-color: var(--gyra-blue-subtle);
7513
+ }
7514
+
7515
+ /* Etapa que nao disparou: cartao translucido. O motivo NAO entra aqui,
7516
+ fica fora do cartao, em contraste cheio. */
7517
+ .gyramais-rail-step.is-skipped .gyramais-rail-step-card {
7518
+ border-style: dashed;
7519
+ opacity: 0.55;
7520
+ }
7521
+ .gyramais-rail-step.is-disabled .gyramais-rail-step-card {
7522
+ opacity: 0.6;
7523
+ }
7524
+
7525
+ .gyramais-rail-step-glyph {
7526
+ display: inline-flex;
7527
+ height: 32px;
7528
+ width: 32px;
7529
+ align-items: center;
7530
+ justify-content: center;
7531
+ border-radius: var(--radius-md);
7532
+ background-color: var(--gyra-blue-light);
7533
+ font-size: 15px;
7534
+ line-height: 1;
7535
+ color: var(--gyra-blue);
7536
+ }
7537
+ .gyramais-rail-step.is-checkpoint .gyramais-rail-step-glyph {
7538
+ background-color: var(--color-warning-light);
7539
+ color: var(--color-warning);
7540
+ }
7541
+ .gyramais-rail-step.is-relationships .gyramais-rail-step-glyph {
7542
+ background-color: var(--gyra-teal-light);
7543
+ color: var(--gyra-teal);
7544
+ }
7545
+
7546
+ .gyramais-rail-step-title {
7547
+ display: inline-flex;
7548
+ align-items: center;
7549
+ gap: 6px;
7550
+ font-family: var(--font-display);
7551
+ }
7552
+
7553
+ .gyramais-rail-step-name {
7554
+ color: var(--color-text-primary);
7555
+ }
7556
+
7557
+ .gyramais-rail-step-open {
7558
+ position: relative;
7559
+ display: inline-flex;
7560
+ cursor: pointer;
7561
+ align-items: center;
7562
+ gap: 5px;
7563
+ border-width: 0px;
7564
+ background-color: transparent;
7565
+ padding: 0px;
7566
+ color: var(--color-text-primary);
7567
+ text-decoration-line: none;
7568
+ font-family: inherit;
7569
+ font-size: inherit;
7570
+ font-weight: inherit;
7571
+ }
7572
+ .gyramais-rail-step-open:hover {
7573
+ color: var(--gyra-blue);
7574
+ text-decoration-line: underline;
7575
+ }
7576
+
7577
+ .gyramais-rail-step-open-icon {
7578
+ color: var(--color-text-tertiary);
7579
+ }
7580
+
7581
+ .gyramais-rail-step-subtitle {
7582
+ display: inline-flex;
7583
+ flex-wrap: wrap;
7584
+ align-items: center;
7585
+ gap: 6px;
7586
+ color: var(--color-text-secondary);
7587
+ }
7588
+
7589
+ .gyramais-rail-step-kind {
7590
+ font-weight: 600;
7591
+ text-transform: uppercase;
7592
+ letter-spacing: var(--tracking-wide);
7593
+ color: var(--fs-caption);
7594
+ color: var(--color-text-tertiary);
7595
+ }
7596
+
7597
+ .gyramais-rail-step-dot {
7598
+ color: var(--color-text-quaternary);
7599
+ }
7600
+
7601
+ /* O resto do subtitulo (separador + texto) e UM item do flex: assim o "·"
7602
+ quebra de linha junto com a primeira palavra que ele separa, em vez de
7603
+ ficar pendurado sozinho no fim da linha de cima. */
7604
+ .gyramais-rail-step-subtitle-rest {
7605
+ min-width: 0px;
7606
+ }
7607
+
7608
+ .gyramais-rail-step-header-right {
7609
+ display: flex;
7610
+ flex-wrap: wrap;
7611
+ align-items: center;
7612
+ justify-content: flex-end;
7613
+ gap: 8px;
7614
+ }
7615
+
7616
+ .gyramais-rail-step-toolbar {
7617
+ display: flex;
7618
+ align-items: center;
7619
+ gap: 2px;
7620
+ }
7621
+
7622
+ .gyramais-rail-step-action {
7623
+ position: relative;
7624
+ display: inline-flex;
7625
+ height: 26px;
7626
+ width: 26px;
7627
+ cursor: pointer;
7628
+ align-items: center;
7629
+ justify-content: center;
7630
+ border-radius: 9999px;
7631
+ border-width: 0px;
7632
+ background-color: transparent;
7633
+ color: var(--color-text-tertiary);
7634
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
7635
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
7636
+ transition-duration: 200ms;
7637
+ animation-duration: 200ms;
7638
+ }
7639
+ .gyramais-rail-step-action:hover:not(:disabled) {
7640
+ background-color: var(--color-surface-active);
7641
+ color: var(--color-text-primary);
7642
+ }
7643
+ .gyramais-rail-step-action-danger:hover:not(:disabled) {
7644
+ color: var(--color-danger);
7645
+ }
7646
+ .gyramais-rail-step-action:disabled {
7647
+ cursor: not-allowed;
7648
+ opacity: 0.35;
7649
+ }
7650
+
7651
+ .gyramais-rail-step-content {
7652
+ display: flex;
7653
+ flex-direction: column;
7654
+ gap: 10px;
7655
+ color: var(--fs-callout);
7656
+ color: var(--color-text-secondary);
7657
+ }
7658
+
7659
+ /* O motivo de a etapa nao ter disparado. Fora do cartao translucido de
7660
+ proposito: e a informacao que precisa ser lida. */
7661
+ .gyramais-rail-step-reason {
7662
+ margin-top: 6px;
7663
+ margin-bottom: 0px;
7664
+ display: flex;
7665
+ align-items: flex-start;
7666
+ gap: 6px;
7667
+ border-left-width: 2px;
7668
+ border-color: var(--color-border-primary);
7669
+ padding-left: 10px;
7670
+ line-height: var(--lh-normal);
7671
+ color: var(--fs-footnote);
7672
+ color: var(--color-text-secondary);
7673
+ }
7674
+ .gyramais-rail-step.is-error .gyramais-rail-step-reason {
7675
+ border-color: var(--color-danger);
7676
+ color: var(--status-danger-text);
7677
+ }
7678
+
7679
+ /* ---- Folhas (relatorios derivados dos vinculos) ------------------------ */
7680
+
7681
+ .gyramais-rail-leaves {
7682
+ margin-top: 10px;
7683
+ display: flex;
7684
+ flex-direction: column;
7685
+ gap: 6px;
7686
+ }
7687
+
7688
+ .gyramais-rail-leaves-label {
7689
+ font-weight: 600;
7690
+ text-transform: uppercase;
7691
+ letter-spacing: var(--tracking-wide);
7692
+ color: var(--fs-caption);
7693
+ color: var(--color-text-tertiary);
7694
+ }
7695
+
7696
+ .gyramais-rail-leaves-list {
7697
+ margin: 0px;
7698
+ display: flex;
7699
+ list-style-type: none;
7700
+ flex-direction: column;
7701
+ gap: 4px;
7702
+ padding: 0px;
7703
+ }
7704
+
7705
+ .gyramais-rail-leaf-item {
7706
+ display: flex;
7707
+ }
7708
+
7709
+ .gyramais-rail-leaf {
7710
+ position: relative;
7711
+ display: flex;
7712
+ width: 100%;
7713
+ flex: 1 1 0%;
7714
+ cursor: pointer;
7715
+ align-items: center;
7716
+ justify-content: space-between;
7717
+ gap: 10px;
7718
+ border-radius: var(--radius-md);
7719
+ border-width: 1px;
7720
+ border-color: var(--color-border-subtle);
7721
+ background-color: var(--color-surface-secondary);
7722
+ padding-left: 12px;
7723
+ padding-right: 12px;
7724
+ padding-top: 8px;
7725
+ padding-bottom: 8px;
7726
+ text-align: left;
7727
+ text-decoration-line: none;
7728
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
7729
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
7730
+ transition-duration: 200ms;
7731
+ animation-duration: 200ms;
7732
+ }
7733
+ .gyramais-rail-leaf:hover:not(:disabled) {
7734
+ border-color: var(--gyra-blue);
7735
+ background-color: var(--gyra-blue-subtle);
7736
+ }
7737
+ .gyramais-rail-leaf:disabled {
7738
+ cursor: default;
7739
+ opacity: 0.7;
7740
+ }
7741
+
7742
+ .gyramais-rail-leaf-text {
7743
+ display: flex;
7744
+ flex-wrap: wrap;
7745
+ align-items: baseline;
7746
+ gap: 8px;
7747
+ }
7748
+
7749
+ .gyramais-rail-leaf-title {
7750
+ font-weight: 500;
7751
+ color: var(--fs-callout);
7752
+ color: var(--color-text-primary);
7753
+ }
7754
+
7755
+ .gyramais-rail-leaf-document {
7756
+ color: var(--fs-footnote);
7757
+ color: var(--color-text-secondary);
7758
+ font-family: var(--font-mono);
7759
+ }
7760
+
7761
+ .gyramais-rail-leaf-subtitle {
7762
+ color: var(--fs-footnote);
7763
+ color: var(--color-text-tertiary);
7764
+ }
7765
+
7766
+ .gyramais-rail-leaf-status {
7767
+ flex-shrink: 0;
7768
+ }
7769
+
7770
+ /* ---- Vazio ------------------------------------------------------------- */
7771
+
7772
+ .gyramais-rail-empty {
7773
+ display: flex;
7774
+ flex-direction: column;
7775
+ align-items: flex-start;
7776
+ gap: 10px;
7777
+ border-radius: var(--radius-lg);
7778
+ border-width: 1px;
7779
+ border-style: dashed;
7780
+ border-color: var(--color-border-primary);
7781
+ background-color: var(--color-surface-secondary);
7782
+ padding: 20px;
7783
+ }
7784
+
7785
+ .gyramais-rail-empty-text {
7786
+ margin: 0px;
7787
+ color: var(--fs-callout);
7788
+ color: var(--color-text-secondary);
7789
+ }
7790
+ .gyramais-rail-empty .gyramais-rail-add {
7791
+ margin-left: 0px;
7792
+ margin-top: 0px;
7793
+ }
7794
+
7795
+ /* ---- Somente leitor de tela -------------------------------------------- */
7796
+
7797
+ .gyramais-rail-sr {
7798
+ position: absolute;
7799
+ margin: -1px;
7800
+ height: 1px;
7801
+ width: 1px;
7802
+ overflow: hidden;
7803
+ white-space: nowrap;
7804
+ border-width: 0px;
7805
+ padding: 0px;
7806
+ clip: rect(0, 0, 0, 0);
7807
+ }
7808
+
7809
+ @media (max-width: 768px) {
7810
+ .gyramais-rail-step-header-right {
7811
+ justify-content: flex-start;
7812
+ }
7813
+ }
7814
+
7815
+ /* ---- Miniatura (RailMini) ---------------------------------------------
7816
+ A esteira do tamanho de uma linha de lista: uma marca por etapa, ligadas
7817
+ por um fio, mais o resumo em texto. As cores sao as mesmas do modo run. */
7818
+
7819
+ .gyramais-rail-mini {
7820
+ display: inline-flex;
7821
+ max-width: 100%;
7822
+ align-items: center;
7823
+ gap: 3px;
7824
+ vertical-align: middle;
7825
+ }
7826
+
7827
+ .gyramais-rail-mini-mark {
7828
+ height: 8px;
7829
+ width: 8px;
7830
+ flex-shrink: 0;
7831
+ border-radius: 9999px;
7832
+ border-width: 1px;
7833
+ border-color: transparent;
7834
+ background-color: var(--color-gray-200);
7835
+ }
7836
+ .gyramais-rail-mini-mark.is-approved {
7837
+ background-color: var(--color-success);
7838
+ }
7839
+ .gyramais-rail-mini-mark.is-alert {
7840
+ background-color: var(--color-warning);
7841
+ }
7842
+ .gyramais-rail-mini-mark.is-reproved {
7843
+ background-color: var(--color-danger);
7844
+ }
7845
+ .gyramais-rail-mini-mark.is-error {
7846
+ background-color: var(--color-danger);
7847
+ opacity: 0.6;
7848
+ }
7849
+ .gyramais-rail-mini-mark.is-running {
7850
+ background-color: var(--gyra-blue);
7851
+ }
7852
+ .gyramais-rail-mini-mark.is-waiting {
7853
+ background-color: var(--color-warning);
7854
+ opacity: 0.55;
7855
+ }
7856
+ /* Etapa que NAO rodou fica oca: e o vocabulario da tela ("não executou"). */
7857
+ .gyramais-rail-mini-mark.is-skipped,
7858
+ .gyramais-rail-mini-mark.is-pending {
7859
+ border-color: var(--color-border-secondary);
7860
+ background-color: transparent;
7861
+ }
7862
+
7863
+ .gyramais-rail-mini-link {
7864
+ height: 1px;
7865
+ width: 6px;
7866
+ flex-shrink: 0;
7867
+ background-color: var(--color-border-secondary);
7868
+ }
7869
+
7870
+ .gyramais-rail-mini-text {
7871
+ margin-left: 6px;
7872
+ overflow: hidden;
7873
+ text-overflow: ellipsis;
7874
+ white-space: nowrap;
7875
+ color: var(--fs-caption);
7876
+ color: var(--color-text-tertiary);
7877
+ }
7878
+
7879
+ .gyramais-rich-input-controller {
7880
+ position: relative;
7881
+ transition-duration: 300ms;
7882
+ animation-duration: 300ms
7883
+ }
7884
+ .gyramais-rich-input-controller.gyramais-rich-input-disabled {
7885
+ opacity: 0.5;
7886
+ --tw-grayscale: grayscale(100%);
7887
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
7888
+ }
7889
+ .gyramais-rich-input-controller.gyramais-rich-input-disabled * {
7890
+ cursor: not-allowed
7891
+ }
7892
+
7893
+ .gyramais-rich-input-wrapper {
7894
+ border-radius: 20px;
7895
+ border-color: var(--border-color);
7896
+ --tw-bg-opacity: 1;
7897
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
7898
+ --tw-shadow: 0px 14px 64px -4px #18274b1f, 0px 8px 22px -6px #18274b1f;
7899
+ --tw-shadow-colored: 0px 14px 64px -4px var(--tw-shadow-color), 0px 8px 22px -6px var(--tw-shadow-color);
7900
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
7901
+ }
7902
+
7903
+ .gyramais-rich-input-placeholder {
7904
+ position: absolute;
7905
+ top: -10px;
7906
+ left: 22px;
7907
+ animation: fade-in .3s 1;
7908
+ font-size: 0.875rem;
7909
+ line-height: 1.25rem;
7910
+ font-weight: 500;
7911
+ color: var(--primary-button-color)
7912
+ }
7913
+
7914
+ .gyramais-rich-input-toolbar {
7915
+ margin-bottom: 0px;
7916
+ min-height: 54px;
7917
+ border-top-left-radius: 20px;
7918
+ border-top-right-radius: 20px;
7919
+ border-bottom-color: var(--border-color);
7920
+ padding: 0.75rem;
7921
+ padding-bottom: 0.5rem
7922
+ }
7923
+ .gyramais-rich-input-toolbar div {
7924
+ margin-bottom: 0px;
7925
+ min-height: 22px;
7926
+ padding-left: 1rem;
7927
+ padding-right: 1rem
7928
+ }
7929
+ .gyramais-rich-input-toolbar div:first-child {
7930
+ padding-left: 0px
7931
+ }
7932
+ .gyramais-rich-input-toolbar div:last-child {
7933
+ padding-right: 0px
7934
+ }
7935
+ .gyramais-rich-input-toolbar div + div {
7936
+ border-left-width: 1px;
7937
+ border-color: var(--border-color)
7938
+ }
7939
+ .gyramais-rich-input-toolbar .rdw-link-modal {
7940
+ top: -260px;
7941
+ left: -160px;
7942
+ height: -moz-fit-content;
7943
+ height: fit-content;
7944
+ width: -moz-fit-content;
7945
+ width: fit-content;
7946
+ border-radius: 20px;
7947
+ padding: 1rem !important
7948
+ }
7949
+ .gyramais-rich-input-toolbar .rdw-option-wrapper {
7950
+ min-width: 22px;
7951
+ max-width: 22px;
7952
+ border-radius: 4px;
7953
+ border-style: none;
7954
+ padding: 0px;
7955
+ --tw-shadow: 0 0 #0000;
7956
+ --tw-shadow-colored: 0 0 #0000;
7957
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
7958
+ transition-duration: 300ms;
7959
+ animation-duration: 300ms
7960
+ }
7961
+ .gyramais-rich-input-toolbar .rdw-option-wrapper:hover {
7962
+ --tw-bg-opacity: 1;
7963
+ background-color: rgb(237 240 238 / var(--tw-bg-opacity, 1))
7964
+ }
7965
+ .gyramais-rich-input-toolbar .rdw-option-wrapper.rdw-option-active {
7966
+ background-color: var(--dark-button-color)
7967
+ }
7968
+
7969
+ .gyramais-rich-input-editor {
7970
+ padding-left: 1.5rem;
7971
+ padding-right: 1.5rem;
7972
+ padding-top: 1rem;
7973
+ padding-bottom: 1rem
7974
+ }
7975
+ .gyramais-rich-input-editor .public-DraftEditorPlaceholder-inner {
7976
+ --tw-translate-y: -2px;
7977
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
7978
+ }
7979
+ .gyramais-rich-input-editor .public-DraftEditor-content {
7980
+ max-height: 300px;
7981
+ overflow-y: auto;
7982
+ line-height: 20px
7983
+ }
7984
+ .gyramais-rich-input-editor .public-DraftStyleDefault-ltr {
7985
+ margin: 0px;
7986
+ margin-bottom: 0.25rem;
7987
+ margin-bottom: 0px
7988
+ }
7989
+ .gyramais-rich-input-editor .public-DraftStyleDefault-ul {
7990
+ margin-top: 0.5rem;
7991
+ margin-bottom: 0.5rem
7992
+ }
7993
+ .gyramais-rich-input-editor .public-DraftStyleDefault-ol {
7994
+ margin-top: 0.5rem;
7995
+ margin-bottom: 0.5rem
7996
+ }
7997
+ .gyramais-rich-input-editor .rdw-link-decorator-icon {
7998
+ --tw-translate-y: -0.75rem;
7999
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
8000
+ }
8001
+ .gyramais-row {
8002
+
8003
+ display: grid;
8004
+
8005
+ width: 100%
8006
+ }
8007
+
8008
+ .gyramais-row.gyramais-row-mobile-gap-0 {
8009
+
8010
+ gap: 0px
8011
+ }
8012
+ .gyramais-row.gyramais-row-mobile-gap-4 {
8013
+
8014
+ gap: 4px
8015
+ }
8016
+ .gyramais-row.gyramais-row-mobile-gap-8 {
7422
8017
 
7423
8018
  gap: 8px
7424
8019
  }
@@ -7864,9 +8459,17 @@ h6 {
7864
8459
  font-family: inherit;
7865
8460
  }
7866
8461
 
7867
- /* Segmented picker — iOS-style verdict pill that opens a clean menu */
8462
+ /* Segmented picker — iOS-style verdict pill that opens a clean menu
8463
+ *
8464
+ * FOCO VISIVEL: o `src/index.css` desta biblioteca tem `* { outline: none
8465
+ * !important }` e `*:focus { box-shadow: none !important }`. Anel desenhado
8466
+ * no proprio elemento (outline ou box-shadow) morre calado — e foi o que
8467
+ * aconteceu aqui ate GYR-1623: navegando no menu por teclado nao havia
8468
+ * indicador NENHUM. O anel precisa ser um `::after`, porque o seletor
8469
+ * universal nao casa com pseudo-elemento. Mesma receita do `Rail`. */
7868
8470
 
7869
8471
  .gyramais-segmented-picker {
8472
+ position: relative;
7870
8473
  display: inline-flex;
7871
8474
  cursor: pointer;
7872
8475
  align-items: center;
@@ -7887,40 +8490,46 @@ h6 {
7887
8490
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
7888
8491
  transition-duration: 200ms;
7889
8492
  animation-duration: 200ms;
7890
- font-family: inherit
8493
+ font-family: inherit;
7891
8494
  }
7892
8495
  .gyramais-segmented-picker:hover {
7893
- background-color: var(--color-surface-secondary)
8496
+ background-color: var(--color-surface-secondary);
7894
8497
  }
7895
8498
  .gyramais-segmented-picker:focus-visible {
7896
8499
  border-color: var(--gyra-blue);
7897
- outline: 2px solid transparent;
7898
- outline-offset: 2px;
7899
- box-shadow: 0 0 0 3px rgba(18, 86, 255, 0.10)
8500
+ }
8501
+ .gyramais-segmented-picker:focus-visible::after {
8502
+ content: "";
8503
+ pointer-events: none;
8504
+ position: absolute;
8505
+ inset: -3px;
8506
+ border-radius: 9999px;
8507
+ border-width: 2px;
8508
+ border-color: var(--gyra-blue);
7900
8509
  }
7901
8510
  .gyramais-segmented-picker:disabled {
7902
8511
  cursor: not-allowed;
7903
- opacity: 0.55
8512
+ opacity: 0.55;
7904
8513
  }
7905
8514
 
7906
8515
  .gyramais-segmented-picker-icon {
7907
8516
  display: inline-flex;
7908
8517
  align-items: center;
7909
- justify-content: center
8518
+ justify-content: center;
7910
8519
  }
7911
8520
  .gyramais-segmented-picker.is-aprova .gyramais-segmented-picker-icon {
7912
- color: var(--success-color)
8521
+ color: var(--success-color);
7913
8522
  }
7914
8523
  .gyramais-segmented-picker.is-alerta .gyramais-segmented-picker-icon {
7915
- color: var(--warning-color)
8524
+ color: var(--warning-color);
7916
8525
  }
7917
8526
  .gyramais-segmented-picker.is-reprova .gyramais-segmented-picker-icon {
7918
- color: var(--danger-color)
8527
+ color: var(--danger-color);
7919
8528
  }
7920
8529
 
7921
8530
  .gyramais-segmented-picker-chev {
7922
8531
  margin-left: 2px;
7923
- color: var(--color-text-tertiary)
8532
+ color: var(--color-text-tertiary);
7924
8533
  }
7925
8534
 
7926
8535
  /* Secondary variant — smaller, less prominent (used for "caso de erro") */
@@ -7933,33 +8542,34 @@ h6 {
7933
8542
  padding-right: 10px;
7934
8543
  font-size: 12px;
7935
8544
  font-weight: 500;
7936
- color: var(--color-text-secondary)
8545
+ color: var(--color-text-secondary);
7937
8546
  }
7938
8547
  .gyramais-segmented-picker-secondary:hover {
7939
8548
  border-color: var(--color-border-subtle);
7940
- background-color: var(--color-surface-active)
8549
+ background-color: var(--color-surface-active);
7941
8550
  }
7942
8551
  .gyramais-segmented-picker-secondary .gyramais-segmented-picker-icon svg {
7943
- font-size: 16px
8552
+ font-size: 16px;
7944
8553
  }
7945
8554
  .gyramais-segmented-picker-secondary .gyramais-segmented-picker-chev {
7946
- font-size: 16px
8555
+ font-size: 16px;
7947
8556
  }
7948
8557
 
7949
8558
  /* ---- Popover menu ---- */
7950
8559
  .gyramais-popover-content.gyramais-segmented-picker-dropdown {
7951
8560
  min-width: 320px;
7952
8561
  border-radius: var(--radius-lg);
7953
- padding: 6px
8562
+ padding: 6px;
7954
8563
  }
7955
8564
 
7956
8565
  .gyramais-segmented-picker-menu {
7957
8566
  display: flex;
7958
8567
  flex-direction: column;
7959
- gap: 2px
8568
+ gap: 2px;
7960
8569
  }
7961
8570
 
7962
8571
  .gyramais-segmented-picker-menu-item {
8572
+ position: relative;
7963
8573
  display: flex;
7964
8574
  width: 100%;
7965
8575
  cursor: pointer;
@@ -7979,13 +8589,25 @@ h6 {
7979
8589
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
7980
8590
  transition-duration: 200ms;
7981
8591
  animation-duration: 200ms;
7982
- font-family: inherit
8592
+ font-family: inherit;
7983
8593
  }
7984
8594
  .gyramais-segmented-picker-menu-item:hover {
7985
- background-color: var(--color-surface-secondary)
8595
+ background-color: var(--color-surface-secondary);
7986
8596
  }
7987
8597
  .gyramais-segmented-picker-menu-item.is-on {
7988
- background-color: var(--color-surface-secondary)
8598
+ background-color: var(--color-surface-secondary);
8599
+ }
8600
+ .gyramais-segmented-picker-menu-item:focus-visible {
8601
+ background-color: var(--color-surface-secondary);
8602
+ }
8603
+ .gyramais-segmented-picker-menu-item:focus-visible::after {
8604
+ content: "";
8605
+ pointer-events: none;
8606
+ position: absolute;
8607
+ inset: 1px;
8608
+ border-radius: var(--radius-md);
8609
+ border-width: 2px;
8610
+ border-color: var(--gyra-blue);
7989
8611
  }
7990
8612
 
7991
8613
  .gyramais-segmented-picker-menu-icon {
@@ -7997,19 +8619,19 @@ h6 {
7997
8619
  justify-content: center;
7998
8620
  border-radius: 9999px;
7999
8621
  background-color: var(--color-gray-50);
8000
- color: var(--color-text-tertiary)
8622
+ color: var(--color-text-tertiary);
8001
8623
  }
8002
8624
  .gyramais-segmented-picker-menu-icon.is-aprova {
8003
8625
  background-color: var(--success-light-color);
8004
- color: var(--status-success-text)
8626
+ color: var(--status-success-text);
8005
8627
  }
8006
8628
  .gyramais-segmented-picker-menu-icon.is-alerta {
8007
8629
  background-color: var(--warning-light-color);
8008
- color: var(--status-warning-text)
8630
+ color: var(--status-warning-text);
8009
8631
  }
8010
8632
  .gyramais-segmented-picker-menu-icon.is-reprova {
8011
8633
  background-color: var(--danger-light-color);
8012
- color: var(--status-danger-text)
8634
+ color: var(--status-danger-text);
8013
8635
  }
8014
8636
 
8015
8637
  .gyramais-segmented-picker-menu-body {
@@ -8017,22 +8639,22 @@ h6 {
8017
8639
  min-width: 0px;
8018
8640
  flex: 1 1 0%;
8019
8641
  flex-direction: column;
8020
- gap: 2px
8642
+ gap: 2px;
8021
8643
  }
8022
8644
  .gyramais-segmented-picker-menu-title {
8023
8645
  font-size: 13.5px;
8024
8646
  font-weight: 600;
8025
- color: var(--color-text-primary)
8647
+ color: var(--color-text-primary);
8026
8648
  }
8027
8649
  .gyramais-segmented-picker-menu-desc {
8028
8650
  font-size: 11.5px;
8029
8651
  line-height: 1.35;
8030
- color: var(--color-text-tertiary)
8652
+ color: var(--color-text-tertiary);
8031
8653
  }
8032
8654
  .gyramais-segmented-picker-menu-check {
8033
8655
  margin-top: 6px;
8034
8656
  flex-shrink: 0;
8035
- color: var(--gyra-blue)
8657
+ color: var(--gyra-blue);
8036
8658
  }
8037
8659
 
8038
8660
  /* SegmentedToggle — 3-segmentos sempre visíveis, com variants por cor. */
@@ -8917,68 +9539,6 @@ h6 {
8917
9539
  left: 0.5rem !important
8918
9540
  }
8919
9541
 
8920
- .gyramais-skeleton {
8921
- position: relative;
8922
- display: block;
8923
- overflow: hidden;
8924
- background-color: var(--color-gray-100);
8925
- border-radius: var(--radius-sm);
8926
- }
8927
-
8928
- /* O brilho que varre o bloco. Pseudo-elemento para nao exigir um filho no DOM. */
8929
- .gyramais-skeleton::after {
8930
- position: absolute;
8931
- inset: 0px;
8932
- content: "";
8933
- transform: translateX(-100%);
8934
- background-image: linear-gradient(
8935
- 90deg,
8936
- rgba(255, 255, 255, 0) 0%,
8937
- rgba(255, 255, 255, 0.7) 50%,
8938
- rgba(255, 255, 255, 0) 100%
8939
- );
8940
- animation: gyramais-skeleton-shimmer 1.6s ease-in-out infinite;
8941
- }
8942
-
8943
- /* Parado de proposito: item na fila, nao em processamento. */
8944
- .gyramais-skeleton.gyramais-skeleton-static::after {
8945
- animation: none;
8946
- }
8947
-
8948
- .gyramais-skeleton.gyramais-skeleton-circle {
8949
- flex-shrink: 0;
8950
- border-radius: var(--radius-full);
8951
- }
8952
-
8953
- .gyramais-skeleton.gyramais-skeleton-block {
8954
- border-radius: var(--radius-md);
8955
- }
8956
-
8957
- .gyramais-skeleton-lines {
8958
- display: flex;
8959
- width: 100%;
8960
- flex-direction: column;
8961
- gap: 0.75rem;
8962
- }
8963
-
8964
- .gyramais-skeleton-lines .gyramais-skeleton-line {
8965
- height: 0.75rem;
8966
- }
8967
-
8968
- @keyframes gyramais-skeleton-shimmer {
8969
- 100% {
8970
- transform: translateX(100%);
8971
- }
8972
- }
8973
-
8974
- /* Sem animacao para quem pediu menos movimento: o bloco continua marcando o
8975
- espaco, so nao pulsa. */
8976
- @media (prefers-reduced-motion: reduce) {
8977
- .gyramais-skeleton::after {
8978
- animation: none;
8979
- }
8980
- }
8981
-
8982
9542
  /* PickerPopover — shell base de popovers tipo command-palette / tag-picker. */
8983
9543
 
8984
9544
  /* Container override do Popover base — chrome flat com elevação de dropdown */
@@ -10415,51 +10975,6 @@ h6 {
10415
10975
  }
10416
10976
  }
10417
10977
 
10418
- /* GYR-1646: refetch (troca de filtro, busca, acao de linha) NAO apaga as
10419
- linhas. Elas ficam esmaecidas enquanto a barra fina no topo indica que algo
10420
- esta vindo. Trocar dado visivel por placeholder e' regressao de UX: o
10421
- usuario perde o que estava lendo por causa de uma acao dele mesmo. */
10422
- .gyramais-table-container .gyramais-table-refetching {
10423
- opacity: 0.45;
10424
- transition: opacity 150ms ease-out;
10425
- pointer-events: none;
10426
- }
10427
-
10428
- .gyramais-table-container .gyramais-table-refetching-bar {
10429
- position: relative;
10430
- height: 2px;
10431
- overflow: hidden;
10432
- background-color: var(--color-gray-100);
10433
- }
10434
-
10435
- .gyramais-table-container .gyramais-table-refetching-bar::after {
10436
- content: "";
10437
- position: absolute;
10438
- top: 0;
10439
- bottom: 0;
10440
- width: 35%;
10441
- background-color: var(--gyra-blue);
10442
- animation: gyramais-table-refetching-slide 1.1s ease-in-out infinite;
10443
- }
10444
-
10445
- @keyframes gyramais-table-refetching-slide {
10446
- 0% {
10447
- left: -35%;
10448
- }
10449
- 100% {
10450
- left: 100%;
10451
- }
10452
- }
10453
-
10454
- /* Sem movimento para quem pediu menos: a barra continua marcando o estado. */
10455
- @media (prefers-reduced-motion: reduce) {
10456
- .gyramais-table-container .gyramais-table-refetching-bar::after {
10457
- animation: none;
10458
- width: 100%;
10459
- opacity: 0.4;
10460
- }
10461
- }
10462
-
10463
10978
  .gyramais-tabs {
10464
10979
 
10465
10980
  width: 100%