@medplum/react 0.9.20 → 0.9.23

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.
@@ -1370,6 +1370,76 @@ div.medplum-nav-menu-container {
1370
1370
  color: var(--medplum-blue-500);
1371
1371
  }
1372
1372
 
1373
+ .medplum-signin-buttons {
1374
+ display: flex;
1375
+ justify-content: space-between;
1376
+ line-height: 32px;
1377
+ }
1378
+
1379
+ .medplum-signin-buttons > div {
1380
+ display: flex;
1381
+ align-items: center;
1382
+ }
1383
+
1384
+ .medplum-signin-buttons a {
1385
+ font-size: 12px;
1386
+ margin-right: 16px;
1387
+ }
1388
+
1389
+ .medplum-signin-buttons label {
1390
+ font-size: 12px;
1391
+ }
1392
+
1393
+ .medplum-signin-google-container {
1394
+ padding: 20px 0 10px 0;
1395
+ margin: 20px 0 10px 0;
1396
+ text-align: center;
1397
+ display: flex;
1398
+ align-items: center;
1399
+ justify-content: center;
1400
+ }
1401
+
1402
+ .medplum-signin-separator {
1403
+ padding: 12px 0;
1404
+ margin: 12px 0;
1405
+ overflow: hidden;
1406
+ text-align: center;
1407
+ font-size: var(--medplum-font-small);
1408
+ }
1409
+
1410
+ .medplum-signin-separator::before,
1411
+ .medplum-signin-separator::after {
1412
+ background-color: var(--medplum-gray-400);
1413
+ content: '';
1414
+ display: inline-block;
1415
+ height: 0.1px;
1416
+ position: relative;
1417
+ vertical-align: middle;
1418
+ width: 50%;
1419
+ }
1420
+
1421
+ .medplum-signin-separator::before {
1422
+ right: 0.5em;
1423
+ margin-left: -50%;
1424
+ }
1425
+
1426
+ .medplum-signin-separator::after {
1427
+ left: 0.5em;
1428
+ margin-right: -50%;
1429
+ }
1430
+
1431
+ .medplum-left {
1432
+ text-align: left;
1433
+ }
1434
+
1435
+ .medplum-center {
1436
+ text-align: center;
1437
+ }
1438
+
1439
+ .medplum-right {
1440
+ text-align: right;
1441
+ }
1442
+
1373
1443
  .medplum-status {
1374
1444
  padding: 1px 6px;
1375
1445
  font-size: 80%;
@@ -1511,61 +1581,64 @@ div.medplum-nav-menu-container {
1511
1581
  margin: 0;
1512
1582
  }
1513
1583
 
1514
- .medplum-signin {
1515
- max-width: 400px;
1516
- }
1517
-
1518
- .medplum-signin-buttons {
1519
- display: flex;
1520
- justify-content: space-between;
1521
- line-height: 32px;
1522
- }
1523
-
1524
- .medplum-signin-buttons > div {
1525
- display: flex;
1526
- align-items: center;
1584
+ .medplum-calendar-table {
1585
+ width: 350px;
1527
1586
  }
1528
1587
 
1529
- .medplum-signin-buttons a {
1530
- font-size: 12px;
1531
- margin-right: 16px;
1588
+ .medplum-calendar-table th {
1589
+ font-weight: normal;
1590
+ font-size: 11px;
1591
+ padding: 8px;
1592
+ text-align: center;
1532
1593
  }
1533
1594
 
1534
- .medplum-signin-buttons label {
1535
- font-size: 12px;
1595
+ .medplum-calendar-table td {
1596
+ padding: 2px 4px;
1536
1597
  }
1537
1598
 
1538
- .medplum-signin-google-container {
1539
- padding: 20px 0 10px 0;
1540
- margin: 20px 0 10px 0;
1599
+ .medplum-calendar-table button {
1600
+ width: 44px;
1601
+ height: 44px;
1602
+ color: #0060e6;
1603
+ font-size: 16px;
1604
+ font-weight: bold;
1541
1605
  text-align: center;
1542
- display: flex;
1543
- align-items: center;
1544
- justify-content: center;
1545
- border-top: 0.1px solid var(--medplum-gray-200);
1606
+ padding: 0;
1607
+ background-color: #eef5ff;
1608
+ border: 0;
1609
+ border-radius: 50%;
1610
+ cursor: pointer;
1546
1611
  }
1547
1612
 
1548
- .medplum-signin-google-icon {
1549
- margin-right: 8px;
1613
+ .medplum-calendar-table button:hover {
1614
+ background-color: #d9e9ff;
1550
1615
  }
1551
1616
 
1552
- .medplum-signin-google-icon svg {
1553
- display: inline-block;
1554
- vertical-align: top;
1617
+ .medplum-calendar-table button:disabled {
1618
+ background-color: white;
1619
+ cursor: default;
1620
+ color: #666;
1621
+ font-weight: normal;
1555
1622
  }
1556
1623
 
1557
- .medplum-left {
1558
- text-align: left;
1624
+ .medplum-calendar-container {
1625
+ display: flex;
1626
+ min-height: 400px;
1559
1627
  }
1560
1628
 
1561
- .medplum-center {
1562
- text-align: center;
1629
+ .medplum-calendar-info-pane {
1630
+ min-width: 300px;
1631
+ padding: 20px;
1632
+ border-right: 1px solid #ddd;
1563
1633
  }
1564
1634
 
1565
- .medplum-right {
1566
- text-align: right;
1635
+ .medplum-calendar-selection-pane {
1636
+ min-width: 300px;
1637
+ padding: 20px;
1567
1638
  }
1568
1639
 
1640
+ .grecaptcha-badge { visibility: hidden; }
1641
+
1569
1642
  a.medplum-tab {
1570
1643
  display: inline-block;
1571
1644
  line-height: 50px;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import './SignInForm.css';
3
+ import './util.css';
4
+ export interface BaseRegisterFormProps {
5
+ readonly googleClientId?: string;
6
+ readonly children?: React.ReactNode;
7
+ readonly onSuccess: () => void;
8
+ }
9
+ export interface PatientRegisterFormProps extends BaseRegisterFormProps {
10
+ readonly type: 'patient';
11
+ readonly projectId: string;
12
+ }
13
+ export interface ProjectRegisterFormProps extends BaseRegisterFormProps {
14
+ readonly type: 'project';
15
+ }
16
+ export declare type RegisterFormProps = PatientRegisterFormProps | ProjectRegisterFormProps;
17
+ export declare function RegisterForm(props: RegisterFormProps): JSX.Element;
@@ -47,6 +47,7 @@ export * from './QuestionnaireUtils';
47
47
  export * from './RangeDisplay';
48
48
  export * from './RangeInput';
49
49
  export * from './ReferenceInput';
50
+ export * from './RegisterForm';
50
51
  export * from './RequestGroupDisplay';
51
52
  export * from './ResourceArrayDisplay';
52
53
  export * from './ResourceArrayInput';
@@ -61,6 +62,7 @@ export * from './ResourcePropertyDisplay';
61
62
  export * from './ResourcePropertyInput';
62
63
  export * from './ResourceTable';
63
64
  export * from './ResourceTimeline';
65
+ export * from './Scheduler';
64
66
  export * from './Scrollable';
65
67
  export * from './SearchControl';
66
68
  export * from './SearchFieldEditor';
@@ -81,3 +83,4 @@ export * from './UploadButton';
81
83
  export * from './useResource';
82
84
  export * from './utils';
83
85
  export * from './utils/date';
86
+ export * from './utils/recaptcha';
@@ -7,3 +7,5 @@ export declare const Groups: () => JSX.Element;
7
7
  export declare const MultipleChoice: () => JSX.Element;
8
8
  export declare const KitchenSink: () => JSX.Element;
9
9
  export declare const KitchenSinkWithInitialValues: () => JSX.Element;
10
+ export declare const USSurgeonGeneralFamilyHealthPortrait: () => JSX.Element;
11
+ export declare const AHCHRSNScreening: () => JSX.Element;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { Meta } from '@storybook/react';
3
+ declare const _default: Meta<import("@storybook/react").Args>;
4
+ export default _default;
5
+ export declare function Basic(): JSX.Element;
6
+ export declare function WithFooter(): JSX.Element;
7
+ export declare function WithGoogle(): JSX.Element;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Dynamically loads the recaptcha script.
3
+ * We do not want to load the script on page load unless the user needs it.
4
+ */
5
+ export declare function initRecaptcha(): void;
6
+ /**
7
+ * Starts a request to generate a recapcha token.
8
+ * @returns Promise to a recaptcha token for the current user.
9
+ */
10
+ export declare function getRecaptcha(): Promise<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medplum/react",
3
- "version": "0.9.20",
3
+ "version": "0.9.23",
4
4
  "description": "Medplum React Component Library",
5
5
  "author": "Medplum <hello@medplum.com>",
6
6
  "license": "Apache-2.0",
@@ -19,26 +19,26 @@
19
19
  "storybook": "build-storybook"
20
20
  },
21
21
  "devDependencies": {
22
- "@medplum/core": "0.9.20",
23
- "@medplum/fhirtypes": "0.9.20",
24
- "@medplum/mock": "0.9.20",
22
+ "@medplum/core": "0.9.23",
23
+ "@medplum/fhirtypes": "0.9.23",
24
+ "@medplum/mock": "0.9.23",
25
25
  "@storybook/addon-actions": "6.5.9",
26
26
  "@storybook/addon-essentials": "6.5.9",
27
27
  "@storybook/addon-links": "6.5.9",
28
28
  "@storybook/builder-webpack5": "6.5.9",
29
29
  "@storybook/manager-webpack5": "6.5.9",
30
30
  "@storybook/react": "6.5.9",
31
- "@testing-library/dom": "8.14.0",
31
+ "@testing-library/dom": "8.16.0",
32
32
  "@testing-library/jest-dom": "5.16.4",
33
33
  "@testing-library/react": "13.3.0",
34
- "@types/jest": "28.1.3",
35
- "@types/node": "18.0.0",
36
- "@types/react": "18.0.14",
37
- "@types/react-dom": "18.0.5",
34
+ "@types/jest": "28.1.4",
35
+ "@types/node": "18.0.3",
36
+ "@types/react": "18.0.15",
37
+ "@types/react-dom": "18.0.6",
38
38
  "@types/react-router-dom": "5.3.3",
39
- "dotenv-webpack": "7.1.1",
39
+ "dotenv-webpack": "8.0.0",
40
40
  "identity-obj-proxy": "3.0.0",
41
- "jest": "28.1.1",
41
+ "jest": "28.1.2",
42
42
  "jest-each": "28.1.1",
43
43
  "html-webpack-plugin": "5.5.0",
44
44
  "react": "18.2.0",
@@ -48,7 +48,7 @@
48
48
  "typescript": "4.7.4"
49
49
  },
50
50
  "peerDependencies": {
51
- "@medplum/core": "0.9.20",
51
+ "@medplum/core": "0.9.23",
52
52
  "react": "^17.0.2 || ^18.0.0",
53
53
  "react-dom": "^17.0.2 || ^18.0.0",
54
54
  "react-router-dom": "^6.2.2"