@drivy/cobalt 0.46.2 → 0.46.4
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/cjs/tokens/palette.js +0 -16
- package/cjs/tokens/palette.js.map +1 -1
- package/cjs/tokens/theme.js +57 -57
- package/cjs/tokens/zIndexes.js +5 -0
- package/cjs/tokens/zIndexes.js.map +1 -1
- package/components/Sidepanel/index.js +59 -0
- package/components/Sidepanel/index.js.map +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/styles/components/Sidepanel/index.scss +32 -0
- package/styles/components.scss +1 -0
- package/styles/core/_colors-map.scss +15 -15
- package/styles/core/default-theme.scss +24 -24
- package/styles/core/palette.scss +0 -8
- package/styles/core/theme.scss +77 -77
- package/styles/core/z-index.scss +2 -1
- package/tokens/palette.js +1 -15
- package/tokens/palette.js.map +1 -1
- package/tokens/theme.js +57 -57
- package/tokens/zIndexes.js +5 -1
- package/tokens/zIndexes.js.map +1 -1
- package/types/src/components/Sidepanel/index.d.ts +16 -0
- package/types/src/index.d.ts +1 -0
- package/types/src/tokens/index.d.ts +18 -27
- package/utilities.css +60 -32
package/cjs/tokens/palette.js
CHANGED
|
@@ -17,18 +17,6 @@ const purple = {
|
|
|
17
17
|
"1100": "#280626",
|
|
18
18
|
"1200": "#160315"
|
|
19
19
|
};
|
|
20
|
-
const purpleDeep = {
|
|
21
|
-
"100": "#F2A6EE",
|
|
22
|
-
"300": "#EA71E3",
|
|
23
|
-
"400": "#C31DBA",
|
|
24
|
-
"500": "#9B1794",
|
|
25
|
-
"700": "#73116E",
|
|
26
|
-
"900": "#4B0B48",
|
|
27
|
-
"1000": "#3E093C"
|
|
28
|
-
};
|
|
29
|
-
const purpleLight = {
|
|
30
|
-
"100": "#FFDCFD"
|
|
31
|
-
};
|
|
32
20
|
const navy = {
|
|
33
21
|
"50": "#F1F1F4",
|
|
34
22
|
"100": "#E3E2E8",
|
|
@@ -161,8 +149,6 @@ const newViolet = {
|
|
|
161
149
|
var _palette = {
|
|
162
150
|
white: white,
|
|
163
151
|
purple: purple,
|
|
164
|
-
purpleDeep: purpleDeep,
|
|
165
|
-
purpleLight: purpleLight,
|
|
166
152
|
navy: navy,
|
|
167
153
|
yellow: yellow,
|
|
168
154
|
green: green,
|
|
@@ -187,8 +173,6 @@ exports.newPurple = newPurple;
|
|
|
187
173
|
exports.newViolet = newViolet;
|
|
188
174
|
exports.orange = orange;
|
|
189
175
|
exports.purple = purple;
|
|
190
|
-
exports.purpleDeep = purpleDeep;
|
|
191
|
-
exports.purpleLight = purpleLight;
|
|
192
176
|
exports.red = red;
|
|
193
177
|
exports.season = season;
|
|
194
178
|
exports.turquoise = turquoise;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"palette.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/cjs/tokens/theme.js
CHANGED
|
@@ -6,12 +6,12 @@ const background = {
|
|
|
6
6
|
primary: "white/black.500",
|
|
7
7
|
secondary: "white/black.400",
|
|
8
8
|
accent: "purple.500/purple.400",
|
|
9
|
-
accentAlt: "purple.200/purple.
|
|
9
|
+
accentAlt: "purple.200/purple.1000",
|
|
10
10
|
info: "yellow.100/yellow.1000",
|
|
11
11
|
error: "red.500/red.500",
|
|
12
12
|
errorAlt: "red.100/red.1500",
|
|
13
13
|
success: "green.700/green.700",
|
|
14
|
-
successAlt: "green.
|
|
14
|
+
successAlt: "green.300/green.1200",
|
|
15
15
|
connect: "newPurple.500/newPurple.200",
|
|
16
16
|
connectAlt: "turquoise.50/turquoise.900",
|
|
17
17
|
driver: "yellow.500/yellow.500",
|
|
@@ -36,11 +36,11 @@ const background = {
|
|
|
36
36
|
},
|
|
37
37
|
accentInteractive: {
|
|
38
38
|
DEFAULT: "purple.500/purple.400",
|
|
39
|
-
hover: "purple.
|
|
39
|
+
hover: "purple.600/purple.700"
|
|
40
40
|
},
|
|
41
41
|
accentAltInteractive: {
|
|
42
|
-
DEFAULT: "purple.200/purple.
|
|
43
|
-
hover: "
|
|
42
|
+
DEFAULT: "purple.200/purple.1000",
|
|
43
|
+
hover: "purple.200/purple.900"
|
|
44
44
|
},
|
|
45
45
|
connectInteractive: {
|
|
46
46
|
DEFAULT: "newPurple.500/newPurple.200",
|
|
@@ -54,13 +54,13 @@ const background = {
|
|
|
54
54
|
const text = {
|
|
55
55
|
base: "navy.700/grey.100",
|
|
56
56
|
subdued: "navy.400/grey.300",
|
|
57
|
-
accent: "purple.500/purple.
|
|
57
|
+
accent: "purple.500/purple.400",
|
|
58
58
|
accentAlt: "purple.700/purple.200",
|
|
59
59
|
info: "yellow.900/yellow.400",
|
|
60
60
|
error: "red.500/red.400",
|
|
61
61
|
errorAlt: "red.500/red.200",
|
|
62
62
|
success: "green.700/green.400",
|
|
63
|
-
successAlt: "green.
|
|
63
|
+
successAlt: "green.900/green.300",
|
|
64
64
|
connect: "newPurple.500/newPurple.200",
|
|
65
65
|
connectAlt: "turquoise.900/white",
|
|
66
66
|
driver: "navy.700/navy.700",
|
|
@@ -92,27 +92,27 @@ const text = {
|
|
|
92
92
|
},
|
|
93
93
|
subduedInteractive: {
|
|
94
94
|
DEFAULT: "navy.400/grey.300",
|
|
95
|
-
hover: "navy.500/grey.
|
|
95
|
+
hover: "navy.500/grey.400"
|
|
96
96
|
},
|
|
97
97
|
accentInteractive: {
|
|
98
|
-
DEFAULT: "purple.500/purple.
|
|
99
|
-
hover: "purple.700/
|
|
98
|
+
DEFAULT: "purple.500/purple.400",
|
|
99
|
+
hover: "purple.700/purple.500"
|
|
100
100
|
},
|
|
101
101
|
accentAltInteractive: {
|
|
102
102
|
DEFAULT: "purple.700/purple.200",
|
|
103
|
-
hover: "purple.700/
|
|
103
|
+
hover: "purple.700/purple.400"
|
|
104
104
|
}
|
|
105
105
|
};
|
|
106
106
|
const icon = {
|
|
107
107
|
base: "navy.700/grey.100",
|
|
108
108
|
subdued: "navy.400/grey.300",
|
|
109
|
-
accent: "purple.500/purple.
|
|
109
|
+
accent: "purple.500/purple.400",
|
|
110
110
|
accentAlt: "purple.700/purple.200",
|
|
111
111
|
info: "yellow.900/yellow.400",
|
|
112
112
|
error: "red.500/red.400",
|
|
113
113
|
errorAlt: "red.500/red.200",
|
|
114
114
|
success: "green.700/green.400",
|
|
115
|
-
successAlt: "green.
|
|
115
|
+
successAlt: "green.900/green.300",
|
|
116
116
|
connect: "newPurple.500/newPurple.200",
|
|
117
117
|
connectAlt: "turquoise.900/turquoise.50",
|
|
118
118
|
driver: "navy.700/navy.700",
|
|
@@ -136,19 +136,19 @@ const icon = {
|
|
|
136
136
|
inversed: "white/white",
|
|
137
137
|
baseInteractive: {
|
|
138
138
|
DEFAULT: "navy.700/grey.100",
|
|
139
|
-
hover: "navy.
|
|
139
|
+
hover: "navy.900/grey.200"
|
|
140
140
|
},
|
|
141
141
|
subduedInteractive: {
|
|
142
142
|
DEFAULT: "navy.400/grey.300",
|
|
143
|
-
hover: "navy.500/grey.
|
|
143
|
+
hover: "navy.500/grey.400"
|
|
144
144
|
},
|
|
145
145
|
accentInteractive: {
|
|
146
|
-
DEFAULT: "purple.500/purple.
|
|
147
|
-
hover: "purple.700/
|
|
146
|
+
DEFAULT: "purple.500/purple.400",
|
|
147
|
+
hover: "purple.700/purple.500"
|
|
148
148
|
},
|
|
149
149
|
accentAltInteractive: {
|
|
150
150
|
DEFAULT: "purple.700/purple.200",
|
|
151
|
-
hover: "purple.700/
|
|
151
|
+
hover: "purple.700/purple.400"
|
|
152
152
|
}
|
|
153
153
|
};
|
|
154
154
|
const stroke = {
|
|
@@ -158,7 +158,7 @@ const stroke = {
|
|
|
158
158
|
accentAlt: "purple.600/purple.400",
|
|
159
159
|
success: "green.500/green.700",
|
|
160
160
|
successAlt: "green.500/green.700",
|
|
161
|
-
error: "red.500/red.
|
|
161
|
+
error: "red.500/red.400",
|
|
162
162
|
errorAlt: "red.500/red.200",
|
|
163
163
|
strong: "grey.300/grey.700",
|
|
164
164
|
onAccent: "white/grey.100",
|
|
@@ -177,18 +177,18 @@ const stroke = {
|
|
|
177
177
|
onBase: "white/black.600",
|
|
178
178
|
baseInteractive: {
|
|
179
179
|
DEFAULT: "navy.100/black.100",
|
|
180
|
-
hover: "navy.300/
|
|
181
|
-
press: "navy.500/
|
|
180
|
+
hover: "navy.300/black.300",
|
|
181
|
+
press: "navy.500/black.500"
|
|
182
182
|
},
|
|
183
183
|
accentInteractive: {
|
|
184
184
|
DEFAULT: "purple.500/purple.400",
|
|
185
|
-
hover: "purple.700/
|
|
186
|
-
press: "purple.900/
|
|
185
|
+
hover: "purple.700/purple.600",
|
|
186
|
+
press: "purple.900/purple.800"
|
|
187
187
|
},
|
|
188
188
|
strongInteractive: {
|
|
189
|
-
DEFAULT: "
|
|
190
|
-
hover: "
|
|
191
|
-
press: "
|
|
189
|
+
DEFAULT: "grey.300/grey.700",
|
|
190
|
+
hover: "grey.400/black.50",
|
|
191
|
+
press: "grey.500/black.100"
|
|
192
192
|
}
|
|
193
193
|
};
|
|
194
194
|
const buttonIcon = {
|
|
@@ -203,18 +203,18 @@ const buttonIcon = {
|
|
|
203
203
|
accentAlt: "purple.500/grey.100",
|
|
204
204
|
primaryInteractive: {
|
|
205
205
|
DEFAULT: "white/black.1000",
|
|
206
|
-
hover: "white/
|
|
207
|
-
press: "white/
|
|
206
|
+
hover: "white/black.1000",
|
|
207
|
+
press: "white/black.1000"
|
|
208
208
|
},
|
|
209
209
|
secondaryInteractive: {
|
|
210
210
|
DEFAULT: "purple.500/purple.300",
|
|
211
|
-
hover: "purple.
|
|
212
|
-
press: "purple.900/
|
|
211
|
+
hover: "purple.500/purple.300",
|
|
212
|
+
press: "purple.900/purple.900"
|
|
213
213
|
},
|
|
214
214
|
tertiaryInteractive: {
|
|
215
215
|
DEFAULT: "purple.500/white",
|
|
216
|
-
hover: "purple.
|
|
217
|
-
press: "purple.900/
|
|
216
|
+
hover: "purple.500/white",
|
|
217
|
+
press: "purple.900/purple.1000"
|
|
218
218
|
},
|
|
219
219
|
destructiveInteractive: {
|
|
220
220
|
DEFAULT: "red.500/red.200",
|
|
@@ -239,18 +239,18 @@ const buttonLabel = {
|
|
|
239
239
|
successAlt: "green.900/green.100",
|
|
240
240
|
primaryInteractive: {
|
|
241
241
|
DEFAULT: "white/black.1000",
|
|
242
|
-
hover: "white/
|
|
243
|
-
press: "white/
|
|
242
|
+
hover: "white/black.1000",
|
|
243
|
+
press: "white/black.1000"
|
|
244
244
|
},
|
|
245
245
|
secondaryInteractive: {
|
|
246
246
|
DEFAULT: "purple.500/purple.300",
|
|
247
|
-
hover: "purple.700/
|
|
248
|
-
press: "purple.900/
|
|
247
|
+
hover: "purple.700/purple.300",
|
|
248
|
+
press: "purple.900/purple.900"
|
|
249
249
|
},
|
|
250
250
|
tertiaryInteractive: {
|
|
251
251
|
DEFAULT: "purple.500/white",
|
|
252
|
-
hover: "purple.700/
|
|
253
|
-
press: "purple.900/
|
|
252
|
+
hover: "purple.700/white",
|
|
253
|
+
press: "purple.900/purple.1000"
|
|
254
254
|
},
|
|
255
255
|
destructiveInteractive: {
|
|
256
256
|
DEFAULT: "red.500/red.200",
|
|
@@ -263,35 +263,20 @@ const buttonLabel = {
|
|
|
263
263
|
press: "green.900/green.100"
|
|
264
264
|
}
|
|
265
265
|
};
|
|
266
|
-
const fill = {
|
|
267
|
-
base: "navy.500/navy.50",
|
|
268
|
-
accent: "purple.500/purpleDeep.400",
|
|
269
|
-
secondary: "yellow.500/yellow.400",
|
|
270
|
-
subdued: "navy.100/black.50",
|
|
271
|
-
neutral: "navy.50/black.100",
|
|
272
|
-
negative: "red.150/red.800",
|
|
273
|
-
accentAlt: "purple.100/purpleDeep.900",
|
|
274
|
-
disabled: "navy.300/grey.300",
|
|
275
|
-
error: "red.500/red.500",
|
|
276
|
-
success: "green.500/green.700",
|
|
277
|
-
rental: "blue.300/blue.700",
|
|
278
|
-
blocker: "grey.100/black.200",
|
|
279
|
-
primary: "white/black.1000"
|
|
280
|
-
};
|
|
281
266
|
const buttonBackground = {
|
|
282
267
|
selected: "purple.100/purpleDeep.900",
|
|
283
268
|
primary: "purple.500/purple.400",
|
|
284
269
|
secondary: "white/black.100",
|
|
285
270
|
tertiary: "white/white",
|
|
286
|
-
accentAlt: "purple.100/
|
|
271
|
+
accentAlt: "purple.100/purple.900",
|
|
287
272
|
destructive: "red.100/red.900",
|
|
288
273
|
success: "green.700/green.900",
|
|
289
274
|
successAlt: "green.100/green.1000",
|
|
290
275
|
disabled: "navy.100/black.50",
|
|
291
276
|
primaryInteractive: {
|
|
292
277
|
DEFAULT: "purple.500/purple.400",
|
|
293
|
-
hover: "purple.700/
|
|
294
|
-
press: "purple.900/
|
|
278
|
+
hover: "purple.700/purple.800",
|
|
279
|
+
press: "purple.900/purple.1000"
|
|
295
280
|
},
|
|
296
281
|
secondaryInteractive: {
|
|
297
282
|
DEFAULT: "white/black.100",
|
|
@@ -314,6 +299,21 @@ const buttonBackground = {
|
|
|
314
299
|
press: "green.400/green.1000"
|
|
315
300
|
}
|
|
316
301
|
};
|
|
302
|
+
const fill = {
|
|
303
|
+
base: "navy.500/navy.50",
|
|
304
|
+
accent: "purple.500/purple.400",
|
|
305
|
+
secondary: "yellow.500/yellow.400",
|
|
306
|
+
subdued: "navy.100/black.50",
|
|
307
|
+
neutral: "navy.50/black.100",
|
|
308
|
+
negative: "red.150/red.800",
|
|
309
|
+
accentAlt: "purple.100/purple.900",
|
|
310
|
+
disabled: "navy.300/grey.300",
|
|
311
|
+
error: "red.500/red.500",
|
|
312
|
+
success: "green.500/green.700",
|
|
313
|
+
rental: "blue.300/blue.700",
|
|
314
|
+
blocker: "grey.100/black.200",
|
|
315
|
+
primary: "white/black.1000"
|
|
316
|
+
};
|
|
317
317
|
const illustrations = {
|
|
318
318
|
primary: "navy.500/white",
|
|
319
319
|
secondary: "white/white",
|
|
@@ -327,8 +327,8 @@ var _theme = {
|
|
|
327
327
|
stroke: stroke,
|
|
328
328
|
buttonIcon: buttonIcon,
|
|
329
329
|
buttonLabel: buttonLabel,
|
|
330
|
-
fill: fill,
|
|
331
330
|
buttonBackground: buttonBackground,
|
|
331
|
+
fill: fill,
|
|
332
332
|
illustrations: illustrations
|
|
333
333
|
};
|
|
334
334
|
|
package/cjs/tokens/zIndexes.js
CHANGED
|
@@ -8,6 +8,7 @@ const above = 1;
|
|
|
8
8
|
const dropdown = 10;
|
|
9
9
|
const nav = 20;
|
|
10
10
|
const header = 30;
|
|
11
|
+
const sidepanel = 80;
|
|
11
12
|
const modal = 90;
|
|
12
13
|
const alert = 100;
|
|
13
14
|
var _zIndexes = {
|
|
@@ -23,6 +24,9 @@ var _zIndexes = {
|
|
|
23
24
|
"header-below": 29,
|
|
24
25
|
header: header,
|
|
25
26
|
"header-above": 31,
|
|
27
|
+
"sidepanel-below": 79,
|
|
28
|
+
sidepanel: sidepanel,
|
|
29
|
+
"sidepanel-above": 81,
|
|
26
30
|
"modal-below": 89,
|
|
27
31
|
modal: modal,
|
|
28
32
|
"modal-above": 91,
|
|
@@ -40,4 +44,5 @@ exports.dropdown = dropdown;
|
|
|
40
44
|
exports.header = header;
|
|
41
45
|
exports.modal = modal;
|
|
42
46
|
exports.nav = nav;
|
|
47
|
+
exports.sidepanel = sidepanel;
|
|
43
48
|
//# sourceMappingURL=zIndexes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zIndexes.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zIndexes.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
import Modal from '../Modal/index.js';
|
|
4
|
+
import useBreakpoint from '../../hooks/useBreakpoint.js';
|
|
5
|
+
import '../Icon/index.js';
|
|
6
|
+
import ReactDOM from 'react-dom';
|
|
7
|
+
import CloseIcon from '../Icon/__generated__/CloseIcon.js';
|
|
8
|
+
|
|
9
|
+
const SidepanelFooter = ({ children, className }) => {
|
|
10
|
+
return (React.createElement("div", { className: cx("c-p-sm c-border-t c-border-base", className) }, children));
|
|
11
|
+
};
|
|
12
|
+
// Memoized component to not render content when the panel is collapsing
|
|
13
|
+
function _SidepanelContent({ title, close, children }) {
|
|
14
|
+
return (React.createElement(React.Fragment, null,
|
|
15
|
+
title && (React.createElement("div", { className: "c-flex c-gap-sm c-items-center c-px-sm c-py-md c-border-b c-border-base" },
|
|
16
|
+
React.createElement("div", { className: "c-text-title-md c-flex-1" }, title),
|
|
17
|
+
close && (React.createElement("div", { className: "c-w-md c-cursor-pointer", onClick: close },
|
|
18
|
+
React.createElement(CloseIcon, { size: 24 }))))),
|
|
19
|
+
children));
|
|
20
|
+
}
|
|
21
|
+
function areSidepanelContentEqual(_prevProps, nextProps) {
|
|
22
|
+
return !nextProps.isOpen;
|
|
23
|
+
}
|
|
24
|
+
const SidepanelContent = React.memo(_SidepanelContent, areSidepanelContentEqual);
|
|
25
|
+
SidepanelContent.displayName = "SidepanelContent";
|
|
26
|
+
// Only for the API, render nothing
|
|
27
|
+
const SidepanelFooterAPI = (_props) => null;
|
|
28
|
+
const isSidepanelFooterAPIComponent = (component) => React.isValidElement(component) && component.type === SidepanelFooterAPI;
|
|
29
|
+
const _Sidepanel = ({ isOpen, title, close, children }) => {
|
|
30
|
+
const { isMobile } = useBreakpoint();
|
|
31
|
+
// To display box-shadow when visible. We can't rely on isOpen because it triggers the collapse animation and so the box shadow would not be set during the transition
|
|
32
|
+
const [isPanelVisible, setIsPanelVisible] = useState(false);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
isOpen && setIsPanelVisible(true);
|
|
35
|
+
}, [isOpen]);
|
|
36
|
+
const sidepanelFooter = React.Children.toArray(children).find((c) => isSidepanelFooterAPIComponent(c));
|
|
37
|
+
let footer = null;
|
|
38
|
+
if (React.isValidElement(sidepanelFooter)) {
|
|
39
|
+
footer = isMobile ? (React.createElement(Modal.Footer, { ...sidepanelFooter.props })) : (React.createElement(SidepanelFooter, { ...sidepanelFooter.props }));
|
|
40
|
+
}
|
|
41
|
+
return isMobile ? (React.createElement(Modal, { "aria-label": "Sidepanel", isOpen: isOpen, bodySpacing: false, close: close, title: title },
|
|
42
|
+
children,
|
|
43
|
+
footer)) : (ReactDOM.createPortal(React.createElement("div", { className: cx("cobalt-sidepanel", {
|
|
44
|
+
"cobalt-sidepanel--show": isOpen,
|
|
45
|
+
"cobalt-sidepanel--visible": isPanelVisible,
|
|
46
|
+
}), onTransitionEnd: () => {
|
|
47
|
+
!isOpen && setIsPanelVisible(false);
|
|
48
|
+
} },
|
|
49
|
+
React.createElement(SidepanelContent, { isOpen: isOpen, title: title, close: close },
|
|
50
|
+
children,
|
|
51
|
+
footer)), document.body));
|
|
52
|
+
};
|
|
53
|
+
_Sidepanel.displayName = "Sidepanel";
|
|
54
|
+
const Sidepanel = Object.assign(_Sidepanel, {
|
|
55
|
+
Footer: SidepanelFooterAPI,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
export { Sidepanel };
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Sidepanel/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\"\nimport cx from \"classnames\"\nimport Modal from \"../Modal\"\nimport useBreakpoint from \"../../hooks/useBreakpoint\"\nimport { CloseIcon } from \"../Icon\"\nimport ReactDOM from \"react-dom\"\n\ntype SidepanelFooterPropsType = React.PropsWithChildren<{\n className?: string\n}>\n\nconst SidepanelFooter = ({ children, className }: SidepanelFooterPropsType) => {\n return (\n <div className={cx(\"c-p-sm c-border-t c-border-base\", className)}>\n {children}\n </div>\n )\n}\n\ntype SidepanelPropsType = React.PropsWithChildren<{\n isOpen: boolean\n title?: string\n close?: () => void\n}>\n\n// Memoized component to not render content when the panel is collapsing\nfunction _SidepanelContent({ title, close, children }: SidepanelPropsType) {\n return (\n <>\n {title && (\n <div className=\"c-flex c-gap-sm c-items-center c-px-sm c-py-md c-border-b c-border-base\">\n <div className=\"c-text-title-md c-flex-1\">{title}</div>\n {close && (\n <div className=\"c-w-md c-cursor-pointer\" onClick={close}>\n <CloseIcon size={24} />\n </div>\n )}\n </div>\n )}\n {children}\n </>\n )\n}\n\nfunction areSidepanelContentEqual(\n _prevProps: SidepanelPropsType,\n nextProps: SidepanelPropsType\n) {\n return !nextProps.isOpen\n}\n\nconst SidepanelContent = React.memo(_SidepanelContent, areSidepanelContentEqual)\nSidepanelContent.displayName = \"SidepanelContent\"\n\n// Only for the API, render nothing\nconst SidepanelFooterAPI = (_props: SidepanelFooterPropsType) => null\n\nconst isSidepanelFooterAPIComponent = (\n component: React.ReactNode\n): component is React.ReactElement<SidepanelFooterPropsType> =>\n React.isValidElement(component) && component.type === SidepanelFooterAPI\n\nconst _Sidepanel = ({ isOpen, title, close, children }: SidepanelPropsType) => {\n const { isMobile } = useBreakpoint()\n\n // To display box-shadow when visible. We can't rely on isOpen because it triggers the collapse animation and so the box shadow would not be set during the transition\n const [isPanelVisible, setIsPanelVisible] = useState(false)\n\n useEffect(() => {\n isOpen && setIsPanelVisible(true)\n }, [isOpen])\n\n const sidepanelFooter = React.Children.toArray(children).find((c) =>\n isSidepanelFooterAPIComponent(c)\n )\n\n let footer: React.ReactNode = null\n if (React.isValidElement(sidepanelFooter)) {\n footer = isMobile ? (\n <Modal.Footer {...sidepanelFooter.props}></Modal.Footer>\n ) : (\n <SidepanelFooter {...sidepanelFooter.props} />\n )\n }\n\n return isMobile ? (\n <Modal\n aria-label={\"Sidepanel\"}\n isOpen={isOpen}\n bodySpacing={false}\n close={close}\n title={title}\n >\n {children}\n {footer}\n </Modal>\n ) : (\n ReactDOM.createPortal(\n <div\n className={cx(\"cobalt-sidepanel\", {\n \"cobalt-sidepanel--show\": isOpen,\n \"cobalt-sidepanel--visible\": isPanelVisible,\n })}\n onTransitionEnd={() => {\n !isOpen && setIsPanelVisible(false)\n }}\n >\n <SidepanelContent isOpen={isOpen} title={title} close={close}>\n {children}\n {footer}\n </SidepanelContent>\n </div>,\n document.body\n )\n )\n}\n\n_Sidepanel.displayName = \"Sidepanel\"\n\nexport const Sidepanel = Object.assign(_Sidepanel, {\n Footer: SidepanelFooterAPI,\n})\n"],"names":[],"mappings":"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"}
|
package/index.js
CHANGED
|
@@ -26,6 +26,7 @@ export { PriceTable, PriceTableRow } from './components/PriceTable/index.js';
|
|
|
26
26
|
export { ProgressBar } from './components/ProgressBar/index.js';
|
|
27
27
|
export { ProgressCircular } from './components/ProgressCircular/index.js';
|
|
28
28
|
export { ProgressBanner } from './components/ProgressBanner/index.js';
|
|
29
|
+
export { Sidepanel } from './components/Sidepanel/index.js';
|
|
29
30
|
export { Tab, Tabs } from './components/Tabs/index.js';
|
|
30
31
|
export { Tag } from './components/Tag/index.js';
|
|
31
32
|
export { Chip } from './components/Chip/index.js';
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.cobalt-sidepanel {
|
|
2
|
+
@include bg-color(primary);
|
|
3
|
+
|
|
4
|
+
position: fixed;
|
|
5
|
+
|
|
6
|
+
top: 0;
|
|
7
|
+
right: 0;
|
|
8
|
+
z-index: zx(sidepanel);
|
|
9
|
+
|
|
10
|
+
height: 100vh;
|
|
11
|
+
width: 426px;
|
|
12
|
+
|
|
13
|
+
display: flex;
|
|
14
|
+
|
|
15
|
+
flex-direction: column;
|
|
16
|
+
|
|
17
|
+
transform: translateX(100%);
|
|
18
|
+
|
|
19
|
+
transition-duration: 250ms;
|
|
20
|
+
transition-timing-function: ease-out;
|
|
21
|
+
transition-property: transform;
|
|
22
|
+
|
|
23
|
+
will-change: transform;
|
|
24
|
+
|
|
25
|
+
&--show {
|
|
26
|
+
transform: translateX(0);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&--visible {
|
|
30
|
+
box-shadow: elevation(lg);
|
|
31
|
+
}
|
|
32
|
+
}
|
package/styles/components.scss
CHANGED
|
@@ -264,21 +264,6 @@ $theme-colors-map: (
|
|
|
264
264
|
press: var(--c-buttonLabel-successAltInteractive--press)
|
|
265
265
|
)
|
|
266
266
|
),
|
|
267
|
-
fill: (
|
|
268
|
-
base: var(--c-fill-base),
|
|
269
|
-
accent: var(--c-fill-accent),
|
|
270
|
-
secondary: var(--c-fill-secondary),
|
|
271
|
-
subdued: var(--c-fill-subdued),
|
|
272
|
-
neutral: var(--c-fill-neutral),
|
|
273
|
-
negative: var(--c-fill-negative),
|
|
274
|
-
accentAlt: var(--c-fill-accentAlt),
|
|
275
|
-
disabled: var(--c-fill-disabled),
|
|
276
|
-
error: var(--c-fill-error),
|
|
277
|
-
success: var(--c-fill-success),
|
|
278
|
-
rental: var(--c-fill-rental),
|
|
279
|
-
blocker: var(--c-fill-blocker),
|
|
280
|
-
primary: var(--c-fill-primary)
|
|
281
|
-
),
|
|
282
267
|
buttonBackground: (
|
|
283
268
|
selected: var(--c-buttonBackground-selected),
|
|
284
269
|
primary: var(--c-buttonBackground-primary),
|
|
@@ -315,6 +300,21 @@ $theme-colors-map: (
|
|
|
315
300
|
press: var(--c-buttonBackground-successAltInteractive--press)
|
|
316
301
|
)
|
|
317
302
|
),
|
|
303
|
+
fill: (
|
|
304
|
+
base: var(--c-fill-base),
|
|
305
|
+
accent: var(--c-fill-accent),
|
|
306
|
+
secondary: var(--c-fill-secondary),
|
|
307
|
+
subdued: var(--c-fill-subdued),
|
|
308
|
+
neutral: var(--c-fill-neutral),
|
|
309
|
+
negative: var(--c-fill-negative),
|
|
310
|
+
accentAlt: var(--c-fill-accentAlt),
|
|
311
|
+
disabled: var(--c-fill-disabled),
|
|
312
|
+
error: var(--c-fill-error),
|
|
313
|
+
success: var(--c-fill-success),
|
|
314
|
+
rental: var(--c-fill-rental),
|
|
315
|
+
blocker: var(--c-fill-blocker),
|
|
316
|
+
primary: var(--c-fill-primary)
|
|
317
|
+
),
|
|
318
318
|
illustrations: (
|
|
319
319
|
primary: var(--c-illustrations-primary),
|
|
320
320
|
secondary: var(--c-illustrations-secondary),
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
--c-background-error: var(--c-red-500);
|
|
12
12
|
--c-background-errorAlt: var(--c-red-100);
|
|
13
13
|
--c-background-success: var(--c-green-700);
|
|
14
|
-
--c-background-successAlt: var(--c-green-
|
|
14
|
+
--c-background-successAlt: var(--c-green-300);
|
|
15
15
|
--c-background-connect: var(--c-newPurple-500);
|
|
16
16
|
--c-background-connectAlt: var(--c-turquoise-50);
|
|
17
17
|
--c-background-driver: var(--c-yellow-500);
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
--c-background-secondaryInteractive: var(--c-white);
|
|
34
34
|
--c-background-secondaryInteractive--hover: var(--c-navy-50);
|
|
35
35
|
--c-background-accentInteractive: var(--c-purple-500);
|
|
36
|
-
--c-background-accentInteractive--hover: var(--c-purple-
|
|
36
|
+
--c-background-accentInteractive--hover: var(--c-purple-600);
|
|
37
37
|
--c-background-accentAltInteractive: var(--c-purple-200);
|
|
38
|
-
--c-background-accentAltInteractive--hover: var(--c-
|
|
38
|
+
--c-background-accentAltInteractive--hover: var(--c-purple-200);
|
|
39
39
|
--c-background-connectInteractive: var(--c-newPurple-500);
|
|
40
40
|
--c-background-connectInteractive--hover: var(--c-turquoise-700);
|
|
41
41
|
--c-background-errorInteractive: var(--c-red-500);
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
--c-text-error: var(--c-red-500);
|
|
49
49
|
--c-text-errorAlt: var(--c-red-500);
|
|
50
50
|
--c-text-success: var(--c-green-700);
|
|
51
|
-
--c-text-successAlt: var(--c-green-
|
|
51
|
+
--c-text-successAlt: var(--c-green-900);
|
|
52
52
|
--c-text-connect: var(--c-newPurple-500);
|
|
53
53
|
--c-text-connectAlt: var(--c-turquoise-900);
|
|
54
54
|
--c-text-driver: var(--c-navy-700);
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
--c-icon-error: var(--c-red-500);
|
|
91
91
|
--c-icon-errorAlt: var(--c-red-500);
|
|
92
92
|
--c-icon-success: var(--c-green-700);
|
|
93
|
-
--c-icon-successAlt: var(--c-green-
|
|
93
|
+
--c-icon-successAlt: var(--c-green-900);
|
|
94
94
|
--c-icon-connect: var(--c-newPurple-500);
|
|
95
95
|
--c-icon-connectAlt: var(--c-turquoise-900);
|
|
96
96
|
--c-icon-driver: var(--c-navy-700);
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
--c-icon-onRental: var(--c-white);
|
|
114
114
|
--c-icon-inversed: var(--c-white);
|
|
115
115
|
--c-icon-baseInteractive: var(--c-navy-700);
|
|
116
|
-
--c-icon-baseInteractive--hover: var(--c-navy-
|
|
116
|
+
--c-icon-baseInteractive--hover: var(--c-navy-900);
|
|
117
117
|
--c-icon-subduedInteractive: var(--c-navy-400);
|
|
118
118
|
--c-icon-subduedInteractive--hover: var(--c-navy-500);
|
|
119
119
|
--c-icon-accentInteractive: var(--c-purple-500);
|
|
@@ -149,9 +149,9 @@
|
|
|
149
149
|
--c-stroke-accentInteractive: var(--c-purple-500);
|
|
150
150
|
--c-stroke-accentInteractive--hover: var(--c-purple-700);
|
|
151
151
|
--c-stroke-accentInteractive--press: var(--c-purple-900);
|
|
152
|
-
--c-stroke-strongInteractive: var(--c-
|
|
153
|
-
--c-stroke-strongInteractive--hover: var(--c-
|
|
154
|
-
--c-stroke-strongInteractive--press: var(--c-
|
|
152
|
+
--c-stroke-strongInteractive: var(--c-grey-300);
|
|
153
|
+
--c-stroke-strongInteractive--hover: var(--c-grey-400);
|
|
154
|
+
--c-stroke-strongInteractive--press: var(--c-grey-500);
|
|
155
155
|
--c-buttonIcon-selected: var(--c-purple-500);
|
|
156
156
|
--c-buttonIcon-primary: var(--c-white);
|
|
157
157
|
--c-buttonIcon-secondary: var(--c-purple-500);
|
|
@@ -165,10 +165,10 @@
|
|
|
165
165
|
--c-buttonIcon-primaryInteractive--hover: var(--c-white);
|
|
166
166
|
--c-buttonIcon-primaryInteractive--press: var(--c-white);
|
|
167
167
|
--c-buttonIcon-secondaryInteractive: var(--c-purple-500);
|
|
168
|
-
--c-buttonIcon-secondaryInteractive--hover: var(--c-purple-
|
|
168
|
+
--c-buttonIcon-secondaryInteractive--hover: var(--c-purple-500);
|
|
169
169
|
--c-buttonIcon-secondaryInteractive--press: var(--c-purple-900);
|
|
170
170
|
--c-buttonIcon-tertiaryInteractive: var(--c-purple-500);
|
|
171
|
-
--c-buttonIcon-tertiaryInteractive--hover: var(--c-purple-
|
|
171
|
+
--c-buttonIcon-tertiaryInteractive--hover: var(--c-purple-500);
|
|
172
172
|
--c-buttonIcon-tertiaryInteractive--press: var(--c-purple-900);
|
|
173
173
|
--c-buttonIcon-destructiveInteractive: var(--c-red-500);
|
|
174
174
|
--c-buttonIcon-destructiveInteractive--hover: var(--c-red-500);
|
|
@@ -200,19 +200,6 @@
|
|
|
200
200
|
--c-buttonLabel-successAltInteractive: var(--c-green-900);
|
|
201
201
|
--c-buttonLabel-successAltInteractive--hover: var(--c-green-900);
|
|
202
202
|
--c-buttonLabel-successAltInteractive--press: var(--c-green-900);
|
|
203
|
-
--c-fill-base: var(--c-navy-500);
|
|
204
|
-
--c-fill-accent: var(--c-purple-500);
|
|
205
|
-
--c-fill-secondary: var(--c-yellow-500);
|
|
206
|
-
--c-fill-subdued: var(--c-navy-100);
|
|
207
|
-
--c-fill-neutral: var(--c-navy-50);
|
|
208
|
-
--c-fill-negative: var(--c-red-150);
|
|
209
|
-
--c-fill-accentAlt: var(--c-purple-100);
|
|
210
|
-
--c-fill-disabled: var(--c-navy-300);
|
|
211
|
-
--c-fill-error: var(--c-red-500);
|
|
212
|
-
--c-fill-success: var(--c-green-500);
|
|
213
|
-
--c-fill-rental: var(--c-blue-300);
|
|
214
|
-
--c-fill-blocker: var(--c-grey-100);
|
|
215
|
-
--c-fill-primary: var(--c-white);
|
|
216
203
|
--c-buttonBackground-selected: var(--c-purple-100);
|
|
217
204
|
--c-buttonBackground-primary: var(--c-purple-500);
|
|
218
205
|
--c-buttonBackground-secondary: var(--c-white);
|
|
@@ -237,6 +224,19 @@
|
|
|
237
224
|
--c-buttonBackground-successAltInteractive: var(--c-green-100);
|
|
238
225
|
--c-buttonBackground-successAltInteractive--hover: var(--c-green-300);
|
|
239
226
|
--c-buttonBackground-successAltInteractive--press: var(--c-green-400);
|
|
227
|
+
--c-fill-base: var(--c-navy-500);
|
|
228
|
+
--c-fill-accent: var(--c-purple-500);
|
|
229
|
+
--c-fill-secondary: var(--c-yellow-500);
|
|
230
|
+
--c-fill-subdued: var(--c-navy-100);
|
|
231
|
+
--c-fill-neutral: var(--c-navy-50);
|
|
232
|
+
--c-fill-negative: var(--c-red-150);
|
|
233
|
+
--c-fill-accentAlt: var(--c-purple-100);
|
|
234
|
+
--c-fill-disabled: var(--c-navy-300);
|
|
235
|
+
--c-fill-error: var(--c-red-500);
|
|
236
|
+
--c-fill-success: var(--c-green-500);
|
|
237
|
+
--c-fill-rental: var(--c-blue-300);
|
|
238
|
+
--c-fill-blocker: var(--c-grey-100);
|
|
239
|
+
--c-fill-primary: var(--c-white);
|
|
240
240
|
--c-illustrations-primary: var(--c-navy-500);
|
|
241
241
|
--c-illustrations-secondary: var(--c-white);
|
|
242
242
|
--c-illustrations-accent1: var(--c-purple-500);
|
package/styles/core/palette.scss
CHANGED
|
@@ -16,14 +16,6 @@
|
|
|
16
16
|
--c-purple-1000: #3e093b;
|
|
17
17
|
--c-purple-1100: #280626;
|
|
18
18
|
--c-purple-1200: #160315;
|
|
19
|
-
--c-purpleDeep-100: #f2a6ee;
|
|
20
|
-
--c-purpleDeep-300: #ea71e3;
|
|
21
|
-
--c-purpleDeep-400: #c31dba;
|
|
22
|
-
--c-purpleDeep-500: #9b1794;
|
|
23
|
-
--c-purpleDeep-700: #73116e;
|
|
24
|
-
--c-purpleDeep-900: #4b0b48;
|
|
25
|
-
--c-purpleDeep-1000: #3e093c;
|
|
26
|
-
--c-purpleLight-100: #ffdcfd;
|
|
27
19
|
--c-navy-50: #f1f1f4;
|
|
28
20
|
--c-navy-100: #e3e2e8;
|
|
29
21
|
--c-navy-120: #cac7d2;
|