git.iko.soy/rowtype-yoga/psfp
on master help sign in
Huge JSS change
e418926Mark Eibes
components/package-lock.json+962−679
@@ -14,9 +14,9 @@
14 }
14 }
15 },
15 },
16 "@babel/compat-data": {
16 "@babel/compat-data": {
17− "version": "7.8.5",
17+ "version": "7.8.6",
18− "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz",
18+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.6.tgz",
19− "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==",
19+ "integrity": "sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q==",
20 "dev": true,
20 "dev": true,
21 "requires": {
21 "requires": {
22 "browserslist": "^4.8.5",
22 "browserslist": "^4.8.5",
@@ -25,18 +25,18 @@
25 }
25 }
26 },
26 },
27 "@babel/core": {
27 "@babel/core": {
28− "version": "7.8.4",
28+ "version": "7.8.7",
29− "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz",
29+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz",
30− "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==",
30+ "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==",
31 "dev": true,
31 "dev": true,
32 "requires": {
32 "requires": {
33 "@babel/code-frame": "^7.8.3",
33 "@babel/code-frame": "^7.8.3",
34− "@babel/generator": "^7.8.4",
34+ "@babel/generator": "^7.8.7",
35 "@babel/helpers": "^7.8.4",
35 "@babel/helpers": "^7.8.4",
36− "@babel/parser": "^7.8.4",
36+ "@babel/parser": "^7.8.7",
37− "@babel/template": "^7.8.3",
37+ "@babel/template": "^7.8.6",
38− "@babel/traverse": "^7.8.4",
38+ "@babel/traverse": "^7.8.6",
39− "@babel/types": "^7.8.3",
39+ "@babel/types": "^7.8.7",
40 "convert-source-map": "^1.7.0",
40 "convert-source-map": "^1.7.0",
41 "debug": "^4.1.0",
41 "debug": "^4.1.0",
42 "gensync": "^1.0.0-beta.1",
42 "gensync": "^1.0.0-beta.1",
@@ -48,12 +48,12 @@
48 }
48 }
49 },
49 },
50 "@babel/generator": {
50 "@babel/generator": {
51− "version": "7.8.4",
51+ "version": "7.8.8",
52− "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz",
52+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
53− "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==",
53+ "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
54 "dev": true,
54 "dev": true,
55 "requires": {
55 "requires": {
56− "@babel/types": "^7.8.3",
56+ "@babel/types": "^7.8.7",
57 "jsesc": "^2.5.1",
57 "jsesc": "^2.5.1",
58 "lodash": "^4.17.13",
58 "lodash": "^4.17.13",
59 "source-map": "^0.5.0"
59 "source-map": "^0.5.0"
@@ -89,51 +89,52 @@
89 }
89 }
90 },
90 },
91 "@babel/helper-call-delegate": {
91 "@babel/helper-call-delegate": {
92− "version": "7.8.3",
92+ "version": "7.8.7",
93− "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz",
93+ "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz",
94− "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==",
94+ "integrity": "sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ==",
95 "dev": true,
95 "dev": true,
96 "requires": {
96 "requires": {
97 "@babel/helper-hoist-variables": "^7.8.3",
97 "@babel/helper-hoist-variables": "^7.8.3",
98 "@babel/traverse": "^7.8.3",
98 "@babel/traverse": "^7.8.3",
99− "@babel/types": "^7.8.3"
99+ "@babel/types": "^7.8.7"
100 }
100 }
101 },
101 },
102 "@babel/helper-compilation-targets": {
102 "@babel/helper-compilation-targets": {
103− "version": "7.8.4",
103+ "version": "7.8.7",
104− "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz",
104+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz",
105− "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==",
105+ "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==",
106 "dev": true,
106 "dev": true,
107 "requires": {
107 "requires": {
108− "@babel/compat-data": "^7.8.4",
108+ "@babel/compat-data": "^7.8.6",
109− "browserslist": "^4.8.5",
109+ "browserslist": "^4.9.1",
110 "invariant": "^2.2.4",
110 "invariant": "^2.2.4",
111 "levenary": "^1.1.1",
111 "levenary": "^1.1.1",
112 "semver": "^5.5.0"
112 "semver": "^5.5.0"
113 }
113 }
114 },
114 },
115 "@babel/helper-create-class-features-plugin": {
115 "@babel/helper-create-class-features-plugin": {
116− "version": "7.8.3",
116+ "version": "7.8.6",
117− "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz",
117+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz",
118− "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==",
118+ "integrity": "sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg==",
119 "dev": true,
119 "dev": true,
120 "requires": {
120 "requires": {
121 "@babel/helper-function-name": "^7.8.3",
121 "@babel/helper-function-name": "^7.8.3",
122 "@babel/helper-member-expression-to-functions": "^7.8.3",
122 "@babel/helper-member-expression-to-functions": "^7.8.3",
123 "@babel/helper-optimise-call-expression": "^7.8.3",
123 "@babel/helper-optimise-call-expression": "^7.8.3",
124 "@babel/helper-plugin-utils": "^7.8.3",
124 "@babel/helper-plugin-utils": "^7.8.3",
125− "@babel/helper-replace-supers": "^7.8.3",
125+ "@babel/helper-replace-supers": "^7.8.6",
126 "@babel/helper-split-export-declaration": "^7.8.3"
126 "@babel/helper-split-export-declaration": "^7.8.3"
127 }
127 }
128 },
128 },
129 "@babel/helper-create-regexp-features-plugin": {
129 "@babel/helper-create-regexp-features-plugin": {
130− "version": "7.8.3",
130+ "version": "7.8.8",
131− "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz",
131+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz",
132− "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==",
132+ "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==",
133 "dev": true,
133 "dev": true,
134 "requires": {
134 "requires": {
135+ "@babel/helper-annotate-as-pure": "^7.8.3",
135 "@babel/helper-regex": "^7.8.3",
136 "@babel/helper-regex": "^7.8.3",
136− "regexpu-core": "^4.6.0"
137+ "regexpu-core": "^4.7.0"
137 }
138 }
138 },
139 },
139 "@babel/helper-define-map": {
140 "@babel/helper-define-map": {
@@ -205,16 +206,17 @@
205 }
206 }
206 },
207 },
207 "@babel/helper-module-transforms": {
208 "@babel/helper-module-transforms": {
208− "version": "7.8.3",
209+ "version": "7.8.6",
209− "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz",
210+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz",
210− "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==",
211+ "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==",
211 "dev": true,
212 "dev": true,
212 "requires": {
213 "requires": {
213 "@babel/helper-module-imports": "^7.8.3",
214 "@babel/helper-module-imports": "^7.8.3",
215+ "@babel/helper-replace-supers": "^7.8.6",
214 "@babel/helper-simple-access": "^7.8.3",
216 "@babel/helper-simple-access": "^7.8.3",
215 "@babel/helper-split-export-declaration": "^7.8.3",
217 "@babel/helper-split-export-declaration": "^7.8.3",
216− "@babel/template": "^7.8.3",
218+ "@babel/template": "^7.8.6",
217− "@babel/types": "^7.8.3",
219+ "@babel/types": "^7.8.6",
218 "lodash": "^4.17.13"
220 "lodash": "^4.17.13"
219 }
221 }
220 },
222 },
@@ -256,15 +258,15 @@
256 }
258 }
257 },
259 },
258 "@babel/helper-replace-supers": {
260 "@babel/helper-replace-supers": {
259− "version": "7.8.3",
261+ "version": "7.8.6",
260− "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz",
262+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
261− "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==",
263+ "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
262 "dev": true,
264 "dev": true,
263 "requires": {
265 "requires": {
264 "@babel/helper-member-expression-to-functions": "^7.8.3",
266 "@babel/helper-member-expression-to-functions": "^7.8.3",
265 "@babel/helper-optimise-call-expression": "^7.8.3",
267 "@babel/helper-optimise-call-expression": "^7.8.3",
266− "@babel/traverse": "^7.8.3",
268+ "@babel/traverse": "^7.8.6",
267− "@babel/types": "^7.8.3"
269+ "@babel/types": "^7.8.6"
268 }
270 }
269 },
271 },
270 "@babel/helper-simple-access": {
272 "@babel/helper-simple-access": {
@@ -321,9 +323,9 @@
321 }
323 }
322 },
324 },
323 "@babel/parser": {
325 "@babel/parser": {
324− "version": "7.8.4",
326+ "version": "7.8.8",
325− "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz",
327+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
326− "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==",
328+ "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
327 "dev": true
329 "dev": true
328 },
330 },
329 "@babel/plugin-proposal-async-generator-functions": {
331 "@babel/plugin-proposal-async-generator-functions": {
@@ -408,12 +410,12 @@
408 }
410 }
409 },
411 },
410 "@babel/plugin-proposal-unicode-property-regex": {
412 "@babel/plugin-proposal-unicode-property-regex": {
411− "version": "7.8.3",
413+ "version": "7.8.8",
412− "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz",
414+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz",
413− "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==",
415+ "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==",
414 "dev": true,
416 "dev": true,
415 "requires": {
417 "requires": {
416− "@babel/helper-create-regexp-features-plugin": "^7.8.3",
418+ "@babel/helper-create-regexp-features-plugin": "^7.8.8",
417 "@babel/helper-plugin-utils": "^7.8.3"
419 "@babel/helper-plugin-utils": "^7.8.3"
418 }
420 }
419 },
421 },
@@ -547,9 +549,9 @@
547 }
549 }
548 },
550 },
549 "@babel/plugin-transform-classes": {
551 "@babel/plugin-transform-classes": {
550− "version": "7.8.3",
552+ "version": "7.8.6",
551− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz",
553+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz",
552− "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==",
554+ "integrity": "sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==",
553 "dev": true,
555 "dev": true,
554 "requires": {
556 "requires": {
555 "@babel/helper-annotate-as-pure": "^7.8.3",
557 "@babel/helper-annotate-as-pure": "^7.8.3",
@@ -557,7 +559,7 @@
557 "@babel/helper-function-name": "^7.8.3",
559 "@babel/helper-function-name": "^7.8.3",
558 "@babel/helper-optimise-call-expression": "^7.8.3",
560 "@babel/helper-optimise-call-expression": "^7.8.3",
559 "@babel/helper-plugin-utils": "^7.8.3",
561 "@babel/helper-plugin-utils": "^7.8.3",
560− "@babel/helper-replace-supers": "^7.8.3",
562+ "@babel/helper-replace-supers": "^7.8.6",
561 "@babel/helper-split-export-declaration": "^7.8.3",
563 "@babel/helper-split-export-declaration": "^7.8.3",
562 "globals": "^11.1.0"
564 "globals": "^11.1.0"
563 }
565 }
@@ -572,9 +574,9 @@
572 }
574 }
573 },
575 },
574 "@babel/plugin-transform-destructuring": {
576 "@babel/plugin-transform-destructuring": {
575− "version": "7.8.3",
577+ "version": "7.8.8",
576− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz",
578+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz",
577− "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==",
579+ "integrity": "sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==",
578 "dev": true,
580 "dev": true,
579 "requires": {
581 "requires": {
580 "@babel/helper-plugin-utils": "^7.8.3"
582 "@babel/helper-plugin-utils": "^7.8.3"
@@ -620,9 +622,9 @@
620 }
622 }
621 },
623 },
622 "@babel/plugin-transform-for-of": {
624 "@babel/plugin-transform-for-of": {
623− "version": "7.8.4",
625+ "version": "7.8.6",
624− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz",
626+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz",
625− "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==",
627+ "integrity": "sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==",
626 "dev": true,
628 "dev": true,
627 "requires": {
629 "requires": {
628 "@babel/helper-plugin-utils": "^7.8.3"
630 "@babel/helper-plugin-utils": "^7.8.3"
@@ -730,12 +732,12 @@
730 }
732 }
731 },
733 },
732 "@babel/plugin-transform-parameters": {
734 "@babel/plugin-transform-parameters": {
733− "version": "7.8.4",
735+ "version": "7.8.8",
734− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz",
736+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.8.tgz",
735− "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==",
737+ "integrity": "sha512-hC4Ld/Ulpf1psQciWWwdnUspQoQco2bMzSrwU6TmzRlvoYQe4rQFy9vnCZDTlVeCQj0JPfL+1RX0V8hCJvkgBA==",
736 "dev": true,
738 "dev": true,
737 "requires": {
739 "requires": {
738− "@babel/helper-call-delegate": "^7.8.3",
740+ "@babel/helper-call-delegate": "^7.8.7",
739 "@babel/helper-get-function-arity": "^7.8.3",
741 "@babel/helper-get-function-arity": "^7.8.3",
740 "@babel/helper-plugin-utils": "^7.8.3"
742 "@babel/helper-plugin-utils": "^7.8.3"
741 }
743 }
@@ -800,12 +802,12 @@
800 }
802 }
801 },
803 },
802 "@babel/plugin-transform-regenerator": {
804 "@babel/plugin-transform-regenerator": {
803− "version": "7.8.3",
805+ "version": "7.8.7",
804− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz",
806+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz",
805− "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==",
807+ "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==",
806 "dev": true,
808 "dev": true,
807 "requires": {
809 "requires": {
808− "regenerator-transform": "^0.14.0"
810+ "regenerator-transform": "^0.14.2"
809 }
811 }
810 },
812 },
811 "@babel/plugin-transform-reserved-words": {
813 "@babel/plugin-transform-reserved-words": {
@@ -875,13 +877,13 @@
875 }
877 }
876 },
878 },
877 "@babel/preset-env": {
879 "@babel/preset-env": {
878− "version": "7.8.4",
880+ "version": "7.8.7",
879− "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz",
881+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz",
880− "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==",
882+ "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==",
881 "dev": true,
883 "dev": true,
882 "requires": {
884 "requires": {
883− "@babel/compat-data": "^7.8.4",
885+ "@babel/compat-data": "^7.8.6",
884− "@babel/helper-compilation-targets": "^7.8.4",
886+ "@babel/helper-compilation-targets": "^7.8.7",
885 "@babel/helper-module-imports": "^7.8.3",
887 "@babel/helper-module-imports": "^7.8.3",
886 "@babel/helper-plugin-utils": "^7.8.3",
888 "@babel/helper-plugin-utils": "^7.8.3",
887 "@babel/plugin-proposal-async-generator-functions": "^7.8.3",
889 "@babel/plugin-proposal-async-generator-functions": "^7.8.3",
@@ -904,13 +906,13 @@
904 "@babel/plugin-transform-async-to-generator": "^7.8.3",
906 "@babel/plugin-transform-async-to-generator": "^7.8.3",
905 "@babel/plugin-transform-block-scoped-functions": "^7.8.3",
907 "@babel/plugin-transform-block-scoped-functions": "^7.8.3",
906 "@babel/plugin-transform-block-scoping": "^7.8.3",
908 "@babel/plugin-transform-block-scoping": "^7.8.3",
907− "@babel/plugin-transform-classes": "^7.8.3",
909+ "@babel/plugin-transform-classes": "^7.8.6",
908 "@babel/plugin-transform-computed-properties": "^7.8.3",
910 "@babel/plugin-transform-computed-properties": "^7.8.3",
909 "@babel/plugin-transform-destructuring": "^7.8.3",
911 "@babel/plugin-transform-destructuring": "^7.8.3",
910 "@babel/plugin-transform-dotall-regex": "^7.8.3",
912 "@babel/plugin-transform-dotall-regex": "^7.8.3",
911 "@babel/plugin-transform-duplicate-keys": "^7.8.3",
913 "@babel/plugin-transform-duplicate-keys": "^7.8.3",
912 "@babel/plugin-transform-exponentiation-operator": "^7.8.3",
914 "@babel/plugin-transform-exponentiation-operator": "^7.8.3",
913− "@babel/plugin-transform-for-of": "^7.8.4",
915+ "@babel/plugin-transform-for-of": "^7.8.6",
914 "@babel/plugin-transform-function-name": "^7.8.3",
916 "@babel/plugin-transform-function-name": "^7.8.3",
915 "@babel/plugin-transform-literals": "^7.8.3",
917 "@babel/plugin-transform-literals": "^7.8.3",
916 "@babel/plugin-transform-member-expression-literals": "^7.8.3",
918 "@babel/plugin-transform-member-expression-literals": "^7.8.3",
@@ -921,9 +923,9 @@
921 "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
923 "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
922 "@babel/plugin-transform-new-target": "^7.8.3",
924 "@babel/plugin-transform-new-target": "^7.8.3",
923 "@babel/plugin-transform-object-super": "^7.8.3",
925 "@babel/plugin-transform-object-super": "^7.8.3",
924− "@babel/plugin-transform-parameters": "^7.8.4",
926+ "@babel/plugin-transform-parameters": "^7.8.7",
925 "@babel/plugin-transform-property-literals": "^7.8.3",
927 "@babel/plugin-transform-property-literals": "^7.8.3",
926− "@babel/plugin-transform-regenerator": "^7.8.3",
928+ "@babel/plugin-transform-regenerator": "^7.8.7",
927 "@babel/plugin-transform-reserved-words": "^7.8.3",
929 "@babel/plugin-transform-reserved-words": "^7.8.3",
928 "@babel/plugin-transform-shorthand-properties": "^7.8.3",
930 "@babel/plugin-transform-shorthand-properties": "^7.8.3",
929 "@babel/plugin-transform-spread": "^7.8.3",
931 "@babel/plugin-transform-spread": "^7.8.3",
@@ -931,7 +933,7 @@
931 "@babel/plugin-transform-template-literals": "^7.8.3",
933 "@babel/plugin-transform-template-literals": "^7.8.3",
932 "@babel/plugin-transform-typeof-symbol": "^7.8.4",
934 "@babel/plugin-transform-typeof-symbol": "^7.8.4",
933 "@babel/plugin-transform-unicode-regex": "^7.8.3",
935 "@babel/plugin-transform-unicode-regex": "^7.8.3",
934− "@babel/types": "^7.8.3",
936+ "@babel/types": "^7.8.7",
935 "browserslist": "^4.8.5",
937 "browserslist": "^4.8.5",
936 "core-js-compat": "^3.6.2",
938 "core-js-compat": "^3.6.2",
937 "invariant": "^2.2.2",
939 "invariant": "^2.2.2",
@@ -963,46 +965,55 @@
963 }
965 }
964 },
966 },
965 "@babel/runtime": {
967 "@babel/runtime": {
966− "version": "7.8.4",
968+ "version": "7.8.7",
969+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.7.tgz",
970+ "integrity": "sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg==",
971+ "requires": {
972+ "regenerator-runtime": "^0.13.4"
973+ }
974+ },
975+ "@babel/runtime-corejs3": {
976+ "version": "7.8.7",
967− "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
977+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.8.7.tgz",
968− "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==",
978+ "integrity": "sha512-sc7A+H4I8kTd7S61dgB9RomXu/C+F4IrRr4Ytze4dnfx7AXEpCrejSNpjx7vq6y/Bak9S6Kbk65a/WgMLtg43Q==",
969 "dev": true,
979 "dev": true,
970 "requires": {
980 "requires": {
981+ "core-js-pure": "^3.0.0",
971− "regenerator-runtime": "^0.13.2"
982+ "regenerator-runtime": "^0.13.4"
972 }
983 }
973 },
984 },
974 "@babel/template": {
985 "@babel/template": {
975− "version": "7.8.3",
986+ "version": "7.8.6",
976− "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
987+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
977− "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
988+ "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
978 "dev": true,
989 "dev": true,
979 "requires": {
990 "requires": {
980 "@babel/code-frame": "^7.8.3",
991 "@babel/code-frame": "^7.8.3",
981− "@babel/parser": "^7.8.3",
992+ "@babel/parser": "^7.8.6",
982− "@babel/types": "^7.8.3"
993+ "@babel/types": "^7.8.6"
983 }
994 }
984 },
995 },
985 "@babel/traverse": {
996 "@babel/traverse": {
986− "version": "7.8.4",
997+ "version": "7.8.6",
987− "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz",
998+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
988− "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==",
999+ "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
989 "dev": true,
1000 "dev": true,
990 "requires": {
1001 "requires": {
991 "@babel/code-frame": "^7.8.3",
1002 "@babel/code-frame": "^7.8.3",
992− "@babel/generator": "^7.8.4",
1003+ "@babel/generator": "^7.8.6",
993 "@babel/helper-function-name": "^7.8.3",
1004 "@babel/helper-function-name": "^7.8.3",
994 "@babel/helper-split-export-declaration": "^7.8.3",
1005 "@babel/helper-split-export-declaration": "^7.8.3",
995− "@babel/parser": "^7.8.4",
1006+ "@babel/parser": "^7.8.6",
996− "@babel/types": "^7.8.3",
1007+ "@babel/types": "^7.8.6",
997 "debug": "^4.1.0",
1008 "debug": "^4.1.0",
998 "globals": "^11.1.0",
1009 "globals": "^11.1.0",
999 "lodash": "^4.17.13"
1010 "lodash": "^4.17.13"
1000 }
1011 }
1001 },
1012 },
1002 "@babel/types": {
1013 "@babel/types": {
1003− "version": "7.8.3",
1014+ "version": "7.8.7",
1004− "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
1015+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
1005− "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
1016+ "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
1006 "dev": true,
1017 "dev": true,
1007 "requires": {
1018 "requires": {
1008 "esutils": "^2.0.2",
1019 "esutils": "^2.0.2",
@@ -1011,9 +1022,9 @@
1011 }
1022 }
1012 },
1023 },
1013 "@emotion/cache": {
1024 "@emotion/cache": {
1014− "version": "10.0.27",
1025+ "version": "10.0.29",
1015− "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.27.tgz",
1026+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz",
1016− "integrity": "sha512-Zp8BEpbMunFsTcqAK4D7YTm3MvCp1SekflSLJH8lze2fCcSZ/yMkXHo8kb3t1/1Tdd3hAqf3Fb7z9VZ+FMiC9w==",
1027+ "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==",
1017 "dev": true,
1028 "dev": true,
1018 "requires": {
1029 "requires": {
1019 "@emotion/sheet": "0.9.4",
1030 "@emotion/sheet": "0.9.4",
@@ -1023,9 +1034,9 @@
1023 }
1034 }
1024 },
1035 },
1025 "@emotion/core": {
1036 "@emotion/core": {
1026− "version": "10.0.27",
1037+ "version": "10.0.28",
1027− "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.27.tgz",
1038+ "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.28.tgz",
1028− "integrity": "sha512-XbD5R36pVbohQMnKfajHv43g8EbN4NHdF6Zh9zg/C0nr0jqwOw3gYnC07Xj3yG43OYSRyrGsoQ5qPwc8ycvLZw==",
1039+ "integrity": "sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA==",
1029 "dev": true,
1040 "dev": true,
1030 "requires": {
1041 "requires": {
1031 "@babel/runtime": "^7.5.5",
1042 "@babel/runtime": "^7.5.5",
@@ -1048,37 +1059,43 @@
1048 }
1059 }
1049 },
1060 },
1050 "@emotion/hash": {
1061 "@emotion/hash": {
1051− "version": "0.7.4",
1062+ "version": "0.8.0",
1052− "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.4.tgz",
1063+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
1053− "integrity": "sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A==",
1064+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
1054 "dev": true
1065 "dev": true
1055 },
1066 },
1056 "@emotion/is-prop-valid": {
1067 "@emotion/is-prop-valid": {
1057− "version": "0.8.6",
1068+ "version": "0.7.3",
1058− "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.6.tgz",
1069+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz",
1059− "integrity": "sha512-mnZMho3Sq8BfzkYYRVc8ilQTnc8U02Ytp6J1AwM6taQStZ3AhsEJBX2LzhA/LJirNCwM2VtHL3VFIZ+sNJUgUQ==",
1070+ "integrity": "sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA==",
1060− "dev": true,
1061 "requires": {
1071 "requires": {
1062− "@emotion/memoize": "0.7.4"
1072+ "@emotion/memoize": "0.7.1"
1063 }
1073 }
1064 },
1074 },
1065 "@emotion/memoize": {
1075 "@emotion/memoize": {
1066− "version": "0.7.4",
1076+ "version": "0.7.1",
1067− "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
1077+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.1.tgz",
1068− "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
1078+ "integrity": "sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg=="
1069− "dev": true
1070 },
1079 },
1071 "@emotion/serialize": {
1080 "@emotion/serialize": {
1072− "version": "0.11.15",
1081+ "version": "0.11.16",
1073− "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.15.tgz",
1082+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz",
1074− "integrity": "sha512-YE+qnrmGwyR+XB5j7Bi+0GT1JWsdcjM/d4POu+TXkcnrRs4RFCCsi3d/Ebf+wSStHqAlTT2+dfd+b9N9EO2KBg==",
1083+ "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==",
1075 "dev": true,
1084 "dev": true,
1076 "requires": {
1085 "requires": {
1077− "@emotion/hash": "0.7.4",
1086+ "@emotion/hash": "0.8.0",
1078 "@emotion/memoize": "0.7.4",
1087 "@emotion/memoize": "0.7.4",
1079 "@emotion/unitless": "0.7.5",
1088 "@emotion/unitless": "0.7.5",
1080 "@emotion/utils": "0.11.3",
1089 "@emotion/utils": "0.11.3",
1081 "csstype": "^2.5.7"
1090 "csstype": "^2.5.7"
1091+ },
1092+ "dependencies": {
1093+ "@emotion/memoize": {
1094+ "version": "0.7.4",
1095+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
1096+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
1097+ "dev": true
1098+ }
1082 }
1099 }
1083 },
1100 },
1084 "@emotion/sheet": {
1101 "@emotion/sheet": {
@@ -1098,15 +1115,32 @@
1098 }
1115 }
1099 },
1116 },
1100 "@emotion/styled-base": {
1117 "@emotion/styled-base": {
1101− "version": "10.0.27",
1118+ "version": "10.0.31",
1102− "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.27.tgz",
1119+ "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz",
1103− "integrity": "sha512-ufHM/HhE3nr309hJG9jxuFt71r6aHn7p+bwXduFxcwPFEfBIqvmZUMtZ9YxIsY61PVwK3bp4G1XhaCzy9smVvw==",
1120+ "integrity": "sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ==",
1104 "dev": true,
1121 "dev": true,
1105 "requires": {
1122 "requires": {
1106 "@babel/runtime": "^7.5.5",
1123 "@babel/runtime": "^7.5.5",
1107− "@emotion/is-prop-valid": "0.8.6",
1124+ "@emotion/is-prop-valid": "0.8.8",
1108 "@emotion/serialize": "^0.11.15",
1125 "@emotion/serialize": "^0.11.15",
1109 "@emotion/utils": "0.11.3"
1126 "@emotion/utils": "0.11.3"
1127+ },
1128+ "dependencies": {
1129+ "@emotion/is-prop-valid": {
1130+ "version": "0.8.8",
1131+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
1132+ "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
1133+ "dev": true,
1134+ "requires": {
1135+ "@emotion/memoize": "0.7.4"
1136+ }
1137+ },
1138+ "@emotion/memoize": {
1139+ "version": "0.7.4",
1140+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
1141+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
1142+ "dev": true
1143+ }
1110 }
1144 }
1111 },
1145 },
1112 "@emotion/stylis": {
1146 "@emotion/stylis": {
@@ -1144,47 +1178,6 @@
1144 "@types/yargs": "^13.0.0"
1178 "@types/yargs": "^13.0.0"
1145 }
1179 }
1146 },
1180 },
1147− "@material-ui/styles": {
1148− "version": "4.9.0",
1149− "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.9.0.tgz",
1150− "integrity": "sha512-nJHum4RqYBPWsjL/9JET8Z02FZ9gSizlg/7LWVFpIthNzpK6OQ5OSRR4T4x9/p+wK3t1qNn3b1uI4XpnZaPxOA==",
1151− "dev": true,
1152− "requires": {
1153− "@babel/runtime": "^7.4.4",
1154− "@emotion/hash": "^0.7.4",
1155− "@material-ui/types": "^5.0.0",
1156− "@material-ui/utils": "^4.7.1",
1157− "clsx": "^1.0.2",
1158− "csstype": "^2.5.2",
1159− "hoist-non-react-statics": "^3.2.1",
1160− "jss": "^10.0.3",
1161− "jss-plugin-camel-case": "^10.0.3",
1162− "jss-plugin-default-unit": "^10.0.3",
1163− "jss-plugin-global": "^10.0.3",
1164− "jss-plugin-nested": "^10.0.3",
1165− "jss-plugin-props-sort": "^10.0.3",
1166− "jss-plugin-rule-value-function": "^10.0.3",
1167− "jss-plugin-vendor-prefixer": "^10.0.3",
1168− "prop-types": "^15.7.2"
1169− }
1170− },
1171− "@material-ui/types": {
1172− "version": "5.0.0",
1173− "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.0.0.tgz",
1174− "integrity": "sha512-UeH2BuKkwDndtMSS0qgx1kCzSMw+ydtj0xx/XbFtxNSTlXydKwzs5gVW5ZKsFlAkwoOOQ9TIsyoCC8hq18tOwg==",
1175− "dev": true
1176− },
1177− "@material-ui/utils": {
1178− "version": "4.7.1",
1179− "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.7.1.tgz",
1180− "integrity": "sha512-+ux0SlLdlehvzCk2zdQ3KiS3/ylWvuo/JwAGhvb8dFVvwR21K28z0PU9OQW2PGogrMEdvX3miEI5tGxTwwWiwQ==",
1181− "dev": true,
1182− "requires": {
1183− "@babel/runtime": "^7.4.4",
1184− "prop-types": "^15.7.2",
1185− "react-is": "^16.8.0"
1186− }
1187− },
1188 "@mrmlnc/readdir-enhanced": {
1181 "@mrmlnc/readdir-enhanced": {
1189 "version": "2.2.1",
1182 "version": "2.2.1",
1190 "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
1183 "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
@@ -1202,9 +1195,9 @@
1202 "dev": true
1195 "dev": true
1203 },
1196 },
1204 "@reach/router": {
1197 "@reach/router": {
1205− "version": "1.3.1",
1198+ "version": "1.3.3",
1206− "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.1.tgz",
1199+ "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.3.tgz",
1207− "integrity": "sha512-Ov1j1J+pSgXliJHFL7XWhjyREwc6GxeWfgBTa5MMH5eRmYtHbPhaovba4xKo7aTVCg8fxkt2yDMNSpvwfUP+pA==",
1200+ "integrity": "sha512-gOIAiFhWdiVGSVjukKeNKkCRBLmnORoTPyBihI/jLunICPgxdP30DroAvPQuf1eVfQbfGJQDJkwhJXsNPMnVWw==",
1208 "dev": true,
1201 "dev": true,
1209 "requires": {
1202 "requires": {
1210 "create-react-context": "0.3.0",
1203 "create-react-context": "0.3.0",
@@ -1214,39 +1207,39 @@
1214 }
1207 }
1215 },
1208 },
1216 "@sheerun/mutationobserver-shim": {
1209 "@sheerun/mutationobserver-shim": {
1217− "version": "0.3.2",
1210+ "version": "0.3.3",
1218− "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz",
1211+ "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz",
1219− "integrity": "sha512-vTCdPp/T/Q3oSqwHmZ5Kpa9oI7iLtGl3RQaA/NyLHikvcrPxACkkKVr/XzkSPJWXHRhKGzVvb0urJsbMlRxi1Q==",
1212+ "integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==",
1220 "dev": true
1213 "dev": true
1221 },
1214 },
1222 "@storybook/addons": {
1215 "@storybook/addons": {
1223− "version": "5.3.12",
1216+ "version": "5.3.17",
1224− "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.12.tgz",
1217+ "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.17.tgz",
1225− "integrity": "sha512-5jVns+wq95ZismEQ5ByDhrEFzDH8OIEj2BLSPT7VTbik7iLC+h7H2toWKAwIYZCxAuq0OTy6ZpIyhU/R2YuO4w==",
1218+ "integrity": "sha512-zg6O1bmffRsHXJOWAnSD2O3tPnVMoD8Yfu+a5zBVXDiUP1E/TGzgjjjYBUUCU3yQg1Ted5rIn4o6ql/rZNNlgA==",
1226 "dev": true,
1219 "dev": true,
1227 "requires": {
1220 "requires": {
1228− "@storybook/api": "5.3.12",
1221+ "@storybook/api": "5.3.17",
1229− "@storybook/channels": "5.3.12",
1222+ "@storybook/channels": "5.3.17",
1230− "@storybook/client-logger": "5.3.12",
1223+ "@storybook/client-logger": "5.3.17",
1231− "@storybook/core-events": "5.3.12",
1224+ "@storybook/core-events": "5.3.17",
1232 "core-js": "^3.0.1",
1225 "core-js": "^3.0.1",
1233 "global": "^4.3.2",
1226 "global": "^4.3.2",
1234 "util-deprecate": "^1.0.2"
1227 "util-deprecate": "^1.0.2"
1235 }
1228 }
1236 },
1229 },
1237 "@storybook/api": {
1230 "@storybook/api": {
1238− "version": "5.3.12",
1231+ "version": "5.3.17",
1239− "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.12.tgz",
1232+ "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.17.tgz",
1240− "integrity": "sha512-wYsr97vqARwmOordlPY17MJ9PrHSCsSM9JRC/zh698kXQGwYnse1nErzAiwj8YxuItfWGzE06kqjZBccnfSxPQ==",
1233+ "integrity": "sha512-G40jtXFY10hQo6GSw5JeFYt41loD4+7s0uU18Rm6lfa/twOgp6vqqyDCWDvpRRxRBB5uDIKKHLt13X9gWe8tQQ==",
1241 "dev": true,
1234 "dev": true,
1242 "requires": {
1235 "requires": {
1243 "@reach/router": "^1.2.1",
1236 "@reach/router": "^1.2.1",
1244− "@storybook/channels": "5.3.12",
1237+ "@storybook/channels": "5.3.17",
1245− "@storybook/client-logger": "5.3.12",
1238+ "@storybook/client-logger": "5.3.17",
1246− "@storybook/core-events": "5.3.12",
1239+ "@storybook/core-events": "5.3.17",
1247 "@storybook/csf": "0.0.1",
1240 "@storybook/csf": "0.0.1",
1248− "@storybook/router": "5.3.12",
1241+ "@storybook/router": "5.3.17",
1249− "@storybook/theming": "5.3.12",
1242+ "@storybook/theming": "5.3.17",
1250 "@types/reach__router": "^1.2.3",
1243 "@types/reach__router": "^1.2.3",
1251 "core-js": "^3.0.1",
1244 "core-js": "^3.0.1",
1252 "fast-deep-equal": "^2.0.1",
1245 "fast-deep-equal": "^2.0.1",
@@ -1271,38 +1264,38 @@
1271 }
1264 }
1272 },
1265 },
1273 "@storybook/channel-postmessage": {
1266 "@storybook/channel-postmessage": {
1274− "version": "5.3.12",
1267+ "version": "5.3.17",
1275− "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.12.tgz",
1268+ "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.17.tgz",
1276− "integrity": "sha512-yQZ6Ef0KnxI7vxJrcJaBYeZpxhl/18WEFtAO9MphvYvtd1dudqKNqdx9B/30PIXb7c/SptvGJR/EZhsRNr4Oug==",
1269+ "integrity": "sha512-1aSQNeO2+roPRgMFjW3AWTO3uS93lbCMUTYCBdi20md4bQ9SutJy33rynCQcWuMj1prCQ2Ekz4BGhdcIQVKlzg==",
1277 "dev": true,
1270 "dev": true,
1278 "requires": {
1271 "requires": {
1279− "@storybook/channels": "5.3.12",
1272+ "@storybook/channels": "5.3.17",
1280− "@storybook/client-logger": "5.3.12",
1273+ "@storybook/client-logger": "5.3.17",
1281 "core-js": "^3.0.1",
1274 "core-js": "^3.0.1",
1282 "global": "^4.3.2",
1275 "global": "^4.3.2",
1283 "telejson": "^3.2.0"
1276 "telejson": "^3.2.0"
1284 }
1277 }
1285 },
1278 },
1286 "@storybook/channels": {
1279 "@storybook/channels": {
1287− "version": "5.3.12",
1280+ "version": "5.3.17",
1288− "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.12.tgz",
1281+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.17.tgz",
1289− "integrity": "sha512-sfSHIRUusjZ69WhfPp8BrfmlGg80PYTNCBSE+1apK/WkgzYJyGgQmJgRAW6HTFqjawD7T+utAtarsqS30jo9jQ==",
1282+ "integrity": "sha512-5hlBRbyk+YxC4KgecYG8wWwB2v1BzRJXhSlemFDOQk9wx37gVpne+rBydEtNFO4InmaZf6tKbBcpH0wBFLdWYA==",
1290 "dev": true,
1283 "dev": true,
1291 "requires": {
1284 "requires": {
1292 "core-js": "^3.0.1"
1285 "core-js": "^3.0.1"
1293 }
1286 }
1294 },
1287 },
1295 "@storybook/client-api": {
1288 "@storybook/client-api": {
1296− "version": "5.3.12",
1289+ "version": "5.3.17",
1297− "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.12.tgz",
1290+ "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.17.tgz",
1298− "integrity": "sha512-Qzi+pS9FwqrArnG1VMV4QJxEdvw7KVc2ufgax7jCvK8JtDlSVe1/qpbJn7U3o1z4TPY/u3m6PbBLJDoSWTVonw==",
1291+ "integrity": "sha512-oe55FPTGVL2k+j45eCN3oE7ePkE4VpgUQ/dhJbjU0R2L+HyRyBhd0wnMYj1f5E8uVNbtjFYAtbjjgcf1R1imeg==",
1299 "dev": true,
1292 "dev": true,
1300 "requires": {
1293 "requires": {
1301− "@storybook/addons": "5.3.12",
1294+ "@storybook/addons": "5.3.17",
1302− "@storybook/channel-postmessage": "5.3.12",
1295+ "@storybook/channel-postmessage": "5.3.17",
1303− "@storybook/channels": "5.3.12",
1296+ "@storybook/channels": "5.3.17",
1304− "@storybook/client-logger": "5.3.12",
1297+ "@storybook/client-logger": "5.3.17",
1305− "@storybook/core-events": "5.3.12",
1298+ "@storybook/core-events": "5.3.17",
1306 "@storybook/csf": "0.0.1",
1299 "@storybook/csf": "0.0.1",
1307 "@types/webpack-env": "^1.15.0",
1300 "@types/webpack-env": "^1.15.0",
1308 "core-js": "^3.0.1",
1301 "core-js": "^3.0.1",
@@ -1318,23 +1311,23 @@
1318 }
1311 }
1319 },
1312 },
1320 "@storybook/client-logger": {
1313 "@storybook/client-logger": {
1321− "version": "5.3.12",
1314+ "version": "5.3.17",
1322− "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.12.tgz",
1315+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.17.tgz",
1323− "integrity": "sha512-LsKDW4ijGJjyRg3GetS/OtVS+8ESxydVG55jvAlExHehUcVRvrPew5MsW63CRTQDpZsoh1aT9oV1yr8eYu1HZg==",
1316+ "integrity": "sha512-GYYvVGIOs+fq11LXXy7x2sr3hhC9LMI1jtIckjKV1dsY9MJ5g22M+Wl5Iw4nf6VMWsqcN9LSlYE+u/H+Q2uCHw==",
1324 "dev": true,
1317 "dev": true,
1325 "requires": {
1318 "requires": {
1326 "core-js": "^3.0.1"
1319 "core-js": "^3.0.1"
1327 }
1320 }
1328 },
1321 },
1329 "@storybook/components": {
1322 "@storybook/components": {
1330− "version": "5.3.12",
1323+ "version": "5.3.17",
1331− "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.12.tgz",
1324+ "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.17.tgz",
1332− "integrity": "sha512-Ma67yaSJHaNqLjp2csOZvHdu1Sk1eMke29WVEWjPYUBzzaZK7ZlmGiXzN0roYJVGaqHkl2f7xxRfPfWQp9NCIw==",
1325+ "integrity": "sha512-M5oqbzcqFX4VDNI8siT3phT7rmFwChQ/xPwX9ygByBsZCoNuLMzafavfTOhZvxCPiliFbBxmxtK/ibCsSzuKZg==",
1333 "dev": true,
1326 "dev": true,
1334 "requires": {
1327 "requires": {
1335− "@storybook/client-logger": "5.3.12",
1328+ "@storybook/client-logger": "5.3.17",
1336− "@storybook/theming": "5.3.12",
1329+ "@storybook/theming": "5.3.17",
1337− "@types/react-syntax-highlighter": "11.0.2",
1330+ "@types/react-syntax-highlighter": "11.0.4",
1338 "@types/react-textarea-autosize": "^4.3.3",
1331 "@types/react-textarea-autosize": "^4.3.3",
1339 "core-js": "^3.0.1",
1332 "core-js": "^3.0.1",
1340 "global": "^4.3.2",
1333 "global": "^4.3.2",
@@ -1356,9 +1349,9 @@
1356 }
1349 }
1357 },
1350 },
1358 "@storybook/core": {
1351 "@storybook/core": {
1359− "version": "5.3.12",
1352+ "version": "5.3.17",
1360− "resolved": "https://registry.npmjs.org/@storybook/core/-/core-5.3.12.tgz",
1353+ "resolved": "https://registry.npmjs.org/@storybook/core/-/core-5.3.17.tgz",
1361− "integrity": "sha512-oqffKLyMEVREeOC8O1RVO+xn68zk4wZkjWN9KbhbMoP3zdxM1gdvpsemdVE1C008mZfe1A/KBwuuEmcn9EBTNw==",
1354+ "integrity": "sha512-H6G8ygjb4RSVSKPdWz6su3Nvzxm8CfrHuCyUo4DLC46mirXfYRrJV1HiwXriViqoZV4gFbpaNKTDzTl/QKFDAg==",
1362 "dev": true,
1355 "dev": true,
1363 "requires": {
1356 "requires": {
1364 "@babel/plugin-proposal-class-properties": "^7.7.0",
1357 "@babel/plugin-proposal-class-properties": "^7.7.0",
@@ -1366,16 +1359,16 @@
1366 "@babel/plugin-syntax-dynamic-import": "^7.2.0",
1359 "@babel/plugin-syntax-dynamic-import": "^7.2.0",
1367 "@babel/plugin-transform-react-constant-elements": "^7.2.0",
1360 "@babel/plugin-transform-react-constant-elements": "^7.2.0",
1368 "@babel/preset-env": "^7.4.5",
1361 "@babel/preset-env": "^7.4.5",
1369− "@storybook/addons": "5.3.12",
1362+ "@storybook/addons": "5.3.17",
1370− "@storybook/channel-postmessage": "5.3.12",
1363+ "@storybook/channel-postmessage": "5.3.17",
1371− "@storybook/client-api": "5.3.12",
1364+ "@storybook/client-api": "5.3.17",
1372− "@storybook/client-logger": "5.3.12",
1365+ "@storybook/client-logger": "5.3.17",
1373− "@storybook/core-events": "5.3.12",
1366+ "@storybook/core-events": "5.3.17",
1374 "@storybook/csf": "0.0.1",
1367 "@storybook/csf": "0.0.1",
1375− "@storybook/node-logger": "5.3.12",
1368+ "@storybook/node-logger": "5.3.17",
1376− "@storybook/router": "5.3.12",
1369+ "@storybook/router": "5.3.17",
1377− "@storybook/theming": "5.3.12",
1370+ "@storybook/theming": "5.3.17",
1378− "@storybook/ui": "5.3.12",
1371+ "@storybook/ui": "5.3.17",
1379 "airbnb-js-shims": "^2.2.1",
1372 "airbnb-js-shims": "^2.2.1",
1380 "ansi-to-html": "^0.6.11",
1373 "ansi-to-html": "^0.6.11",
1381 "autoprefixer": "^9.7.2",
1374 "autoprefixer": "^9.7.2",
@@ -1495,9 +1488,9 @@
1495 }
1488 }
1496 },
1489 },
1497 "@storybook/core-events": {
1490 "@storybook/core-events": {
1498− "version": "5.3.12",
1491+ "version": "5.3.17",
1499− "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.12.tgz",
1492+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.17.tgz",
1500− "integrity": "sha512-qUX0xvADM8LBUtzeTi8r803eeikyzooH8HwnUg6GP238NRnR13BK/tSnBx6XpJubGL5gv9a1jZJQWxP25KPHfA==",
1493+ "integrity": "sha512-DOeX9fpeGW4o9Gocxa4VW9wAlAyfIVNDTzq0wVvvMBthTTo9u58NmndglEMDgDa2Cq6iAIPh7vz2bRJCNexzLw==",
1501 "dev": true,
1494 "dev": true,
1502 "requires": {
1495 "requires": {
1503 "core-js": "^3.0.1"
1496 "core-js": "^3.0.1"
@@ -1513,9 +1506,9 @@
1513 }
1506 }
1514 },
1507 },
1515 "@storybook/node-logger": {
1508 "@storybook/node-logger": {
1516− "version": "5.3.12",
1509+ "version": "5.3.17",
1517− "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.12.tgz",
1510+ "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.17.tgz",
1518− "integrity": "sha512-ytIqS1Lx+gWFBNxwWOK7F63702YYsoU90UFQNUMC44lC1L7tOI9BQXtGIWTvmXJYns+O5pHHOVKkHLT9EGX2OA==",
1511+ "integrity": "sha512-onfcxl37BYZI1HGuPI9MelkyUWjn7NpfN8RUYdqG9P6WKiIY5xbpG0V6qod5jvIKIypK0NmfJTtneOu46L/oDg==",
1519 "dev": true,
1512 "dev": true,
1520 "requires": {
1513 "requires": {
1521 "@types/npmlog": "^4.1.2",
1514 "@types/npmlog": "^4.1.2",
@@ -1579,17 +1572,17 @@
1579 }
1572 }
1580 },
1573 },
1581 "@storybook/react": {
1574 "@storybook/react": {
1582− "version": "5.3.12",
1575+ "version": "5.3.17",
1583− "resolved": "https://registry.npmjs.org/@storybook/react/-/react-5.3.12.tgz",
1576+ "resolved": "https://registry.npmjs.org/@storybook/react/-/react-5.3.17.tgz",
1584− "integrity": "sha512-eMbnzXizx0rp3UEnxZlySBI/z1Z/ursw0u2bFr2N9okzOio3yLSoDeMuB6BzZxDLkSgfQAw2qHtJa0eddjxoRQ==",
1577+ "integrity": "sha512-FQLH3q2Ge68oLBaTge7wl5Y1KkB+pqL36llor7TOO9IxGLF6o2t2qillWnrgX6yZUpkvJK8MgkZW1/N3tslw4Q==",
1585 "dev": true,
1578 "dev": true,
1586 "requires": {
1579 "requires": {
1587 "@babel/plugin-transform-react-constant-elements": "^7.6.3",
1580 "@babel/plugin-transform-react-constant-elements": "^7.6.3",
1588 "@babel/preset-flow": "^7.0.0",
1581 "@babel/preset-flow": "^7.0.0",
1589 "@babel/preset-react": "^7.0.0",
1582 "@babel/preset-react": "^7.0.0",
1590− "@storybook/addons": "5.3.12",
1583+ "@storybook/addons": "5.3.17",
1591− "@storybook/core": "5.3.12",
1584+ "@storybook/core": "5.3.17",
1592− "@storybook/node-logger": "5.3.12",
1585+ "@storybook/node-logger": "5.3.17",
1593 "@svgr/webpack": "^4.0.3",
1586 "@svgr/webpack": "^4.0.3",
1594 "@types/webpack-env": "^1.15.0",
1587 "@types/webpack-env": "^1.15.0",
1595 "babel-plugin-add-react-displayname": "^0.0.5",
1588 "babel-plugin-add-react-displayname": "^0.0.5",
@@ -1598,7 +1591,7 @@
1598 "core-js": "^3.0.1",
1591 "core-js": "^3.0.1",
1599 "global": "^4.3.2",
1592 "global": "^4.3.2",
1600 "lodash": "^4.17.15",
1593 "lodash": "^4.17.15",
1601− "mini-css-extract-plugin": "^0.9.0",
1594+ "mini-css-extract-plugin": "^0.7.0",
1602 "prop-types": "^15.7.2",
1595 "prop-types": "^15.7.2",
1603 "react-dev-utils": "^9.0.0",
1596 "react-dev-utils": "^9.0.0",
1604 "regenerator-runtime": "^0.13.3",
1597 "regenerator-runtime": "^0.13.3",
@@ -1616,9 +1609,9 @@
1616 }
1609 }
1617 },
1610 },
1618 "@storybook/router": {
1611 "@storybook/router": {
1619− "version": "5.3.12",
1612+ "version": "5.3.17",
1620− "resolved": "https://registry.npmjs.org/@storybook/router/-/router-5.3.12.tgz",
1613+ "resolved": "https://registry.npmjs.org/@storybook/router/-/router-5.3.17.tgz",
1621− "integrity": "sha512-IuI/MMFb27XGFaFjaUCYUgK+P4jeGLBDI4cCn6Fezb5RRgpdOf2DobDIUZtujSmvPnEF8C+SJE/v1dXihRO1Xg==",
1614+ "integrity": "sha512-ANsiehGRTVSremgTW0Vt47dQ4JA86a4/w/4G6QqHU8Cm4jO3cw/wAcCxlzfcgCXOUiq+SuyPTU43+0O5uBx33g==",
1622 "dev": true,
1615 "dev": true,
1623 "requires": {
1616 "requires": {
1624 "@reach/router": "^1.2.1",
1617 "@reach/router": "^1.2.1",
@@ -1633,14 +1626,14 @@
1633 }
1626 }
1634 },
1627 },
1635 "@storybook/theming": {
1628 "@storybook/theming": {
1636− "version": "5.3.12",
1629+ "version": "5.3.17",
1637− "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.12.tgz",
1630+ "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.17.tgz",
1638− "integrity": "sha512-LwyFBbxYtm2rr86mA0d+oYisIpW2GrDqmv0ZGEmx9EqKK1JwG3N99VSK7iHig6vpNu42LHLakuaqK55H2Q7YcA==",
1631+ "integrity": "sha512-4JeOZnDDHtb4LOt5sXe/s1Jhbb2UPsr8zL9NWmKJmTsgnyTvBipNHOmFYDUsIacB5K4GXSqm+cZ7Z4AkUgWCDw==",
1639 "dev": true,
1632 "dev": true,
1640 "requires": {
1633 "requires": {
1641 "@emotion/core": "^10.0.20",
1634 "@emotion/core": "^10.0.20",
1642 "@emotion/styled": "^10.0.17",
1635 "@emotion/styled": "^10.0.17",
1643− "@storybook/client-logger": "5.3.12",
1636+ "@storybook/client-logger": "5.3.17",
1644 "core-js": "^3.0.1",
1637 "core-js": "^3.0.1",
1645 "deep-object-diff": "^1.1.0",
1638 "deep-object-diff": "^1.1.0",
1646 "emotion-theming": "^10.0.19",
1639 "emotion-theming": "^10.0.19",
@@ -1653,20 +1646,20 @@
1653 }
1646 }
1654 },
1647 },
1655 "@storybook/ui": {
1648 "@storybook/ui": {
1656− "version": "5.3.12",
1649+ "version": "5.3.17",
1657− "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.12.tgz",
1650+ "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.17.tgz",
1658− "integrity": "sha512-dVYJJkwjfGkz3u0lnfawnT6hqBRnANVlKEYirKYZyQ/RouCN3naNh9Sagrpg7hJHYib4Ny6J/pyaNdfdieDS+w==",
1651+ "integrity": "sha512-5S9r70QbtNKu8loa5pfO5lLX9coF/ZqesEKcanfvuSwqCSg/Z51UwFCuO6eNhVlpXzyZXi5d8qKbZlbf+uvDAA==",
1659 "dev": true,
1652 "dev": true,
1660 "requires": {
1653 "requires": {
1661 "@emotion/core": "^10.0.20",
1654 "@emotion/core": "^10.0.20",
1662− "@storybook/addons": "5.3.12",
1655+ "@storybook/addons": "5.3.17",
1663− "@storybook/api": "5.3.12",
1656+ "@storybook/api": "5.3.17",
1664− "@storybook/channels": "5.3.12",
1657+ "@storybook/channels": "5.3.17",
1665− "@storybook/client-logger": "5.3.12",
1658+ "@storybook/client-logger": "5.3.17",
1666− "@storybook/components": "5.3.12",
1659+ "@storybook/components": "5.3.17",
1667− "@storybook/core-events": "5.3.12",
1660+ "@storybook/core-events": "5.3.17",
1668− "@storybook/router": "5.3.12",
1661+ "@storybook/router": "5.3.17",
1669− "@storybook/theming": "5.3.12",
1662+ "@storybook/theming": "5.3.17",
1670 "copy-to-clipboard": "^3.0.8",
1663 "copy-to-clipboard": "^3.0.8",
1671 "core-js": "^3.0.1",
1664 "core-js": "^3.0.1",
1672 "core-js-pure": "^3.0.1",
1665 "core-js-pure": "^3.0.1",
@@ -1906,27 +1899,28 @@
1906 }
1899 }
1907 },
1900 },
1908 "@testing-library/dom": {
1901 "@testing-library/dom": {
1909− "version": "6.12.2",
1902+ "version": "6.16.0",
1910− "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.12.2.tgz",
1903+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.16.0.tgz",
1911− "integrity": "sha512-KCnvHra5fV+wDxg3wJObGvZFxq7v1DJt829GNFLuRDjKxVNc/B5AdsylNF5PMHFbWMXDsHwM26d2NZcZO9KjbQ==",
1904+ "integrity": "sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==",
1912 "dev": true,
1905 "dev": true,
1913 "requires": {
1906 "requires": {
1914− "@babel/runtime": "^7.6.2",
1907+ "@babel/runtime": "^7.8.4",
1915 "@sheerun/mutationobserver-shim": "^0.3.2",
1908 "@sheerun/mutationobserver-shim": "^0.3.2",
1916− "@types/testing-library__dom": "^6.0.0",
1909+ "@types/testing-library__dom": "^6.12.1",
1917− "aria-query": "3.0.0",
1910+ "aria-query": "^4.0.2",
1911+ "dom-accessibility-api": "^0.3.0",
1918− "pretty-format": "^24.9.0",
1912+ "pretty-format": "^25.1.0",
1919− "wait-for-expect": "^3.0.0"
1913+ "wait-for-expect": "^3.0.2"
1920 }
1914 }
1921 },
1915 },
1922 "@testing-library/react": {
1916 "@testing-library/react": {
1923− "version": "9.4.0",
1917+ "version": "9.5.0",
1924− "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.4.0.tgz",
1918+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz",
1925− "integrity": "sha512-XdhDWkI4GktUPsz0AYyeQ8M9qS/JFie06kcSnUVcpgOwFjAu9vhwR83qBl+lw9yZWkbECjL8Hd+n5hH6C0oWqg==",
1919+ "integrity": "sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==",
1926 "dev": true,
1920 "dev": true,
1927 "requires": {
1921 "requires": {
1928− "@babel/runtime": "^7.7.6",
1922+ "@babel/runtime": "^7.8.4",
1929− "@testing-library/dom": "^6.11.0",
1923+ "@testing-library/dom": "^6.15.0",
1930 "@types/testing-library__react": "^9.1.2"
1924 "@types/testing-library__react": "^9.1.2"
1931 }
1925 }
1932 },
1926 },
@@ -1997,9 +1991,9 @@
1997 "dev": true
1991 "dev": true
1998 },
1992 },
1999 "@types/node": {
1993 "@types/node": {
2000− "version": "13.7.0",
1994+ "version": "13.9.1",
2001− "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz",
1995+ "resolved": "https://registry.npmjs.org/@types/node/-/node-13.9.1.tgz",
2002− "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==",
1996+ "integrity": "sha512-E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ==",
2003 "dev": true
1997 "dev": true
2004 },
1998 },
2005 "@types/npmlog": {
1999 "@types/npmlog": {
@@ -2027,9 +2021,9 @@
2027 "dev": true
2021 "dev": true
2028 },
2022 },
2029 "@types/reach__router": {
2023 "@types/reach__router": {
2030− "version": "1.2.6",
2024+ "version": "1.3.0",
2031− "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.2.6.tgz",
2025+ "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.0.tgz",
2032− "integrity": "sha512-Oh5DAVr/L2svBvubw6QEFpXGu295Y406BPs4i9t1n2pp7M+q3pmCmhzb9oZV5wncR41KCD3NHl1Yhi7uKnTPsA==",
2026+ "integrity": "sha512-0aL79bFPJzJOJOOMZm2301ErQVaveBdpW88uuavXymUlcYIAOCmI1ujJ2XLH6Mzn76O94eQCHIl1FDzNNKJCYA==",
2033 "dev": true,
2027 "dev": true,
2034 "requires": {
2028 "requires": {
2035 "@types/history": "*",
2029 "@types/history": "*",
@@ -2037,9 +2031,9 @@
2037 }
2031 }
2038 },
2032 },
2039 "@types/react": {
2033 "@types/react": {
2040− "version": "16.9.19",
2034+ "version": "16.9.23",
2041− "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz",
2035+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.23.tgz",
2042− "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==",
2036+ "integrity": "sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw==",
2043 "dev": true,
2037 "dev": true,
2044 "requires": {
2038 "requires": {
2045 "@types/prop-types": "*",
2039 "@types/prop-types": "*",
@@ -2056,9 +2050,9 @@
2056 }
2050 }
2057 },
2051 },
2058 "@types/react-syntax-highlighter": {
2052 "@types/react-syntax-highlighter": {
2059− "version": "11.0.2",
2053+ "version": "11.0.4",
2060− "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.2.tgz",
2054+ "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.4.tgz",
2061− "integrity": "sha512-iMNcixH8330f2dq0RY+VOXCP8JFehgmOhLOtnO85Ty+qu0fHXJNEqWx5VuFv8v0aEq0U/N9d/k1yvA+c6PEmPw==",
2055+ "integrity": "sha512-9GfTo3a0PHwQeTVoqs0g5bS28KkSY48pp5659wA+Dp4MqceDEa8EHBqrllJvvtyusszyJhViUEap0FDvlk/9Zg==",
2062 "dev": true,
2056 "dev": true,
2063 "requires": {
2057 "requires": {
2064 "@types/react": "*"
2058 "@types/react": "*"
@@ -2074,22 +2068,43 @@
2074 }
2068 }
2075 },
2069 },
2076 "@types/testing-library__dom": {
2070 "@types/testing-library__dom": {
2077− "version": "6.12.1",
2071+ "version": "6.14.0",
2078− "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.12.1.tgz",
2072+ "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz",
2079− "integrity": "sha512-cgqnEjxKk31tQt29j4baSWaZPNjQf3bHalj2gcHQTpW5SuHRal76gOpF0vypeEo6o+sS5inOvvNdzLY0B3FB2A==",
2073+ "integrity": "sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==",
2080 "dev": true,
2074 "dev": true,
2081 "requires": {
2075 "requires": {
2082 "pretty-format": "^24.3.0"
2076 "pretty-format": "^24.3.0"
2077+ },
2078+ "dependencies": {
2079+ "ansi-regex": {
2080+ "version": "4.1.0",
2081+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
2082+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
2083+ "dev": true
2084+ },
2085+ "pretty-format": {
2086+ "version": "24.9.0",
2087+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
2088+ "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
2089+ "dev": true,
2090+ "requires": {
2091+ "@jest/types": "^24.9.0",
2092+ "ansi-regex": "^4.0.0",
2093+ "ansi-styles": "^3.2.0",
2094+ "react-is": "^16.8.4"
2095+ }
2096+ }
2083 }
2097 }
2084 },
2098 },
2085 "@types/testing-library__react": {
2099 "@types/testing-library__react": {
2086− "version": "9.1.2",
2100+ "version": "9.1.3",
2087− "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.2.tgz",
2101+ "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.3.tgz",
2088− "integrity": "sha512-CYaMqrswQ+cJACy268jsLAw355DZtPZGt3Jwmmotlcu8O/tkoXBI6AeZ84oZBJsIsesozPKzWzmv/0TIU+1E9Q==",
2102+ "integrity": "sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w==",
2089 "dev": true,
2103 "dev": true,
2090 "requires": {
2104 "requires": {
2091 "@types/react-dom": "*",
2105 "@types/react-dom": "*",
2092− "@types/testing-library__dom": "*"
2106+ "@types/testing-library__dom": "*",
2107+ "pretty-format": "^25.1.0"
2093 }
2108 }
2094 },
2109 },
2095 "@types/webpack-env": {
2110 "@types/webpack-env": {
@@ -2318,9 +2333,9 @@
2318 }
2333 }
2319 },
2334 },
2320 "acorn": {
2335 "acorn": {
2321− "version": "6.4.0",
2336+ "version": "6.4.1",
2322− "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz",
2337+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
2323− "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==",
2338+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
2324 "dev": true
2339 "dev": true
2325 },
2340 },
2326 "acorn-globals": {
2341 "acorn-globals": {
@@ -2381,9 +2396,9 @@
2381 }
2396 }
2382 },
2397 },
2383 "ajv": {
2398 "ajv": {
2384− "version": "6.11.0",
2399+ "version": "6.12.0",
2385− "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
2400+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
2386− "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
2401+ "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
2387 "dev": true,
2402 "dev": true,
2388 "requires": {
2403 "requires": {
2389 "fast-deep-equal": "^3.1.1",
2404 "fast-deep-equal": "^3.1.1",
@@ -2462,12 +2477,20 @@
2462 "dev": true
2477 "dev": true
2463 },
2478 },
2464 "ansi-escapes": {
2479 "ansi-escapes": {
2465− "version": "4.3.0",
2480+ "version": "4.3.1",
2466− "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
2481+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
2467− "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==",
2482+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
2468 "dev": true,
2483 "dev": true,
2469 "requires": {
2484 "requires": {
2470− "type-fest": "^0.8.1"
2485+ "type-fest": "^0.11.0"
2486+ },
2487+ "dependencies": {
2488+ "type-fest": {
2489+ "version": "0.11.0",
2490+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
2491+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
2492+ "dev": true
2493+ }
2471 }
2494 }
2472 },
2495 },
2473 "ansi-html": {
2496 "ansi-html": {
@@ -2580,21 +2603,13 @@
2580 }
2603 }
2581 },
2604 },
2582 "aria-query": {
2605 "aria-query": {
2583− "version": "3.0.0",
2606+ "version": "4.0.2",
2584− "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz",
2607+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.0.2.tgz",
2585− "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=",
2608+ "integrity": "sha512-S1G1V790fTaigUSM/Gd0NngzEfiMy9uTUfMyHhKhVyy4cH5O/eTuR01ydhGL0z4Za1PXFTRGH3qL8VhUQuEO5w==",
2586 "dev": true,
2609 "dev": true,
2587 "requires": {
2610 "requires": {
2588− "ast-types-flow": "0.0.7",
2611+ "@babel/runtime": "^7.7.4",
2589− "commander": "^2.11.0"
2612+ "@babel/runtime-corejs3": "^7.7.4"
2590− },
2591− "dependencies": {
2592− "commander": {
2593− "version": "2.20.3",
2594− "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
2595− "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
2596− "dev": true
2597− }
2598 }
2613 }
2599 },
2614 },
2600 "arr-diff": {
2615 "arr-diff": {
@@ -2763,12 +2778,6 @@
2763 "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==",
2778 "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==",
2764 "dev": true
2779 "dev": true
2765 },
2780 },
2766− "ast-types-flow": {
2767− "version": "0.0.7",
2768− "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
2769− "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
2770− "dev": true
2771− },
2772 "async": {
2781 "async": {
2773 "version": "2.6.3",
2782 "version": "2.6.3",
2774 "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
2783 "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
@@ -2956,21 +2965,29 @@
2956 }
2965 }
2957 },
2966 },
2958 "babel-plugin-emotion": {
2967 "babel-plugin-emotion": {
2959− "version": "10.0.27",
2968+ "version": "10.0.29",
2960− "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.27.tgz",
2969+ "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.29.tgz",
2961− "integrity": "sha512-SUNYcT4FqhOqvwv0z1oeYhqgheU8qrceLojuHyX17ngo7WtWqN5I9l3IGHzf21Xraj465CVzF4IvOlAF+3ed0A==",
2970+ "integrity": "sha512-7Jpi1OCxjyz0k163lKtqP+LHMg5z3S6A7vMBfHnF06l2unmtsOmFDzZBpGf0CWo1G4m8UACfVcDJiSiRuu/cSw==",
2962 "dev": true,
2971 "dev": true,
2963 "requires": {
2972 "requires": {
2964 "@babel/helper-module-imports": "^7.0.0",
2973 "@babel/helper-module-imports": "^7.0.0",
2965− "@emotion/hash": "0.7.4",
2974+ "@emotion/hash": "0.8.0",
2966 "@emotion/memoize": "0.7.4",
2975 "@emotion/memoize": "0.7.4",
2967− "@emotion/serialize": "^0.11.15",
2976+ "@emotion/serialize": "^0.11.16",
2968 "babel-plugin-macros": "^2.0.0",
2977 "babel-plugin-macros": "^2.0.0",
2969 "babel-plugin-syntax-jsx": "^6.18.0",
2978 "babel-plugin-syntax-jsx": "^6.18.0",
2970 "convert-source-map": "^1.5.0",
2979 "convert-source-map": "^1.5.0",
2971 "escape-string-regexp": "^1.0.5",
2980 "escape-string-regexp": "^1.0.5",
2972 "find-root": "^1.1.0",
2981 "find-root": "^1.1.0",
2973 "source-map": "^0.5.7"
2982 "source-map": "^0.5.7"
2983+ },
2984+ "dependencies": {
2985+ "@emotion/memoize": {
2986+ "version": "0.7.4",
2987+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
2988+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
2989+ "dev": true
2990+ }
2974 }
2991 }
2975 },
2992 },
2976 "babel-plugin-macros": {
2993 "babel-plugin-macros": {
@@ -3565,9 +3582,9 @@
3565 "dev": true
3582 "dev": true
3566 },
3583 },
3567 "browser-process-hrtime": {
3584 "browser-process-hrtime": {
3568− "version": "0.1.3",
3585+ "version": "1.0.0",
3569− "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
3586+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
3570− "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==",
3587+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
3571 "dev": true
3588 "dev": true
3572 },
3589 },
3573 "browserify-aes": {
3590 "browserify-aes": {
@@ -3642,14 +3659,14 @@
3642 }
3659 }
3643 },
3660 },
3644 "browserslist": {
3661 "browserslist": {
3645− "version": "4.8.6",
3662+ "version": "4.9.1",
3646− "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz",
3663+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz",
3647− "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==",
3664+ "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==",
3648 "dev": true,
3665 "dev": true,
3649 "requires": {
3666 "requires": {
3650− "caniuse-lite": "^1.0.30001023",
3667+ "caniuse-lite": "^1.0.30001030",
3651− "electron-to-chromium": "^1.3.341",
3668+ "electron-to-chromium": "^1.3.363",
3652− "node-releases": "^1.1.47"
3669+ "node-releases": "^1.1.50"
3653 }
3670 }
3654 },
3671 },
3655 "buffer": {
3672 "buffer": {
@@ -3786,13 +3803,13 @@
3786 "dev": true
3803 "dev": true
3787 },
3804 },
3788 "camel-case": {
3805 "camel-case": {
3789− "version": "3.0.0",
3806+ "version": "4.1.1",
3790− "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
3807+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz",
3791− "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
3808+ "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==",
3792 "dev": true,
3809 "dev": true,
3793 "requires": {
3810 "requires": {
3794− "no-case": "^2.2.0",
3811+ "pascal-case": "^3.1.1",
3795− "upper-case": "^1.1.1"
3812+ "tslib": "^1.10.0"
3796 }
3813 }
3797 },
3814 },
3798 "camelcase": {
3815 "camelcase": {
@@ -3808,9 +3825,9 @@
3808 "dev": true
3825 "dev": true
3809 },
3826 },
3810 "caniuse-lite": {
3827 "caniuse-lite": {
3811− "version": "1.0.30001027",
3828+ "version": "1.0.30001035",
3812− "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz",
3829+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz",
3813− "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==",
3830+ "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==",
3814 "dev": true
3831 "dev": true
3815 },
3832 },
3816 "case-sensitive-paths-webpack-plugin": {
3833 "case-sensitive-paths-webpack-plugin": {
@@ -3881,9 +3898,9 @@
3881 }
3898 }
3882 },
3899 },
3883 "chownr": {
3900 "chownr": {
3884− "version": "1.1.3",
3901+ "version": "1.1.4",
3885− "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
3902+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
3886− "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
3903+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
3887 "dev": true
3904 "dev": true
3888 },
3905 },
3889 "chrome-trace-event": {
3906 "chrome-trace-event": {
@@ -4029,9 +4046,9 @@
4029 "dev": true
4046 "dev": true
4030 },
4047 },
4031 "clipboard": {
4048 "clipboard": {
4032− "version": "2.0.4",
4049+ "version": "2.0.6",
4033− "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz",
4050+ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz",
4034− "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==",
4051+ "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==",
4035 "dev": true,
4052 "dev": true,
4036 "optional": true,
4053 "optional": true,
4037 "requires": {
4054 "requires": {
@@ -4124,12 +4141,6 @@
4124 }
4141 }
4125 }
4142 }
4126 },
4143 },
4127− "clsx": {
4128− "version": "1.1.0",
4129− "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.0.tgz",
4130− "integrity": "sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA==",
4131− "dev": true
4132− },
4133 "coa": {
4144 "coa": {
4134 "version": "2.0.2",
4145 "version": "2.0.2",
4135 "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
4146 "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
@@ -4358,9 +4369,9 @@
4358 "dev": true
4369 "dev": true
4359 },
4370 },
4360 "copy-to-clipboard": {
4371 "copy-to-clipboard": {
4361− "version": "3.2.1",
4372+ "version": "3.3.1",
4362− "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.2.1.tgz",
4373+ "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz",
4363− "integrity": "sha512-btru1Q6RD9wbonIvEU5EfnhIRGHLo//BGXQ1hNAD2avIs/nBZlpbOeKtv3mhoUByN4DB9Cb6/vXBymj1S43KmA==",
4374+ "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==",
4364 "dev": true,
4375 "dev": true,
4365 "requires": {
4376 "requires": {
4366 "toggle-selection": "^1.0.6"
4377 "toggle-selection": "^1.0.6"
@@ -4504,6 +4515,16 @@
4504 "randomfill": "^1.0.3"
4515 "randomfill": "^1.0.3"
4505 }
4516 }
4506 },
4517 },
4518+ "css-jss": {
4519+ "version": "10.1.1",
4520+ "resolved": "https://registry.npmjs.org/css-jss/-/css-jss-10.1.1.tgz",
4521+ "integrity": "sha512-HrSD06y4dCfZ6nHtG/SucJBG8tbt+lbyBsUbxfqujyycxPLLd/B9mRKW97B8Ua8VWK8LR4i9ur0P8szZEjoqzQ==",
4522+ "requires": {
4523+ "@babel/runtime": "^7.3.1",
4524+ "jss": "10.1.1",
4525+ "jss-preset-default": "10.1.1"
4526+ }
4527+ },
4507 "css-loader": {
4528 "css-loader": {
4508 "version": "3.4.2",
4529 "version": "3.4.2",
4509 "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz",
4530 "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz",
@@ -4525,12 +4546,12 @@
4525 },
4546 },
4526 "dependencies": {
4547 "dependencies": {
4527 "schema-utils": {
4548 "schema-utils": {
4528− "version": "2.6.4",
4549+ "version": "2.6.5",
4529− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
4550+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
4530− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
4551+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
4531 "dev": true,
4552 "dev": true,
4532 "requires": {
4553 "requires": {
4533− "ajv": "^6.10.2",
4554+ "ajv": "^6.12.0",
4534 "ajv-keywords": "^3.4.1"
4555 "ajv-keywords": "^3.4.1"
4535 }
4556 }
4536 }
4557 }
@@ -4576,7 +4597,6 @@
4576 "version": "2.0.7",
4597 "version": "2.0.7",
4577 "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.7.tgz",
4598 "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.7.tgz",
4578 "integrity": "sha512-VS9Rjt79+p7M0WkPqcAza4Yq1ZHrsHrwf7hPL/bjQB+c1lwmAI+1FXxYTYt818D/50fFVflw0XKleiBN5RITkg==",
4599 "integrity": "sha512-VS9Rjt79+p7M0WkPqcAza4Yq1ZHrsHrwf7hPL/bjQB+c1lwmAI+1FXxYTYt818D/50fFVflw0XKleiBN5RITkg==",
4579− "dev": true,
4580 "requires": {
4600 "requires": {
4581 "@babel/runtime": "^7.6.2",
4601 "@babel/runtime": "^7.6.2",
4582 "is-in-browser": "^1.0.2"
4602 "is-in-browser": "^1.0.2"
@@ -4627,10 +4647,9 @@
4627 }
4647 }
4628 },
4648 },
4629 "csstype": {
4649 "csstype": {
4630− "version": "2.6.8",
4650+ "version": "2.6.9",
4631− "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz",
4651+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz",
4632− "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==",
4652+ "integrity": "sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q=="
4633− "dev": true
4634 },
4653 },
4635 "cyclist": {
4654 "cyclist": {
4636 "version": "1.0.1",
4655 "version": "1.0.1",
@@ -5020,6 +5039,12 @@
5020 "esutils": "^2.0.2"
5039 "esutils": "^2.0.2"
5021 }
5040 }
5022 },
5041 },
5042+ "dom-accessibility-api": {
5043+ "version": "0.3.0",
5044+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz",
5045+ "integrity": "sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA==",
5046+ "dev": true
5047+ },
5023 "dom-converter": {
5048 "dom-converter": {
5024 "version": "0.2.0",
5049 "version": "0.2.0",
5025 "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
5050 "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -5099,6 +5124,16 @@
5099 "domelementtype": "1"
5124 "domelementtype": "1"
5100 }
5125 }
5101 },
5126 },
5127+ "dot-case": {
5128+ "version": "3.0.3",
5129+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz",
5130+ "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==",
5131+ "dev": true,
5132+ "requires": {
5133+ "no-case": "^3.0.3",
5134+ "tslib": "^1.10.0"
5135+ }
5136+ },
5102 "dotenv": {
5137 "dotenv": {
5103 "version": "6.2.0",
5138 "version": "6.2.0",
5104 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
5139 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
@@ -5170,9 +5205,9 @@
5170 "dev": true
5205 "dev": true
5171 },
5206 },
5172 "electron-to-chromium": {
5207 "electron-to-chromium": {
5173− "version": "1.3.347",
5208+ "version": "1.3.376",
5174− "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.347.tgz",
5209+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz",
5175− "integrity": "sha512-IityliF5ZY4nLa4DaXOGrWVeTK3OcN6LJECVe60DOX/SEF0zohVRxZHJXu4ZA8bW0A3K6Skcn67G20MGXOqhaA==",
5210+ "integrity": "sha512-cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw==",
5176 "dev": true
5211 "dev": true
5177 },
5212 },
5178 "element-resize-detector": {
5213 "element-resize-detector": {
@@ -5206,9 +5241,9 @@
5206 "dev": true
5241 "dev": true
5207 },
5242 },
5208 "emojis-list": {
5243 "emojis-list": {
5209− "version": "2.1.0",
5244+ "version": "3.0.0",
5210− "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
5245+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
5211− "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
5246+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
5212 "dev": true
5247 "dev": true
5213 },
5248 },
5214 "emotion-theming": {
5249 "emotion-theming": {
@@ -5859,9 +5894,9 @@
5859 "dev": true
5894 "dev": true
5860 },
5895 },
5861 "figures": {
5896 "figures": {
5862− "version": "3.1.0",
5897+ "version": "3.2.0",
5863− "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
5898+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
5864− "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
5899+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
5865 "dev": true,
5900 "dev": true,
5866 "requires": {
5901 "requires": {
5867 "escape-string-regexp": "^1.0.5"
5902 "escape-string-regexp": "^1.0.5"
@@ -5878,12 +5913,12 @@
5878 },
5913 },
5879 "dependencies": {
5914 "dependencies": {
5880 "schema-utils": {
5915 "schema-utils": {
5881− "version": "2.6.4",
5916+ "version": "2.6.5",
5882− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
5917+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
5883− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
5918+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
5884 "dev": true,
5919 "dev": true,
5885 "requires": {
5920 "requires": {
5886− "ajv": "^6.10.2",
5921+ "ajv": "^6.12.0",
5887 "ajv-keywords": "^3.4.1"
5922 "ajv-keywords": "^3.4.1"
5888 }
5923 }
5889 }
5924 }
@@ -5984,20 +6019,20 @@
5984 }
6019 }
5985 },
6020 },
5986 "find-cache-dir": {
6021 "find-cache-dir": {
5987− "version": "3.2.0",
6022+ "version": "3.3.1",
5988− "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz",
6023+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
5989− "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==",
6024+ "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
5990 "dev": true,
6025 "dev": true,
5991 "requires": {
6026 "requires": {
5992 "commondir": "^1.0.1",
6027 "commondir": "^1.0.1",
5993− "make-dir": "^3.0.0",
6028+ "make-dir": "^3.0.2",
5994 "pkg-dir": "^4.1.0"
6029 "pkg-dir": "^4.1.0"
5995 },
6030 },
5996 "dependencies": {
6031 "dependencies": {
5997 "make-dir": {
6032 "make-dir": {
5998− "version": "3.0.0",
6033+ "version": "3.0.2",
5999− "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
6034+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
6000− "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
6035+ "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
6001 "dev": true,
6036 "dev": true,
6002 "requires": {
6037 "requires": {
6003 "semver": "^6.0.0"
6038 "semver": "^6.0.0"
@@ -6872,9 +6907,9 @@
6872 "dev": true
6907 "dev": true
6873 },
6908 },
6874 "fuse.js": {
6909 "fuse.js": {
6875− "version": "3.4.6",
6910+ "version": "3.6.1",
6876− "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.4.6.tgz",
6911+ "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz",
6877− "integrity": "sha512-H6aJY4UpLFwxj1+5nAvufom5b2BT2v45P1MkPvdGIK8fWjQx/7o6tTT1+ALV0yawQvbmvCF0ufl2et8eJ7v7Cg==",
6912+ "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==",
6878 "dev": true
6913 "dev": true
6879 },
6914 },
6880 "gauge": {
6915 "gauge": {
@@ -7225,15 +7260,15 @@
7225 }
7260 }
7226 },
7261 },
7227 "hast-util-parse-selector": {
7262 "hast-util-parse-selector": {
7228− "version": "2.2.3",
7263+ "version": "2.2.4",
7229− "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.3.tgz",
7264+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz",
7230− "integrity": "sha512-nxbeqjQNxsvo/uYYAw9kij6td05YVUlf1qti09rVfbWSLT5H6wo3c+USIwX6nzXWk5kFZzXnEqO82856r0aM2Q==",
7265+ "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==",
7231 "dev": true
7266 "dev": true
7232 },
7267 },
7233 "hastscript": {
7268 "hastscript": {
7234− "version": "5.1.1",
7269+ "version": "5.1.2",
7235− "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.1.tgz",
7270+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz",
7236− "integrity": "sha512-xHo1Hkcqd0LlWNuDL3/BxwhgAGp3d7uEvCMgCTrBY+zsOooPPH+8KAvW8PCgl+GB8H3H44nfSaF0A4BQ+4xlYg==",
7271+ "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==",
7237 "dev": true,
7272 "dev": true,
7238 "requires": {
7273 "requires": {
7239 "comma-separated-tokens": "^1.0.0",
7274 "comma-separated-tokens": "^1.0.0",
@@ -7269,7 +7304,6 @@
7269 "version": "3.3.2",
7304 "version": "3.3.2",
7270 "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
7305 "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
7271 "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
7306 "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
7272− "dev": true,
7273 "requires": {
7307 "requires": {
7274 "react-is": "^16.7.0"
7308 "react-is": "^16.7.0"
7275 }
7309 }
@@ -7284,9 +7318,9 @@
7284 }
7318 }
7285 },
7319 },
7286 "hosted-git-info": {
7320 "hosted-git-info": {
7287− "version": "2.8.5",
7321+ "version": "2.8.8",
7288− "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
7322+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
7289− "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
7323+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
7290 "dev": true
7324 "dev": true
7291 },
7325 },
7292 "hpack.js": {
7326 "hpack.js": {
@@ -7317,18 +7351,18 @@
7317 "dev": true
7351 "dev": true
7318 },
7352 },
7319 "html-minifier-terser": {
7353 "html-minifier-terser": {
7320− "version": "5.0.3",
7354+ "version": "5.0.4",
7321− "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.3.tgz",
7355+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.4.tgz",
7322− "integrity": "sha512-It4No3H1V3Dhd/O0MePFdo0oX/M6u6YZTMw4My/010mT6vxdbqge7+0RoxGAmeSbKok6gjYZoP0p4rpZ2+J2yw==",
7356+ "integrity": "sha512-fHwmKQ+GzhlqdxEtwrqLT7MSuheiA+rif5/dZgbz3GjoMXJzcRzy1L9NXoiiyxrnap+q5guSiv8Tz5lrh9g42g==",
7323 "dev": true,
7357 "dev": true,
7324 "requires": {
7358 "requires": {
7325− "camel-case": "^3.0.0",
7359+ "camel-case": "^4.1.1",
7326− "clean-css": "^4.2.1",
7360+ "clean-css": "^4.2.3",
7327− "commander": "^4.0.0",
7361+ "commander": "^4.1.1",
7328 "he": "^1.2.0",
7362 "he": "^1.2.0",
7329− "param-case": "^2.1.1",
7363+ "param-case": "^3.0.3",
7330 "relateurl": "^0.2.7",
7364 "relateurl": "^0.2.7",
7331− "terser": "^4.3.9"
7365+ "terser": "^4.6.3"
7332 }
7366 }
7333 },
7367 },
7334 "html-webpack-plugin": {
7368 "html-webpack-plugin": {
@@ -7360,9 +7394,9 @@
7360 },
7394 },
7361 "dependencies": {
7395 "dependencies": {
7362 "readable-stream": {
7396 "readable-stream": {
7363− "version": "3.5.0",
7397+ "version": "3.6.0",
7364− "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
7398+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
7365− "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
7399+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
7366 "dev": true,
7400 "dev": true,
7367 "requires": {
7401 "requires": {
7368 "inherits": "^2.0.3",
7402 "inherits": "^2.0.3",
@@ -7471,8 +7505,7 @@
7471 "hyphenate-style-name": {
7505 "hyphenate-style-name": {
7472 "version": "1.0.3",
7506 "version": "1.0.3",
7473 "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz",
7507 "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz",
7474− "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ==",
7508+ "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ=="
7475− "dev": true
7476 },
7509 },
7477 "iconv-lite": {
7510 "iconv-lite": {
7478 "version": "0.4.24",
7511 "version": "0.4.24",
@@ -7617,23 +7650,23 @@
7617 "dev": true
7650 "dev": true
7618 },
7651 },
7619 "inquirer": {
7652 "inquirer": {
7620− "version": "7.0.4",
7653+ "version": "7.1.0",
7621− "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz",
7654+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
7622− "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==",
7655+ "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
7623 "dev": true,
7656 "dev": true,
7624 "requires": {
7657 "requires": {
7625 "ansi-escapes": "^4.2.1",
7658 "ansi-escapes": "^4.2.1",
7626− "chalk": "^2.4.2",
7659+ "chalk": "^3.0.0",
7627 "cli-cursor": "^3.1.0",
7660 "cli-cursor": "^3.1.0",
7628 "cli-width": "^2.0.0",
7661 "cli-width": "^2.0.0",
7629 "external-editor": "^3.0.3",
7662 "external-editor": "^3.0.3",
7630 "figures": "^3.0.0",
7663 "figures": "^3.0.0",
7631 "lodash": "^4.17.15",
7664 "lodash": "^4.17.15",
7632 "mute-stream": "0.0.8",
7665 "mute-stream": "0.0.8",
7633− "run-async": "^2.2.0",
7666+ "run-async": "^2.4.0",
7634 "rxjs": "^6.5.3",
7667 "rxjs": "^6.5.3",
7635 "string-width": "^4.1.0",
7668 "string-width": "^4.1.0",
7636− "strip-ansi": "^5.1.0",
7669+ "strip-ansi": "^6.0.0",
7637 "through": "^2.3.6"
7670 "through": "^2.3.6"
7638 },
7671 },
7639 "dependencies": {
7672 "dependencies": {
@@ -7643,12 +7676,53 @@
7643 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
7676 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
7644 "dev": true
7677 "dev": true
7645 },
7678 },
7679+ "ansi-styles": {
7680+ "version": "4.2.1",
7681+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
7682+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
7683+ "dev": true,
7684+ "requires": {
7685+ "@types/color-name": "^1.1.1",
7686+ "color-convert": "^2.0.1"
7687+ }
7688+ },
7689+ "chalk": {
7690+ "version": "3.0.0",
7691+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
7692+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
7693+ "dev": true,
7694+ "requires": {
7695+ "ansi-styles": "^4.1.0",
7696+ "supports-color": "^7.1.0"
7697+ }
7698+ },
7699+ "color-convert": {
7700+ "version": "2.0.1",
7701+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
7702+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
7703+ "dev": true,
7704+ "requires": {
7705+ "color-name": "~1.1.4"
7706+ }
7707+ },
7708+ "color-name": {
7709+ "version": "1.1.4",
7710+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
7711+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
7712+ "dev": true
7713+ },
7646 "emoji-regex": {
7714 "emoji-regex": {
7647 "version": "8.0.0",
7715 "version": "8.0.0",
7648 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
7716 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
7649 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
7717 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
7650 "dev": true
7718 "dev": true
7651 },
7719 },
7720+ "has-flag": {
7721+ "version": "4.0.0",
7722+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
7723+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
7724+ "dev": true
7725+ },
7652 "is-fullwidth-code-point": {
7726 "is-fullwidth-code-point": {
7653 "version": "3.0.0",
7727 "version": "3.0.0",
7654 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
7728 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -7664,34 +7738,24 @@
7664 "emoji-regex": "^8.0.0",
7738 "emoji-regex": "^8.0.0",
7665 "is-fullwidth-code-point": "^3.0.0",
7739 "is-fullwidth-code-point": "^3.0.0",
7666 "strip-ansi": "^6.0.0"
7740 "strip-ansi": "^6.0.0"
7667− },
7668− "dependencies": {
7669− "strip-ansi": {
7670− "version": "6.0.0",
7671− "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
7672− "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
7673− "dev": true,
7674− "requires": {
7675− "ansi-regex": "^5.0.0"
7676− }
7677− }
7678 }
7741 }
7679 },
7742 },
7680 "strip-ansi": {
7743 "strip-ansi": {
7681− "version": "5.2.0",
7744+ "version": "6.0.0",
7682− "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
7745+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
7683− "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
7746+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
7684 "dev": true,
7747 "dev": true,
7685 "requires": {
7748 "requires": {
7686− "ansi-regex": "^4.1.0"
7749+ "ansi-regex": "^5.0.0"
7687− },
7750+ }
7688− "dependencies": {
7751+ },
7689− "ansi-regex": {
7752+ "supports-color": {
7690− "version": "4.1.0",
7753+ "version": "7.1.0",
7691− "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
7754+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
7692− "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
7755+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
7693− "dev": true
7756+ "dev": true,
7694− }
7757+ "requires": {
7758+ "has-flag": "^4.0.0"
7695 }
7759 }
7696 }
7760 }
7697 }
7761 }
@@ -7751,9 +7815,9 @@
7751 "dev": true
7815 "dev": true
7752 },
7816 },
7753 "ipaddr.js": {
7817 "ipaddr.js": {
7754− "version": "1.9.0",
7818+ "version": "1.9.1",
7755− "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
7819+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
7756− "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
7820+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
7757 "dev": true
7821 "dev": true
7758 },
7822 },
7759 "is-absolute-url": {
7823 "is-absolute-url": {
@@ -7939,8 +8003,7 @@
7939 "is-in-browser": {
8003 "is-in-browser": {
7940 "version": "1.1.3",
8004 "version": "1.1.3",
7941 "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
8005 "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
7942− "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=",
8006+ "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
7943− "dev": true
7944 },
8007 },
7945 "is-map": {
8008 "is-map": {
7946 "version": "2.0.1",
8009 "version": "2.0.1",
@@ -8149,8 +8212,7 @@
8149 "js-tokens": {
8212 "js-tokens": {
8150 "version": "4.0.0",
8213 "version": "4.0.0",
8151 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
8214 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
8152− "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
8215+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
8153− "dev": true
8154 },
8216 },
8155 "js-yaml": {
8217 "js-yaml": {
8156 "version": "3.13.1",
8218 "version": "3.13.1",
@@ -8203,9 +8265,9 @@
8203 },
8265 },
8204 "dependencies": {
8266 "dependencies": {
8205 "acorn": {
8267 "acorn": {
8206− "version": "7.1.0",
8268+ "version": "7.1.1",
8207− "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
8269+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
8208− "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
8270+ "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
8209 "dev": true
8271 "dev": true
8210 }
8272 }
8211 }
8273 }
@@ -8283,10 +8345,9 @@
8283 }
8345 }
8284 },
8346 },
8285 "jss": {
8347 "jss": {
8286− "version": "10.0.4",
8348+ "version": "10.1.1",
8287− "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.4.tgz",
8349+ "resolved": "https://registry.npmjs.org/jss/-/jss-10.1.1.tgz",
8288− "integrity": "sha512-GqHmeDK83qbqMAVjxyPfN1qJVTKZne533a9bdCrllZukUM8npG/k+JumEPI86IIB5ifaZAHG2HAsUziyxOiooQ==",
8350+ "integrity": "sha512-Xz3qgRUFlxbWk1czCZibUJqhVPObrZHxY3FPsjCXhDld4NOj1BgM14Ir5hVm+Qr6OLqVljjGvoMcCdXNOAbdkQ==",
8289− "dev": true,
8290 "requires": {
8351 "requires": {
8291 "@babel/runtime": "^7.3.1",
8352 "@babel/runtime": "^7.3.1",
8292 "csstype": "^2.6.5",
8353 "csstype": "^2.6.5",
@@ -8295,76 +8356,139 @@
8295 }
8356 }
8296 },
8357 },
8297 "jss-plugin-camel-case": {
8358 "jss-plugin-camel-case": {
8298− "version": "10.0.4",
8359+ "version": "10.1.1",
8299− "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.4.tgz",
8360+ "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.1.1.tgz",
8300− "integrity": "sha512-+wnqxJsyfUnOn0LxVg3GgZBSjfBCrjxwx7LFxwVTUih0ceGaXKZoieheNOaTo5EM4w8bt1nbb8XonpQCj67C6A==",
8361+ "integrity": "sha512-MDIaw8FeD5uFz1seQBKz4pnvDLnj5vIKV5hXSVdMaAVq13xR6SVTVWkIV/keyTs5txxTvzGJ9hXoxgd1WTUlBw==",
8301− "dev": true,
8302 "requires": {
8362 "requires": {
8303 "@babel/runtime": "^7.3.1",
8363 "@babel/runtime": "^7.3.1",
8304 "hyphenate-style-name": "^1.0.3",
8364 "hyphenate-style-name": "^1.0.3",
8305− "jss": "10.0.4"
8365+ "jss": "10.1.1"
8366+ }
8367+ },
8368+ "jss-plugin-compose": {
8369+ "version": "10.1.1",
8370+ "resolved": "https://registry.npmjs.org/jss-plugin-compose/-/jss-plugin-compose-10.1.1.tgz",
8371+ "integrity": "sha512-0fD+YVGk0fVnsLiNf7CG4Lv7lYwmNyeE62Fbccx8k1mMdFoE7he0hpx37tudsfKW2ArCE+hf4fmJDXPW8l6LBw==",
8372+ "requires": {
8373+ "@babel/runtime": "^7.3.1",
8374+ "jss": "10.1.1",
8375+ "tiny-warning": "^1.0.2"
8306 }
8376 }
8307 },
8377 },
8308 "jss-plugin-default-unit": {
8378 "jss-plugin-default-unit": {
8309− "version": "10.0.4",
8379+ "version": "10.1.1",
8310− "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.4.tgz",
8380+ "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.1.1.tgz",
8311− "integrity": "sha512-T0mhL/Ogp/quvod/jAHEqKvptLDxq7Cj3a+7zRuqK8HxUYkftptN89wJElZC3rshhNKiogkEYhCWenpJdFvTBg==",
8381+ "integrity": "sha512-UkeVCA/b3QEA4k0nIKS4uWXDCNmV73WLHdh2oDGZZc3GsQtlOCuiH3EkB/qI60v2MiCq356/SYWsDXt21yjwdg==",
8312− "dev": true,
8313 "requires": {
8382 "requires": {
8314 "@babel/runtime": "^7.3.1",
8383 "@babel/runtime": "^7.3.1",
8315− "jss": "10.0.4"
8384+ "jss": "10.1.1"
8385+ }
8386+ },
8387+ "jss-plugin-expand": {
8388+ "version": "10.1.1",
8389+ "resolved": "https://registry.npmjs.org/jss-plugin-expand/-/jss-plugin-expand-10.1.1.tgz",
8390+ "integrity": "sha512-ITO3RR4eTB3628B+gx8gLI7TKKE0TsFDBJ7BA648ZhXjHWQ5uxdC1bZld+++xnFL1l4kerj5tuWmZxS64C1Kcg==",
8391+ "requires": {
8392+ "@babel/runtime": "^7.3.1",
8393+ "jss": "10.1.1"
8394+ }
8395+ },
8396+ "jss-plugin-extend": {
8397+ "version": "10.1.1",
8398+ "resolved": "https://registry.npmjs.org/jss-plugin-extend/-/jss-plugin-extend-10.1.1.tgz",
8399+ "integrity": "sha512-dZl0hNsndP9GJM6yqA7lZmnx6KJHo/13Zeo5B3i2uaDNO9jd5Y3pp1XHURGfbFG3K29XsYBQPTgfBwQ7e7+nyA==",
8400+ "requires": {
8401+ "@babel/runtime": "^7.3.1",
8402+ "jss": "10.1.1",
8403+ "tiny-warning": "^1.0.2"
8316 }
8404 }
8317 },
8405 },
8318 "jss-plugin-global": {
8406 "jss-plugin-global": {
8319− "version": "10.0.4",
8407+ "version": "10.1.1",
8320− "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.0.4.tgz",
8408+ "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.1.1.tgz",
8321− "integrity": "sha512-N8n9/GHENZce+sqE4UYiZiJtI+t+erT/BypHOrNYAfIoNEj7OYsOEKfIo2P0GpLB3QyDAYf5eo9XNdZ8veEkUA==",
8409+ "integrity": "sha512-VBG3wRyi3Z8S4kMhm8rZV6caYBegsk+QnQZSVmrWw6GVOT/Z4FA7eyMu5SdkorDlG/HVpHh91oFN56O4R9m2VA==",
8322− "dev": true,
8323 "requires": {
8410 "requires": {
8324 "@babel/runtime": "^7.3.1",
8411 "@babel/runtime": "^7.3.1",
8325− "jss": "10.0.4"
8412+ "jss": "10.1.1"
8326 }
8413 }
8327 },
8414 },
8328 "jss-plugin-nested": {
8415 "jss-plugin-nested": {
8329− "version": "10.0.4",
8416+ "version": "10.1.1",
8330− "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.0.4.tgz",
8417+ "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.1.1.tgz",
8331− "integrity": "sha512-QM21BKVt8LDeoRfowvAMh/s+/89VYrreIIE6ch4pvw0oAXDWw1iorUPlqLZ7uCO3UL0uFtQhJq3QMLN6Lr1v0A==",
8418+ "integrity": "sha512-ozEu7ZBSVrMYxSDplPX3H82XHNQk2DQEJ9TEyo7OVTPJ1hEieqjDFiOQOxXEj9z3PMqkylnUbvWIZRDKCFYw5Q==",
8332− "dev": true,
8333 "requires": {
8419 "requires": {
8334 "@babel/runtime": "^7.3.1",
8420 "@babel/runtime": "^7.3.1",
8335− "jss": "10.0.4",
8421+ "jss": "10.1.1",
8336 "tiny-warning": "^1.0.2"
8422 "tiny-warning": "^1.0.2"
8337 }
8423 }
8338 },
8424 },
8339 "jss-plugin-props-sort": {
8425 "jss-plugin-props-sort": {
8340− "version": "10.0.4",
8426+ "version": "10.1.1",
8341− "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.4.tgz",
8427+ "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.1.1.tgz",
8342− "integrity": "sha512-WoETdOCjGskuin/OMt2uEdDPLZF3vfQuHXF+XUHGJrq0BAapoyGQDcv37SeReDlkRAbVXkEZPsIMvYrgHSHFiA==",
8428+ "integrity": "sha512-g/joK3eTDZB4pkqpZB38257yD4LXB0X15jxtZAGbUzcKAVUHPl9Jb47Y7lYmiGsShiV4YmQRqG1p2DHMYoK91g==",
8343− "dev": true,
8344 "requires": {
8429 "requires": {
8345 "@babel/runtime": "^7.3.1",
8430 "@babel/runtime": "^7.3.1",
8346− "jss": "10.0.4"
8431+ "jss": "10.1.1"
8347 }
8432 }
8348 },
8433 },
8349 "jss-plugin-rule-value-function": {
8434 "jss-plugin-rule-value-function": {
8350− "version": "10.0.4",
8435+ "version": "10.1.1",
8351− "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.4.tgz",
8436+ "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.1.1.tgz",
8352− "integrity": "sha512-0hrzOSWRF5ABJGaHrlnHbYZjU877Ofzfh2id3uLtBvemGQLHI+ldoL8/+6iPSRa7M8z8Ngfg2vfYhKjUA5gA0g==",
8437+ "integrity": "sha512-ClV1lvJ3laU9la1CUzaDugEcwnpjPTuJ0yGy2YtcU+gG/w9HMInD5vEv7xKAz53Bk4WiJm5uLOElSEshHyhKNw==",
8353− "dev": true,
8354 "requires": {
8438 "requires": {
8355 "@babel/runtime": "^7.3.1",
8439 "@babel/runtime": "^7.3.1",
8356− "jss": "10.0.4"
8440+ "jss": "10.1.1"
8441+ }
8442+ },
8443+ "jss-plugin-rule-value-observable": {
8444+ "version": "10.1.1",
8445+ "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-observable/-/jss-plugin-rule-value-observable-10.1.1.tgz",
8446+ "integrity": "sha512-l1zmLfS5Ks6CrthOIVTokHkDoI01ymnwNBlciN+IlaR4UsLEQBBL0+3BfQjOPvIYRAYXxYx3G7ebUHebr8mWyA==",
8447+ "requires": {
8448+ "@babel/runtime": "^7.3.1",
8449+ "jss": "10.1.1",
8450+ "symbol-observable": "^1.2.0"
8451+ }
8452+ },
8453+ "jss-plugin-template": {
8454+ "version": "10.1.1",
8455+ "resolved": "https://registry.npmjs.org/jss-plugin-template/-/jss-plugin-template-10.1.1.tgz",
8456+ "integrity": "sha512-CPhNapLDgj6gIJOi3vj/QPohF/1OHuLQj8ZjBYqrnzCDSfYV5s2Rzp1TicFGxUb07BRLh62ymU+MgH1hbKGSTQ==",
8457+ "requires": {
8458+ "@babel/runtime": "^7.3.1",
8459+ "jss": "10.1.1",
8460+ "tiny-warning": "^1.0.2"
8357 }
8461 }
8358 },
8462 },
8359 "jss-plugin-vendor-prefixer": {
8463 "jss-plugin-vendor-prefixer": {
8360− "version": "10.0.4",
8464+ "version": "10.1.1",
8361− "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.4.tgz",
8465+ "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.1.1.tgz",
8362− "integrity": "sha512-4JgEbcrdeMda1qvxTm1CnxFJAWVV++VLpP46HNTrfH7VhVlvUpihnUNs2gAlKuRT/XSBuiWeLAkrTqF4NVrPig==",
8466+ "integrity": "sha512-09MZpQ6onQrhaVSF6GHC4iYifQ7+4YC/tAP6D4ZWeZotvCMq1mHLqNKRIaqQ2lkgANjlEot2JnVi1ktu4+L4pw==",
8363− "dev": true,
8364 "requires": {
8467 "requires": {
8365 "@babel/runtime": "^7.3.1",
8468 "@babel/runtime": "^7.3.1",
8366 "css-vendor": "^2.0.7",
8469 "css-vendor": "^2.0.7",
8367− "jss": "10.0.4"
8470+ "jss": "10.1.1"
8471+ }
8472+ },
8473+ "jss-preset-default": {
8474+ "version": "10.1.1",
8475+ "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-10.1.1.tgz",
8476+ "integrity": "sha512-YwQp/BZ8IiBwxDTQ4uPAjzI2k2njrw6RJegAPvhCB1MTmWN2oR9Dhb5aN3RtepUf/agUkewTMwQqoS6PijgVMg==",
8477+ "requires": {
8478+ "@babel/runtime": "^7.3.1",
8479+ "jss": "10.1.1",
8480+ "jss-plugin-camel-case": "10.1.1",
8481+ "jss-plugin-compose": "10.1.1",
8482+ "jss-plugin-default-unit": "10.1.1",
8483+ "jss-plugin-expand": "10.1.1",
8484+ "jss-plugin-extend": "10.1.1",
8485+ "jss-plugin-global": "10.1.1",
8486+ "jss-plugin-nested": "10.1.1",
8487+ "jss-plugin-props-sort": "10.1.1",
8488+ "jss-plugin-rule-value-function": "10.1.1",
8489+ "jss-plugin-rule-value-observable": "10.1.1",
8490+ "jss-plugin-template": "10.1.1",
8491+ "jss-plugin-vendor-prefixer": "10.1.1"
8368 }
8492 }
8369 },
8493 },
8370 "killable": {
8494 "killable": {
@@ -8492,13 +8616,13 @@
8492 "dev": true
8616 "dev": true
8493 },
8617 },
8494 "loader-utils": {
8618 "loader-utils": {
8495− "version": "1.2.3",
8619+ "version": "1.4.0",
8496− "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
8620+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
8497− "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
8621+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
8498 "dev": true,
8622 "dev": true,
8499 "requires": {
8623 "requires": {
8500 "big.js": "^5.2.2",
8624 "big.js": "^5.2.2",
8501− "emojis-list": "^2.0.0",
8625+ "emojis-list": "^3.0.0",
8502 "json5": "^1.0.1"
8626 "json5": "^1.0.1"
8503 },
8627 },
8504 "dependencies": {
8628 "dependencies": {
@@ -8643,16 +8767,18 @@
8643 "version": "1.4.0",
8767 "version": "1.4.0",
8644 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
8768 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
8645 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
8769 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
8646− "dev": true,
8647 "requires": {
8770 "requires": {
8648 "js-tokens": "^3.0.0 || ^4.0.0"
8771 "js-tokens": "^3.0.0 || ^4.0.0"
8649 }
8772 }
8650 },
8773 },
8651 "lower-case": {
8774 "lower-case": {
8652− "version": "1.1.4",
8775+ "version": "2.0.1",
8653− "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
8776+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
8654− "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
8777+ "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
8655− "dev": true
8778+ "dev": true,
8779+ "requires": {
8780+ "tslib": "^1.10.0"
8781+ }
8656 },
8782 },
8657 "lowlight": {
8783 "lowlight": {
8658 "version": "1.11.0",
8784 "version": "1.11.0",
@@ -8938,9 +9064,9 @@
8938 "dev": true
9064 "dev": true
8939 },
9065 },
8940 "mini-css-extract-plugin": {
9066 "mini-css-extract-plugin": {
8941− "version": "0.9.0",
9067+ "version": "0.7.0",
8942− "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
9068+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz",
8943− "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==",
9069+ "integrity": "sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ==",
8944 "dev": true,
9070 "dev": true,
8945 "requires": {
9071 "requires": {
8946 "loader-utils": "^1.1.0",
9072 "loader-utils": "^1.1.0",
@@ -8971,9 +9097,9 @@
8971 }
9097 }
8972 },
9098 },
8973 "minimist": {
9099 "minimist": {
8974− "version": "1.2.0",
9100+ "version": "1.2.5",
8975− "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
9101+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
8976− "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
9102+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
8977 "dev": true
9103 "dev": true
8978 },
9104 },
8979 "minipass": {
9105 "minipass": {
@@ -9137,9 +9263,9 @@
9137 "dev": true
9263 "dev": true
9138 },
9264 },
9139 "monaco-editor-webpack-plugin": {
9265 "monaco-editor-webpack-plugin": {
9140− "version": "1.8.2",
9266+ "version": "1.9.0",
9141− "resolved": "https://registry.npmjs.org/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.8.2.tgz",
9267+ "resolved": "https://registry.npmjs.org/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.0.tgz",
9142− "integrity": "sha512-g9G7A/lxQtpPsYaZFBqm73dwVkOziGUXExIR6iW7ksZUaiMkpvdTiE9O8edgdJGo+XtCmjycmIKB1Lt8VKbSTQ==",
9268+ "integrity": "sha512-tOiiToc94E1sb50BgZ8q8WK/bxus77SRrwCqIpAB5er3cpX78SULbEBY4YPOB8kDolOzKRt30WIHG/D6gz69Ww==",
9143 "dev": true,
9269 "dev": true,
9144 "requires": {
9270 "requires": {
9145 "loader-utils": "^1.2.3"
9271 "loader-utils": "^1.2.3"
@@ -9232,12 +9358,13 @@
9232 "dev": true
9358 "dev": true
9233 },
9359 },
9234 "no-case": {
9360 "no-case": {
9235− "version": "2.3.2",
9361+ "version": "3.0.3",
9236− "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
9362+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
9237− "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
9363+ "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
9238 "dev": true,
9364 "dev": true,
9239 "requires": {
9365 "requires": {
9240− "lower-case": "^1.1.1"
9366+ "lower-case": "^2.0.1",
9367+ "tslib": "^1.10.0"
9241 }
9368 }
9242 },
9369 },
9243 "node-dir": {
9370 "node-dir": {
@@ -9301,9 +9428,9 @@
9301 }
9428 }
9302 },
9429 },
9303 "node-releases": {
9430 "node-releases": {
9304− "version": "1.1.48",
9431+ "version": "1.1.52",
9305− "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz",
9432+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz",
9306− "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==",
9433+ "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==",
9307 "dev": true,
9434 "dev": true,
9308 "requires": {
9435 "requires": {
9309 "semver": "^6.3.0"
9436 "semver": "^6.3.0"
@@ -9435,8 +9562,7 @@
9435 "object-assign": {
9562 "object-assign": {
9436 "version": "4.1.1",
9563 "version": "4.1.1",
9437 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
9564 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
9438− "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
9565+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
9439− "dev": true
9440 },
9566 },
9441 "object-copy": {
9567 "object-copy": {
9442 "version": "0.1.0",
9568 "version": "0.1.0",
@@ -9619,9 +9745,9 @@
9619 }
9745 }
9620 },
9746 },
9621 "open": {
9747 "open": {
9622− "version": "7.0.2",
9748+ "version": "7.0.3",
9623− "resolved": "https://registry.npmjs.org/open/-/open-7.0.2.tgz",
9749+ "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz",
9624− "integrity": "sha512-70E/pFTPr7nZ9nLDPNTcj3IVqnNvKuP4VsBmoKV9YGTnChe0mlS3C4qM7qKarhZ8rGaHKLfo+vBTHXDp6ZSyLQ==",
9750+ "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==",
9625 "dev": true,
9751 "dev": true,
9626 "requires": {
9752 "requires": {
9627 "is-docker": "^2.0.0",
9753 "is-docker": "^2.0.0",
@@ -9824,12 +9950,13 @@
9824 }
9950 }
9825 },
9951 },
9826 "param-case": {
9952 "param-case": {
9827− "version": "2.1.1",
9953+ "version": "3.0.3",
9828− "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
9954+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz",
9829− "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
9955+ "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==",
9830 "dev": true,
9956 "dev": true,
9831 "requires": {
9957 "requires": {
9832− "no-case": "^2.2.0"
9958+ "dot-case": "^3.0.3",
9959+ "tslib": "^1.10.0"
9833 }
9960 }
9834 },
9961 },
9835 "parent-module": {
9962 "parent-module": {
@@ -9899,6 +10026,16 @@
9899 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
10026 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
9900 "dev": true
10027 "dev": true
9901 },
10028 },
10029+ "pascal-case": {
10030+ "version": "3.1.1",
10031+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz",
10032+ "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==",
10033+ "dev": true,
10034+ "requires": {
10035+ "no-case": "^3.0.3",
10036+ "tslib": "^1.10.0"
10037+ }
10038+ },
9902 "pascalcase": {
10039 "pascalcase": {
9903 "version": "0.1.1",
10040 "version": "0.1.1",
9904 "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
10041 "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -10144,9 +10281,9 @@
10144 "dev": true
10281 "dev": true
10145 },
10282 },
10146 "postcss": {
10283 "postcss": {
10147− "version": "7.0.26",
10284+ "version": "7.0.27",
10148− "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz",
10285+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
10149− "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==",
10286+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
10150 "dev": true,
10287 "dev": true,
10151 "requires": {
10288 "requires": {
10152 "chalk": "^2.4.2",
10289 "chalk": "^2.4.2",
@@ -10295,9 +10432,9 @@
10295 }
10432 }
10296 },
10433 },
10297 "postcss-value-parser": {
10434 "postcss-value-parser": {
10298− "version": "4.0.2",
10435+ "version": "4.0.3",
10299− "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
10436+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz",
10300− "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
10437+ "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==",
10301 "dev": true
10438 "dev": true
10302 },
10439 },
10303 "prelude-ls": {
10440 "prelude-ls": {
@@ -10323,22 +10460,93 @@
10323 }
10460 }
10324 },
10461 },
10325 "pretty-format": {
10462 "pretty-format": {
10326− "version": "24.9.0",
10463+ "version": "25.1.0",
10327− "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
10464+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz",
10328− "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
10465+ "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==",
10329 "dev": true,
10466 "dev": true,
10330 "requires": {
10467 "requires": {
10331− "@jest/types": "^24.9.0",
10468+ "@jest/types": "^25.1.0",
10332− "ansi-regex": "^4.0.0",
10469+ "ansi-regex": "^5.0.0",
10333− "ansi-styles": "^3.2.0",
10470+ "ansi-styles": "^4.0.0",
10334− "react-is": "^16.8.4"
10471+ "react-is": "^16.12.0"
10335 },
10472 },
10336 "dependencies": {
10473 "dependencies": {
10474+ "@jest/types": {
10475+ "version": "25.1.0",
10476+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.1.0.tgz",
10477+ "integrity": "sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA==",
10478+ "dev": true,
10479+ "requires": {
10480+ "@types/istanbul-lib-coverage": "^2.0.0",
10481+ "@types/istanbul-reports": "^1.1.1",
10482+ "@types/yargs": "^15.0.0",
10483+ "chalk": "^3.0.0"
10484+ }
10485+ },
10486+ "@types/yargs": {
10487+ "version": "15.0.4",
10488+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz",
10489+ "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==",
10490+ "dev": true,
10491+ "requires": {
10492+ "@types/yargs-parser": "*"
10493+ }
10494+ },
10337 "ansi-regex": {
10495 "ansi-regex": {
10338− "version": "4.1.0",
10496+ "version": "5.0.0",
10339− "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
10497+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
10340− "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
10498+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
10341 "dev": true
10499 "dev": true
10500+ },
10501+ "ansi-styles": {
10502+ "version": "4.2.1",
10503+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
10504+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
10505+ "dev": true,
10506+ "requires": {
10507+ "@types/color-name": "^1.1.1",
10508+ "color-convert": "^2.0.1"
10509+ }
10510+ },
10511+ "chalk": {
10512+ "version": "3.0.0",
10513+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
10514+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
10515+ "dev": true,
10516+ "requires": {
10517+ "ansi-styles": "^4.1.0",
10518+ "supports-color": "^7.1.0"
10519+ }
10520+ },
10521+ "color-convert": {
10522+ "version": "2.0.1",
10523+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
10524+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
10525+ "dev": true,
10526+ "requires": {
10527+ "color-name": "~1.1.4"
10528+ }
10529+ },
10530+ "color-name": {
10531+ "version": "1.1.4",
10532+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
10533+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
10534+ "dev": true
10535+ },
10536+ "has-flag": {
10537+ "version": "4.0.0",
10538+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
10539+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
10540+ "dev": true
10541+ },
10542+ "supports-color": {
10543+ "version": "7.1.0",
10544+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
10545+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
10546+ "dev": true,
10547+ "requires": {
10548+ "has-flag": "^4.0.0"
10549+ }
10342 }
10550 }
10343 }
10551 }
10344 },
10552 },
@@ -10419,7 +10627,6 @@
10419 "version": "15.7.2",
10627 "version": "15.7.2",
10420 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
10628 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
10421 "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
10629 "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
10422− "dev": true,
10423 "requires": {
10630 "requires": {
10424 "loose-envify": "^1.4.0",
10631 "loose-envify": "^1.4.0",
10425 "object-assign": "^4.1.1",
10632 "object-assign": "^4.1.1",
@@ -10436,13 +10643,13 @@
10436 }
10643 }
10437 },
10644 },
10438 "proxy-addr": {
10645 "proxy-addr": {
10439− "version": "2.0.5",
10646+ "version": "2.0.6",
10440− "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
10647+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
10441− "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
10648+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
10442 "dev": true,
10649 "dev": true,
10443 "requires": {
10650 "requires": {
10444 "forwarded": "~0.1.2",
10651 "forwarded": "~0.1.2",
10445− "ipaddr.js": "1.9.0"
10652+ "ipaddr.js": "1.9.1"
10446 }
10653 }
10447 },
10654 },
10448 "prr": {
10655 "prr": {
@@ -10715,9 +10922,9 @@
10715 }
10922 }
10716 },
10923 },
10717 "purty": {
10924 "purty": {
10718− "version": "4.5.2",
10925+ "version": "4.6.0",
10719− "resolved": "https://registry.npmjs.org/purty/-/purty-4.5.2.tgz",
10926+ "resolved": "https://registry.npmjs.org/purty/-/purty-4.6.0.tgz",
10720− "integrity": "sha512-Ai0sONNVfGxsd+BfPZlp+uJvcdH/qbSytpBXDbMi6zryw/GXI1cSCI2AsTPsbiU9X+f2bilcL03D1uOg+EAFKw==",
10927+ "integrity": "sha512-bFpXrH+uHJZGzuiK1yXytpzSKtUWnDN7qgaLRyF32dEejSBXrIRq1FYrQDqLCs6wq4+vz305L9aZKk0O2z5wog==",
10721 "dev": true
10928 "dev": true
10722 },
10929 },
10723 "q": {
10930 "q": {
@@ -10814,21 +11021,21 @@
10814 },
11021 },
10815 "dependencies": {
11022 "dependencies": {
10816 "schema-utils": {
11023 "schema-utils": {
10817− "version": "2.6.4",
11024+ "version": "2.6.5",
10818− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
11025+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
10819− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
11026+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
10820 "dev": true,
11027 "dev": true,
10821 "requires": {
11028 "requires": {
10822− "ajv": "^6.10.2",
11029+ "ajv": "^6.12.0",
10823 "ajv-keywords": "^3.4.1"
11030 "ajv-keywords": "^3.4.1"
10824 }
11031 }
10825 }
11032 }
10826 }
11033 }
10827 },
11034 },
10828 "react": {
11035 "react": {
10829− "version": "16.12.0",
11036+ "version": "16.13.0",
10830− "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz",
11037+ "resolved": "https://registry.npmjs.org/react/-/react-16.13.0.tgz",
10831− "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==",
11038+ "integrity": "sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ==",
10832 "dev": true,
11039 "dev": true,
10833 "requires": {
11040 "requires": {
10834 "loose-envify": "^1.1.0",
11041 "loose-envify": "^1.1.0",
@@ -10938,6 +11145,12 @@
10938 "debug": "^2.6.0"
11145 "debug": "^2.6.0"
10939 }
11146 }
10940 },
11147 },
11148+ "emojis-list": {
11149+ "version": "2.1.0",
11150+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
11151+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
11152+ "dev": true
11153+ },
10941 "figures": {
11154 "figures": {
10942 "version": "2.0.0",
11155 "version": "2.0.0",
10943 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
11156 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
@@ -10983,6 +11196,26 @@
10983 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
11196 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
10984 "dev": true
11197 "dev": true
10985 },
11198 },
11199+ "json5": {
11200+ "version": "1.0.1",
11201+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
11202+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
11203+ "dev": true,
11204+ "requires": {
11205+ "minimist": "^1.2.0"
11206+ }
11207+ },
11208+ "loader-utils": {
11209+ "version": "1.2.3",
11210+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
11211+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
11212+ "dev": true,
11213+ "requires": {
11214+ "big.js": "^5.2.2",
11215+ "emojis-list": "^2.0.0",
11216+ "json5": "^1.0.1"
11217+ }
11218+ },
10986 "mimic-fn": {
11219 "mimic-fn": {
10987 "version": "1.2.0",
11220 "version": "1.2.0",
10988 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
11221 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
@@ -11069,10 +11302,15 @@
11069 }
11302 }
11070 }
11303 }
11071 },
11304 },
11305+ "react-display-name": {
11306+ "version": "0.2.5",
11307+ "resolved": "https://registry.npmjs.org/react-display-name/-/react-display-name-0.2.5.tgz",
11308+ "integrity": "sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg=="
11309+ },
11072 "react-docgen": {
11310 "react-docgen": {
11073− "version": "5.2.0",
11311+ "version": "5.3.0",
11074− "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.2.0.tgz",
11312+ "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.0.tgz",
11075− "integrity": "sha512-QzloLDy4JftSRoP0EPtTceYHEzKjDk+88bc2tvjTrIjmxznd5SS9V+vs8tUnfukPymmD8+a/aBZPfi+y+1a+Bg==",
11313+ "integrity": "sha512-hUrv69k6nxazOuOmdGeOpC/ldiKy7Qj/UFpxaQi0eDMrUFUTIPGtY5HJu7BggSmiyAMfREaESbtBL9UzdQ+hyg==",
11076 "dev": true,
11314 "dev": true,
11077 "requires": {
11315 "requires": {
11078 "@babel/core": "^7.7.5",
11316 "@babel/core": "^7.7.5",
@@ -11094,15 +11332,15 @@
11094 }
11332 }
11095 },
11333 },
11096 "react-dom": {
11334 "react-dom": {
11097− "version": "16.12.0",
11335+ "version": "16.13.0",
11098− "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz",
11336+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.0.tgz",
11099− "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==",
11337+ "integrity": "sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg==",
11100 "dev": true,
11338 "dev": true,
11101 "requires": {
11339 "requires": {
11102 "loose-envify": "^1.1.0",
11340 "loose-envify": "^1.1.0",
11103 "object-assign": "^4.1.1",
11341 "object-assign": "^4.1.1",
11104 "prop-types": "^15.6.2",
11342 "prop-types": "^15.6.2",
11105− "scheduler": "^0.18.0"
11343+ "scheduler": "^0.19.0"
11106 }
11344 }
11107 },
11345 },
11108 "react-draggable": {
11346 "react-draggable": {
@@ -11116,9 +11354,9 @@
11116 }
11354 }
11117 },
11355 },
11118 "react-error-overlay": {
11356 "react-error-overlay": {
11119− "version": "6.0.5",
11357+ "version": "6.0.6",
11120− "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.5.tgz",
11358+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.6.tgz",
11121− "integrity": "sha512-+DMR2k5c6BqMDSMF8hLH0vYKtKTeikiFW+fj0LClN+XZg4N9b8QUAdHC62CGWNLTi/gnuuemNcNcTFrCvK1f+A==",
11359+ "integrity": "sha512-Yzpno3enVzSrSCnnljmr4b/2KUQSMZaPuqmS26t9k4nW7uwJk6STWmH9heNjPuvqUTO3jOSPkHoKgO4+Dw7uIw==",
11122 "dev": true
11360 "dev": true
11123 },
11361 },
11124 "react-fast-compare": {
11362 "react-fast-compare": {
@@ -11155,9 +11393,9 @@
11155 }
11393 }
11156 },
11394 },
11157 "react-hot-loader": {
11395 "react-hot-loader": {
11158− "version": "4.12.19",
11396+ "version": "4.12.20",
11159− "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.19.tgz",
11397+ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.20.tgz",
11160− "integrity": "sha512-p8AnA4QE2GtrvkdmqnKrEiijtVlqdTIDCHZOwItkI9kW51bt5XnQ/4Anz8giiWf9kqBpEQwsmnChDCAFBRyR/Q==",
11398+ "integrity": "sha512-lPlv1HVizi0lsi+UFACBJaydtRYILWkfHAC/lyCs6ZlAxlOZRQIfYHDqiGaRvL/GF7zyti+Qn9XpnDAUvdFA4A==",
11161 "dev": true,
11399 "dev": true,
11162 "requires": {
11400 "requires": {
11163 "fast-levenshtein": "^2.0.6",
11401 "fast-levenshtein": "^2.0.6",
@@ -11188,10 +11426,27 @@
11188 }
11426 }
11189 },
11427 },
11190 "react-is": {
11428 "react-is": {
11191− "version": "16.12.0",
11429+ "version": "16.13.0",
11192− "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
11430+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz",
11193− "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==",
11431+ "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA=="
11194− "dev": true
11432+ },
11433+ "react-jss": {
11434+ "version": "10.1.1",
11435+ "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-10.1.1.tgz",
11436+ "integrity": "sha512-GCSKkyj6/bDNNgK1KtaU1FbTAKJ7CQE83p34qKpCc4tVPRi1wCfopyKot1cW/YYJizqltc2MaKzGqFK5eZhBSQ==",
11437+ "requires": {
11438+ "@babel/runtime": "^7.3.1",
11439+ "@emotion/is-prop-valid": "^0.7.3",
11440+ "css-jss": "10.1.1",
11441+ "hoist-non-react-statics": "^3.2.0",
11442+ "is-in-browser": "^1.1.3",
11443+ "jss": "10.1.1",
11444+ "jss-preset-default": "10.1.1",
11445+ "prop-types": "^15.6.0",
11446+ "shallow-equal": "^1.2.0",
11447+ "theming": "3.2.0",
11448+ "tiny-warning": "^1.0.2"
11449+ }
11195 },
11450 },
11196 "react-lifecycles-compat": {
11451 "react-lifecycles-compat": {
11197 "version": "3.0.4",
11452 "version": "3.0.4",
@@ -11444,27 +11699,27 @@
11444 "dev": true
11699 "dev": true
11445 },
11700 },
11446 "regenerate-unicode-properties": {
11701 "regenerate-unicode-properties": {
11447− "version": "8.1.0",
11702+ "version": "8.2.0",
11448− "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz",
11703+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
11449− "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==",
11704+ "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
11450 "dev": true,
11705 "dev": true,
11451 "requires": {
11706 "requires": {
11452 "regenerate": "^1.4.0"
11707 "regenerate": "^1.4.0"
11453 }
11708 }
11454 },
11709 },
11455 "regenerator-runtime": {
11710 "regenerator-runtime": {
11456− "version": "0.13.3",
11711+ "version": "0.13.5",
11457− "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
11712+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
11458− "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
11713+ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
11459− "dev": true
11460 },
11714 },
11461 "regenerator-transform": {
11715 "regenerator-transform": {
11462− "version": "0.14.1",
11716+ "version": "0.14.3",
11463− "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
11717+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.3.tgz",
11464− "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
11718+ "integrity": "sha512-zXHNKJspmONxBViAb3ZUmFoFPnTBs3zFhCEZJiwp/gkNzxVbTqNJVjYKx6Qk1tQ1P4XLf4TbH9+KBB7wGoAaUw==",
11465 "dev": true,
11719 "dev": true,
11466 "requires": {
11720 "requires": {
11467− "private": "^0.1.6"
11721+ "@babel/runtime": "^7.8.4",
11722+ "private": "^0.1.8"
11468 }
11723 }
11469 },
11724 },
11470 "regex-not": {
11725 "regex-not": {
@@ -11488,17 +11743,17 @@
11488 }
11743 }
11489 },
11744 },
11490 "regexpu-core": {
11745 "regexpu-core": {
11491− "version": "4.6.0",
11746+ "version": "4.7.0",
11492− "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz",
11747+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
11493− "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==",
11748+ "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
11494 "dev": true,
11749 "dev": true,
11495 "requires": {
11750 "requires": {
11496 "regenerate": "^1.4.0",
11751 "regenerate": "^1.4.0",
11497− "regenerate-unicode-properties": "^8.1.0",
11752+ "regenerate-unicode-properties": "^8.2.0",
11498− "regjsgen": "^0.5.0",
11753+ "regjsgen": "^0.5.1",
11499− "regjsparser": "^0.6.0",
11754+ "regjsparser": "^0.6.4",
11500 "unicode-match-property-ecmascript": "^1.0.4",
11755 "unicode-match-property-ecmascript": "^1.0.4",
11501− "unicode-match-property-value-ecmascript": "^1.1.0"
11756+ "unicode-match-property-value-ecmascript": "^1.2.0"
11502 }
11757 }
11503 },
11758 },
11504 "regjsgen": {
11759 "regjsgen": {
@@ -11508,9 +11763,9 @@
11508 "dev": true
11763 "dev": true
11509 },
11764 },
11510 "regjsparser": {
11765 "regjsparser": {
11511− "version": "0.6.2",
11766+ "version": "0.6.4",
11512− "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz",
11767+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
11513− "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==",
11768+ "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
11514 "dev": true,
11769 "dev": true,
11515 "requires": {
11770 "requires": {
11516 "jsesc": "~0.5.0"
11771 "jsesc": "~0.5.0"
@@ -11562,9 +11817,9 @@
11562 "dev": true
11817 "dev": true
11563 },
11818 },
11564 "request": {
11819 "request": {
11565− "version": "2.88.0",
11820+ "version": "2.88.2",
11566− "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
11821+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
11567− "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
11822+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
11568 "dev": true,
11823 "dev": true,
11569 "requires": {
11824 "requires": {
11570 "aws-sign2": "~0.7.0",
11825 "aws-sign2": "~0.7.0",
@@ -11574,7 +11829,7 @@
11574 "extend": "~3.0.2",
11829 "extend": "~3.0.2",
11575 "forever-agent": "~0.6.1",
11830 "forever-agent": "~0.6.1",
11576 "form-data": "~2.3.2",
11831 "form-data": "~2.3.2",
11577− "har-validator": "~5.1.0",
11832+ "har-validator": "~5.1.3",
11578 "http-signature": "~1.2.0",
11833 "http-signature": "~1.2.0",
11579 "is-typedarray": "~1.0.0",
11834 "is-typedarray": "~1.0.0",
11580 "isstream": "~0.1.2",
11835 "isstream": "~0.1.2",
@@ -11584,17 +11839,11 @@
11584 "performance-now": "^2.1.0",
11839 "performance-now": "^2.1.0",
11585 "qs": "~6.5.2",
11840 "qs": "~6.5.2",
11586 "safe-buffer": "^5.1.2",
11841 "safe-buffer": "^5.1.2",
11587− "tough-cookie": "~2.4.3",
11842+ "tough-cookie": "~2.5.0",
11588 "tunnel-agent": "^0.6.0",
11843 "tunnel-agent": "^0.6.0",
11589 "uuid": "^3.3.2"
11844 "uuid": "^3.3.2"
11590 },
11845 },
11591 "dependencies": {
11846 "dependencies": {
11592− "punycode": {
11593− "version": "1.4.1",
11594− "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
11595− "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
11596− "dev": true
11597− },
11598 "qs": {
11847 "qs": {
11599 "version": "6.5.2",
11848 "version": "6.5.2",
11600 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
11849 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
@@ -11602,13 +11851,13 @@
11602 "dev": true
11851 "dev": true
11603 },
11852 },
11604 "tough-cookie": {
11853 "tough-cookie": {
11605− "version": "2.4.3",
11854+ "version": "2.5.0",
11606− "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
11855+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
11607− "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
11856+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
11608 "dev": true,
11857 "dev": true,
11609 "requires": {
11858 "requires": {
11610− "psl": "^1.1.24",
11859+ "psl": "^1.1.28",
11611− "punycode": "^1.4.1"
11860+ "punycode": "^2.1.1"
11612 }
11861 }
11613 }
11862 }
11614 }
11863 }
@@ -11785,9 +12034,9 @@
11785 }
12034 }
11786 },
12035 },
11787 "run-async": {
12036 "run-async": {
11788− "version": "2.3.0",
12037+ "version": "2.4.0",
11789− "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
12038+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
11790− "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
12039+ "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
11791 "dev": true,
12040 "dev": true,
11792 "requires": {
12041 "requires": {
11793 "is-promise": "^2.1.0"
12042 "is-promise": "^2.1.0"
@@ -11848,9 +12097,9 @@
11848 }
12097 }
11849 },
12098 },
11850 "scheduler": {
12099 "scheduler": {
11851− "version": "0.18.0",
12100+ "version": "0.19.0",
11852− "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz",
12101+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz",
11853− "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==",
12102+ "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==",
11854 "dev": true,
12103 "dev": true,
11855 "requires": {
12104 "requires": {
11856 "loose-envify": "^1.1.0",
12105 "loose-envify": "^1.1.0",
@@ -12141,8 +12390,7 @@
12141 "shallow-equal": {
12390 "shallow-equal": {
12142 "version": "1.2.1",
12391 "version": "1.2.1",
12143 "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
12392 "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
12144− "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==",
12393+ "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
12145− "dev": true
12146 },
12394 },
12147 "shallowequal": {
12395 "shallowequal": {
12148 "version": "1.1.0",
12396 "version": "1.1.0",
@@ -12481,9 +12729,9 @@
12481 "dev": true
12729 "dev": true
12482 },
12730 },
12483 "spago": {
12731 "spago": {
12484− "version": "0.13.1",
12732+ "version": "0.14.0",
12485− "resolved": "https://registry.npmjs.org/spago/-/spago-0.13.1.tgz",
12733+ "resolved": "https://registry.npmjs.org/spago/-/spago-0.14.0.tgz",
12486− "integrity": "sha512-cfxhWEIbPDcPoTHZbAdtmPRui70dzUo4JZlybrGiWo9A+HpWrfkefzjhn6AcOWY/2tmtmOhYJirtsQzxvO4VnQ==",
12734+ "integrity": "sha512-nQMbxZkj5a9c1j36aUd7dp2BhlSByFkfu7/I4bA4nAnL39IAsoxz/p9B6FFs/TKCDcoaWjjjIvnOmei9G4j8SA==",
12487 "dev": true,
12735 "dev": true,
12488 "requires": {
12736 "requires": {
12489 "request": "^2.88.0",
12737 "request": "^2.88.0",
@@ -12550,9 +12798,9 @@
12550 },
12798 },
12551 "dependencies": {
12799 "dependencies": {
12552 "readable-stream": {
12800 "readable-stream": {
12553− "version": "3.5.0",
12801+ "version": "3.6.0",
12554− "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
12802+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
12555− "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
12803+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
12556 "dev": true,
12804 "dev": true,
12557 "requires": {
12805 "requires": {
12558 "inherits": "^2.0.3",
12806 "inherits": "^2.0.3",
@@ -12814,12 +13062,12 @@
12814 },
13062 },
12815 "dependencies": {
13063 "dependencies": {
12816 "schema-utils": {
13064 "schema-utils": {
12817− "version": "2.6.4",
13065+ "version": "2.6.5",
12818− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
13066+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
12819− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
13067+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
12820 "dev": true,
13068 "dev": true,
12821 "requires": {
13069 "requires": {
12822− "ajv": "^6.10.2",
13070+ "ajv": "^6.12.0",
12823 "ajv-keywords": "^3.4.1"
13071 "ajv-keywords": "^3.4.1"
12824 }
13072 }
12825 }
13073 }
@@ -12835,9 +13083,9 @@
12835 }
13083 }
12836 },
13084 },
12837 "svg-parser": {
13085 "svg-parser": {
12838− "version": "2.0.3",
13086+ "version": "2.0.4",
12839− "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.3.tgz",
13087+ "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
12840− "integrity": "sha512-fnCWiifNhK8i2Z7b9R5tbNahpxrRdAaQbnoxKlT2KrSCj9Kq/yBSgulCRgBJRhy1dPnSY5slg5ehPUnzpEcHlg==",
13088+ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==",
12841 "dev": true
13089 "dev": true
12842 },
13090 },
12843 "svgo": {
13091 "svgo": {
@@ -12891,6 +13139,11 @@
12891 }
13139 }
12892 }
13140 }
12893 },
13141 },
13142+ "symbol-observable": {
13143+ "version": "1.2.0",
13144+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
13145+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
13146+ },
12894 "symbol-tree": {
13147 "symbol-tree": {
12895 "version": "3.2.4",
13148 "version": "3.2.4",
12896 "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
13149 "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -12972,9 +13225,9 @@
12972 "dev": true
13225 "dev": true
12973 },
13226 },
12974 "terser": {
13227 "terser": {
12975− "version": "4.6.3",
13228+ "version": "4.6.6",
12976− "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz",
13229+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.6.tgz",
12977− "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==",
13230+ "integrity": "sha512-4lYPyeNmstjIIESr/ysHg2vUPRGf2tzF9z2yYwnowXVuVzLEamPN1Gfrz7f8I9uEPuHcbFlW4PLIAsJoxXyJ1g==",
12978 "dev": true,
13231 "dev": true,
12979 "requires": {
13232 "requires": {
12980 "commander": "^2.20.0",
13233 "commander": "^2.20.0",
@@ -12997,9 +13250,9 @@
12997 }
13250 }
12998 },
13251 },
12999 "terser-webpack-plugin": {
13252 "terser-webpack-plugin": {
13000− "version": "2.3.4",
13253+ "version": "2.3.5",
13001− "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.4.tgz",
13254+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz",
13002− "integrity": "sha512-Nv96Nws2R2nrFOpbzF6IxRDpIkkIfmhvOws+IqMvYdFLO7o6wAILWFKONFgaYy8+T4LVz77DQW0f7wOeDEAjrg==",
13255+ "integrity": "sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==",
13003 "dev": true,
13256 "dev": true,
13004 "requires": {
13257 "requires": {
13005 "cacache": "^13.0.1",
13258 "cacache": "^13.0.1",
@@ -13040,12 +13293,12 @@
13040 }
13293 }
13041 },
13294 },
13042 "schema-utils": {
13295 "schema-utils": {
13043− "version": "2.6.4",
13296+ "version": "2.6.5",
13044− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
13297+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
13045− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
13298+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
13046 "dev": true,
13299 "dev": true,
13047 "requires": {
13300 "requires": {
13048− "ajv": "^6.10.2",
13301+ "ajv": "^6.12.0",
13049 "ajv-keywords": "^3.4.1"
13302 "ajv-keywords": "^3.4.1"
13050 }
13303 }
13051 },
13304 },
@@ -13073,6 +13326,17 @@
13073 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
13326 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
13074 "dev": true
13327 "dev": true
13075 },
13328 },
13329+ "theming": {
13330+ "version": "3.2.0",
13331+ "resolved": "https://registry.npmjs.org/theming/-/theming-3.2.0.tgz",
13332+ "integrity": "sha512-n0fSNYXkX63rcFBBeAthy14IcgPZLHp0OGkGZheaj64j7cBoP7INLd6+7HIXqWVjFn1M5cYSiZ1nszi+jo/Szg==",
13333+ "requires": {
13334+ "hoist-non-react-statics": "^3.3.0",
13335+ "prop-types": "^15.5.8",
13336+ "react-display-name": "^0.2.4",
13337+ "tiny-warning": "^1.0.2"
13338+ }
13339+ },
13076 "throttle-debounce": {
13340 "throttle-debounce": {
13077 "version": "2.1.0",
13341 "version": "2.1.0",
13078 "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.1.0.tgz",
13342 "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.1.0.tgz",
@@ -13120,8 +13384,7 @@
13120 "tiny-warning": {
13384 "tiny-warning": {
13121 "version": "1.0.3",
13385 "version": "1.0.3",
13122 "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
13386 "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
13123− "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
13387+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
13124− "dev": true
13125 },
13388 },
13126 "tmp": {
13389 "tmp": {
13127 "version": "0.0.33",
13390 "version": "0.0.33",
@@ -13225,15 +13488,15 @@
13225 "dev": true
13488 "dev": true
13226 },
13489 },
13227 "ts-pnp": {
13490 "ts-pnp": {
13228− "version": "1.1.5",
13491+ "version": "1.1.6",
13229− "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.5.tgz",
13492+ "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz",
13230− "integrity": "sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA==",
13493+ "integrity": "sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ==",
13231 "dev": true
13494 "dev": true
13232 },
13495 },
13233 "tslib": {
13496 "tslib": {
13234− "version": "1.10.0",
13497+ "version": "1.11.1",
13235− "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
13498+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
13236− "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
13499+ "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
13237 "dev": true
13500 "dev": true
13238 },
13501 },
13239 "tty-browserify": {
13502 "tty-browserify": {
@@ -13295,9 +13558,9 @@
13295 "dev": true
13558 "dev": true
13296 },
13559 },
13297 "typescript": {
13560 "typescript": {
13298− "version": "3.7.5",
13561+ "version": "3.8.3",
13299− "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz",
13562+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz",
13300− "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==",
13563+ "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==",
13301 "dev": true
13564 "dev": true
13302 },
13565 },
13303 "unfetch": {
13566 "unfetch": {
@@ -13323,15 +13586,15 @@
13323 }
13586 }
13324 },
13587 },
13325 "unicode-match-property-value-ecmascript": {
13588 "unicode-match-property-value-ecmascript": {
13326− "version": "1.1.0",
13589+ "version": "1.2.0",
13327− "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz",
13590+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
13328− "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==",
13591+ "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==",
13329 "dev": true
13592 "dev": true
13330 },
13593 },
13331 "unicode-property-aliases-ecmascript": {
13594 "unicode-property-aliases-ecmascript": {
13332− "version": "1.0.5",
13595+ "version": "1.1.0",
13333− "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz",
13596+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
13334− "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
13597+ "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
13335 "dev": true
13598 "dev": true
13336 },
13599 },
13337 "union-value": {
13600 "union-value": {
@@ -13440,12 +13703,6 @@
13440 "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
13703 "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
13441 "dev": true
13704 "dev": true
13442 },
13705 },
13443− "upper-case": {
13444− "version": "1.1.3",
13445− "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
13446− "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
13447− "dev": true
13448− },
13449 "uri-js": {
13706 "uri-js": {
13450 "version": "4.2.2",
13707 "version": "4.2.2",
13451 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
13708 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
@@ -13497,12 +13754,12 @@
13497 "dev": true
13754 "dev": true
13498 },
13755 },
13499 "schema-utils": {
13756 "schema-utils": {
13500− "version": "2.6.4",
13757+ "version": "2.6.5",
13501− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
13758+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
13502− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
13759+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
13503 "dev": true,
13760 "dev": true,
13504 "requires": {
13761 "requires": {
13505− "ajv": "^6.10.2",
13762+ "ajv": "^6.12.0",
13506 "ajv-keywords": "^3.4.1"
13763 "ajv-keywords": "^3.4.1"
13507 }
13764 }
13508 }
13765 }
@@ -13631,12 +13888,12 @@
13631 "dev": true
13888 "dev": true
13632 },
13889 },
13633 "w3c-hr-time": {
13890 "w3c-hr-time": {
13634− "version": "1.0.1",
13891+ "version": "1.0.2",
13635− "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
13892+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
13636− "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
13893+ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
13637 "dev": true,
13894 "dev": true,
13638 "requires": {
13895 "requires": {
13639− "browser-process-hrtime": "^0.1.2"
13896+ "browser-process-hrtime": "^1.0.0"
13640 }
13897 }
13641 },
13898 },
13642 "w3c-xmlserializer": {
13899 "w3c-xmlserializer": {
@@ -13692,9 +13949,9 @@
13692 "dev": true
13949 "dev": true
13693 },
13950 },
13694 "webpack": {
13951 "webpack": {
13695− "version": "4.41.5",
13952+ "version": "4.42.0",
13696− "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz",
13953+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz",
13697− "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==",
13954+ "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==",
13698 "dev": true,
13955 "dev": true,
13699 "requires": {
13956 "requires": {
13700 "@webassemblyjs/ast": "1.8.5",
13957 "@webassemblyjs/ast": "1.8.5",
@@ -13780,9 +14037,9 @@
13780 }
14037 }
13781 },
14038 },
13782 "webpack-cli": {
14039 "webpack-cli": {
13783− "version": "3.3.10",
14040+ "version": "3.3.11",
13784− "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz",
14041+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz",
13785− "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==",
14042+ "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==",
13786 "dev": true,
14043 "dev": true,
13787 "requires": {
14044 "requires": {
13788 "chalk": "2.4.2",
14045 "chalk": "2.4.2",
@@ -13798,6 +14055,12 @@
13798 "yargs": "13.2.4"
14055 "yargs": "13.2.4"
13799 },
14056 },
13800 "dependencies": {
14057 "dependencies": {
14058+ "emojis-list": {
14059+ "version": "2.1.0",
14060+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
14061+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
14062+ "dev": true
14063+ },
13801 "enhanced-resolve": {
14064 "enhanced-resolve": {
13802 "version": "4.1.0",
14065 "version": "4.1.0",
13803 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
14066 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
@@ -13815,6 +14078,26 @@
13815 "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
14078 "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
13816 "dev": true
14079 "dev": true
13817 },
14080 },
14081+ "json5": {
14082+ "version": "1.0.1",
14083+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
14084+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
14085+ "dev": true,
14086+ "requires": {
14087+ "minimist": "^1.2.0"
14088+ }
14089+ },
14090+ "loader-utils": {
14091+ "version": "1.2.3",
14092+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
14093+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
14094+ "dev": true,
14095+ "requires": {
14096+ "big.js": "^5.2.2",
14097+ "emojis-list": "^2.0.0",
14098+ "json5": "^1.0.1"
14099+ }
14100+ },
13818 "supports-color": {
14101 "supports-color": {
13819 "version": "6.1.0",
14102 "version": "6.1.0",
13820 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
14103 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
@@ -14313,9 +14596,9 @@
14313 "dev": true
14596 "dev": true
14314 },
14597 },
14315 "ws": {
14598 "ws": {
14316− "version": "7.2.1",
14599+ "version": "7.2.3",
14317− "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz",
14600+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
14318− "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==",
14601+ "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==",
14319 "dev": true
14602 "dev": true
14320 },
14603 },
14321 "xml-name-validator": {
14604 "xml-name-validator": {
@@ -14349,12 +14632,12 @@
14349 "dev": true
14632 "dev": true
14350 },
14633 },
14351 "yaml": {
14634 "yaml": {
14352− "version": "1.7.2",
14635+ "version": "1.8.2",
14353− "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz",
14636+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.8.2.tgz",
14354− "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==",
14637+ "integrity": "sha512-omakb0d7FjMo3R1D2EbTKVIk6dAVLRxFXdLZMEUToeAvuqgG/YuHMuQOZ5fgk+vQ8cx+cnGKwyg+8g8PNT0xQg==",
14355 "dev": true,
14638 "dev": true,
14356 "requires": {
14639 "requires": {
14357− "@babel/runtime": "^7.6.3"
14640+ "@babel/runtime": "^7.8.7"
14358 }
14641 }
14359 },
14642 },
14360 "yargs": {
14643 "yargs": {
@@ -14420,9 +14703,9 @@
14420 }
14703 }
14421 },
14704 },
14422 "yargs-parser": {
14705 "yargs-parser": {
14423− "version": "13.1.1",
14706+ "version": "13.1.2",
14424− "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
14707+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
14425− "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
14708+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
14426 "dev": true,
14709 "dev": true,
14427 "requires": {
14710 "requires": {
14428 "camelcase": "^5.0.0",
14711 "camelcase": "^5.0.0",
components/package.json+3−2
@@ -32,10 +32,11 @@
32 "url": "https://github.com/i-am-the-slime/psfp/issues"
32 "url": "https://github.com/i-am-the-slime/psfp/issues"
33 },
33 },
34 "homepage": "https://github.com/i-am-the-slime/psfp#readme",
34 "homepage": "https://github.com/i-am-the-slime/psfp#readme",
35− "dependencies": {},
35+ "dependencies": {
36+ "react-jss": "^10.1.1"
37+ },
36 "devDependencies": {
38 "devDependencies": {
37 "@babel/core": "^7.6.0",
39 "@babel/core": "^7.6.0",
38− "@material-ui/styles": "^4.4.3",
39 "@storybook/react": "^5.2.0",
40 "@storybook/react": "^5.2.0",
40 "@testing-library/react": "^9.1.4",
41 "@testing-library/react": "^9.1.4",
41 "babel-loader": "^8.0.6",
42 "babel-loader": "^8.0.6",
components/spago.dhall+2
@@ -9,8 +9,10 @@ You can edit this file as you like.
9 , "debug"
9 , "debug"
10 , "effect"
10 , "effect"
11 , "interpolate"
11 , "interpolate"
12+ , "justifill"
12 , "matryoshka"
13 , "matryoshka"
13 , "milkis"
14 , "milkis"
15+ , "oneof"
14 , "psci-support"
16 , "psci-support"
15 , "pseudo-random"
17 , "pseudo-random"
16 , "react-basic"
18 , "react-basic"
components/src/React/Basic/Helpers.pursnew file+22
@@ -0,0 +1,22 @@
1+module React.Basic.Helpers where
2+
3+import Justifill (justifill)
4+import Justifill.Fillable (class FillableFields)
5+import Justifill.Justifiable (class JustifiableFields)
6+import Prim.Row (class Nub, class Union)
7+import Prim.RowList (class RowToList)
8+import React.Basic (JSX)
9+import React.Basic.Hooks (ReactComponent, element)
10+
11+element_ ::
12+ forall requiredProps filledProps suppliedProps missingProps missingPropsRow justifiableRow.
13+ RowToList missingProps missingPropsRow =>
14+ FillableFields missingPropsRow () missingProps =>
15+ Union filledProps missingProps requiredProps =>
16+ Nub requiredProps requiredProps =>
17+ RowToList suppliedProps justifiableRow =>
18+ JustifiableFields justifiableRow suppliedProps () filledProps =>
19+ ReactComponent (Record requiredProps) ->
20+ Record suppliedProps ->
21+ JSX
22+element_ x props = element x (justifill props)
components/src/Storybook/Decorator/FullScreen.purs+29−23
@@ -1,12 +1,12 @@
1module Storybook.Decorator.FullScreen where
1module Storybook.Decorator.FullScreen where
2
2
3import Prelude
3import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5import Data.Array (find)
4import Data.Array (find)
6import Data.Map (Map)
5import Data.Map (Map)
7import Data.Maybe (Maybe, fromMaybe)
6import Data.Maybe (Maybe, fromMaybe)
8import Data.Traversable (traverse_)
7import Data.Traversable (traverse_)
9import Effect (Effect)
8import Effect (Effect)
9+import JSS (jss, jssClasses)
10import React.Basic (JSX)
10import React.Basic (JSX)
11import React.Basic.DOM (css)
11import React.Basic.DOM (css)
12import React.Basic.DOM as R
12import React.Basic.DOM as R
@@ -15,17 +15,17 @@ import React.Basic.Events (handler)
15import React.Basic.Hooks (ReactComponent, component, element, useState, (/\))
15import React.Basic.Hooks (ReactComponent, component, element, useState, (/\))
16import React.Basic.Hooks as React
16import React.Basic.Hooks as React
17import Simple.JSON (readJSON_, writeJSON)
17import Simple.JSON (readJSON_, writeJSON)
18−import Yoga.Theme (fromTheme)
19−import Yoga.Theme.Default (darkTheme, lightTheme)
20−import Yoga.Theme.Provider (mkThemeProvider)
21−import Yoga.Theme.Styles (makeStyles_)
22−import Yoga.Theme.Types (CSSTheme)
23import Web.HTML (window)
18import Web.HTML (window)
24import Web.HTML.Window (localStorage)
19import Web.HTML.Window (localStorage)
25import Web.Storage.Storage (getItem, setItem)
20import Web.Storage.Storage (getItem, setItem)
26−import Yoga.Font as Font
27import Yoga.Font.PragmataPro as PragmataPro
21import Yoga.Font.PragmataPro as PragmataPro
28import Yoga.Font.Rubik as Rubik
22import Yoga.Font.Rubik as Rubik
23+import Yoga.Theme (fromTheme)
24+import Yoga.Theme.CSSBaseline (mkCssBaseline)
25+import Yoga.Theme.Default (darkTheme, lightTheme)
26+import Yoga.Theme.Provider (mkThemeProvider)
27+import Yoga.Theme.Styles (makeStylesJSS)
28+import Yoga.Theme.Types (CSSTheme)
29
29
30fullScreenDecorator ∷ Effect JSX -> Effect JSX
30fullScreenDecorator ∷ Effect JSX -> Effect JSX
31fullScreenDecorator mkChild = do
31fullScreenDecorator mkChild = do
@@ -66,21 +66,23 @@ mkThemeSwitcher ∷
66 )
66 )
67mkThemeSwitcher = do
67mkThemeSwitcher = do
68 themeProvider <- mkThemeProvider
68 themeProvider <- mkThemeProvider
69+ baseline <- mkCssBaseline
69 useStyles <-
70 useStyles <-
70− makeStyles_
71+ makeStylesJSS
71− { selector:
72+ $ jssClasses \_ ->
72− cssSafer
73+ { selector:
73− { position: "absolute"
74+ jss
74− , zIndex: 20
75+ { position: "absolute"
75− , top: 10
76+ , zIndex: 20
76− , right: 10
77+ , top: 10
78+ , right: 10
79+ }
80+ , "@font-face": jss (Rubik.fontFamilies <> [ PragmataPro.fontFamily ])
77 }
81 }
78− , "@font-face": Font.arrayToCss (Rubik.fontFamilies <> [ PragmataPro.fontFamily ])
79− }
80 storage <- window >>= localStorage
82 storage <- window >>= localStorage
81 saved ∷ (Maybe DefaultTheme) <- getItem "theme" storage <#> (_ >>= readJSON_)
83 saved ∷ (Maybe DefaultTheme) <- getItem "theme" storage <#> (_ >>= readJSON_)
82 component "ThemeSwitcher" \{ defaultTheme, themes, kids } -> React.do
84 component "ThemeSwitcher" \{ defaultTheme, themes, kids } -> React.do
83− classes <- useStyles
85+ classes <- useStyles {}
84 { theme, name } /\ modTheme <- useState $ fromMaybe defaultTheme saved
86 { theme, name } /\ modTheme <- useState $ fromMaybe defaultTheme saved
85 let
87 let
86 setTheme newTheme = do
88 setTheme newTheme = do
@@ -110,10 +112,14 @@ mkThemeSwitcher = do
110 $ element themeProvider
112 $ element themeProvider
111 { theme
113 { theme
112 , children:
114 , children:
113− [ R.div
115+ pure
114− { style: css { backgroundColor: theme.backgroundColour, width: "100%", height: "100%" }
116+ $ element baseline
115− , children:
117+ { kids:
116− [ themeSelect ] <> kids
118+ [ R.div
117− }
119+ { style: css { backgroundColor: theme.backgroundColour, width: "100%", height: "100%" }
118− ]
120+ , children:
121+ [ themeSelect ] <> kids
122+ }
123+ ]
124+ }
119 }
125 }
components/src/Storybook/React.purs+1−3
@@ -3,11 +3,9 @@ module Storybook.React
3 , Storybook
3 , Storybook
4 , add
4 , add
5 , addDecorator
5 , addDecorator
6− )
6+ ) where
7− where
8
7
9import Prelude hiding (add)
8import Prelude hiding (add)
10−
11import Control.Monad.Reader (ReaderT, ask, lift, local, runReaderT)
9import Control.Monad.Reader (ReaderT, ask, lift, local, runReaderT)
12import Effect (Effect)
10import Effect (Effect)
13import React.Basic (JSX, ReactComponent, element, fragment)
11import React.Basic (JSX, ReactComponent, element, fragment)
components/src/Yoga/Box/Component.pursnew file+36
@@ -0,0 +1,36 @@
1+module Yoga.Box.Component where
2+
3+import Prelude
4+import Data.Foldable (foldMap)
5+import Data.Maybe (Maybe)
6+import Effect (Effect)
7+import React.Basic (JSX)
8+import React.Basic.DOM as R
9+import React.Basic.Hooks (ReactComponent, component)
10+import React.Basic.Hooks as React
11+import Yoga.Box.Styles (styles)
12+import Yoga.Box.Styles as Styles
13+import Yoga.Theme.Styles (makeStylesJSS)
14+
15+type Props
16+ = Record PropsR
17+
18+type PropsR
19+ = OptionalProps (Styles.PropsR)
20+
21+type OptionalProps r
22+ = ( kids :: Array JSX
23+ , className :: Maybe String
24+ | r
25+ )
26+
27+makeComponent ∷ Effect (ReactComponent Props)
28+makeComponent = do
29+ useStyles <- makeStylesJSS styles
30+ component "Box" \{ kids, className, padding } -> React.do
31+ classes <- useStyles { padding }
32+ pure
33+ $ R.div
34+ { className: classes.box <> foldMap (" " <> _) className
35+ , children: kids
36+ }
components/src/Yoga/Box/Spec.pursnew file+25
@@ -0,0 +1,25 @@
1+module Yoga.Box.Spec where
2+
3+import Prelude
4+import Justifill (justifill)
5+import React.Basic.DOM as R
6+import React.TestingLibrary (describeComponent, renderComponent)
7+import Test.Spec (Spec, it)
8+import Yoga.Box.Component as Box
9+
10+spec :: Spec Unit
11+spec =
12+ describeComponent Box.makeComponent
13+ "The Box Component" do
14+ it "renders without problems" \stack -> do
15+ _ <-
16+ renderComponent stack
17+ ( justifill
18+ { kids:
19+ [ R.h1_ [ R.text "Living in a Box" ]
20+ , R.h2_ [ R.text "Living in a Card, Board, Box" ]
21+ ]
22+ , padding: "12rem"
23+ }
24+ )
25+ pure unit
components/src/Yoga/Box/Stories.pursnew file+25
@@ -0,0 +1,25 @@
1+module Yoga.Box.Stories where
2+
3+import Prelude hiding (add)
4+import Effect (Effect)
5+import Justifill (justifill)
6+import React.Basic.DOM as R
7+import Storybook.Decorator.FullScreen (fullScreenDecorator)
8+import Storybook.React (Storybook, add, addDecorator, storiesOf)
9+import Yoga.Box.Component as Box
10+
11+stories ∷ Effect Storybook
12+stories = do
13+ storiesOf "Box" do
14+ addDecorator fullScreenDecorator
15+ add "The Box" Box.makeComponent
16+ [ justifill
17+ { kids:
18+ [ R.text "Rowtype Yoga"
19+ , R.p_ [ R.text "This is a little bit longer my friend, I am telling you there was a lot to say in this case so it This is a little bit longer my friend, I am telling you there was a lot to say in this case so it wraps around" ]
20+ , R.h2_ [ R.text "I said Rowtype Yoga" ]
21+ , R.h3_ [ R.text "I said Rowtype Yoga" ]
22+ , R.p_ [ R.text "This is a little bit longer my friend, I am telling you there was a lot to say in this case so it This is a little bit longer my friend, I am telling you there was a lot to say in this case so it wraps around" ]
23+ ]
24+ }
25+ ]
components/src/Yoga/Box/Styles.pursnew file+25
@@ -0,0 +1,25 @@
1+module Yoga.Box.Styles where
2+
3+import Prelude
4+import Data.Maybe (Maybe, fromMaybe)
5+import JSS (JSSClasses, JSSElem, jss, jssClasses)
6+import Yoga.Theme.Types (YogaTheme)
7+
8+type PropsR
9+ = ( padding ∷ Maybe String
10+ )
11+
12+type Props
13+ = Record PropsR
14+
15+styles ∷ JSSClasses YogaTheme Props ( box ∷ JSSElem Props )
16+styles =
17+ jssClasses \theme ->
18+ { box:
19+ jss
20+ { padding: _.padding >>> fromMaybe "var(--s1)"
21+ , border: "0 solid"
22+ , outline: theme.borderThin <> " solid transparent"
23+ , outlineOffset: "-" <> theme.borderThin
24+ }
25+ }
components/src/Yoga/Button/Component.purs+117−111
@@ -2,13 +2,13 @@ module Yoga.Button.Component where
2
2
3import Prelude
3import Prelude
4import CSS (ColorSpace(..), mix, toHexString)
4import CSS (ColorSpace(..), mix, toHexString)
5−import Yoga.CSS.Safer (cssSafer)
6import Color (fromHexString)
5import Color (fromHexString)
7import Data.Foldable (intercalate)
6import Data.Foldable (intercalate)
8import Data.Interpolate (i)
7import Data.Interpolate (i)
9import Data.Maybe (fromMaybe)
8import Data.Maybe (fromMaybe)
10import Data.Monoid (guard)
9import Data.Monoid (guard)
11import Effect (Effect)
10import Effect (Effect)
11+import JSS (JSSClasses, JSSElem, jss, jssClasses)
12import Prim.Row (class Lacks, class Union)
12import Prim.Row (class Lacks, class Union)
13import React.Basic (JSX)
13import React.Basic (JSX)
14import React.Basic.DOM (Props_button, unsafeCreateDOMComponent)
14import React.Basic.DOM (Props_button, unsafeCreateDOMComponent)
@@ -17,8 +17,8 @@ import React.Basic.Hooks (ReactComponent, component, element)
17import React.Basic.Hooks as React
17import React.Basic.Hooks as React
18import Record (union)
18import Record (union)
19import Yoga.Theme (increaseContrast)
19import Yoga.Theme (increaseContrast)
20−import Yoga.Theme.Styles (classNames, makeStyles)
20+import Yoga.Theme.Styles (makeStylesJSS)
21−import Yoga.Theme.Types (CSSTheme)
21+import Yoga.Theme.Types (CSSTheme, YogaTheme)
22
22
23data ButtonType
23data ButtonType
24 = PlainButton
24 = PlainButton
@@ -26,6 +26,116 @@ data ButtonType
26 | DisabledButton
26 | DisabledButton
27
27
28derive instance eqButtonType ∷ Eq ButtonType
28derive instance eqButtonType ∷ Eq ButtonType
29+type StyleProps
30+ = {}
31+
32+styles ∷
33+ JSSClasses YogaTheme {}
34+ ( "@keyframes gradientBG" ∷ JSSElem StyleProps
35+ , btn ∷ JSSElem StyleProps
36+ , buttonContainer ∷ JSSElem StyleProps
37+ , highlightedButton ∷ JSSElem StyleProps
38+ )
39+styles =
40+ jssClasses
41+ $ \(theme ∷ CSSTheme) ->
42+ { buttonContainer:
43+ jss
44+ { padding: "2px"
45+ , background: linearGradient [ "145deg", theme.highlightColour, theme.highlightColourDark ]
46+ , borderRadius: "20px"
47+ , height: "40px"
48+ , minWidth: "100px"
49+ , boxSizing: "border-box"
50+ , margin: "2px"
51+ }
52+ , "@keyframes gradientBG":
53+ jss
54+ { "0%": { backgroundPosition: "0% 50%" }
55+ , "50%": { backgroundPosition: "100% 50%" }
56+ , "100%": { backgroundPosition: "0% 50%" }
57+ }
58+ , btn:
59+ jss
60+ { background:
61+ linearGradient
62+ [ "145deg"
63+ , theme.interfaceColourLightest
64+ , theme.interfaceColourDarkest
65+ ]
66+ , color: theme.highlightColour --theme.textColour
67+ , borderRadius: "20px"
68+ , border: "0"
69+ , width: "100%"
70+ , height: "36px"
71+ , fontFamily: theme.textFontFamily
72+ , padding: "1px 18px 0px 18px"
73+ , letterSpacing: "0.2em"
74+ , textTransform: "uppercase"
75+ , outline: "none"
76+ , "&:focus":
77+ { background:
78+ linearGradient
79+ [ "145deg"
80+ , theme.interfaceColourDarker
81+ , theme.highlightColourDark
82+ , theme.highlightColour
83+ ]
84+ , color:
85+ fromMaybe theme.textColour do
86+ hlc <- theme.highlightColour # fromHexString
87+ hlcd <- theme.highlightColourDark # fromHexString
88+ let
89+ bg = if theme.isLight then hlc else mix HSL hlc hlcd 0.5
90+ tc <- theme.textColour # fromHexString
91+ pure $ increaseContrast bg tc # toHexString
92+ , backgroundSize: "400% 400%, 100% 100%"
93+ , animation: "$gradientBG 3s ease infinite"
94+ }
95+ , "&:active":
96+ { boxShadow:
97+ ( i "inset 6px 6px 6px "
98+ theme.backgroundColourDarkest
99+ ", inset -6px -6px 6px "
100+ theme.backgroundColourLightest ∷
101+ String
102+ )
103+ , background:
104+ linearGradient
105+ [ "145deg"
106+ , theme.backgroundColourDarker
107+ , theme.backgroundColourLighter
108+ ]
109+ }
110+ , "&:disabled":
111+ { boxShadow: "0 0 0 black"
112+ , background: theme.backgroundColour
113+ , border: "1px dotted " <> theme.interfaceColourLightest
114+ , textDecoration: "line-through"
115+ , textDecorationColor: theme.red
116+ }
117+ }
118+ , highlightedButton:
119+ jss
120+ { background:
121+ if theme.isLight then
122+ theme.highlightColour
123+ else
124+ linearGradient [ theme.highlightColour, theme.highlightColourDark ]
125+ , "&:active":
126+ { background:
127+ linearGradient [ "145deg", theme.highlightColourDark, theme.highlightColour ]
128+ }
129+ , color:
130+ fromMaybe theme.textColour do
131+ hlc <- theme.highlightColour # fromHexString
132+ hlcd <- theme.highlightColourDark # fromHexString
133+ let
134+ bg = if theme.isLight then hlc else mix HSL hlc hlcd 0.5
135+ tc <- theme.textColour # fromHexString
136+ pure $ increaseContrast bg tc # toHexString
137+ }
138+ }
29
139
30mkButton ∷
140mkButton ∷
31 ∀ attrs attrs_.
141 ∀ attrs attrs_.
@@ -42,120 +152,16 @@ mkButton ∷
42 }
152 }
43 )
153 )
44mkButton = do
154mkButton = do
45− useStyles <-
155+ useStyles <- makeStylesJSS styles
46− makeStyles \(theme ∷ CSSTheme) ->
47− { buttonContainer:
48− cssSafer
49− { padding: "2px"
50− , background: linearGradient [ "145deg", theme.highlightColour, theme.highlightColourDark ]
51− , borderRadius: "20px"
52− , height: "40px"
53− , minWidth: "100px"
54− , boxSizing: "border-box"
55− , margin: "2px"
56− }
57− , "@keyframes gradientBG":
58− cssSafer
59− { "0%": { backgroundPosition: "0% 50%" }
60− , "50%": { backgroundPosition: "100% 50%" }
61− , "100%": { backgroundPosition: "0% 50%" }
62− }
63− , btn:
64− cssSafer
65− { background:
66− linearGradient
67− [ "145deg"
68− , theme.interfaceColourLightest
69− , theme.interfaceColourDarkest
70− ]
71− , color: theme.highlightColour --theme.textColour
72− , borderRadius: "20px"
73− , border: "0"
74− , width: "100%"
75− , height: "36px"
76− , fontFamily: theme.textFontFamily
77− , padding: "1px 18px 0px 18px"
78− , letterSpacing: "0.2em"
79− , textTransform: "uppercase"
80− , outline: "none"
81− , "&:focus":
82− { background:
83− linearGradient
84− [ "145deg"
85− , theme.interfaceColourDarker
86− , theme.highlightColourDark
87− , theme.highlightColour
88− ]
89− , color:
90− fromMaybe theme.textColour do
91− hlc <- theme.highlightColour # fromHexString
92− hlcd <- theme.highlightColourDark # fromHexString
93− let
94− bg = if theme.isLight then hlc else mix HSL hlc hlcd 0.5
95− tc <- theme.textColour # fromHexString
96− pure $ increaseContrast bg tc # toHexString
97− , backgroundSize: "400% 400%, 100% 100%"
98− , animation: "$gradientBG 3s ease infinite"
99− }
100− , "&:active":
101− { boxShadow:
102− ( i "inset 6px 6px 6px "
103− theme.backgroundColourDarkest
104− ", inset -6px -6px 6px "
105− theme.backgroundColourLightest ::
106− String
107− )
108− , background:
109− linearGradient
110− [ "145deg"
111− , theme.backgroundColourDarker
112− , theme.backgroundColourLighter
113− ]
114− }
115− , "&:disabled":
116− { boxShadow: "0 0 0 black"
117− , background: theme.backgroundColour
118− , border: "1px dotted " <> theme.interfaceColourLightest
119− , textDecoration: "line-through"
120− , textDecorationColor: theme.red
121− }
122− }
123− , highlightedButton:
124− cssSafer
125− { background:
126− if theme.isLight then
127− theme.highlightColour
128− else
129− linearGradient [ theme.highlightColour, theme.highlightColourDark ]
130− , "&:active":
131− { background:
132− linearGradient [ "145deg", theme.highlightColourDark, theme.highlightColour ]
133− }
134− , color:
135− fromMaybe theme.textColour do
136− hlc <- theme.highlightColour # fromHexString
137− hlcd <- theme.highlightColourDark # fromHexString
138− let
139− bg = if theme.isLight then hlc else mix HSL hlc hlcd 0.5
140− tc <- theme.textColour # fromHexString
141− pure $ increaseContrast bg tc # toHexString
142− }
143− }
144 component "Button" \{ kids, buttonType, buttonProps, className } -> React.do
156 component "Button" \{ kids, buttonType, buttonProps, className } -> React.do
145− rawClasses <- useStyles
157+ classes <- useStyles {}
146− let
147− classes = flip classNames rawClasses
148− -- [TODO]: How do you do this in a typesafe manner?
149 pure
158 pure
150 $ R.div
159 $ R.div
151− { className: rawClasses.buttonContainer
160+ { className: classes.buttonContainer
152 , children:
161 , children:
153 [ (element $ unsafeCreateDOMComponent "button")
162 [ (element $ unsafeCreateDOMComponent "button")
154 $ { className:
163 $ { className:
155− ( classes
164+ ( classes.btn <> " " <> guard (buttonType == HighlightedButton) classes.highlightedButton
156− [ _.btn
157− , guard (buttonType == HighlightedButton) _.highlightedButton
158− ]
159 )
165 )
160 <> " "
166 <> " "
161 <> className
167 <> className
components/src/Yoga/Card/Component.purs+66−65
@@ -1,45 +1,49 @@
1module Yoga.Card.Component where
1module Yoga.Card.Component where
2
2
3import Prelude
3import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5import Data.Interpolate (i)
4import Data.Interpolate (i)
6import Effect (Effect)
5import Effect (Effect)
6+import JSS (JSSClasses, JSSElem, jss, jssClasses)
7import React.Basic (JSX)
7import React.Basic (JSX)
8import React.Basic.DOM as R
8import React.Basic.DOM as R
9import React.Basic.Hooks (ReactComponent, component)
9import React.Basic.Hooks (ReactComponent, component)
10import React.Basic.Hooks as React
10import React.Basic.Hooks as React
11−import Yoga.Theme.Styles (classNames, makeStyles)
11+import Yoga.Theme.Styles (makeStylesJSS)
12−import Yoga.Theme.Types (CSSTheme)
12+import Yoga.Theme.Types (CSSTheme, YogaTheme)
13+
14+type StyleProps
15+ = {}
16+
17+styles ∷ JSSClasses YogaTheme StyleProps ( card ∷ JSSElem StyleProps )
18+styles =
19+ jssClasses \(theme ∷ CSSTheme) ->
20+ { card:
21+ jss
22+ { background: (i "linear-gradient(145deg," theme.backgroundColourDarker ", " theme.backgroundColourLighter ")") ∷ String
23+ , color: theme.textColour
24+ , fontFamily: theme.textFontFamily
25+ , margin: "20px"
26+ , boxShadow:
27+ (i "30px 30px 60px " theme.backgroundColourDarker ", -30px -30px 60px " theme.backgroundColourLighter ";") ∷ String
28+ , borderRadius: "15px"
29+ , padding: "36px 40px 32px 40px"
30+ }
31+ }
13
32
14mkCard ∷
33mkCard ∷
15 Effect
34 Effect
16 ( ReactComponent
35 ( ReactComponent
17 { kids ∷ Array JSX
36 { kids ∷ Array JSX
18− , className :: String
37+ , className ∷ String
19 }
38 }
20 )
39 )
21mkCard = do
40mkCard = do
22− useStyles <-
41+ useStyles <- makeStylesJSS styles
23− makeStyles \(theme ∷ CSSTheme) ->
24− { card:
25− cssSafer
26− { background: (i "linear-gradient(145deg," theme.backgroundColourDarker ", " theme.backgroundColourLighter ")") :: String
27− , color: theme.textColour
28− , fontFamily: theme.textFontFamily
29− , margin: "20px"
30− , boxShadow:
31− (i "30px 30px 60px " theme.backgroundColourDarker ", -30px -30px 60px " theme.backgroundColourLighter ";") :: String
32− , borderRadius: "15px"
33− , padding: "36px 40px 32px 40px"
34− }
35− }
36 component "Card" \{ kids, className } -> React.do
42 component "Card" \{ kids, className } -> React.do
37− rawClasses <- useStyles
43+ classes <- useStyles {}
38− let
39− classes = flip classNames rawClasses
40 pure
44 pure
41 $ R.div
45 $ R.div
42− { className: classes [ _.card ] <> " " <> className
46+ { className: classes.card <> " " <> className
43 , children: kids
47 , children: kids
44 }
48 }
45
49
@@ -51,23 +55,22 @@ mkCardTitle ∷
51 )
55 )
52mkCardTitle = do
56mkCardTitle = do
53 useStyles <-
57 useStyles <-
54− makeStyles \(theme ∷ CSSTheme) ->
58+ makeStylesJSS
55− { cardtitle:
59+ $ jssClasses \(theme ∷ CSSTheme) ->
56− cssSafer
60+ { cardtitle:
57− { color: theme.textColourLightest
61+ jss
58− , fontSize: "1.2em"
62+ { color: theme.textColourLightest
59− , fontWeight: "400"
63+ , fontSize: "1.2em"
60− , fontFamily: theme.headingFontFamily
64+ , fontWeight: "400"
61− , padding: "4px 8px"
65+ , fontFamily: theme.headingFontFamily
66+ , padding: "4px 8px"
67+ }
62 }
68 }
63− }
64 component "CardTitle" \{ kids } -> React.do
69 component "CardTitle" \{ kids } -> React.do
65− rawClasses <- useStyles
70+ classNames <- useStyles {}
66− let
67− classes = flip classNames rawClasses
68 pure
71 pure
69 $ R.div
72 $ R.div
70− { className: classes [ _.cardtitle ]
73+ { className: classNames.cardtitle
71 , children: kids
74 , children: kids
72 }
75 }
73
76
@@ -79,24 +82,23 @@ mkCardSubtitle ∷
79 )
82 )
80mkCardSubtitle = do
83mkCardSubtitle = do
81 useStyles <-
84 useStyles <-
82− makeStyles \(theme ∷ CSSTheme) ->
85+ makeStylesJSS
83− { cardtitle:
86+ $ jssClasses \(theme ∷ CSSTheme) ->
84− cssSafer
87+ { cardtitle:
85− { color: theme.textColourDarker
88+ jss
86− , opacity: "0.8"
89+ { color: theme.textColourDarker
87− , fontSize: "1.0em"
90+ , opacity: "0.8"
88− , fontWeight: "500"
91+ , fontSize: "1.0em"
89− , fontFamily: theme.headingFontFamily
92+ , fontWeight: "500"
90− , padding: "4px 8px 22px 8px"
93+ , fontFamily: theme.headingFontFamily
94+ , padding: "4px 8px 22px 8px"
95+ }
91 }
96 }
92− }
93 component "CardSubtitle" \{ kids } -> React.do
97 component "CardSubtitle" \{ kids } -> React.do
94− rawClasses <- useStyles
98+ classNames <- useStyles {}
95− let
96− classes = flip classNames rawClasses
97 pure
99 pure
98 $ R.div
100 $ R.div
99− { className: classes [ _.cardtitle ]
101+ { className: classNames.cardtitle
100 , children: kids
102 , children: kids
101 }
103 }
102
104
@@ -108,25 +110,24 @@ mkCardContent ∷
108 )
110 )
109mkCardContent = do
111mkCardContent = do
110 useStyles <-
112 useStyles <-
111− makeStyles \(theme ∷ CSSTheme) ->
113+ makeStylesJSS
112− { cardContent:
114+ $ jssClasses \(theme ∷ CSSTheme) ->
113− cssSafer
115+ { cardContent:
114− { fontFamily: theme.textFontFamily
116+ jss
115− , color: theme.textColourDarker
117+ { fontFamily: theme.textFontFamily
116− , fontSize: "0.8em"
118+ , color: theme.textColourDarker
117− , fontWeight: "300"
119+ , fontSize: "0.8em"
118− , "WebkitFontSmoothing": "subpixel-antialiased"
120+ , fontWeight: "300"
119− , textAlign: "justify"
121+ , "WebkitFontSmoothing": "subpixel-antialiased"
120− , hyphens: "auto"
122+ , textAlign: "justify"
121− , padding: "4px 8px 22px 8px"
123+ , hyphens: "auto"
124+ , padding: "4px 8px 22px 8px"
125+ }
122 }
126 }
123− }
124 component "CardContent" \{ kids } -> React.do
127 component "CardContent" \{ kids } -> React.do
125− rawClasses <- useStyles
128+ classNames <- useStyles {}
126− let
127− classes = flip classNames rawClasses
128 pure
129 pure
129 $ R.div
130 $ R.div
130− { className: classes [ _.cardContent ]
131+ { className: classNames.cardContent
131 , children: kids
132 , children: kids
132 }
133 }
components/src/Yoga/Card/Stories.purs+9−10
@@ -29,16 +29,15 @@ stories = do
29 pure
29 pure
30 $ R.div
30 $ R.div
31 { children:
31 { children:
32− pure
32+ pure
33− $ element card
33+ $ element card
34− { kids:
34+ { kids:
35− [ element cardTitle { kids: [ R.text title ] }
35+ [ element cardTitle { kids: [ R.text title ] }
36− , element cardSubtitle { kids: [ R.text subtitle ] }
36+ , element cardSubtitle { kids: [ R.text subtitle ] }
37− , element cardContent { kids: [ content ] }
37+ , element cardContent { kids: [ content ] }
38− ]
38+ ]
39− , className: ""
39+ , className: ""
40− }
40+ }
41− , style: css { width: "400px", padding: "60px", overflow: "hidden" }
42 }
41 }
43
42
44loremIpsum ∷ String
43loremIpsum ∷ String
components/src/Yoga/Panel/Component.purs → components/src/Yoga/Center/Component.pursrenamed+10−10
@@ -1,17 +1,17 @@
1−module Yoga.Panel.Component where
1+module Yoga.Center.Component where
2
2
3import Prelude
3import Prelude
4import Data.Array (foldMap)
4import Data.Array (foldMap)
5import Data.Maybe (Maybe)
5import Data.Maybe (Maybe)
6import Effect (Effect)
6import Effect (Effect)
7−import Yoga.Panel.Styles as Panel
8import Prim.Row (class Nub, class Union)
7import Prim.Row (class Nub, class Union)
9import React.Basic (JSX)
8import React.Basic (JSX)
10import React.Basic.DOM as R
9import React.Basic.DOM as R
11import React.Basic.Hooks (ReactComponent, component)
10import React.Basic.Hooks (ReactComponent, component)
12import React.Basic.Hooks as React
11import React.Basic.Hooks as React
13import Record (disjointUnion)
12import Record (disjointUnion)
14−import Yoga.Theme.Styles (makeStyles)
13+import Yoga.Center.Styles as Center
14+import Yoga.Theme.Styles (makeStylesJSS)
15
15
16type Props
16type Props
17 = Record PropsR
17 = Record PropsR
@@ -20,13 +20,13 @@ type PropsR
20 = OptionalProps ()
20 = OptionalProps ()
21
21
22type OptionalProps r
22type OptionalProps r
23− = ( kids :: Array JSX
23+ = ( kids ∷ Array JSX
24− , className :: Maybe String
24+ , className ∷ Maybe String
25 | r
25 | r
26 )
26 )
27
27
28withDefaults ∷
28withDefaults ∷
29− forall r missing props.
29+ ∀ r missing props.
30 Union r missing props =>
30 Union r missing props =>
31 Nub props props =>
31 Nub props props =>
32 Monoid { | missing } =>
32 Monoid { | missing } =>
@@ -36,11 +36,11 @@ withDefaults x = disjointUnion x mempty
36
36
37makeComponent ∷ Effect (ReactComponent Props)
37makeComponent ∷ Effect (ReactComponent Props)
38makeComponent = do
38makeComponent = do
39− useStyles <- makeStyles Panel.styles
39+ useStyles <- makeStylesJSS Center.styles
40− component "Panel" \{ kids, className } -> React.do
40+ component "Center" \{ kids, className } -> React.do
41− classes <- useStyles
41+ classes <- useStyles {}
42 pure
42 pure
43 $ R.div
43 $ R.div
44− { className: classes.panel <> foldMap (" " <> _) className
44+ { className: classes.centre <> foldMap (" " <> _) className
45 , children: kids
45 , children: kids
46 }
46 }
components/src/Yoga/Center/Spec.pursnew file+14
@@ -0,0 +1,14 @@
1+module Yoga.Center.Spec where
2+
3+import Prelude
4+import Yoga.Center.Component as Center
5+import React.TestingLibrary (describeComponent, renderComponent)
6+import Test.Spec (Spec, it)
7+
8+spec :: Spec Unit
9+spec =
10+ describeComponent Center.makeComponent
11+ "The Center Component" do
12+ it "renders without problems" \panel -> do
13+ _ <- renderComponent panel (Center.withDefaults {})
14+ pure unit
components/src/Yoga/Panel/Stories.purs → components/src/Yoga/Center/Stories.pursrenamed+9−11
@@ -1,22 +1,20 @@
1−module Panel.Stories where
1+module Yoga.Center.Stories where
2
2
3import Prelude hiding (add)
3import Prelude hiding (add)
4import Storybook.Decorator.FullScreen (fullScreenDecorator)
4import Storybook.Decorator.FullScreen (fullScreenDecorator)
5import Effect (Effect)
5import Effect (Effect)
6−import Yoga.Panel.Component as Panel
6+import Yoga.Center.Component as Center
7import React.Basic.DOM as R
7import React.Basic.DOM as R
8−import Record (disjointUnion)
9import Storybook.React (Storybook, add, addDecorator, storiesOf)
8import Storybook.React (Storybook, add, addDecorator, storiesOf)
10
9
11stories ∷ Effect Storybook
10stories ∷ Effect Storybook
12stories = do
11stories = do
13− storiesOf "Panel" do
12+ storiesOf "Center" do
14 addDecorator fullScreenDecorator
13 addDecorator fullScreenDecorator
15− add "The Panel" Panel.makeComponent
14+ add "The Center" Center.makeComponent
16− [ { kids:
15+ [ Center.withDefaults
17− [ R.text "Rowtype Yoga"
16+ { kids:
18− ]
17+ [ R.text "Rowtype Yoga"
19− }
18+ ]
20− `disjointUnion`
19+ }
21− mempty
22 ]
20 ]
components/src/Yoga/Center/Styles.pursnew file+21
@@ -0,0 +1,21 @@
1+module Yoga.Center.Styles where
2+
3+import JSS (JSSClasses, JSSElem, jss, jssClasses)
4+import Yoga.Theme.Types (YogaTheme)
5+
6+type PropsR
7+ = ()
8+
9+type Props
10+ = Record PropsR
11+
12+styles ∷ JSSClasses YogaTheme Props ( centre ∷ JSSElem Props )
13+styles =
14+ jssClasses \_ ->
15+ { centre:
16+ jss
17+ { display: "flex"
18+ , placeContent: "center"
19+ , minHeight: "100vh"
20+ }
21+ }
components/src/Yoga/CompileEditor/Component.purs+40−41
@@ -1,19 +1,16 @@
1module Yoga.CompileEditor.Component where
1module Yoga.CompileEditor.Component where
2
2
3import Prelude hiding (add)
3import Prelude hiding (add)
4−import Yoga.Button.Component (ButtonType(..), mkButton)
5−import Yoga.CSS.Safer (cssSafer)
6−import Yoga.Card.Component (mkCard)
7import Data.Array (intercalate)
4import Data.Array (intercalate)
8import Data.Either (Either(..))
5import Data.Either (Either(..))
9import Data.Foldable (for_)
6import Data.Foldable (for_)
10import Data.Interpolate (i)
7import Data.Interpolate (i)
11import Data.Maybe (Maybe(..))
8import Data.Maybe (Maybe(..))
12import Data.Tuple.Nested ((/\))
9import Data.Tuple.Nested ((/\))
13−import Yoga.Editor (getValue, mkEditor, setValue)
14import Effect (Effect)
10import Effect (Effect)
15import Effect.Aff (Aff, attempt, error, launchAff_, message, throwError)
11import Effect.Aff (Aff, attempt, error, launchAff_, message, throwError)
16import Effect.Class (liftEffect)
12import Effect.Class (liftEffect)
13+import JSS (jss, jssClasses)
17import Milkis as M
14import Milkis as M
18import Milkis.Impl (FetchImpl)
15import Milkis.Impl (FetchImpl)
19import React.Basic (ReactComponent)
16import React.Basic (ReactComponent)
@@ -24,11 +21,14 @@ import React.Basic.Hooks as React
24import Shared.Json (readAff)
21import Shared.Json (readAff)
25import Shared.Models.Body as Body
22import Shared.Models.Body as Body
26import Simple.JSON (writeJSON)
23import Simple.JSON (writeJSON)
27−import Yoga.Theme.Styles (makeStyles)
24+import Yoga.Button.Component (ButtonType(..), mkButton)
25+import Yoga.Card.Component (mkCard)
26+import Yoga.Editor (getValue, mkEditor, setValue)
27+import Yoga.Theme.Styles (makeStylesJSS)
28import Yoga.Theme.Types (CSSTheme)
28import Yoga.Theme.Types (CSSTheme)
29
29
30type Props
30type Props
31− = { initialCode :: String, height :: String, language :: String }
31+ = { initialCode ∷ String, height ∷ String, language ∷ String }
32
32
33mkCompileEditor ∷ FetchImpl -> Effect (ReactComponent Props)
33mkCompileEditor ∷ FetchImpl -> Effect (ReactComponent Props)
34mkCompileEditor fetch = do
34mkCompileEditor fetch = do
@@ -36,43 +36,42 @@ mkCompileEditor fetch = do
36 card <- mkCard
36 card <- mkCard
37 button <- mkButton
37 button <- mkButton
38 useStyles <-
38 useStyles <-
39− makeStyles \(theme :: CSSTheme) ->
39+ makeStylesJSS
40− { editor:
40+ $ jssClasses \(theme ∷ CSSTheme) ->
41− cssSafer
41+ { editor:
42− { background: theme.backgroundColour
42+ jss
43− , height: "80%"
43+ { background: theme.backgroundColour
44− , padding: "20px"
44+ , boxSizing: "content-box"
45− , marginTop: "0px"
45+ , height: "80%"
46− , marginLeft: "35px"
46+ , padding: "20px"
47− , marginRight: "35px"
47+ , marginTop: "0px"
48− , marginBottom: "35px"
48+ , borderRadius: "12px"
49− , borderRadius: "12px"
49+ , boxShadow: i "22px 22px 24px " theme.backgroundColourDarker ", -22px -22px 24px " theme.backgroundColourLighter ∷ String
50− , boxShadow: i "22px 22px 24px " theme.backgroundColourDarker ", -22px -22px 24px " theme.backgroundColourLighter :: String
50+ , display: "flex"
51− , display: "flex"
51+ , flexDirection: "column"
52− , flexDirection: "column"
52+ }
53− }
53+ , buttons:
54− , buttons:
54+ jss
55− cssSafer
55+ { marginBottom: "4px"
56− { marginBottom: "4px"
56+ , display: "flex"
57− , display: "flex"
57+ , alignSelf: "flex-end"
58− , alignSelf: "flex-end"
58+ }
59− }
59+ , compileButton: jss {}
60− , compileButton: cssSafer {}
60+ , resetButton: jss {}
61− , resetButton: cssSafer {}
61+ , card:
62− , card:
62+ jss
63− cssSafer
63+ { marginLeft: "35px"
64− { marginLeft: "35px"
64+ , marginRight: "35px"
65− , marginRight: "35px"
65+ , opacity: 0
66− , opacity: 0
66+ , zIndex: 0
67− , zIndex: 0
67+ }
68+ , cardHidden: jss { opacity: 0 }
69+ , compileError: jss { color: theme.red, opacity: 1, transition: "opacity 2.0s ease" }
70+ , runOutput: jss { color: theme.green, opacity: 1, transition: "opacity 2.0s ease" }
68 }
71 }
69− , cardHidden: cssSafer { opacity: 0 }
70− , compileError: cssSafer { color: theme.red, opacity: 1, transition: "opacity 2.0s ease" }
71− , runOutput: cssSafer { color: theme.green, opacity: 1, transition: "opacity 2.0s ease" }
72− }
73 component "CompileEditor" \{ initialCode, height, language } -> React.do
72 component "CompileEditor" \{ initialCode, height, language } -> React.do
74 maybeEditor /\ modifyEditor <- useState Nothing
73 maybeEditor /\ modifyEditor <- useState Nothing
75− classes <- useStyles
74+ classes <- useStyles {}
76 let
75 let
77 onLoad e = do
76 onLoad e = do
78 setValue initialCode e
77 setValue initialCode e
@@ -137,7 +136,7 @@ mkCompileEditor fetch = do
137 }
136 }
138 ]
137 ]
139
138
140−compileAndRun :: M.Fetch -> Body.CompileRequest -> Aff (Either Body.CompileResult Body.RunResult)
139+compileAndRun ∷ M.Fetch -> Body.CompileRequest -> Aff (Either Body.CompileResult Body.RunResult)
141compileAndRun fetch body = do
140compileAndRun fetch body = do
142 response <-
141 response <-
143 attempt
142 attempt
components/src/Yoga/Cover/Component.pursnew file+52
@@ -0,0 +1,52 @@
1+module Yoga.Cover.Component where
2+
3+import Prelude
4+import Data.Array (foldMap)
5+import Data.Maybe (Maybe)
6+import Effect (Effect)
7+import Yoga.Cover.Styles as Cover
8+import Prim.Row (class Nub, class Union)
9+import React.Basic (JSX)
10+import React.Basic.DOM as R
11+import React.Basic.Hooks (ReactComponent, component)
12+import React.Basic.Hooks as React
13+import Record (disjointUnion)
14+import Yoga.Theme.Styles (makeStylesJSS)
15+
16+type Props
17+ = Record PropsR
18+
19+type PropsR
20+ = OptionalProps ()
21+
22+type OptionalProps r
23+ = ( header ∷ JSX
24+ , footer ∷ JSX
25+ , principal ∷ JSX
26+ , className ∷ Maybe String
27+ | r
28+ )
29+
30+withDefaults ∷
31+ ∀ r missing props.
32+ Union r missing props =>
33+ Nub props props =>
34+ Monoid { | missing } =>
35+ { | r } ->
36+ { | props }
37+withDefaults x = disjointUnion x mempty
38+
39+makeComponent ∷ Effect (ReactComponent Props)
40+makeComponent = do
41+ useStyles <- makeStylesJSS Cover.styles
42+ component "Cover" \{ header, footer, principal, className } -> React.do
43+ classes <- useStyles {}
44+ pure
45+ $ R.div
46+ { className: classes.cover <> foldMap (" " <> _) className
47+ , children:
48+ [ R.div { className: classes.header, children: pure header }
49+ , R.div { className: classes.principal, children: pure principal }
50+ , R.div { className: classes.footer, children: pure footer }
51+ ]
52+ }
components/src/Yoga/Panel/Spec.purs → components/src/Yoga/Cover/Spec.pursrenamed+5−5
@@ -1,14 +1,14 @@
1−module Panel.Spec where
1+module Yoga.Cover.Spec where
2
2
3import Prelude
3import Prelude
4−import Yoga.Panel.Component as Panel
4+import Yoga.Cover.Component as Cover
5import React.TestingLibrary (describeComponent, renderComponent)
5import React.TestingLibrary (describeComponent, renderComponent)
6import Test.Spec (Spec, it)
6import Test.Spec (Spec, it)
7
7
8spec :: Spec Unit
8spec :: Spec Unit
9spec =
9spec =
10− describeComponent Panel.makeComponent
10+ describeComponent Cover.makeComponent
11− "The Panel Component" do
11+ "The Cover Component" do
12 it "renders without problems" \panel -> do
12 it "renders without problems" \panel -> do
13− _ <- renderComponent panel (Panel.withDefaults {})
13+ _ <- renderComponent panel (Cover.withDefaults {})
14 pure unit
14 pure unit
components/src/Yoga/Cover/Stories.pursnew file+30
@@ -0,0 +1,30 @@
1+module Yoga.Cover.Stories where
2+
3+import Prelude hiding (add)
4+import Storybook.Decorator.FullScreen (fullScreenDecorator)
5+import Effect (Effect)
6+import Yoga.Cover.Component as Cover
7+import React.Basic.DOM as R
8+import Storybook.React (Storybook, add, addDecorator, storiesOf)
9+
10+stories ∷ Effect Storybook
11+stories = do
12+ storiesOf "Cover" do
13+ addDecorator fullScreenDecorator
14+ add "The Cover" Cover.makeComponent
15+ [ Cover.withDefaults
16+ { principal: R.h1_ [ R.text "Main thing" ]
17+ , header: R.text "Header"
18+ , footer: R.text "Footer"
19+ }
20+ , Cover.withDefaults
21+ { principal: R.h1_ [ R.text "Only main" ]
22+ }
23+ , Cover.withDefaults
24+ { header: R.h1_ [ R.text "Only header" ]
25+ }
26+ , Cover.withDefaults
27+ { header: R.h1_ [ R.text "Header" ]
28+ , footer: R.h1_ [ R.text "Footer" ]
29+ }
30+ ]
components/src/Yoga/Cover/Styles.pursnew file+43
@@ -0,0 +1,43 @@
1+module Yoga.Cover.Styles where
2+
3+import JSS (JSSClasses, JSSElem, jss, jssClasses)
4+import Yoga.Theme.Types (YogaTheme)
5+
6+type PropsR
7+ = ()
8+
9+type Props
10+ = Record PropsR
11+
12+styles ∷
13+ JSSClasses YogaTheme Props
14+ ( cover ∷ JSSElem Props
15+ , footer ∷ JSSElem Props
16+ , header ∷ JSSElem Props
17+ , principal ∷ JSSElem Props
18+ )
19+styles =
20+ jssClasses \theme ->
21+ { cover:
22+ jss
23+ { padding: "1rem"
24+ , minHeight: "100vh"
25+ , display: "flex"
26+ , flexDirection: "column"
27+ }
28+ , header:
29+ jss
30+ { marginTop: 0
31+ , marginBottom: "1rem"
32+ }
33+ , principal:
34+ jss
35+ { marginTop: "auto"
36+ , marginBottom: "auto"
37+ }
38+ , footer:
39+ jss
40+ { marginTop: "1rem"
41+ , marginBottom: 0
42+ }
43+ }
components/src/Yoga/Font.purs+5−11
@@ -1,16 +1,10 @@
1module Yoga.Font where
1module Yoga.Font where
2
2
3−import React.Basic.DOM (CSS)
3+foreign import data Font ∷ Type
4−import Unsafe.Coerce (unsafeCoerce)
5−
6−foreign import data Font :: Type
7
4
8type FontFamily
5type FontFamily
9− = { fontFamily :: String
6+ = { fontFamily ∷ String
10− , fontStyle :: String
7+ , fontStyle ∷ String
11− , fontWeight :: String
8+ , fontWeight ∷ String
12− , src :: String
9+ , src ∷ String
13 }
10 }
14−
15−arrayToCss :: Array FontFamily -> CSS
16−arrayToCss = unsafeCoerce
components/src/Yoga/Header/Component.purs+30−31
@@ -1,57 +1,56 @@
1module Yoga.Header.Component where
1module Yoga.Header.Component where
2
2
3import Prelude
3import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5import Data.Interpolate (i)
4import Data.Interpolate (i)
6import Effect (Effect)
5import Effect (Effect)
6+import JSS (jss, jssClasses)
7import React.Basic (JSX)
7import React.Basic (JSX)
8import React.Basic.DOM as R
8import React.Basic.DOM as R
9import React.Basic.Hooks (ReactComponent, component, element)
9import React.Basic.Hooks (ReactComponent, component, element)
10import React.Basic.Hooks as React
10import React.Basic.Hooks as React
11import Yoga.SVG.Icon (trianglelogoIcon)
11import Yoga.SVG.Icon (trianglelogoIcon)
12−import Yoga.Theme.Styles (classNames, makeStyles)
12+import Yoga.Theme.Styles (makeStylesJSS)
13import Yoga.Theme.Types (CSSTheme)
13import Yoga.Theme.Types (CSSTheme)
14
14
15mkHeader ∷
15mkHeader ∷
16 Effect
16 Effect
17 ( ReactComponent
17 ( ReactComponent
18− { kids :: Array JSX
18+ { kids ∷ Array JSX
19− , className :: String
19+ , className ∷ String
20 }
20 }
21 )
21 )
22mkHeader = do
22mkHeader = do
23 useStyles <-
23 useStyles <-
24− makeStyles \(theme ∷ CSSTheme) ->
24+ makeStylesJSS
25− { card:
25+ $ jssClasses \(theme ∷ CSSTheme) ->
26− cssSafer
26+ { card:
27− { background: theme.backgroundColour
27+ jss
28− , borderBottom: "1px solid " <> theme.backgroundColourLightest
28+ { background: theme.backgroundColour
29− , borderRight: "1px solid " <> theme.backgroundColourLightest
29+ , borderBottom: "1px solid " <> theme.backgroundColourLightest
30− , borderLeft: "1px solid " <> theme.backgroundColourLightest
30+ , borderRight: "1px solid " <> theme.backgroundColourLightest
31− , color: theme.textColour
31+ , borderLeft: "1px solid " <> theme.backgroundColourLightest
32− , fontFamily: theme.textFontFamily
32+ , color: theme.textColour
33− , fontSize: "2em"
33+ , fontFamily: theme.textFontFamily
34− , padding: "20px"
34+ , fontSize: "2em"
35− , display: "flex"
35+ , padding: "20px"
36− , flex: "0 0 100%"
36+ , display: "flex"
37− , boxShadow:
37+ , flex: "0 0 100%"
38− (i "30px 30px 60px " theme.backgroundColourDarker ", -30px -30px 60px " theme.backgroundColourLighter ";") :: String
38+ , boxShadow:
39+ (i "30px 30px 60px " theme.backgroundColourDarker ", -30px -30px 60px " theme.backgroundColourLighter ";") ∷ String
40+ }
41+ , logo:
42+ jss
43+ { fill: theme.textColour
44+ , marginRight: "10px"
45+ , marginBottom: "5px"
46+ }
39 }
47 }
40− , logo:
41− cssSafer
42− { fill: theme.textColour
43− , marginRight: "10px"
44− , marginBottom: "5px"
45− }
46− }
47 component "Header" \{ kids, className } -> React.do
48 component "Header" \{ kids, className } -> React.do
48− rawClasses <- useStyles
49+ classNames <- useStyles {}
49− let
50− classes = flip classNames rawClasses
51 pure
50 pure
52 $ R.div
51 $ R.div
53− { className: classes [ _.card ] <> " " <> className
52+ { className: classNames.card <> " " <> className
54 , children:
53 , children:
55− [ element trianglelogoIcon { width: 36, className: rawClasses.logo } ]
54+ [ element trianglelogoIcon { width: 36, className: classNames.logo } ]
56 <> kids
55 <> kids
57 }
56 }
components/src/Yoga/Header/Stories.purs+1
@@ -7,6 +7,7 @@ import Yoga.Header.Component (mkHeader)
7import React.Basic.DOM as R
7import React.Basic.DOM as R
8import Storybook.React (Storybook, add, addDecorator, storiesOf)
8import Storybook.React (Storybook, add, addDecorator, storiesOf)
9
9
10+-- What's about
10stories ∷ Effect Storybook
11stories ∷ Effect Storybook
11stories = do
12stories = do
12 storiesOf "Header" do
13 storiesOf "Header" do
components/src/Yoga/JSS.pursnew file+112
@@ -0,0 +1,112 @@
1+module JSS where
2+
3+import Prelude
4+import Data.Symbol (class IsSymbol, SProxy(..), reflectSymbol)
5+import Foreign (unsafeToForeign)
6+import Foreign.Object (Object)
7+import Foreign.Object as Object
8+import Prim.RowList (class RowToList, Nil, kind RowList)
9+import Record as Record
10+import Record.Builder (Builder)
11+import Record.Builder as Builder
12+import Simple.JSON (class WriteForeign, write, writeImpl)
13+import Type.Prelude (RLProxy, Proxy(..))
14+import Type.Row as R
15+import Type.Row.Homogeneous (class Homogeneous)
16+import Type.RowList as RL
17+import Untagged.Coercible (coerce)
18+import Untagged.Union (type (|+|))
19+
20+newtype JSSClasses theme props r
21+ = JSSClasses ({ | theme } -> { | r })
22+
23+jssClasses ∷
24+ ∀ theme props r.
25+ (Homogeneous r (JSSElem props)) =>
26+ ({ | theme } -> { | r }) -> JSSClasses theme props r
27+jssClasses = JSSClasses
28+
29+data JSSElem props
30+ = PrimitiveJss (String |+| Int |+| Number)
31+ | ArrayJss (Array (JSSElem props))
32+ | PropsJss (props -> JSSElem props)
33+ | NestedJss (Object (JSSElem props))
34+
35+instance semigroupJssElem ∷ Semigroup (JSSElem props) where
36+ append = case _, _ of
37+ NestedJss n1, NestedJss n2 -> NestedJss (n1 <> n2)
38+ _, second -> second
39+
40+instance wfJSSElem ∷ WriteForeign (JSSElem props) where
41+ writeImpl = case _ of
42+ PrimitiveJss p -> unsafeToForeign p
43+ ArrayJss proper -> write (map writeImpl proper)
44+ PropsJss proper -> unsafeToForeign (map writeImpl proper)
45+ NestedJss proper -> writeImpl (map writeImpl proper)
46+
47+class JSSAble p a | a -> p where
48+ jss ∷ a -> JSSElem p
49+
50+instance jssAbleJssElem ∷ JSSAble p (JSSElem p) where
51+ jss = identity
52+
53+instance jssAbleString ∷ JSSAble p String where
54+ jss = coerce >>> PrimitiveJss
55+
56+instance jssAbleInt ∷ JSSAble p Int where
57+ jss = coerce >>> PrimitiveJss
58+
59+instance jssAbleNumber ∷ JSSAble p Number where
60+ jss = coerce >>> PrimitiveJss
61+
62+instance jssAbleArray ∷ JSSAble p a => JSSAble p (Array a) where
63+ jss arr = ArrayJss (jss <$> arr)
64+
65+instance jssAbleWithProps ∷ JSSAble p jss => JSSAble p (p -> jss) where
66+ jss = propsJss
67+
68+instance jssAbleNested ∷ JSSAble p jss => JSSAble p (Object jss) where
69+ jss = map jss >>> NestedJss
70+
71+instance jssAbleRecord ∷
72+ ( JSSAbleFields props rowRL row () to
73+ , RowToList row rowRL
74+ , Homogeneous to (JSSElem props)
75+ ) =>
76+ JSSAble props (Record row) where
77+ jss rec = NestedJss <<< Object.fromHomogeneous $ built
78+ where
79+ built ∷ Record to
80+ built = Builder.build builder {}
81+ rlp = RL.RLProxy ∷ RL.RLProxy rowRL
82+ propsy = Proxy ∷ Proxy props
83+ builder ∷ Builder.Builder (Record ()) (Record to)
84+ builder = jssifyFields propsy rlp rec
85+
86+propsJss ∷ ∀ p a. JSSAble p a => (p -> a) -> JSSElem p
87+propsJss fn = PropsJss (map jss fn)
88+
89+class JSSAbleFields props (xs ∷ RowList) (row ∷ #Type) (from ∷ #Type) (to ∷ #Type) | xs -> props row from to where
90+ jssifyFields ∷ Proxy props -> RLProxy xs -> Record row -> Builder (Record from) (Record to)
91+
92+instance jssAbleFieldsNil ∷ JSSAbleFields props Nil row () () where
93+ jssifyFields _ _ _ = identity
94+
95+instance jssAbleFieldsCons ∷
96+ ( IsSymbol name
97+ , JSSAble props a
98+ , R.Lacks name from'
99+ , R.Cons name a trash row
100+ , R.Cons name (JSSElem props) from' to
101+ , JSSAbleFields props tail row from from'
102+ ) =>
103+ JSSAbleFields props (RL.Cons name a tail) row from to where
104+ jssifyFields _ _ r = first <<< rest
105+ where
106+ first = Builder.insert nameP (jss val)
107+ val = Record.get nameP r
108+ rest = jssifyFields propsP tailP r
109+ nameP = SProxy ∷ SProxy name
110+ tailP = RL.RLProxy ∷ RL.RLProxy tail
111+ propsP = Proxy ∷ Proxy props
112+ name = reflectSymbol nameP
components/src/Yoga/Monaco/Editor.purs+16−14
@@ -1,7 +1,6 @@
1module Yoga.Editor where
1module Yoga.Editor where
2
2
3import Prelude
3import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5import Control.Promise (Promise)
4import Control.Promise (Promise)
6import Control.Promise as Promise
5import Control.Promise as Promise
7import Data.Maybe (Maybe(..), maybe)
6import Data.Maybe (Maybe(..), maybe)
@@ -13,16 +12,17 @@ import Effect.Aff.Compat (EffectFn1)
13import Effect.Class (liftEffect)
12import Effect.Class (liftEffect)
14import Effect.Uncurried (EffectFn2, mkEffectFn1, mkEffectFn2)
13import Effect.Uncurried (EffectFn2, mkEffectFn1, mkEffectFn2)
15import Foreign (Foreign, unsafeToForeign)
14import Foreign (Foreign, unsafeToForeign)
15+import JSS (jss, jssClasses)
16import Prim.Row (class Union)
16import Prim.Row (class Union)
17import React.Basic (JSX, ReactComponent, Ref, element, fragment)
17import React.Basic (JSX, ReactComponent, Ref, element, fragment)
18import React.Basic.DOM as R
18import React.Basic.DOM as R
19import React.Basic.Hooks (component, useState)
19import React.Basic.Hooks (component, useState)
20import React.Basic.Hooks as React
20import React.Basic.Hooks as React
21import React.Basic.Hooks.Aff (useAff)
21import React.Basic.Hooks.Aff (useAff)
22−import Yoga.Theme.Styles (makeStyles, useTheme)
23−import Yoga.Theme.Types (CSSTheme)
24import Web.DOM (Node)
22import Web.DOM (Node)
25import Web.HTML (HTMLElement)
23import Web.HTML (HTMLElement)
24+import Yoga.Theme.Styles (makeStylesJSS, useTheme)
25+import Yoga.Theme.Types (CSSTheme)
26
26
27type EditorProps
27type EditorProps
28 = ( value ∷ String
28 = ( value ∷ String
@@ -96,18 +96,20 @@ type Props
96mkEditor ∷ Effect (ReactComponent Props)
96mkEditor ∷ Effect (ReactComponent Props)
97mkEditor = do
97mkEditor = do
98 useStyles <-
98 useStyles <-
99− makeStyles \(theme ∷ CSSTheme) ->
99+ makeStylesJSS
100− { wrapper:
100+ $ jssClasses \(theme ∷ CSSTheme) ->
101− cssSafer
101+ ( { wrapper:
102− { margin: "0"
102+ jss
103− , boxSizing: "border-box"
103+ { margin: "0"
104− , width: "100%"
104+ , boxSizing: "border-box"
105− , overflowY: "hidden"
105+ , width: "100%"
106− , backgroundColor: theme.backgroundColour
106+ , overflowY: "hidden"
107− }
107+ , backgroundColor: theme.backgroundColour
108− }
108+ }
109+ }
110+ )
109 component "Editor" \{ onLoad, height, language } -> React.do
111 component "Editor" \{ onLoad, height, language } -> React.do
110− classes <- useStyles
112+ classes <- useStyles {}
111 maybeEditor /\ modifyEditor <- useState Nothing
113 maybeEditor /\ modifyEditor <- useState Nothing
112 useAff unit do
114 useAff unit do
113 eddy <- monacoEditor
115 eddy <- monacoEditor
components/src/Yoga/Panel/Styles.pursdeleted−28
@@ -1,28 +0,0 @@
1−module Yoga.Panel.Styles where
2−
3−import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5−import Data.Interpolate (i)
6−import React.Basic.DOM (CSS)
7−import Yoga.Theme.Types (CSSTheme)
8−
9−styles ::
10− CSSTheme ->
11− { panel :: CSS
12− }
13−styles theme =
14− { panel:
15− cssSafer
16− { background: theme.backgroundColour
17− , borderRight: "1px solid " <> theme.backgroundColourLightest
18− , color: theme.textColour
19− , fontFamily: theme.textFontFamily
20− , fontSize: "1em"
21− , padding: "20px"
22− , display: "flex"
23− , flexDirection: "column"
24− , height: "100%"
25− , boxShadow:
26− (i "30px 30px 60px " theme.backgroundColourDarker ", -30px -30px 60px " theme.backgroundColourLighter ";") :: String
27− }
28− }
components/src/Yoga/SVG/Icon.purs+23−23
@@ -1,16 +1,16 @@
1module Yoga.SVG.Icon where
1module Yoga.SVG.Icon where
2
2
3import Prelude
3import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5import Data.Monoid (guard)
4import Data.Monoid (guard)
6import Effect (Effect)
5import Effect (Effect)
6+import JSS (jss, jssClasses)
7import Prim.Row (class Union)
7import Prim.Row (class Union)
8import React.Basic.DOM.SVG as SVG
8import React.Basic.DOM.SVG as SVG
9import React.Basic.Hooks (ReactComponent, component)
9import React.Basic.Hooks (ReactComponent, component)
10import React.Basic.Hooks as React
10import React.Basic.Hooks as React
11−import Yoga.Theme.Styles (makeStyles)
12−import Yoga.Theme.Types (CSSTheme)
13import Unsafe.Coerce (unsafeCoerce)
11import Unsafe.Coerce (unsafeCoerce)
12+import Yoga.Theme.Styles (makeStylesJSS)
13+import Yoga.Theme.Types (CSSTheme)
14
14
15type ImageProps
15type ImageProps
16 = ( width ∷ Int, height ∷ Int, className ∷ String )
16 = ( width ∷ Int, height ∷ Int, className ∷ String )
@@ -93,31 +93,31 @@ data ActiveArrowDirection
93 | ArrowPointsLeft
93 | ArrowPointsLeft
94
94
95derive instance eqActiveArrowDirection ∷ Eq ActiveArrowDirection
95derive instance eqActiveArrowDirection ∷ Eq ActiveArrowDirection
96−
97mkMenu ∷ Effect (ReactComponent { activeArrowDirection ∷ ActiveArrowDirection })
96mkMenu ∷ Effect (ReactComponent { activeArrowDirection ∷ ActiveArrowDirection })
98mkMenu = do
97mkMenu = do
99 useStyles <-
98 useStyles <-
100− makeStyles \(theme ∷ CSSTheme) ->
99+ makeStylesJSS
101− { arrow:
100+ $ jssClasses \(theme ∷ CSSTheme) ->
102− cssSafer
101+ { arrow:
103− { fill: theme.textColour
102+ jss
104− , transition: "0.3s ease-out"
103+ { fill: theme.textColour
105− }
104+ , transition: "0.3s ease-out"
106− , arrowInactive:
105+ }
107− cssSafer
106+ , arrowInactive:
108− { fillOpacity: ".1"
107+ jss
109− }
108+ { fillOpacity: ".1"
110− , svg:
109+ }
111− cssSafer
110+ , svg:
112− { width: "100%"
111+ jss
113− , height: "100%"
112+ { width: "100%"
114− , "&:hover":
113+ , height: "100%"
115− { fill: theme.backgroundColour
114+ , "&:hover":
116− }
115+ { fill: theme.backgroundColour
116+ }
117+ }
117 }
118 }
118− }
119 component "MenuIcon" \{ activeArrowDirection } -> React.do
119 component "MenuIcon" \{ activeArrowDirection } -> React.do
120− classes <- useStyles
120+ classes <- useStyles {}
121 pure
121 pure
122 $ SVG.svg
122 $ SVG.svg
123 { xmlns: "http://www.w3.org/2000/svg"
123 { xmlns: "http://www.w3.org/2000/svg"
components/src/Yoga/SVG/Image.purs+105−113
@@ -1,8 +1,6 @@
1module Yoga.SVG.Image where
1module Yoga.SVG.Image where
2
2
3import Prelude
3import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5−import Yoga.DOM.Hook (useBoundingBox)
6import Data.Array (elem, foldl, head, intercalate, snoc, uncons, zip, (:))
4import Data.Array (elem, foldl, head, intercalate, snoc, uncons, zip, (:))
7import Data.Int (round, toNumber)
5import Data.Int (round, toNumber)
8import Data.Maybe (Maybe(..), maybe)
6import Data.Maybe (Maybe(..), maybe)
@@ -10,6 +8,7 @@ import Data.String (codePointFromChar)
10import Data.String as String
8import Data.String as String
11import Data.Tuple.Nested ((/\))
9import Data.Tuple.Nested ((/\))
12import Effect (Effect)
10import Effect (Effect)
11+import JSS (jss, jssClasses)
13import Random.PseudoRandom (mkSeed, randomRs)
12import Random.PseudoRandom (mkSeed, randomRs)
14import React.Basic (JSX, element)
13import React.Basic (JSX, element)
15import React.Basic.DOM (unsafeCreateDOMComponent)
14import React.Basic.DOM (unsafeCreateDOMComponent)
@@ -17,9 +16,10 @@ import React.Basic.DOM as HTML
17import React.Basic.DOM.SVG as SVG
16import React.Basic.DOM.SVG as SVG
18import React.Basic.Hooks (ReactComponent)
17import React.Basic.Hooks (ReactComponent)
19import React.Basic.Hooks as React
18import React.Basic.Hooks as React
19+import Yoga.DOM.Hook (useBoundingBox)
20import Yoga.SVG.Icon (Raw)
20import Yoga.SVG.Icon (Raw)
21import Yoga.Scroll.Hook (useScrollYPosition)
21import Yoga.Scroll.Hook (useScrollYPosition)
22−import Yoga.Theme.Styles (makeStyles, useTheme)
22+import Yoga.Theme.Styles (makeStylesJSS, useTheme)
23import Yoga.Theme.Types (CSSTheme)
23import Yoga.Theme.Types (CSSTheme)
24
24
25foreign import landingPageDarkRaw ∷ ∀ r. Raw r
25foreign import landingPageDarkRaw ∷ ∀ r. Raw r
@@ -29,110 +29,111 @@ foreign import landingPageLightRaw ∷ ∀ r. Raw r
29mkLandingPageBackground ∷ Effect (ReactComponent { className ∷ String })
29mkLandingPageBackground ∷ Effect (ReactComponent { className ∷ String })
30mkLandingPageBackground = do
30mkLandingPageBackground = do
31 useStyles <-
31 useStyles <-
32− makeStyles \(theme ∷ CSSTheme) ->
32+ makeStylesJSS
33− { laptopBackground:
33+ $ jssClasses \(theme ∷ CSSTheme) ->
34− cssSafer
34+ { laptopBackground:
35− { fill: theme.backgroundColour
35+ jss
36− }
36+ { fill: theme.backgroundColour
37− , lightEllipsis:
37+ }
38− cssSafer
38+ , lightEllipsis:
39− { cx: if theme.isLight then "721" else "175"
39+ jss
40− , cy: if theme.isLight then "355" else "310"
40+ { cx: if theme.isLight then "721" else "175"
41− , rx: if theme.isLight then "647" else "330"
41+ , cy: if theme.isLight then "355" else "310"
42− , ry: if theme.isLight then "310" else "252"
42+ , rx: if theme.isLight then "647" else "330"
43− }
43+ , ry: if theme.isLight then "310" else "252"
44− , laptopBody:
44+ }
45− cssSafer
45+ , laptopBody:
46− { fill: if theme.isLight then "url(#_Linear9)" else "url(#_Linear12)"
46+ jss
47− }
47+ { fill: if theme.isLight then "url(#_Linear9)" else "url(#_Linear12)"
48− , screenText:
48+ }
49− cssSafer
49+ , screenText:
50− { fontFamily: "PragmataPro"
50+ jss
51− , fontSize: "0.85em"
51+ { fontFamily: "PragmataPro"
52− , fill: theme.textColour
52+ , fontSize: "0.85em"
53− }
53+ , fill: theme.textColour
54− , keyword: cssSafer { fill: theme.green }
54+ }
55− , typeName: cssSafer { fill: theme.pink }
55+ , keyword: jss { fill: theme.green }
56− , "@keyframes animatedCursor":
56+ , typeName: jss { fill: theme.pink }
57− cssSafer
57+ , "@keyframes animatedCursor":
58− { "0%": { opacity: "0.0" }
58+ jss
59− , "50%": { opacity: "1.0" }
59+ { "0%": { opacity: "0.0" }
60− }
60+ , "50%": { opacity: "1.0" }
61− , cursor:
61+ }
62− cssSafer
62+ , cursor:
63− { animation: "$animatedCursor 0.5s linear infinite"
63+ jss
64− , animationDirection: "alternate"
64+ { animation: "$animatedCursor 0.5s linear infinite"
65− }
65+ , animationDirection: "alternate"
66− , "@keyframes movingCloud1":
66+ }
67− cssSafer
67+ , "@keyframes movingCloud1":
68− { "0%": { transform: "translate3d(-140%, 4%, 0)" }
68+ jss
69− , "100%": { transform: "translate3d(70%, -4%, 0)" }
69+ { "0%": { transform: "translate3d(-140%, 4%, 0)" }
70− }
70+ , "100%": { transform: "translate3d(70%, -4%, 0)" }
71− , movingCloud1:
71+ }
72− cssSafer
72+ , movingCloud1:
73− { animation: "$movingCloud1 200s linear infinite"
73+ jss
74− , animationDelay: "-150s"
74+ { animation: "$movingCloud1 200s linear infinite"
75− }
75+ , animationDelay: "-150s"
76− , "@keyframes movingCloud2":
76+ }
77− cssSafer
77+ , "@keyframes movingCloud2":
78− { "0%": { transform: "translate3d(-10%, 0%, 0)" }
78+ jss
79− , "100%": { transform: "translate3d(10%, 0%, 0)" }
79+ { "0%": { transform: "translate3d(-10%, 0%, 0)" }
80− }
80+ , "100%": { transform: "translate3d(10%, 0%, 0)" }
81− , movingCloud2:
81+ }
82− cssSafer
82+ , movingCloud2:
83− { animation: "$movingCloud2 120s linear infinite"
83+ jss
84− , animationDirection: "alternate"
84+ { animation: "$movingCloud2 120s linear infinite"
85− }
85+ , animationDirection: "alternate"
86− , movingCloud3:
86+ }
87− cssSafer
87+ , movingCloud3:
88− { animation: "$movingCloud2 120s linear infinite"
88+ jss
89− , animationDelay: "-120s"
89+ { animation: "$movingCloud2 120s linear infinite"
90− , animationDirection: "alternate"
90+ , animationDelay: "-120s"
91− }
91+ , animationDirection: "alternate"
92− , "@keyframes twinkle":
92+ }
93− cssSafer
93+ , "@keyframes twinkle":
94− { "0%": { fill: "rgba(250, 250, 250, 0.2)" }
94+ jss
95− , "50%": { fill: "rgba(250, 250, 250, 0.7)" }
95+ { "0%": { fill: "rgba(250, 250, 250, 0.2)" }
96− , "70%": { fill: "rgba(250, 250, 250, 0.4)" }
96+ , "50%": { fill: "rgba(250, 250, 250, 0.7)" }
97− , "100%": { fill: "rgba(250, 250, 250, 1.0)" }
97+ , "70%": { fill: "rgba(250, 250, 250, 0.4)" }
98− }
98+ , "100%": { fill: "rgba(250, 250, 250, 1.0)" }
99− , "@keyframes twinkleFast":
99+ }
100− cssSafer
100+ , "@keyframes twinkleFast":
101− { "0%": { fill: "rgba(250, 250, 250, 0.7)" }
101+ jss
102− , "100%": { fill: "rgba(250, 250, 250, 0.78)" }
102+ { "0%": { fill: "rgba(250, 250, 250, 0.7)" }
103− }
103+ , "100%": { fill: "rgba(250, 250, 250, 0.78)" }
104− , twinklingStar1:
104+ }
105− cssSafer
105+ , twinklingStar1:
106− { animation: "$twinkleFast 0.2s ease-in-out infinite"
106+ jss
107− , animationDirection: "alternate"
107+ { animation: "$twinkleFast 0.2s ease-in-out infinite"
108− }
108+ , animationDirection: "alternate"
109− , twinklingStar2:
109+ }
110− cssSafer
110+ , twinklingStar2:
111− { animation: "$twinkle 8s ease-in-out infinite"
111+ jss
112− , animationDelay: "4s"
112+ { animation: "$twinkle 8s ease-in-out infinite"
113− , animationDirection: "alternate"
113+ , animationDelay: "4s"
114− }
114+ , animationDirection: "alternate"
115− , twinklingStar3:
115+ }
116− cssSafer
116+ , twinklingStar3:
117− { animation: "$twinkle 4s ease-in-out infinite"
117+ jss
118− , animationDelay: "3s"
118+ { animation: "$twinkle 4s ease-in-out infinite"
119− , animationDirection: "alternate"
119+ , animationDelay: "3s"
120− }
120+ , animationDirection: "alternate"
121− , "@keyframes rotateStars":
121+ }
122− cssSafer
122+ , "@keyframes rotateStars":
123− { "0%": { transform: "rotate(0deg) scale(1,1)" }
123+ jss
124− , "100%": { transform: "rotate(1deg) scale(1.01, 1.01)" }
124+ { "0%": { transform: "rotate(0deg) scale(1,1)" }
125− }
125+ , "100%": { transform: "rotate(1deg) scale(1.01, 1.01)" }
126− , stars:
126+ }
127− cssSafer
127+ , stars:
128− { animation: "$rotateStars 30s linear infinite"
128+ jss
129− , transformOrigin: "top center"
129+ { animation: "$rotateStars 30s linear infinite"
130− , animationDirection: "alternate"
130+ , transformOrigin: "top center"
131+ , animationDirection: "alternate"
132+ }
131 }
133 }
132− }
133 React.component "LandingPageBackground" \{ className } -> React.do
134 React.component "LandingPageBackground" \{ className } -> React.do
134 theme <- useTheme
135 theme <- useTheme
135− classes <- useStyles
136+ classes <- useStyles {}
136 scrollY <- useScrollYPosition
137 scrollY <- useScrollYPosition
137 bb /\ ref <- useBoundingBox
138 bb /\ ref <- useBoundingBox
138 let
139 let
@@ -426,14 +427,12 @@ textToTspans classes scrolled x str = (foldl toTspan { distance: 0.0, acc: [] }
426 pimped ∷ Array JSX
427 pimped ∷ Array JSX
427 pimped = first : newElems
428 pimped = first : newElems
428 { distance: 1.2, acc: acc <> pimped }
429 { distance: 1.2, acc: acc <> pimped }
429−
430 classNameForWord = case _ of
430 classNameForWord = case _ of
431 keyword
431 keyword
432 | elem keyword keywords -> classes.keyword
432 | elem keyword keywords -> classes.keyword
433 typeName
433 typeName
434 | isTypeName typeName -> classes.typeName
434 | isTypeName typeName -> classes.typeName
435 other -> ""
435 other -> ""
436−
437 isTypeName s =
436 isTypeName s =
438 let
437 let
439 firstLetter = String.take 1 s
438 firstLetter = String.take 1 s
@@ -446,7 +445,6 @@ textToTspans classes scrolled x str = (foldl toTspan { distance: 0.0, acc: [] }
446 >>> maybe false (inRange 'a' 'z' || inRange 'A' 'Z')
445 >>> maybe false (inRange 'a' 'z' || inRange 'A' 'Z')
447 in
446 in
448 String.toUpper firstLetter == firstLetter && isLetter firstLetter
447 String.toUpper firstLetter == firstLetter && isLetter firstLetter
449−
450 keywords =
448 keywords =
451 [ "module"
449 [ "module"
452 , "∷"
450 , "∷"
@@ -470,21 +468,15 @@ textToTspans classes scrolled x str = (foldl toTspan { distance: 0.0, acc: [] }
470 , "else"
468 , "else"
471 , "import"
469 , "import"
472 ]
470 ]
473−
474 words line = split
471 words line = split
475 where
472 where
476 split = String.split (String.Pattern " ") line
473 split = String.split (String.Pattern " ") line
477−
478 lines = String.split (String.Pattern "\n") scrolledString
474 lines = String.split (String.Pattern "\n") scrolledString
479−
480 scrolledString = String.take charactersToTake str
475 scrolledString = String.take charactersToTake str
481 where
476 where
482 doneAfterXPercent = 0.5 -- [WARN] Don't set to 0
477 doneAfterXPercent = 0.5 -- [WARN] Don't set to 0
483−
484 charactersToTake = round $ scrolled * (1.0 / doneAfterXPercent) * len
478 charactersToTake = round $ scrolled * (1.0 / doneAfterXPercent) * len
485−
486 len = toNumber $ String.length str
479 len = toNumber $ String.length str
487−
488 cursor =
480 cursor =
489 SVG.tspan
481 SVG.tspan
490 { dx: "0"
482 { dx: "0"
components/src/Yoga/Stack/Component.pursnew file+37
@@ -0,0 +1,37 @@
1+module Yoga.Stack.Component where
2+
3+import Prelude
4+import Data.Foldable (foldMap)
5+import Data.Maybe (Maybe)
6+import Effect (Effect)
7+import React.Basic (JSX)
8+import React.Basic.DOM as R
9+import React.Basic.Hooks (ReactComponent, component)
10+import React.Basic.Hooks as React
11+import Record.Extra (pick)
12+import Yoga.Stack.Styles (styles)
13+import Yoga.Stack.Styles as Styles
14+import Yoga.Theme.Styles (makeStylesJSS)
15+
16+type Props
17+ = Record PropsR
18+
19+type PropsR
20+ = OptionalProps (Styles.PropsR)
21+
22+type OptionalProps r
23+ = ( kids ∷ Array JSX
24+ , className ∷ Maybe String
25+ | r
26+ )
27+
28+makeComponent ∷ Effect (ReactComponent Props)
29+makeComponent = do
30+ useStyles <- makeStylesJSS styles
31+ component "Stack" \props@{ kids, className } -> React.do
32+ classes <- useStyles (pick props)
33+ pure
34+ $ R.div
35+ { className: classes.stack <> foldMap (" " <> _) className
36+ , children: kids
37+ }
components/src/Yoga/Stack/Spec.pursnew file+25
@@ -0,0 +1,25 @@
1+module Yoga.Stack.Spec where
2+
3+import Prelude
4+import Justifill (justifill)
5+import React.Basic.DOM as R
6+import React.TestingLibrary (describeComponent, renderComponent)
7+import Test.Spec (Spec, it)
8+import Yoga.Stack.Component as Stack
9+
10+spec :: Spec Unit
11+spec =
12+ describeComponent Stack.makeComponent
13+ "The Stack Component" do
14+ it "renders without problems" \stack -> do
15+ _ <-
16+ renderComponent stack
17+ ( justifill
18+ { kids:
19+ [ R.h1_ [ R.text "We are stacked" ]
20+ ]
21+ , space: "4rem"
22+ , splitAfter: 7
23+ }
24+ )
25+ pure unit
components/src/Yoga/Stack/Stories.pursnew file+42
@@ -0,0 +1,42 @@
1+module Yoga.Stack.Stories where
2+
3+import Prelude hiding (add)
4+import Effect (Effect)
5+import Justifill (justifill)
6+import React.Basic.DOM as R
7+import Storybook.Decorator.FullScreen (fullScreenDecorator)
8+import Storybook.React (Storybook, add, addDecorator, storiesOf)
9+import Yoga.Stack.Component as Stack
10+
11+stories ∷ Effect Storybook
12+stories = do
13+ storiesOf "Stack" do
14+ addDecorator fullScreenDecorator
15+ add "The Stack" Stack.makeComponent
16+ [ justifill
17+ { kids:
18+ [ R.text "Rowtype Yoga"
19+ , R.p_ [ R.text "This is a little bit longer my friend, I am telling you there was a lot to say in this case so it This is a little bit longer my friend, I am telling you there was a lot to say in this case so it wraps around" ]
20+ , R.h2_ [ R.text "I said Rowtype Yoga" ]
21+ , R.h3_ [ R.text "I said Rowtype Yoga" ]
22+ , R.p_ [ R.text "This is a little bit longer my friend, I am telling you there was a lot to say in this case so it This is a little bit longer my friend, I am telling you there was a lot to say in this case so it wraps around" ]
23+ ]
24+ }
25+ , justifill
26+ { kids:
27+ [ R.text "Rowtype Yoga"
28+ , R.p_ [ R.text "This is a little bit longer my friend, I am telling you there was a lot to say in this case so it This is a little bit longer my friend, I am telling you there was a lot to say in this case so it wraps around" ]
29+ , R.p_ [ R.text "This is a little bit longer my friend, I am telling you there was a lot to say in this case so it This is a little bit longer my friend, I am telling you there was a lot to say in this case so it wraps around" ]
30+ ]
31+ , space: "8rem"
32+ }
33+ , justifill
34+ { kids:
35+ [ R.text "Rowtype Yoga"
36+ , R.p_ [ R.text "This is a little bit longer my friend, I am telling you there was a lot to say in this case so it This is a little bit longer my friend, I am telling you there was a lot to say in this case so it wraps around" ]
37+ , R.p_ [ R.text "This is a little bit longer my friend, I am telling you there was a lot to say in this case so it This is a little bit longer my friend, I am telling you there was a lot to say in this case so it wraps around" ]
38+ ]
39+ , space: "8rem"
40+ , splitAfter: 1
41+ }
42+ ]
components/src/Yoga/Stack/Styles.pursnew file+51
@@ -0,0 +1,51 @@
1+module Yoga.Stack.Styles where
2+
3+import Prelude
4+import Data.Foldable (foldMap)
5+import Data.Maybe (Maybe, fromMaybe)
6+import Foreign.Object as Object
7+import JSS (JSSClasses, JSSElem, jss, jssClasses)
8+import Yoga.Theme.Types (YogaTheme)
9+
10+type PropsR
11+ = ( space ∷ Maybe String
12+ , splitAfter ∷ Maybe Int
13+ )
14+
15+type Props
16+ = Record PropsR
17+
18+styles ∷
19+ JSSClasses YogaTheme Props
20+ ( stack ∷ JSSElem Props
21+ )
22+styles =
23+ jssClasses \theme ->
24+ { stack:
25+ jss
26+ $ \(props ∷ Props) ->
27+ jss
28+ { "--space": props.space # fromMaybe "1.5rem"
29+ , display: "flex"
30+ , flexDirection: "column"
31+ , justifyContent: "flex-start"
32+ , "& > *":
33+ { marginTop: 0
34+ , marginBottom: 0
35+ }
36+ , "& > * + *":
37+ { marginTop: "var(--space)"
38+ }
39+ }
40+ <> splitAfter props
41+ }
42+
43+splitAfter ∷ Props -> JSSElem Props
44+splitAfter props =
45+ jss
46+ $ props.splitAfter
47+ # foldMap (\n -> nthChild n <> onlyChild)
48+ where
49+ nthChildKey n = "& > :nth-child(" <> show n <> ")"
50+ onlyChild = Object.singleton "&:only-child" (jss { height: "100%" })
51+ nthChild n = Object.singleton (nthChildKey n) (jss { marginBottom: "auto" })
components/src/Yoga/Theme/CSSBaseline.purs+48−38
@@ -1,63 +1,73 @@
1module Yoga.Theme.CSSBaseline where
1module Yoga.Theme.CSSBaseline where
2
2
3import Prelude hiding (add)
3import Prelude hiding (add)
4−import Yoga.CSS.Safer (cssSafer)
5import Effect (Effect)
4import Effect (Effect)
6−import Effect.Uncurried (runEffectFn1)
5+import JSS (JSSClasses, JSSElem, jss, jssClasses)
7import React.Basic (ReactComponent)
6import React.Basic (ReactComponent)
8−import React.Basic.DOM (CSS)
9import React.Basic.Hooks (JSX, component, fragment)
7import React.Basic.Hooks (JSX, component, fragment)
10import React.Basic.Hooks as React
8import React.Basic.Hooks as React
11−import Yoga.Theme.Styles (unsafeMakeStyles)
9+import Yoga.Theme.Styles (makeStylesJSS)
12−import Yoga.Theme.Types (CSSTheme)
10+import Yoga.Theme.Types (YogaTheme)
13−import Unsafe.Coerce (unsafeCoerce)
14
11
15−mkCssBaseline ::
12+mkCssBaseline ∷
16− Effect (ReactComponent { kids :: Array JSX })
13+ Effect (ReactComponent { kids ∷ Array JSX })
17mkCssBaseline = do
14mkCssBaseline = do
18− useStyles <- runEffectFn1 unsafeMakeStyles styles
15+ useStyles <- makeStylesJSS styles
19 component "CSSBaseline" \{ kids } -> React.do
16 component "CSSBaseline" \{ kids } -> React.do
20− classes <- useStyles
17+ classes <- useStyles {}
21 pure
18 pure
22 $ fragment kids
19 $ fragment kids
23
20
24−html :: CSS
21+html ∷ JSSElem {}
25html =
22html =
26− cssSafer
23+ jss
27 { "WebkitFontSmoothing": "antialiased" -- Antialiasing.
24 { "WebkitFontSmoothing": "antialiased" -- Antialiasing.
28 , "MozOsxFontSmoothing": "grayscale" -- Antialiasing.
25 , "MozOsxFontSmoothing": "grayscale" -- Antialiasing.
29 , boxSizing: "border-box"
26 , boxSizing: "border-box"
30 }
27 }
31
28
32−body :: CSSTheme -> CSS
29+root ∷ JSSElem {}
33−body theme =
30+root =
34− cssSafer
31+ jss
35− { color: theme.textColour
32+ { "--ratio": "1.5"
36− , backgroundColor: theme.backgroundColour
33+ , "--s-5": "calc(var(--s-4) / var(--ratio))"
37− , "@media print":
34+ , "--s-4": "calc(var(--s-3) / var(--ratio))"
38− { backgroundColor: theme.white
35+ , "--s-3": "calc(var(--s-2) / var(--ratio))"
39− }
36+ , "--s-2": "calc(var(--s-1) / var(--ratio))"
37+ , "--s-1": "calc(var(--s0) / var(--ratio))"
38+ , "--s0": "1rem"
39+ , "--s1": "calc(var(--s0) * var(--ratio))"
40+ , "--s2": "calc(var(--s1) * var(--ratio))"
41+ , "--s3": "calc(var(--s2) * var(--ratio))"
42+ , "--s4": "calc(var(--s3) * var(--ratio))"
43+ , "--s5": "calc(var(--s4) * var(--ratio))"
40 }
44 }
41
45
42−styles :: CSSTheme -> CSS
46+styles ∷ JSSClasses YogaTheme {} ( "@global" ∷ JSSElem {} )
43−styles theme =
47+styles =
44− unsafeCoerce
48+ jssClasses \theme ->
45 { "@global":
49 { "@global":
46− { html
50+ jss
47− , "*, *::before, *::after":
51+ { html
48− { boxSizing: "inherit"
52+ , ":root": root
49− }
53+ , "*":
50− , "strong, b": { fontWeight: theme.fontWeightBold }
54+ { maxWidth: theme.measure
51− , body:
55+ }
52− { margin: 0
56+ , "*, *::before, *::after":
53− , backgroundColor: theme.backgroundColour
57+ { boxSizing: "inherit"
54− , color: theme.textColour
58+ }
55− , "&::backdrop":
59+ , "strong, b": { fontWeight: theme.fontWeightBold }
56− { backgroundColor: theme.backgroundColour
60+ , "html, body, div, header, nav, main, footer":
61+ { maxWidth: "none"
62+ }
63+ , body:
64+ { margin: 0
65+ , backgroundColor: theme.backgroundColour
66+ , color: theme.textColour
67+ , fontFamily: theme.textFontFamily
68+ , "&::backdrop":
69+ { backgroundColor: theme.backgroundColour
70+ }
57 }
71 }
58 }
72 }
59− }
60− , ".textColouredIcon":
61− { fill: theme.textColour
62− }
63 }
73 }
components/src/Yoga/Theme/Default.purs+2
@@ -29,6 +29,8 @@ darkTheme =
29 , red: Color.rgb 255 88 116
29 , red: Color.rgb 255 88 116
30 , blue: Color.rgb 130 170 255
30 , blue: Color.rgb 130 170 255
31 , white: Color.rgb 250 250 250
31 , white: Color.rgb 250 250 250
32+ , measure: "60ch"
33+ , borderThin: "0.125rem"
32 }
34 }
33
35
34lightTheme ∷ Theme
36lightTheme ∷ Theme
components/src/Yoga/Theme/Provider.js+2−2
@@ -1,7 +1,7 @@
1"use strict";
1"use strict";
2
2
3−var styles = require("@material-ui/styles");
3+var reactJss = require("react-jss");
4
4
5exports.mkThemeProviderImpl = function() {
5exports.mkThemeProviderImpl = function() {
6− return styles.ThemeProvider;
6+ return reactJss.ThemeProvider;
7};
7};
components/src/Yoga/Theme/Styles.js+4−5
@@ -1,8 +1,7 @@
1"use strict";
1"use strict";
2
2
3−var styles = require("@material-ui/styles");
3+var reactJss = require("react-jss");
4
4
5−exports.makeStylesImpl = styles.makeStyles;
5+exports.makeStylesWithPropsImpl = styles => () => props => () =>
6−exports.makeStylesThemedImpl = styles.makeStyles;
6+ reactJss.createUseStyles(styles)(props);
7−exports.unsafeMakeStyles = styles.makeStyles;
7+exports.useThemeImpl = reactJss.useTheme;
8−exports.useThemeImpl = styles.useTheme;
components/src/Yoga/Theme/Styles.purs+22−36
@@ -1,53 +1,39 @@
1module Yoga.Theme.Styles
1module Yoga.Theme.Styles
2− ( makeStyles_
2+ ( useTheme
3− , makeStyles
4− , useTheme
5 , UseStyles
3 , UseStyles
6 , UseTheme
4 , UseTheme
7 , classNames
5 , classNames
8− , unsafeMakeStyles
6+ , makeStylesJSS
9 ) where
7 ) where
10
8
11import Prelude
9import Prelude
12import Data.Foldable (intercalate)
10import Data.Foldable (intercalate)
13import Effect (Effect)
11import Effect (Effect)
14−import Effect.Uncurried (EffectFn1, runEffectFn1)
12+import Foreign (Foreign)
13+import JSS (JSSClasses(..), JSSElem)
15import Prim.RowList (class RowToList)
14import Prim.RowList (class RowToList)
16−import React.Basic.DOM (CSS)
17import React.Basic.Hooks (Hook)
15import React.Basic.Hooks (Hook)
18−import Record.Extra (class MapRecord)
16+import Record.Extra (class MapRecord, mapRecord)
19−import Yoga.Theme.Types (CSSTheme)
17+import Simple.JSON as Foreign
20import Type.Row.Homogeneous (class Homogeneous)
18import Type.Row.Homogeneous (class Homogeneous)
19+import Yoga.Theme.Types (CSSTheme)
21
20
22−foreign import data UseStyles ∷ Type -> Type -> Type
21+foreign import data UseStyles ∷ Type -> Type -> Type -> Type
23−
24−foreign import makeStylesImpl ∷
25− ∀ css classNames.
26− EffectFn1 { | css } (Hook (UseStyles { | css }) { | classNames })
27−
28−foreign import makeStylesThemedImpl ∷
29− ∀ theme css classNames.
30− EffectFn1 ({ | theme } -> { | css }) (Hook (UseStyles { | css }) { | classNames })
31−
32−foreign import unsafeMakeStyles ∷
33− ∀ theme css classNames.
34− EffectFn1 (theme -> css) (Hook (UseStyles css) { | classNames })
35
22
36−makeStyles ∷
23+foreign import makeStylesWithPropsImpl ∷
37− ∀ theme css cssList classNames.
24+ ∀ css classNames theme props.
38− RowToList css cssList =>
39− MapRecord cssList css CSS String () classNames =>
40 ({ | theme } -> { | css }) ->
25 ({ | theme } -> { | css }) ->
41− Effect (Hook (UseStyles { | css }) { | classNames })
26+ Effect (props -> (Hook (UseStyles props { | css }) { | classNames }))
42−makeStyles = runEffectFn1 makeStylesThemedImpl
27+
43−
28+makeStylesJSS ∷
44−makeStyles_ ∷
29+ ∀ theme jss jssRL jssForeign classes props.
45− ∀ css cssList classNames.
30+ RowToList jss jssRL =>
46− RowToList css cssList =>
31+ MapRecord jssRL jss (JSSElem props) Foreign () jssForeign =>
47− MapRecord cssList css CSS String () classNames =>
32+ JSSClasses theme props jss -> Effect (props -> Hook (UseStyles props { | jssForeign }) { | classes })
48− { | css } ->
33+makeStylesJSS (JSSClasses themeToJssClasses) =
49− Effect (Hook (UseStyles { | css }) { | classNames })
34+ makeStylesWithPropsImpl
50−makeStyles_ = runEffectFn1 makeStylesImpl
35+ ( themeToJssClasses <#> mapRecord Foreign.write
36+ )
51
37
52foreign import data UseTheme ∷ Type -> Type
38foreign import data UseTheme ∷ Type -> Type
53
39
@@ -59,4 +45,4 @@ useTheme ∷ Hook (UseTheme) CSSTheme
59useTheme = useThemeImpl
45useTheme = useThemeImpl
60
46
61classNames ∷ ∀ r. Homogeneous r String => Array (Record r -> String) -> Record r -> String
47classNames ∷ ∀ r. Homogeneous r String => Array (Record r -> String) -> Record r -> String
62−classNames cs allClasses = (cs <#> \x -> x allClasses) # intercalate " "
48+classNames cs allClasses = (cs <#> \f -> f allClasses) # intercalate " "
components/src/Yoga/Theme/Types.purs+10−3
@@ -18,10 +18,12 @@ type Theme
18 , red ∷ Color
18 , red ∷ Color
19 , blue ∷ Color
19 , blue ∷ Color
20 , white ∷ Color
20 , white ∷ Color
21+ , measure ∷ String
22+ , borderThin ∷ String
21 }
23 }
22
24
23−type CSSTheme
25+type YogaTheme
24− = { backgroundColour ∷ String
26+ = ( backgroundColour ∷ String
25 , backgroundColourLighter ∷ String
27 , backgroundColourLighter ∷ String
26 , backgroundColourLightest ∷ String
28 , backgroundColourLightest ∷ String
27 , backgroundColourDarker ∷ String
29 , backgroundColourDarker ∷ String
@@ -52,4 +54,9 @@ type CSSTheme
52 , blue ∷ String
54 , blue ∷ String
53 , white ∷ String
55 , white ∷ String
54 , fontWeightBold ∷ String
56 , fontWeightBold ∷ String
55− }
57+ , measure ∷ String
58+ , borderThin ∷ String
59+ )
60+
61+type CSSTheme
62+ = Record YogaTheme
components/src/Yoga/Typography/Header.purs+45−44
@@ -1,15 +1,15 @@
1module Yoga.Typography.Header where
1module Yoga.Typography.Header where
2
2
3import Prelude
3import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5import Data.Array as Array
4import Data.Array as Array
6import Data.Foldable (intercalate)
5import Data.Foldable (intercalate)
7import Data.Maybe (Maybe)
6import Data.Maybe (Maybe)
8import Effect (Effect)
7import Effect (Effect)
8+import JSS (jss, jssClasses)
9import React.Basic.DOM as R
9import React.Basic.DOM as R
10import React.Basic.Hooks (ReactComponent, component)
10import React.Basic.Hooks (ReactComponent, component)
11import React.Basic.Hooks as React
11import React.Basic.Hooks as React
12−import Yoga.Theme.Styles (makeStyles)
12+import Yoga.Theme.Styles (makeStylesJSS)
13import Yoga.Theme.Types (CSSTheme)
13import Yoga.Theme.Types (CSSTheme)
14
14
15data HeadingLevel
15data HeadingLevel
@@ -23,50 +23,51 @@ mkH ∷
23 Effect (ReactComponent { level ∷ HeadingLevel, text ∷ String, className ∷ Maybe String })
23 Effect (ReactComponent { level ∷ HeadingLevel, text ∷ String, className ∷ Maybe String })
24mkH = do
24mkH = do
25 useStyles <-
25 useStyles <-
26− makeStyles \(theme ∷ CSSTheme) ->
26+ makeStylesJSS
27− { common:
27+ $ jssClasses \(theme ∷ CSSTheme) ->
28− cssSafer
28+ { common:
29− { color: theme.textColour
29+ jss
30− , fontFamily: theme.headingFontFamily
30+ { color: theme.textColour
31+ , fontFamily: theme.headingFontFamily
32+ }
33+ , h1:
34+ jss
35+ { textTransform: "uppercase"
36+ , fontSize: "3.6em"
37+ , letterSpacing: "0.07em"
38+ , margin: 0
39+ , padding: 0
40+ }
41+ , h2:
42+ jss
43+ { textTransform: "uppercase"
44+ , fontSize: "3em"
45+ , letterSpacing: "0.05em"
46+ , margin: 0
47+ , padding: 0
48+ }
49+ , h3:
50+ jss
51+ { fontSize: "2.2em"
52+ , margin: 0
53+ , padding: 0
54+ }
55+ , h4:
56+ jss
57+ { fontSize: "1.5em"
58+ , margin: 0
59+ , padding: 0
60+ }
61+ , h5:
62+ jss
63+ { fontSize: "1.0em"
64+ , margin: 0
65+ , padding: 0
66+ , color: theme.textColourLighter
67+ }
31 }
68 }
32− , h1:
33− cssSafer
34− { textTransform: "uppercase"
35− , fontSize: "3.6em"
36− , letterSpacing: "0.07em"
37− , margin: 0
38− , padding: 0
39− }
40− , h2:
41− cssSafer
42− { textTransform: "uppercase"
43− , fontSize: "3em"
44− , letterSpacing: "0.05em"
45− , margin: 0
46− , padding: 0
47− }
48− , h3:
49− cssSafer
50− { fontSize: "2.2em"
51− , margin: 0
52− , padding: 0
53− }
54− , h4:
55− cssSafer
56− { fontSize: "1.5em"
57− , margin: 0
58− , padding: 0
59− }
60− , h5:
61− cssSafer
62− { fontSize: "1.0em"
63− , margin: 0
64− , padding: 0
65− , color: theme.textColourLighter
66− }
67− }
68 component "Heading" \{ level, text, className } -> React.do
69 component "Heading" \{ level, text, className } -> React.do
69− classes <- useStyles
70+ classes <- useStyles {}
70 let
71 let
71 elem = case level of
72 elem = case level of
72 H1 -> R.h1
73 H1 -> R.h1
components/src/Yoga/Typography/Paragraph.purs+13−12
@@ -1,29 +1,30 @@
1module Yoga.Typography.Paragraph where
1module Yoga.Typography.Paragraph where
2
2
3import Prelude
3import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5import Effect (Effect)
4import Effect (Effect)
5+import JSS (jss, jssClasses)
6import React.Basic.DOM as R
6import React.Basic.DOM as R
7import React.Basic.Hooks (ReactComponent, component)
7import React.Basic.Hooks (ReactComponent, component)
8import React.Basic.Hooks as React
8import React.Basic.Hooks as React
9−import Yoga.Theme.Styles (makeStyles)
9+import Yoga.Theme.Styles (makeStylesJSS)
10import Yoga.Theme.Types (CSSTheme)
10import Yoga.Theme.Types (CSSTheme)
11
11
12mkP ∷ Effect (ReactComponent { text ∷ String })
12mkP ∷ Effect (ReactComponent { text ∷ String })
13mkP = do
13mkP = do
14 useStyles <-
14 useStyles <-
15− makeStyles \(theme ∷ CSSTheme) ->
15+ makeStylesJSS
16− { p:
16+ $ jssClasses \(theme ∷ CSSTheme) ->
17− cssSafer
17+ { p:
18− { color: theme.textColour
18+ jss
19− , fontFamily: theme.textFontFamily
19+ { color: theme.textColour
20− , fontSize: "1em"
20+ , fontFamily: theme.textFontFamily
21− , margin: "0.67em 0 0.33em 0"
21+ , fontSize: "1em"
22− , padding: "0.67em 0 0.33em 0"
22+ , margin: "0.67em 0 0.33em 0"
23+ , padding: "0.67em 0 0.33em 0"
24+ }
23 }
25 }
24− }
25 component "paragraph" \{ text } -> React.do
26 component "paragraph" \{ text } -> React.do
26− classes <- useStyles
27+ classes <- useStyles {}
27 pure
28 pure
28 $ R.p
29 $ R.p
29 { className: classes.p
30 { className: classes.p
components/src/Yoga/WithSidebar/Component.pursnew file+51
@@ -0,0 +1,51 @@
1+module Yoga.WithSidebar.Component where
2+
3+import Prelude
4+import Data.Array (foldMap)
5+import Data.Array as A
6+import Data.Maybe (Maybe(..))
7+import Effect (Effect)
8+import React.Basic (JSX)
9+import React.Basic.DOM as R
10+import React.Basic.Hooks (ReactComponent, component)
11+import React.Basic.Hooks as React
12+import Yoga.Theme.Styles (makeStylesJSS)
13+import Yoga.WithSidebar.Styles as WithSidebar
14+
15+type Props
16+ = Record PropsR
17+
18+type PropsR
19+ = OptionalProps
20+ ( sidebarChildren ∷ Array JSX
21+ , notSidebarChildren ∷ Array JSX
22+ )
23+
24+type OptionalProps r
25+ = ( className ∷ Maybe String
26+ , sidebarClassName ∷ Maybe String
27+ , notSidebarClassName ∷ Maybe String
28+ , sidebarRight ∷ Maybe Boolean
29+ | r
30+ )
31+
32+makeComponent ∷ Effect (ReactComponent Props)
33+makeComponent = do
34+ useStyles <- makeStylesJSS WithSidebar.styles
35+ component "WithSidebar" \{ sidebarChildren
36+ , notSidebarChildren
37+ , className
38+ , sidebarClassName
39+ , notSidebarClassName
40+ , sidebarRight
41+ } -> React.do
42+ classes <- useStyles {}
43+ pure
44+ $ R.div
45+ { className: classes.withSidebar <> foldMap (" " <> _) className
46+ , children:
47+ (if sidebarRight == (Just true) then A.reverse else identity)
48+ [ R.div { className: classes.sidebar <> foldMap (" " <> _) sidebarClassName, children: sidebarChildren }
49+ , R.div { className: classes.notSidebar <> foldMap (" " <> _) notSidebarClassName, children: notSidebarChildren }
50+ ]
51+ }
components/src/Yoga/WithSidebar/Spec.pursnew file+20
@@ -0,0 +1,20 @@
1+module Yoga.WithSidebar.Spec where
2+
3+import Prelude
4+import Justifill (justifill)
5+import React.TestingLibrary (describeComponent, renderComponent)
6+import Test.Spec (Spec, it)
7+import Yoga.WithSidebar.Component as WithSidebar
8+
9+spec :: Spec Unit
10+spec =
11+ describeComponent WithSidebar.makeComponent
12+ "The WithSidebar Component" do
13+ it "renders without problems" \withSidebar -> do
14+ _ <-
15+ renderComponent withSidebar
16+ $ justifill
17+ { sidebarChildren: []
18+ , notSidebarChildren: []
19+ }
20+ pure unit
components/src/Yoga/WithSidebar/Stories.pursnew file+29
@@ -0,0 +1,29 @@
1+module Yoga.WithSidebar.Stories where
2+
3+import Prelude hiding (add)
4+import Data.Monoid (power)
5+import Effect (Effect)
6+import Justifill (justifill)
7+import React.Basic.DOM as R
8+import Storybook.Decorator.FullScreen (fullScreenDecorator)
9+import Storybook.React (Storybook, add, addDecorator, storiesOf)
10+import Yoga.CSS.Safer (cssSafer)
11+import Yoga.WithSidebar.Component as WithSidebar
12+
13+stories ∷ Effect Storybook
14+stories = do
15+ storiesOf "WithSidebar" do
16+ addDecorator fullScreenDecorator
17+ add "The WithSidebar Component" WithSidebar.makeComponent
18+ [ justifill
19+ { sidebarChildren:
20+ [ R.text $ power "In the sidebar" 30
21+ ]
22+ , notSidebarChildren: [ R.text $ power "Not in the sidebar. " 40 ]
23+ }
24+ , justifill
25+ { notSidebarChildren: [ R.input { style: cssSafer { width: "100%" } } ]
26+ , sidebarChildren: [ R.button { children: [ R.text "Hit me" ] } ]
27+ , sidebarRight: true
28+ }
29+ ]
components/src/Yoga/WithSidebar/Styles.pursnew file+27
@@ -0,0 +1,27 @@
1+module Yoga.WithSidebar.Styles where
2+
3+import JSS (JSSClasses, JSSElem, jss, jssClasses)
4+import Yoga.Theme.Types (YogaTheme)
5+
6+type PropsR
7+ = ()
8+
9+type Props
10+ = Record PropsR
11+
12+styles ∷
13+ JSSClasses YogaTheme Props
14+ ( notSidebar ∷ JSSElem Props
15+ , sidebar ∷ JSSElem Props
16+ , withSidebar ∷ JSSElem Props
17+ )
18+styles =
19+ jssClasses \theme ->
20+ { withSidebar:
21+ jss
22+ { display: "flex"
23+ , flexWrap: "wrap"
24+ }
25+ , sidebar: jss { flexBasis: "20rem", flexGrow: 1 }
26+ , notSidebar: jss { flexBasis: 0, flexGrow: 999, minWidth: "50%" }
27+ }