@medplum/react 0.9.16 → 0.9.17

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 (33) hide show
  1. package/dist/cjs/index.js +2616 -2350
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/index.min.js +1 -1
  4. package/dist/cjs/index.min.js.map +1 -1
  5. package/dist/cjs/styles.css +335 -242
  6. package/dist/esm/index.js +2618 -2356
  7. package/dist/esm/index.js.map +1 -1
  8. package/dist/esm/index.min.js +1 -1
  9. package/dist/esm/index.min.js.map +1 -1
  10. package/dist/esm/styles.css +335 -242
  11. package/dist/types/BackboneElementDisplay.d.ts +2 -4
  12. package/dist/types/BackboneElementInput.d.ts +0 -2
  13. package/dist/types/FhirPathDisplay.d.ts +1 -1
  14. package/dist/types/PlanDefinitionBuilder.d.ts +7 -0
  15. package/dist/types/QuestionnaireForm.d.ts +0 -2
  16. package/dist/types/RequestGroupDisplay.d.ts +7 -0
  17. package/dist/types/ResourceArrayDisplay.d.ts +0 -2
  18. package/dist/types/ResourceArrayInput.d.ts +0 -2
  19. package/dist/types/ResourcePropertyDisplay.d.ts +2 -3
  20. package/dist/types/ResourcePropertyInput.d.ts +1 -2
  21. package/dist/types/SearchControlField.d.ts +1 -1
  22. package/dist/types/SearchFilterEditor.d.ts +1 -0
  23. package/dist/types/SearchPopupMenu.d.ts +2 -2
  24. package/dist/types/SearchUtils.d.ts +5 -8
  25. package/dist/types/StatusBadge.d.ts +6 -0
  26. package/dist/types/UploadButton.d.ts +2 -1
  27. package/dist/types/index.d.ts +5 -1
  28. package/dist/types/stories/PlanDefinitionBuilder.stories.d.ts +5 -0
  29. package/dist/types/stories/RequestGroupDisplay.stories.d.ts +5 -0
  30. package/dist/types/stories/SearchControl.stories.d.ts +1 -0
  31. package/dist/types/stories/StatusBadge.stories.d.ts +5 -0
  32. package/dist/types/stories/UploadButton.stories.d.ts +6 -0
  33. package/package.json +19 -19
@@ -106,6 +106,7 @@ select.medplum-select:disabled {
106
106
 
107
107
  .medplum-button:hover {
108
108
  background: var(--medplum-gray-200);
109
+ text-decoration: none;
109
110
  }
110
111
 
111
112
  .medplum-button:active {
@@ -779,6 +780,245 @@ table.medplum-diff-table td {
779
780
  width: 100%;
780
781
  }
781
782
 
783
+ .modal-dialog {
784
+ background: var(--medplum-gray-600);
785
+ border: 0.1px solid var(--medplum-gray-700);
786
+ color: var(--medplum-foreground);
787
+ padding: 0;
788
+ position: absolute;
789
+ z-index: 21;
790
+ box-shadow: var(--medplum-shadow) 0 2px 6px;
791
+ outline: 0;
792
+ }
793
+
794
+ .modal-dialog a,
795
+ .modal-dialog a:link,
796
+ .modal-dialog a:visited {
797
+ color: var(--medplum-blue-800);
798
+ cursor: pointer;
799
+ }
800
+
801
+ .modal-dialog-bg {
802
+ background: rgba(0, 0, 0, 0.5);
803
+ left: 0;
804
+ position: absolute;
805
+ top: 0;
806
+ right: 0;
807
+ bottom: 0;
808
+ z-index: 20;
809
+ }
810
+
811
+ .modal-dialog-title {
812
+ background: var(--medplum-gray-800);
813
+ color: var(--medplum-surface);
814
+ cursor: pointer;
815
+ padding: 6px;
816
+ display: flex;
817
+ justify-content: space-between;
818
+ }
819
+
820
+ .modal-dialog-title-close {
821
+ cursor: pointer;
822
+ vertical-align: middle;
823
+ }
824
+
825
+ .modal-dialog-title-close:hover {
826
+ background-color: var(--medplum-gray-700);
827
+ }
828
+
829
+ .modal-dialog-title-close > svg {
830
+ width: 20px;
831
+ height: 20px;
832
+ }
833
+
834
+ .modal-dialog-content {
835
+ text-align: center;
836
+ background-color: var(--medplum-surface);
837
+ padding: 8px;
838
+ }
839
+
840
+ .modal-dialog-buttons {
841
+ text-align: right;
842
+ background-color: var(--medplum-gray-100);
843
+ border-top: 1px solid var(--medplum-gray-400);
844
+ padding: 8px;
845
+ }
846
+
847
+ .modal-dialog-buttons button {
848
+ padding: 1px 6px;
849
+ }
850
+
851
+ .medplum-filter-editor {
852
+ text-align: left;
853
+ width: 900px;
854
+ max-width: 900px;
855
+ }
856
+
857
+ .medplum-filter-editor-table {
858
+ width: 100%;
859
+ border-collapse: collapse;
860
+ }
861
+
862
+ .medplum-menu-separator {
863
+ border-top: 0.1px solid var(--medplum-gray-400);
864
+ margin: 4px 0;
865
+ padding: 0;
866
+ }
867
+
868
+ .medplum-submenu-arrow {
869
+ color: var(--medplum-foreground);
870
+ left: auto;
871
+ padding-right: 6px;
872
+ position: absolute;
873
+ right: 0;
874
+ text-align: right;
875
+ user-select: none;
876
+ }
877
+
878
+ .medplum-title-bar {
879
+ display: flex;
880
+ width: 100%;
881
+ height: 50px;
882
+ padding: 15px;
883
+ justify-content: space-between;
884
+ background: var(--medplum-surface);
885
+ border-bottom: 2px solid var(--medplum-gray-200);
886
+ color: var(--medplum-gray-800);
887
+ }
888
+
889
+ .medplum-title-bar > div {
890
+ display: flex;
891
+ align-items: center;
892
+ }
893
+
894
+ .medplum-title-bar h1 {
895
+ font-size: 14px;
896
+ font-weight: bold;
897
+ padding: 0 4px 0 1px;
898
+ margin: 0 4px 0 1px;
899
+ color: var(--medplum-gray-800);
900
+ }
901
+
902
+ .medplum-search-control {
903
+ max-width: 100%;
904
+ overflow: auto;
905
+ text-align: left;
906
+ margin-bottom: 20px;
907
+ background: var(--medplum-surface);
908
+ }
909
+
910
+ .medplum-search-control .medplum-search-summary {
911
+ line-height: 28px;
912
+ padding: 2px 6px;
913
+ font-size: 12px;
914
+ white-space: nowrap;
915
+ }
916
+
917
+ /*
918
+ * Table styles
919
+ */
920
+
921
+ .medplum-search-control > table {
922
+ width: 100%;
923
+ clear: both;
924
+ border-top: 0.1px solid var(--medplum-gray-300);
925
+ border-collapse: collapse;
926
+ }
927
+
928
+ .medplum-search-control > table tr {
929
+ border-bottom: 0.1px solid var(--medplum-gray-300);
930
+ }
931
+
932
+ .medplum-search-control > table td,
933
+ .medplum-search-control > table th {
934
+ padding: 7px 10px;
935
+ cursor: pointer;
936
+ }
937
+
938
+ .medplum-search-control > table td.c {
939
+ text-align: center;
940
+ }
941
+
942
+ .medplum-search-control > table td.r {
943
+ text-align: right;
944
+ }
945
+
946
+ /* Header cells */
947
+
948
+ .medplum-search-control > table thead th {
949
+ text-align: left;
950
+ background-color: var(--medplum-blue-50);
951
+ white-space: nowrap;
952
+ color: var(--medplum-gray-700);
953
+ border: 0.1px solid var(--medplum-gray-300);
954
+ position: relative;
955
+ }
956
+
957
+ .medplum-search-control > table thead th:hover {
958
+ background-color: var(--medplum-blue-200);
959
+ }
960
+
961
+ .medplum-search-control > table thead th.filters {
962
+ background-color: var(--medplum-gray-100);
963
+ text-align: center;
964
+ color: var(--medplum-gray-600);
965
+ }
966
+
967
+ .medplum-search-control > table thead th svg {
968
+ position: absolute;
969
+ top: 2px;
970
+ right: 2px;
971
+ width: 14px;
972
+ height: 14px;
973
+ }
974
+
975
+ /* Body cells */
976
+
977
+ .medplum-search-control > table tbody tr {
978
+ background-color: var(--medplum-surface);
979
+ }
980
+
981
+ .medplum-search-control > table tbody tr.high-priority {
982
+ background-color: var(--medplum-gray-300);
983
+ }
984
+
985
+ .medplum-search-control > table tbody tr.duplicate {
986
+ background-color: var(--medplum-gray-100);
987
+ }
988
+
989
+ .medplum-search-control > table tbody tr:hover {
990
+ background-color: var(--medplum-yellow-100);
991
+ }
992
+
993
+ .medplum-search-control > table tbody td {
994
+ color: var(--medplum-gray-800);
995
+ border-right: 0.1px solid var(--medplum-gray-100);
996
+ }
997
+
998
+ .medplum-search-control .medplum-empty-search {
999
+ background: var(--medplum-gray-100);
1000
+ border: 0.1px solid var(--medplum-gray-300);
1001
+ color: var(--medplum-gray-500);
1002
+ text-align: center;
1003
+ padding: 40px;
1004
+ font-size: var(--medplum-font-big);
1005
+ }
1006
+
1007
+ .medplum-search-icon-cell {
1008
+ padding: 0 !important;
1009
+ text-align: center !important;
1010
+ width: 32px !important;
1011
+ min-width: 32px !important;
1012
+ max-width: 32px !important;
1013
+ }
1014
+
1015
+ .medplum-search-icon-cell input[type='checkbox'] {
1016
+ margin: 0;
1017
+ padding: 0;
1018
+ border: 0.1px solid var(--medplum-gray-600);
1019
+ outline: 0;
1020
+ }
1021
+
782
1022
  .medplum-footer {
783
1023
  text-align: center;
784
1024
  font-size: 12px;
@@ -1114,292 +1354,145 @@ div.medplum-nav-menu-container {
1114
1354
  color: var(--medplum-blue-500);
1115
1355
  }
1116
1356
 
1117
- .medplum-blame-container {
1118
- overflow-x: auto;
1357
+ .medplum-status {
1358
+ padding: 1px 6px;
1359
+ font-size: 80%;
1360
+ line-height: 1;
1361
+ text-align: center;
1362
+ white-space: nowrap;
1363
+ vertical-align: baseline;
1364
+ border-radius: 8px;
1119
1365
  }
1120
1366
 
1121
- .medplum-blame {
1122
- border: 0.1px solid var(--medplum-gray-100);
1123
- border-collapse: collapse;
1124
- border-radius: 4px;
1125
- border-spacing: 0;
1126
- width: 100%;
1367
+ /*
1368
+ * Request status: https://hl7.org/fhir/valueset-request-status.html
1369
+ * draft, active, on-hold, revoked, completed, entered-in-error, unknown
1370
+ *
1371
+ * Publication status: https://hl7.org/fhir/valueset-publication-status.html
1372
+ * draft, active, retired, unknown
1373
+ *
1374
+ * Observation status: https://www.hl7.org/fhir/valueset-observation-status.html
1375
+ * registered, preliminary, final, amended, cancelled, entered-in-error, unknown
1376
+ *
1377
+ * DiagnosticReport status: https://hl7.org/fhir/valueset-diagnostic-report-status.html
1378
+ * registered, preliminary, final, amended, corrected, appended, cancelled, entered-in-error, unknown
1379
+ *
1380
+ * Task status: https://hl7.org/fhir/valueset-task-status.html
1381
+ * draft, requested, received, accepted, rejected, ready, cancelled, in-progress, on-hold, failed, completed, entered-in-error
1382
+ */
1383
+
1384
+ .medplum-status-active,
1385
+ .medplum-status-draft,
1386
+ .medplum-status-preliminary,
1387
+ .medplum-status-registered,
1388
+ .medplum-status-requested {
1389
+ background-color: var(--medplum-blue-50);
1390
+ border: 0.01px solid var(--medplum-blue-300);
1391
+ color: var(--medplum-blue-800);
1127
1392
  }
1128
1393
 
1129
- .medplum-blame .start-row {
1130
- border-top: 0.1px solid var(--medplum-gray-100);
1394
+ .medplum-status-on-hold {
1395
+ background-color: var(--medplum-orange-50);
1396
+ border: 0.01px solid var(--medplum-orange-300);
1397
+ color: var(--medplum-orange-800);
1131
1398
  }
1132
1399
 
1133
- .medplum-blame .normal-row {
1134
- border-top: 0;
1400
+ .medplum-status-completed {
1401
+ background-color: var(--medplum-green-50);
1402
+ border: 0.01px solid var(--medplum-green-300);
1403
+ color: var(--medplum-green-800);
1135
1404
  }
1136
1405
 
1137
- .medplum-blame .details {
1138
- border-right: 0.1px solid var(--medplum-gray-100);
1139
- padding: 4px;
1140
- font-size: 10px;
1141
- line-height: 10px;
1142
- vertical-align: top;
1406
+ .medplum-status-cancelled,
1407
+ .medplum-status-rejected,
1408
+ .medplum-status-revoked,
1409
+ .medplum-status-entered-in-error {
1410
+ background-color: var(--medplum-red-50);
1411
+ border: 0.01px solid var(--medplum-red-300);
1412
+ color: var(--medplum-red-800);
1143
1413
  }
1144
1414
 
1145
- .medplum-blame .line-number {
1415
+ .medplum-status-unknown {
1146
1416
  background-color: var(--medplum-gray-50);
1147
- border: 0;
1148
- color: var(--medplum-gray-500);
1149
- font-family: monospace;
1150
- padding: 4px 8px;
1151
- text-align: right;
1152
- }
1153
-
1154
- .medplum-blame .line {
1155
- font-family: monospace;
1156
- padding: 4px 8px;
1157
- }
1158
-
1159
- .medplum-blame .line-pre {
1160
- margin: 0;
1161
- }
1162
-
1163
- .medplum-search-control {
1164
- max-width: 100%;
1165
- overflow: auto;
1166
- text-align: left;
1167
- margin-bottom: 20px;
1168
- background: var(--medplum-surface);
1417
+ border: 0.01px solid var(--medplum-gray-500);
1418
+ color: var(--medplum-gray-800);
1169
1419
  }
1170
1420
 
1171
- .medplum-search-control .medplum-search-summary {
1172
- line-height: 28px;
1173
- padding: 2px 6px;
1174
- font-size: 12px;
1175
- white-space: nowrap;
1421
+ .medplum-request-group {
1422
+ padding: 4px;
1176
1423
  }
1177
1424
 
1178
- /*
1179
- * Table styles
1180
- */
1181
-
1182
- .medplum-search-control > table {
1425
+ .medplum-request-group-task {
1426
+ display: flex;
1427
+ flex-direction: row;
1183
1428
  width: 100%;
1184
- clear: both;
1185
- border-top: 0.1px solid var(--medplum-gray-300);
1186
- border-collapse: collapse;
1187
- }
1188
-
1189
- .medplum-search-control > table tr {
1190
- border-bottom: 0.1px solid var(--medplum-gray-300);
1191
- }
1192
-
1193
- .medplum-search-control > table td,
1194
- .medplum-search-control > table th {
1195
- padding: 7px 10px;
1196
- cursor: pointer;
1197
- }
1198
-
1199
- .medplum-search-control > table td.c {
1200
- text-align: center;
1201
- }
1202
-
1203
- .medplum-search-control > table td.r {
1204
- text-align: right;
1429
+ margin-bottom: 16px;
1205
1430
  }
1206
1431
 
1207
- /* Header cells */
1208
-
1209
- .medplum-search-control > table thead th {
1210
- text-align: left;
1211
- background-color: var(--medplum-blue-50);
1212
- white-space: nowrap;
1432
+ .medplum-request-group-task-checkmark {
1213
1433
  color: var(--medplum-gray-700);
1214
- border: 0.1px solid var(--medplum-gray-300);
1215
- position: relative;
1434
+ font-size: 24px;
1435
+ width: 40px;
1216
1436
  }
1217
1437
 
1218
- .medplum-search-control > table thead th:hover {
1219
- background-color: var(--medplum-blue-200);
1438
+ .medplum-request-group-task-details {
1439
+ flex: 1;
1440
+ line-height: 1.75;
1220
1441
  }
1221
1442
 
1222
- .medplum-search-control > table thead th.filters {
1223
- background-color: var(--medplum-gray-100);
1224
- text-align: center;
1225
- color: var(--medplum-gray-600);
1443
+ .medplum-request-group-task-title {
1444
+ font-size: 14px;
1445
+ font-weight: bold;
1226
1446
  }
1227
1447
 
1228
- .medplum-search-control > table thead th svg {
1229
- position: absolute;
1230
- top: 2px;
1231
- right: 2px;
1232
- width: 14px;
1233
- height: 14px;
1448
+ .medplum-request-grou-task-actions {
1449
+ width: 100px;
1234
1450
  }
1235
1451
 
1236
- /* Body cells */
1237
-
1238
- .medplum-search-control > table tbody tr {
1239
- background-color: var(--medplum-surface);
1452
+ .medplum-blame-container {
1453
+ overflow-x: auto;
1240
1454
  }
1241
1455
 
1242
- .medplum-search-control > table tbody tr.high-priority {
1243
- background-color: var(--medplum-gray-300);
1456
+ .medplum-blame {
1457
+ border: 0.1px solid var(--medplum-gray-100);
1458
+ border-collapse: collapse;
1459
+ border-radius: 4px;
1460
+ border-spacing: 0;
1461
+ width: 100%;
1244
1462
  }
1245
1463
 
1246
- .medplum-search-control > table tbody tr.duplicate {
1247
- background-color: var(--medplum-gray-100);
1464
+ .medplum-blame .start-row {
1465
+ border-top: 0.1px solid var(--medplum-gray-100);
1248
1466
  }
1249
1467
 
1250
- .medplum-search-control > table tbody tr:hover {
1251
- background-color: var(--medplum-yellow-100);
1468
+ .medplum-blame .normal-row {
1469
+ border-top: 0;
1252
1470
  }
1253
1471
 
1254
- .medplum-search-control > table tbody td {
1255
- color: var(--medplum-gray-800);
1472
+ .medplum-blame .details {
1256
1473
  border-right: 0.1px solid var(--medplum-gray-100);
1474
+ padding: 4px;
1475
+ font-size: 10px;
1476
+ line-height: 10px;
1477
+ vertical-align: top;
1257
1478
  }
1258
1479
 
1259
- .medplum-search-control .medplum-empty-search {
1260
- background: var(--medplum-gray-100);
1261
- border: 0.1px solid var(--medplum-gray-300);
1480
+ .medplum-blame .line-number {
1481
+ background-color: var(--medplum-gray-50);
1482
+ border: 0;
1262
1483
  color: var(--medplum-gray-500);
1263
- text-align: center;
1264
- padding: 40px;
1265
- font-size: var(--medplum-font-big);
1266
- }
1267
-
1268
- .medplum-search-icon-cell {
1269
- padding: 0 !important;
1270
- text-align: center !important;
1271
- width: 32px !important;
1272
- min-width: 32px !important;
1273
- max-width: 32px !important;
1274
- }
1275
-
1276
- .medplum-search-icon-cell input[type='checkbox'] {
1277
- margin: 0;
1278
- padding: 0;
1279
- border: 0.1px solid var(--medplum-gray-600);
1280
- outline: 0;
1281
- }
1282
-
1283
- /*
1284
- * Filter editor
1285
- */
1286
-
1287
- .medplum-filter-editor {
1288
- text-align: left;
1289
- min-width: 800px;
1290
- }
1291
-
1292
- .medplum-filter-editor-table {
1293
- width: 100%;
1294
- border-collapse: collapse;
1295
- }
1296
-
1297
- .modal-dialog {
1298
- background: var(--medplum-gray-600);
1299
- border: 0.1px solid var(--medplum-gray-700);
1300
- color: var(--medplum-foreground);
1301
- padding: 0;
1302
- position: absolute;
1303
- z-index: 21;
1304
- box-shadow: var(--medplum-shadow) 0 2px 6px;
1305
- outline: 0;
1306
- }
1307
-
1308
- .modal-dialog a,
1309
- .modal-dialog a:link,
1310
- .modal-dialog a:visited {
1311
- color: var(--medplum-blue-800);
1312
- cursor: pointer;
1313
- }
1314
-
1315
- .modal-dialog-bg {
1316
- background: rgba(0, 0, 0, 0.5);
1317
- left: 0;
1318
- position: absolute;
1319
- top: 0;
1320
- right: 0;
1321
- bottom: 0;
1322
- z-index: 20;
1323
- }
1324
-
1325
- .modal-dialog-title {
1326
- background: var(--medplum-gray-800);
1327
- color: var(--medplum-surface);
1328
- cursor: pointer;
1329
- padding: 6px;
1330
- display: flex;
1331
- justify-content: space-between;
1332
- }
1333
-
1334
- .modal-dialog-title-close {
1335
- cursor: pointer;
1336
- vertical-align: middle;
1337
- }
1338
-
1339
- .modal-dialog-title-close:hover {
1340
- background-color: var(--medplum-gray-700);
1341
- }
1342
-
1343
- .modal-dialog-title-close > svg {
1344
- width: 20px;
1345
- height: 20px;
1346
- }
1347
-
1348
- .modal-dialog-content {
1349
- text-align: center;
1350
- background-color: var(--medplum-surface);
1351
- padding: 8px;
1352
- }
1353
-
1354
- .modal-dialog-buttons {
1355
- text-align: right;
1356
- background-color: var(--medplum-gray-100);
1357
- border-top: 1px solid var(--medplum-gray-400);
1358
- padding: 8px;
1359
- }
1360
-
1361
- .modal-dialog-buttons button {
1362
- padding: 1px 6px;
1363
- }
1364
-
1365
- .medplum-menu-separator {
1366
- border-top: 0.1px solid var(--medplum-gray-400);
1367
- margin: 4px 0;
1368
- padding: 0;
1369
- }
1370
-
1371
- .medplum-submenu-arrow {
1372
- color: var(--medplum-foreground);
1373
- left: auto;
1374
- padding-right: 6px;
1375
- position: absolute;
1376
- right: 0;
1484
+ font-family: monospace;
1485
+ padding: 4px 8px;
1377
1486
  text-align: right;
1378
- user-select: none;
1379
1487
  }
1380
1488
 
1381
- .medplum-title-bar {
1382
- display: flex;
1383
- width: 100%;
1384
- height: 50px;
1385
- padding: 15px;
1386
- justify-content: space-between;
1387
- background: var(--medplum-surface);
1388
- border-bottom: 2px solid var(--medplum-gray-200);
1389
- color: var(--medplum-gray-800);
1390
- }
1391
-
1392
- .medplum-title-bar > div {
1393
- display: flex;
1394
- align-items: center;
1489
+ .medplum-blame .line {
1490
+ font-family: monospace;
1491
+ padding: 4px 8px;
1395
1492
  }
1396
1493
 
1397
- .medplum-title-bar h1 {
1398
- font-size: 14px;
1399
- font-weight: bold;
1400
- padding: 0 4px 0 1px;
1401
- margin: 0 4px 0 1px;
1402
- color: var(--medplum-gray-800);
1494
+ .medplum-blame .line-pre {
1495
+ margin: 0;
1403
1496
  }
1404
1497
 
1405
1498
  .medplum-signin {