@kenyaemr/esm-express-workflow-app 5.4.4-pre.43 → 5.4.4-pre.430

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 (627) hide show
  1. package/.turbo/turbo-build.log +14 -7
  2. package/dist/1084.js +1 -0
  3. package/dist/1084.js.map +1 -0
  4. package/dist/1278.js +1 -0
  5. package/dist/1278.js.map +1 -0
  6. package/dist/1324.js +1 -0
  7. package/dist/1324.js.map +1 -0
  8. package/dist/1375.js +66 -0
  9. package/dist/1375.js.map +1 -0
  10. package/dist/1402.js +1 -0
  11. package/dist/1402.js.map +1 -0
  12. package/dist/1442.js +1 -0
  13. package/dist/1442.js.map +1 -0
  14. package/dist/1520.js +1 -0
  15. package/dist/1520.js.map +1 -0
  16. package/dist/1559.js +1 -0
  17. package/dist/1559.js.map +1 -0
  18. package/dist/1593.js +1 -0
  19. package/dist/1593.js.map +1 -0
  20. package/dist/162.js +1 -0
  21. package/dist/162.js.map +1 -0
  22. package/dist/1620.js +1 -0
  23. package/dist/1620.js.map +1 -0
  24. package/dist/1658.js +1 -0
  25. package/dist/1658.js.map +1 -0
  26. package/dist/1659.js +1 -0
  27. package/dist/1659.js.map +1 -0
  28. package/dist/1789.js +1 -0
  29. package/dist/1789.js.map +1 -0
  30. package/dist/1827.js +1 -0
  31. package/dist/1827.js.map +1 -0
  32. package/dist/1831.js +1 -0
  33. package/dist/1831.js.map +1 -0
  34. package/dist/1854.js +1 -0
  35. package/dist/1854.js.map +1 -0
  36. package/dist/196.js +1 -0
  37. package/dist/196.js.map +1 -0
  38. package/dist/2127.js +1 -0
  39. package/dist/2127.js.map +1 -0
  40. package/dist/2152.js +1 -0
  41. package/dist/2152.js.map +1 -0
  42. package/dist/2202.js +1 -0
  43. package/dist/2202.js.map +1 -0
  44. package/dist/221.js +1 -0
  45. package/dist/221.js.map +1 -0
  46. package/dist/2269.js +1 -0
  47. package/dist/2269.js.map +1 -0
  48. package/dist/2293.js +1 -0
  49. package/dist/2293.js.map +1 -0
  50. package/dist/234.js +1 -0
  51. package/dist/234.js.map +1 -0
  52. package/dist/2412.js +1 -1
  53. package/dist/2412.js.map +1 -1
  54. package/dist/2466.js +1 -0
  55. package/dist/2466.js.map +1 -0
  56. package/dist/2534.js +1 -1
  57. package/dist/2534.js.map +1 -1
  58. package/dist/2553.js +1 -0
  59. package/dist/2553.js.map +1 -0
  60. package/dist/2556.js +1 -0
  61. package/dist/2556.js.map +1 -0
  62. package/dist/2648.js +1 -0
  63. package/dist/2648.js.map +1 -0
  64. package/dist/274.js +1 -0
  65. package/dist/274.js.map +1 -0
  66. package/dist/2788.js +1 -0
  67. package/dist/2788.js.map +1 -0
  68. package/dist/2842.js +1 -0
  69. package/dist/2842.js.map +1 -0
  70. package/dist/2874.js +1 -0
  71. package/dist/2874.js.map +1 -0
  72. package/dist/2916.js +1 -0
  73. package/dist/2916.js.map +1 -0
  74. package/dist/2947.js +1 -1
  75. package/dist/2947.js.map +1 -1
  76. package/dist/3012.js +1 -0
  77. package/dist/3012.js.map +1 -0
  78. package/dist/3087.js +1 -0
  79. package/dist/3087.js.map +1 -0
  80. package/dist/3335.js +1 -0
  81. package/dist/3335.js.map +1 -0
  82. package/dist/3378.js +1 -0
  83. package/dist/3378.js.map +1 -0
  84. package/dist/3504.js +1 -0
  85. package/dist/3504.js.map +1 -0
  86. package/dist/3509.js +1 -1
  87. package/dist/3509.js.map +1 -1
  88. package/dist/356.js +1 -0
  89. package/dist/356.js.map +1 -0
  90. package/dist/3690.js +1 -0
  91. package/dist/3690.js.map +1 -0
  92. package/dist/371.js +1 -0
  93. package/dist/371.js.map +1 -0
  94. package/dist/3747.js +1 -0
  95. package/dist/3747.js.map +1 -0
  96. package/dist/3819.js +1 -0
  97. package/dist/3819.js.map +1 -0
  98. package/dist/3820.js +1 -0
  99. package/dist/3820.js.map +1 -0
  100. package/dist/3910.js +1 -0
  101. package/dist/3910.js.map +1 -0
  102. package/dist/393.js +6 -0
  103. package/dist/393.js.map +1 -0
  104. package/dist/3933.js +1 -0
  105. package/dist/3933.js.map +1 -0
  106. package/dist/3989.js +1 -0
  107. package/dist/3989.js.map +1 -0
  108. package/dist/3995.js +1 -0
  109. package/dist/3995.js.map +1 -0
  110. package/dist/4032.js +1 -0
  111. package/dist/4032.js.map +1 -0
  112. package/dist/4145.js +1 -1
  113. package/dist/4145.js.map +1 -1
  114. package/dist/4178.js +1 -1
  115. package/dist/4178.js.map +1 -1
  116. package/dist/4191.js +1 -0
  117. package/dist/4191.js.map +1 -0
  118. package/dist/4212.js +1 -0
  119. package/dist/4212.js.map +1 -0
  120. package/dist/4215.js +1 -0
  121. package/dist/4215.js.map +1 -0
  122. package/dist/4523.js +1 -0
  123. package/dist/4523.js.map +1 -0
  124. package/dist/4588.js +1 -0
  125. package/dist/4588.js.map +1 -0
  126. package/dist/4617.js +1 -0
  127. package/dist/4617.js.map +1 -0
  128. package/dist/466.js +1 -1
  129. package/dist/466.js.map +1 -1
  130. package/dist/4688.js +1 -0
  131. package/dist/{7288.js.map → 4688.js.map} +1 -1
  132. package/dist/470.js +1 -0
  133. package/dist/470.js.map +1 -0
  134. package/dist/4759.js +1 -0
  135. package/dist/4759.js.map +1 -0
  136. package/dist/4818.js +1 -1
  137. package/dist/4818.js.map +1 -1
  138. package/dist/5086.js +1 -1
  139. package/dist/5086.js.map +1 -1
  140. package/dist/5093.js +1 -0
  141. package/dist/5093.js.map +1 -0
  142. package/dist/5097.js +1 -0
  143. package/dist/5097.js.map +1 -0
  144. package/dist/510.js +1 -0
  145. package/dist/510.js.map +1 -0
  146. package/dist/5117.js +1 -0
  147. package/dist/5117.js.map +1 -0
  148. package/dist/5279.js +1 -0
  149. package/dist/5279.js.map +1 -0
  150. package/dist/5434.js +1 -0
  151. package/dist/5434.js.map +1 -0
  152. package/dist/5514.js +1 -0
  153. package/dist/5514.js.map +1 -0
  154. package/dist/5568.js +1 -0
  155. package/dist/5568.js.map +1 -0
  156. package/dist/5576.js +1 -1
  157. package/dist/5576.js.map +1 -1
  158. package/dist/5630.js +1 -0
  159. package/dist/5630.js.map +1 -0
  160. package/dist/5676.js +1 -1
  161. package/dist/5676.js.map +1 -1
  162. package/dist/5695.js +1 -0
  163. package/dist/5695.js.map +1 -0
  164. package/dist/5697.js +1 -1
  165. package/dist/5697.js.map +1 -1
  166. package/dist/5728.js +1 -0
  167. package/dist/5728.js.map +1 -0
  168. package/dist/5809.js +1 -1
  169. package/dist/5809.js.map +1 -1
  170. package/dist/585.js +1 -0
  171. package/dist/585.js.map +1 -0
  172. package/dist/5887.js +1 -0
  173. package/dist/5887.js.map +1 -0
  174. package/dist/5958.js +1 -0
  175. package/dist/5958.js.map +1 -0
  176. package/dist/5964.js +1 -0
  177. package/dist/5964.js.map +1 -0
  178. package/dist/6008.js +1 -0
  179. package/dist/602.js +1 -0
  180. package/dist/602.js.map +1 -0
  181. package/dist/6020.js +1 -0
  182. package/dist/6020.js.map +1 -0
  183. package/dist/6161.js +1 -0
  184. package/dist/6161.js.map +1 -0
  185. package/dist/6273.js +1 -0
  186. package/dist/6273.js.map +1 -0
  187. package/dist/6337.js +1 -0
  188. package/dist/6337.js.map +1 -0
  189. package/dist/6427.js +1 -1
  190. package/dist/6427.js.map +1 -1
  191. package/dist/6429.js +1 -0
  192. package/dist/6429.js.map +1 -0
  193. package/dist/6478.js +7 -0
  194. package/dist/6478.js.map +1 -0
  195. package/dist/6508.js +1 -0
  196. package/dist/6508.js.map +1 -0
  197. package/dist/6634.js +1 -0
  198. package/dist/6634.js.map +1 -0
  199. package/dist/6767.js +1 -0
  200. package/dist/6767.js.map +1 -0
  201. package/dist/6783.js +1 -0
  202. package/dist/6783.js.map +1 -0
  203. package/dist/6868.js +1 -1
  204. package/dist/6868.js.map +1 -1
  205. package/dist/688.js +1 -0
  206. package/dist/688.js.map +1 -0
  207. package/dist/689.js +1 -1
  208. package/dist/689.js.map +1 -1
  209. package/dist/694.js +1 -0
  210. package/dist/694.js.map +1 -0
  211. package/dist/6987.js +1 -0
  212. package/dist/6987.js.map +1 -0
  213. package/dist/7061.js +1 -0
  214. package/dist/7061.js.map +1 -0
  215. package/dist/7078.js +1 -0
  216. package/dist/7078.js.map +1 -0
  217. package/dist/710.js +1 -0
  218. package/dist/710.js.map +1 -0
  219. package/dist/7128.js +1 -0
  220. package/dist/7128.js.map +1 -0
  221. package/dist/7209.js +1 -0
  222. package/dist/7209.js.map +1 -0
  223. package/dist/7424.js +1 -0
  224. package/dist/7424.js.map +1 -0
  225. package/dist/770.js +1 -0
  226. package/dist/770.js.map +1 -0
  227. package/dist/7707.js +1 -0
  228. package/dist/7707.js.map +1 -0
  229. package/dist/7784.js +1 -0
  230. package/dist/7784.js.map +1 -0
  231. package/dist/781.js +1 -1
  232. package/dist/781.js.map +1 -1
  233. package/dist/7824.js +1 -0
  234. package/dist/7824.js.map +1 -0
  235. package/dist/7832.js +1 -0
  236. package/dist/7832.js.map +1 -0
  237. package/dist/8178.js +1 -0
  238. package/dist/8178.js.map +1 -0
  239. package/dist/820.js +1 -0
  240. package/dist/820.js.map +1 -0
  241. package/dist/8224.js +1 -0
  242. package/dist/8224.js.map +1 -0
  243. package/dist/8225.js +1 -0
  244. package/dist/8225.js.map +1 -0
  245. package/dist/8240.js +1 -1
  246. package/dist/8240.js.map +1 -1
  247. package/dist/8258.js +1 -0
  248. package/dist/8258.js.map +1 -0
  249. package/dist/8702.js +1 -0
  250. package/dist/8702.js.map +1 -0
  251. package/dist/8725.js +1 -0
  252. package/dist/8725.js.map +1 -0
  253. package/dist/8762.js +1 -0
  254. package/dist/8762.js.map +1 -0
  255. package/dist/8763.js +1 -0
  256. package/dist/8763.js.map +1 -0
  257. package/dist/8815.js +1 -0
  258. package/dist/8815.js.map +1 -0
  259. package/dist/8882.js +1 -0
  260. package/dist/8882.js.map +1 -0
  261. package/dist/8924.js +1 -1
  262. package/dist/8924.js.map +1 -1
  263. package/dist/8937.js +1 -0
  264. package/dist/8937.js.map +1 -0
  265. package/dist/9.js +1 -1
  266. package/dist/9.js.map +1 -1
  267. package/dist/9061.js +1 -0
  268. package/dist/9061.js.map +1 -0
  269. package/dist/9087.js +1 -0
  270. package/dist/9087.js.map +1 -0
  271. package/dist/9301.js +1 -0
  272. package/dist/9301.js.map +1 -0
  273. package/dist/9324.js +1 -0
  274. package/dist/9324.js.map +1 -0
  275. package/dist/9497.js +1 -0
  276. package/dist/9497.js.map +1 -0
  277. package/dist/9520.js +1 -1
  278. package/dist/9520.js.map +1 -1
  279. package/dist/9526.js +1 -0
  280. package/dist/9526.js.map +1 -0
  281. package/dist/9621.js +1 -0
  282. package/dist/9621.js.map +1 -0
  283. package/dist/9676.js +17 -0
  284. package/dist/9676.js.map +1 -0
  285. package/dist/977.js +1 -0
  286. package/dist/977.js.map +1 -0
  287. package/dist/9771.js +1 -0
  288. package/dist/9771.js.map +1 -0
  289. package/dist/9806.js +1 -0
  290. package/dist/9806.js.map +1 -0
  291. package/dist/989.js +1 -0
  292. package/dist/989.js.map +1 -0
  293. package/dist/kenyaemr-esm-express-workflow-app.js +6 -5
  294. package/dist/kenyaemr-esm-express-workflow-app.js.buildmanifest.json +1407 -809
  295. package/dist/kenyaemr-esm-express-workflow-app.js.map +1 -1
  296. package/dist/main.js +22 -5
  297. package/dist/main.js.map +1 -1
  298. package/dist/routes.json +1 -1
  299. package/package.json +4 -6
  300. package/src/components/admissions/admissions-dashboard.component.tsx +2 -2
  301. package/src/components/anaesthetic/anaesthetic-dashboard.meta.ts +8 -0
  302. package/src/components/anaesthetic/anaesthetic-data-form.component.tsx +442 -0
  303. package/src/components/anaesthetic/anaesthetic-data-form.scss +278 -0
  304. package/src/components/anaesthetic/anaesthetic-link.component.tsx +21 -0
  305. package/src/components/anaesthetic/anaesthetic.component.tsx +618 -0
  306. package/src/components/anaesthetic/anaesthetic.resource.ts +1503 -0
  307. package/src/components/anaesthetic/anaesthetic.scss +1885 -0
  308. package/src/components/anaesthetic/forms/anaesthetic-form.component.tsx +304 -0
  309. package/src/components/anaesthetic/forms/anaesthetic-record-form.component.tsx +707 -0
  310. package/src/components/anaesthetic/forms/icd11-diagnosis-search.component.tsx +178 -0
  311. package/src/components/anaesthetic/forms/icd11-diagnosis-search.scss +126 -0
  312. package/src/components/anaesthetic/forms/index.ts +2 -0
  313. package/src/components/anaesthetic/forms/interoperative-record-drug-given-form.component.tsx +231 -0
  314. package/src/components/anaesthetic/forms/post-operative-summary-form.component.tsx +171 -0
  315. package/src/components/anaesthetic/forms/time-picker-dropdown.component.tsx +202 -0
  316. package/src/components/anaesthetic/forms/time-picker-dropdown.scss +107 -0
  317. package/src/components/anaesthetic/forms/time-picker-with-clock.component.tsx +174 -0
  318. package/src/components/anaesthetic/forms/time-picker-with-clock.scss +178 -0
  319. package/src/components/anaesthetic/forms/useAnaestheticData.ts +16 -0
  320. package/src/components/anaesthetic/graphs/anaesthetic-graph-wrapper.component.tsx +266 -0
  321. package/src/components/anaesthetic/graphs/anaesthetic-graph.component.tsx +185 -0
  322. package/src/components/anaesthetic/graphs/index.ts +2 -0
  323. package/src/components/anaesthetic/graphs/interoperative-record-drug-given-graph-wrapper.component.tsx +197 -0
  324. package/src/components/anaesthetic/graphs/interoperative-record-drug-given-graph.component.tsx +93 -0
  325. package/src/components/anaesthetic/resources/anaesthetic-amniotic-fluid.resource.ts +277 -0
  326. package/src/components/anaesthetic/resources/anaesthetic-form.resource.ts +716 -0
  327. package/src/components/anaesthetic/resources/anaesthetic.resource.ts +378 -0
  328. package/src/components/anaesthetic/types/index.ts +1349 -0
  329. package/src/components/consultation/clinical-encounter/clinical-encounter.component.tsx +4 -20
  330. package/src/components/consultation/clinical-encounter/encounter-details.component.tsx +9 -9
  331. package/src/components/consultation/clinical-encounter/encounter-details.test.tsx +19 -18
  332. package/src/components/consultation/consultation.utils.tsx +1 -1
  333. package/src/components/consultation/dashboard.component.tsx +0 -2
  334. package/src/components/consultation/index.ts +1 -1
  335. package/src/components/consultation/tabs/index.ts +67 -0
  336. package/src/components/facility-dashboard/components/header/home-header.component.tsx +8 -13
  337. package/src/components/laboratory/index.ts +11 -0
  338. package/src/components/laboratory/lab-table.component.tsx +46 -12
  339. package/src/components/laboratory/laboratory-tabs.component.tsx +3 -17
  340. package/src/components/mch/dashboard.component.tsx +0 -2
  341. package/src/components/mch/mch.component.tsx +1 -3
  342. package/src/components/pharmacy/index.ts +1 -1
  343. package/src/components/pharmacy/orders/pharmacy-orders.component.tsx +44 -6
  344. package/src/components/pharmacy/orders/pharmacy-orders.test.tsx +8 -7
  345. package/src/components/pharmacy/pharmacy-tabs.component.tsx +4 -20
  346. package/src/components/pharmacy/tabs/index.ts +21 -0
  347. package/src/components/preauth/index.ts +22 -0
  348. package/src/components/preauth/preauth-dashboard.component.tsx +20 -0
  349. package/src/components/procedures/index.ts +16 -0
  350. package/src/components/procedures/procedure-queues/index.ts +13 -0
  351. package/src/components/procedures/procedure-queues/procedure-form-extras.component.tsx +33 -0
  352. package/src/components/procedures/procedure-queues/procedure-form-extras.scss +5 -0
  353. package/src/components/procedures/procedure-queues/procedure-queues.component.tsx +35 -0
  354. package/src/components/procedures/procedure-queues/procedure-queues.resources.ts +37 -0
  355. package/src/components/procedures/procedure-queues/procedure-room-tabs.component.tsx +80 -0
  356. package/src/components/procedures/procedure-queues/procedure-rooms.scss +13 -0
  357. package/src/components/procedures/procedure-queues/queue-procedure-tabs.component.tsx +34 -0
  358. package/src/components/procedures/procedure-queues/summary-cards.component.tsx +81 -0
  359. package/src/components/procedures/procedure-queues/summary-cards.scss +35 -0
  360. package/src/components/procedures/procedures-table.component.tsx +77 -19
  361. package/src/components/procedures/procedures-tabs.component.test.tsx +57 -0
  362. package/src/components/procedures/procedures-tabs.component.tsx +3 -18
  363. package/src/components/radiology-and-imaging/index.ts +11 -0
  364. package/src/components/radiology-and-imaging/radiology-and-imaging-table.component.tsx +73 -21
  365. package/src/components/radiology-and-imaging/radiology-and-imaging.component.tsx +3 -19
  366. package/src/components/registration/card/HIE-card/hie-card.component.tsx +32 -44
  367. package/src/components/registration/card/Local-card/local-card.component.tsx +22 -24
  368. package/src/components/registration/checkin-form-extra/checkin-form-extra.extension.tsx +8 -2
  369. package/src/components/registration/checkin-form-extra/queue-fields.component.tsx +18 -19
  370. package/src/components/registration/dependants/dependants.component.tsx +37 -60
  371. package/src/components/registration/dependants/dependants.resource.ts +75 -46
  372. package/src/components/registration/end-visit-modal/end-visit-dialog.modal.tsx +320 -0
  373. package/src/components/registration/end-visit-modal/end-visit-dialog.scss +12 -0
  374. package/src/components/registration/end-visit-modal/end-visit.resource.tsx +59 -0
  375. package/src/components/registration/end-visit-modal/sha-end-visit.resource.ts +285 -0
  376. package/src/components/registration/search-bar/search-bar.resource.ts +32 -93
  377. package/src/components/registration/start-visit-form/hooks/useDefaultFacilityLocation.tsx +15 -0
  378. package/src/components/registration/start-visit-form/hooks/useDefaultVisitLocation.tsx +24 -0
  379. package/src/components/registration/start-visit-form/hooks/useOfflineVisitType.tsx +18 -0
  380. package/src/components/registration/start-visit-form/hooks/useRecommendedVisitTypes.tsx +36 -0
  381. package/src/components/registration/start-visit-form/hooks/useVisitAttributeType.tsx +102 -0
  382. package/src/components/registration/start-visit-form/overflow-menu-extension/custom-end-active-visit.extension.tsx +44 -0
  383. package/src/components/registration/start-visit-form/overflow-menu-extension/overflow-menu-item.extension.tsx +67 -0
  384. package/src/components/registration/start-visit-form/overflow-menu-extension/overflow-menu-item.scss +3 -0
  385. package/src/components/registration/start-visit-form/start-visit-workspace/base-visit-type.component.tsx +126 -0
  386. package/src/components/registration/start-visit-form/start-visit-workspace/base-visit-type.scss +75 -0
  387. package/src/components/registration/start-visit-form/start-visit-workspace/exported-visit-form.workspace.tsx +778 -0
  388. package/src/components/registration/start-visit-form/start-visit-workspace/location-selector.component.tsx +86 -0
  389. package/src/components/registration/start-visit-form/start-visit-workspace/recommended-visit-type.component.tsx +32 -0
  390. package/src/components/registration/start-visit-form/start-visit-workspace/visit-attribute-type.component.tsx +257 -0
  391. package/src/components/registration/start-visit-form/start-visit-workspace/visit-attribute-type.scss +5 -0
  392. package/src/components/registration/start-visit-form/start-visit-workspace/visit-date-time.component.tsx +193 -0
  393. package/src/components/registration/start-visit-form/start-visit-workspace/visit-form.resource.ts +390 -0
  394. package/src/components/registration/start-visit-form/start-visit-workspace/visit-form.scss +144 -0
  395. package/src/components/registration/start-visit-form/visit-form-workspace/visit-form.workspace.tsx +48 -0
  396. package/src/components/registration/type/index.ts +101 -0
  397. package/src/components/reports/index.ts +1 -0
  398. package/src/components/triage/dashboard.component.tsx +0 -2
  399. package/src/config-schema.ts +476 -0
  400. package/src/hooks/useOrders.tsx +2 -2
  401. package/src/hooks/useServiceQueues.tsx +1 -1
  402. package/src/index.ts +81 -15
  403. package/src/routes.json +298 -32
  404. package/src/shared/dashboard-link/dashboard-link.component.tsx +11 -8
  405. package/src/shared/orders/OrderTable.scss +7 -0
  406. package/src/shared/orders/OrderTable.tsx +68 -8
  407. package/src/shared/orders/print-order/print-order.component.tsx +158 -0
  408. package/src/shared/orders/print-order/print-order.scss +225 -0
  409. package/src/shared/orders/print-prescription/print-prescription.component.tsx +65 -0
  410. package/src/shared/orders/print-prescription/print-prescription.resource.ts +45 -0
  411. package/src/shared/orders/print-prescription/print-prescription.scss +25 -0
  412. package/src/shared/otp-verification/index.ts +112 -29
  413. package/src/shared/otp-verification/otp-verification.modal.tsx +1110 -122
  414. package/src/shared/otp-verification/otp-verification.scss +374 -0
  415. package/src/shared/patient-chart/patient-summary-dashboard/patient-summary-dashboard.component.tsx +5 -84
  416. package/src/shared/pin-put/pinput.component.test.tsx +7 -6
  417. package/src/shared/tabs/create-tab-extension.tsx +33 -0
  418. package/src/shared/tabs/extension-tabs.component.tsx +51 -33
  419. package/src/shared/utils/index.ts +140 -5
  420. package/src/types/index.ts +12 -0
  421. package/translations/am.json +443 -131
  422. package/translations/en.json +327 -15
  423. package/translations/fr.json +372 -63
  424. package/translations/sw.json +347 -35
  425. package/tsconfig.json +1 -0
  426. package/dist/1049.js +0 -1
  427. package/dist/1049.js.map +0 -1
  428. package/dist/1072.js +0 -1
  429. package/dist/1072.js.map +0 -1
  430. package/dist/1091.js +0 -1
  431. package/dist/1091.js.map +0 -1
  432. package/dist/1172.js +0 -1
  433. package/dist/1172.js.map +0 -1
  434. package/dist/132.js +0 -1
  435. package/dist/132.js.map +0 -1
  436. package/dist/1354.js +0 -1
  437. package/dist/1354.js.map +0 -1
  438. package/dist/1704.js +0 -1
  439. package/dist/1704.js.map +0 -1
  440. package/dist/1729.js +0 -17
  441. package/dist/1729.js.map +0 -1
  442. package/dist/1757.js +0 -1
  443. package/dist/1757.js.map +0 -1
  444. package/dist/1761.js +0 -1
  445. package/dist/1761.js.map +0 -1
  446. package/dist/1809.js +0 -7
  447. package/dist/1809.js.map +0 -1
  448. package/dist/1842.js +0 -1
  449. package/dist/1874.js +0 -1
  450. package/dist/1874.js.map +0 -1
  451. package/dist/1962.js +0 -1
  452. package/dist/1962.js.map +0 -1
  453. package/dist/2007.js +0 -1
  454. package/dist/2007.js.map +0 -1
  455. package/dist/2024.js +0 -1
  456. package/dist/2024.js.map +0 -1
  457. package/dist/2045.js +0 -1
  458. package/dist/2045.js.map +0 -1
  459. package/dist/2163.js +0 -1
  460. package/dist/2163.js.map +0 -1
  461. package/dist/2191.js +0 -1
  462. package/dist/2191.js.map +0 -1
  463. package/dist/2267.js +0 -1
  464. package/dist/2267.js.map +0 -1
  465. package/dist/231.js +0 -1
  466. package/dist/231.js.map +0 -1
  467. package/dist/236.js +0 -1
  468. package/dist/236.js.map +0 -1
  469. package/dist/2367.js +0 -1
  470. package/dist/2367.js.map +0 -1
  471. package/dist/2463.js +0 -1
  472. package/dist/2463.js.map +0 -1
  473. package/dist/2561.js +0 -1
  474. package/dist/2561.js.map +0 -1
  475. package/dist/2810.js +0 -2
  476. package/dist/2810.js.map +0 -1
  477. package/dist/2867.js +0 -1
  478. package/dist/2867.js.map +0 -1
  479. package/dist/2909.js +0 -1
  480. package/dist/2909.js.map +0 -1
  481. package/dist/2949.js +0 -1
  482. package/dist/2949.js.map +0 -1
  483. package/dist/3040.js +0 -1
  484. package/dist/3119.js +0 -1
  485. package/dist/3119.js.map +0 -1
  486. package/dist/3215.js +0 -1
  487. package/dist/3215.js.map +0 -1
  488. package/dist/322.js +0 -1
  489. package/dist/322.js.map +0 -1
  490. package/dist/3228.js +0 -1
  491. package/dist/3228.js.map +0 -1
  492. package/dist/330.js +0 -1
  493. package/dist/330.js.map +0 -1
  494. package/dist/3472.js +0 -1
  495. package/dist/3472.js.map +0 -1
  496. package/dist/351.js +0 -1
  497. package/dist/351.js.map +0 -1
  498. package/dist/3576.js +0 -1
  499. package/dist/3576.js.map +0 -1
  500. package/dist/397.js +0 -1
  501. package/dist/397.js.map +0 -1
  502. package/dist/4007.js +0 -66
  503. package/dist/4007.js.map +0 -1
  504. package/dist/4200.js +0 -1
  505. package/dist/4200.js.map +0 -1
  506. package/dist/4224.js +0 -1
  507. package/dist/4224.js.map +0 -1
  508. package/dist/43.js +0 -1
  509. package/dist/43.js.map +0 -1
  510. package/dist/4308.js +0 -1
  511. package/dist/4308.js.map +0 -1
  512. package/dist/4399.js +0 -1
  513. package/dist/4399.js.map +0 -1
  514. package/dist/4505.js +0 -1
  515. package/dist/4505.js.map +0 -1
  516. package/dist/4724.js +0 -1
  517. package/dist/4724.js.map +0 -1
  518. package/dist/498.js +0 -1
  519. package/dist/498.js.map +0 -1
  520. package/dist/509.js +0 -1
  521. package/dist/509.js.map +0 -1
  522. package/dist/5096.js +0 -1
  523. package/dist/5096.js.map +0 -1
  524. package/dist/5159.js +0 -13
  525. package/dist/5159.js.map +0 -1
  526. package/dist/5184.js +0 -1
  527. package/dist/5184.js.map +0 -1
  528. package/dist/5270.js +0 -1
  529. package/dist/5270.js.map +0 -1
  530. package/dist/5361.js +0 -1
  531. package/dist/5361.js.map +0 -1
  532. package/dist/5537.js +0 -1
  533. package/dist/5537.js.map +0 -1
  534. package/dist/566.js +0 -1
  535. package/dist/566.js.map +0 -1
  536. package/dist/5733.js +0 -1
  537. package/dist/5733.js.map +0 -1
  538. package/dist/5854.js +0 -1
  539. package/dist/5854.js.map +0 -1
  540. package/dist/5882.js +0 -1
  541. package/dist/6004.js +0 -1
  542. package/dist/6004.js.map +0 -1
  543. package/dist/6121.js +0 -3
  544. package/dist/6121.js.map +0 -1
  545. package/dist/6137.js +0 -1
  546. package/dist/6137.js.map +0 -1
  547. package/dist/6356.js +0 -1
  548. package/dist/6356.js.map +0 -1
  549. package/dist/6571.js +0 -1
  550. package/dist/6571.js.map +0 -1
  551. package/dist/6721.js +0 -1
  552. package/dist/6721.js.map +0 -1
  553. package/dist/6858.js +0 -1
  554. package/dist/6858.js.map +0 -1
  555. package/dist/6925.js +0 -1
  556. package/dist/6925.js.map +0 -1
  557. package/dist/6960.js +0 -1
  558. package/dist/6960.js.map +0 -1
  559. package/dist/7085.js +0 -1
  560. package/dist/7085.js.map +0 -1
  561. package/dist/7127.js +0 -1
  562. package/dist/7176.js +0 -1
  563. package/dist/7176.js.map +0 -1
  564. package/dist/7237.js +0 -1
  565. package/dist/7237.js.map +0 -1
  566. package/dist/725.js +0 -1
  567. package/dist/725.js.map +0 -1
  568. package/dist/7288.js +0 -1
  569. package/dist/7329.js +0 -1
  570. package/dist/7329.js.map +0 -1
  571. package/dist/7334.js +0 -1
  572. package/dist/7334.js.map +0 -1
  573. package/dist/7461.js +0 -1
  574. package/dist/7461.js.map +0 -1
  575. package/dist/7517.js +0 -1
  576. package/dist/7517.js.map +0 -1
  577. package/dist/7837.js +0 -1
  578. package/dist/7837.js.map +0 -1
  579. package/dist/8103.js +0 -1
  580. package/dist/8103.js.map +0 -1
  581. package/dist/8110.js +0 -1
  582. package/dist/8110.js.map +0 -1
  583. package/dist/8179.js +0 -6
  584. package/dist/8179.js.map +0 -1
  585. package/dist/8189.js +0 -1
  586. package/dist/8189.js.map +0 -1
  587. package/dist/8209.js +0 -1
  588. package/dist/8209.js.map +0 -1
  589. package/dist/8249.js +0 -1
  590. package/dist/8249.js.map +0 -1
  591. package/dist/8285.js +0 -1
  592. package/dist/8285.js.map +0 -1
  593. package/dist/8470.js +0 -1
  594. package/dist/8470.js.map +0 -1
  595. package/dist/8502.js +0 -1
  596. package/dist/8502.js.map +0 -1
  597. package/dist/866.js +0 -1
  598. package/dist/866.js.map +0 -1
  599. package/dist/8889.js +0 -11
  600. package/dist/8889.js.map +0 -1
  601. package/dist/8990.js +0 -1
  602. package/dist/8990.js.map +0 -1
  603. package/dist/8994.js +0 -1
  604. package/dist/8994.js.map +0 -1
  605. package/dist/9049.js +0 -1
  606. package/dist/9049.js.map +0 -1
  607. package/dist/9054.js +0 -1
  608. package/dist/9054.js.map +0 -1
  609. package/dist/916.js +0 -1
  610. package/dist/9231.js +0 -1
  611. package/dist/9231.js.map +0 -1
  612. package/dist/9408.js +0 -1
  613. package/dist/9408.js.map +0 -1
  614. package/dist/9425.js +0 -1
  615. package/dist/9466.js +0 -1
  616. package/dist/9466.js.map +0 -1
  617. package/dist/9919.js +0 -1
  618. package/dist/9919.js.map +0 -1
  619. package/dist/9931.js +0 -1
  620. package/dist/9931.js.map +0 -1
  621. package/jest.config.js +0 -3
  622. package/src/shared/orders/OrdersTabs.tsx +0 -58
  623. package/src/shared/patient-chart/patient-chart.component.tsx +0 -61
  624. package/src/shared/patient-chart/patient-chart.resources.ts +0 -180
  625. package/src/shared/patient-chart/patient-chart.scss +0 -15
  626. package/src/shared/patient-chart/useInitialize.ts +0 -24
  627. /package/src/shared/{patient-chart/patient-summary-dashboard → tabs}/patient-summary-dashboard.scss +0 -0
@@ -0,0 +1,1885 @@
1
+ @use '@carbon/layout';
2
+ @use '@carbon/type';
3
+ @use '@carbon/colors';
4
+
5
+ [data-chart-id='cervix'] svg .axis path,
6
+ [data-chart-id='cervix'] svg .axis line {
7
+ stroke: #111 !important;
8
+ stroke-width: 2px !important;
9
+ stroke-dasharray: none !important;
10
+ }
11
+ [data-chart-id='cervix'] svg .axis text {
12
+ fill: #111 !important;
13
+ }
14
+
15
+ .contractionsGridCell[data-contraction-level='strong'] {
16
+ background-color: #111 !important;
17
+ color: #fff !important;
18
+ font-weight: 700 !important;
19
+ }
20
+
21
+ .contractionsGridCell[data-contraction-level='moderate'] {
22
+ background-color: #fff !important;
23
+ color: #111 !important;
24
+ font-weight: 700 !important;
25
+ background-image: repeating-linear-gradient(45deg, #111 0 2px, transparent 2px 8px) !important;
26
+ background-size: 12px 12px !important;
27
+ }
28
+
29
+ .contractionsGridCell[data-contraction-level='mild'] {
30
+ background-color: #fff !important;
31
+ color: #111 !important;
32
+ font-weight: 700 !important;
33
+ background-image: radial-gradient(#111 2.5px, transparent 2.5px) !important;
34
+ background-size: 10px 10px !important;
35
+ }
36
+
37
+ .partographyContainer {
38
+ padding: layout.$spacing-05;
39
+ background-color: colors.$gray-10;
40
+ margin: layout.$spacing-03 0;
41
+ }
42
+
43
+ .partographyGrid {
44
+ display: grid;
45
+ grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));
46
+ gap: layout.$spacing-05;
47
+
48
+ @media (max-width: 1200px) {
49
+ grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
50
+ }
51
+
52
+ @media (max-width: 768px) {
53
+ grid-template-columns: 1fr;
54
+ gap: layout.$spacing-04;
55
+ }
56
+ }
57
+
58
+ .partographyTitle {
59
+ @include type.type-style('heading-compact-02');
60
+ color: colors.$gray-100;
61
+ margin-bottom: layout.$spacing-05;
62
+ display: flex;
63
+ align-items: center;
64
+ gap: layout.$spacing-03;
65
+ }
66
+
67
+ .titleIcon {
68
+ color: colors.$blue-60;
69
+ }
70
+
71
+ .content {
72
+ padding: layout.$spacing-04;
73
+ background-color: colors.$white;
74
+ border-radius: layout.$spacing-02;
75
+ border: 1px solid colors.$gray-20;
76
+ }
77
+
78
+ .sectionHeader {
79
+ display: flex;
80
+ justify-content: space-between;
81
+ align-items: center;
82
+ margin-bottom: layout.$spacing-05;
83
+ /* Allow cell to expand and wrap text */
84
+ width: auto;
85
+ min-width: 0;
86
+ max-width: none;
87
+ white-space: normal;
88
+ word-break: break-word;
89
+ overflow-wrap: anywhere;
90
+ padding: layout.$spacing-04;
91
+ background-color: colors.$white;
92
+ border-radius: layout.$spacing-02;
93
+ margin-bottom: layout.$spacing-04;
94
+ border: 2px solid colors.$gray-40;
95
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
96
+ transition: box-shadow 0.2s ease;
97
+
98
+ &:hover {
99
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
100
+ }
101
+
102
+ // Medical chart styling
103
+ &::before {
104
+ content: '';
105
+ position: absolute;
106
+ top: 0;
107
+ left: 0;
108
+ right: 0;
109
+ height: 4px;
110
+ background: linear-gradient(90deg, colors.$blue-60, colors.$green-50, colors.$blue-60);
111
+ border-radius: layout.$spacing-02 layout.$spacing-02 0 0;
112
+ }
113
+
114
+ position: relative;
115
+ }
116
+
117
+ .graphHeader {
118
+ display: flex;
119
+ justify-content: space-between;
120
+ align-items: center;
121
+ margin-bottom: layout.$spacing-03;
122
+
123
+ h6 {
124
+ @include type.type-style('heading-compact-01');
125
+ margin: 0;
126
+ }
127
+ }
128
+
129
+ .graphHeaderLeft {
130
+ display: flex;
131
+ align-items: center;
132
+ gap: layout.$spacing-03;
133
+ }
134
+
135
+ .graphHeaderRight {
136
+ display: flex;
137
+ align-items: center;
138
+ gap: layout.$spacing-02;
139
+
140
+ .viewSwitcher {
141
+ display: flex;
142
+ border: 1px solid colors.$gray-30;
143
+ border-radius: layout.$spacing-02;
144
+ overflow: hidden;
145
+
146
+ .viewButton {
147
+ border-radius: 0;
148
+ border: none;
149
+ min-width: layout.$spacing-09;
150
+ height: layout.$spacing-07;
151
+
152
+ &:first-child {
153
+ border-right: 1px solid colors.$gray-30;
154
+ }
155
+
156
+ &:hover {
157
+ background-color: colors.$gray-20;
158
+ }
159
+
160
+ svg {
161
+ width: layout.$spacing-04;
162
+ height: layout.$spacing-04;
163
+ }
164
+ }
165
+ }
166
+
167
+ button {
168
+ transition: all 0.2s ease;
169
+
170
+ &:hover {
171
+ background-color: colors.$gray-20;
172
+ transform: scale(1.05);
173
+ }
174
+ }
175
+ }
176
+
177
+ .addButton {
178
+ background-color: colors.$gray-100;
179
+ color: colors.$white;
180
+ border: 1px solid colors.$gray-100;
181
+
182
+ &:hover {
183
+ background-color: colors.$gray-90;
184
+ transform: scale(1.05);
185
+ }
186
+
187
+ &:focus {
188
+ background-color: colors.$gray-90;
189
+ border-color: colors.$blue-60;
190
+ box-shadow: 0 0 0 2px colors.$blue-60;
191
+ }
192
+ }
193
+
194
+ .graphDescription {
195
+ @include type.type-style('body-compact-01');
196
+ color: colors.$gray-70;
197
+ margin-bottom: layout.$spacing-04;
198
+ }
199
+
200
+ .chartContainer {
201
+ background-color: colors.$white;
202
+ padding: 0;
203
+ border-radius: layout.$spacing-02;
204
+ border: 2px solid colors.$gray-40;
205
+ margin-bottom: 0;
206
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
207
+
208
+ // Medical chart styling
209
+ .cds--chart-wrapper {
210
+ border: 1px solid colors.$gray-30;
211
+ border-radius: layout.$spacing-02;
212
+ overflow: hidden;
213
+
214
+ .cds--chart {
215
+ background-color: colors.$white;
216
+ }
217
+
218
+ .axis path,
219
+ .axis line {
220
+ stroke: colors.$gray-70 !important;
221
+ stroke-width: 1.25px !important;
222
+ shape-rendering: crispEdges;
223
+ }
224
+
225
+ .grid line {
226
+ stroke: colors.$gray-30 !important;
227
+ stroke-width: 1px !important;
228
+ stroke-dasharray: none !important;
229
+ shape-rendering: crispEdges;
230
+ }
231
+
232
+ .axis text,
233
+ .label {
234
+ fill: colors.$gray-90;
235
+ font-weight: 600;
236
+ font-size: 12px;
237
+ }
238
+
239
+ .cds--chart-title {
240
+ fill: colors.$gray-100;
241
+ font-weight: 700;
242
+ font-size: 16px;
243
+ }
244
+ }
245
+ }
246
+
247
+ .emptyChartContainer {
248
+ position: relative;
249
+ height: 500px;
250
+ background-color: colors.$white;
251
+ }
252
+
253
+ .emptyChartOverlay {
254
+ position: absolute;
255
+ top: 50%;
256
+ left: 50%;
257
+ transform: translate(-50%, -50%);
258
+ display: flex;
259
+ flex-direction: column;
260
+ align-items: center;
261
+ gap: layout.$spacing-04;
262
+ background-color: rgba(255, 255, 255, 0.95);
263
+ padding: layout.$spacing-05;
264
+ border-radius: layout.$spacing-02;
265
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
266
+ text-align: center;
267
+
268
+ p {
269
+ margin: 0;
270
+ @include type.type-style('body-compact-01');
271
+ color: colors.$gray-70;
272
+ }
273
+ }
274
+
275
+ .chartStats {
276
+ display: flex;
277
+ gap: layout.$spacing-05;
278
+ padding: layout.$spacing-03;
279
+ background-color: colors.$gray-20;
280
+ border-radius: layout.$spacing-02;
281
+ }
282
+
283
+ .statItem {
284
+ display: flex;
285
+ flex-direction: column;
286
+ gap: layout.$spacing-02;
287
+ }
288
+
289
+ .statLabel {
290
+ @include type.type-style('label-01');
291
+ color: colors.$gray-70;
292
+ }
293
+
294
+ .statValue {
295
+ @include type.type-style('heading-compact-01');
296
+ color: colors.$gray-100;
297
+ }
298
+
299
+ .chartPlaceholder {
300
+ background-color: colors.$white;
301
+ padding: layout.$spacing-06;
302
+ border-radius: layout.$spacing-02;
303
+ text-align: center;
304
+ border: 2px dashed colors.$gray-30;
305
+ min-height: layout.$spacing-13;
306
+ display: flex;
307
+ align-items: center;
308
+ justify-content: center;
309
+
310
+ &[data-color='red'] {
311
+ border-color: colors.$red-40;
312
+ }
313
+ &[data-color='blue'] {
314
+ border-color: colors.$blue-40;
315
+ }
316
+ &[data-color='green'] {
317
+ border-color: colors.$green-40;
318
+ }
319
+ &[data-color='purple'] {
320
+ border-color: colors.$purple-40;
321
+ }
322
+ &[data-color='orange'] {
323
+ border-color: colors.$orange-40;
324
+ }
325
+ &[data-color='cyan'] {
326
+ border-color: colors.$cyan-40;
327
+ }
328
+ &[data-color='teal'] {
329
+ border-color: colors.$teal-40;
330
+ }
331
+ &[data-color='yellow'] {
332
+ border-color: colors.$yellow-40;
333
+ }
334
+ &[data-color='magenta'] {
335
+ border-color: colors.$magenta-40;
336
+ }
337
+ &[data-color='gray'] {
338
+ border-color: colors.$gray-40;
339
+ }
340
+ }
341
+
342
+ .chartContent {
343
+ display: flex;
344
+ flex-direction: column;
345
+ align-items: center;
346
+ gap: layout.$spacing-03;
347
+
348
+ p {
349
+ margin: 0;
350
+ color: colors.$gray-100;
351
+ @include type.type-style('body-compact-01');
352
+ }
353
+ }
354
+
355
+ .yAxisLabel {
356
+ @include type.type-style('label-01');
357
+ color: colors.$gray-70;
358
+ }
359
+
360
+ // Data Table Section
361
+
362
+ .tableContainer {
363
+ background-color: colors.$white;
364
+ border-radius: layout.$spacing-02;
365
+ border: 1px solid colors.$gray-20;
366
+ margin-bottom: layout.$spacing-04;
367
+
368
+ .cds--data-table-container {
369
+ background-color: transparent;
370
+ }
371
+
372
+ .cds--data-table {
373
+ background-color: transparent;
374
+
375
+ th,
376
+ td {
377
+ border-bottom: 1px solid colors.$gray-20;
378
+ padding: layout.$spacing-03 layout.$spacing-04;
379
+ }
380
+
381
+ th {
382
+ background-color: colors.$gray-10;
383
+ @include type.type-style('label-01');
384
+ color: colors.$gray-100;
385
+ }
386
+
387
+ td {
388
+ @include type.type-style('body-compact-01');
389
+ color: colors.$gray-100;
390
+ }
391
+
392
+ tbody tr:nth-child(odd) {
393
+ background-color: colors.$white;
394
+ }
395
+
396
+ tbody tr:nth-child(even) {
397
+ background-color: colors.$gray-10;
398
+ }
399
+
400
+ tbody tr:hover {
401
+ background-color: colors.$gray-20;
402
+ }
403
+ }
404
+ }
405
+
406
+ .tableStats {
407
+ padding: layout.$spacing-03;
408
+ background-color: colors.$gray-20;
409
+ border-radius: 0 0 layout.$spacing-02 layout.$spacing-02;
410
+ text-align: center;
411
+ }
412
+
413
+ .recordCount {
414
+ @include type.type-style('body-compact-01');
415
+ color: colors.$gray-70;
416
+ }
417
+
418
+ // Value status indicators
419
+ .highValue {
420
+ color: colors.$red-60;
421
+ font-weight: 600;
422
+ }
423
+
424
+ .lowValue {
425
+ color: colors.$blue-60;
426
+ font-weight: 600;
427
+ }
428
+
429
+ .arrow {
430
+ font-weight: bold;
431
+ margin-left: layout.$spacing-02;
432
+ }
433
+
434
+ .chartSection {
435
+ margin-bottom: layout.$spacing-06;
436
+
437
+ h6 {
438
+ @include type.type-style('heading-compact-01');
439
+ margin-bottom: layout.$spacing-04;
440
+ }
441
+ }
442
+
443
+ .tableSection {
444
+ margin-bottom: layout.$spacing-06;
445
+
446
+ h6 {
447
+ @include type.type-style('heading-compact-01');
448
+ margin-bottom: layout.$spacing-04;
449
+ }
450
+ }
451
+
452
+ .alertSection {
453
+ h6 {
454
+ @include type.type-style('heading-compact-01');
455
+ margin-bottom: layout.$spacing-04;
456
+ }
457
+ }
458
+
459
+ .alertGrid {
460
+ display: grid;
461
+ grid-template-columns: repeat(auto-fit, minmax(layout.$spacing-12, 1fr));
462
+ gap: layout.$spacing-04;
463
+ }
464
+
465
+ .alertItem {
466
+ display: flex;
467
+ align-items: center;
468
+ gap: layout.$spacing-03;
469
+ padding: layout.$spacing-03;
470
+ background-color: colors.$gray-10;
471
+ border-radius: layout.$spacing-02;
472
+
473
+ span {
474
+ @include type.type-style('body-compact-01');
475
+ color: colors.$gray-100;
476
+ }
477
+ }
478
+
479
+ // Loading and empty state styles
480
+ .loadingContainer {
481
+ display: flex;
482
+ justify-content: center;
483
+ align-items: center;
484
+ height: layout.$spacing-11;
485
+ color: colors.$gray-70;
486
+
487
+ p {
488
+ margin: 0;
489
+ font-style: italic;
490
+ }
491
+ }
492
+
493
+ // Skeleton loading styles
494
+ .skeletonContainer {
495
+ padding: layout.$spacing-04;
496
+ background-color: colors.$white;
497
+ border-radius: layout.$spacing-02;
498
+ border: 1px solid colors.$gray-20;
499
+ }
500
+
501
+ .graphSkeleton {
502
+ .skeletonChart {
503
+ height: 500px;
504
+ background: linear-gradient(90deg, colors.$gray-20 25%, colors.$gray-10 50%, colors.$gray-20 75%);
505
+ background-size: 200% 100%;
506
+ animation: skeletonLoading 1.5s infinite;
507
+ border-radius: layout.$spacing-02;
508
+ margin-bottom: layout.$spacing-04;
509
+ }
510
+
511
+ .skeletonStats {
512
+ display: flex;
513
+ gap: layout.$spacing-05;
514
+ margin-top: layout.$spacing-04;
515
+ }
516
+
517
+ .skeletonStat {
518
+ background: linear-gradient(90deg, colors.$gray-20 25%, colors.$gray-10 50%, colors.$gray-20 75%);
519
+ background-size: 200% 100%;
520
+ animation: skeletonLoading 1.5s infinite;
521
+ height: layout.$spacing-05;
522
+ border-radius: layout.$spacing-02;
523
+ }
524
+ }
525
+
526
+ .tableSkeleton {
527
+ .skeletonHeader {
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-05;
532
+ border-radius: layout.$spacing-02;
533
+ margin-bottom: layout.$spacing-04;
534
+ }
535
+
536
+ .skeletonRow {
537
+ display: flex;
538
+ gap: layout.$spacing-05;
539
+ margin-bottom: layout.$spacing-03;
540
+
541
+ .skeletonCell {
542
+ background: linear-gradient(90deg, colors.$gray-20 25%, colors.$gray-10 50%, colors.$gray-20 75%);
543
+ background-size: 200% 100%;
544
+ animation: skeletonLoading 1.5s infinite;
545
+ height: layout.$spacing-04;
546
+ border-radius: layout.$spacing-02;
547
+ }
548
+ }
549
+
550
+ .skeletonFooter {
551
+ background: linear-gradient(90deg, colors.$gray-20 25%, colors.$gray-10 50%, colors.$gray-20 75%);
552
+ background-size: 200% 100%;
553
+ animation: skeletonLoading 1.5s infinite;
554
+ height: layout.$spacing-04;
555
+ border-radius: layout.$spacing-02;
556
+ margin-top: layout.$spacing-04;
557
+ }
558
+ }
559
+
560
+ @keyframes skeletonLoading {
561
+ 0% {
562
+ background-position: -200% 0;
563
+ }
564
+ 100% {
565
+ background-position: 200% 0;
566
+ }
567
+ }
568
+
569
+ // Global skeleton animation (in case CSS modules scoping is an issue)
570
+ :global(.skeleton-loading) {
571
+ background: linear-gradient(90deg, #f4f4f4 25%, #e0e0e0 50%, #f4f4f4 75%);
572
+ background-size: 200% 100%;
573
+ animation: skeletonLoading 1.5s infinite;
574
+ }
575
+
576
+ .emptyState {
577
+ display: flex;
578
+ flex-direction: column;
579
+ justify-content: center;
580
+ align-items: center;
581
+ height: layout.$spacing-11;
582
+ gap: layout.$spacing-05;
583
+ color: colors.$gray-70;
584
+ text-align: center;
585
+
586
+ p {
587
+ margin: 0;
588
+ @include type.type-style('body-compact-01');
589
+ }
590
+ }
591
+ // partography.scss
592
+
593
+ .customTimeLabelsContainer {
594
+ display: flex;
595
+ flex-direction: column;
596
+ border-top: 2px solid colors.$gray-40;
597
+ border-left: 2px solid colors.$gray-40;
598
+ border-right: 2px solid colors.$gray-40;
599
+ border-bottom: 2px solid colors.$gray-40;
600
+ margin-top: 0;
601
+ background-color: colors.$white;
602
+ border-radius: 0;
603
+
604
+ // Perfect alignment with chart's plot area
605
+ margin-left: 70px;
606
+ margin-right: 30px;
607
+ width: auto;
608
+
609
+ // Enable horizontal scrolling for dynamic content
610
+ overflow-x: auto;
611
+ overflow-y: hidden;
612
+ }
613
+
614
+ .customTimeLabelsRow {
615
+ display: grid;
616
+ grid-template-columns: 80px repeat(var(--visible-columns, 10), minmax(60px, 1fr)); // Fixed header + dynamic columns
617
+ border-bottom: 1px solid colors.$gray-40;
618
+ min-height: 40px;
619
+ min-width: max-content; // Ensure content doesn't get compressed
620
+
621
+ &:last-child {
622
+ border-bottom: none;
623
+ }
624
+
625
+ &:first-child {
626
+ background-color: colors.$gray-10;
627
+ }
628
+ }
629
+
630
+ .customTimeLabelHeader {
631
+ grid-column: 1 / 2; // First column for header
632
+ font-weight: 700;
633
+ padding: layout.$spacing-03;
634
+ border-right: 1px solid colors.$gray-40;
635
+ text-align: center;
636
+ background-color: colors.$gray-20;
637
+ color: colors.$gray-100;
638
+ @include type.type-style('label-01');
639
+ display: flex;
640
+ align-items: center;
641
+ justify-content: center;
642
+ position: sticky; // Keep header visible during scroll
643
+ left: 0;
644
+ z-index: 1;
645
+ }
646
+
647
+ .customTimeLabelCell {
648
+ padding: layout.$spacing-03;
649
+ text-align: center;
650
+ border-right: 1px solid colors.$gray-40;
651
+ font-weight: 600;
652
+ @include type.type-style('body-compact-01');
653
+ color: colors.$gray-100;
654
+ background-color: colors.$white;
655
+ display: flex;
656
+ align-items: center;
657
+ justify-content: center;
658
+ min-width: 60px;
659
+
660
+ &:last-child {
661
+ border-right: none;
662
+ }
663
+
664
+ &:hover {
665
+ background-color: colors.$gray-10;
666
+ }
667
+ }
668
+
669
+ .cds--chart-wrapper {
670
+ .cds--bottom-axis .cds--axis-title {
671
+ padding-bottom: 0;
672
+ }
673
+
674
+ .cds--line-path {
675
+ &[data-group-id='Alert Line'],
676
+ &[aria-label*='Alert Line'] {
677
+ stroke: #ffd700 !important;
678
+ stroke-width: 3px !important;
679
+ stroke-dasharray: 8, 4 !important;
680
+ }
681
+
682
+ &[data-group-id='Action Line'],
683
+ &[aria-label*='Action Line'] {
684
+ stroke: #ff0000 !important;
685
+ stroke-width: 3px !important;
686
+ stroke-dasharray: 8, 4 !important;
687
+ }
688
+ }
689
+
690
+ svg path {
691
+ &[data-name='Alert Line'] {
692
+ stroke: #ffd700 !important;
693
+ stroke-width: 3px !important;
694
+ stroke-dasharray: 8, 4 !important;
695
+ }
696
+
697
+ &[data-name='Action Line'] {
698
+ stroke: #ff0000 !important;
699
+ stroke-width: 3px !important;
700
+ stroke-dasharray: 8, 4 !important;
701
+ }
702
+ }
703
+
704
+ // Generic line overrides for Alert/Action
705
+ .alert-line {
706
+ stroke: #ffd700 !important;
707
+ stroke-width: 3px !important;
708
+ stroke-dasharray: 8, 4 !important;
709
+ }
710
+
711
+ .action-line {
712
+ stroke: #ff0000 !important;
713
+ stroke-width: 3px !important;
714
+ stroke-dasharray: 8, 4 !important;
715
+ }
716
+
717
+ // More specific targeting for cervix chart lines
718
+ &[data-chart-id='cervix'] {
719
+ svg path {
720
+ // Target Alert Line specifically
721
+ &:nth-last-child(2) {
722
+ stroke: #ffd700 !important;
723
+ stroke-width: 3px !important;
724
+ stroke-dasharray: 8, 4 !important;
725
+ }
726
+
727
+ // Target Action Line specifically
728
+ &:last-child {
729
+ stroke: #ff0000 !important;
730
+ stroke-width: 3px !important;
731
+ stroke-dasharray: 8, 4 !important;
732
+ }
733
+ }
734
+
735
+ // Try targeting by legend item or class
736
+ .line {
737
+ &:nth-last-child(2) {
738
+ stroke: #ffd700 !important;
739
+ stroke-width: 3px !important;
740
+ stroke-dasharray: 8, 4 !important;
741
+ }
742
+
743
+ &:last-child {
744
+ stroke: #ff0000 !important;
745
+ stroke-width: 3px !important;
746
+ stroke-dasharray: 8, 4 !important;
747
+ }
748
+ }
749
+
750
+ // Alternative broader targeting
751
+ svg g[class*='line'] {
752
+ path {
753
+ &:nth-last-child(2) {
754
+ stroke: #ffd700 !important;
755
+ stroke-width: 3px !important;
756
+ stroke-dasharray: 8, 4 !important;
757
+ }
758
+
759
+ &:last-child {
760
+ stroke: #ff0000 !important;
761
+ stroke-width: 3px !important;
762
+ stroke-dasharray: 8, 4 !important;
763
+ }
764
+ }
765
+ }
766
+ }
767
+ }
768
+
769
+ :global {
770
+ [data-group='Alert Line'] {
771
+ stroke: #ffd700 !important;
772
+ stroke-width: 3px !important;
773
+ stroke-dasharray: 8, 4 !important;
774
+ }
775
+
776
+ [data-group='Action Line'] {
777
+ stroke: #ff0000 !important;
778
+ stroke-width: 3px !important;
779
+ stroke-dasharray: 8, 4 !important;
780
+ }
781
+
782
+ [data-chart-id='cervix'] svg path {
783
+ &:nth-last-child(2) {
784
+ stroke: #ffd700 !important;
785
+ stroke-width: 3px !important;
786
+ stroke-dasharray: 8, 4 !important;
787
+ }
788
+
789
+ &:last-child {
790
+ stroke: #ff0000 !important;
791
+ stroke-width: 3px !important;
792
+ stroke-dasharray: 8, 4 !important;
793
+ }
794
+ }
795
+ }
796
+
797
+ .chartContainer {
798
+ height: 500px;
799
+ }
800
+
801
+ .fetalHeartRateSection {
802
+ margin-bottom: layout.$spacing-07;
803
+ width: 100%;
804
+ }
805
+
806
+ .fetalHeartRateContainer {
807
+ background-color: colors.$white;
808
+ border-radius: layout.$spacing-03;
809
+ border: 2px solid colors.$gray-20;
810
+ padding: layout.$spacing-06;
811
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
812
+ margin-bottom: layout.$spacing-06;
813
+ }
814
+
815
+ .fetalHeartRateHeader {
816
+ display: flex;
817
+ justify-content: space-between;
818
+ align-items: flex-start;
819
+ margin-bottom: layout.$spacing-05;
820
+ border-bottom: 1px solid colors.$gray-20;
821
+ padding-bottom: layout.$spacing-04;
822
+ gap: layout.$spacing-04;
823
+ }
824
+
825
+ .fetalHeartRateHeaderLeft {
826
+ display: flex;
827
+ flex-direction: column;
828
+ align-items: flex-start;
829
+ gap: layout.$spacing-03;
830
+ flex: 1;
831
+ }
832
+
833
+ .fetalHeartRateHeaderRight {
834
+ display: flex;
835
+ align-items: center;
836
+ gap: layout.$spacing-03;
837
+ flex-shrink: 0;
838
+ }
839
+
840
+ .fetalHeartRateActions {
841
+ display: flex;
842
+ align-items: center;
843
+ gap: layout.$spacing-03;
844
+ }
845
+
846
+ .fetalHeartRateTitle {
847
+ @include type.type-style('heading-compact-02');
848
+ color: colors.$gray-100;
849
+ margin: 0;
850
+ font-weight: 600;
851
+ font-size: 1.125rem; // Slightly larger title
852
+ margin-bottom: layout.$spacing-02;
853
+ }
854
+
855
+ .fetalHeartRateControls {
856
+ display: flex;
857
+ align-items: center;
858
+ gap: layout.$spacing-02;
859
+ flex-wrap: wrap;
860
+ }
861
+
862
+ .tagLowRange {
863
+ background-color: #ff9800 !important;
864
+ color: #fff !important;
865
+ border-color: #ff9800 !important;
866
+ }
867
+
868
+ .fetalHeartRateChart {
869
+ min-height: 600px;
870
+ width: 100%;
871
+ margin-top: layout.$spacing-04;
872
+
873
+ :global(.cds--cc--chart-svg) {
874
+ border: 1px solid colors.$gray-30;
875
+ border-radius: layout.$spacing-02;
876
+ min-height: 600px;
877
+ }
878
+
879
+ :global(.cds--cc--chart-wrapper) {
880
+ min-height: 600px;
881
+ padding-bottom: layout.$spacing-06;
882
+ }
883
+ :global(.cds--cc--grid-line) {
884
+ stroke: colors.$gray-30;
885
+ stroke-opacity: 0.3;
886
+ }
887
+ :global(.cds--cc--axis-tick-label) {
888
+ font-size: 12px;
889
+ fill: colors.$gray-70;
890
+ }
891
+
892
+ :global(.cds--cc--axis.cds--cc--axis--bottom .cds--cc--axis-tick-label) {
893
+ text-anchor: middle;
894
+ transform: none !important;
895
+ }
896
+
897
+ :global(.cds--cc--axis.cds--cc--axis--left .cds--cc--axis-tick-label) {
898
+ text-anchor: end;
899
+ }
900
+
901
+ :global(.cds--cc--chart-holder) {
902
+ padding-bottom: layout.$spacing-08 !important;
903
+ }
904
+
905
+ :global(.cds--cc--axis--bottom text) {
906
+ transform: rotate(0deg) !important;
907
+ }
908
+
909
+ :global(.cds--cc--axis) {
910
+ .tick text {
911
+ font-size: 12px;
912
+ fill: colors.$gray-70;
913
+ }
914
+
915
+ .domain {
916
+ stroke: colors.$gray-50;
917
+ }
918
+ }
919
+ }
920
+
921
+ .fetalHeartRateValue {
922
+ display: inline-flex;
923
+ align-items: center;
924
+ gap: layout.$spacing-02;
925
+
926
+ &.low {
927
+ color: colors.$red-50;
928
+
929
+ .arrow {
930
+ color: colors.$red-50;
931
+ font-size: 1.4em;
932
+ font-weight: bold;
933
+ margin-right: layout.$spacing-02;
934
+ }
935
+ }
936
+
937
+ &.normal {
938
+ color: colors.$green-50;
939
+ font-weight: 500;
940
+ }
941
+
942
+ &.high {
943
+ color: colors.$red-50;
944
+ font-weight: 600;
945
+
946
+ .arrow {
947
+ color: colors.$red-50;
948
+ font-size: 1.4em;
949
+ font-weight: bold;
950
+ margin-right: layout.$spacing-02;
951
+ }
952
+ }
953
+ }
954
+
955
+ .membraneGrid {
956
+ width: 100%;
957
+ margin-top: layout.$spacing-04;
958
+ background: colors.$white;
959
+ border: 1px solid colors.$gray-30;
960
+ border-radius: layout.$spacing-02;
961
+ overflow-x: auto;
962
+ max-height: 300px;
963
+ max-width: 1540px;
964
+ }
965
+
966
+ .gridContainer {
967
+ display: flex;
968
+ flex-direction: column;
969
+ min-width: 0;
970
+ width: auto;
971
+ max-width: 100%;
972
+ }
973
+
974
+ .gridHeader {
975
+ display: flex;
976
+ background: colors.$gray-10;
977
+ border-bottom: 2px solid colors.$gray-30;
978
+ font-weight: 600;
979
+ }
980
+
981
+ .gridRow {
982
+ display: flex;
983
+ border-bottom: 1px solid colors.$gray-20;
984
+
985
+ &:last-child {
986
+ border-bottom: none;
987
+ }
988
+ }
989
+
990
+ .gridCell {
991
+ flex: 0 0 70px;
992
+ min-width: 70px;
993
+ padding: layout.$spacing-03;
994
+ border-right: 1px solid colors.$gray-20;
995
+ text-align: center;
996
+ font-size: 0.875rem;
997
+ display: flex;
998
+ align-items: center;
999
+ justify-content: center;
1000
+ min-height: 48px;
1001
+
1002
+ &:last-child {
1003
+ border-right: none;
1004
+ }
1005
+
1006
+ &:first-child {
1007
+ flex: 0 0 140px;
1008
+ min-width: 140px;
1009
+ background: colors.$gray-10;
1010
+ font-weight: 600;
1011
+ text-align: left;
1012
+ justify-content: flex-start;
1013
+ }
1014
+ }
1015
+
1016
+ .gridRowLabel {
1017
+ flex: 0 0 140px;
1018
+ padding: layout.$spacing-03;
1019
+ background: colors.$gray-10;
1020
+ border-right: 2px solid colors.$gray-30;
1021
+ font-weight: 600;
1022
+ display: flex;
1023
+ align-items: center;
1024
+ text-align: left;
1025
+ }
1026
+
1027
+ .legendText {
1028
+ font-size: 0.75rem;
1029
+ color: colors.$gray-70;
1030
+ font-style: italic;
1031
+ }
1032
+
1033
+ .contractionLevelSelector {
1034
+ display: flex;
1035
+ flex-direction: row;
1036
+ gap: layout.$spacing-02;
1037
+ padding: layout.$spacing-02;
1038
+ justify-content: flex-start;
1039
+ align-items: flex-start;
1040
+ background-color: colors.$gray-10;
1041
+ border-radius: layout.$spacing-02;
1042
+ border: 1px solid colors.$gray-30;
1043
+ margin: layout.$spacing-02 0;
1044
+ flex-wrap: wrap;
1045
+ max-width: fit-content;
1046
+ }
1047
+
1048
+ .contractionLevelOption {
1049
+ display: flex;
1050
+ flex-direction: column;
1051
+ align-items: center;
1052
+ gap: layout.$spacing-01;
1053
+ cursor: pointer;
1054
+ transition: all 0.3s ease;
1055
+ text-align: center;
1056
+ padding: layout.$spacing-01;
1057
+ border-radius: layout.$spacing-02;
1058
+
1059
+ &:hover {
1060
+ transform: translateY(-2px);
1061
+
1062
+ .contractionLevelButton {
1063
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
1064
+ }
1065
+ }
1066
+
1067
+ &.contractionLevelSelected {
1068
+ background-color: colors.$blue-10;
1069
+ border: 2px solid colors.$blue-60;
1070
+
1071
+ .contractionLevelButton {
1072
+ border: 3px solid colors.$blue-60;
1073
+ box-shadow: 0 6px 20px rgba(13, 90, 170, 0.25);
1074
+ }
1075
+ }
1076
+ }
1077
+
1078
+ .contractionLevelTitle {
1079
+ @include type.type-style('label-01');
1080
+ color: colors.$gray-100;
1081
+ font-weight: 600;
1082
+ margin-bottom: layout.$spacing-02;
1083
+ text-align: center;
1084
+ min-height: 16px;
1085
+ font-size: 12px;
1086
+ }
1087
+
1088
+ .contractionLevelButton {
1089
+ width: 70px;
1090
+ height: 70px;
1091
+ display: flex;
1092
+ align-items: center;
1093
+ justify-content: center;
1094
+ border: 2px solid colors.$gray-40;
1095
+ border-radius: layout.$spacing-02;
1096
+ font-size: 28px;
1097
+ font-weight: bold;
1098
+ transition: all 0.3s ease;
1099
+ cursor: pointer;
1100
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
1101
+
1102
+ &.none {
1103
+ background-color: colors.$gray-30;
1104
+ color: colors.$gray-100;
1105
+ border-color: colors.$gray-50;
1106
+ }
1107
+
1108
+ &.mild {
1109
+ background-color: #fff;
1110
+ color: #111;
1111
+ border-color: colors.$gray-50;
1112
+ background-image: radial-gradient(#111 3px, transparent 3px);
1113
+ background-size: 12px 12px;
1114
+ }
1115
+
1116
+ &.moderate {
1117
+ background-color: #fff;
1118
+ color: #111;
1119
+ border-color: colors.$gray-50;
1120
+ background-image: repeating-linear-gradient(135deg, #111 0 4px, transparent 4px 12px);
1121
+ background-size: 16px 16px;
1122
+ }
1123
+
1124
+ &.strong {
1125
+ background-color: #111;
1126
+ color: #fff;
1127
+ border-color: #111;
1128
+ }
1129
+ }
1130
+
1131
+ .errorMessage {
1132
+ @include type.type-style('label-01');
1133
+ color: colors.$red-60;
1134
+ margin-top: layout.$spacing-02;
1135
+ grid-column: 1 / -1;
1136
+ text-align: center;
1137
+ }
1138
+
1139
+ .contractionsFormContainer {
1140
+ padding: layout.$spacing-03 layout.$spacing-03;
1141
+ max-width: 700px;
1142
+ margin: 0 auto;
1143
+ }
1144
+
1145
+ .formMainSection {
1146
+ display: flex;
1147
+ flex-direction: row;
1148
+ gap: layout.$spacing-03;
1149
+ align-items: flex-start;
1150
+ justify-content: flex-start;
1151
+ }
1152
+
1153
+ .formSectionLeft {
1154
+ flex: 0 0 auto;
1155
+ min-width: 380px;
1156
+ max-width: 420px;
1157
+ }
1158
+
1159
+ .formSectionRight {
1160
+ flex: 0 0 auto;
1161
+ min-width: 200px;
1162
+ max-width: 220px;
1163
+ padding-top: layout.$spacing-02;
1164
+ display: flex;
1165
+ flex-direction: column;
1166
+ align-items: flex-start;
1167
+ margin-left: layout.$spacing-03;
1168
+ }
1169
+
1170
+ .formSection {
1171
+ margin-bottom: layout.$spacing-02;
1172
+ }
1173
+
1174
+ .sectionTitle {
1175
+ @include type.type-style('heading-04');
1176
+ color: colors.$gray-100;
1177
+ margin-bottom: layout.$spacing-01;
1178
+ text-align: left;
1179
+ font-weight: 600;
1180
+ }
1181
+
1182
+ .sectionDescription {
1183
+ @include type.type-style('body-compact-01');
1184
+ color: colors.$gray-70;
1185
+ text-align: left;
1186
+ margin-bottom: layout.$spacing-02;
1187
+ font-style: italic;
1188
+ line-height: 1.3;
1189
+ }
1190
+
1191
+ // Contraction Count Dropdown
1192
+ .contractionCountDropdown {
1193
+ width: 100%;
1194
+ max-width: 280px;
1195
+
1196
+ .cds--dropdown {
1197
+ background-color: colors.$white;
1198
+ border: 2px solid colors.$gray-30;
1199
+ border-radius: layout.$spacing-02;
1200
+
1201
+ &:hover {
1202
+ border-color: colors.$blue-40;
1203
+ }
1204
+
1205
+ &:focus {
1206
+ border-color: colors.$blue-60;
1207
+ box-shadow: 0 0 0 2px rgba(13, 90, 170, 0.2);
1208
+ }
1209
+ }
1210
+
1211
+ .cds--list-box__field {
1212
+ height: 48px;
1213
+ padding: layout.$spacing-03 layout.$spacing-04;
1214
+ }
1215
+
1216
+ .cds--list-box__menu-item {
1217
+ &:hover {
1218
+ background-color: colors.$blue-10;
1219
+ }
1220
+
1221
+ &[aria-selected='true'] {
1222
+ background-color: colors.$blue-20;
1223
+ color: colors.$blue-80;
1224
+ }
1225
+ }
1226
+ }
1227
+
1228
+ .contractionsContainer {
1229
+ display: flex;
1230
+ flex-direction: column;
1231
+ border: 2px solid colors.$gray-80;
1232
+ background-color: colors.$white;
1233
+ position: relative;
1234
+ min-height: 300px;
1235
+ overflow-x: auto;
1236
+ }
1237
+
1238
+ .contractionsTimeHeaders {
1239
+ display: grid;
1240
+ grid-template-columns: 60px repeat(13, minmax(50px, 1fr));
1241
+ border-bottom: 2px solid colors.$gray-80;
1242
+ background-color: colors.$gray-10;
1243
+ min-height: 35px;
1244
+ }
1245
+
1246
+ .contractionsTimeHeader {
1247
+ display: flex;
1248
+ align-items: center;
1249
+ justify-content: center;
1250
+ border-right: 1px solid colors.$gray-60;
1251
+ padding: layout.$spacing-02;
1252
+ font-weight: 600;
1253
+ @include type.type-style('label-01');
1254
+
1255
+ &:last-child {
1256
+ border-right: none;
1257
+ }
1258
+ }
1259
+
1260
+ .contractionsTimeSubHeaders {
1261
+ display: grid;
1262
+ grid-template-columns: 60px repeat(13, minmax(50px, 1fr));
1263
+ border-bottom: 1px solid colors.$gray-60;
1264
+ background-color: colors.$gray-10;
1265
+ min-height: 30px;
1266
+ }
1267
+
1268
+ .contractionsTimeSubHeader {
1269
+ display: flex;
1270
+ align-items: center;
1271
+ justify-content: center;
1272
+ border-right: 1px solid colors.$gray-40;
1273
+ padding: layout.$spacing-01;
1274
+ @include type.type-style('caption-01');
1275
+ color: colors.$gray-70;
1276
+
1277
+ &:last-child {
1278
+ border-right: none;
1279
+ }
1280
+ }
1281
+
1282
+ .contractionsYAxisSpacer {
1283
+ border-right: 2px solid colors.$gray-80;
1284
+ background-color: colors.$gray-10;
1285
+ }
1286
+
1287
+ .contractionsGridRow {
1288
+ display: grid;
1289
+ grid-template-columns: 80px repeat(13, minmax(50px, 1fr));
1290
+ border-bottom: 1px solid colors.$gray-40;
1291
+ min-height: 45px;
1292
+
1293
+ &:last-child {
1294
+ border-bottom: 2px solid colors.$gray-80;
1295
+ }
1296
+ }
1297
+
1298
+ .contractionsYAxisLabel {
1299
+ display: flex;
1300
+ align-items: center;
1301
+ justify-content: center;
1302
+ border-right: 2px solid colors.$gray-80;
1303
+ background-color: colors.$gray-10;
1304
+ font-weight: 600;
1305
+ @include type.type-style('label-01');
1306
+ min-width: 50px;
1307
+ padding: layout.$spacing-02;
1308
+ font-size: 16px;
1309
+ color: colors.$gray-100;
1310
+ position: relative;
1311
+
1312
+ &::before {
1313
+ content: attr(data-label);
1314
+ position: absolute;
1315
+ left: 50%;
1316
+ top: 50%;
1317
+ transform: translate(-50%, -50%);
1318
+ font-weight: bold;
1319
+ z-index: 2;
1320
+ }
1321
+ }
1322
+
1323
+ .contractionsGridCell {
1324
+ border-right: 1px solid colors.$gray-40;
1325
+ position: relative;
1326
+ display: flex;
1327
+ align-items: flex-end;
1328
+ justify-content: center;
1329
+ padding: 2px;
1330
+ background-color: colors.$white;
1331
+ transition: background-color 0.2s ease;
1332
+
1333
+ &:last-child {
1334
+ border-right: none;
1335
+ }
1336
+
1337
+ &:hover {
1338
+ background-color: colors.$blue-10;
1339
+ }
1340
+
1341
+ // Bar visualization styles
1342
+ &[data-contraction-level='0'] {
1343
+ background-color: colors.$white;
1344
+ }
1345
+
1346
+ &[data-contraction-level='mild'] {
1347
+ background-image: radial-gradient(circle at 50% 50%, colors.$green-60 1px, transparent 1px);
1348
+ background-size: 6px 6px;
1349
+ background-color: colors.$green-10;
1350
+ }
1351
+
1352
+ &[data-contraction-level='moderate'] {
1353
+ background: repeating-linear-gradient(
1354
+ 45deg,
1355
+ colors.$yellow-10,
1356
+ colors.$yellow-10 3px,
1357
+ colors.$yellow-60 3px,
1358
+ colors.$yellow-60 4px
1359
+ );
1360
+ }
1361
+
1362
+ &[data-contraction-level='strong'] {
1363
+ background-color: colors.$red-60;
1364
+ color: colors.$white;
1365
+ font-weight: bold;
1366
+
1367
+ &::after {
1368
+ content: '3';
1369
+ position: absolute;
1370
+ top: 50%;
1371
+ left: 50%;
1372
+ transform: translate(-50%, -50%);
1373
+ font-size: 18px;
1374
+ }
1375
+ }
1376
+ }
1377
+
1378
+ .contractionBar {
1379
+ width: 100%;
1380
+ height: 100%;
1381
+ position: absolute;
1382
+ top: 0;
1383
+ left: 0;
1384
+ border-radius: 2px;
1385
+ opacity: 0.8;
1386
+ transition: opacity 0.2s ease;
1387
+
1388
+ &:hover {
1389
+ opacity: 1;
1390
+ }
1391
+ }
1392
+
1393
+ .contractionBarNone {
1394
+ background-color: transparent;
1395
+ }
1396
+
1397
+ .contractionBarMild {
1398
+ background-color: #fff;
1399
+ border: 2px solid #111;
1400
+ background-image: radial-gradient(#111 3px, transparent 3px);
1401
+ background-size: 12px 12px;
1402
+ box-shadow: none;
1403
+ }
1404
+
1405
+ .contractionBarModerate {
1406
+ background-color: #fff;
1407
+ border: 2px solid #111;
1408
+ background-image: repeating-linear-gradient(135deg, #111 0 4px, transparent 4px 12px);
1409
+ background-size: 16px 16px;
1410
+ box-shadow: none;
1411
+ }
1412
+
1413
+ .contractionBarStrong {
1414
+ background-color: #111;
1415
+ border: 2px solid #111;
1416
+ box-shadow: none;
1417
+ }
1418
+
1419
+ .oxytocinBarLow {
1420
+ background-color: colors.$green-40;
1421
+ border: 2px solid colors.$green-60;
1422
+ box-shadow: inset 0 0 4px rgba(66, 190, 101, 0.3);
1423
+ }
1424
+
1425
+ .oxytocinBarMedium {
1426
+ background-color: colors.$yellow-40;
1427
+ border: 2px solid colors.$yellow-60;
1428
+ box-shadow: inset 0 0 4px rgba(255, 194, 7, 0.3);
1429
+ }
1430
+
1431
+ .oxytocinBarHigh {
1432
+ background-color: colors.$red-50;
1433
+ border: 2px solid colors.$red-70;
1434
+ box-shadow: inset 0 0 4px rgba(218, 30, 40, 0.3);
1435
+ }
1436
+
1437
+ .contractionsGridCell {
1438
+ &.contractionBarMild,
1439
+ &.contractionBarModerate,
1440
+ &.contractionBarStrong {
1441
+ background-color: transparent;
1442
+ border: none;
1443
+ }
1444
+
1445
+ &[data-filled='true'] {
1446
+ position: relative;
1447
+
1448
+ &::before {
1449
+ content: '';
1450
+ position: absolute;
1451
+ top: 2px;
1452
+ left: 2px;
1453
+ right: 2px;
1454
+ bottom: 2px;
1455
+ border-radius: 1px;
1456
+ background: inherit;
1457
+ z-index: 1;
1458
+ }
1459
+ }
1460
+ }
1461
+
1462
+ .contractionsYAxisTitle {
1463
+ position: absolute;
1464
+ left: -45px;
1465
+ top: 50%;
1466
+ transform: translateY(-50%) rotate(-90deg);
1467
+ transform-origin: center;
1468
+ white-space: nowrap;
1469
+ @include type.type-style('label-01');
1470
+ font-weight: 600;
1471
+ color: colors.$gray-80;
1472
+ }
1473
+
1474
+ .contractionsGrid {
1475
+ position: relative;
1476
+ margin: layout.$spacing-04 0;
1477
+ }
1478
+
1479
+ .contractionsTable {
1480
+ background-color: colors.$white;
1481
+ border: 1px solid colors.$gray-30;
1482
+ border-radius: layout.$spacing-02;
1483
+ overflow: hidden;
1484
+ }
1485
+
1486
+ .dataTable {
1487
+ width: 100%;
1488
+ border-collapse: collapse;
1489
+
1490
+ th {
1491
+ background-color: colors.$gray-10;
1492
+ padding: layout.$spacing-03;
1493
+ text-align: left;
1494
+ border-bottom: 2px solid colors.$gray-40;
1495
+ @include type.type-style('label-01');
1496
+ font-weight: 600;
1497
+ }
1498
+
1499
+ td {
1500
+ padding: layout.$spacing-03;
1501
+ border-bottom: 1px solid colors.$gray-20;
1502
+ @include type.type-style('body-compact-01');
1503
+ }
1504
+
1505
+ tbody tr:hover {
1506
+ background-color: colors.$gray-10;
1507
+ }
1508
+ }
1509
+
1510
+ .contractionLevelBadge {
1511
+ display: inline-flex;
1512
+ align-items: center;
1513
+ padding: layout.$spacing-01 layout.$spacing-02;
1514
+ border-radius: layout.$spacing-01;
1515
+ font-size: 12px;
1516
+ font-weight: 600;
1517
+ text-transform: uppercase;
1518
+
1519
+ &.none {
1520
+ background-color: colors.$gray-20;
1521
+ color: colors.$gray-80;
1522
+ }
1523
+
1524
+ &.mild {
1525
+ background-color: colors.$blue-20;
1526
+ color: colors.$blue-80;
1527
+ }
1528
+
1529
+ &.moderate {
1530
+ background-color: colors.$orange-20;
1531
+ color: colors.$orange-80;
1532
+ }
1533
+
1534
+ &.strong {
1535
+ background-color: colors.$red-20;
1536
+ color: colors.$red-80;
1537
+ }
1538
+ }
1539
+
1540
+ .drugsIVFluidsGraph {
1541
+ width: 100%;
1542
+ margin: layout.$spacing-05 0;
1543
+ }
1544
+
1545
+ .oxytocinGraph {
1546
+ width: 100%;
1547
+ margin: 0;
1548
+
1549
+ .membraneGrid {
1550
+ max-height: fit-content;
1551
+ min-height: auto;
1552
+ margin-top: 0;
1553
+ margin-bottom: 0;
1554
+ padding-bottom: 0;
1555
+ }
1556
+
1557
+ .gridContainer {
1558
+ padding: 0;
1559
+ margin-bottom: 0;
1560
+ }
1561
+
1562
+ .gridRow {
1563
+ min-height: 50px;
1564
+ margin-bottom: 0;
1565
+
1566
+ &:last-child {
1567
+ border-bottom: 1px solid colors.$gray-20;
1568
+ }
1569
+ }
1570
+
1571
+ .gridCell {
1572
+ border: 1px solid colors.$gray-30;
1573
+ min-height: 50px;
1574
+ }
1575
+ }
1576
+
1577
+ .fetalHeartRateContainer {
1578
+ .membraneGrid {
1579
+ margin: 0;
1580
+ padding: 0;
1581
+ max-height: fit-content;
1582
+ min-height: auto;
1583
+ }
1584
+
1585
+ .gridContainer {
1586
+ padding: 0;
1587
+ margin: 0;
1588
+ }
1589
+
1590
+ .gridRow {
1591
+ margin: 0;
1592
+ min-height: 50px;
1593
+ }
1594
+ }
1595
+
1596
+ .drugsCell {
1597
+ position: relative;
1598
+ background-color: colors.$white;
1599
+ border: 1px solid colors.$gray-30;
1600
+ padding: layout.$spacing-02;
1601
+ min-height: 60px;
1602
+ display: flex;
1603
+ align-items: center;
1604
+ justify-content: center;
1605
+ text-align: center;
1606
+ font-size: 12px;
1607
+ line-height: 1.2;
1608
+ white-space: normal;
1609
+ word-break: break-word;
1610
+
1611
+ &:hover {
1612
+ background-color: colors.$gray-10;
1613
+ }
1614
+ }
1615
+ .drugInfo {
1616
+ display: flex;
1617
+ flex-direction: column;
1618
+ gap: layout.$spacing-01;
1619
+ }
1620
+
1621
+ .drugName {
1622
+ font-weight: 600;
1623
+ color: colors.$gray-100;
1624
+ font-size: 11px;
1625
+ line-height: 1.2;
1626
+ font-size: 10px;
1627
+ line-height: 1.1;
1628
+ }
1629
+
1630
+ .pulseBPGraph {
1631
+ width: 100%;
1632
+ margin: layout.$spacing-05 0;
1633
+
1634
+ .chartContainer {
1635
+ background-color: colors.$white;
1636
+ padding: layout.$spacing-04;
1637
+ border-radius: layout.$spacing-02;
1638
+ border: 2px solid colors.$gray-40;
1639
+ margin-bottom: layout.$spacing-04;
1640
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
1641
+ min-height: 650px;
1642
+ :global(.cds--chart-wrapper) {
1643
+ border: 1px solid colors.$gray-30;
1644
+ border-radius: layout.$spacing-02;
1645
+ overflow: hidden;
1646
+ :global(.cds--chart) {
1647
+ background-color: colors.$white;
1648
+ :global(.cds--chart-grid-line) {
1649
+ stroke: colors.$gray-30;
1650
+ stroke-width: 1;
1651
+ }
1652
+ :global(.cds--chart-axis) {
1653
+ stroke: colors.$gray-50;
1654
+ }
1655
+ :global(.cds--chart-axis text) {
1656
+ fill: colors.$gray-90;
1657
+ font-size: 12px;
1658
+ }
1659
+ }
1660
+ }
1661
+
1662
+ .emptyChartMessage {
1663
+ display: flex;
1664
+ align-items: center;
1665
+ justify-content: center;
1666
+ height: 350px;
1667
+ color: colors.$gray-60;
1668
+ font-style: italic;
1669
+ }
1670
+ }
1671
+
1672
+ .timeLabelsContainer {
1673
+ margin-top: layout.$spacing-03;
1674
+ }
1675
+
1676
+ .timeLabelsGrid {
1677
+ display: grid;
1678
+ grid-template-columns: 80px repeat(10, 1fr);
1679
+ gap: 1px;
1680
+ background-color: colors.$gray-30;
1681
+ border: 1px solid colors.$gray-30;
1682
+ border-radius: layout.$spacing-02;
1683
+ }
1684
+
1685
+ .hoursRow,
1686
+ .timeRow {
1687
+ display: contents;
1688
+ }
1689
+
1690
+ .timeLabel {
1691
+ background-color: colors.$gray-10;
1692
+ padding: layout.$spacing-02;
1693
+ font-weight: 600;
1694
+ font-size: 12px;
1695
+ display: flex;
1696
+ align-items: center;
1697
+ justify-content: center;
1698
+ border-right: 1px solid colors.$gray-30;
1699
+ }
1700
+
1701
+ .timeCell {
1702
+ background-color: colors.$white;
1703
+ padding: layout.$spacing-02;
1704
+ font-size: 11px;
1705
+ text-align: center;
1706
+ display: flex;
1707
+ align-items: center;
1708
+ justify-content: center;
1709
+ min-height: 32px;
1710
+ border-right: 1px solid colors.$gray-20;
1711
+
1712
+ &:last-child {
1713
+ border-right: none;
1714
+ }
1715
+ }
1716
+ }
1717
+
1718
+ .pulseBPCell {
1719
+ position: relative;
1720
+ background-color: colors.$white;
1721
+ border: 1px solid colors.$gray-30;
1722
+ padding: layout.$spacing-02;
1723
+ min-height: 60px;
1724
+ display: flex;
1725
+ align-items: center;
1726
+ justify-content: center;
1727
+ text-align: center;
1728
+ font-size: 12px;
1729
+ line-height: 1.2;
1730
+ font-weight: 600;
1731
+
1732
+ &:hover {
1733
+ background-color: colors.$gray-10;
1734
+ }
1735
+ }
1736
+
1737
+ .anaestheticFormSection {
1738
+ margin-bottom: layout.$spacing-05;
1739
+ }
1740
+
1741
+ .anaestheticFormContainer {
1742
+ background-color: colors.$white;
1743
+ border: 1px solid colors.$gray-20;
1744
+ border-radius: layout.$spacing-02;
1745
+ padding: layout.$spacing-05;
1746
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
1747
+ }
1748
+
1749
+ .anaestheticFormHeader {
1750
+ margin-bottom: layout.$spacing-05;
1751
+ display: flex;
1752
+ align-items: flex-start;
1753
+ justify-content: space-between;
1754
+ gap: layout.$spacing-04;
1755
+ flex-wrap: wrap;
1756
+ }
1757
+
1758
+ .anaestheticFormTitle {
1759
+ @include type.type-style('heading-compact-02');
1760
+ margin: 0 0 layout.$spacing-02;
1761
+ color: colors.$gray-100;
1762
+ }
1763
+
1764
+ .anaestheticFormSubtitle {
1765
+ @include type.type-style('body-compact-01');
1766
+ margin: 0;
1767
+ color: colors.$gray-70;
1768
+ }
1769
+
1770
+ .anaestheticFormGrid {
1771
+ row-gap: layout.$spacing-05;
1772
+ }
1773
+
1774
+ .anaestheticFormActions {
1775
+ margin-top: layout.$spacing-06;
1776
+ display: flex;
1777
+ align-items: center;
1778
+ justify-content: space-between;
1779
+ gap: layout.$spacing-04;
1780
+ }
1781
+
1782
+ .anaestheticFormHint {
1783
+ @include type.type-style('body-compact-01');
1784
+ color: colors.$gray-70;
1785
+ margin: 0;
1786
+ }
1787
+
1788
+ .anaestheticFormHeaderActions {
1789
+ display: flex;
1790
+ gap: layout.$spacing-03;
1791
+ align-items: center;
1792
+ flex-wrap: wrap;
1793
+ }
1794
+
1795
+ .anaestheticViewSwitcher {
1796
+ display: flex;
1797
+ gap: 0;
1798
+ border-radius: layout.$spacing-02;
1799
+ overflow: hidden;
1800
+ }
1801
+
1802
+ .anaestheticViewButton {
1803
+ min-width: 2.5rem;
1804
+ }
1805
+
1806
+ .anaestheticRecordsSection {
1807
+ margin-top: layout.$spacing-06;
1808
+ border-top: 1px solid colors.$gray-20;
1809
+ padding-top: layout.$spacing-05;
1810
+ }
1811
+
1812
+ .anaestheticRecordsToolbar {
1813
+ display: flex;
1814
+ align-items: center;
1815
+ justify-content: space-between;
1816
+ gap: layout.$spacing-03;
1817
+ margin-bottom: layout.$spacing-04;
1818
+ flex-wrap: wrap;
1819
+ }
1820
+
1821
+ .anaestheticRecordsTitle {
1822
+ @include type.type-style('heading-compact-01');
1823
+ margin: 0;
1824
+ color: colors.$gray-100;
1825
+ }
1826
+
1827
+ .anaestheticRecordsMeta {
1828
+ @include type.type-style('body-compact-01');
1829
+ margin: 0;
1830
+ color: colors.$gray-70;
1831
+ }
1832
+
1833
+ .anaestheticRecordsTableWrapper {
1834
+ overflow-x: auto;
1835
+ border: 1px solid colors.$gray-20;
1836
+ border-radius: layout.$spacing-02;
1837
+ background-color: colors.$white;
1838
+
1839
+ .dataTable {
1840
+ min-width: 1600px;
1841
+ }
1842
+ }
1843
+
1844
+ .anaestheticRecordsEmpty {
1845
+ @include type.type-style('body-compact-01');
1846
+ color: colors.$gray-70;
1847
+ margin: 0;
1848
+ padding: layout.$spacing-05;
1849
+ }
1850
+
1851
+ .anaestheticRecordActions {
1852
+ display: flex;
1853
+ gap: layout.$spacing-02;
1854
+ white-space: nowrap;
1855
+ }
1856
+
1857
+ .anaestheticDetailGrid {
1858
+ display: grid;
1859
+ grid-template-columns: 1fr 1fr;
1860
+ gap: layout.$spacing-04 layout.$spacing-06;
1861
+ padding: layout.$spacing-05 0;
1862
+ }
1863
+
1864
+ .anaestheticDetailItem {
1865
+ display: flex;
1866
+ flex-direction: column;
1867
+ gap: layout.$spacing-02;
1868
+ }
1869
+
1870
+ .anaestheticDetailItemFull {
1871
+ display: flex;
1872
+ flex-direction: column;
1873
+ gap: layout.$spacing-02;
1874
+ grid-column: 1 / -1;
1875
+ }
1876
+
1877
+ .anaestheticDetailLabel {
1878
+ @include type.type-style('label-01');
1879
+ color: colors.$gray-70;
1880
+ }
1881
+
1882
+ .anaestheticDetailValue {
1883
+ @include type.type-style('body-compact-01');
1884
+ color: colors.$gray-100;
1885
+ }