pxt-core 8.2.6 → 8.2.9
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/built/cli.js +1 -0
- package/built/pxt-common.json +1 -1
- package/built/pxt.js +69 -26
- package/built/pxtblockly.js +37 -9
- package/built/pxtblocks.d.ts +1 -0
- package/built/pxtblocks.js +37 -9
- package/built/pxtcompiler.js +3 -3
- package/built/pxteditor.js +5 -0
- package/built/pxtlib.js +26 -7
- package/built/pxtpy.d.ts +1 -0
- package/built/pxtpy.js +39 -16
- package/built/pxtrunner.js +13 -0
- package/built/target.js +1 -1
- package/built/web/blockly.css +1 -1
- package/built/web/main.js +1 -1
- package/built/web/pxtapp.js +1 -1
- package/built/web/pxtblockly.js +1 -1
- package/built/web/pxtblocks.js +1 -1
- package/built/web/pxtcompiler.js +1 -1
- package/built/web/pxteditor.js +1 -1
- package/built/web/pxtembed.js +2 -2
- package/built/web/pxtlib.js +1 -1
- package/built/web/pxtpy.js +1 -1
- package/built/web/pxtrunner.js +1 -1
- package/built/web/pxtworker.js +1 -1
- package/built/web/react-common-authcode.css +98 -0
- package/built/web/react-common-skillmap.css +1 -1
- package/built/web/rtlblockly.css +1 -1
- package/built/web/rtlreact-common-skillmap.css +1 -1
- package/built/web/rtlsemantic.css +1 -1
- package/built/web/semantic.css +1 -1
- package/built/web/skillmap/css/main.3684f34d.chunk.css +1 -0
- package/built/web/skillmap/js/2.26325281.chunk.js +2 -0
- package/built/web/skillmap/js/main.d94a2bd9.chunk.js +1 -0
- package/localtypings/pxtarget.d.ts +16 -0
- package/localtypings/react.d.ts +5 -0
- package/package.json +1 -1
- package/react-common/components/controls/Checkbox.tsx +1 -1
- package/react-common/components/palette/ColorPickerField.tsx +65 -0
- package/react-common/components/palette/PaletteEditor.tsx +66 -0
- package/react-common/components/palette/PalettePicker.tsx +52 -0
- package/react-common/components/palette/PaletteSwatch.tsx +27 -0
- package/react-common/components/palette/Palettes.ts +289 -0
- package/react-common/components/profile/SignInModal.tsx +100 -0
- package/react-common/components/profile/UserPane.tsx +17 -9
- package/react-common/styles/palette/ColorPickerField.less +21 -0
- package/react-common/styles/palette/PalettePicker.less +10 -0
- package/react-common/styles/palette/PaletteSwatch.less +27 -0
- package/react-common/styles/palette/palette.less +3 -0
- package/react-common/styles/profile/profile.less +64 -1
- package/react-common/styles/react-common.less +1 -0
- package/theme/blockly-core.less +1 -1
- package/theme/common.less +13 -2
- package/theme/image-editor/bottomBar.less +1 -1
- package/theme/tutorial-sidebar.less +2 -2
- package/webapp/public/skillmap.html +2 -2
- package/built/web/skillmap/css/main.c5811548.chunk.css +0 -1
- package/built/web/skillmap/js/2.26b9a6f6.chunk.js +0 -2
- package/built/web/skillmap/js/main.98eed582.chunk.js +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Palette } from "./Palettes";
|
|
3
|
+
|
|
4
|
+
export interface PaletteSwatchProps {
|
|
5
|
+
palette: Palette;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const PaletteSwatch = (props: PaletteSwatchProps) => {
|
|
9
|
+
const { palette } = props;
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
return <div className="common-palette-swatch">
|
|
13
|
+
<div className="common-palette-swatch-name">
|
|
14
|
+
{palette.name}
|
|
15
|
+
</div>
|
|
16
|
+
<div className="common-palette-color-list">
|
|
17
|
+
{palette.colors.map((color, index) => <PaletteColor key={index} color={color} />)}
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
interface PaletteColorProps {
|
|
23
|
+
color: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const PaletteColor = (props: PaletteColorProps) =>
|
|
27
|
+
<div className="common-palette-color" style={{backgroundColor: props.color}} />
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
export interface Palette {
|
|
2
|
+
name: string;
|
|
3
|
+
id: string;
|
|
4
|
+
colors: string[];
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const Adafruit: Palette = {
|
|
8
|
+
id: "Adafruit",
|
|
9
|
+
name: lf("Adafruit"),
|
|
10
|
+
colors: [
|
|
11
|
+
"#000000",
|
|
12
|
+
"#FFFFFF",
|
|
13
|
+
"#FF0000",
|
|
14
|
+
"#FF007D",
|
|
15
|
+
"#FF7a00",
|
|
16
|
+
"#e5FF00",
|
|
17
|
+
"#2D9F00",
|
|
18
|
+
"#00FF72",
|
|
19
|
+
"#0034FF",
|
|
20
|
+
"#17ABFF",
|
|
21
|
+
"#C600FF",
|
|
22
|
+
"#636363",
|
|
23
|
+
"#7400DB",
|
|
24
|
+
"#00EFFF",
|
|
25
|
+
"#DF2929",
|
|
26
|
+
"#000000",
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// https://lospec.com/palette-list/vanilla-milkshake missing #e9f59d
|
|
31
|
+
export const Pastel: Palette = {
|
|
32
|
+
id: "Pastel",
|
|
33
|
+
name: lf("Pastel"),
|
|
34
|
+
colors: [
|
|
35
|
+
"#000000",
|
|
36
|
+
"#fff7e4",
|
|
37
|
+
"#f98284",
|
|
38
|
+
"#feaae4",
|
|
39
|
+
"#ffc384",
|
|
40
|
+
"#fff7a0",
|
|
41
|
+
"#87a889",
|
|
42
|
+
"#b0eb93",
|
|
43
|
+
"#b0a9e4",
|
|
44
|
+
"#accce4",
|
|
45
|
+
"#b3e3da",
|
|
46
|
+
"#d9c8bf",
|
|
47
|
+
"#6c5671",
|
|
48
|
+
"#ffe6c6",
|
|
49
|
+
"#dea38b",
|
|
50
|
+
"#28282e",
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
export const Matte: Palette = {
|
|
56
|
+
id: "Matte",
|
|
57
|
+
name: lf("Matte"),
|
|
58
|
+
colors: [
|
|
59
|
+
"#000000",
|
|
60
|
+
"#FFF1E8",
|
|
61
|
+
"#FF004D",
|
|
62
|
+
"#FF77A8",
|
|
63
|
+
"#FFA300",
|
|
64
|
+
"#FFEC27",
|
|
65
|
+
"#008751",
|
|
66
|
+
"#00E436",
|
|
67
|
+
"#29ADFF",
|
|
68
|
+
"#C2C3C7",
|
|
69
|
+
"#7E2553",
|
|
70
|
+
"#83769C",
|
|
71
|
+
"#5F574F",
|
|
72
|
+
"#FFCCAA",
|
|
73
|
+
"#AB5236",
|
|
74
|
+
"#1D2B53",
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
export const Grayscale: Palette = {
|
|
80
|
+
id: "Grayscale",
|
|
81
|
+
name: lf("Grayscale"),
|
|
82
|
+
colors: [
|
|
83
|
+
"#000000",
|
|
84
|
+
"#FFFFFF",
|
|
85
|
+
"#EDEDED",
|
|
86
|
+
"#DBDBDB",
|
|
87
|
+
"#C8C8C8",
|
|
88
|
+
"#B6B6B6",
|
|
89
|
+
"#A4A4A4",
|
|
90
|
+
"#929292",
|
|
91
|
+
"#808080",
|
|
92
|
+
"#6D6D6D",
|
|
93
|
+
"#5B5B5B",
|
|
94
|
+
"#494949",
|
|
95
|
+
"#373737",
|
|
96
|
+
"#242424",
|
|
97
|
+
"#121212",
|
|
98
|
+
"#000000",
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
// https://lospec.com/palette-list/poke14 with #b56edd added for purple
|
|
104
|
+
export const Poke: Palette = {
|
|
105
|
+
id: "Poke",
|
|
106
|
+
name: lf("Poke"),
|
|
107
|
+
colors: [
|
|
108
|
+
"#000000",
|
|
109
|
+
"#ffffff",
|
|
110
|
+
"#d45362",
|
|
111
|
+
"#e8958b",
|
|
112
|
+
"#cc8945",
|
|
113
|
+
"#f5dc8c",
|
|
114
|
+
"#417d53",
|
|
115
|
+
"#5dd48f",
|
|
116
|
+
"#5162c2",
|
|
117
|
+
"#6cadeb",
|
|
118
|
+
"#b56edd",
|
|
119
|
+
"#8f3f29",
|
|
120
|
+
"#612431",
|
|
121
|
+
"#c0fac2",
|
|
122
|
+
"#24325e",
|
|
123
|
+
"#1b1221",
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
// https://lospec.com/palette-list/warioware-diy
|
|
129
|
+
export const DIY: Palette = {
|
|
130
|
+
id: "DIY",
|
|
131
|
+
name: lf("DIY"),
|
|
132
|
+
colors: [
|
|
133
|
+
"#000000",
|
|
134
|
+
"#f8f8f8",
|
|
135
|
+
"#f80000",
|
|
136
|
+
"#FF93C4",
|
|
137
|
+
"#f8a830",
|
|
138
|
+
"#f8f858",
|
|
139
|
+
"#089050",
|
|
140
|
+
"#70d038",
|
|
141
|
+
"#2868c0",
|
|
142
|
+
"#10c0c8",
|
|
143
|
+
"#c868e8",
|
|
144
|
+
"#c0c0c0",
|
|
145
|
+
"#787878",
|
|
146
|
+
"#f8d898",
|
|
147
|
+
"#c04800",
|
|
148
|
+
"#000000",
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
// https://lospec.com/palette-list/still-life
|
|
154
|
+
export const StillLife: Palette = {
|
|
155
|
+
id: "StillLife",
|
|
156
|
+
name: lf("Still Life"),
|
|
157
|
+
colors: [
|
|
158
|
+
"#000000",
|
|
159
|
+
"#a8e4d4",
|
|
160
|
+
"#d13b27",
|
|
161
|
+
"#e07f8a",
|
|
162
|
+
"#cc8218",
|
|
163
|
+
"#b3e868",
|
|
164
|
+
"#5d853a",
|
|
165
|
+
"#68c127",
|
|
166
|
+
"#286fb8",
|
|
167
|
+
"#9b8bff",
|
|
168
|
+
"#3f2811",
|
|
169
|
+
"#513155",
|
|
170
|
+
"#122615",
|
|
171
|
+
"#c7b581",
|
|
172
|
+
"#7a2222",
|
|
173
|
+
"#000000",
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
// https://lospec.com/palette-list/steam-lords, missing 0xa0b9ba
|
|
179
|
+
export const SteamPunk: Palette = {
|
|
180
|
+
id: "SteamPunk",
|
|
181
|
+
name: lf("Steam Punk"),
|
|
182
|
+
colors: [
|
|
183
|
+
"#000000",
|
|
184
|
+
"#c0d1cc",
|
|
185
|
+
"#603b3a",
|
|
186
|
+
"#170e19",
|
|
187
|
+
"#775c4f",
|
|
188
|
+
"#77744f",
|
|
189
|
+
"#4f7754",
|
|
190
|
+
"#a19f7c",
|
|
191
|
+
"#4f5277",
|
|
192
|
+
"#65738c",
|
|
193
|
+
"#3a604a",
|
|
194
|
+
"#213b25",
|
|
195
|
+
"#433a60",
|
|
196
|
+
"#7c94a1",
|
|
197
|
+
"#3b2137",
|
|
198
|
+
"#2f213b",
|
|
199
|
+
]
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// https://lospec.com/palette-list/sweetie-16, missing 0x73eff7
|
|
203
|
+
export const Sweet: Palette = {
|
|
204
|
+
id: "Sweet",
|
|
205
|
+
name: lf("Sweet"),
|
|
206
|
+
colors: [
|
|
207
|
+
"#000000",
|
|
208
|
+
"#f4f4f4",
|
|
209
|
+
"#b13e53",
|
|
210
|
+
"#a7f070",
|
|
211
|
+
"#ef7d57",
|
|
212
|
+
"#ffcd75",
|
|
213
|
+
"#257179",
|
|
214
|
+
"#38b764",
|
|
215
|
+
"#29366f",
|
|
216
|
+
"#3b5dc9",
|
|
217
|
+
"#41a6f6",
|
|
218
|
+
"#566c86",
|
|
219
|
+
"#333c57",
|
|
220
|
+
"#94b0c2",
|
|
221
|
+
"#5d275d",
|
|
222
|
+
"#1a1c2c",
|
|
223
|
+
]
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
// https://lospec.com/palette-list/na16, missing 0x70377f
|
|
228
|
+
export const Adventure: Palette = {
|
|
229
|
+
id: "Adventure",
|
|
230
|
+
name: lf("Adventure"),
|
|
231
|
+
colors: [
|
|
232
|
+
"#000000",
|
|
233
|
+
"#f5edba",
|
|
234
|
+
"#9d303b",
|
|
235
|
+
"#d26471",
|
|
236
|
+
"#e4943a",
|
|
237
|
+
"#c0c741",
|
|
238
|
+
"#647d34",
|
|
239
|
+
"#34859d",
|
|
240
|
+
"#17434b",
|
|
241
|
+
"#7ec4c1",
|
|
242
|
+
"#584563",
|
|
243
|
+
"#8c8fae",
|
|
244
|
+
"#3e2137",
|
|
245
|
+
"#d79b7d",
|
|
246
|
+
"#9a6348",
|
|
247
|
+
"#1f0e1c",
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
//% fixedInstance whenUsed block="arcade"
|
|
253
|
+
export const Arcade: Palette = {
|
|
254
|
+
id: "Arcade",
|
|
255
|
+
name: lf("Arcade"),
|
|
256
|
+
colors: [
|
|
257
|
+
"#000000",
|
|
258
|
+
"#FFFFFF",
|
|
259
|
+
"#FF2121",
|
|
260
|
+
"#FF93C4",
|
|
261
|
+
"#FF8135",
|
|
262
|
+
"#FFF609",
|
|
263
|
+
"#249CA3",
|
|
264
|
+
"#78DC52",
|
|
265
|
+
"#003FAD",
|
|
266
|
+
"#87F2FF",
|
|
267
|
+
"#8E2EC4",
|
|
268
|
+
"#A4839F",
|
|
269
|
+
"#5C406c",
|
|
270
|
+
"#E5CDC4",
|
|
271
|
+
"#91463d",
|
|
272
|
+
"#000000",
|
|
273
|
+
]
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
export const AllPalettes = [
|
|
278
|
+
Arcade,
|
|
279
|
+
Matte,
|
|
280
|
+
Pastel,
|
|
281
|
+
Sweet,
|
|
282
|
+
Poke,
|
|
283
|
+
Adventure,
|
|
284
|
+
DIY,
|
|
285
|
+
Adafruit,
|
|
286
|
+
StillLife,
|
|
287
|
+
SteamPunk,
|
|
288
|
+
Grayscale,
|
|
289
|
+
]
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/// <reference path="../types.d.ts" />
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Checkbox } from "../controls/Checkbox";
|
|
5
|
+
import { Button } from "../controls/Button";
|
|
6
|
+
import { Link } from "../controls/Link";
|
|
7
|
+
import { Modal } from "../controls/Modal";
|
|
8
|
+
|
|
9
|
+
export interface SignInModalProps {
|
|
10
|
+
onSignIn: (provider: pxt.AppCloudProvider, rememberMe: boolean) => Promise<void>;
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
appMessage?: string;
|
|
13
|
+
resolvePath?: (path: string) => string;
|
|
14
|
+
mode?: "signin" | "signup";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const SignInModal = (props: SignInModalProps) => {
|
|
18
|
+
const { onSignIn, onClose, appMessage } = props;
|
|
19
|
+
const resolvePath = props.resolvePath ?? (path => path);
|
|
20
|
+
|
|
21
|
+
const [rememberMe, setRememberMe] = React.useState(false);
|
|
22
|
+
const [mode, setMode] = React.useState(props.mode ?? "signin");
|
|
23
|
+
|
|
24
|
+
const titleText = React.useMemo(() => (mode === "signin" ? lf("Sign in") : lf("Sign up")), [mode]);
|
|
25
|
+
const headerText = React.useMemo(
|
|
26
|
+
() =>
|
|
27
|
+
mode === "signin"
|
|
28
|
+
? lf("Sign in to save your progress and access your work anytime, anywhere.")
|
|
29
|
+
: lf("Join now to save your progress and access your work anytime, anywhere."),
|
|
30
|
+
[mode]
|
|
31
|
+
);
|
|
32
|
+
const footerFragment = React.useMemo(
|
|
33
|
+
() =>
|
|
34
|
+
mode === "signin" ? (
|
|
35
|
+
<div className='switch'>
|
|
36
|
+
<span>{lf("Don't have an account?")}</span>
|
|
37
|
+
<Button className="link-button" onClick={() => setMode("signup")} title={lf("Sign up")} label={lf("Sign up")}/>
|
|
38
|
+
</div>
|
|
39
|
+
) : (
|
|
40
|
+
<div className='switch'>
|
|
41
|
+
<span>{lf("Have an account?")}</span>
|
|
42
|
+
<Button className="link-button" onClick={() => setMode("signin")} title={lf("Sign in")} label={lf("Sign in")}/>
|
|
43
|
+
</div>
|
|
44
|
+
),
|
|
45
|
+
[mode]
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<Modal title={titleText} onClose={onClose}>
|
|
50
|
+
<div className='signin-form'>
|
|
51
|
+
<div className='signin-header'>
|
|
52
|
+
{appMessage ? appMessage : undefined} {headerText}
|
|
53
|
+
</div>
|
|
54
|
+
<div className='signin-body'>
|
|
55
|
+
<div className='providers'>
|
|
56
|
+
{pxt.auth.identityProviders().map((provider, index) => {
|
|
57
|
+
const title =
|
|
58
|
+
mode === "signin"
|
|
59
|
+
? lf("Continue with {0}", provider.name)
|
|
60
|
+
: lf("Sign up with {0}", provider.name);
|
|
61
|
+
return (
|
|
62
|
+
<Button
|
|
63
|
+
key={index}
|
|
64
|
+
className='teal inverted provider'
|
|
65
|
+
onClick={() => onSignIn(provider, rememberMe)}
|
|
66
|
+
title={title}
|
|
67
|
+
ariaLabel={title}
|
|
68
|
+
label={
|
|
69
|
+
<div className='label'>
|
|
70
|
+
<div>
|
|
71
|
+
<img className='logo' src={resolvePath(provider.icon)} />
|
|
72
|
+
</div>
|
|
73
|
+
<div className='title'>{title}</div>
|
|
74
|
+
</div>
|
|
75
|
+
}
|
|
76
|
+
/>
|
|
77
|
+
);
|
|
78
|
+
})}
|
|
79
|
+
<div className='rememberme'>
|
|
80
|
+
<Checkbox
|
|
81
|
+
id='rememberme'
|
|
82
|
+
label={lf("Remember me")}
|
|
83
|
+
isChecked={rememberMe}
|
|
84
|
+
onChange={setRememberMe}
|
|
85
|
+
></Checkbox>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
<div className='signin-footer'>
|
|
90
|
+
{footerFragment}
|
|
91
|
+
<div className='learn'>
|
|
92
|
+
<Link href='/identity/sign-in' target='_blank'>
|
|
93
|
+
{lf("Learn more")}
|
|
94
|
+
</Link>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</Modal>
|
|
99
|
+
);
|
|
100
|
+
};
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/// <reference path="../types.d.ts" />
|
|
2
|
+
/// <reference path="../../../localtypings/react.d.ts" />
|
|
3
|
+
|
|
1
4
|
import * as React from "react";
|
|
2
5
|
import { fireClickOnEnter, CheckboxStatus } from "../util";
|
|
3
6
|
import { UserNotification } from "./UserNotification";
|
|
@@ -17,7 +20,9 @@ export interface UserPaneProps {
|
|
|
17
20
|
export const UserPane = (props: UserPaneProps) => {
|
|
18
21
|
const { profile, onSignOutClick, onDeleteProfileClick, onEmailCheckClick, notification, emailChecked } = props;
|
|
19
22
|
|
|
20
|
-
const { username, displayName, picture } = profile.idp;
|
|
23
|
+
const { username, displayName, picture, pictureUrl } = profile.idp;
|
|
24
|
+
|
|
25
|
+
const picUrl = pictureUrl ?? picture?.dataUrl;
|
|
21
26
|
|
|
22
27
|
const emailLabel = <>
|
|
23
28
|
{emailChecked === CheckboxStatus.Waiting ? <div className="common-spinner" /> : undefined}
|
|
@@ -27,8 +32,11 @@ export const UserPane = (props: UserPaneProps) => {
|
|
|
27
32
|
|
|
28
33
|
return <div className="profile-user-pane">
|
|
29
34
|
<div className="profile-portrait">
|
|
30
|
-
{
|
|
31
|
-
|
|
35
|
+
{ picUrl ?
|
|
36
|
+
// Google user picture URL must have referrer policy set to no-referrer
|
|
37
|
+
<div>
|
|
38
|
+
<img src={picUrl} alt={pxt.U.lf("Profile Picture")} referrerPolicy="no-referrer" />
|
|
39
|
+
</div>
|
|
32
40
|
: <div className="profile-initials-portrait">
|
|
33
41
|
{pxt.auth.userInitials(profile)}
|
|
34
42
|
</div>
|
|
@@ -54,12 +62,12 @@ export const UserPane = (props: UserPaneProps) => {
|
|
|
54
62
|
label={emailLabel}/>
|
|
55
63
|
</div>
|
|
56
64
|
<div className="profile-actions">
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
{
|
|
62
|
-
|
|
65
|
+
<Button
|
|
66
|
+
className="link-button"
|
|
67
|
+
title={lf("Delete Profile")}
|
|
68
|
+
label={lf("Delete Profile")}
|
|
69
|
+
onClick={onDeleteProfileClick}
|
|
70
|
+
/>
|
|
63
71
|
<Button
|
|
64
72
|
className="sign-out"
|
|
65
73
|
leftIcon="fas fa-sign-out-alt"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.common-color-picker-field {
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-template-columns: 3fr 6fr 1fr 1fr;
|
|
4
|
+
align-items: center;
|
|
5
|
+
padding: 0.1rem 0rem;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.common-color-inputs {
|
|
9
|
+
display: flex;
|
|
10
|
+
flex-direction: row;
|
|
11
|
+
align-items: center;
|
|
12
|
+
|
|
13
|
+
&>:first-child {
|
|
14
|
+
margin-right: 0.5rem;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&>:last-child {
|
|
18
|
+
flex-grow: 1;
|
|
19
|
+
margin-right: 0.5rem;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.common-palette-swatch {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: row;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.common-palette-color-list {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: row;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.common-palette-color {
|
|
12
|
+
width: 1rem;
|
|
13
|
+
height: 1rem;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.common-palette-swatch-name {
|
|
17
|
+
flex-grow: 1;
|
|
18
|
+
padding-right: 0.5rem;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.common-palette-picker > .common-dropdown > .common-button .common-button-label .common-palette-color-list {
|
|
22
|
+
display: none;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.common-palette-picker > .common-dropdown > .common-button .common-button-flex {
|
|
26
|
+
display: flex;
|
|
27
|
+
}
|
|
@@ -349,4 +349,67 @@
|
|
|
349
349
|
grid-template-columns: repeat(3, 1fr);
|
|
350
350
|
grid-auto-rows: 12rem;
|
|
351
351
|
}
|
|
352
|
-
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
/****************************************************
|
|
356
|
+
* Sign In Modal *
|
|
357
|
+
****************************************************/
|
|
358
|
+
|
|
359
|
+
.signin-form {
|
|
360
|
+
margin: 0 1rem;
|
|
361
|
+
|
|
362
|
+
.signin-header {
|
|
363
|
+
margin: 0 0 1rem 0;
|
|
364
|
+
display: flex;
|
|
365
|
+
flex-direction: column;
|
|
366
|
+
gap: 0.5rem;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.signin-body {
|
|
370
|
+
display: flex;
|
|
371
|
+
justify-content: center;
|
|
372
|
+
|
|
373
|
+
.providers {
|
|
374
|
+
display: flex;
|
|
375
|
+
flex-direction: column;
|
|
376
|
+
gap: 1rem;
|
|
377
|
+
align-items: center;
|
|
378
|
+
margin: 0 0 1rem 0;
|
|
379
|
+
|
|
380
|
+
.provider {
|
|
381
|
+
width: 100%;
|
|
382
|
+
margin: 0;
|
|
383
|
+
padding: 0.8rem 2.5rem;
|
|
384
|
+
|
|
385
|
+
.label {
|
|
386
|
+
display: flex;
|
|
387
|
+
flex-direction: row;
|
|
388
|
+
gap: 1rem;
|
|
389
|
+
|
|
390
|
+
.logo {
|
|
391
|
+
width: 1.25rem;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
.title {
|
|
395
|
+
align-self: center;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
.signin-footer {
|
|
403
|
+
.switch {
|
|
404
|
+
display: flex;
|
|
405
|
+
gap: 0.5rem;
|
|
406
|
+
justify-content: center;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
.learn {
|
|
410
|
+
font-size: smaller;
|
|
411
|
+
width: 100%;
|
|
412
|
+
text-align: right;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
package/theme/blockly-core.less
CHANGED
package/theme/common.less
CHANGED
|
@@ -204,7 +204,6 @@ pre {
|
|
|
204
204
|
|
|
205
205
|
.invisibleScrollbar::-webkit-scrollbar {
|
|
206
206
|
background: transparent !important;
|
|
207
|
-
width: @customScrollbarWidth; // TODO: remove this when the sim breakpoint is fixed
|
|
208
207
|
}
|
|
209
208
|
.invisibleScrollbar::-webkit-scrollbar-thumb {
|
|
210
209
|
display: none !important;
|
|
@@ -909,7 +908,7 @@ Field editors
|
|
|
909
908
|
.common-modal > {
|
|
910
909
|
.common-modal-header {
|
|
911
910
|
height: @mainMenuHeight;
|
|
912
|
-
background-color: @
|
|
911
|
+
background-color: @mainMenuInvertedBackground;
|
|
913
912
|
z-index: 202;
|
|
914
913
|
display: flex;
|
|
915
914
|
padding-left: 0rem;
|
|
@@ -2501,3 +2500,15 @@ select.ui.dropdown {
|
|
|
2501
2500
|
background-color: #F5BC5F;
|
|
2502
2501
|
}
|
|
2503
2502
|
}
|
|
2503
|
+
|
|
2504
|
+
|
|
2505
|
+
/** Project settings */
|
|
2506
|
+
|
|
2507
|
+
.palette-picker-field {
|
|
2508
|
+
display: flex;
|
|
2509
|
+
align-items: center;
|
|
2510
|
+
}
|
|
2511
|
+
|
|
2512
|
+
.palette-picker-label {
|
|
2513
|
+
margin-right: 0.5rem;
|
|
2514
|
+
}
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
|
|
54
54
|
.image-editor-change-name {
|
|
55
55
|
position: relative;
|
|
56
|
+
width: 20rem;
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
.image-editor-change-name .image-editor-input {
|
|
@@ -67,7 +68,6 @@
|
|
|
67
68
|
max-width: 100%;
|
|
68
69
|
width: 100%;
|
|
69
70
|
height: 100%;
|
|
70
|
-
min-width: 20rem;
|
|
71
71
|
|
|
72
72
|
transition: border-bottom 0.2s;
|
|
73
73
|
}
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
border-top: 2px dashed @tutorialSecondaryColor;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
.lang-blocks .ui.segment.raised, .ui.segment.raised.codewidget {
|
|
65
|
+
.lang-block .ui.segment.raised, .lang-blocks .ui.segment.raised, .ui.segment.raised.codewidget {
|
|
66
66
|
overflow-x: auto;
|
|
67
67
|
|
|
68
68
|
code, code.hljs {
|
|
@@ -830,4 +830,4 @@
|
|
|
830
830
|
.tutorial-title {
|
|
831
831
|
max-width: 100%;
|
|
832
832
|
}
|
|
833
|
-
}
|
|
833
|
+
}
|