@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.
- package/dist/cjs/index.js +407 -94
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +1 -1
- package/dist/cjs/index.min.js.map +1 -1
- package/dist/cjs/styles.css +109 -36
- package/dist/esm/index.js +406 -97
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +1 -1
- package/dist/esm/index.min.js.map +1 -1
- package/dist/esm/styles.css +109 -36
- package/dist/types/RegisterForm.d.ts +17 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/stories/QuestionnaireForm.stories.d.ts +2 -0
- package/dist/types/stories/RegisterForm.stories.d.ts +7 -0
- package/dist/types/utils/recaptcha.d.ts +10 -0
- package/package.json +12 -12
package/dist/esm/styles.css
CHANGED
|
@@ -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-
|
|
1515
|
-
|
|
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-
|
|
1530
|
-
font-
|
|
1531
|
-
|
|
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-
|
|
1535
|
-
|
|
1595
|
+
.medplum-calendar-table td {
|
|
1596
|
+
padding: 2px 4px;
|
|
1536
1597
|
}
|
|
1537
1598
|
|
|
1538
|
-
.medplum-
|
|
1539
|
-
|
|
1540
|
-
|
|
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
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
border-
|
|
1606
|
+
padding: 0;
|
|
1607
|
+
background-color: #eef5ff;
|
|
1608
|
+
border: 0;
|
|
1609
|
+
border-radius: 50%;
|
|
1610
|
+
cursor: pointer;
|
|
1546
1611
|
}
|
|
1547
1612
|
|
|
1548
|
-
.medplum-
|
|
1549
|
-
|
|
1613
|
+
.medplum-calendar-table button:hover {
|
|
1614
|
+
background-color: #d9e9ff;
|
|
1550
1615
|
}
|
|
1551
1616
|
|
|
1552
|
-
.medplum-
|
|
1553
|
-
|
|
1554
|
-
|
|
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-
|
|
1558
|
-
|
|
1624
|
+
.medplum-calendar-container {
|
|
1625
|
+
display: flex;
|
|
1626
|
+
min-height: 400px;
|
|
1559
1627
|
}
|
|
1560
1628
|
|
|
1561
|
-
.medplum-
|
|
1562
|
-
|
|
1629
|
+
.medplum-calendar-info-pane {
|
|
1630
|
+
min-width: 300px;
|
|
1631
|
+
padding: 20px;
|
|
1632
|
+
border-right: 1px solid #ddd;
|
|
1563
1633
|
}
|
|
1564
1634
|
|
|
1565
|
-
.medplum-
|
|
1566
|
-
|
|
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;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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.
|
|
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.
|
|
23
|
-
"@medplum/fhirtypes": "0.9.
|
|
24
|
-
"@medplum/mock": "0.9.
|
|
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.
|
|
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.
|
|
35
|
-
"@types/node": "18.0.
|
|
36
|
-
"@types/react": "18.0.
|
|
37
|
-
"@types/react-dom": "18.0.
|
|
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": "
|
|
39
|
+
"dotenv-webpack": "8.0.0",
|
|
40
40
|
"identity-obj-proxy": "3.0.0",
|
|
41
|
-
"jest": "28.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.
|
|
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"
|