@seamapi/react 0.16.0 → 0.17.0
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/README.md +5 -2
- package/index.css +403 -71
- package/index.css.map +1 -1
- package/index.min.css +1 -1
- package/index.min.css.map +1 -1
- package/lib/NavigationProvider.d.ts +27 -0
- package/lib/NavigationProvider.js +36 -0
- package/lib/NavigationProvider.js.map +1 -0
- package/lib/NavigationView.d.ts +5 -0
- package/lib/NavigationView.js +25 -0
- package/lib/NavigationView.js.map +1 -0
- package/lib/icons/LockLocked.d.ts +2 -0
- package/lib/icons/LockLocked.js +5 -0
- package/lib/icons/LockLocked.js.map +1 -0
- package/lib/icons/LockUnlocked.d.ts +2 -0
- package/lib/icons/LockUnlocked.js +5 -0
- package/lib/icons/LockUnlocked.js.map +1 -0
- package/lib/seam/access-codes/use-access-code.d.ts +8 -0
- package/lib/seam/access-codes/use-access-code.js +32 -0
- package/lib/seam/access-codes/use-access-code.js.map +1 -0
- package/lib/seam/access-codes/use-access-codes.d.ts +9 -0
- package/lib/seam/access-codes/use-access-codes.js +18 -0
- package/lib/seam/access-codes/use-access-codes.js.map +1 -0
- package/lib/seam/devices/types.d.ts +2 -0
- package/lib/seam/devices/types.js +2 -0
- package/lib/seam/devices/types.js.map +1 -0
- package/lib/seam/devices/use-device.d.ts +9 -0
- package/lib/seam/devices/use-device.js +56 -0
- package/lib/seam/devices/use-device.js.map +1 -0
- package/lib/seam/devices/use-devices.d.ts +4 -9
- package/lib/seam/devices/use-devices.js +2 -1
- package/lib/seam/devices/use-devices.js.map +1 -1
- package/lib/seam/index.d.ts +4 -1
- package/lib/seam/index.js +4 -1
- package/lib/seam/index.js.map +1 -1
- package/lib/seam/use-seam-client.js +12 -9
- package/lib/seam/use-seam-client.js.map +1 -1
- package/lib/seam/use-seam-query-result.js.map +1 -0
- package/lib/ui/AccessCodeDetails/AccessCodeDetails.d.ts +4 -0
- package/lib/ui/AccessCodeDetails/AccessCodeDetails.js +63 -0
- package/lib/ui/AccessCodeDetails/AccessCodeDetails.js.map +1 -0
- package/lib/ui/AccessCodeDetails/AccessCodeDevice.d.ts +3 -0
- package/lib/ui/AccessCodeDetails/AccessCodeDevice.js +25 -0
- package/lib/ui/AccessCodeDetails/AccessCodeDevice.js.map +1 -0
- package/lib/ui/AccessCodeTable/AccessCodeTable.d.ts +0 -1
- package/lib/ui/AccessCodeTable/AccessCodeTable.js +14 -4
- package/lib/ui/AccessCodeTable/AccessCodeTable.js.map +1 -1
- package/lib/ui/AccessCodeTable/AccessCodeTableContent.d.ts +5 -0
- package/lib/ui/AccessCodeTable/AccessCodeTableContent.js +19 -0
- package/lib/ui/AccessCodeTable/AccessCodeTableContent.js.map +1 -0
- package/lib/ui/AccessCodeTable/CodeDetails.js +1 -1
- package/lib/ui/AccessCodeTable/CodeDetails.js.map +1 -1
- package/lib/ui/Button.d.ts +8 -0
- package/lib/ui/Button.js +8 -0
- package/lib/ui/Button.js.map +1 -0
- package/lib/ui/DeviceDetails/DeviceDetails.d.ts +2 -3
- package/lib/ui/DeviceDetails/DeviceDetails.js +32 -13
- package/lib/ui/DeviceDetails/DeviceDetails.js.map +1 -1
- package/lib/ui/DeviceDetails/DeviceModel.d.ts +7 -0
- package/lib/ui/DeviceDetails/DeviceModel.js +18 -0
- package/lib/ui/DeviceDetails/DeviceModel.js.map +1 -0
- package/lib/ui/DeviceTable/DeviceTable.d.ts +7 -0
- package/lib/ui/DeviceTable/DeviceTable.js +43 -0
- package/lib/ui/DeviceTable/DeviceTable.js.map +1 -0
- package/lib/ui/IconButton.js +1 -1
- package/lib/ui/IconButton.js.map +1 -1
- package/lib/ui/Table/TableRow.d.ts +3 -1
- package/lib/ui/Table/TableRow.js +1 -1
- package/lib/ui/Table/TableRow.js.map +1 -1
- package/lib/ui/TextButton.d.ts +7 -0
- package/lib/ui/TextButton.js +5 -0
- package/lib/ui/TextButton.js.map +1 -0
- package/lib/ui/TextField/SearchTextField.d.ts +1 -1
- package/lib/ui/TextField/SearchTextField.js +1 -1
- package/lib/ui/TextField/SearchTextField.js.map +1 -1
- package/lib/ui/device/BatteryStatus.d.ts +5 -0
- package/lib/ui/{DeviceDetails → device}/BatteryStatus.js +5 -6
- package/lib/ui/device/BatteryStatus.js.map +1 -0
- package/lib/ui/{DeviceDetails → device}/DeviceImage.d.ts +2 -1
- package/lib/ui/{DeviceDetails → device}/DeviceImage.js +2 -2
- package/lib/ui/device/DeviceImage.js.map +1 -0
- package/lib/ui/device/LockStatus.d.ts +5 -0
- package/lib/ui/device/LockStatus.js +19 -0
- package/lib/ui/device/LockStatus.js.map +1 -0
- package/lib/ui/device/OnlineStatus.d.ts +5 -0
- package/lib/ui/{DeviceDetails → device}/OnlineStatus.js +4 -5
- package/lib/ui/device/OnlineStatus.js.map +1 -0
- package/lib/ui/index.d.ts +3 -1
- package/lib/ui/index.js +3 -1
- package/lib/ui/index.js.map +1 -1
- package/lib/ui/layout/ContentHeader.d.ts +1 -2
- package/lib/ui/layout/ContentHeader.js +7 -1
- package/lib/ui/layout/ContentHeader.js.map +1 -1
- package/package.json +8 -7
- package/src/icons/lock-locked.svg +8 -0
- package/src/icons/lock-unlocked.svg +9 -0
- package/src/lib/NavigationProvider.tsx +86 -0
- package/src/lib/NavigationView.tsx +32 -0
- package/src/lib/icons/LockLocked.tsx +32 -0
- package/src/lib/icons/LockUnlocked.tsx +34 -0
- package/src/lib/seam/access-codes/use-access-code.ts +45 -0
- package/src/lib/seam/access-codes/use-access-codes.ts +39 -0
- package/src/lib/seam/devices/types.ts +5 -0
- package/src/lib/seam/devices/use-device.ts +79 -0
- package/src/lib/seam/devices/use-devices.ts +13 -8
- package/src/lib/seam/index.ts +4 -1
- package/src/lib/seam/use-seam-client.ts +12 -9
- package/src/lib/ui/AccessCodeDetails/AccessCodeDetails.tsx +144 -0
- package/src/lib/ui/AccessCodeDetails/AccessCodeDevice.tsx +43 -0
- package/src/lib/ui/AccessCodeTable/AccessCodeTable.tsx +20 -16
- package/src/lib/ui/AccessCodeTable/AccessCodeTableContent.tsx +57 -0
- package/src/lib/ui/AccessCodeTable/CodeDetails.tsx +1 -1
- package/src/lib/ui/Button.tsx +26 -0
- package/src/lib/ui/DeviceDetails/DeviceDetails.tsx +56 -29
- package/src/lib/ui/DeviceDetails/DeviceModel.tsx +34 -0
- package/src/lib/ui/DeviceTable/DeviceTable.tsx +94 -0
- package/src/lib/ui/IconButton.tsx +1 -1
- package/src/lib/ui/Table/TableRow.tsx +8 -2
- package/src/lib/ui/TextButton.tsx +15 -0
- package/src/lib/ui/TextField/SearchTextField.tsx +1 -1
- package/src/lib/ui/{DeviceDetails → device}/BatteryStatus.tsx +12 -14
- package/src/lib/ui/device/DeviceImage.tsx +15 -0
- package/src/lib/ui/device/LockStatus.tsx +46 -0
- package/src/lib/ui/{DeviceDetails → device}/OnlineStatus.tsx +15 -11
- package/src/lib/ui/index.ts +3 -1
- package/src/lib/ui/layout/ContentHeader.tsx +11 -6
- package/src/styles/_access-code-details.scss +121 -0
- package/src/styles/_access-code-table.scss +34 -38
- package/src/styles/_buttons.scss +125 -8
- package/src/styles/_colors.scss +30 -0
- package/src/styles/_device-details.scss +28 -9
- package/src/styles/_device-table.scss +63 -0
- package/src/styles/_icons.scss +9 -0
- package/src/styles/_inputs.scss +3 -1
- package/src/styles/_layout.scss +5 -2
- package/src/styles/_main.scss +10 -16
- package/src/styles/_reset.scss +114 -0
- package/src/styles/_tables.scss +6 -0
- package/src/styles/_typography.scss +18 -2
- package/lib/hooks/use-access-codes.d.ts +0 -5
- package/lib/hooks/use-access-codes.js +0 -16
- package/lib/hooks/use-access-codes.js.map +0 -1
- package/lib/hooks/use-device.d.ts +0 -5
- package/lib/hooks/use-device.js +0 -17
- package/lib/hooks/use-device.js.map +0 -1
- package/lib/hooks/use-devices.d.ts +0 -1
- package/lib/hooks/use-devices.js +0 -2
- package/lib/hooks/use-devices.js.map +0 -1
- package/lib/hooks/use-seam-client.d.ts +0 -1
- package/lib/hooks/use-seam-client.js +0 -2
- package/lib/hooks/use-seam-client.js.map +0 -1
- package/lib/seam/devices/index.d.ts +0 -1
- package/lib/seam/devices/index.js +0 -2
- package/lib/seam/devices/index.js.map +0 -1
- package/lib/types/use-seam-query-result.js.map +0 -1
- package/lib/ui/AccessCodeTable/index.d.ts +0 -2
- package/lib/ui/AccessCodeTable/index.js +0 -3
- package/lib/ui/AccessCodeTable/index.js.map +0 -1
- package/lib/ui/DeviceDetails/BatteryStatus.d.ts +0 -4
- package/lib/ui/DeviceDetails/BatteryStatus.js.map +0 -1
- package/lib/ui/DeviceDetails/DeviceImage.js.map +0 -1
- package/lib/ui/DeviceDetails/ModelStatus.d.ts +0 -4
- package/lib/ui/DeviceDetails/ModelStatus.js +0 -13
- package/lib/ui/DeviceDetails/ModelStatus.js.map +0 -1
- package/lib/ui/DeviceDetails/OnlineStatus.d.ts +0 -4
- package/lib/ui/DeviceDetails/OnlineStatus.js.map +0 -1
- package/lib/ui/DeviceDetails/index.d.ts +0 -5
- package/lib/ui/DeviceDetails/index.js +0 -6
- package/lib/ui/DeviceDetails/index.js.map +0 -1
- package/lib/ui/DeviceManager/DeviceManager.d.ts +0 -6
- package/lib/ui/DeviceManager/DeviceManager.js +0 -24
- package/lib/ui/DeviceManager/DeviceManager.js.map +0 -1
- package/lib/ui/DeviceManager/index.d.ts +0 -1
- package/lib/ui/DeviceManager/index.js +0 -2
- package/lib/ui/DeviceManager/index.js.map +0 -1
- package/lib/ui/Table/index.d.ts +0 -5
- package/lib/ui/Table/index.js +0 -6
- package/lib/ui/Table/index.js.map +0 -1
- package/lib/ui/TextField/index.d.ts +0 -2
- package/lib/ui/TextField/index.js +0 -3
- package/lib/ui/TextField/index.js.map +0 -1
- package/src/lib/hooks/use-access-codes.ts +0 -21
- package/src/lib/hooks/use-device.ts +0 -26
- package/src/lib/hooks/use-devices.ts +0 -1
- package/src/lib/hooks/use-seam-client.ts +0 -1
- package/src/lib/seam/devices/index.ts +0 -1
- package/src/lib/ui/AccessCodeTable/index.ts +0 -2
- package/src/lib/ui/DeviceDetails/DeviceImage.tsx +0 -12
- package/src/lib/ui/DeviceDetails/ModelStatus.tsx +0 -25
- package/src/lib/ui/DeviceDetails/index.ts +0 -5
- package/src/lib/ui/DeviceManager/DeviceManager.tsx +0 -52
- package/src/lib/ui/DeviceManager/index.ts +0 -1
- package/src/lib/ui/Table/index.ts +0 -5
- package/src/lib/ui/TextField/index.ts +0 -2
- /package/lib/{types → seam}/use-seam-query-result.d.ts +0 -0
- /package/lib/{types → seam}/use-seam-query-result.js +0 -0
- /package/src/lib/{types → seam}/use-seam-query-result.ts +0 -0
package/src/lib/ui/index.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { ArrowBackIcon } from 'lib/icons/ArrowBack.js'
|
|
2
|
+
import { useNavigation } from 'lib/NavigationProvider.js'
|
|
3
|
+
|
|
4
|
+
export function ContentHeader(props: { title?: string }): JSX.Element | null {
|
|
5
|
+
const { title } = props
|
|
6
|
+
|
|
7
|
+
const { goBack } = useNavigation()
|
|
8
|
+
if (!title && !goBack) {
|
|
9
|
+
return null
|
|
10
|
+
}
|
|
2
11
|
|
|
3
|
-
export function ContentHeader(props: {
|
|
4
|
-
title?: string
|
|
5
|
-
onClickBack?: () => void
|
|
6
|
-
}): JSX.Element {
|
|
7
12
|
return (
|
|
8
13
|
<div className='seam-content-header'>
|
|
9
|
-
<BackIcon onClick={
|
|
10
|
-
<span className='seam-title'>{
|
|
14
|
+
{goBack && <BackIcon onClick={goBack} />}
|
|
15
|
+
<span className='seam-title'>{title}</span>
|
|
11
16
|
</div>
|
|
12
17
|
)
|
|
13
18
|
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
@use './colors';
|
|
2
|
+
|
|
3
|
+
@mixin all {
|
|
4
|
+
.seam-access-code-details {
|
|
5
|
+
> .seam-summary {
|
|
6
|
+
background: colors.$bg-a;
|
|
7
|
+
border-radius: 16px;
|
|
8
|
+
margin: 0 24px 16px;
|
|
9
|
+
|
|
10
|
+
> .seam-top {
|
|
11
|
+
padding: 24px 16px;
|
|
12
|
+
|
|
13
|
+
> .seam-label {
|
|
14
|
+
font-weight: 600;
|
|
15
|
+
font-size: 14px;
|
|
16
|
+
line-height: 134%;
|
|
17
|
+
color: colors.$text-gray-1;
|
|
18
|
+
margin-bottom: 4px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
> .seam-access-code-name {
|
|
22
|
+
font-weight: 600;
|
|
23
|
+
font-size: 21px;
|
|
24
|
+
line-height: 132%;
|
|
25
|
+
margin-bottom: 8px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
> .seam-code {
|
|
29
|
+
background: #fff;
|
|
30
|
+
border: 1px solid colors.$text-gray-2;
|
|
31
|
+
border-radius: 8px;
|
|
32
|
+
padding: 10px 16px;
|
|
33
|
+
font-weight: 600;
|
|
34
|
+
font-size: 24px;
|
|
35
|
+
line-height: 134%;
|
|
36
|
+
margin-bottom: 8px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.seam-duration {
|
|
40
|
+
color: colors.$text-gray-1;
|
|
41
|
+
font-size: 14px;
|
|
42
|
+
line-height: 134%;
|
|
43
|
+
|
|
44
|
+
.seam-label {
|
|
45
|
+
font-weight: 600;
|
|
46
|
+
color: colors.$text-default;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.seam-access-code-device {
|
|
52
|
+
border-top: 1px solid colors.$bg-c;
|
|
53
|
+
padding: 8px 16px 8px 8px;
|
|
54
|
+
display: flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
|
|
57
|
+
.seam-device-image {
|
|
58
|
+
width: 72px;
|
|
59
|
+
height: 72px;
|
|
60
|
+
margin-right: 16px;
|
|
61
|
+
|
|
62
|
+
img {
|
|
63
|
+
width: 100%;
|
|
64
|
+
max-height: 100%;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.seam-body {
|
|
69
|
+
flex: 1;
|
|
70
|
+
font-weight: 400;
|
|
71
|
+
font-size: 14px;
|
|
72
|
+
line-height: 134%;
|
|
73
|
+
margin-right: 8px;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.seam-details {
|
|
79
|
+
font-size: 16px;
|
|
80
|
+
line-height: 134%;
|
|
81
|
+
border-bottom: 1px solid rgb(0 0 0 / 12%);
|
|
82
|
+
padding: 0 24px;
|
|
83
|
+
|
|
84
|
+
.seam-row {
|
|
85
|
+
padding: 16px;
|
|
86
|
+
display: flex;
|
|
87
|
+
border-top: 1px solid rgb(0 0 0 / 12%);
|
|
88
|
+
|
|
89
|
+
.seam-heading {
|
|
90
|
+
width: 112px;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.seam-content {
|
|
94
|
+
display: flex;
|
|
95
|
+
flex: 1;
|
|
96
|
+
|
|
97
|
+
.seam-times {
|
|
98
|
+
display: flex;
|
|
99
|
+
flex: 1;
|
|
100
|
+
font-size: 16px;
|
|
101
|
+
line-height: 134%;
|
|
102
|
+
|
|
103
|
+
.seam-label {
|
|
104
|
+
color: colors.$text-gray-2;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
> div {
|
|
108
|
+
div {
|
|
109
|
+
margin-bottom: 4px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&:first-child {
|
|
113
|
+
flex: 0 1 160px;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -1,54 +1,50 @@
|
|
|
1
|
+
@use './colors';
|
|
2
|
+
|
|
1
3
|
@mixin all {
|
|
2
4
|
.seam-access-code-table {
|
|
3
|
-
.seam-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.seam-table-header {
|
|
8
|
-
margin-bottom: 16px;
|
|
9
|
-
height: 56px;
|
|
10
|
-
padding: 0 16px;
|
|
11
|
-
}
|
|
5
|
+
.seam-table-row {
|
|
6
|
+
cursor: pointer;
|
|
12
7
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
display: flex;
|
|
16
|
-
align-items: center;
|
|
17
|
-
justify-content: center;
|
|
18
|
-
|
|
19
|
-
> div {
|
|
20
|
-
width: 40px;
|
|
21
|
-
height: 40px;
|
|
8
|
+
.seam-icon-cell {
|
|
9
|
+
flex: 0;
|
|
22
10
|
display: flex;
|
|
23
11
|
align-items: center;
|
|
24
12
|
justify-content: center;
|
|
13
|
+
|
|
14
|
+
> div {
|
|
15
|
+
width: 40px;
|
|
16
|
+
height: 40px;
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: center;
|
|
20
|
+
}
|
|
25
21
|
}
|
|
26
|
-
}
|
|
27
22
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
.seam-name-cell {
|
|
24
|
+
flex: 1;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
justify-content: center;
|
|
27
|
+
align-items: flex-start;
|
|
28
|
+
gap: 2px;
|
|
34
29
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
.seam-code-details {
|
|
31
|
+
font-size: 14px;
|
|
32
|
+
line-height: 134%;
|
|
33
|
+
color: colors.$text-gray-1;
|
|
39
34
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
.seam-dot-divider {
|
|
36
|
+
margin: 0 4px;
|
|
37
|
+
color: colors.$text-gray-3;
|
|
38
|
+
}
|
|
43
39
|
}
|
|
44
40
|
}
|
|
45
|
-
}
|
|
46
41
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
.seam-action-cell {
|
|
43
|
+
margin-right: 12px;
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
justify-content: center;
|
|
47
|
+
}
|
|
52
48
|
}
|
|
53
49
|
}
|
|
54
50
|
}
|
package/src/styles/_buttons.scss
CHANGED
|
@@ -1,17 +1,134 @@
|
|
|
1
|
-
@
|
|
2
|
-
|
|
1
|
+
@use './typography';
|
|
2
|
+
@use './colors';
|
|
3
|
+
|
|
4
|
+
@mixin icon-button {
|
|
5
|
+
.seam-icon-btn {
|
|
3
6
|
border-radius: 6px;
|
|
4
7
|
border: 1px solid rgb(0 122 252 / 50%);
|
|
5
8
|
cursor: pointer;
|
|
9
|
+
background: #fff;
|
|
10
|
+
padding: 6px;
|
|
11
|
+
line-height: 0;
|
|
12
|
+
|
|
13
|
+
&:hover {
|
|
14
|
+
background: rgb(0 122 252 / 8%);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@mixin text-button {
|
|
20
|
+
.seam-text-btn {
|
|
21
|
+
color: colors.$primary;
|
|
22
|
+
padding: 0;
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
background: transparent;
|
|
25
|
+
border: 0;
|
|
26
|
+
|
|
27
|
+
&:hover {
|
|
28
|
+
text-decoration: underline;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&.seam-btn-disabled,
|
|
32
|
+
&:disabled {
|
|
33
|
+
cursor: not-allowed;
|
|
34
|
+
text-decoration: none;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@mixin button-size {
|
|
40
|
+
&.seam-btn-small {
|
|
41
|
+
font-size: 14px;
|
|
42
|
+
line-height: 22px;
|
|
43
|
+
border-radius: 6px;
|
|
44
|
+
padding: 4px 10px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&.seam-btn-medium {
|
|
48
|
+
font-size: 16px;
|
|
49
|
+
line-height: 26px;
|
|
50
|
+
border-radius: 7px;
|
|
51
|
+
padding: 6px 16px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&.seam-btn-large {
|
|
55
|
+
font-size: 19px;
|
|
56
|
+
line-height: 30px;
|
|
57
|
+
border-radius: 8px;
|
|
58
|
+
padding: 8px 22px;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@mixin button-variant {
|
|
63
|
+
&.seam-btn-solid {
|
|
64
|
+
background: colors.$primary;
|
|
65
|
+
color: #fff;
|
|
66
|
+
border: 1px solid colors.$primary;
|
|
6
67
|
|
|
7
|
-
|
|
68
|
+
&:hover {
|
|
69
|
+
background: colors.$primary-dark;
|
|
70
|
+
border-color: colors.$primary-dark;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&.seam-btn-disabled,
|
|
74
|
+
&:disabled {
|
|
75
|
+
background: colors.$primary-dim;
|
|
76
|
+
border-color: colors.$primary-dim;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&.seam-btn-outline {
|
|
81
|
+
color: colors.$primary;
|
|
82
|
+
border: 1px solid colors.$primary-50;
|
|
83
|
+
background: transparent;
|
|
84
|
+
|
|
85
|
+
&:hover {
|
|
86
|
+
background: colors.$primary-5;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
&.seam-btn-disabled,
|
|
90
|
+
&:disabled {
|
|
91
|
+
background: transparent;
|
|
92
|
+
color: colors.$primary-50;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
&.seam-btn-neutral {
|
|
97
|
+
color: colors.$text-gray-1;
|
|
98
|
+
border: 1px solid colors.$text-gray-2-5;
|
|
99
|
+
|
|
100
|
+
&:hover {
|
|
101
|
+
background: colors.$bg-a;
|
|
102
|
+
border-color: colors.$text-gray-2-5;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&.seam-btn-disabled,
|
|
106
|
+
&:disabled {
|
|
107
|
+
color: colors.$text-gray-2-5;
|
|
108
|
+
border-color: colors.$text-gray-3;
|
|
8
109
|
background: #fff;
|
|
9
|
-
|
|
10
|
-
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@mixin button {
|
|
115
|
+
.seam-btn {
|
|
116
|
+
@include typography.font-family;
|
|
117
|
+
@include button-size;
|
|
118
|
+
@include button-variant;
|
|
11
119
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
120
|
+
font-weight: 600;
|
|
121
|
+
cursor: pointer;
|
|
122
|
+
|
|
123
|
+
&.seam-btn-disabled,
|
|
124
|
+
&:disabled {
|
|
125
|
+
cursor: not-allowed;
|
|
15
126
|
}
|
|
16
127
|
}
|
|
17
128
|
}
|
|
129
|
+
|
|
130
|
+
@mixin all {
|
|
131
|
+
@include button;
|
|
132
|
+
@include icon-button;
|
|
133
|
+
@include text-button;
|
|
134
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
@use 'sass:color';
|
|
2
|
+
|
|
3
|
+
$primary: #007afc !default;
|
|
4
|
+
$primary-50: color.scale($primary, $lightness: 50%);
|
|
5
|
+
$primary-30: color.scale($primary, $lightness: 70%);
|
|
6
|
+
$primary-15: color.scale($primary, $lightness: 85%);
|
|
7
|
+
$primary-8: color.scale($primary, $lightness: 92%);
|
|
8
|
+
$primary-5: color.scale($primary, $lightness: 95%);
|
|
9
|
+
$primary-dark: color.scale($primary, $lightness: -10%);
|
|
10
|
+
$primary-dim: color.scale($primary-15, $lightness: -5%);
|
|
11
|
+
$text-default: #232b3a;
|
|
12
|
+
$text-gray-1: #6e7179;
|
|
13
|
+
$text-gray-2: #9da1a9;
|
|
14
|
+
$text-gray-2-5: #b9bec5;
|
|
15
|
+
$text-gray-3: #d5d8dc;
|
|
16
|
+
$divider-stroke-light: #eee;
|
|
17
|
+
$bg-d: #cbd0d3;
|
|
18
|
+
$bg-c: #dde0e2;
|
|
19
|
+
$bg-b: #e9edef;
|
|
20
|
+
$bg-a: #f1f3f4;
|
|
21
|
+
$status-red: #e36857;
|
|
22
|
+
$status-orange: #f3980f;
|
|
23
|
+
$status-green: #27ae60;
|
|
24
|
+
$alert-error-dark: #cb7d7d;
|
|
25
|
+
$alert-error-line: #f1d4d4;
|
|
26
|
+
$alert-error-fill: #ffefef;
|
|
27
|
+
$alert-warn-dark: #ca8852;
|
|
28
|
+
$alert-warn-line: #f8d8be;
|
|
29
|
+
$alert-warn-fill: #fff2e0;
|
|
30
|
+
$item-hover-bg: #f4f6f8;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
@use './colors';
|
|
2
|
+
|
|
1
3
|
@mixin all {
|
|
2
4
|
.seam-device-details {
|
|
3
|
-
padding: 0 24px 24px;
|
|
4
|
-
|
|
5
5
|
.seam-body {
|
|
6
6
|
display: flex;
|
|
7
7
|
flex-direction: column;
|
|
8
8
|
gap: 16px;
|
|
9
|
+
margin: 0 24px 24px;
|
|
9
10
|
|
|
10
11
|
.seam-box {
|
|
11
|
-
border: 1px solid
|
|
12
|
+
border: 1px solid colors.$text-gray-3;
|
|
12
13
|
border-radius: 8px;
|
|
13
14
|
|
|
14
15
|
.seam-content {
|
|
@@ -22,18 +23,28 @@
|
|
|
22
23
|
cursor: pointer;
|
|
23
24
|
|
|
24
25
|
&:hover {
|
|
25
|
-
background:
|
|
26
|
+
background: colors.$item-hover-bg;
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
&.seam-access-code-length {
|
|
30
|
-
border-top: 1px solid
|
|
31
|
+
border-top: 1px solid colors.$text-gray-3;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&.seam-lock-status {
|
|
35
|
+
display: flex;
|
|
36
|
+
justify-content: space-between;
|
|
37
|
+
|
|
38
|
+
> .seam-right {
|
|
39
|
+
display: flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
}
|
|
31
42
|
}
|
|
32
43
|
|
|
33
44
|
.seam-label {
|
|
34
45
|
font-size: 14px;
|
|
35
46
|
line-height: 134%;
|
|
36
|
-
color:
|
|
47
|
+
color: colors.$text-gray-1;
|
|
37
48
|
}
|
|
38
49
|
|
|
39
50
|
.seam-value {
|
|
@@ -48,7 +59,7 @@
|
|
|
48
59
|
.seam-summary {
|
|
49
60
|
padding: 24px 16px;
|
|
50
61
|
border-radius: 16px;
|
|
51
|
-
background:
|
|
62
|
+
background: colors.$bg-a;
|
|
52
63
|
|
|
53
64
|
.seam-content {
|
|
54
65
|
display: flex;
|
|
@@ -67,6 +78,14 @@
|
|
|
67
78
|
}
|
|
68
79
|
|
|
69
80
|
.seam-info {
|
|
81
|
+
> .seam-label {
|
|
82
|
+
color: colors.$text-gray-1;
|
|
83
|
+
font-weight: 600;
|
|
84
|
+
font-size: 14px;
|
|
85
|
+
line-height: 134%;
|
|
86
|
+
margin-bottom: 4px;
|
|
87
|
+
}
|
|
88
|
+
|
|
70
89
|
.seam-device-name {
|
|
71
90
|
margin-bottom: 16px;
|
|
72
91
|
font-weight: 600;
|
|
@@ -84,11 +103,11 @@
|
|
|
84
103
|
column-gap: 28px;
|
|
85
104
|
|
|
86
105
|
.seam-label {
|
|
87
|
-
color:
|
|
106
|
+
color: colors.$text-gray-2;
|
|
88
107
|
}
|
|
89
108
|
|
|
90
109
|
.seam-status-text {
|
|
91
|
-
color:
|
|
110
|
+
color: colors.$text-gray-1;
|
|
92
111
|
}
|
|
93
112
|
|
|
94
113
|
svg {
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
@use './colors';
|
|
2
|
+
|
|
3
|
+
@mixin all {
|
|
4
|
+
.seam-device-table {
|
|
5
|
+
.seam-table-row {
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
|
|
8
|
+
.seam-image-cell {
|
|
9
|
+
width: 64px;
|
|
10
|
+
height: 64px;
|
|
11
|
+
padding: 4px;
|
|
12
|
+
|
|
13
|
+
img {
|
|
14
|
+
width: 100%;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.seam-body-cell {
|
|
19
|
+
flex: 1;
|
|
20
|
+
flex-direction: column;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
align-items: flex-start;
|
|
23
|
+
gap: 2px;
|
|
24
|
+
|
|
25
|
+
.seam-bottom {
|
|
26
|
+
display: flex;
|
|
27
|
+
justify-content: space-between;
|
|
28
|
+
align-items: center;
|
|
29
|
+
width: 100%;
|
|
30
|
+
|
|
31
|
+
.seam-device-model {
|
|
32
|
+
font-weight: 400;
|
|
33
|
+
font-size: 14px;
|
|
34
|
+
line-height: 134%;
|
|
35
|
+
color: colors.$text-gray-1;
|
|
36
|
+
flex: 0 1 190px;
|
|
37
|
+
white-space: nowrap;
|
|
38
|
+
overflow: hidden;
|
|
39
|
+
text-overflow: ellipsis;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.seam-device-statuses {
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
color: colors.$text-gray-1;
|
|
46
|
+
font-size: 14px;
|
|
47
|
+
line-height: 134%;
|
|
48
|
+
|
|
49
|
+
> div {
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
margin-right: 16px;
|
|
53
|
+
|
|
54
|
+
svg {
|
|
55
|
+
scale: 0.75;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
package/src/styles/_inputs.scss
CHANGED
package/src/styles/_layout.scss
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use './colors';
|
|
2
|
+
|
|
1
3
|
@mixin header {
|
|
2
4
|
.seam-content-header {
|
|
3
5
|
height: 56px;
|
|
@@ -5,12 +7,12 @@
|
|
|
5
7
|
align-items: center;
|
|
6
8
|
position: relative;
|
|
7
9
|
justify-content: center;
|
|
8
|
-
|
|
10
|
+
margin: 0 16px;
|
|
9
11
|
|
|
10
12
|
.seam-back-icon {
|
|
11
13
|
position: absolute;
|
|
12
14
|
top: 50%;
|
|
13
|
-
transform: translate(
|
|
15
|
+
transform: translate(4px, -25%);
|
|
14
16
|
left: 0;
|
|
15
17
|
cursor: pointer;
|
|
16
18
|
}
|
|
@@ -18,6 +20,7 @@
|
|
|
18
20
|
.seam-title {
|
|
19
21
|
font-size: 16px;
|
|
20
22
|
line-height: 134%;
|
|
23
|
+
color: colors.$text-gray-1;
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
26
|
}
|
package/src/styles/_main.scss
CHANGED
|
@@ -1,28 +1,19 @@
|
|
|
1
|
+
@use './reset';
|
|
1
2
|
@use './typography';
|
|
2
3
|
@use './tables';
|
|
3
4
|
@use './inputs';
|
|
4
5
|
@use './buttons';
|
|
5
6
|
@use './layout';
|
|
6
7
|
@use './access-code-table';
|
|
8
|
+
@use './colors';
|
|
9
|
+
@use './icons';
|
|
7
10
|
@use './device-details';
|
|
11
|
+
@use './device-table';
|
|
12
|
+
@use './access-code-details';
|
|
8
13
|
|
|
9
14
|
.seam-components {
|
|
10
|
-
font-family: 'Source Sans Pro', system-ui, -apple-system, BlinkMacSystemFont,
|
|
11
|
-
'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue',
|
|
12
|
-
sans-serif;
|
|
13
|
-
|
|
14
|
-
--primary: #007afc;
|
|
15
|
-
--text-gray-1: #6e7179;
|
|
16
|
-
--text-gray-2: #9da1a9;
|
|
17
|
-
--text-gray-3: #d5d8dc;
|
|
18
|
-
--input-border: #d5d8dc;
|
|
19
|
-
--bg-a: #f1f3f4;
|
|
20
|
-
--status-red-alert: #e36857;
|
|
21
|
-
--item-hover-bg: #f4f6f8;
|
|
22
|
-
|
|
23
15
|
// Reset
|
|
24
|
-
|
|
25
|
-
@import 'the-new-css-reset/css/reset.css';
|
|
16
|
+
@include reset.all;
|
|
26
17
|
|
|
27
18
|
// Globals
|
|
28
19
|
@include typography.all;
|
|
@@ -30,8 +21,11 @@
|
|
|
30
21
|
@include inputs.all;
|
|
31
22
|
@include buttons.all;
|
|
32
23
|
@include layout.all;
|
|
24
|
+
@include icons.all;
|
|
33
25
|
|
|
34
26
|
// Components
|
|
35
|
-
@include access-code-table.all;
|
|
36
27
|
@include device-details.all;
|
|
28
|
+
@include device-table.all;
|
|
29
|
+
@include access-code-table.all;
|
|
30
|
+
@include access-code-details.all;
|
|
37
31
|
}
|