@kenyaemr/esm-patient-clinical-view-app 5.4.2-pre.2716 → 5.4.2-pre.2724
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/.turbo/turbo-build.log +4 -4
- package/dist/127.js +1 -1
- package/dist/40.js +1 -1
- package/dist/805.js +1 -0
- package/dist/805.js.map +1 -0
- package/dist/916.js +1 -1
- package/dist/kenyaemr-esm-patient-clinical-view-app.js +2 -2
- package/dist/kenyaemr-esm-patient-clinical-view-app.js.buildmanifest.json +36 -36
- package/dist/main.js +27 -27
- package/dist/main.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/config-schema.ts +97 -0
- package/src/contact-list/contact-tracing-history.component.tsx +18 -15
- package/src/maternal-and-child-health/partography/components/pulse-bp-graph.component.tsx +1 -0
- package/src/maternal-and-child-health/partography/components/temperature-graph.component.tsx +218 -0
- package/src/maternal-and-child-health/partography/components/uterine-contractions-graph.component.tsx +209 -0
- package/src/maternal-and-child-health/partography/forms/cervical-contractions-form.component.tsx +211 -0
- package/src/maternal-and-child-health/partography/forms/cervix-form.component.tsx +354 -0
- package/src/maternal-and-child-health/partography/forms/drugs-iv-fluids-form.component.tsx +321 -0
- package/src/maternal-and-child-health/partography/forms/fetal-heart-rate-form.component.tsx +275 -0
- package/src/maternal-and-child-health/partography/forms/index.ts +9 -0
- package/src/maternal-and-child-health/partography/forms/membrane-amniotic-fluid-form.component.tsx +330 -0
- package/src/maternal-and-child-health/partography/forms/oxytocin-form.component.tsx +207 -0
- package/src/maternal-and-child-health/partography/forms/pulse-bp-form.component.tsx +174 -0
- package/src/maternal-and-child-health/partography/forms/temperature-form.component.tsx +210 -0
- package/src/maternal-and-child-health/partography/forms/time-picker-dropdown.component.tsx +218 -0
- package/src/maternal-and-child-health/partography/forms/time-picker-dropdown.scss +107 -0
- package/src/maternal-and-child-health/partography/forms/time-picker-with-clock.component.tsx +174 -0
- package/src/maternal-and-child-health/partography/forms/time-picker-with-clock.scss +178 -0
- package/src/maternal-and-child-health/partography/forms/urine-test-form.component.tsx +255 -0
- package/src/maternal-and-child-health/partography/forms/useCervixData.ts +16 -0
- package/src/maternal-and-child-health/partography/graphs/cervical-contractions-graph.component.tsx +266 -0
- package/src/maternal-and-child-health/partography/graphs/cervix-graph.component.tsx +429 -0
- package/src/maternal-and-child-health/partography/graphs/drugs-iv-fluids-graph-wrapper.component.tsx +163 -0
- package/src/maternal-and-child-health/partography/graphs/drugs-iv-fluids-graph.component.tsx +82 -0
- package/src/maternal-and-child-health/partography/graphs/fetal-heart-rate-graph.component.tsx +359 -0
- package/src/maternal-and-child-health/partography/graphs/index.ts +10 -0
- package/src/maternal-and-child-health/partography/graphs/membrane-amniotic-fluid-graph.component.tsx +266 -0
- package/src/maternal-and-child-health/partography/graphs/oxytocin-graph-wrapper.component.tsx +190 -0
- package/src/maternal-and-child-health/partography/graphs/oxytocin-graph.component.tsx +126 -0
- package/src/maternal-and-child-health/partography/graphs/partograph-graph.component.tsx +266 -0
- package/src/maternal-and-child-health/partography/graphs/pulse-bp-graph-wrapper.component.tsx +298 -0
- package/src/maternal-and-child-health/partography/graphs/pulse-bp-graph.component.tsx +267 -0
- package/src/maternal-and-child-health/partography/graphs/temperature-graph.component.tsx +242 -0
- package/src/maternal-and-child-health/partography/graphs/urine-test-graph.component.tsx +246 -0
- package/src/maternal-and-child-health/partography/partograph.component.tsx +2141 -118
- package/src/maternal-and-child-health/partography/partography-dashboard.meta.ts +8 -0
- package/src/maternal-and-child-health/partography/partography-data-form.scss +163 -0
- package/src/maternal-and-child-health/partography/partography.resource.ts +233 -326
- package/src/maternal-and-child-health/partography/partography.scss +1341 -3
- package/src/maternal-and-child-health/partography/resources/blood-pressure.resource.ts +96 -0
- package/src/maternal-and-child-health/partography/resources/cervical-dilation.resource.ts +109 -0
- package/src/maternal-and-child-health/partography/resources/cervix.resource.ts +362 -0
- package/src/maternal-and-child-health/partography/resources/descent-of-head.resource.ts +101 -0
- package/src/maternal-and-child-health/partography/resources/drugs-fluids.resource.ts +88 -0
- package/src/maternal-and-child-health/partography/resources/fetal-heart-rate.resource.ts +122 -0
- package/src/maternal-and-child-health/partography/resources/maternal-pulse.resource.ts +77 -0
- package/src/maternal-and-child-health/partography/resources/membrane-amniotic-fluid.resource.ts +108 -0
- package/src/maternal-and-child-health/partography/resources/oxytocin.resource.ts +159 -0
- package/src/maternal-and-child-health/partography/resources/progress-events.resource.ts +6 -0
- package/src/maternal-and-child-health/partography/resources/pulse-bp-combined.resource.ts +53 -0
- package/src/maternal-and-child-health/partography/resources/temperature.resource.ts +84 -0
- package/src/maternal-and-child-health/partography/resources/uterine-contractions.resource.ts +173 -0
- package/src/maternal-and-child-health/partography/table/temperature-table.component.tsx +99 -0
- package/src/maternal-and-child-health/partography/table/uterine-contractions-table.component.tsx +86 -0
- package/src/maternal-and-child-health/partography/types/index.ts +319 -101
- package/translations/am.json +121 -1
- package/translations/en.json +121 -1
- package/translations/sw.json +121 -1
- package/dist/397.js +0 -1
- package/dist/397.js.map +0 -1
|
@@ -8,6 +8,21 @@
|
|
|
8
8
|
margin: layout.$spacing-03 0;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
.partographyGrid {
|
|
12
|
+
display: grid;
|
|
13
|
+
grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));
|
|
14
|
+
gap: layout.$spacing-05;
|
|
15
|
+
|
|
16
|
+
@media (max-width: 1200px) {
|
|
17
|
+
grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@media (max-width: 768px) {
|
|
21
|
+
grid-template-columns: 1fr;
|
|
22
|
+
gap: layout.$spacing-04;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
11
26
|
.partographyTitle {
|
|
12
27
|
@include type.type-style('heading-compact-02');
|
|
13
28
|
color: colors.$gray-100;
|
|
@@ -46,9 +61,30 @@
|
|
|
46
61
|
|
|
47
62
|
.graphContainer {
|
|
48
63
|
padding: layout.$spacing-04;
|
|
49
|
-
background-color: colors.$
|
|
64
|
+
background-color: colors.$white;
|
|
50
65
|
border-radius: layout.$spacing-02;
|
|
51
66
|
margin-bottom: layout.$spacing-04;
|
|
67
|
+
border: 2px solid colors.$gray-40;
|
|
68
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
69
|
+
transition: box-shadow 0.2s ease;
|
|
70
|
+
|
|
71
|
+
&:hover {
|
|
72
|
+
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Medical chart styling
|
|
76
|
+
&::before {
|
|
77
|
+
content: '';
|
|
78
|
+
position: absolute;
|
|
79
|
+
top: 0;
|
|
80
|
+
left: 0;
|
|
81
|
+
right: 0;
|
|
82
|
+
height: 4px;
|
|
83
|
+
background: linear-gradient(90deg, colors.$blue-60, colors.$green-50, colors.$blue-60);
|
|
84
|
+
border-radius: layout.$spacing-02 layout.$spacing-02 0 0;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
position: relative;
|
|
52
88
|
}
|
|
53
89
|
|
|
54
90
|
.graphHeader {
|
|
@@ -79,7 +115,6 @@
|
|
|
79
115
|
border: 1px solid colors.$gray-30;
|
|
80
116
|
border-radius: layout.$spacing-02;
|
|
81
117
|
overflow: hidden;
|
|
82
|
-
margin-right: layout.$spacing-03;
|
|
83
118
|
|
|
84
119
|
.viewButton {
|
|
85
120
|
border-radius: 0;
|
|
@@ -139,8 +174,79 @@
|
|
|
139
174
|
background-color: colors.$white;
|
|
140
175
|
padding: layout.$spacing-04;
|
|
141
176
|
border-radius: layout.$spacing-02;
|
|
142
|
-
border:
|
|
177
|
+
border: 2px solid colors.$gray-40;
|
|
143
178
|
margin-bottom: layout.$spacing-04;
|
|
179
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
180
|
+
|
|
181
|
+
// Medical chart styling
|
|
182
|
+
.cds--chart-wrapper {
|
|
183
|
+
border: 1px solid colors.$gray-30;
|
|
184
|
+
border-radius: layout.$spacing-02;
|
|
185
|
+
overflow: hidden;
|
|
186
|
+
|
|
187
|
+
// Enhanced grid lines for medical chart appearance
|
|
188
|
+
.cds--chart {
|
|
189
|
+
background-color: colors.$white;
|
|
190
|
+
background-image: linear-gradient(colors.$gray-20 1px, transparent 1px),
|
|
191
|
+
linear-gradient(90deg, colors.$gray-20 1px, transparent 1px);
|
|
192
|
+
background-size: 20px 20px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Ensure axis lines are visible and properly styled
|
|
196
|
+
.cds--axis {
|
|
197
|
+
stroke: colors.$gray-60;
|
|
198
|
+
stroke-width: 2px;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// Style grid lines to be more prominent
|
|
202
|
+
.cds--grid-line {
|
|
203
|
+
stroke: colors.$gray-30;
|
|
204
|
+
stroke-width: 1px;
|
|
205
|
+
stroke-dasharray: 2, 2;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Enhanced axis labels
|
|
209
|
+
.cds--axis-label {
|
|
210
|
+
fill: colors.$gray-90;
|
|
211
|
+
font-weight: 600;
|
|
212
|
+
font-size: 12px;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// Style chart title
|
|
216
|
+
.cds--chart-title {
|
|
217
|
+
fill: colors.$gray-100;
|
|
218
|
+
font-weight: 700;
|
|
219
|
+
font-size: 16px;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.emptyChartContainer {
|
|
225
|
+
position: relative;
|
|
226
|
+
height: 500px;
|
|
227
|
+
background-color: colors.$white;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.emptyChartOverlay {
|
|
231
|
+
position: absolute;
|
|
232
|
+
top: 50%;
|
|
233
|
+
left: 50%;
|
|
234
|
+
transform: translate(-50%, -50%);
|
|
235
|
+
display: flex;
|
|
236
|
+
flex-direction: column;
|
|
237
|
+
align-items: center;
|
|
238
|
+
gap: layout.$spacing-04;
|
|
239
|
+
background-color: rgba(255, 255, 255, 0.95);
|
|
240
|
+
padding: layout.$spacing-05;
|
|
241
|
+
border-radius: layout.$spacing-02;
|
|
242
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
243
|
+
text-align: center;
|
|
244
|
+
|
|
245
|
+
p {
|
|
246
|
+
margin: 0;
|
|
247
|
+
@include type.type-style('body-compact-01');
|
|
248
|
+
color: colors.$gray-70;
|
|
249
|
+
}
|
|
144
250
|
}
|
|
145
251
|
|
|
146
252
|
.chartStats {
|
|
@@ -361,6 +467,89 @@
|
|
|
361
467
|
}
|
|
362
468
|
}
|
|
363
469
|
|
|
470
|
+
// Skeleton loading styles
|
|
471
|
+
.skeletonContainer {
|
|
472
|
+
padding: layout.$spacing-04;
|
|
473
|
+
background-color: colors.$white;
|
|
474
|
+
border-radius: layout.$spacing-02;
|
|
475
|
+
border: 1px solid colors.$gray-20;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
.graphSkeleton {
|
|
479
|
+
.skeletonChart {
|
|
480
|
+
height: 500px;
|
|
481
|
+
background: linear-gradient(90deg, colors.$gray-20 25%, colors.$gray-10 50%, colors.$gray-20 75%);
|
|
482
|
+
background-size: 200% 100%;
|
|
483
|
+
animation: skeletonLoading 1.5s infinite;
|
|
484
|
+
border-radius: layout.$spacing-02;
|
|
485
|
+
margin-bottom: layout.$spacing-04;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
.skeletonStats {
|
|
489
|
+
display: flex;
|
|
490
|
+
gap: layout.$spacing-05;
|
|
491
|
+
margin-top: layout.$spacing-04;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
.skeletonStat {
|
|
495
|
+
background: linear-gradient(90deg, colors.$gray-20 25%, colors.$gray-10 50%, colors.$gray-20 75%);
|
|
496
|
+
background-size: 200% 100%;
|
|
497
|
+
animation: skeletonLoading 1.5s infinite;
|
|
498
|
+
height: layout.$spacing-05;
|
|
499
|
+
border-radius: layout.$spacing-02;
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
.tableSkeleton {
|
|
504
|
+
.skeletonHeader {
|
|
505
|
+
background: linear-gradient(90deg, colors.$gray-20 25%, colors.$gray-10 50%, colors.$gray-20 75%);
|
|
506
|
+
background-size: 200% 100%;
|
|
507
|
+
animation: skeletonLoading 1.5s infinite;
|
|
508
|
+
height: layout.$spacing-05;
|
|
509
|
+
border-radius: layout.$spacing-02;
|
|
510
|
+
margin-bottom: layout.$spacing-04;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
.skeletonRow {
|
|
514
|
+
display: flex;
|
|
515
|
+
gap: layout.$spacing-05;
|
|
516
|
+
margin-bottom: layout.$spacing-03;
|
|
517
|
+
|
|
518
|
+
.skeletonCell {
|
|
519
|
+
background: linear-gradient(90deg, colors.$gray-20 25%, colors.$gray-10 50%, colors.$gray-20 75%);
|
|
520
|
+
background-size: 200% 100%;
|
|
521
|
+
animation: skeletonLoading 1.5s infinite;
|
|
522
|
+
height: layout.$spacing-04;
|
|
523
|
+
border-radius: layout.$spacing-02;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
.skeletonFooter {
|
|
528
|
+
background: linear-gradient(90deg, colors.$gray-20 25%, colors.$gray-10 50%, colors.$gray-20 75%);
|
|
529
|
+
background-size: 200% 100%;
|
|
530
|
+
animation: skeletonLoading 1.5s infinite;
|
|
531
|
+
height: layout.$spacing-04;
|
|
532
|
+
border-radius: layout.$spacing-02;
|
|
533
|
+
margin-top: layout.$spacing-04;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
@keyframes skeletonLoading {
|
|
538
|
+
0% {
|
|
539
|
+
background-position: -200% 0;
|
|
540
|
+
}
|
|
541
|
+
100% {
|
|
542
|
+
background-position: 200% 0;
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
// Global skeleton animation (in case CSS modules scoping is an issue)
|
|
547
|
+
:global(.skeleton-loading) {
|
|
548
|
+
background: linear-gradient(90deg, #f4f4f4 25%, #e0e0e0 50%, #f4f4f4 75%);
|
|
549
|
+
background-size: 200% 100%;
|
|
550
|
+
animation: skeletonLoading 1.5s infinite;
|
|
551
|
+
}
|
|
552
|
+
|
|
364
553
|
.emptyState {
|
|
365
554
|
display: flex;
|
|
366
555
|
flex-direction: column;
|
|
@@ -376,3 +565,1152 @@
|
|
|
376
565
|
@include type.type-style('body-compact-01');
|
|
377
566
|
}
|
|
378
567
|
}
|
|
568
|
+
// partography.scss
|
|
569
|
+
|
|
570
|
+
.customTimeLabelsContainer {
|
|
571
|
+
display: flex;
|
|
572
|
+
flex-direction: column;
|
|
573
|
+
border-top: 2px solid colors.$gray-40;
|
|
574
|
+
border-left: 2px solid colors.$gray-40;
|
|
575
|
+
border-right: 2px solid colors.$gray-40;
|
|
576
|
+
border-bottom: 2px solid colors.$gray-40;
|
|
577
|
+
margin-top: 0;
|
|
578
|
+
background-color: colors.$white;
|
|
579
|
+
border-radius: 0;
|
|
580
|
+
|
|
581
|
+
// Perfect alignment with chart's plot area
|
|
582
|
+
margin-left: 70px;
|
|
583
|
+
margin-right: 30px;
|
|
584
|
+
width: auto;
|
|
585
|
+
|
|
586
|
+
// Enable horizontal scrolling for dynamic content
|
|
587
|
+
overflow-x: auto;
|
|
588
|
+
overflow-y: hidden;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
.customTimeLabelsRow {
|
|
592
|
+
display: grid;
|
|
593
|
+
grid-template-columns: 80px repeat(var(--visible-columns, 10), minmax(60px, 1fr)); // Fixed header + dynamic columns
|
|
594
|
+
border-bottom: 1px solid colors.$gray-40;
|
|
595
|
+
min-height: 40px;
|
|
596
|
+
min-width: max-content; // Ensure content doesn't get compressed
|
|
597
|
+
|
|
598
|
+
&:last-child {
|
|
599
|
+
border-bottom: none;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
&:first-child {
|
|
603
|
+
background-color: colors.$gray-10;
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
.customTimeLabelHeader {
|
|
608
|
+
grid-column: 1 / 2; // First column for header
|
|
609
|
+
font-weight: 700;
|
|
610
|
+
padding: layout.$spacing-03;
|
|
611
|
+
border-right: 1px solid colors.$gray-40;
|
|
612
|
+
text-align: center;
|
|
613
|
+
background-color: colors.$gray-20;
|
|
614
|
+
color: colors.$gray-100;
|
|
615
|
+
@include type.type-style('label-01');
|
|
616
|
+
display: flex;
|
|
617
|
+
align-items: center;
|
|
618
|
+
justify-content: center;
|
|
619
|
+
position: sticky; // Keep header visible during scroll
|
|
620
|
+
left: 0;
|
|
621
|
+
z-index: 1;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
.customTimeLabelCell {
|
|
625
|
+
padding: layout.$spacing-03;
|
|
626
|
+
text-align: center;
|
|
627
|
+
border-right: 1px solid colors.$gray-40;
|
|
628
|
+
font-weight: 600;
|
|
629
|
+
@include type.type-style('body-compact-01');
|
|
630
|
+
color: colors.$gray-100;
|
|
631
|
+
background-color: colors.$white;
|
|
632
|
+
display: flex;
|
|
633
|
+
align-items: center;
|
|
634
|
+
justify-content: center;
|
|
635
|
+
min-width: 60px; // Minimum column width
|
|
636
|
+
|
|
637
|
+
&:last-child {
|
|
638
|
+
border-right: none;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
&:hover {
|
|
642
|
+
background-color: colors.$gray-10;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
// Optional: Adjust chart's axis label styling if needed to make space or match font
|
|
647
|
+
.cds--chart-wrapper {
|
|
648
|
+
// You might need to add specific CSS here to the Carbon Chart itself
|
|
649
|
+
// to fine-tune the bottom axis's appearance or padding if it overlaps
|
|
650
|
+
// or leaves too much space. This can be complex due to shadow DOM.
|
|
651
|
+
// E.g., .cds--chart-wrapper .cds--bottom-axis .cds--axis-labels { display: none; }
|
|
652
|
+
// or .cds--chart-wrapper .cds--bottom-axis .cds--axis-title { padding-bottom: 0; }
|
|
653
|
+
|
|
654
|
+
.cds--bottom-axis .cds--axis-title {
|
|
655
|
+
padding-bottom: 0;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
// Override line colors for Alert and Action lines
|
|
659
|
+
.cds--line-path {
|
|
660
|
+
// Alert Line - Yellow dotted line
|
|
661
|
+
&[data-group-id='Alert Line'],
|
|
662
|
+
&[aria-label*='Alert Line'] {
|
|
663
|
+
stroke: #ffd700 !important;
|
|
664
|
+
stroke-width: 3px !important;
|
|
665
|
+
stroke-dasharray: 8, 4 !important;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
// Action Line - Red dotted line
|
|
669
|
+
&[data-group-id='Action Line'],
|
|
670
|
+
&[aria-label*='Action Line'] {
|
|
671
|
+
stroke: #ff0000 !important;
|
|
672
|
+
stroke-width: 3px !important;
|
|
673
|
+
stroke-dasharray: 8, 4 !important;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
// Alternative selector for different Carbon Charts versions
|
|
678
|
+
svg path {
|
|
679
|
+
&[data-name='Alert Line'] {
|
|
680
|
+
stroke: #ffd700 !important;
|
|
681
|
+
stroke-width: 3px !important;
|
|
682
|
+
stroke-dasharray: 8, 4 !important;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
&[data-name='Action Line'] {
|
|
686
|
+
stroke: #ff0000 !important;
|
|
687
|
+
stroke-width: 3px !important;
|
|
688
|
+
stroke-dasharray: 8, 4 !important;
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
// Generic line overrides for Alert/Action
|
|
693
|
+
.alert-line {
|
|
694
|
+
stroke: #ffd700 !important;
|
|
695
|
+
stroke-width: 3px !important;
|
|
696
|
+
stroke-dasharray: 8, 4 !important;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
.action-line {
|
|
700
|
+
stroke: #ff0000 !important;
|
|
701
|
+
stroke-width: 3px !important;
|
|
702
|
+
stroke-dasharray: 8, 4 !important;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
// More specific targeting for cervix chart lines
|
|
706
|
+
&[data-chart-id='cervix'] {
|
|
707
|
+
svg path {
|
|
708
|
+
// Target Alert Line specifically
|
|
709
|
+
&:nth-last-child(2) {
|
|
710
|
+
stroke: #ffd700 !important;
|
|
711
|
+
stroke-width: 3px !important;
|
|
712
|
+
stroke-dasharray: 8, 4 !important;
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
// Target Action Line specifically
|
|
716
|
+
&:last-child {
|
|
717
|
+
stroke: #ff0000 !important;
|
|
718
|
+
stroke-width: 3px !important;
|
|
719
|
+
stroke-dasharray: 8, 4 !important;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
// Try targeting by legend item or class
|
|
724
|
+
.line {
|
|
725
|
+
&:nth-last-child(2) {
|
|
726
|
+
stroke: #ffd700 !important;
|
|
727
|
+
stroke-width: 3px !important;
|
|
728
|
+
stroke-dasharray: 8, 4 !important;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
&:last-child {
|
|
732
|
+
stroke: #ff0000 !important;
|
|
733
|
+
stroke-width: 3px !important;
|
|
734
|
+
stroke-dasharray: 8, 4 !important;
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
// Alternative broader targeting
|
|
739
|
+
svg g[class*='line'] {
|
|
740
|
+
path {
|
|
741
|
+
&:nth-last-child(2) {
|
|
742
|
+
stroke: #ffd700 !important;
|
|
743
|
+
stroke-width: 3px !important;
|
|
744
|
+
stroke-dasharray: 8, 4 !important;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
&:last-child {
|
|
748
|
+
stroke: #ff0000 !important;
|
|
749
|
+
stroke-width: 3px !important;
|
|
750
|
+
stroke-dasharray: 8, 4 !important;
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
// Global overrides for Alert and Action lines (outside any wrapper)
|
|
758
|
+
:global {
|
|
759
|
+
// Try to target lines by data attributes
|
|
760
|
+
[data-group='Alert Line'] {
|
|
761
|
+
stroke: #ffd700 !important;
|
|
762
|
+
stroke-width: 3px !important;
|
|
763
|
+
stroke-dasharray: 8, 4 !important;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
[data-group='Action Line'] {
|
|
767
|
+
stroke: #ff0000 !important;
|
|
768
|
+
stroke-width: 3px !important;
|
|
769
|
+
stroke-dasharray: 8, 4 !important;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
// Try broad SVG path targeting in cervix chart
|
|
773
|
+
[data-chart-id='cervix'] svg path {
|
|
774
|
+
// If there are 3 or more lines (cervix data + alert + action)
|
|
775
|
+
// Target the last two as Alert and Action lines
|
|
776
|
+
&:nth-last-child(2) {
|
|
777
|
+
stroke: #ffd700 !important;
|
|
778
|
+
stroke-width: 3px !important;
|
|
779
|
+
stroke-dasharray: 8, 4 !important;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
&:last-child {
|
|
783
|
+
stroke: #ff0000 !important;
|
|
784
|
+
stroke-width: 3px !important;
|
|
785
|
+
stroke-dasharray: 8, 4 !important;
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
// Optional: Adjust the height of the chart if the new labels cause overflow
|
|
791
|
+
.chartContainer {
|
|
792
|
+
height: 500px; // Keep this consistent
|
|
793
|
+
// If the new labels cause overlap, you might need to make the chart slightly shorter
|
|
794
|
+
// e.g., height: 450px; and then adjust overall graphContainer height.
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
/* Fetal Heart Rate Section Styles */
|
|
798
|
+
.fetalHeartRateSection {
|
|
799
|
+
margin-bottom: layout.$spacing-07;
|
|
800
|
+
width: 100%;
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
.fetalHeartRateContainer {
|
|
804
|
+
background-color: colors.$white;
|
|
805
|
+
border-radius: layout.$spacing-03;
|
|
806
|
+
border: 2px solid colors.$gray-20;
|
|
807
|
+
padding: layout.$spacing-06;
|
|
808
|
+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
|
|
809
|
+
margin-bottom: layout.$spacing-06;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
.fetalHeartRateHeader {
|
|
813
|
+
display: flex;
|
|
814
|
+
justify-content: space-between;
|
|
815
|
+
align-items: flex-start;
|
|
816
|
+
margin-bottom: layout.$spacing-05;
|
|
817
|
+
border-bottom: 1px solid colors.$gray-20;
|
|
818
|
+
padding-bottom: layout.$spacing-04;
|
|
819
|
+
gap: layout.$spacing-04;
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
.fetalHeartRateHeaderLeft {
|
|
823
|
+
display: flex;
|
|
824
|
+
flex-direction: column;
|
|
825
|
+
align-items: flex-start;
|
|
826
|
+
gap: layout.$spacing-03;
|
|
827
|
+
flex: 1;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
.fetalHeartRateHeaderRight {
|
|
831
|
+
display: flex;
|
|
832
|
+
align-items: center;
|
|
833
|
+
gap: layout.$spacing-03;
|
|
834
|
+
flex-shrink: 0;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
.fetalHeartRateActions {
|
|
838
|
+
display: flex;
|
|
839
|
+
align-items: center;
|
|
840
|
+
gap: layout.$spacing-03;
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
.fetalHeartRateTitle {
|
|
844
|
+
@include type.type-style('heading-compact-02');
|
|
845
|
+
color: colors.$gray-100;
|
|
846
|
+
margin: 0;
|
|
847
|
+
font-weight: 600;
|
|
848
|
+
font-size: 1.125rem; // Slightly larger title
|
|
849
|
+
margin-bottom: layout.$spacing-02;
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
.fetalHeartRateControls {
|
|
853
|
+
display: flex;
|
|
854
|
+
align-items: center;
|
|
855
|
+
gap: layout.$spacing-02;
|
|
856
|
+
flex-wrap: wrap;
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
.fetalHeartRateChart {
|
|
860
|
+
min-height: 600px; // Increased height to match cervix graph
|
|
861
|
+
width: 100%;
|
|
862
|
+
margin-top: layout.$spacing-04;
|
|
863
|
+
|
|
864
|
+
// Override Carbon chart styles for this specific chart
|
|
865
|
+
:global(.cds--cc--chart-svg) {
|
|
866
|
+
border: 1px solid colors.$gray-30;
|
|
867
|
+
border-radius: layout.$spacing-02;
|
|
868
|
+
min-height: 600px; // Ensure minimum height
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
// Chart wrapper to ensure proper sizing
|
|
872
|
+
:global(.cds--cc--chart-wrapper) {
|
|
873
|
+
min-height: 600px;
|
|
874
|
+
padding-bottom: layout.$spacing-06; // Extra space for x-axis labels
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
// Grid line styling to match cervix graph
|
|
878
|
+
:global(.cds--cc--grid-line) {
|
|
879
|
+
stroke: colors.$gray-30;
|
|
880
|
+
stroke-opacity: 0.3;
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
// Ensure x-axis labels have proper spacing and are horizontal
|
|
884
|
+
:global(.cds--cc--axis-tick-label) {
|
|
885
|
+
font-size: 12px;
|
|
886
|
+
fill: colors.$gray-70;
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
// X-axis label positioning - ensure they are horizontal
|
|
890
|
+
:global(.cds--cc--axis.cds--cc--axis--bottom .cds--cc--axis-tick-label) {
|
|
891
|
+
text-anchor: middle;
|
|
892
|
+
transform: none !important; // Force no rotation
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
// Y-axis styling
|
|
896
|
+
:global(.cds--cc--axis.cds--cc--axis--left .cds--cc--axis-tick-label) {
|
|
897
|
+
text-anchor: end;
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
// Ensure chart container has enough bottom padding for labels
|
|
901
|
+
:global(.cds--cc--chart-holder) {
|
|
902
|
+
padding-bottom: layout.$spacing-08 !important;
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
// Disable any text rotation on bottom axis
|
|
906
|
+
:global(.cds--cc--axis--bottom text) {
|
|
907
|
+
transform: rotate(0deg) !important;
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
// Axis styling
|
|
911
|
+
:global(.cds--cc--axis) {
|
|
912
|
+
.tick text {
|
|
913
|
+
font-size: 12px;
|
|
914
|
+
fill: colors.$gray-70;
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
.domain {
|
|
918
|
+
stroke: colors.$gray-50;
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
// Fetal Heart Rate Table Value Styling
|
|
924
|
+
.fetalHeartRateValue {
|
|
925
|
+
display: inline-flex;
|
|
926
|
+
align-items: center;
|
|
927
|
+
gap: layout.$spacing-02;
|
|
928
|
+
|
|
929
|
+
&.low {
|
|
930
|
+
color: colors.$gray-70;
|
|
931
|
+
|
|
932
|
+
.arrow {
|
|
933
|
+
color: colors.$gray-70;
|
|
934
|
+
font-size: 1.4em;
|
|
935
|
+
font-weight: bold;
|
|
936
|
+
margin-right: layout.$spacing-02;
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
&.normal {
|
|
941
|
+
color: colors.$green-50;
|
|
942
|
+
font-weight: 500;
|
|
943
|
+
}
|
|
944
|
+
|
|
945
|
+
&.high {
|
|
946
|
+
color: colors.$red-50;
|
|
947
|
+
font-weight: 600;
|
|
948
|
+
|
|
949
|
+
.arrow {
|
|
950
|
+
color: colors.$red-50;
|
|
951
|
+
font-size: 1.4em;
|
|
952
|
+
font-weight: bold;
|
|
953
|
+
margin-right: layout.$spacing-02;
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
/* Membrane Amniotic Fluid Grid Styles */
|
|
959
|
+
.membraneGrid {
|
|
960
|
+
width: 100%;
|
|
961
|
+
margin-top: layout.$spacing-04;
|
|
962
|
+
background: colors.$white;
|
|
963
|
+
border: 1px solid colors.$gray-30;
|
|
964
|
+
border-radius: layout.$spacing-02;
|
|
965
|
+
overflow-x: auto;
|
|
966
|
+
max-height: 300px; // Set a reasonable height
|
|
967
|
+
max-width: 1050px; // Show approximately 13 grids (140px label + 70px * 13 columns = 1050px)
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
.gridContainer {
|
|
971
|
+
display: flex;
|
|
972
|
+
flex-direction: column;
|
|
973
|
+
min-width: fit-content; // Allow natural width based on content
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
.gridHeader {
|
|
977
|
+
display: flex;
|
|
978
|
+
background: colors.$gray-10;
|
|
979
|
+
border-bottom: 2px solid colors.$gray-30;
|
|
980
|
+
font-weight: 600;
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
.gridRow {
|
|
984
|
+
display: flex;
|
|
985
|
+
border-bottom: 1px solid colors.$gray-20;
|
|
986
|
+
|
|
987
|
+
&:last-child {
|
|
988
|
+
border-bottom: none;
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
.gridCell {
|
|
993
|
+
flex: 0 0 70px; // Fixed width for time columns for consistent layout
|
|
994
|
+
min-width: 70px;
|
|
995
|
+
padding: layout.$spacing-03;
|
|
996
|
+
border-right: 1px solid colors.$gray-20;
|
|
997
|
+
text-align: center;
|
|
998
|
+
font-size: 0.875rem;
|
|
999
|
+
display: flex;
|
|
1000
|
+
align-items: center;
|
|
1001
|
+
justify-content: center;
|
|
1002
|
+
min-height: 48px;
|
|
1003
|
+
|
|
1004
|
+
&:last-child {
|
|
1005
|
+
border-right: none;
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
&:first-child {
|
|
1009
|
+
flex: 0 0 140px;
|
|
1010
|
+
min-width: 140px;
|
|
1011
|
+
background: colors.$gray-10;
|
|
1012
|
+
font-weight: 600;
|
|
1013
|
+
text-align: left;
|
|
1014
|
+
justify-content: flex-start;
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
.gridRowLabel {
|
|
1019
|
+
flex: 0 0 140px;
|
|
1020
|
+
padding: layout.$spacing-03;
|
|
1021
|
+
background: colors.$gray-10;
|
|
1022
|
+
border-right: 2px solid colors.$gray-30;
|
|
1023
|
+
font-weight: 600;
|
|
1024
|
+
display: flex;
|
|
1025
|
+
align-items: center;
|
|
1026
|
+
text-align: left;
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
.legendText {
|
|
1030
|
+
font-size: 0.75rem;
|
|
1031
|
+
color: colors.$gray-70;
|
|
1032
|
+
font-style: italic;
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
// Contraction Level Selector - Simple colored buttons
|
|
1036
|
+
.contractionLevelSelector {
|
|
1037
|
+
display: flex;
|
|
1038
|
+
flex-direction: row;
|
|
1039
|
+
gap: layout.$spacing-02;
|
|
1040
|
+
padding: layout.$spacing-02;
|
|
1041
|
+
justify-content: flex-start;
|
|
1042
|
+
align-items: flex-start;
|
|
1043
|
+
background-color: colors.$gray-10;
|
|
1044
|
+
border-radius: layout.$spacing-02;
|
|
1045
|
+
border: 1px solid colors.$gray-30;
|
|
1046
|
+
margin: layout.$spacing-02 0;
|
|
1047
|
+
flex-wrap: wrap;
|
|
1048
|
+
max-width: fit-content;
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
.contractionLevelOption {
|
|
1052
|
+
display: flex;
|
|
1053
|
+
flex-direction: column;
|
|
1054
|
+
align-items: center;
|
|
1055
|
+
gap: layout.$spacing-01;
|
|
1056
|
+
cursor: pointer;
|
|
1057
|
+
transition: all 0.3s ease;
|
|
1058
|
+
text-align: center;
|
|
1059
|
+
padding: layout.$spacing-01;
|
|
1060
|
+
border-radius: layout.$spacing-02;
|
|
1061
|
+
|
|
1062
|
+
&:hover {
|
|
1063
|
+
transform: translateY(-2px);
|
|
1064
|
+
|
|
1065
|
+
.contractionLevelButton {
|
|
1066
|
+
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
&.contractionLevelSelected {
|
|
1071
|
+
background-color: colors.$blue-10;
|
|
1072
|
+
border: 2px solid colors.$blue-60;
|
|
1073
|
+
|
|
1074
|
+
.contractionLevelButton {
|
|
1075
|
+
border: 3px solid colors.$blue-60;
|
|
1076
|
+
box-shadow: 0 6px 20px rgba(13, 90, 170, 0.25);
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
.contractionLevelTitle {
|
|
1082
|
+
@include type.type-style('label-01');
|
|
1083
|
+
color: colors.$gray-100;
|
|
1084
|
+
font-weight: 600;
|
|
1085
|
+
margin-bottom: layout.$spacing-02;
|
|
1086
|
+
text-align: center;
|
|
1087
|
+
min-height: 16px;
|
|
1088
|
+
font-size: 12px;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
.contractionLevelButton {
|
|
1092
|
+
width: 70px;
|
|
1093
|
+
height: 70px;
|
|
1094
|
+
display: flex;
|
|
1095
|
+
align-items: center;
|
|
1096
|
+
justify-content: center;
|
|
1097
|
+
border: 2px solid colors.$gray-40;
|
|
1098
|
+
border-radius: layout.$spacing-02;
|
|
1099
|
+
font-size: 28px;
|
|
1100
|
+
font-weight: bold;
|
|
1101
|
+
transition: all 0.3s ease;
|
|
1102
|
+
cursor: pointer;
|
|
1103
|
+
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
|
|
1104
|
+
|
|
1105
|
+
// None - Light gray background
|
|
1106
|
+
&.none {
|
|
1107
|
+
background-color: colors.$gray-30;
|
|
1108
|
+
color: colors.$gray-100;
|
|
1109
|
+
border-color: colors.$gray-50;
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
// Mild - Light blue background
|
|
1113
|
+
&.mild {
|
|
1114
|
+
background-color: colors.$blue-30;
|
|
1115
|
+
color: colors.$blue-80;
|
|
1116
|
+
border-color: colors.$blue-50;
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
// Moderate - Orange background
|
|
1120
|
+
&.moderate {
|
|
1121
|
+
background-color: colors.$orange-40;
|
|
1122
|
+
color: colors.$orange-90;
|
|
1123
|
+
border-color: colors.$orange-60;
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
// Strong - Dark red background
|
|
1127
|
+
&.strong {
|
|
1128
|
+
background-color: colors.$red-60;
|
|
1129
|
+
color: colors.$white;
|
|
1130
|
+
border-color: colors.$red-70;
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
.errorMessage {
|
|
1135
|
+
@include type.type-style('label-01');
|
|
1136
|
+
color: colors.$red-60;
|
|
1137
|
+
margin-top: layout.$spacing-02;
|
|
1138
|
+
grid-column: 1 / -1;
|
|
1139
|
+
text-align: center;
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
// Contractions Form Container
|
|
1143
|
+
.contractionsFormContainer {
|
|
1144
|
+
padding: layout.$spacing-03 layout.$spacing-03;
|
|
1145
|
+
max-width: 700px;
|
|
1146
|
+
margin: 0 auto;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
.formMainSection {
|
|
1150
|
+
display: flex;
|
|
1151
|
+
flex-direction: row;
|
|
1152
|
+
gap: layout.$spacing-03;
|
|
1153
|
+
align-items: flex-start;
|
|
1154
|
+
justify-content: flex-start;
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
.formSectionLeft {
|
|
1158
|
+
flex: 0 0 auto;
|
|
1159
|
+
min-width: 380px;
|
|
1160
|
+
max-width: 420px;
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
.formSectionRight {
|
|
1164
|
+
flex: 0 0 auto;
|
|
1165
|
+
min-width: 200px;
|
|
1166
|
+
max-width: 220px;
|
|
1167
|
+
padding-top: layout.$spacing-02;
|
|
1168
|
+
display: flex;
|
|
1169
|
+
flex-direction: column;
|
|
1170
|
+
align-items: flex-start;
|
|
1171
|
+
margin-left: layout.$spacing-03;
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
.formSection {
|
|
1175
|
+
margin-bottom: layout.$spacing-02;
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
.sectionTitle {
|
|
1179
|
+
@include type.type-style('heading-04');
|
|
1180
|
+
color: colors.$gray-100;
|
|
1181
|
+
margin-bottom: layout.$spacing-01;
|
|
1182
|
+
text-align: left;
|
|
1183
|
+
font-weight: 600;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
.sectionDescription {
|
|
1187
|
+
@include type.type-style('body-compact-01');
|
|
1188
|
+
color: colors.$gray-70;
|
|
1189
|
+
text-align: left;
|
|
1190
|
+
margin-bottom: layout.$spacing-02;
|
|
1191
|
+
font-style: italic;
|
|
1192
|
+
line-height: 1.3;
|
|
1193
|
+
}
|
|
1194
|
+
|
|
1195
|
+
// Contraction Count Dropdown
|
|
1196
|
+
.contractionCountDropdown {
|
|
1197
|
+
width: 100%;
|
|
1198
|
+
max-width: 280px;
|
|
1199
|
+
|
|
1200
|
+
.cds--dropdown {
|
|
1201
|
+
background-color: colors.$white;
|
|
1202
|
+
border: 2px solid colors.$gray-30;
|
|
1203
|
+
border-radius: layout.$spacing-02;
|
|
1204
|
+
|
|
1205
|
+
&:hover {
|
|
1206
|
+
border-color: colors.$blue-40;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
&:focus {
|
|
1210
|
+
border-color: colors.$blue-60;
|
|
1211
|
+
box-shadow: 0 0 0 2px rgba(13, 90, 170, 0.2);
|
|
1212
|
+
}
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
.cds--list-box__field {
|
|
1216
|
+
height: 48px;
|
|
1217
|
+
padding: layout.$spacing-03 layout.$spacing-04;
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
.cds--list-box__menu-item {
|
|
1221
|
+
&:hover {
|
|
1222
|
+
background-color: colors.$blue-10;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
&[aria-selected='true'] {
|
|
1226
|
+
background-color: colors.$blue-20;
|
|
1227
|
+
color: colors.$blue-80;
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
// Detailed Cervical Contractions Grid - Partograph Format
|
|
1233
|
+
.contractionsContainer {
|
|
1234
|
+
display: flex;
|
|
1235
|
+
flex-direction: column;
|
|
1236
|
+
border: 2px solid colors.$gray-80;
|
|
1237
|
+
background-color: colors.$white;
|
|
1238
|
+
position: relative;
|
|
1239
|
+
min-height: 300px;
|
|
1240
|
+
overflow-x: auto;
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
.contractionsTimeHeaders {
|
|
1244
|
+
display: grid;
|
|
1245
|
+
grid-template-columns: 60px repeat(13, minmax(50px, 1fr));
|
|
1246
|
+
border-bottom: 2px solid colors.$gray-80;
|
|
1247
|
+
background-color: colors.$gray-10;
|
|
1248
|
+
min-height: 35px;
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
.contractionsTimeHeader {
|
|
1252
|
+
display: flex;
|
|
1253
|
+
align-items: center;
|
|
1254
|
+
justify-content: center;
|
|
1255
|
+
border-right: 1px solid colors.$gray-60;
|
|
1256
|
+
padding: layout.$spacing-02;
|
|
1257
|
+
font-weight: 600;
|
|
1258
|
+
@include type.type-style('label-01');
|
|
1259
|
+
|
|
1260
|
+
&:last-child {
|
|
1261
|
+
border-right: none;
|
|
1262
|
+
}
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
.contractionsTimeSubHeaders {
|
|
1266
|
+
display: grid;
|
|
1267
|
+
grid-template-columns: 60px repeat(13, minmax(50px, 1fr));
|
|
1268
|
+
border-bottom: 1px solid colors.$gray-60;
|
|
1269
|
+
background-color: colors.$gray-10;
|
|
1270
|
+
min-height: 30px;
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
.contractionsTimeSubHeader {
|
|
1274
|
+
display: flex;
|
|
1275
|
+
align-items: center;
|
|
1276
|
+
justify-content: center;
|
|
1277
|
+
border-right: 1px solid colors.$gray-40;
|
|
1278
|
+
padding: layout.$spacing-01;
|
|
1279
|
+
@include type.type-style('caption-01');
|
|
1280
|
+
color: colors.$gray-70;
|
|
1281
|
+
|
|
1282
|
+
&:last-child {
|
|
1283
|
+
border-right: none;
|
|
1284
|
+
}
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
.contractionsYAxisSpacer {
|
|
1288
|
+
border-right: 2px solid colors.$gray-80;
|
|
1289
|
+
background-color: colors.$gray-10;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
.contractionsGridRow {
|
|
1293
|
+
display: grid;
|
|
1294
|
+
grid-template-columns: 80px repeat(13, minmax(50px, 1fr));
|
|
1295
|
+
border-bottom: 1px solid colors.$gray-40;
|
|
1296
|
+
min-height: 45px;
|
|
1297
|
+
|
|
1298
|
+
&:last-child {
|
|
1299
|
+
border-bottom: 2px solid colors.$gray-80;
|
|
1300
|
+
}
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1303
|
+
.contractionsYAxisLabel {
|
|
1304
|
+
display: flex;
|
|
1305
|
+
align-items: center;
|
|
1306
|
+
justify-content: center;
|
|
1307
|
+
border-right: 2px solid colors.$gray-80;
|
|
1308
|
+
background-color: colors.$gray-10;
|
|
1309
|
+
font-weight: 600;
|
|
1310
|
+
@include type.type-style('label-01');
|
|
1311
|
+
min-width: 50px;
|
|
1312
|
+
padding: layout.$spacing-02;
|
|
1313
|
+
font-size: 16px;
|
|
1314
|
+
color: colors.$gray-100;
|
|
1315
|
+
position: relative;
|
|
1316
|
+
|
|
1317
|
+
// Ensure the numbers are clearly visible
|
|
1318
|
+
&::before {
|
|
1319
|
+
content: attr(data-label);
|
|
1320
|
+
position: absolute;
|
|
1321
|
+
left: 50%;
|
|
1322
|
+
top: 50%;
|
|
1323
|
+
transform: translate(-50%, -50%);
|
|
1324
|
+
font-weight: bold;
|
|
1325
|
+
z-index: 2;
|
|
1326
|
+
}
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
.contractionsGridCell {
|
|
1330
|
+
border-right: 1px solid colors.$gray-40;
|
|
1331
|
+
position: relative;
|
|
1332
|
+
display: flex;
|
|
1333
|
+
align-items: flex-end;
|
|
1334
|
+
justify-content: center;
|
|
1335
|
+
padding: 2px;
|
|
1336
|
+
background-color: colors.$white;
|
|
1337
|
+
transition: background-color 0.2s ease;
|
|
1338
|
+
|
|
1339
|
+
&:last-child {
|
|
1340
|
+
border-right: none;
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
&:hover {
|
|
1344
|
+
background-color: colors.$blue-10;
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
// Bar visualization styles
|
|
1348
|
+
&[data-contraction-level='0'] {
|
|
1349
|
+
background-color: colors.$white;
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
&[data-contraction-level='mild'] {
|
|
1353
|
+
background-image: radial-gradient(circle at 50% 50%, colors.$green-60 1px, transparent 1px);
|
|
1354
|
+
background-size: 6px 6px;
|
|
1355
|
+
background-color: colors.$green-10;
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
&[data-contraction-level='moderate'] {
|
|
1359
|
+
background: repeating-linear-gradient(
|
|
1360
|
+
45deg,
|
|
1361
|
+
colors.$yellow-10,
|
|
1362
|
+
colors.$yellow-10 3px,
|
|
1363
|
+
colors.$yellow-60 3px,
|
|
1364
|
+
colors.$yellow-60 4px
|
|
1365
|
+
);
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
&[data-contraction-level='strong'] {
|
|
1369
|
+
background-color: colors.$red-60;
|
|
1370
|
+
color: colors.$white;
|
|
1371
|
+
font-weight: bold;
|
|
1372
|
+
|
|
1373
|
+
&::after {
|
|
1374
|
+
content: '3';
|
|
1375
|
+
position: absolute;
|
|
1376
|
+
top: 50%;
|
|
1377
|
+
left: 50%;
|
|
1378
|
+
transform: translate(-50%, -50%);
|
|
1379
|
+
font-size: 18px;
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
// Contraction Bar Visual Indicators
|
|
1385
|
+
.contractionBar {
|
|
1386
|
+
width: 100%;
|
|
1387
|
+
height: 100%;
|
|
1388
|
+
position: absolute;
|
|
1389
|
+
top: 0;
|
|
1390
|
+
left: 0;
|
|
1391
|
+
border-radius: 2px;
|
|
1392
|
+
opacity: 0.8;
|
|
1393
|
+
transition: opacity 0.2s ease;
|
|
1394
|
+
|
|
1395
|
+
&:hover {
|
|
1396
|
+
opacity: 1;
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
.contractionBarNone {
|
|
1401
|
+
background-color: transparent;
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
.contractionBarMild {
|
|
1405
|
+
background-color: colors.$blue-40;
|
|
1406
|
+
border: 2px solid colors.$blue-60;
|
|
1407
|
+
box-shadow: inset 0 0 4px rgba(13, 90, 170, 0.3);
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
.contractionBarModerate {
|
|
1411
|
+
background-color: colors.$orange-50;
|
|
1412
|
+
border: 2px solid colors.$orange-70;
|
|
1413
|
+
box-shadow: inset 0 0 4px rgba(255, 131, 28, 0.3);
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
.contractionBarStrong {
|
|
1417
|
+
background-color: colors.$red-60;
|
|
1418
|
+
border: 2px solid colors.$red-80;
|
|
1419
|
+
box-shadow: inset 0 0 4px rgba(218, 30, 40, 0.3);
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
// Oxytocin Bar Visual Indicators
|
|
1423
|
+
.oxytocinBarLow {
|
|
1424
|
+
background-color: colors.$green-40;
|
|
1425
|
+
border: 2px solid colors.$green-60;
|
|
1426
|
+
box-shadow: inset 0 0 4px rgba(66, 190, 101, 0.3);
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
.oxytocinBarMedium {
|
|
1430
|
+
background-color: colors.$yellow-40;
|
|
1431
|
+
border: 2px solid colors.$yellow-60;
|
|
1432
|
+
box-shadow: inset 0 0 4px rgba(255, 194, 7, 0.3);
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
.oxytocinBarHigh {
|
|
1436
|
+
background-color: colors.$red-50;
|
|
1437
|
+
border: 2px solid colors.$red-70;
|
|
1438
|
+
box-shadow: inset 0 0 4px rgba(218, 30, 40, 0.3);
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
// Grid cell states for filled contractions
|
|
1442
|
+
.contractionsGridCell {
|
|
1443
|
+
// ...existing styles...
|
|
1444
|
+
|
|
1445
|
+
&.contractionBarMild {
|
|
1446
|
+
background-color: colors.$blue-10;
|
|
1447
|
+
border: 1px solid colors.$blue-30;
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1450
|
+
&.contractionBarModerate {
|
|
1451
|
+
background-color: colors.$orange-10;
|
|
1452
|
+
border: 1px solid colors.$orange-30;
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
&.contractionBarStrong {
|
|
1456
|
+
background-color: colors.$red-10;
|
|
1457
|
+
border: 1px solid colors.$red-30;
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1460
|
+
// Add visual feedback for filled cells
|
|
1461
|
+
&[data-filled='true'] {
|
|
1462
|
+
position: relative;
|
|
1463
|
+
|
|
1464
|
+
&::before {
|
|
1465
|
+
content: '';
|
|
1466
|
+
position: absolute;
|
|
1467
|
+
top: 2px;
|
|
1468
|
+
left: 2px;
|
|
1469
|
+
right: 2px;
|
|
1470
|
+
bottom: 2px;
|
|
1471
|
+
border-radius: 1px;
|
|
1472
|
+
background: inherit;
|
|
1473
|
+
z-index: 1;
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
.contractionsYAxisTitle {
|
|
1479
|
+
position: absolute;
|
|
1480
|
+
left: -45px;
|
|
1481
|
+
top: 50%;
|
|
1482
|
+
transform: translateY(-50%) rotate(-90deg);
|
|
1483
|
+
transform-origin: center;
|
|
1484
|
+
white-space: nowrap;
|
|
1485
|
+
@include type.type-style('label-01');
|
|
1486
|
+
font-weight: 600;
|
|
1487
|
+
color: colors.$gray-80;
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
// Grid container for cervical contractions
|
|
1491
|
+
.contractionsGrid {
|
|
1492
|
+
position: relative;
|
|
1493
|
+
margin: layout.$spacing-04 0;
|
|
1494
|
+
}
|
|
1495
|
+
|
|
1496
|
+
// Table view styles for cervical contractions
|
|
1497
|
+
.contractionsTable {
|
|
1498
|
+
background-color: colors.$white;
|
|
1499
|
+
border: 1px solid colors.$gray-30;
|
|
1500
|
+
border-radius: layout.$spacing-02;
|
|
1501
|
+
overflow: hidden;
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
.dataTable {
|
|
1505
|
+
width: 100%;
|
|
1506
|
+
border-collapse: collapse;
|
|
1507
|
+
|
|
1508
|
+
th {
|
|
1509
|
+
background-color: colors.$gray-10;
|
|
1510
|
+
padding: layout.$spacing-03;
|
|
1511
|
+
text-align: left;
|
|
1512
|
+
border-bottom: 2px solid colors.$gray-40;
|
|
1513
|
+
@include type.type-style('label-01');
|
|
1514
|
+
font-weight: 600;
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
td {
|
|
1518
|
+
padding: layout.$spacing-03;
|
|
1519
|
+
border-bottom: 1px solid colors.$gray-20;
|
|
1520
|
+
@include type.type-style('body-compact-01');
|
|
1521
|
+
}
|
|
1522
|
+
|
|
1523
|
+
tbody tr:hover {
|
|
1524
|
+
background-color: colors.$gray-10;
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1528
|
+
.contractionLevelBadge {
|
|
1529
|
+
display: inline-flex;
|
|
1530
|
+
align-items: center;
|
|
1531
|
+
padding: layout.$spacing-01 layout.$spacing-02;
|
|
1532
|
+
border-radius: layout.$spacing-01;
|
|
1533
|
+
font-size: 12px;
|
|
1534
|
+
font-weight: 600;
|
|
1535
|
+
text-transform: uppercase;
|
|
1536
|
+
|
|
1537
|
+
&.none {
|
|
1538
|
+
background-color: colors.$gray-20;
|
|
1539
|
+
color: colors.$gray-80;
|
|
1540
|
+
}
|
|
1541
|
+
|
|
1542
|
+
&.mild {
|
|
1543
|
+
background-color: colors.$blue-20;
|
|
1544
|
+
color: colors.$blue-80;
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1547
|
+
&.moderate {
|
|
1548
|
+
background-color: colors.$orange-20;
|
|
1549
|
+
color: colors.$orange-80;
|
|
1550
|
+
}
|
|
1551
|
+
|
|
1552
|
+
&.strong {
|
|
1553
|
+
background-color: colors.$red-20;
|
|
1554
|
+
color: colors.$red-80;
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1558
|
+
// ===== DRUGS AND IV FLUIDS GRAPH STYLES =====
|
|
1559
|
+
.drugsIVFluidsGraph {
|
|
1560
|
+
width: 100%;
|
|
1561
|
+
margin: layout.$spacing-05 0;
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
.drugsCell {
|
|
1565
|
+
position: relative;
|
|
1566
|
+
background-color: colors.$white;
|
|
1567
|
+
border: 1px solid colors.$gray-30;
|
|
1568
|
+
padding: layout.$spacing-02;
|
|
1569
|
+
min-height: 60px;
|
|
1570
|
+
display: flex;
|
|
1571
|
+
align-items: center;
|
|
1572
|
+
justify-content: center;
|
|
1573
|
+
text-align: center;
|
|
1574
|
+
font-size: 12px;
|
|
1575
|
+
line-height: 1.2;
|
|
1576
|
+
|
|
1577
|
+
&:hover {
|
|
1578
|
+
background-color: colors.$gray-10;
|
|
1579
|
+
}
|
|
1580
|
+
}
|
|
1581
|
+
|
|
1582
|
+
.drugInfo {
|
|
1583
|
+
display: flex;
|
|
1584
|
+
flex-direction: column;
|
|
1585
|
+
gap: layout.$spacing-01;
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
.drugName {
|
|
1589
|
+
font-weight: 600;
|
|
1590
|
+
color: colors.$gray-100;
|
|
1591
|
+
font-size: 11px;
|
|
1592
|
+
line-height: 1.2;
|
|
1593
|
+
}
|
|
1594
|
+
|
|
1595
|
+
.drugDosage {
|
|
1596
|
+
font-weight: 400;
|
|
1597
|
+
color: colors.$gray-70;
|
|
1598
|
+
font-size: 10px;
|
|
1599
|
+
line-height: 1.1;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
// Pulse and BP Graph Styling
|
|
1603
|
+
.pulseBPGraph {
|
|
1604
|
+
width: 100%;
|
|
1605
|
+
margin: layout.$spacing-05 0;
|
|
1606
|
+
|
|
1607
|
+
.chartContainer {
|
|
1608
|
+
background-color: colors.$white;
|
|
1609
|
+
padding: layout.$spacing-04;
|
|
1610
|
+
border-radius: layout.$spacing-02;
|
|
1611
|
+
border: 2px solid colors.$gray-40;
|
|
1612
|
+
margin-bottom: layout.$spacing-04;
|
|
1613
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
1614
|
+
min-height: 400px;
|
|
1615
|
+
|
|
1616
|
+
// Medical chart styling
|
|
1617
|
+
:global(.cds--chart-wrapper) {
|
|
1618
|
+
border: 1px solid colors.$gray-30;
|
|
1619
|
+
border-radius: layout.$spacing-02;
|
|
1620
|
+
overflow: hidden;
|
|
1621
|
+
|
|
1622
|
+
// Enhanced grid lines for medical chart appearance
|
|
1623
|
+
:global(.cds--chart) {
|
|
1624
|
+
background-color: colors.$white;
|
|
1625
|
+
|
|
1626
|
+
// Grid styling for medical charts
|
|
1627
|
+
:global(.cds--chart-grid-line) {
|
|
1628
|
+
stroke: colors.$gray-30;
|
|
1629
|
+
stroke-width: 1;
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
:global(.cds--chart-axis) {
|
|
1633
|
+
stroke: colors.$gray-50;
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
:global(.cds--chart-axis text) {
|
|
1637
|
+
fill: colors.$gray-90;
|
|
1638
|
+
font-size: 12px;
|
|
1639
|
+
}
|
|
1640
|
+
}
|
|
1641
|
+
}
|
|
1642
|
+
|
|
1643
|
+
.emptyChartMessage {
|
|
1644
|
+
display: flex;
|
|
1645
|
+
align-items: center;
|
|
1646
|
+
justify-content: center;
|
|
1647
|
+
height: 350px;
|
|
1648
|
+
color: colors.$gray-60;
|
|
1649
|
+
font-style: italic;
|
|
1650
|
+
}
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
.timeLabelsContainer {
|
|
1654
|
+
margin-top: layout.$spacing-03;
|
|
1655
|
+
}
|
|
1656
|
+
|
|
1657
|
+
.timeLabelsGrid {
|
|
1658
|
+
display: grid;
|
|
1659
|
+
grid-template-columns: 80px repeat(10, 1fr);
|
|
1660
|
+
gap: 1px;
|
|
1661
|
+
background-color: colors.$gray-30;
|
|
1662
|
+
border: 1px solid colors.$gray-30;
|
|
1663
|
+
border-radius: layout.$spacing-02;
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
.hoursRow,
|
|
1667
|
+
.timeRow {
|
|
1668
|
+
display: contents;
|
|
1669
|
+
}
|
|
1670
|
+
|
|
1671
|
+
.timeLabel {
|
|
1672
|
+
background-color: colors.$gray-10;
|
|
1673
|
+
padding: layout.$spacing-02;
|
|
1674
|
+
font-weight: 600;
|
|
1675
|
+
font-size: 12px;
|
|
1676
|
+
display: flex;
|
|
1677
|
+
align-items: center;
|
|
1678
|
+
justify-content: center;
|
|
1679
|
+
border-right: 1px solid colors.$gray-30;
|
|
1680
|
+
}
|
|
1681
|
+
|
|
1682
|
+
.timeCell {
|
|
1683
|
+
background-color: colors.$white;
|
|
1684
|
+
padding: layout.$spacing-02;
|
|
1685
|
+
font-size: 11px;
|
|
1686
|
+
text-align: center;
|
|
1687
|
+
display: flex;
|
|
1688
|
+
align-items: center;
|
|
1689
|
+
justify-content: center;
|
|
1690
|
+
min-height: 32px;
|
|
1691
|
+
border-right: 1px solid colors.$gray-20;
|
|
1692
|
+
|
|
1693
|
+
&:last-child {
|
|
1694
|
+
border-right: none;
|
|
1695
|
+
}
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
.pulseBPCell {
|
|
1700
|
+
position: relative;
|
|
1701
|
+
background-color: colors.$white;
|
|
1702
|
+
border: 1px solid colors.$gray-30;
|
|
1703
|
+
padding: layout.$spacing-02;
|
|
1704
|
+
min-height: 60px;
|
|
1705
|
+
display: flex;
|
|
1706
|
+
align-items: center;
|
|
1707
|
+
justify-content: center;
|
|
1708
|
+
text-align: center;
|
|
1709
|
+
font-size: 12px;
|
|
1710
|
+
line-height: 1.2;
|
|
1711
|
+
font-weight: 600;
|
|
1712
|
+
|
|
1713
|
+
&:hover {
|
|
1714
|
+
background-color: colors.$gray-10;
|
|
1715
|
+
}
|
|
1716
|
+
}
|